Описание
Сервис — продукт компании, например, сервис, микросервис, приложение.
Сервис может быть создан как вручную, так и из шаблона.
При ручном создании сервиса, необходимо самостоятельно создать git репозиторий, создать и сконфигурировать в нём файл .edp.yaml
, а затем подключить его к платформе. Подробнее о подключении к платформе.
При создании сервиса из шаблона (подробнее) настройки производятся автоматически. При этом, шаблон может иметь различные версии и периодически получать обновления (подробнее). Если для сервиса включено автообновление, то периодически EDP будет автоматически формировать и присылать МР с изменениями. Но так же существует возможность запускать обновление вручную.
Метаданные
Описание интеграций сервиса хранится в основной ветке репозитория сервиса в файле .edp.yaml
.
Формат спецификации файла .edp.yaml
:
Список аннотаций:
edp.express42.com/defectdojo-product-name
- название продукта в DefectDojoedp.express42.com/allure-url
- ссылка на страницу с информацией о тестах продукта в Allureedp.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
Секция 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