Заполнение параметров стенда файла environment.json#

Секция стенда никогда не перетирается. В случае, если необходимо изменить какой-либо параметр из секции __default, вам необходимо скопировать переменную (в случае, с объектами, копировать необходимо весь объект, например «installer»: { … }) в область стенда и переопределить значения уже там.

Описание основных параметров секции стенда:

Секция

Параметр

Описание

Тип параметра

Варианты значений

Обязательный параметр?

стенд

useExternalResources

Флаг подключения внешних ресурсов

Boolean

true - включение функциональности, false - отключение

Да

стенд

resources {}

Подключение внешних ресурсов (например - для использования правил миграции файлов в репозиторий функциональных приложений вместо commonDistrib)

List

Разбор блока ниже в разделе Параметры секции resources

Да, если не использовать commonDistrib в секции installer {}

стенд

installer{}

Реквизиты Инсталятора в хранилище Nexus

List

Разбор блока ниже в разделе Параметры секции installer

Да

стенд

useCustomValues

Флаг использования пользовательских переменных

Boolean

true - включение функциональности, false - отключение

Да

стенд

helm {}

Блок настроек для helm-конфигураций

List

Разбор блока ниже в разделе Параметры секции helm

Да

Параметры секции resources#

Блок использования внешних ресурсов требуется при невозможности использования дистрибутива commonDistrib с правилами миграции параметров в репозиторий конфигураций функциональных приложений. Для реализации данной функциональности необходимо добавить в common-репозиторий файл __fp.yml, который должен поставляться с дистрибутивом.

Настройка секции с ресурсами будет выглядеть следующим образом:

    "resources": [{
      "description": "Common дистрибутив",
      "sourceConfiguration": {                    # Путь до common-репозитория и ветка с файлом __fp.yaml
          "link": "ssh://git@domain:port/projet/name_common_repo.git",
          "branch": "master"
      },
      "parameters": [{
              "includes": [
                  "./__fp.yml"                    # Путь до файла __fp.yaml из репозитория  данном примере он лежит в корне) 
              ],
              "resultDir": "common"
          }]
    }],

Параметры секции installer#

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

Вид блока:

  "installer": {                                 // Реквизиты Инсталятора в хранилище Nexus
    "common": {                                   // Реквизиты common-репозитория с правилами миграции данных
      "groupId": "sbt_PROD.*********",
      "artifactId": "commonDistrib",
      "version": "D-5.1-Common-Distrib-*",
      "classifier": "distrib",
      "packaging": "zip"
    },
    "migration": {                               // Реквизиты мигратора
      "groupId": "sbt_PROD.******",
      "artifactId": "CI01****46__******Migration",
      "version": "D-02***7",
      "classifier": "distrib",
      "packaging": "zip"
    }
  },

Параметры секции helm#

Рассмотрим пример настройки для установки дистрибутивов на базе Helm:

{...
  "helm": {                                     // Блок настроек для helm-конфигураций
    "timeout": "300s",                          // Оставшееся время выполнения процесса установки в формате Go Duration, по умолчанию в Helm составляет 5 минут.
    "tests_enabled": true,                      // Опция запускать или нет тесты (команда helm test), по умолчанию: true
    "hooks_enabled": false,                     // Опция запускать или нет хуки (Chart hooks), по умолчанию: true.
    "customValuesMasks": "{{ fpConfig.customValuesMasks }}" // Параметр для определения списка дополнительных произвольных values файлов, которые находятся в дистрибутиве. В параметре customValuesMasks можно перечислить список масок для поиска values файлов. Переопределяется в subsystems, здесь остается ссылка
 }
}

Если "customValuesMasks": "*/**/restricted*.yaml,*/**/values-*.yaml" - содержит значение с перечислением файлов - то данное правило будет применяться ко всем subsystems.json в common-repo.

Если "customValuesMasks": "{{ fpConfig.customValuesMasks }}" - содержит ссылку на параметр - то в subsystem.json в каждой подсистеме требуется добавить правило применения файлов конфигурации, например:

{
...
  "ABYSS-API-PRIMARY": {
    "sector": ["abyss"],
    "customValuesMasks": "*/**/restricted*.yaml,*/**/{{ lookup('env', 'CONFIG_DIR') }}/**/abyss/*/**/values-*.yaml,*/**/{{ lookup('env', 'CONFIG_DIR') }}/**/environment/env-values-common.yaml,*/**/{{ lookup('env', 'CONFIG_DIR') }}/**/environment/env-values-abyssdevelop_st3_primary.yaml,*/**/{{ lookup('env', 'CONFIG_DIR') }}/**/sdp-st/*"
  },
}
}

Подробнее об определении/переопределении параметров указано в документе Работа с дистрибутивом конфигураций на базе HELM.

Если вы дошли до этой строки, заполнив всю секцию стенда нужными параметрами - файл environment.json можно считать заполненным.

Далее требуется заполнить файл subsystems.json согласно документу Заполнение файла subsystems.json.