Настройка интеграции со смежными сервисами#

Настройка интеграции со смежными сервисами происходит путем конфигурации параметров для конкретного внешнего сервиса в определенных ConfigMaps. Каждый смежный сервис имеет свой набор параметров:

Настройка интеграции с компонентом Аудит продукта Platform V Audit SE#

Для настройки интеграции сервиса Batch UI с компонентом Аудит продукта Platform V Audit SE (далее — Аудит):

  • в batch-ui.all.conf сконфигурируйте параметр:

# Включение интеграции с сервисом Аудит: true/false
UI_BACKEND_AUDIT_ENABLED=true
  • в batch-ui.istio.all.conf сконфигурируйте следующие параметры:

# Настройки (HOST, PORT, PROTOCOL, MODE) внешних сервисов для ServiceEntry Egress
UI_SE_AUDIT_HOST=<Обязательно к заполнению>
# В _PORT указывается нужный endpoint port. Пример: 443
UI_SE_AUDIT_PORT=<Обязательно к заполнению>
# Используемый протокол: https/http
UI_SE_AUDIT_PROTOCOL=<Обязательно к заполнению>
# MUTUAL/DISABLE в зависимости от протокола
# Примечание: Для сервисов, обращение к которым выполняется через протокол HTTPS, вызов от сервиса до Egress выполняется по протоколу HTTP, а от Egress до интегрируемого сервиса проксируется через HTTPS
UI_SE_AUDIT_TLS_MODE=<Обязательно к заполнению>
# Тайм-аут запроса с сервису Аудит через Istio. Пример: 5s
UI_SE_AUDIT_TIMEOUT=<Обязательно к заполнению>

# Настройки политики переповторов вызовов сервиса Аудит
# Количество повторных попыток
UI_SE_AUDIT_RETRIES_ATTEMPTS=2
# Тайм-аут на каждую попытку. Попытка считается неуспешной, если время ожидания ответа превышает тайм-аут
UI_SE_AUDIT_PER_TRY_TIMEOUT=3s
# Условия, при которых выполняется переповтор запроса (в формате перечисления)
UI_SE_AUDIT_RETRY_ON=5xx

При необходимости внесения изменений в интеграции Batch UI с внешними сервисами внесите соответствующие правки в batch-ui.istio.all.conf, после чего выполните повторный запуск Jenkins Job Deploy Tools сервиса Batch UI согласно соответствующей инструкции.

Проверку успешности проведения интеграции Batch Scheduler с внешними сервисами выполняйте в консоли сервиса, с которым выполняется интеграция.

Инструкция по включению/отключению работы health-check приведена в Руководстве системного администратора в разделе «Включение/отключение health-check для сервиса Аудит».

Настройка в случае развертывания без компонента Аудит#

Для настройки Batch Scheduler без интеграции компонента Аудит в batch-ui.all.conf сконфигурируйте параметр:

# Включение интеграции с сервисом Аудит: true/false
UI_BACKEND_AUDIT_ENABLED=true

Настройка интеграции с Сервисом аутентификации и авторизации (СПАС)#

Для корректной настройки интеграции сервиса Batch UI с компонентом Сервис аутентификации и авторизации (СПАС) обеспечьте выполнение следующих пререквизитов:

  1. Подключите сервис Batch UI к справочнику ABAC (Attribute — Based Access Control) (подробнее в Руководстве по системному администрированию в разделе «Подключение сервиса к ABAC и загрузка справочника атрибутов»).

  2. Загрузите справочник атрибутов.

Для настройки интеграции сервиса Batch UI с сервисом СПАС:

  1. В файле batch-ui.all.conf сконфигурируйте параметры:

# <!- заполните самостоятельно -> - значения параметров необходимо заполнить самостоятельно перед развертыванием сервиса
## Настройки интеграции с СПАС
# Включение интеграции с СПАС: true - интеграция включена; false - интеграция выключена
UI_BACKEND_ACCESS_ENABLED=true
  1. В файле batch-ui.istio.all.conf сконфигурируйте параметры:

# <!- заполните самостоятельно -> - значения параметров необходимо заполнить самостоятельно перед развертыванием сервиса

# Хосты: порты внешних сервисов для ServiceEntry Egress
UI_SE_SPAS_HOST=<!- заполните самостоятельно ->
UI_SE_SPAS_PORT=<!- заполните самостоятельно ->

