Skip to content

Описание

Сервис — продукт компании, например, сервис, микросервис, приложение.

Сервис может быть создан как вручную, так и из шаблона.

При ручном создании сервиса, необходимо самостоятельно создать git репозиторий, создать и сконфигурировать в нём файл .edp.yaml, а затем подключить его к платформе. Подробнее о подключении к платформе.

При создании сервиса из шаблона (подробнее) настройки производятся автоматически. При этом, шаблон может иметь различные версии и периодически получать обновления (подробнее). Если для сервиса включено автообновление, то периодически EDP будет автоматически формировать и присылать МР с изменениями. Но так же существует возможность запускать обновление вручную.

Метаданные

Описание интеграций сервиса хранится в основной ветке репозитория сервиса в файле .edp.yaml.

Формат спецификации файла .edp.yaml:

...
metadata:
  annotations:
    'edp.express42.com/...'
    'edp.express42.com/...'
...

Список аннотаций:

  • edp.express42.com/defectdojo-product-name - название продукта в DefectDojo
  • edp.express42.com/allure-url - ссылка на страницу с информацией о тестах продукта в Allure
  • edp.express42.com/docker-registry-url - ссылка на хранилище артефактов, в которое помещаются Docker образы сервиса
  • edp.express42.com/docker-registry-name - название хранилища артефактов, в которое помещаются Docker образы сервиса в EDP (название можно узнать в EDP в меню Настройки / Инфраструктурные сервисы)
  • edp.express42.com/docker-registry-type - тип хранилища артефактов, в которое помещаются Docker образы сервиса, поддерживаются значения "Nexus", "Harbor"
  • edp.express42.com/docker-image-name - название Docker образа в хранилище артефактов, в случае, если Docker образ сервиса находится в подгруппе репозитория, необходимо указывать полный путь к образу

Спецификация

Дополнительная информация о том, как EDP взаимодействовать с сервисом так же хранится в основной ветке репозитория сервиса в файле .edp.yaml.

spec:
  template:
    version: v1.0.0
    hash: 2617d9cb3686ae5d5996dde8e2f8cce1ecc9f595
    variables:
      EXAMPLE_01: default_value_1
      EXAMPLE_02: default_value_2
  updates:
    branch: updates
  grafana:
    production: https://grafana.example.com/d/AAAAAAAAA/organization?orgId=1
    test: https://grafana.example.com/d/BBBBBBBBB/organization?orgId=1
    develop: https://grafana.example.com/d/CCCCCCCCC/organization?orgId=1

Секция template

...
spec:
  template:
    version: v1.0.0
    hash: 2617d9cb3686ae5d5996dde8e2f8cce1ecc9f595
    variables:
      EXAMPLE_01: default_value_1
      EXAMPLE_02: default_value_2
  ...

Секция template хранит информацию о том, как EDP взаимодействовать с сервисом. Имеет следующие параметры:

  • version - значение формируется автоматически. Хранит информацию о версии шаблона, до которой обновлен данный сервис.
  • hash - значение формируется автоматически. Хранит хэш коммита версии шаблона, до которой обновлен данный сервис.
  • variables - значение формируется автоматически при создании сервиса из шаблона. Содержит информацию о переменных, которые использовались во время создания сервиса. В дальнейшем, при изменении набора переменных в новых версиях шаблона требует ручного изменения. Если будет требоваться ручное вмешательство, в EDP будет соответствующее уведомление.

Секция updates

...
spec:
  updates:
    branch: updates
  ...

Секция updates хранит информацию о том, как EDP присылать обновления для сервиса. Имеет следующие параметры:

  • branch - название ветки, в которую необходимо присылать МР для формирования обновлений сервиса, при обновлении шаблона, из которого был создан сервис. Ветка должна существовать в репозитории.

Секция grafana

...
spec:
  grafana:
    production: https://grafana.example.com/d/AAAAAAAAA/organization?orgId=1
    test: https://grafana.example.com/d/BBBBBBBBB/organization?orgId=1
    develop: https://grafana.example.com/d/CCCCCCCCC/organization?orgId=1
  ...

Секция grafana хранит информацию о том, какие панели и для какого окружения выводить в панели мониторинг в EDP.

Каждое окружение представлено отдельной строкой и содержит ссылку на соответствующий дашборд. Названия окружений (production, test, develop) являются примерами и могут быть изменены в соответствии с потребностями проекта и их может быть любое количество. В панели мониторинга названия окружений будет выводиться исходя из названий, заданных в данной секции.

Файл .edp.yaml

Пример файла .edp.yaml:

metadata:
  annotations:
    edp.express42.com/defectdojo-product-name: backend
    edp.express42.com/allure-url: https://allure.example.com/...
    edp.express42.com/docker-registry-url: nexus.example.com
    edp.express42.com/docker-registry-name: default
    edp.express42.com/docker-registry-type: Nexus
    edp.express42.com/docker-image-name: backend-team/backend
spec:
  template:
    version: v1.0.0
    hash: 2617d9cb3686ae5d5996dde8e2f8cce1ecc9f595
    variables:
      EXAMPLE_01: default_value_1
      EXAMPLE_02: default_value_2
  updates:
    branch: updates
  grafana:
    production: https://grafana.example.com/d/AAAAAAAAA/organization?orgId=1
    test: https://grafana.example.com/d/BBBBBBBBB/organization?orgId=1
    develop: https://grafana.example.com/d/CCCCCCCCC/organization?orgId=1