• Русский
  • GitHub Connector

    GitHub connector позволяет workload получать доступ к GitHub через модель прокси Connectors.

    Основные поля

    Пример connector:

    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: URL сервера GitHub, используемый для операций Git (например, https://github.com)
    • spec.addressExtensions[api]: переопределение API endpoint. Когда host равен https://github.com, задайте это значение как https://api.github.com; в противном случае оставьте поле незаданным

    Примечание: GitHub Enterprise в настоящее время не поддерживается.

    Аутентификация

    Поддерживаемый тип аутентификации:

    • patAuth (необязательно)
    • Тип Secret: Opaque

    Пример Secret:

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

    Конфигурации

    Встроенные файлы конфигурации из ConnectorClass:

    • gitconfig: используется Git CLI (перезапись URL и заголовок аутентификации через встроенный обратный прокси)
    • githubconfig: используется gh CLI (GitHub CLI), предоставляет config.yml, hosts.yml и ca.cert. Требует прямой проксиhosts.yml использует token-заглушку; реальная аутентификация внедряется через прямой прокси Connectors. Для корректной аутентификации gh CLI необходимо задать переменные окружения прямого прокси.

    Использование githubconfig с прямым прокси

    Когда вы монтируете githubconfig через Connectors CSI Driver, CSI Driver автоматически предоставляет встроенный файл .env, содержащий настройки http_proxy, https_proxy и no_proxy, в том же каталоге монтирования. Чтобы использовать githubconfig:

    1. Смонтируйте CSI volume с configuration.names: "githubconfig"
    2. Задайте GH_CONFIG_DIR в путь монтирования, чтобы gh CLI читал config.yml и hosts.yml
    3. Подключите файл .env, чтобы задать переменные окружения прямого прокси
    4. Настройте TLS trust для сертификата прокси (это требуется при использовании 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 — Built-in Configurations.

    Если в вашей среде выполняется TLS interception через HTTPS-прокси, убедитесь, что SSL_CERT_FILE указывает на смонтированный ca.cert; в противном случае запросы gh могут завершаться ошибками проверки сертификата.