Установка#

Объединение компонентов в один дистрибутив#

Скачать и сохранить архивы компонентов в одном каталоге, например, ARR. Перейти в каталог ARR и распаковать архивы rgse-cfg-[VERSION]-distrib.zip и rgse-bin-[VERSION]-distrib.zip командой unzip.

unzip rgse-cfg-{build}-distrib.zip
unzip rgse-bin-{build}-distrib.zip

Перейти в полученный после распаковки архивов каталог ./package/conf.

Режим интеграции с Platform V Works::OneWork#

Интеграция с продуктом Platform V Works::OneWork обеспечивает взаимодействие компонента Artifactory с другими доступными сервисами/продуктами в одном интерфейсе.

Для настройки интеграции заполните следующие параметры:

Имя параметра

Значение по умолчанию

Пример заполнения

Описание

SSD_URL

http://127.0.0.1:28886

URL Platform V Works::OneWork

TOOL_KEY

nci

Атрибут TOOL_KEY для Side Menu

APP_TITLE

Сборка для nci. Развертывание для ncd, для других TOOL_KEY берется из словаря по ключу APP_TITLE_KEY

Заголовок приложения

APP_TITLE_KEY

appTitle.${TOOL_KEY}

Ключ словаря для заголовка приложения

MENU_KEY

dependencies

Ключ пункта бокового меню, по которому инструмент определяет родительский пункт для прикрепления к нему своего меню в текущем контексте

ONEWORK_ENABLED

false

true

Флаг, определяющий режим работы Artifactory (в интеграции с Platform V Works::OneWork или без)

Для настройки режима интеграции выполните следующие действия:

  1. Получите значения переменных, которые выдают сотрудники сопровождения Platform V Works::OneWork.

  2. Задайте значения переменных в файлах конфигурации переменных окружения:

    • Если экземпляр Artifactory запускается на виртуальной машине, переменные необходимо объявлять в файле setenv.

    • Если экземпляр Artifactory запускается через docker-compose, переменные необходимо объявлять в файле .env.

  3. Флаг интеграции с можно также задать в properties-файле, добавив строку artifactory.onework.enabled=true

Настройка схемы БД#

Перед установкой Artifactory с нуля, удостоверьтесь в отсутствии объектов внутри базы данных:

  1. Удалите объекты внутри базы данных: DROP SCHEMA <схема> CASCADE;

    Опция CASCADE автоматически удаляет объекты, содержащиеся в указанной схеме (таблицы, функции и т. д.), и, в свою очередь, все зависящие от них объекты.

  2. Создайте схему для Artifactory: CREATE SCHEMA <схема>;.

Установка модуля Trigram#

Для корректной работы Artifactory требуется установка модуля pg_trgm, входящего в состав пакета postgresql-contrib.

Рассмотрим установку пакета postgresql-contrib. Для установки данного пакета пользователь PostgreSQL должен иметь права CREATE на текущей базе данных.

  1. Для выдачи прав воспользуйтесь следующей командой:

    grant create on database <имя_базы_данных> to <пользователь_базы_данных>;

  2. После предоставления прав CREATE для базы данных необходимо установить пакет postgresql-contrib:

    yum install postgresql-contrib

  3. Затем создайте расширение, выполнив следующую команду. Если ваш JDBC URL не указывает схему, используйте public:

    create extension pg_trgm schema <схема>;

  4. Когда установка будет завершена, созданное расширение должно отобразиться в списке:

    select * from pg_extension;

Установка и запуск на ВМ#

