Краткое руководство по работе с утилитами Merger->Unpacker#

Репозиторий конфигураций для работы с утилитами Merger->Unpacker#

Требуются следующие учетные записи (УЗ):#

  • УЗ для доступа к Maven-репозиторию, для скачивания плагинов Maven (для взаимодействия с репозиториями);

  • УЗ для загрузки дистрибутивов в Nexus;

  • УЗ для загрузки/скачивания Solution;

  • УЗ типа SSH, под которой будут загружаться дистрибутивы с репозиторияими.

Какие УЗ будут применяться в файлах можно увидеть далее в комментариях к параметрам файлов конфигурации.

Файлы конфигураций для работы с Merger/Unpacker#

  • artifactRenameRules.csv – таблица соответствия координат groupId/artifactId артефактов Solution координатам groupId/artifactId в репозиториях целевого хранилища;

  • merger.yml - файл с описанием правил замены образов/sha-сумм и строковых значений.

merger.yml#

Используется в утилите Merger

build_history:
  builds:
    days: 100 # сколько дней хранить сборки
    num: 30 # количество сборок для хранения

tooling:                # какие конкретно утилиты использовать из инструментария Jenkins, например:
  jdk: <version>        # JDK, которую будет использовать Maven для скачивания и загрузки компонентов
  maven: <version>      # Maven, используемая для скачивания и загрузки архивов

repositories:
  solution:
    download: # адрес репозитория и ID credentials в Jenkins для скачивания Solution
      url: https://<...>/nexus/content/repositories/Nexus_PROD_OUT/
      creds: demoCD
    upload:   # адрес репозитория и ID credentials в Jenkins для загрузки объединенного Solution
      url: https://<...>/nexus/content/repositories/Nexus_PROD_OUT/
      creds: demoCD
  maven:      # 
    download: # адрес репозитория и ID credentials в Jenkins для загрузки Maven плагинов
      url: http://<...>/nexus/content/repositories/central
      creds: demoCD
    upload:   # адрес репозитория и ID credentials в Jenkins для загрузки Maven артефактов (SDK)
      url: http://<...>/nexus/content/repositories/efs_release
      creds: demoCD
  npm:        # адрес репозитория и ID credentials в Jenkins для загрузки NPM артефактов (SDK)
    url: https://<...>/nexus/content/repositories/some-npm-repo
    creds: demoCD
docker:
  registry:   # адрес репозитория и ID credentials в Jenkins для сборки и загрузки Docker образов
    url: https://registry.<...>.ru
    creds: 4627c8e56e718fc
  # путь для загрузки Docker образов
  registry_path: path_to_repo/ci0****100/ci0****881_as_efs_devops_pipeline_dev
  # маппинг базовых образов
  base_image_mapping:
    - from: .*some/regex.*
      to: registry.<...>.ru/some_path/base_url
    - from: .*openjdk11.*
      to: registry.<...>.ru/efs/base/rhel7openjdk11:7.6-252.1561619826-86
  # маппинг ссылок на образы (применяется, чтобы заменить ссылки на Sidecar)
  image_link_mapping:
    "mona/agent@sha256:[0-9a-f]{64}" : "mona/agent@sha256:shasum"
    "supa/client@sha256:[0-9a-f]{64}" : "supa/client@sha256:shasum"

artifactRenameRules.csv#

Используется для работы Unpacker.

Пример:

## через ';' необходимо указать новые groupID:artifactID на которые будут заменены старые groupID:artifactID
## формат old_groupId:old_artifactId;new_groupId:new_artifactId
old_groupId:old_artifactId;new_groupId:new_artifactId
path_to_repo.CI9****151_abyss.lgdb:lgdb-cfg;path_to_repo.CI9****151_abyss.lgdb:lgdb-cfg;
path_to_repo.CI9****151_abyss.lgdb:lgdb-bin;path_to_repo.CI9****151_abyss.lgdb:lgdb-bin;
path_to_repo.CI9****151_abyss.lgdb.bin:lgdb;path_to_repo.CI9****151_abyss.lgdb.bin.full:lgdb
path_to_repo.CI9****151_abyss.lgdb.bin:lgdb.ambari;path_to_repo.CI9****151_abyss.lgdb.bin.ambari:lgdb

environment.yml#

Используется для работы Unpacker.

Описание основных параметров:

build_history:
days: 100             # сколько дней хранить сборки
num: 3                # сколько сборок хранить
repositories:
  central:            # адрес репозитория-зеркала central, УЗ по умолчанию - ci
    src: https://domain/nexus-ci/repository/maven-public/
    creds: demoCD     # для репозиториев можно указывать УЗ по отдельности
  solution:           # адрес репозитория, где лежат Solution
    src: https://domain/nexus-cd/repository/path_to_repo
  cd:                 # адрес репозитория, куда раскладывать дистрибутивы
    src: https://domain/nexus-cd/repository/path_to_repo
credentials:
  ci: demoCD          # УЗ для доступа к Maven-репозиторию, для скачивания плагинов Maven (для взаимодействия с репозиториями)
  cd: demoCD          # УЗ для загрузки дистрибутивов в Nexus
  solution: demoCD    # УЗ для загрузки Solution
  ssh: demoCD_ssh     # УЗ типа SSH, под которой будут пушиться дистрибутивы с репозиторияими
java:                 # настройка инструментария
  jdk: openjdk-11.0.11_linux
  maven: Maven 3.6.3
gitRepositories:      # перечень репозиториев, для загрузки дистрибутивов, состоящих из git-репозиториев
  repoId1:            # реквизиты для загрузки каждого из репозиториев, взятых из свойства <repoId> pom.xml
    src: ssh://git-server/project/repo.git
    creds: demoCD_ssh
  autoinstaller:
    src: ssh://git@domain:7999/r4csup/autoinstaller-pipeline.git
  resolver:
    src: ssh://git@domain:7999/r4csup/dependency-resolver.git
  image:
    src: ssh://git@domain:7999/r4csup/image-creator.git
  jenkinsfiles:
    src: ssh://git@domain:7999/r4csup/jenkinsfiles.git
  wrapper:
    src: ssh://git@domain:7999/r4csup/lib-rn-wrapper.git
  scm:
    src: ssh://git@domain:7999/r4csup/lib-scm.git
    ...
extensions:           # Блок для подключения точек расширения