Skip to content

Обновление шаблонов для поддержки версионирования

Для работы новой версии EDP необходимо обновить шаблоны и ранее созданные сервисы, для поддержки возможности версионирования. Если обновление не произвести, то сервисы продолжат свою работу, но обновления получать не будут.

Обновление шаблонов

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

old-version old-version-error

Для продолжения работы необходимо произвести их обновление.

1. В корне репозитория в файле variables.yaml в секцию repository добавьте ряд служебных переменных:

repository:
  - key: EDP_SERVICE_UUID
    value: example
    description: "Служебная переменная"
  - key: EDP_TEAM_SLUG
    value: example
    description: "Служебная переменная"
  - key: EDP_TEMPLATE_HASH
    value: example
    description: "Служебная переменная"
  - key: EDP_TEMPLATE_VERSION
    value: example
    description: "Служебная переменная"
  - key: EDP_UPDATES_BRANCH
    value: example
    description: "Служебная переменная"

Пример:

example-variables-yaml

2. В шаблоне переименуйте файл .edp.yaml в .edp.yaml.njk и добавьте секцию spec со следующим содержимым:

spec:
  template:
    version: {{ EDP_TEMPLATE_VERSION }}
    hash: {{ EDP_TEMPLATE_HASH }}
  updates:
    branch: {{ EDP_UPDATES_BRANCH }}

В случае отсутствия файла .edp.yaml создайте файл .edp.yaml.njk.

Пример файла:

example-edp-yaml-njk

Если все сделано верно, то конфигурация будет показана как валидная (необходимо обновить страницу):

template-valid

3. Создайте тег в шаблонном репозитории

create-tag-template-1 create-tag-template-2

4. Нажмите Обновить текущую версию

click-button-update-template

При успешно обновлении версии, на карточке появится текущая версия шаблона:

success-update-template

На этом обновление шаблона завершено.

Обновление сервисов

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

old-version-service

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

1. В сервисе в файле .edp.yaml добавьте секцию spec по примеру ниже. Все параметры, кроме опциональных, должны быть заполнены. Пример:

spec:
  template:
    version: v0.0.0
    hash: 43d8833613fdf0b6625d3f82d6870cd35ed600a7
    variables:
      EXAMPLE_1: 'example-1'
      EXAMPLE_2: 'example-2'
      EXAMPLE_3: 'example-3'
  updates:
    branch: updates

Пояснение:

  • version - может быть любым значением
  • hash - хэш коммита версии шаблона, из которой был создан данный сервис. Можно сравнить время создания первого коммита сервиса и какой коммит был в то время у шаблона сервиса. Подробнее о получение хэша
  • variables (при наличии) - переменные шаблона, которые использовались для создания данного сервиса. Необходимо внести вручную списком, как показано на примере. Обязательно к заполнению, при наличие переменных в шаблоне. Если переменные отсутствуют, то можно поле можно убрать.
  • branch - название ветки, в которую будут присылаться МР с обновлением шаблона. Ветка должна существовать в репозитории, в ином случае изменения присылаться не будут.

EDP проверяет наличие всех требуемых шаблоном переменных. При отсутствии каких либо из них, обновление происходить не будет. Пример показан ниже:

service-error-variables

2. Запустите обновление сервиса

service-start-update-1 service-start-update-2

При успешном формировании обновления в интерфейсе появится кнопка, при нажатии на которую можно перейти на ветку, в которой сформировано обновление.

service-start-update-3

Так же будет сформирован МР, который отправляет изменения из сформированной ветки в ветку, которая была ранее указана в переменной branch в файле .edp.yaml. Этот МР необходимо принять. На этом обновление сервиса завершено.

Пример МР с обновлениями

Получение hash коммита

1. Перейдите в репозиторий с шаблоном и откройте список коммитов.

get-hash-commit-1

2. Скопируйте нужный хэш коммита

get-hash-commit-2