Git connector — это платформонезависимый коннектор, который можно использовать для подключения к любому Git-серверу, например GitHub, GitLab, Bitbucket.
Вы можете использовать Git Connector для безопасного клонирования приватных репозиториев в CICD пайплайнах или применять его в контейнеризованных нагрузках для выполнения Git-операций без необходимости указывать учетные данные.
Кроме того, вы можете централизованно управлять конфигурациями доступа к Git в разных пространствах имён, избегая повторной настройки Git-учетных данных в каждом namespace.
В этом документе описано:
Git-сервер, к которому будет осуществляться доступ, должен соответствовать следующим условиям:
Константное значение git
.
Вы можете добавить описание для Git-коннектора через поле annotations
.
cpaas.io/description
: Описание Git-коннектора.Например:
spec.address
указывает адрес доступа к Git-серверу, например: https://github.com
. Важно отметить, что этот адрес используется для клонирования Git-репозиториев, а не является адресом API Git-сервера.
Git connectorclass поддерживает следующие типы аутентификации:
basicAuth
: аутентификация по имени пользователя и паролю (опционально), соответствующий тип учетных данных: kubernetes.io/basic-auth
Например:
Необходимо создать Secret
в том же namespace, например:
Если Git-сервер не требует аутентификации, информацию об аутентификации можно опустить.
Для проверки валидности учетных данных необходимо указать путь к Git-репозиторию. Коннектор при выполнении будет использовать эти учетные данные для доступа к указанному репозиторию, чтобы определить их корректность.
Этот параметр аутентификации задаётся через spec.auth.params
.
repository
: указывает путь к Git-репозиторию, используемому для проверки аутентификации, например org/repo.git
.Например:
Для предоставления клиентам возможности доступа к Git-репозиториям без указания учетных данных, Git connectorclass предоставляет прокси-сервер, который автоматически внедряет информацию об аутентификации.
Клиенты, имеющие доступ к коннектору, могут использовать этот прокси-сервер для доступа к Git-репозиториям без необходимости настраивать учетные данные на стороне клиента.
Для упрощения использования Git connectorclass предоставляет конфигурационные данные, которые можно монтировать в Pod через CSI. В Pod при выполнении Git-операций автоматически используется прокси-сервис для завершения операций Git.
При создании Git-коннектора система автоматически создаст Service для проксирования доступа к Git-репозиторию.
Система запишет адрес прокси в поле status.proxy.httpAddress
.
Например:
Git-коннектор, созданный на основе Git connectorclass, предоставляет следующую конфигурацию:
gitconfig: информация конфигурации Git.
.gitconfig
, в котором адрес Git-репозитория будет заменён на адрес прокси. В сочетании с connector-csi-driver этот конфигурационный файл монтируется в Pod, что позволяет обращаться к Git-репозиторию через прокси без необходимости настраивать учетные данные на стороне клиента.Пример конфигурационного файла, сгенерированного в Pod:
Больше примеров использования можно найти в Using Git Connector in Clone Job.