GitHub 连接器

GitHub 连接器允许工作负载通过 Connectors 代理模型访问 GitHub。

核心字段

连接器示例:

apiVersion: connectors.alauda.io/v1alpha1
kind: Connector
metadata:
  name: github-demo
spec:
  connectorClassName: github
  address: https://github.com
  addressExtensions:
    - name: api
      value: https://api.github.com
  auth:
    name: patAuth
    secretRef:
      name: github-secret
  • spec.connectorClassName:固定值 github
  • spec.address:用于 Git 操作的 GitHub 服务器 URL(例如 https://github.com
  • spec.addressExtensions[api]:API 端点覆盖项。当主机为 https://github.com 时,将其设置为 https://api.github.com;否则保持未设置

注意: 目前不支持 GitHub Enterprise。

身份验证

支持的 auth 类型:

  • patAuth(可选)
  • Secret 类型:Opaque

Secret 示例:

apiVersion: v1
kind: Secret
metadata:
  name: github-secret
type: Opaque
stringData:
  token: ghp_xxxxxxxxxxxxxxxxxxxx

配置

ConnectorClass 提供的内置配置文件:

  • gitconfig:由 Git CLI 使用(通过内置反向代理进行 URL 重写和 auth header 处理)
  • githubconfig:由 gh CLI(GitHub CLI)使用,提供 config.ymlhosts.ymlca.cert需要正向代理hosts.yml 使用占位 token;实际认证信息由 Connectors 正向代理注入。你必须为 gh CLI 设置正向代理环境变量,才能正确完成认证。

通过正向代理使用 githubconfig

当你通过 Connectors CSI Driver 挂载 githubconfig 时,CSI Driver 会在同一挂载目录中自动提供一个内置的 .env 文件,其中包含 http_proxyhttps_proxyno_proxy 设置。要使用 githubconfig

  1. 使用 configuration.names: "githubconfig" 挂载 CSI 卷
  2. GH_CONFIG_DIR 设置为挂载路径,以便 gh CLI 读取 config.ymlhosts.yml
  3. 通过 source 该 .env 文件设置正向代理环境变量
  4. 为代理证书配置 TLS 信任(在使用 HTTPS 正向代理时需要,例如 MITM 风格代理)

示例:

containers:
- name: gh
  image: ghcr.io/cli/cli
  command: ["sh", "-c"]
  args:
  - |
    set -a
    source /opt/github/.env
    set +a
    export SSL_CERT_FILE=/tmp/connector/ca.crt
    export GH_CONFIG_DIR=/opt/github
    gh repo list --limit 5
  volumeMounts:
  - name: github-auth
    mountPath: /opt/github
volumes:
- name: github-auth
  csi:
    readOnly: true
    driver: connectors-csi
    volumeAttributes:
      connectors: "github-demo"
      configuration.names: "githubconfig"

有关内置 .env 文件和正向代理配置的更多详细信息,请参见 Connectors CSI Driver — 内置配置

当你的环境通过 HTTPS 正向代理强制执行 TLS 拦截时,请确保 SSL_CERT_FILE 指向挂载的 ca.cert;否则,gh 请求可能会因证书验证错误而失败。