## Используемый протокол: tls/http
UI_SE_SPAS_PROTOCOL=<!- заполните самостоятельно: tls/http ->

# MUTUAL/DISABLE в зависимости от протокола: MUTUAL для tls, DISABLE для http
SCHD_SE_SPAS_TLS_MODE=<!- заполните самостоятельно: MUTUAL/DISABLE ->
  1. В файл batch-ui.conf добавьте заголовок:

# Добавление заголовка iv-user для режима readonly: "proxy_set_header iv-user read-only-user;"
BATCH_UI_IV_USER_HEADER=<!- заполните самостоятельно ->
  1. Загрузите ролевые модели из дистрибутива на оба hosts СПАС и добавьте их в папки с хешами.

  2. Создайте в СПАС тенанты по шаблону для сервиса Batch Scheduler или для сервиса Batch Tasks и определите данные атрибутов пользователя.

При необходимости внесения изменений в интеграции Batch UI с внешними сервисами внесите соответствующие правки в batch-ui.istio.all.conf, после чего выполните повторный запуск Jenkins Job Deploy Tools сервиса Batch UI согласно соответствующей инструкции.

Проверку успешности проведения интеграции Batch UI с внешними сервисами выполняйте в консоли сервиса, с которым выполняется интеграция.

Настройка без интеграции с сервисом СПАС#

Для настройки сервиса Batch UI без интеграции с сервисом СПАС в файле batch-ui.all.conf сконфигурируйте следующие параметры:

## Настройки ui-server для интеграции с сервисом СПАС
# Включение интеграции с сервисом СПАС: true — интеграция включена; false — интеграция выключена
UI_BACKEND_ACCESS_ENABLED=false

Настройка интеграции с компонентом Объединенный мониторинг Unimon продукта Platform V Monitor#

Для настройки интеграции с компонентом Объединенный мониторинг Unimon установите сервис Объединенный мониторинг Unimon в соответствии с Руководством по установке на него.

Настройка интеграции с компонентом Журналирование продукта Platform V Monitor#

Выполнение настроек перед разворачиванием сервиса с новым типом интеграции (отправка трафика с лог-записями напрямую в Kafka logger вместо endpoint logger):

  1. В репозитории с настройками Jenkins Job Deploy Tools в файле fluent-bit.conf по пути: ansible/files/fluent-bit/<каталог сервиса>/ замените весь блок [OUTPUT] со строки Name http на новый блок:

[OUTPUT]
  Name kafka
  Match *
  timestamp_key timestamp
  Brokers <Хосты kafka logger>
  Topics  <Топик kafka logger>
  rdkafka.sticky.partitioning.linger.ms 4000
  rdkafka.queue.buffering.max.kbytes 5120
  rdkafka.ssl.key.location /app/certs/logger/logger_private-key.pem
  rdkafka.ssl.certificate.location /app/certs/logger/logger_cert.pem
  rdkafka.ssl.ca.location /app/certs/logger/logger_cacerts.cer
  rdkafka.security.protocol SSL

Note

В ConfigMap fluent-bit значение параметра rdkafka.security.protocol PLAINTEXT, так как трафик из sidecar прикладного pod выходит без шифрования (не считая шифрования внутри namespace) через Egress и оборачивается сертификатами на выходе. Подключение к брокерам Kafka происходит по SSL.

  1. Укажите значения параметров hosts и топик Kafka Logger:

# Заполнить значениями <DNS kafka logger с указанием портов>, пример: stend-kafka-01.opsmon.xxx:ххх,stend-kafka-02.opsmon.xxx:ххх,stend-kafka-03.opsmon.xxx:ххх
Brokers <Хосты Kafka Logger>
# Топик Kafka Logger
Topics <Топик Kafka Logger>
  1. В репозитории с настройками параметров сервиса в файле custom_property.yaml после блока хостов Kafka ПЖ добавьте новый блок hosts Kafka Logger. Пример:

# Блок хостов Kafka Logger
logger_kafka_hosts:
- host: stend-kafka-01.opsmon.xxx
  ip: xx.xx.xx.xx
  egress_port: xxx
  out_port: xxx
- host: stend-kafka-02.opsmon.xxx
  ip: xx.xx.xx.xx
  egress_port: xxx
  out_port: xxx
