Персонализация teamProducts#
Для каждого блока в products в teamProducts.json, что представляет собой monosolution необходимо обработать блок components, со списком компонент. Пример:
{
"name": "{Наименование Monosolution}",
"mailTo": "{Ответственный за моносол}:{почта ответственного}",
"code": "{Аббревиатура Monosolution Например: SMM}",
"ciSolution": "{КЭ Monosolution}",
"components": [
{
"name": "{Наименование компоненты}",
"code": "{Аббревиатура компоненты}",
"user": "{Ответственный за продукт}:{Почта ответственного}"},
"parts": [
{
"docker" : [{блок, указывающий на все Dockerfile, которые собираются в рамках части компоненты}
{
"baseImageLink": "{базовый образ (ссылка на образ заменит, что идёт в Dockerfile)}",
"version": "0.1.0.0 {версия образа (тег), под которой выложить образ}",
"dockerFileChange": "{скрипт, который нужно выполнить над Dockerfile}"
"deploymentUnit": "{имя компоненты, для которой будет собираться образ; имя директории, в которой находится Dockerfile}"
},
...
],
"artifactId": "{artifactId из pom дистрибутива (Используется для определения продукта в дистрибутиве для SDK и уточнение продукта при неоднозначности deploymentUnit)}"
"imageLinkMapping": [
{
{Регулярное выражение образа компоненты для поиска строки в конфигурационных файлах для замены на образ, который был собран в рамках сборки}
{Необязательно для заполнения, если ссылка в конфигурационном файле удовлетворяет формату ссылки в параметре **clientUnpackerImageRegex**}
"regex": "(?<=(\\{\\{|\\$\\{)registry(\\}){1,2})(\\{\\{|\\$\\{)registry_path(\\}){1,2}/{}/{}@sha256:(?<hash>\\d+)"
},
{
"regex": "{Регулярное выражение удовлеторяющее ссылке на образ в конфигурационных файлах}",
"replace": "{Ссылка на образ, на которую нужно заменить совпадение}"
},
{
"string": "{Ссылка на образ в конфигурационных файлах}",
"replace": "{Ссылка на образ, на которую нужно заменить найденную ссылку}"
},
пример блока специфичный для SAI
{ когда образ одного сервиса нужно вставить в конфигурации другого сервиса
"serviceFrom": "{имя сервиса (директория в дистрибутив с файлом Chart.yaml)}",
"serviceTo": "{имя сервиса (директория в дистрибутив с файлом Chart.yaml)}",
"regex": "(?<=(\\{\\{|\\$\\{)\\s?\\.Values\\.oauthProxy\\.image\\.registry\\s?(\\}){1,2})/\\{\\{\\s?\\.Values\\.oauthProxy\\.image\\.name\\s?\\}\\}:\\{\\{\\s?\\.Values\\.oauthProxy\\.image\\.tag\\s?\\}\\}"
},
],
"jiraTicket": "{jira задача в банке для версионности (для SAI)}",
"conditionOfDownload": {{Если дистрибутив состоит из jar библиотек, то в данном поле задются фильтры выбора библиотек для публикации}
"groupId": "com.sbt.synapse",
"{поле в pom}": "{значение}"
},
"targetNexusRepo": "{имя репозитория куда загружать библиотеку} testRepo1",
"checkInRepos": [{список репозиториев, где проверять существования библиотеки}"testRepo1","testRepo2"],
},
...
],
"to": {{блок с информацией о том, какое КЭ искать в CIXml в настройках SMDL, чтобы получить информацию о пространствах для публикации образа и дистрибутива}
"ci": "{номер КЭ}"
}
},
...
]
}