Информацию о предварительной настройке host системы можно найти в разделах Требования к виртуальной машине и Требования к настройке окружения.

  1. Проверка и подготовка окружения:

    Проверка и обновление ОС:

    cat /etc/redhat-release

    yum update.

    Проверка версии java и ее обновление:

    yum install java-11-openjdk

    java -version.

  2. Загрузка комплексного дистрибутива на хост в необходимый каталог и его распаковка:

    wget --user <имя пользователя> --ask-password https://host/path-to-distrib/ARR-2.3.0-1316-distrib.zip

    unzip ARR-2.3.0-1316-distrib.zip.

  3. Извлечение из каталога, после распаковки комплексного дистрибутива, архива с Artifactory:

    cp ./package/bh/nexus-base-template-2.3.0.zip /u01/.

    • Распаковка архива: sudo unzip -o -qq /u01/nexus-base-template-2.3.0.zip

  4. Настройка (редактирование) конфигурационных файлов Artifactory:

    vim /u01/nexus-base-template-2.3.0/bin/setenv, ниже представлены строчки файла, которые необходимо отредактировать:

    export JAVA_MIN_MEM=5G  # Устанавливает минимальный объем памяти для JVM
    export JAVA_MAX_MEM=5G  # Определяет максимальный объем памяти для JVM
    export JDBC_DB_URL=jdbc:postgresql://_path_to_/arr_vp # Здесь задается путь к базе данных, которая будет использоваться приложением
    export JDBC_DB_USER={USERNAME} # Имя пользователя, под которым происходит подключение к базе данных
    export JDBC_DB_PASSWORD={PASSWORD} # Пароль для подключения к базе данных под указанным пользователем
    export JDBC_DB_SCHEMA=arr_vp # Название схемы базы данных, к которой будет происходить подключение
    export JDBC_DB_ADVANCED=maximumPoolSize=100;maxLifetime=840000 # Дополнительные параметры соединения с базой данных (maximumPoolSize: Ограничивает максимальное число соединений в пуле подключений. maxLifetime: Время жизни соединения в миллисекундах перед закрытием)
    

    vim /u01/sonatype-work/nexus3/etc/nexus.properties, ниже представлены строчки файла, которые необходимо отредактировать:

    nexus-context-path=/nexus # Определяет путь, по которому сервис будет доступен через веб-интерфейс, http://<server_address>/nexus. Рекомендации: отредактируйте параметр, если на сервере уже используется аналогичный адрес для другого приложения
    
    nexus.scripts.allowCreation=true # Параметр разрешает создание скриптов. Рекомендуется оставить значение true, если планируется использовать скрипты для управления репозиториями или другими задачами. В противном случае, установите значение false для повышения безопасности
    nexus.onboarding.enabled=false # Включает или отключает процесс первоначальной настройки, который помогает новым пользователям настроить базовые параметры после установки Nexus. Рекомендации: Установите значение false, если вам не требуется помощь в начальной настройке
    nexus.ossindex.plugin.enabled=false # Управляет включением плагина OSS Index, который позволяет проверять зависимости на наличие уязвимостей и лицензий. Рекомендации: Оставьте значение true для включения проверки зависимостей на уязвимости. Если проверка не нужна, установите false
    nexus.security.randompassword=false # Указывает, следует ли генерировать случайный пароль для администратора при первом запуске. Рекомендации: При значении true, при первом старте Nexus будет создан случайный пароль, который нужно будет ввести вручную
    nexus.skipDefaultRepositories=true # Отключает автоматическое создание стандартных репозиториев при установке Nexus. Рекомендации: Значение true позволяет начать работу без предустановленных репозиториев. Если вам нужны стандартные репозитории, установите параметр в false
    

    cp /u01/package/bh/plugins/*.jar /u01/nexus-base-template-2.3.0/deploy/.

  5. Создание группы, пользователя и настройка прав доступа для рабочих каталогов (выполняется под учетной записью Root):

    groupadd --gid 200 -r arr - нужно изменить gid на актуальный

    useradd --uid 200 -r arr -g arr -s /bin/bash --no-create-home -d /u01/sonatype-work/nexus3 - нужно изменить uid на актуальный

    chown -R 200:200 /u01/nexus-base-template-2.3.0

    chown -R 200:200 /u01/sonatype-work

    ln -s /u01/nexus-base-template-2.3.0 /opt/artifactory

    systemctl daemon-reload

    systemctl enable artifactory.service.

  6. Запуск Artifactory (выполняется под учетной записью Root):

    systemctl start artifactory.service.

  7. Ручной вариант запуска:

    su - arr

    /u01/nexus-base-template-2.3.0/bin/nexus start - если после выполненных действий у пользователя arr недостаточно прав для запуска приложения, то проверьте выполнение команд из пункта 5.

    /u01/nexus-base-template-2.3.0/bin/nexus stop.

Установка и запуск в Docker#

Информацию о предварительной настройке host системы можно найти в разделах Требования к среде контейнеризации.

  1. Распакуйте архив с дистрибутивом.

  2. Заказать или установить PostgreSQL сервер баз данных. Параметры подключения к базе данных: host, port, database, schema, username, password.

  3. Скопировать или переименовать файл env.template в файл с именем .env . Заполнить файл .env данными, соотвествующими установке. В файле .env задайте обязательные параметры:

# TOOL_KEY Одно из двух значений: nci или ncd
TOOL_KEY=<значение>
# URL базы данных
JDBC_DB_URL=jdbc:postgresql://IP:PORT/DB
# Имя пользователя базы данных
JDBC_DB_USER=user
# Пароль к базе данных
JDBC_DB_PASSWORD=pass
# Схема базы данных
JDBC_DB_SCHEMA=nexus
JDBC_DB_ADVANCED=maximumPoolSize=50;maxLifetime=840000
# Для указания альтернативного базового образа alt:p10 раскомментируйте строку ниже и укажите образ
# Примечание. Базовый образ ALT в переменной BASE_IMAGE укажите из доступного registry.
# BASE_IMAGE=alt:p10

Примечание

«TOOL_KEY» - это ключ, который используется для построения контекста бокового меню. Ключ инструмента - его уникальный идентификатор среди экземпляров всех продуктов, которые с OneWork интегрированы. В компоненте реализована логика поиска текущего контекста проекта по части URL и ключа инструмента. Содержимое объекта «проект», которое вернется в результате поиска, будет использовано для наполнения меню содержимым. В логике продуктов ключ может использоваться для следующего:

  • Построение контекста в UI компоненте меню.

  • Получение нужных данных из заголовков безопасности:

Параметр

Описание

nci

Если проект требует более тщательного тестирования и контроля качества, то больше подойдет ci

ncd

Если проект требует частого и быстрого развертывания новых версий приложения, то больше подойдет cd

Указанные ключи помогают сопоставить элементы в Platform V Works::OneWork(SSD) и в меню, которое выводится слева от самого приложения.

  1. В файле nexus.properties поправить параметр nexus-context-path в соответствие с желаемым контекстом (напр. /, /nexus или /ssd/tools/arr-ci).

  2. Для настройки хранения BLOB-объектов на NFS сервере, а не на локальном диске, нужно раскомментировать секцию nfs-blobs в docker-compose.yml в разделах volumes и откорректировать путь до сетевой папки на NFS сервере.

...
volumes:
  nexus-data: # Локальный том
  # nfs-blobs:  # Сетевой том на NFS сервере (/etc/exports: /u01/ARR/nexus-ci/blobs *(rw,no_subtree_check))
  #   driver: local # Симуляция команды mount
  #   driver_opts:  # Опции команды mount (см. man mount (8), nfs (5), fstab (5), mount.nfs(5), exports(5), nfsmount.conf(5))
  #     type: nfs
  #     o: "addr=host_NFS_server,hard,rw,noatime,nfsvers=4.2" # nfsvers - версия nfs, noatime - отключение обновления времени обращения к файлам на nfs, hard - выводит на консоль сообщение “server not responding” при достижении таймаута и продолжает попытки монтирования 
  #     device: ":/u01/ARR/nexus-ci/blobs" # Сетевая папка на NFS сервере
...
...
    volumes:
      - 'nexus-data:/nexus-data'
      - '${PWD}/nexus.properties:/nexus-data/etc/nexus.properties'
      # - 'nfs-blobs:/nexus-data/blobs' # Сетевой том:локальная папка монтирования

На NFS сервере необходимо создать соответствующий каталог для blobs и файл /etc/exports должен иметь соответствующую настройку, например:

/u01/ARR/nexus-ci/blobs *(rw,sync,no_root_squash,no_subtree_check)
  1. Выполните команду сборки образа из дистрибутива:

    docker-compose build --no-cache

  2. Выполните команду запуска сервиса:

    docker-compose  up -d

  3. Проверьте работу сервиса по URL:

    http://<server-ip>:8081/<контекст из п.3>

Список переменных, интегрированных в arr#

Описание переменных, интегрированных в образ arr:

Переменная

По умолчанию

Описание

SONATYPE_DIR

/opt/sonatype

Каталог установки продуктов Sonatype

NEXUS_DATA

/nexus-data

Символическая ссылка на каталог с данными

JAVA_OPTS

-Xms5G -Xmx5G -Djava.util.prefs.userRoot=${NEXUS_DATA}/javaprefs

Параметры JAVA машины

SSD_URL

/

URL для подключения инструментов к SSD

TOOL_KEY

nci

Ключ инструмента для SSD, например, nci, ncd, ntest

MENU_KEY

dependencies

Ключ в меню SSD, например, dependencies, dependencies_test, deployment

GATEWAY_URL

Endpoint, который содержит протокол и доменное имя

ONEWORK_ENABLED

false

Флаг активации интеграции с SSD

JDBC_DB_URL

jdbc:postgresql://host:port/database

Параметры подключения к базе данных

JDBC_DB_USER

username

Имя пользователя базы данных

JDBC_DB_PASSWORD

password

Пароль пользователя базы данных

JDBC_DB_SCHEMA

schemaname

Имя схемы базы данных

JDBC_DB_ADVANCED

maximumPoolSize=200;maxLifetime=840000

maximumPoolSize - размер пула соединений, maxLifetime - время жизни соединения

Список интегрированных плагинов#

В образ arr интегрированы следующие плагины:

Название git репозитория плагина

Описание плагина

ARR-NEXUS-CUSTOM-UI-PLUGIN

-

ARR-NEXUS-THEME-PLUGIN

-

ARR-NEXUS-IAM-PLUGIN

-

arr-nexus-nuget-plugin

-

arr-nexus-docker-plugin

-

arr-nexus-keycloak-plugin

-

arr-nexus-repository-npm

-

Конфигурационный файл ./nexus.properties#

Пример заполнения конфигурационного файла:

application-port=8081 # Определяет порт, на котором будет работать ваше приложение
application-host=0.0.0.0 # Указывает IP-адрес, на который будет привязано ваше приложение
nexus-context-path=/arr
nexus.hazelcast.discovery.isEnabled=false # Включает или отключает механизм обнаружения кластеров Hazelcast. Hazelcast — это распределенная система кеширования и вычислений, используемая для координации работы узлов в кластере. Рекомендации: Установите значение true, если вы используете кластеризацию Nexus и хотите включить автоматическое обнаружение других узлов в сети. Если кластеризация не требуется, оставьте false.
nexus.scripts.allowCreation=true
nexus.onboarding.enabled=false
nexus.ossindex.plugin.enabled=false
nexus.skipDefaultRepositories=true
nexus.security.randompassword=false
artifactory.onework.enabled=false
jdbc.db_url=jdbc:postgresql://host:port/database
jdbc.db_schema=schemaname
jdbc.db_user=username
jdbc.db_password=password
jdbc.advanced=maximumPoolSize=200;maxLifetime=840000

Конфигурационный файл ./keycloak.json#

Пример заполнения конфигурационного файла:

{
  "realm": "arr",
  "auth-server-url": "https://domain/auth/",
  "ssl-required": "external",
  "resource": "artifactory",
  "verify-token-audience": true,
  "credentials": {
    "secret": "keycloaksecret"
  },
  "disable-trust-manager" : true,
  "allow-any-hostname" : true,
  "use-resource-role-mappings": true,  
  "confidential-port": 0,
  "policy-enforcer": {}
}

Запуск Artifactory в Docker#

Запуск и остановка менеджера репозитория происходит автоматически при запуске и остановке docker-compose.

Ограничения файловых дескрипторов для Docker#

Artifactory использует больше файловых дескрипторов, чем количество по умолчанию для каждого пользователя, разрешенное операционной системой Linux. Исчерпание файловых дескрипторов может привести к потере данных и прочим непредвиденным результатам. Перед запуском увеличьте ограничение на количество дескрипторов открытых файлов для пользователя, постоянно работающего с Artifactory, до 65536 или выше.

Установка arr через helm-chart#

Для развертывания arr с помощью helm-chart, необходимо предварительно подготовить следующие сущности k8s:

  1. Добавьте секрет для обеспечения возможности скачивания образов из приватного репозитория;

  2. Создайте namespace (NS), в котором будет развертываться arr.

Для работы arr необходимо интегрировать его с СУБД PostgreSQL, поэтому необходимо создать базу данных, пользователя с правами записи в базе и схему.

После выполнения подготовительных этапов, необходимо заполнить переменные в файле package/conf/values.yaml . Описание переменных файла values.yaml.

Переменная

По умолчанию

Обязательные к заполнению

Описание

createSecrets

false

+

Создавать манифесты Secret

imagePullSecrets

+

Список названий секретов для доступа к Docker-Registry

appName

arr

-

Техническое название Блока с описанием Приложения

image.repository

+

Путь к необходимому образу в Docker-Registry

image.tag

+

Тег для необходимого образа в Docker-Registry

env.GATEWAY_URL

+

Endpoint, который содержит протокол и доменное имя

env.MENU_KEY

dependencies/deployment

+

Обязательно при интеграции с SSD. Ключ в меню SSD. Для ci - dependencies, cd -deployment. Для остальных случаев значение определяет администратор Platform V Works::OneWork

env.ONEWORK_ENABLED

false

-

Обязательно при развертывании отдельным инструментом. Отключает боковое меню, которое необходимо при интеграции с Platform V Works::OneWork

env.SSD_URL

+

Обязательно при интеграции с SSD. Значение передает администратор Platform V Works::OneWork. URL для подключения инструментов к Platform V Works::OneWork

env.TOOL_KEY

nci

+

Обязательно при интеграции с Platform V Works::OneWork. Значение передает администратор Platform V Works::OneWork. Ключ инструмента для Platform V Works::OneWork

fileInConfigmap.synctask.properties.enable

true

+

Включение configmap для плагина nexus-repository-sync-plugin

fileInConfigmap.synctask.properties.apt

false

+

Включаем, когда данный репозиторий доступен в инсталляции

fileInConfigmap.synctask.properties.docker

false

+

Включаем, когда данный репозиторий доступен в инсталляции

fileInConfigmap.synctask.properties.helm

false

+

Включаем, когда данный репозиторий доступен в инсталляции

fileInConfigmap.synctask.properties.maven

true

+

Включаем, когда данный репозиторий доступен в инсталляции

fileInConfigmap.synctask.properties.npm

true

+

Включаем, когда данный репозиторий доступен в инсталляции

fileInConfigmap.synctask.properties.nuget

true

+

Включаем, когда данный репозиторий доступен в инсталляции

fileInConfigmap.synctask.properties.pypi

false

+

Включаем, когда данный репозиторий доступен в инсталляции

fileInConfigmap.synctask.properties.raw

true

+

Включаем, когда данный репозиторий доступен в инсталляции

fileInConfigmap.synctask.properties.r

false

+

Включаем, когда данный репозиторий доступен в инсталляции

plugins.copyToVolume

true

-

Включение копирования плагинов из image в отдельный volume (однократная операция, при тестах новых версий плагинов)

plugins.volumeName

data

-

Volume для копирования плагинов (.volFromCustom / volFromPVC), если plugins.copyToVolume включено

plugins.subPath

plugins

-

Название subPath в volume

resources.limits.cpu

1000m

+

Определение максимального объема CPU

resources.limits.memory

4Gi

+

Определение максимального объема Memory

resources.limits.ephemeral-storage

4Gi

+

Определение временного максимального объема хранилища для pod

resources.requests.cpu

500m

+

Определение минимально необходимого объема CPU для запуска pod

resources.requests.memory

2Gi

+

Определение минимально необходимого объема Memory для запуска pod

resources.requests.ephemeral-storage

4Gi

+

Определение временного минимального объема хранилища для pod

strategy.type

Recreate

+

Стратегия развертывания, при которой старый pod удаляется до создания нового (при обновлении / пересоздании)

service.enable

true

+

Активируем создания сервиса для приложения

service.ports.8081

http

+

Определяем название порта для маппинга

service.port80target

8081

+

Открытие дополнительного сервис-порта 80, трафик с которого пойдет на порт 8081

ingressDocker.enable

true

+

Блок с параметрами дополнительного ingress-правила, которое нужно для работы с docker-registry по HTTPS, без отдельного порта

ingressDocker.className

nginx

+

Определение className

ingressDocker.context_path

/arr/

+

Определение context_path для редиректа запроса от docker

ingressDocker.hosts.host

hostname.domain.ru

+

Определение URL host для доступа к ing приложения

ingress.enable

true

+

Включаем ing для приложения, если arr используется без связки с SSD

ingress.className

nginx

+

Определение className

ingress.annotations.nginx.ingress.kubernetes.io/proxy-body-size

1g

+

Добавляем необходимые annotations. Ограничение размера тела запроса 1Гбайтом

ingress.hosts.host

hostname.domain.ru

+

Определение URL host для доступа к ing приложения

ingress.paths.path

/arr/

+

Определяем префикс после URL

ingress.paths.pathType

Prefix

+

Определяем тип pathType

ingress.paths.port

8081

+

Определяем на какой порт в service переводим ing

volFromConfigmap.arr.path

/opt/sonatype/nexus/etc/synctask.properties

+

volFromConfigmap.arr.subPath

synctask.properties

+

volFromPVC.data.accessModes

ReadWriteOnce

+

Определение режима доступа к PVC

volFromPVC.data.className

csi-sbercloud-nd

+

Определение className для PV

volFromPVC.data.mounts.mountPath

/nexus-data

+

Определение директории в контейнере, к которой будет примонтирован PVC

volFromPVC.data.mounts.subPath

data

+

Определение название монтирования

volFromPVC.data.mounts.mountPath

/opt/sonatype/nexus/deploy

-

Определение директории с плагинами в контейнере, к которой будет примонтирован PVC

volFromPVC.data.mounts.subPath

plugins

-

Определение название монтирования

volFromPVC.data.size

10Gi

+

Определение размера PVC

volFromPVC.data.pvcNameOverride

«»

+

Переоределение имени PVC

volFromPVC.data.pvCreate

false

+

Создание PVC при развертывании приложения

volFromPVC.blobs.accessModes

ReadWriteOnce

+

Определение режима доступа к PVC

volFromPVC.blobs.className

csi-sbercloud-nd

+

Определение className для PV

volFromPVC.blobs.mounts.mountPath

/nexus-data/blobs

+

Определение директории в контейнере, к которой будет примонтирован PVC

volFromPVC.blobs.mounts.subPath

blobs

+

Определение название монтирования

volFromPVC.blobs.size

10Gi

+

Определение размера PVC

volFromPVC.blobs.pvcNameOverride

+

Переоределение имени PVC

volFromPVC.blobs.pvCreate

false

+

Создание PVC при развертывании приложения

volFromSecret.secrets.path

/nexus-data/etc/nexus.properties

+

Определение директории в контейнере, к которой будет примонтирован файл в секрете

volFromSecret.secrets.subPath

nexus.properties

+

Определение названия точки монтирования

volFromSecret.secrets.path

/opt/sonatype/nexus/etc/keycloak.json

+

Определение директории в контейнере, к которой будет примонтирован файл в секрете

volFromSecret.secrets.subPath

keycloak.json

+

Определение названия точки монтирования

secrets.enable

true

+

Включение YAML-манифеста с secrets

secrets.fileInSecret

nexus.properties

+

Шаблон файла YAML-манифеста secrets

secrets.fileInSecret

keycloak.json

+

Шаблон файла YAML-манифеста secrets

Развертывание helm-chart приложения#

Для развертывания понадобится утилита HELM v3.10-3.14.

  1. Задайте переменные окружения для CNAME (название helm-chart), VERS (версия helm-chart, описана в Chart.yaml), NS (name space в k8s), RNAME (название приложения, которое разворачиваем), SRC (директории, где находится helm-chart)

    CNAME=sbt-ci90000318-sbtws-arr ; VERS=1.0 ; NS=nexus ; RNAME=arr
    SRC=helm/application/sbt-ci90000318-sbtws-arr
    
  2. Создайте файл с секретными значениями _secrets-$RNAME.yaml , например _secrets-arr.yaml.В данном примере YAML-манифест secrets содержит в себе файл nexus.properties и keycloak.json (опционально)

    createSecrets: true
    secrets:
      enable: true
      fileInSecret:
        nexus.properties: |
          application-port=8081
          application-host=0.0.0.0
          nexus-context-path=/arr
          nexus.hazelcast.discovery.isEnabled=false
          nexus.scripts.allowCreation=true
          nexus.onboarding.enabled=false
          nexus.ossindex.plugin.enabled=false
          nexus.skipDefaultRepositories=true
          nexus.security.randompassword=false
          jdbc.db_url=jdbc:postgresql://host:port/database
          jdbc.db_schema=schemaname
          jdbc.db_user=username
          jdbc.db_password=password
          jdbc.advanced=maximumPoolSize=5;maxLifetime=840000
        keycloak.json: |
          {
            "auth-server-url": "https://domain/auth/",
            "realm": "arr",
            "ssl-required": "external",
            "resource": "artifactory",
            "verify-token-audience": true,
            "credentials": {
              "secret": "keycloaksecret"
            },
            "disable-trust-manager" : true,
            "allow-any-hostname" : true,
            "use-resource-role-mappings": true,
            "confidential-port": 0,
            "policy-enforcer": {}
          }
    
  3. Переименуйте/cкопируйте конфигурационный файл package/conf/values.yaml в файл $RNAME.yaml, например arr.yaml (без настоящих значений секретных переменных). Далее, рендерим YAML-манифесты с указанием конфиг-файлов (основной и с секретами).

    helm template $RNAME $SRC -n $NS --output-dir out -f $RNAME.yaml -f _secrets-$RNAME.yaml
    
  4. Примените YAML-манифест с секретными данными.

    kubectl apply -n $NS -f out/$CNAME/templates/secrets/
    
  5. Выполните развертывание приложения (без указания файла с секретами).

    helm upgrade --install $RNAME $SRC -n $NS -f $RNAME.yaml
    

Настройка интеграции#

Ниже описана процедура интеграции с рекомендованными АО «СберТех» продуктами. На усмотрение пользователя может быть настроена интеграция с аналогичным по функциональности продуктами от других производителей — см подраздел Системные требования.

Настройка интеграции заключается в настройке параметров взаимодействия с ПО окружения, описываемой в Руководстве по установке и выполняется в процессе установки компонента.

Platform V Pangolin SE (PSQ)#

Для настройки интеграции с БД укажите значения параметров подключения к БД (JDBC_DB_URL, JDBC_DB_USER, JDBC_DB_PASSWORD, JDBC_DB_SCHEMA, JDBC_DB_ADVANCED) в файле env.template.

Platform V Works::Pipeliner#

Вследствие того, что Artifactory обрабатывает входящие запросы Pipeliner, интеграция с программным продуктом выполняется в соответствии с Руководствами по установке и использованию продукта Platform V Works::Pipeliner.