- host: stend-kafka-03.opsmon.xxx
  ip: xx.xx.xx.xx
  egress_port: xxx
  out_port: xx
  1. Добавьте параметр с указанием пути до образа. Пример:

## Путь до образа fluent-bit
fluent_bit_registry_path: <путь до образа>
  1. В репозитории с настройками в файле batch-ui.all.conf по пути config/parameters установите флаг включения сервиса Журналирование:

# Флаг включения/отключения интеграции с сервисом Журналирование
LOGGER_ENABLED=true
  1. В зависимости от интеграции с сервисом SecMan:

  • при интеграции с SecMan добавьте сертификаты и ключи в хранилище SecMan (подробнее о сертификатах приведено в разделе «Настройка интеграции с продуктом Secret Management System»);

  • при отсутствии интеграции с SecMan добавьте пути до сертификатов и ключей в файл ssl.conf.

Настройка в случае интеграции без компонента Журналирование

Для работы Batch UI без интеграции с компонентом Журналирование в репозитории с настройками в файле batch-ui.all.conf по пути config/parameters установите флаг отключения интеграции:

# Флаг включения/отключения интеграции с сервисом Журналирование
LOGGER_ENABLED=false

Настройка интеграции с компонентом One-Time Password (OTP) / OTT#

Сервис Batch UI может быть развернут как с возможностью интеграции с продуктом OTT, так и без него.

В случае, если сервис Batch будет развертываться с OTT, то должны быть произведены соответствующие настройки OTT в рамках работ по настройке namespace в системе оркестрации контейнерами. Подробнее приведено в разделе «Настройка OTT».

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

Для настройки интеграции сервиса Batch UI с OTT:

  1. Добавьте настройки host и путь до образа OTT в файл custom_property.yml в репозитории сервиса по пути: /conf/inventory/custom_property.yml в блок:

ott_registry_path: <путь до образа OTT>

ott_hosts:
  - host: <host сервера OTT>
    port: <порт сервера OTT>
    inner_port: <внутренний порт для маршрутизации Istio, выбирается самостоятельно>

В зависимости от количества hosts серверов OTT необходимо растиражировать блок. Пример приведен в файле.

  1. В файле batch-ui.ott-sidecar.all.conf сконфигурируйте адрес OTT сервера:

### Адрес OTT-сервера (в целевом варианте — FQDN). При заполнении в файле custom_property.yml нескольких блоков серверов OTT заполнение параметра должно быть в формате: host:inner_port. Пример: host1:inner_port1,host2:inner_port2,host3:inner_port3
OTT_SERVICE_HOSTS=<!- заполните самостоятельно ->
UI_SE_OTT_TLS_MODE=<!- заполните самостоятельно, например: MUTUAL ->

Файлы сертификатов OTT должны быть прописаны в ssl.conf:

# OTT
ssl.ui.ott.client.crt=ansible/files/ssl/ott/batch-ui.crt
ssl.ui.ott.client.key=ansible/files/ssl/ott/batch-ui.key
ssl.ui.ott.ott-service=ansible/files/ssl/ott/ott-service.crt
ssl.ui.ott.trustCa=ansible/files/ssl/ott/trustCa.crt

Проверку успешности проведения интеграции Batch UI с внешними сервисами выполняйте в консоли сервиса, с которым выполняется интеграция.

Настройка в случае развертывания без OTT#

Для настройки сервиса Batch UI с выключенной интеграцией с OTT в batch-ui.ott-sidecar.all.conf сконфигурируйте следующие параметры:

## Конфигурирование параметров для интеграции с сервисом OTT
 
### Включение интеграции с OTT: true — интеграция включена; false - интеграция выключена
OTT_ENABLED=false

Настройка интеграции с компонентом IAM Proxy продукта Platform V IAM SE#

Для настройки интеграции с компонентом IAM Proxy:

  1. Заведите заявку на администраторов сопровождения для получения сертификата (цепочку сертификатов) для соединения по TLS.

  2. Добавьте полученный сертификат в секрет ingressgateway-ca-certs/ca-chain.cert.pem.

Пример заявки:

junctionName: "BAT"
junctionPoint: /batch
indexUrl: /
sslCommonName: "<CN сертификата Ingress>"
https: True # default True
transparent: False # only False
serverAddresses: [ "<host:port>" ]
applyJctRequestFilter: "common/rds-set-header-host-to-backend.location.conf,common/rds-ssl-sni-on-batch.server.conf"

