Настройка Deploy job для helm#
Подгтовка#
Перед началом работы над созданием Deploy Job в Jenkins необходимо:
Выполнить подготовку окружения согласно разделу Подготовка окружения в Platform V DropApp
Выполнить подготовку пререквизитов Platform V DropApp.
Настроить репозитории для работы с Jenkins Deploy Job по инструкции раздела Подготовка репозиториев;
Первичная установка#
(опционально) Создать и запустить сервисную джобу для первичного заполнения common и pipeline репозиториев, созданных раннее по п.3 раздела Подготовка данного документа.
Пункт первый может быть пропущен, если common-репозиторий создать в соответствии с разделом Подготовка репозиториев, заполнив необходимые файлы, перечисленные в разделе Common-репозиторий.
Настройки job в Jenkins:#
В Jenkins необходимо создать «Новый item», с произвольным названием (например: DeployJob) и типом pipeline:


Настройки секции Pipeline.
Необходимо выбрать: Pipeline script from SCM → SCM → Git.
Указать SSH адрес:
До релизного pipeline репозитория в поле repository URL, например: ssh://git@dhost/run4c/pipeline.git.
До репозитория pipeline, созданного на этапе подготовки пререквизитов;
В секции credentials выбираем ранее созданный credential для доступа по SSH.
В поле Branch specifier указать ветку, например
release/D-01.050.079, которая соответствует версии DOT.

В поле Script Path указать deploy-fpi.groovy.

Настройка секции General –> Prepare an environment for the run –> Property Content
Ниже представлен пример настроек задачи Jenkins
NODE=omstadm-cd-01
ENVIR=devops
CE=ci_000
SUBDIVISION=***
CHANNEL=pvm
CONFIG_DIR_LIST=dev:dev,st3_da_dp01:st3_da_dp01
REPOCOMMONBRANCH=devops/ABYSS
SCRIPTS_GIT_URL=ssh://git@***.sw.***.space:7999/run4c
GIT_URL=ssh://git@***.sw.***.space:7999/pvmdevop
SEGMENT=***
Название параметра |
Описание параметра |
Обязательность |
|---|---|---|
NODE |
Агент Jenkins, на котором будет произведен запуск задачи. В случае, если вы не обладаете информацией, какой именно агент Jenkins вам необходимо использовать, обратитесь к команде сопровождения Jenkins для получения этой информации |
+ |
ENVIR |
Название стенда. (Подготовка репозиториев) |
+ |
CE |
Идентификатор, участвующий в составлении имен репозиториев. |
- |
SUBDIVISION |
Идентификатор, участвующий в составлении имен репозиториев. |
- |
CHANNEL |
Канал (Например, УКОФЛ - ukofl, УКОЮЛ - ukoul, Сотрудники - emp). (Подготовка репозиториев) |
+ |
CONFIG_DIR_LIST |
Директория конфигурации. При реконфигурации генерирует поле CONFIG_DIR в графическом интерфейсе job с возможность выбрать одну директорию в общем репозитории common для раскатки приложения. Формат заполнения: <название директории>:<название директории>, например b1:b1 |
+ |
REPOCOMMONBRANCH |
Ветка common-репозитория, в которой хранятся основные параметры для конфигурирования джобы |
+ |
SCRIPTS_GIT_URL |
SSH-путь до проектной области с pipeline-репозиторием. |
+ |
GIT_URL |
SSH путь до проектной области (Подготовка репозиториев). |
+ |
SEGMENT |
Описание сегмента сети (опциональный) |
- |
После настройки параметров требуется сохранить изменения.
Далее требуется выполнить реконфигурацию джобы.
Реконфигурация#
Выполнение данного playbook(s) приведет к автоматической настройке job и отображение параметров на странице «Собрать с параметрами» Jenkins. Требуется без параметров собрать job, нажав меню:
«Собрать сейчас» (если job еще ни разу не был запущен).
«Собрать с параметрами» (и НЕ выбираем параметры) → «Ок».

Теперь видны параметры при выборе меню «Собрать с параметрами»:


После конфигурации задачи Jenkins в блоке SUBSYSTEM появятся заданные функциональные приложения (в примере с георезервированным кластером):

Важное отличие PRIMARY и SECONDARY состоит в параметре customValuesMasks, который определяет список helm-конфигурации для каждого плеча.

Описание сценариев#
Имя playbook |
Описание сценария |
Результат выполнения |
|---|---|---|
DB_UPDATE |
Запуск liquibase скриптов для установки изменений на БД. |
3 варианта установки обновлений на БД: 1. Через верификацию функционального приложения – |
FP_CONF_CHECK |
Проверка конфигурационных файлов функционального приложения. |
При включенном параметре Совместно с режимом DRY_RUN запускает тестовый прогон удаления ресурсов из Namespace (PURGE_PROJECT) |
MIGRATION_FP_CONF |
Миграция конфигурационных файлов функционального приложения. |
Миграция конфигурационных файлов дистрибутива в репозиторий конфигураций функциональных приложений |
HELM_DEPLOY |
Установка helm релиза (команда |
Установленный релиз на стенд |
DEBUG |
Отладка режима пакетного задания. |
Расширенный вывод логов Ansible запуска задания, сборка Workspace в артефакт |
DRY_RUN |
Запуск тестового прогоно реального сценария (дополнительного выбранного к dry_run) Если выбран только playbook DRY_RUN, то выполняется DryRun списка сценариев из playbooks_default указанный в файле distrib.yml в составе дистрибутива приложения. Если выбраны сценарии развертывания + DRY_RUN, выполняется DryRun выбранных сценариев (для которых есть функционал DryRun). |
Выведен подробной лог с результатом тестового прогона |
PURGE_PROJECT |
Удаление ресурсов в Namespace |
Удаление ресурсов в Namespace |