Краткое руководство по работе с утилитами Merger->Unpacker#
Репозиторий конфигураций для работы с утилитами Merger->Unpacker#
Перед работой в новом контуре необходимо создать репозиторий конфигураций, в котором должны храниться файлы artifactRenameRules.csv, merger.yml;
Если джобы уже настроены, можно перейти к разделу Правила работы с утилитами Merger->Unpacker по работе с Merger для Abyss;
Необходимо ознакомиться со следующей документацией продукта DOT компонента DTDS:
Требуются следующие учетные записи (УЗ):#
УЗ для доступа к 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: # Блок для подключения точек расширения