• Русский
  • Использование GitLab Connector в Tekton Task

    Использование GitLab Connector в Tekton Tasks позволяет централизованно управлять учетными данными GitLab и обеспечивать безопасный доступ к репозиториям GitLab во время выполнения Tekton Task.

    Требования к Tekton Task

    Не все Tekton Tasks могут использовать GitLab Connector.

    GitLab Connector внедряет временные учетные данные через CSI Driver. Он предоставляет конфигурации, которые генерируют файлы конфигурации с временной аутентификацией и настройками переписывания URL:

    • gitconfig: Предоставляет файл .gitconfig для операций Git CLI
    • gitlabconfig: Предоставляет файл config.yml для операций GitLab CLI (glab)

    Пример сгенерированного .gitconfig:

    [http]
        extraHeader = Authorization: Basic OmV5Smhixxxxxxxxx==
    [url "http://c-gitlab-connector.gitlab-demo.svc"]
        insteadOf = https://gitlab.com

    Пример сгенерированного config.yml:

    git_protocol: http
    host: c-gitlab-connector.gitlab-demo.svc
    no_prompt: true
    telemetry: false
    hosts:
      c-gitlab-connector.gitlab-demo.svc:
        token: k8s-api-token-xxxxxxxx

    Таким образом, Tekton Tasks должны соответствовать следующим требованиям для использования GitLab Connector:

    Для операций Git CLI:

    • Поддержка монтирования файла .gitconfig через Workspace

    Для операций GitLab CLI (glab):

    • Поддержка монтирования файла config.yml через Workspace
    • Поддержка монтирования файла .gitconfig через Workspace (требуется при использовании glab для клонирования репозиториев или работы с директориями репозитория)

    Инструкции по использованию

    Использование GitConfig для операций Git CLI

    При использовании Git CLI в Tekton Tasks монтируйте конфигурацию gitconfig:

    apiVersion: tekton.dev/v1
    kind: TaskRun
    metadata:
      name: git-demo
    spec:
      # . . .
      workspaces:
      - name: git-auth
        csi:
          driver: connectors-csi
          readOnly: true
          volumeAttributes:
            connector.name: gitlab-connector
            configuration.names: "gitconfig"

    Описание параметров:

    • name: Имя Workspace, определенное в Task
    • csi:
      • driver: Фиксированное значение connectors-csi
      • readOnly: Фиксированное значение true
      • volumeAttributes: Атрибуты CSI Volume
        • connector.name: Имя GitLab Connector
        • connector.namespace: (Опционально) Namespace GitLab Connector; если не указано, используется namespace TaskRun
        • configuration.names: Имя конфигурации (gitconfig для операций Git CLI)

    Использование GitLabConfig для операций GitLab CLI

    При использовании GitLab CLI (glab) в Tekton Tasks монтируйте одновременно gitlabconfig и gitconfig:

    apiVersion: tekton.dev/v1
    kind: TaskRun
    metadata:
      name: glab-demo
    spec:
      # . . .
      workspaces:
      - name: gitlab-auth
        csi:
          driver: connectors-csi
          readOnly: true
          volumeAttributes:
            connector.name: gitlab-connector
            connector.namespace: ""
            configuration.names: "gitlabconfig,gitconfig"

    Task должен:

    1. Скопировать файлы конфигурации в соответствующие места:

      • .gitconfig~/.gitconfig
      • config.yml~/.config/glab-cli/config.yml
    2. Установить правильные права доступа к файлам:

      • ~/.gitconfig644
      • ~/.config/glab-cli/config.yml600

    Использование пользовательских CLI-инструментов с GitLab Connector

    При использовании пользовательских CLI-инструментов (например, reviewdog) с GitLab Connector можно использовать встроенные конфигурационные файлы для доступа к GitLab API через прокси-сервис.

    Подробнее см. в разделе: Connectors CSI Built-in Configurations

    или обратитесь к Using Reviewdog with GitLab Connector для получения дополнительной информации.

    Дополнительные материалы