PullSecret#
Jenkins Job установки secret(s) для пула образов в проект системы оркестрации приложений. Позволяет вводить данные технической учетной записи из интерфейса либо использовать данные из Jenkins Credential или HashiCorp Vault. ID Credentials/имя secret(s) в HashiCorp Vault, который используется для создания secret(s), указан в переменной dockerRegistryCred, определенная в репозитории конфигураций SMDL.
Варианты использования:
Обновление secret(s) в одном из проектов, точечное:
Выбрать
ClusterName, указав какойorchestratorProjectхотите обновить,pullSecretNameзаполнять не обязательно, если его не было вClustersXml.xml, и в параметрах он не заполнен, то подставится его предопределенное значение из файла конфигурации.
Обновление пакетное:
ВАЖНО: Регулирование содержимого фильтров параметра
attributesOrchestratorProjectвозможно через параметр пользовательской конфигурации, параметромattributesOrchestratorProjectToAdd, в котором словарь вида:[ 'фрагментИмениПроектаВClustersXml@имяАтрибутаВClustersXml', 'control-panel@isControlPanel', 'synapse-system@isSystemProject' ].Обновление всех проектов у которых заполнен атрибут
secretName:Выбрать
ClusterName.Перевести параметр
attributesOrchestratorProjectв значение*.Активировать флаг
needUpdateByClustersXml.
Обновление всех проектов у которых заполнен атрибут
secretNameпо требуемым критериям:Выбрать
ClusterName.Перевести параметр
attributesOrchestratorProjectв соответсвующее значение, напримерisControlPanel.Активировать флаг
needUpdateByClustersXml.
Jenkins Job использует tool:
executorдля работы с системой оркестрации приложений;processorдля работы с системой оркестрации приложений;yqдля чтения YAML конфигураций.
Для настройки Jenkins Tool необходимо ознакомиться с разделом «Взаимодействие с Jenkins Tools» документа «Руководство по системному администрированию».
Функции Jenkins Job:
Название функции |
Описание функции |
Инструкция по настройке/включению |
|---|---|---|
Включение функциональности по проверке корректности указания авторизационных данных доступа к Registry |
В случае если не удастся авторизоваться в Registry, обновление в ClustersXml.xml и создание secret(s) будет прервано |
В пользовательском конфигурационном файле в репозитории конфигураций SMDL.Configs определить параметр needCheckAuthorizationToRegistry равным |
Параметры запуска Jenkins Job:
Параметр |
Обязательность |
Возможность изменить предопределенные значения |
Описание |
|---|---|---|---|
ClusterName |
+ |
+ |
Кластер для установки |
projectApiURL |
+ |
- |
Ссылка на кластер системы оркестрации приложений. Пример: https://api.cluster_name.ru:6443. Заполняется на основе ClusterName |
orchestratorProject |
- |
+ |
Имя проекта системы оркестрации приложений. Пример: ci00000001-cluster-synapse-dev |
pullSecretName |
- |
+ |
Имя secret(s), который будет создан в проекте |
dockerServer |
+ |
+ |
Ссылка на репозиторй с образами Registry |
needUseCredential |
- |
+ |
Флаг, отвечающий за использование Credential Id для добавления secret(s) |
dockerUsername |
- |
+ |
Логин технической учетной записи, который будет использоваться для pull образов в проекте Не обязателен к заполнению, если needUseCredential=true |
dockerPassword |
- |
+ |
Пароль технической учетной записи, который будет использоваться для pull образов в проекте Не обязателен к заполнению, если needUseCredential=true |
needUpdateByClustersXml |
- |
+ |
Флаг, отвечающий за автообновление secret(s) на всех проектах из ClustersXml |
attributesOrchestratorProject |
- |
- |
Список атрибутов, при наличии которых выполнять обновление. Работает в связке с флагом needUpdateByClustersXml |
ClustersXml |
+ |
- |
Структура хранения информация о принадлежности проектов к кластерам |
orchestratorProjectAttributes |
- |
+ |
Атрибуты проекта системы оркестрации приложения |
Источники параметров:
projectConfig - конфигурация проекта. Параметры, которые считываются из репозитория конфигурации SMDL.
jenkinsParams - параметры, которые передаются в pipeline, путем заполнения их на экране запуска Jenkins Job, после нажатия кнопки «Собрать с параметрами». Их описание можете посмотреть выше.
libraryParams - параметры, которые заданы командой разработки SMDL.
Параметры Pipeline:
Параметр |
Принцип валидации |
Значение по умолчанию |
Источник |
Описание |
|---|---|---|---|---|
needCheckAuthorizationToRegistry |
setPropsIfNotExist |
true |
jenkinsParams |
Флаг, отвечающий за проверку возможности авторизации в Registry |
ClusterName |
requiredNotEmpty |
— |
jenkinsParams |
Кластер для установки |
projectApiURL |
requiredNotEmpty |
— |
jenkinsParams |
Ссылка на кластер системы оркестрации приложений. Пример: https://api.cluster_name.ru:6443. Заполняется на основе ClusterName |
dockerServer |
requiredNotEmpty |
— |
jenkinsParams |
Ссылка на репозиторй с образами Registry |
kubeconfigFile |
requiredNotEmpty |
— |
libraryParams |
Имя файла с конфигурацией Kubernetes |
dynamicTokenPrefix |
requiredNotEmpty |
— |
projectConfig |
Префикс динамического токена |
needUseCredential |
setPropsIfNotExist |
true |
jenkinsParams |
Флаг, отвечающий за использование Credential Id для добавления secret(s) |
needInputOrchestratorLogin |
setPropsIfNotExist |
false |
projectConfig |
Флаг, отвечающий за авторизацию по логину/паролю (вводится во время работы pipeline динамически, маскируется) |
needAddNewItemsToClustersXml |
setPropsIfNotExist |
true |
projectConfig |
Флаг, отвечающий за добавление проекта кластера в случае его отсутсвия в ClustersXml репозитория |
needUpdateByClustersXml |
setPropsIfNotExist |
false |
jenkinsParams |
Флаг, отвечающий за автообновление secret(s) на всех проектах из ClustersXml |
pullSecretName |
setPropsIfNotExist |
pull-secret-name |
libraryParams |
Имя secret(s), который будет создан в проекте |
devOpsTeamTicket |
setPropsIfNotExist |
SYDEVOPS-1 |
libraryParams |
Задача DevOps команды, под которой проходит обновление в репозитории |
orchestratorProject |
optionalParam |
— |
jenkinsParams |
Имя проекта системы оркестрации приложений. Пример: ci00000001-cluster-synapse-dev |
attributesOrchestratorProject |
optionalParam |
— |
jenkinsParams |
Список атрибутов, при наличии которых выполнять обновление. Работает в связке с флагом needUpdateByClustersXml |
attributesOrchestratorProjectToAdd |
optionalParam |
— |
projectConfig |
Список маркеров определения атрибута по имени проекта |
Division |
optionalParam |
— |
projectConfig |
Сегмент (Dev, Psi, Prom) |
apiTokenCred |
optionalParam |
— |
projectConfig |
ID CredentialsId для обращения к ресурсам с использованием логина и токена Jenkins (тип: username with password). Пример: ci-token-cred |
ciCreds |
optionalParam |
— |
projectConfig |
Список логинов технических учетных записей |
configFile |
optionalParam |
— |
projectConfig |
Имя файла доменной пользовательской конфигурации с настройками Jenkins Job |
dockerRegistryCred |
optionalParam |
— |
projectConfig |
ID Credentials Jenkins для работы с registry |
emailList |
optionalParam |
— |
projectConfig |
Список адресатов для получений результатов работы Jenkins Job |
jobsNeedUpdate |
optionalParam |
— |
projectConfig |
Список путей до Jenkins Job, находящиеся в поддиректориях папки Synapse, необходимых для обновления |
needPythonTool |
optionalParam |
— |
projectConfig |
Флаг, отвечающий за использование в Jenkins Job Tool Python |
needSendBuildLogStarter |
optionalParam |
— |
projectConfig |
Флаг, отвечающий за отправку лога инициатору сборки |
needVault |
optionalParam |
— |
projectConfig |
Флаг, отвечающий за активацию взаимодействия с HashiCorp Vault |
orchestratorProjectAttributes |
optionalParam |
*,isControlPanel,isSystemProject |
projectConfig |
Атрибуты проекта системы оркестрации приложения |
publicSourceHost |
optionalParam |
— |
projectConfig |
Хост репозитория Python модулей с авторизацией по токену |
publicSourceTurnOn |
optionalParam |
— |
projectConfig |
Флаг, отвечающий за скачивание библиотек из репозитория Python с авторизацией по токену |
pypiHost |
optionalParam |
— |
projectConfig |
Хост публичного репозитория Python модулей |
pypiIndex |
optionalParam |
— |
projectConfig |
Базовый URL-адрес публичного репозитория Python модулей |
skipCheckout |
optionalParam |
— |
projectConfig |
Флаг, отвечающий за пропуск валидации блока с информацией по репозиторию |
dockerUsername |
optionalParam |
— |
jenkinsParams |
Логин технической учетной записи, который будет использоваться для pull образов в проекте Не обязателен к заполнению, если needUseCredential=true |
dockerPassword |
optionalParam |
— |
jenkinsParams |
Пароль технической учетной записи, который будет использоваться для pull образов в проекте Не обязателен к заполнению, если needUseCredential=true |
Минимально необходимые права для работы pipeline в системе оркестрации приложений:
rules:
- verbs:
- get
- list
- create
- delete
apiGroups:
- ''
resources:
- secrets
- verbs:
- get
- patch
- update
apiGroups:
- ''
resources:
- serviceaccounts
Используемые шаги:
Все указанные ниже исполняемые скрипты в формате .groovy расположены в подразделе «Шаги» раздела «Дополнительная
документация» документа «Руководство прикладного разработчика».
Название stage |
Описание |
|---|---|
Загрузка инструментов для выполнения pipeline |
|
Валидация параметров |
|
Создание secret |
|
Всегда выполняются в конце |