Действия перед установкой Системы¶
Проверка доступа к репозиториям¶
Перед установкой Системы необходимо выполнить следующие действия:
- Получить учетные данные (логин/пароль или токен) для доступа к репозиторию образов контейнеров (container registry), где размещены образы.
- Получить учетные данные для доступа к Helm‑репозиторию, в котором размещен чарт «client-dossier».
-
Убедиться, что в конфигурации указаны корректные URL:
- Helm‑репозиторий: https://nexus.ldm.ru:8081/repository/ldm-products;
- Адрес container registry задается в файле «values.yaml» в параметре «default.repository» (например, «registry.your-company.local»).
Предварительная подготовка баз данных¶
Префикс {prefix} в именах баз данных должен соответствовать заданному значению в переменной values чарта, например, ENVIRONMENT_PREFIX: "demo".
До выполнения п. Установка системы необходимо на сервере PostgreSQL выполнить следующие действия:
- Создать базу данных «{prefix}_ldm_user_folders_db» для сервиса «ldm-user-folders-service».
- Создать базу данных «{prefix}_documents_export_db» для сервиса «ldm-documents-export-service».
Примеры команд без паролей/адресов:
sql
CREATE DATABASE {prefix}_ldm_user_folders_db;
CREATE DATABASE {prefix}_documents_export_db;
Проверка Helm-репозиториев¶
Список Helm-репозиториев должен содержать репозиторий «ldm-products».
Перед установкой Системы нужно выполнить проверку Helm-репозиториев:
- Убедиться в том, что репозиторий «ldm» подключен, выполнив команду:
helm repo list
В выводе должна присутствовать строка с именем «ldm» и URL https://nexus.ldm.ru:8081/repository/ldm-products.
2. Если репозиторий отсутствует, нужно его добавить, выполнив команду:
helm repo add ldm-products https://nexus.ldm.ru:8081/repository/ldm-products --username {username} --password {password}
3. Обновить список чартов, используя команду:
helm repo update
Репозиторий «ldm-products» будет добавлен.
Поиск и скачивание версии чарта¶
Для поиска версии чарта 1.3.0 нужно выполнить команду:
helm search repo client-dossier --devel
В результатах должна отображаться строка с CHART VERSION 1.3.0 и APP VERSION 1.3.0:
ldm-products/client-dossier
Далее нужно скачать чарт 1.3.0, для этого нужно выполнить следующие действия:
- Выполнить команду:
helm pull ldm-products/client-dossier --version=1.3.0
2. Распаковать полученный архив:
tar -xzf client-dossier-1.3.0.tgz
3. Перейти в распакованную директорию:
cd client-dossier
Версия чарта 1.3.0 будет скачана.
Настройки в файле «values.yaml»¶
Файл «values.yaml» расположен в директории «client-dossier /values.yaml».
Необходимо открыть файл «values.yaml» и настроить параметры.
Важно актуализировать следующие разделы:
# Префикс окружения. ВНИМАНИЕ! В именах базы данных POSTGRESQL_NAME тире "-" в значении переменной меняется на подстрочное тире "_". demo-test : > demo_test
ENVIRONMENT_PREFIX: "demo"
# Глобальная секция
default:
# LOG_LEVEL: info # Раскомментировать, чтобы изменить глобальный уровень логирования
ingress:
host: "ldm.test" # Хост для Ingress Kubernetes
ingressClassName: nginx # Класс Ingress
clusterIssuer: k8s-clusterissuer # Рекомендуется не менять без крайней необходимости
tls:
enabled: true # Используется ли TLS/SSL
secretName: ldm-secret-tls # Имя секрета для TLS/SSL, необходимо предварительно создать секрет с файлами ca.crt, tls.crt, tls.key
image:
repository: "nexus.ldm.ru:8081" # Репозиторий Docker-образа
repositoryPath: docshouse # Путь к репозиторию Docker-образа
pullPolicy: Always # Политика извлечения образов
pullSecrets: [] # Список секретов, необходимых для извлечения образов
volume: {} # Выключено по умолчанию
# size: 500Gi # Размер PV, если поддерживает storageClass
# mount: "/u01/docshouse/nfs" # Папка монтирования в контейнер
# storageClassName: nfs-client # Имя StorageClass, используемого для хранения данных
schedulingRules:
nodeSelector: {} # Ключ-значение для выборочного планирования по узлам
affinity: {} # Аффинити для выбора узлов
tolerations: [] # Список Tolerations для обработки неподходящих узлов
securityContext: {} # Конфигурация securityContext для контейнеров
# Монтирование trustStore в Java контейнеры. Нужно при использовании самоподписанных сертификатов
jks: {}
# editJavaOpts: false # Исправлять автоматически содержимое переменной JAVA_OPTS
# secretName: jks-secret # Имя секрета для хранения ключа файла jks. Необходимо предварительно создать Java trustStore и создать из него secret
# mountData: trusted.jks # Имя файла trustStore
# mountPath: /u01/docshouse/config # Путь, где будут смонтирован trustStore
# password: changeit # Пароль для доступа к файлу jks
# storeType: jks # Тип хранилища
# Монтирование Keystore в Java контейнеры. Нужно, если используется проверка сертификата клиента
keystore: {}
# editJavaOpts: false # Исправлять автоматически содержимое переменной JAVA_OPTS
# secretName: keystore-secret # Имя секрета для хранения ключа файла jks. Необходимо предварительно создать Java trustStore и создать из него secret
# mountData: keystore.jks # Имя файла trustStore.
# mountPath: /u01/docshouse/config # Путь, где будет смонтирован trustStore
# password: changeit # Пароль для доступа к файлу jks
# storeType: jks # Тип хранилища
# key_password: changeit # Пароль к ключу клиента
cacertificates: {} # Монтирование CA для DOTNET микросервисов. Нужно при использовании самоподписанных сертификатов
# secretName: server-cert
# mountData: ca.crt
# mountPath: /truststore
serviceAccount: "" # Имя serviceAccount для предоставления доступа к сервисам
service:
health_path: "/actuator/health" # Путь для проверки работоспособности сервиса
health_port: "8080" # Порт для проверки работоспособности сервиса
port: "8080" # Порт, на котором сервис принимает запросы
services:
postgresql:
create_dbs: "false" # Создавать ли базы данных при развертывании
POSTGRESQL_HOST: "192.168.1.45" # IP-адрес PostgreSQL сервера
POSTGRESQL_PORT: "5432" # Порт PostgreSQL сервера
POSTGRESQL_SCHEMA: public # Схема для подключения к базе данных
POSTGRESQL_USER: "postgres" # Имя пользователя для подключения к базе данных
POSTGRESQL_PASSWORD: "123456" # Пароль для пользователя PostgreSQL
kafka:
KAFKA_URL_LIST: "192.168.1.45:9092" # Список адресов и портов для подключения к Apache Kafka, через запятую
KAFKA_AUTH: "NONE" # Тип авторизации в Apache Kafka - "NONE" - работает без авторизации, "PLAIN" - необходимо указать пользователя и пароль, "OAUTH2" - будут использоваться настройки Keycloak, для работы UMA/RPT токена OAUTH2_PASSWORD
KAFKA_LOGIN: "" # Apache Kafka пользователь
KAFKA_PASSWORD: "" # Apache Kafka пароль
KAFKA_KEYCLOAK_URL: "http://192.168.1.45:8080" # URL-адрес Keycloak сервера
KAFKA_KEYCLOAK_REALM: "DH" # Имя Realm в Keycloak
KAFKA_KEYCLOAK_CLIENT_ID: "dh-backend" # Имя клиента KEYCLOAK_CLIENT_ID Keycloak
KAFKA_KEYCLOAK_CLIENT_SECRET: "ed59z6xnrosxlpOzh8AmkBbO7uecDnH9" #Секретный ключ клиента Keycloak
KAFKA_KEYCLOAK_UMA_ENABLED: "false" # Режим UMA/RPT токенов
KAFKA_KEYCLOAK_AUDIENCE: "kafka" # Название ресурса (для выдачи прав в Keycloak) при работе с UMA/RPT токенами
KAFKA_KEYCLOAK_USERNAME: "kafka-login" # Логин авторизации для получения UMA/RPT токена
KAFKA_KEYCLOAK_PASSWORD: "V3rY$tR0NgP@$$" # Пароль авторизации для получения UMA/RPT токена
KAFKA_SSL_ENABLED: "false" # Если брокер используется SSL, выставить в true
KAFKA_SSL_ENABLED_PROTOCOLS: TLSv1.2,TLS # Используемые протоколы TLS
elasticsearch:
ELASTICSEARCH_HOST: "192.168.1.45" # IP-адрес Elasticsearch сервера
ELASTICSEARCH_PORT: "9200" # Порт Elasticsearch сервера
keycloak:
KEYCLOAK_URL: "http://192.168.1.45:8080" # URL-адрес Keycloak сервера
KEYCLOAK_REALM: "DH" # Имя Realm в Keycloak
KEYCLOAK_WEBCLIENT_ID: "dh-webclient" # ID веб-клиента Keycloak
KEYCLOAK_WEBCLIENT_SECRET: "PUPgFrcCYd6bEkyoMCztKsbiFj5RsHS9" # Секретный ключ веб-клиента Keycloak
OAUTH2_KEYCLOAK_CLIENT_ID: "ldm-client" # ID клиента Keycloak для OAuth2
OAUTH2_KEYCLOAK_CLIENT_SECRET: "lp4eSstxlQVETA4bgYLI2Qy3niibTNEq" # Секретный ключ клиента Keycloak
KEYCLOAK_CLIENT_ID: "dh-backend" # Имя клиента Keycloak
KEYCLOAK_CLIENT_SECRET: "ed59z6xnrosxlpOzh8AmkBbO7uecDnH9" # Секретный ключ клиента Keycloak
syslog:
DH_SYSLOG_FACILITY: "1" # Номер Facility Syslog
DH_SYSLOG_HOST: 192.168.1.45 # IP-адрес Syslog сервера
DH_SYSLOG_MESSAGE_FORMAT: RFC_5424 # Формат сообщений Syslog
DH_SYSLOG_PORT: "514" # Порт Syslog сервера
DH_SYSLOG_PROTOCOL: UDP # Протокол Syslog
redis:
REDIS_HOST: "192.168.1.45" # IP-адрес Redis сервера
REDIS_PORT: "6379" # Порт Redis сервера
REDIS_CLUSTER_ENABLED: "false" # Включена ли кластеризация Redis
REDIS_NODES: "" # Список узлов кластера Redis с портами, через запятую
REDIS_USER: "default" # Имя пользователя для доступа к Redis
REDIS_PASSWORD: "" # Пароль для доступа к Redis
license:
LDM_LICENSE_HMAC_KEY: "{4B037037-0C19-447C-B7E7-1FC1A79E30E0}" # Ключ лицензии LDM
secretName: "" # Имя секрета с файлом лицензии
accessrights_key:
DH_ACCESSRIGHTS_TOKEN_SECRET_KEY: YmnMJUCqgRisYj2WMi6BXi6hgmBqKNFj # Секретный ключ для токенов доступа
r7_integration:
R7_BASE_URL: http://172.19.91.25 # URL-адрес интеграции с R7
R7_JWT_SECRET: fB0HehaxIbFv # Секретный ключ для JWT
mail:
DH_EMAIL_SERVICE_EMAIL_HOST: "192.168.1.35" # IP-адрес почтового сервера
DH_EMAIL_SERVICE_EMAIL_PORT: "25" # Порт почтового сервера
DH_EMAIL_SERVICE_EMAIL_BOX: "noreply@mail.example.com" # Email-адрес для отправки почты
DH_EMAIL_SERVICE_EMAIL_PASSWORD: "password" # Пароль для отправки почты
DH_EMAIL_SERVICE_EMAIL_USER: "user" # Имя пользователя для отправки почты
reports: {} # Секция для дополнительных коннектов у службы отчетов. Обычно не требуется
# extraConnections:
# - database: bar_db
# host: db-bar
# port: "5433"
# provider: PostgreSQL
# user: bar_user
# password: bar_pass
printing:
CUPS_HOST: 192.168.1.45 # Хост сервера печати
CUPS_PORT: 631 # Порт сервера печати
CUPS_USERNAME: print # Пользователь сервера печати
CUPS_PASSWORD: print # Пароль сервера печати
#настройки LDM DSS
signatures:
secretName: '' # Имя секрета для хранения клиентских сертификатов
secretNameCA: '' # Имя секрета для хранения СА доверенных сертификатов
mountPath: /crypto_certs # Путь, где будут храниться сертификаты
mountPathCA: /crypto_ca_certs # Путь, где будут храниться сертификаты
#mountData: ldm-ss-test.pfx # Имя файла, который нужно смонтировать в контейнере. DEPRECATED
LDM_DSS_PIN: 111 # PIN для сертификата
LDM_DSS_HOST: "http://172.19.91.48" # Хост сервера LDM DSS
LDM_DSS_ARCHIVE_URL: "https://dsud-cp-ar.LAN.LANIT.RU:32764" # URL-адрес архива LDM DSS.
LDM_DSS_CLIENT_ID: ldm.signService.api # ID клиента LDM DSS
LDM_DSS_CLIENT_SECRET: nTM5pB1G07FpsKD3ChygGnFmuRNIf5Ro # Секретный ключ клиента LDM DSS
LDM_DSS_ARCHIVE_CERTIFICATE_THUMBPRINT: "a1f4fc061bc27c318c26b1897a48ccdac91c8971" # Отпечаток сертификата LDM DSS
LDM_ADMIN_ROLE: dh-admin # Роль администратора LDM DSS
zeebe:
ZEEBE_HOST: "zeebe-zeebe-gateway" # Имя хоста для интеграции с Zeebe
ZEEBE_PORT: "26500" # Порт для интеграции с Zeebe
jaeger:
MANAGEMENT_TRACING_ENABLED: false # Включение отправки трейсов в Jaeger
MANAGEMENT_TRACING_ENDPOINT: http://jaeger-collector.monitoring.svc.cluster.local:4318/v1/traces # URL Jaegger
Важно! Все значения из примеров являются демонстрационными и не должны использоваться в реальных средах. Нужно обязательно заменить их на актуальные для инфраструктуры организации.
Рекомендуется не хранить секреты в открытом виде в файле «values.yaml». Для production-сред нужно использовать Kubernetes Secrets, External Secrets Operator или подстановку значений через CI/CD-переменные с флагом --set.