Обновление конфигураций с помощью SynapseInstaller#

Все указанные ниже Jenkins Jobs расположены в подразделе «Pipelines» раздела «Дополнительная документация» текущего документа.

Может возникнуть необходимость обновить конфигурации в проекте системы оркестрации, но соответствующие права у личной УЗ могут отсутствовать. Для таких кейсов можно использовать Jenkins Jobs BackupMaker и SynapseInstaller.

Существует два основных варианта обновления конфигураций с использованием SynapseInstaller:

  1. Обновление конфигураций из бэкапа

    1. Восстановление всего бэкапа

      В данном режиме в проект будут загружены все YML конфигурации, которые содержатся в файле бэкапа.

    2. Точечное восстановление бэкапа

      В данном режиме в проект будет предложено загрузить в проект YML конфигурации, которые имеют различия между тем что вы пытаетесь установить из бэкапа и тем что сейчас находится в проекте.

  2. Обновление конфигураций из репозитория стендозависимых параметров

Получение конфигураций для обновления#

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

  1. Снять бэкап проекта с помощью Jenkins Job BackupMaker, в результате чего получаем ссылку на репозиторий с бэкапом;

    backup_info Рисунок. Ссылка на репозиторий с бэкапом

  2. Выгрузить архив (имя архива в формате ConfigFilesRollBack_имя_кластера_имя_дистрибутива.zip) с конфигурациями бэкапа из артефактов сборки SynapseInstaller.

    fpr_2_pipeline_synapseInstaller_install_attachs Рисунок. Артефакты сборки

    Взять необходимые YML конфигурации из архива и разместить их в репозитории стендозависимых параметров для соответствующего проекта. Отредактировать YML конфигурации в соответствие с потребностями. Опубликовать изменения в репозитории (произвести commit и push изменений).

Обновление конфигураций#

  • На экране "Собрать с параметрами" сборки Jenkins Job SynapseInstaller указать кластер и проект для установки.

  • Заполнить параметр projectsConfigGitUrlSources, указав в нем либо ссылку на репозиторий с бекапом, либо ссылку на репозиторий со стендозависимыми параметрами.

  • Заполнить параметр projectsConfigResourcesList, указав в нем путь до конфигураций или путь до бэкапа относительно директории проекта в репозитории (конфигурации для установки в бэкапе лежат в каталоге post_process), которые необходимо загрузить. project_configuration_for_download

    Рисунок. Задание конфигураций для загрузки

    image

    Рисунок. Расположение бэкапа в репозитории

    В данном случае в поле projectsConfigResourcesList должны быть пути до файлов вида BackUp_stands-vdc01_tribe-sy-synai-victim_2022-10-10-12:32-1665394379/post_process/{имя_файла} или BackUp_stands-vdc01_tribe-sy-synai-victim_2022-10-10-12:32-1665394379/post_process/* если необходимо использовать для установки бэкапа все конфигурационные файлы.

    image

    Рисунок. Задание пути до бэкапа

  • После заполнения projectsConfigResourcesList поле BackupParams расширится и будет предложено включить/выключить подпараметры согласно необходимости.

    backup_backupParams

    Рисунок. Заполнение параметров

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

    • needSplitListConfigFiles - флаг, отвечающий за разделение конфигурационных файлов бэкапа на отдельные файлы (можно использовать для удобного отображения списка изменений в репозитории при включенном сравнении конфигураций (needCompareConfigs = true)). needCompareConfigs отвечает за формирование pull-request, в котором будут отображены различия между загружаемыми конфигурациями и проектными конфигурациями. После формирования pull-request, будет выведено специальное окно.

      link_to_diff

      Рисунок. Окно подтверждения установки бэкапа

      example_pr_diff

      Рисунок. Результат сравнения

      После просмотра pull-request, нужно подтвердить установку бэкапа (параметр needInstallBackup) и тогда Jenkins Job перейдет к восстановлению бэкапа.

    • needUploadRollback - Флаг, отвечающий за восстановление исходного состояния проекта при ошибке во время разворота бэкапа;

    • needStopPods - Флаг, отвечающий за обнуление количества pod в конфигурационных файлах типа Deployment бэкапа;

    • needPointBackup - Флаг, отвечающий за точечную установку бэкапа. В данном режиме в проект будет предложено загрузить в проект YML конфигурации, которые имеют различия между тем что вы пытаетесь установить из бэкапа и тем что сейчас находится в проекте. Для информативности будет сформирован pull-request в репозитории, который будет отображать разницу между конфигурациями. То есть после сравнения конфигурационных файлов будет предложено выбрать какие конфигурационные файлы из бэкапа установить, какие конфигурационные файлы с проекта удалить. (Для работы параметра необходимо, чтобы needCompareConfigs был включен и needSplitListConfigFiles выключен).

      После формирование pull-request, будет выведено специальное окно. В данном окне будет предложено выбрать конфигурации для установки в проект, которые имеют различия:

      input_diff_configs

      Рисунок. Окно подтверждения установки бэкапа

  • Запустить Jenkins Job SynapseInstaller.