Персонализация 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":  "{номер КЭ}"
        }
       
      },
      ...
    ]
}