Подготовка Git Credential
В этом руководстве показано, как создать секрет git credential, который поможет вам запускать ваши Tekton Tasks и Pipelines.
В этом документе в качестве примера используется конфигурация задачи git-clone.
Если вы используете другую задачу, вы можете ориентироваться на приведённые здесь шаги и изменить taskRef.name и workspaces в соответствии с определениями в вашей задаче.
Содержание
Предварительные требованияШагиОпционально 1: Использование ssh CredentialsОпционально 2: Использование basic-auth CredentialsОпционально 3: Использование Git ConnectorПредварительные требования
- Установлен и настроен kubectl для доступа к кластеру.
- Права на чтение и запись Secrets.
Шаги
Опционально 1: Использование ssh Credentials
Эта задача поддерживает получение доступа к приватным репозиториям. Существует три способа аутентификации:
-
Самый простой способ — привязать workspace
ssh-directoryк этой задаче. В workspace должны содержаться приватные ключи (например,id_rsa), файлыconfigиknown_hosts— всё, что необходимо для взаимодействия с вашим git-удалённым сервером через SSH. Настоятельно рекомендуется использовать KubernetesSecretsдля хранения ваших учётных данных и привязывать их к этому workspace.В TaskRun это будет выглядеть примерно так:
А в Pipeline и PipelineRun это будет выглядеть так:
Secretбудет выглядеть одинаково в обоих случаях — структурирован как директория.ssh:Включение
known_hostsнеобязательно, но настоятельно рекомендуется. Без него задачаgit-cloneбудет безоговорочно принимать личность удалённого сервера. -
Другой способ — привязать workspace
ssl-ca-directoryк этой задаче. В workspace должны содержаться crt ключи (например,ca-bundle.crt) — всё, что необходимо для взаимодействия с вашим git-удалённым сервером через кастомный CA. Настоятельно рекомендуется использовать KubernetesSecretsдля хранения ваших учётных данных и привязывать их к этому workspace.В TaskRun это будет выглядеть примерно так:
А в Pipeline и PipelineRun это будет выглядеть так:
Secretбудет выглядеть следующим образом:
Опционально 2: Использование basic-auth Credentials
Примечание: Настоятельно рекомендуется использовать ssh credentials, если такая возможность есть, прежде чем использовать basic auth. Вы можете сгенерировать короткоживущий токен на платформах WebVCS (Github, Gitlab, Bitbucket и т.д.), который будет использоваться в качестве пароля, а в качестве имени пользователя обычно используется git.
На bitbucket server токен может содержать символ /, поэтому его нужно urlquote перед использованием в Secret, см. этот ответ на stackoverflow:
https://stackoverflow.com/a/24719496
Для поддержки basic-auth эта задача предоставляет опциональный workspace basic-auth.
Привязанный workspace должен содержать файл .gitconfig или .git-credentials.
Любые другие файлы в этом workspace игнорируются. Типичный Secret с такими учётными данными выглядит следующим образом:
Опционально 3: Использование Git Connector
Задача может использоваться с Git Connector для повышения безопасности.
Сначала необходимо создать Git Connector, затем в TaskRun использовать CSI для настройки workspace basic-auth.
Git Connector в настоящее время поддерживает клонирование только с basic-auth, не с ssh.
Пример использования Git Connector в git-clone TaskRun:
Создание Git Connector
Создание TaskRun
Подробнее о Connector смотрите в Alauda DevOps Connectors Doc.