Настройка интеграции с компонентом IAM Proxy#

Для интеграции с компонентом IAM Proxy в файл batch-ui.istio.all.conf добавьте параметры:

## Значения для клиентского сертификата СУДИР (CN, Hash, path в URI ответвления СУДИР). Примеры значений: CN=00CA0003CSUDIR_IFT, Hash=9d05c659a4345ffe0ac3b117bcfbe936d66b60cb3eaa5adcc06ce196187ce8b4, path=/batch-scheduler/
CN_CERT_SUDIR=CN=<Обязательно к заполнению>
HASH_CERT_SUDIR=<Обязательно к заполнению>
CERT_PERMISSIONS_PATH_SUDIR=<Обязательно к заполнению>

Настройка интеграции с продуктом Secret Management System#

Принцип работы обновления секретов#

Период настройки задается на каждый секрет в vault-agent по формуле:

Math.max(minRenewal.getSeconds(),
lease.getLeaseDuration().getSeconds() - expiryThreshold.getSeconds())

где:

  • expiryThreshold (порог истечения срока действия), значение по умолчанию — 1 мин;

  • LeaseDuration — значение из vault-agent для секрета, значение по умолчанию: для vault-engine-kv — 200 ч; для TTL — 10 с (10s);

  • minRenewal — минимальное время опроса клиента, значение по умолчанию — 10 с.

Для установки времени опроса хранилища SecMan на наличие изменений в каждом хранилище SecMan добавьте пару "key-value". Например, для установки жизни токена равным 1 мин, введите: ttl=1m.

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

Для интеграции с Secret Management System (далее — SecMan):

  1. В хранилище секретов перенесите все секреты из системы оркестрации контейнерами.

Наименование секрета в системе оркестрации контейнерами

Наименование секрета в SecMan

Содержимое

istio-ingressgateway-ca-certs

ingressgateway-ca-certs

ca-chain.cert.pem

istio-ingressgateway-certs

ingressgateway-certs

tls.crt,
tls.key

istio-egressgateway-ca-certs

egressgateway-ca-certs

ca-chain.cert.pem

istio-egressgateway-certs

egressgateway-certs

tls.crt,
tls.key

batch-ui-ott-certs

ott-certs

batch-ui.crt,
batch-ui.key,
ott-service.crt,
trustCa.crt

batch-ui-logger-certs

logging-certs

logger_cacerts.cer, logger_cert.pem, logger_private-key.pem

  1. Создайте роль для доступа (роль vault по наименованию проекта системы оркестрации контейнерами) и предоставьте права на хранилище для доступа к секретам.

  2. Настройте параметры для управления подключением в файле batch-ui.secman.all.conf.

Параметр SECMAN_ENABLED позволяет управлять включением/выключением интеграции с SecMan. При задании параметра в false — все относящиеся к SecMan аннотации, лейблы и т.д. не будут включены в манифесты. При значении SECMAN_ENABLED=false секреты будут включены в установку, монтироваться секреты будут средствами системы оркестрации контейнерами.

Использование SecMan в конфигурации KV-engine#

Предусловия:

  • в файле batch-ui.secman.all.conf заполнен блок с уровнем доступа;

  • в файле batch-ui.secman.all.conf введено значение параметра SECMAN_URL.

Для использования SecMan в конфигурации KV-engine в файле batch-ui.secman.all.conf установите значение переменных:

  • SECMAN_KV_CERTS_ISTIO=true;

  • SECMAN_PKI_CERTS=false;

  • SECMAN_KV_APP=true.

Настройка приоритизации источников секретов#

Для организации поведения "fail-safe" существуют два источника получения секретов: kind: Secret и SecMan.

Для настройки приоритизации в файле batch-ui.secman.all.conf укажите приоритет, где 0 — максимальный приоритет.

# Флаг включения завершения запуска сервиса, если выявлены ошибки при запуске: true/false
SECMAN_FAIL_FAST=false

# Приоритет получения секретов из kind: Secret (0/1)
SECMAN_SPRING_PRIORITY=1

# Приоритет получения секретов из Vault (0/1)
SECMAN_VAULT_PRIORITY=0

Принудительное применение секретов сервиса Batch UI#

Для принудительного применения секретов в терминале любого pod, например, batch-ui-backend, выполните команду:

curl -X POST localhost:8080/actuator/secrets-refresh