Пример заполненного файла vars.yml#
Установка в OpenShift#
Ниже представлен полный список значений по умолчанию, которые при необходимости можно переопределить в своем inventory.
Базовый файл для OS#
Базовый файл — файл Ansible/inventories/!EXAMPLE_OS!/group_vars/all/vars.yml, содержащий минимум настроек для корректной установки приложения.
Пример заполненного базового файла vars.yml:
openshift_url: https://api.example.ru:6443 # Адрес подключения к openshift
openshift_token: "{{ token }}" # токен подключения к openshift
openshift_namespace: _PLACEHOLDER_ # наименование пространства в openshift
scheduler: # В OpenShift/Kubernetes
name: example # Суффикс деплоймента. !!! Только строчные буквы, цифры и знак минус. Иначе будет ошибка и деплоймент не сработает !!!
registry: "registry" # Адрес репозитория до образа~~
registry_path: "path/to" # Путь в репозитории
replicas: 2 # Количество реплик
pullImage: "TUZ" # ТУЗ для подключения к репозиторию образов
healthCheckPort: 8081 # Порт проверки состояния доступности приложения
jvmArgs: "-noverify -XX:+AlwaysPreTouch -XX:+AlwaysActAsServerClassMachine -XX:+UseContainerSupport" # Дополнительные аргументы JVM
#resources: # Пример переопределения дефолтных ресурсов
# limits: # Ресурсы для лимитов
# cpu: 10.5 # Устанавливаемый лимит для CPU
# memory: 1600000M # Устанавливаемый лимит для памяти
# requests: # Ресурсы для запросов
# cpu: 10.3 # Запрашиваемое CPU
# memory: 1400000M # Запрашиваемая памяти
# Аннотации для Deployment
annotations:
"sidecar.istio.io/inject": "false" # Включение/выключение интеграции с Сервисным прокси SVPX/ istio
serviceAccountName: sa-fpss # Имя serviceAccount используемое для развертывания EVPT
# cluster: # Настройки akka кластера
# management:
# port: 8082
# remote:
# port: 8002
# timeoutes:
# unstable: "120s"
# init: "15s"
# join: "120s"
scheduler:
port: "8092" # Порт на котором запускается EVPT
logLevel: "info" # Уровень логирования трансформации сообщений
parallel: 1 # Количество параллельных потоков обработки для одного экземпляра приложения
akka: # Общие параметры для системы акторов
logger: # Параметры логирования акторов
startupTimeout: "30s" # Таймаут инициализации системы логирования акторов
routeHostName: apps.example.ru # Host создаваемого route
audit:
audit.service.type: log # Логирование событий
Расширенный файл настроек для OS#
Расширенный файл — файл Ansible/roles/scheduler_os/defaults/main.yml. Представляет из себя пример всех изменяемых настроек со значениями «по умолчанию». Любую из указанных настроек можно перенести в свой vars.yml для переопределения ее значения.
При использовании HashiCorp Vault необходимо выбрать один из вариантов получения сертификатов.
Ниже представлен вариант выпуск сертификата через «PKI Engine HashiCorp Vault».
Данный файл подразумевает включение всех блоков для работы с EVPT:
#helm_cli: helm # путь до helm
#kubeconfig_path: /home/user/kubeconfig # путь до файла kubeconfig (может быть зашифрован через ansible-vault)
api_url: https://api.example.ru:6443 # URL API openshift/k8s (не требуется при наличии kubeconfig_path)
token: __PLACEHOLDER__ # токен пользователя (сервис аккаунта) для установки (не требуется при наличии kubeconfig_path)
skip_tls_verify: false # игнорировать проверку доверия для URL API (не требуется при наличии kubeconfig_path)
namespace: my-evpt-namespace # наименование проекта в openshift/k8s
ansible_no_log: true # Маскирование сенситивных сообщений в ansible
scheduler:
name: example # Суффикс деплоймента !!! Только строчные буквы, цифры и знак минус. Иначе будет ошибка и деплоймент не сработает !!!
openshiftInstall: true # Установка в openshift (true) или в k8s (false)
registry: "registry" # Адрес репозитория до образа
registry_path: "path/to" # Путь в репозитории
pullImage: "TUZ" # ТУЗ для подключения к репозиторию образов
serviceAccountName: sa-fpss # Имя serviceAccount используемое для развертывания EVPT
replicas: 1 # Количество реплик
# Параметры healthCheck
healthCheck:
healthCheckPort: 8080 # Порт проверки состояния доступности приложения
changeLoggersAvailable: false # Возможность изменения уровня незаданных в logback логеров
changeRootAvailable: false # Возможность изменения уровня root логера
# Ожидание старта Vault Sidecar, при наличии аннотации "vault.hashicorp.com/agent-inject" со значением true
waitVault: true
# Ожидание старта Istio Sidecar, при наличии аннотации "sidecar.istio.io/inject" со значением true
waitIstio: true
#jvmArgs: "" # Дополнительные аргументы JVM
# Пример переопределения парамметров readinessProbe
#readinessProbe:
# initialDelaySeconds: 30
# timeoutSeconds: 10
# periodSeconds: 10
# successThreshold: 1
# failureThreshold: 20
# Пример переопределения парамметров livenessProbe
#livenessProbe:
# initialDelaySeconds: 40
# timeoutSeconds: 10
# periodSeconds: 10
# successThreshold: 1
# failureThreshold: 20
# FeatureToggle для включения/отключения антитенантности (pod anti-affinity)
# Если значение установлено в true, то антитенантность будет применена к подам,
# чтобы они не размещались на одном узле (node).
# Значение по умолчанию: true
feature:
SelfAntiAffinity:
enabled: true
rollingUpdate:
maxUnavailable: 25% # Максимальное количество недоступных подов во время обновления
maxSurge: 25% # Максимальное количество дополнительных подов во время обновления
# Пример переопределения дефолтных ресурсов
#resources:
# limits: # Ресурсы для лимито
# cpu: 10.5 # Устанавливаемый лимит для CPU
# memory: 1600000M # Устанавливаемый лимит для памяти
# requests: # Ресурсы для запросов
# cpu: 10.3 # Запрашиваемое CPU
# memory: 1400000M # Запрашиваемая память
annotations: {} # Аннотации для Deployment
labels: {} # Лейблы для Deployment, добавляются как есть
"sidecar.istio.io/inject": "false" # Включение istio
cluster: # Настройки akka кластера
scheduler:
port: 8092
management:
port: 8082
remote:
port: 8002
timeoutes:
unstable: "120s"
init: "15s"
join: "120s"
scheduler:
port: "8092" # Порт на котором запускается EVPT
logLevel: "debug" # Уровень логирования трансформации сообщений
parallel: 1 # Количество параллельных потоков обработки для одного экземпляра приложения
# ssl:
# truststore.location: /path/to/*.jks # Сертификат для scheduler
# truststore.password: __PLACEHOLDER__ # Пароль от keyStore
# keystore.location: /path/to/*.jks # Путь до keystore
# keystore.password: __PLACEHOLDER__ # Пароль keystore
# key.password: __PLACEHOLDER__ # Пароль для сертификата
# keystore.mode: 600 # Права для keystore хранилища
# truststore.mode: 600 # Права для truststore хранилища
# vault.address: https://vault.address # HashiCorp Vault URL
# vault.pki.role.name: test1 # Имя роли в PKI Engine
# vault.pki.common.name: EVPT # Common name (CN) для генерации сертификатов
# vault.auth.type: approle # Тип аутентификации. Доступные значения: approle, token, password, cert. Значение по умолчанию: approle
# vault.auth.role.id: <role_id> # Role ID для типа аутентификации approle
# vault.auth.secret.id: <secret.id> # Secret ID для типа аутентификации approle
# vault.tls.enable: "true" # Включение/выключение TLS
# vault.tls.keystore.location: /path/to/*.jks # Путь до keystore
# vault.tls.keystore.password: password # Пароль keystore
# vault.tls.key.password: password # Пароль ключа key
# vault.tls.truststore.location: /path/to/*.jks # Путь до truststore
# vault.tls.truststore.password: password # vault.tls.truststore.password
# vault.engine.version: 1 # Версия API для key-value машины. Значение по умолчанию: 1
# vault.secret.path: kv1/interceptor # Секретный путь для ключа, keystore и truststore паролей
# vault.secret.key: key # Secret key для пароля ключа
# vault.secret.keystore: keystore # Secret key для keystore пароля
# vault.secret.truststore: truststore # Secret key для truststore пароля
environment:
LANG: "ru_RU.UTF-8" # Язык для локализации сообщений программы
LC_ALL: "ru_RU.UTF-8" # Устанавливает язык и локализацию для всех категорий
LANGUAGE: "en_US:en:ru_RU.UTF-8:ru_RU:ru" # Язык для интерфейса пользователя и сообщений об ошибках
fluentBit: # Подключение к fluentBit
create: false
# logLevel: info # Уровень логирования
# image: fluent-bit:latest # Используемый образ fluent-bit
# kafka: # Настройки Kafka, в которую будут отправляться логи
# brokers: localhost:9092
# topics: logstash
# protocol: SSL
# keyFilePath: /vault/logger-key.pem
# certificateFilePath: /vault/logger-cert.pem
# caFilePath: /vault/logger-cacerts.pem
# extraConfig: # Опциональные парамтеры для Kafka
# rdkafka.queue.buffering.max.messages: 100000
# rdkafka.request.required.acks: 1
# rdkafka.ssl.key.password: <password>
# resources: # Опциональная настройка ресурсов для fluentBit
# limits:
# cpu: 100m
# memory: 200mi
# requests:
# cpu: 50m
# memory: 100mi
telemetry: # Конфигурация для Open Telemetry
# config:
# file_format: "0.1"
# resource:
# attributes:
# service.name: "<имя сервиса>"
# propagators: [ tracecontext ]
# tracer_provider:
# processors:
# - simple:
# exporter:
# otlp:
# endpoint: http://<host>:<port>
# sampler:
# always_on: { }
pekko: # Общие параметры для системы акторов
logger: # Параметры логирования акторов
startupTimeout: "30s" # Таймаут инициализации системы логирования акторов
logback:
level: info # Общий уровень логирования (error, debug, info, warn)
# loggers: # Настройка дополнительных логеров. В примере ниже указан пакет и уровень логирования
# - name: "org.apache.kafka"
# level: warn
# - name: "com.typesafe.akka"
# level: debug
# rest: # HTTP appender для отправки логов через rest адаптер EVTA
# url: exampleadapter
# port: 8081
# path: /publish/ALPHA/K2_IAZCommon/Common/example/TESTA/1
# reconnectDelay: 10
# never_block: true # блокировка работы приложения при недоступности rest адаптера (при true недоставленные сообщения отбрасываются)
# discarding_threshold: 20 # процент свободного места в очереди отправки сообщений при достижении которого будут удаляться сообщения уровня TRACE, DEBUG, INFO
# queue_size: 512 # размер очереди для отправки
# kafka:
# topic: <topic_name> # Наименование топика
# retries: 3 # Количество переиницилизаций продюсера
# interval: 1000 # Интервал между переиницилизациями
# multiplier: 1 # Множитель интервала переинициализации
# properties:
# "bootstrap.servers": "hostname-1:9092,hostname-2:9092" # Bootstrap подключения к Apache Kafka вида host:port,host2:port2
# "client.id": "scheduler" # Client id для подключения
# "config.providers": decode # Объявление провайдера шифрования паролей. Значение не изменять
# "config.providers.decode.class": ru.sbt.ss.kafka.DecryptionConfigProvider # Класс провайдера шифрования паролей. Значение не изменять
# "config.providers.decode.param.security.encoding.key": ssl/secret.pass # Путь до файла, содержащего ключ шифрования паролей
# "config.providers.decode.param.security.encoding.class": ru.sbt.ss.password.BaseEncryptor # Класс шифрования паролей. Значение не изменять
# "security.protocol": SSL # Тип протокола подключения. Значение по умолчанию: SSL
# "ssl.endpoint.identification.algorithm": "" # Обязательный параметр. Значение "" не изменяемое. Отключение проверки хостнейма в сертификате, обязательно для стендов кафки
# "ssl.keystore.location": "/path/to/*.jks" # Путь до хранилища сертификатов, для отправки логов в kafka
# "ssl.truststore.location": "/path/to/*.jks" # Путь до truststore
# "ssl.keystore.password": <password> Пароль от keystore
# "ssl.truststore.password": <password> # Пароль от truststore
# "ssl.key.password": <password> # Пароль для key.password
# vaultConfigsFile: # Настройки подключения к Vault, помещаются в файл из параметра vault.properties.file
# security.encoding.class: ru.sbt.ss.password.BaseEncryptor # Класс шифрования паролей
# security.encoding.key: file:ssl/secret.pass # Путь до файла с ключом шифрования
# ssl.vault.address: https:/host:port # Адрес vault-сервера
# ssl.vault.namespace: "" # Используемое пространство в vault
# ssl.vault.tls.enable: "true" # Включение/выключение безопасного подключения к vault
# ssl.vault.tls.keystore.location: ssl/vault-client.jks
# ssl.vault.tls.keystore.password: "{{ jks_password }}"
# ssl.vault.tls.key.password: "{{ jks_password }}"
# ssl.vault.tls.truststore.location: ssl/vault-client.jks # Хранилище доверенных сертификатов для безопасного подключения к vault
# ssl.vault.tls.truststore.password: "{{ jks_password }}" # Пароль от хранилища доверенных сертификатов
# ssl.endpoint.identification.algorithm: "" # Отключение проверки хостнейма в сертификате
# ssl.vault.auth.type: approle # Тип аутентификации
# ssl.vault.auth.role.id: role.id # Role ID для типа аутентификации approle
# ssl.vault.auth.secret.id: secret.id # Secret ID для типа аутентификации approle
# ssl.vault.pki.mount: "pki" # Путь до API движка выпуска сертификатов в Vault pki
# ssl.vault.pki.role.name: default # Имя роли в PKI Engine
# ssl.vault.pki.common.name: EVPT-logback # Common name (CN) для генерации сертификатов
# ssl.vault.pki.email: vasya@rambler.ru # Email для генерации сертификатов
# ssl.keystore.location: ssl/vault-keystore.jks # Путь до keystore хранилища
# ssl.keystore.mode: 600 # Права для keystore хранилища на файловой системе
# ssl.truststore.location: ssl/vault-truststore.jks # Путь до truststore хранилища
# ssl.truststore.mode: 600 # Права для keystore хранилища на файловой системе
# ssl.vault.secret.path: kv1/certstore # Секретный путь для паролей от ключа, keystore и truststore
# ssl.vault.engine.version: 1 # Версия API для key-value машины
# ssl.vault.secret.key: password # Secret key для пароля от ключа
# ssl.vault.secret.keystore: password # Secret key для пароль от keystore
# ssl.vault.secret.truststore: password # Secret key для пароля от truststore
routeHostName: apps.stands-vdc01.solution.sbt # Имя хоста для роута
ingress:
create: false
name: ''
hostName: '' # суффикс роута/ингресса
ssl: false
ingressClassName: ''
annotations: {}
# Openshift
# openshift.io/host.generated: 'true'
# haproxy.router.openshift.io/balance: roundrobin
# Kubernetes
# haproxy-ingress.github.io/ssl-passthrough: 'true'
# ingress.kubernetes.io/rewrite-target: '/' # не включает endpoint в запрос (/server/clean -> /clean)
quartz: # Дополнительные настройки quartz
properties: # Database properties
org.quartz.jobStore.class: "org.выquartz.impl.jdbcjobstore.JobStoreTX" # Селектор JobStore
org.quartz.jobStore.dataSource: "quartzDataSource" # Значением этого свойства должно быть имя одного из источников данных, определенных в файле свойств конфигурации
org.quartz.jobStore.tablePrefix: "QRTZ_" # Строка, равная префиксу, присвоенному таблицам Quartz, которые были созданы в вашей базе данных. У вас может быть несколько наборов таблиц Quartz в одной базе данных, если они используют разные префиксы таблиц.
org.quartz.jobStore.driverDelegateClass: "org.quartz.impl.jdbcjobstore.PostgreSQLDelegate" # Конкретный «диалект» различных систем баз данных.
org.quartz.dataSource.quartzDataSource.driver: "org.postgresql.Driver" # Стандартная настройка библиотеки quartz
org.quartz.dataSource.quartzDataSource.URL: "jdbc:postgresql://localhost:5432/scheduler" # URL подключения к БД
org.quartz.dataSource.quartzDataSource.user: "user" # Пользователь для подключения к БД
org.quartz.dataSource.quartzDataSource.password: "password" # Пароль для пользователя
# Non-database specific properties
org.quartz.scheduler.instanceName: "DatabaseScheduler" # Имя инстанса шедулера (будет использоваться только если имеется несколько шедулеров, работающих с одной и той же базой, тогда у них должно совпадать значение этого параметра)
org.quartz.scheduler.instanceId: "EXAMPLE_INSTANCE" # Идентификатор инстанса шедулера (будет использоваться только если имеется несколько шедулеров, работающих с одной и той же базой, тогда у них не должно совпадать значение этого параметра. Можно использовать значение "AUTO" в качестве идентификатора экземпляра, если хотите, чтобы идентификатор был сгенерирован.)
org.quartz.scheduler.skipUpdateCheck: "true" # Следует ли пропустить запуск быстрого веб-запроса, чтобы определить, доступна ли обновленная версия Quartz для загрузки. Если проверка будет выполнена и обновление будет найдено, оно будет указано как доступное в логах.
# Настройки хранилища (storage)
# storage:
# type: kafka # Тип хранилища
# bootstrap.servers: "localhost:9092" # Адреса серверов Kafka
# group.id: "test-group" # Идентификатор группы
# auto.offset.reset: "earliest" # Поведение при сбросе смещения
# topic: "test" # Имя используемого топика
audit: # Параметры аудита
audit.service.type: log # Логирование событий
# Отправка событий в ТС Аудит
# audit.service.type: http
#
# Идентификатор узла
# "audit.service.node.id": "hostname-1"
# Название инсталляции
# "audit.service.source.system": "source.system"
#
# Параметры подключения к ТС Аудит
# "audit.service.url.base": "http://ext-http.audit2-http-proxy.apps.stands-vdc01.solution.sbt"
# "audit.service.url.event.path": "/v1/event"
# "audit.service.url.metamodel.path": "/v1/metamodel"
#
# Параметры SSL для подключения к ТС Аудит
# "audit.service.ssl.enabled": "false"
# "audit.service.ssl.keystore": "keystore.jks"
# "audit.service.ssl.keystore.password": "password"
# "audit.service.ssl.key.password": "password"
# "audit.service.ssl.truststore": "truststore.jks"
# "audit.service.ssl.truststore.password": "password"
# "audit.service.ssl.protocol": "TLSv1.2"
# "audit.service.ssl.verify.hostname": "false"
#
# Параметры метамодели событий аудита
# Путь до метамодели (можно не указывать, по умолчанию метамодель загружается из ресурсов приложения)
# "audit.service.audit.service.metamodel.path": ""
# Отправлять метамодель при старте приложения
# "audit.service.send.metamodel": "true"
# Переопределить module.id метамодели
# "audit.service.metamodel.module = Scheduler
# Переопределить версию метамодели
# "audit.service.metamodel.version = 1.0
#
# Параметры переотправки событий аудита
# "audit.service.redelivery.enabled": "true"
# "audit.service.add.redelivery.headers": "true"
#
# "audit.service.redelivery.buffers": "in-memory-buffer"
# "audit.service.redelivery.in-memory-buffer.type": "queue"
# "audit.service.redelivery.in-memory-buffer.max.size": "10k"
# "audit.service.redelivery.in-memory-buffer.clear.logger.name": "memory"
# ## Настройка kafka-транспорта для событий аудита
# audit.service.transport.type: kafka # Тип транспорта, http или kafka, по умолчанию http
# audit.service.metamodel.topic: metamodel-topic # Имя топика для отправки метамодели
# audit.service.event.topic: event-topic # Имя топика для отправки событий
# audit.service.kafka.bootstrap.servers: "localhost:9093" # Адреса kafka
# ## ОПЦИОНАЛЬНО Сериализаторы (по умолчанию org.apache.kafka.common.serialization.StringSerializer)
# audit.service.kafka.key.serializer: org.apache.kafka.common.serialization.StringSerializer
# audit.service.kafka.value.serializer: org.apache.kafka.common.serialization.StringSerializer
# ## ОПЦИОНАЛЬНО идентификатор клиента
# audit.service.kafka.client.id: audit-producer
# ## ОПЦИОНАЛЬНО настройки ssl
# audit.service.kafka.security.protocol: SSL
# audit.service.kafka.ssl.keystore.location: ssl/keystore.jks
# audit.service.kafka.ssl.keystore.password: password
# audit.service.kafka.ssl.truststore.location: ssl/truststore.jks
# audit.service.kafka.ssl.truststore.password: password
# audit.service.kafka.ssl.endpoint.identification.algorithm: ""
# "audit.service.request.timeout.ms": "30000" # Максимальное время требуемое на отправку события аудита
# audit.service.ssl.vault.pem.trust.path: kv1/kvtrust # Путь до Key-Value секрета c доверенными сертификатами в формате PEM
# audit.service.ssl.vault.pem.trust.aliases: ca1, ca2 # Список ключей в секрете, содержимое которых необходимо загрузить в хранилище доверенных сертификатов
# Конфигурация аудита для получения сертификатов из HashiCorp Vault
# audit.service.ssl.keystore.location: ${vault:ssl.keystore.location} # Путь до keystore хранилища сертификата, где будет размещен сертификат сгенерированный Vault
# audit.service.ssl.truststore.location: ${vault:ssl.truststore.location} # Путь до truststore хранилища
# audit.service.ssl.keystore.mode: 600 # Права для keystore хранилища
# audit.service.ssl.truststore.mode: 600 # Права для truststore хранилища
# audit.service.ssl.vault.address: https:/host:port # HashiCorp Vault URL.
# audit.service.ssl.vault.pki.role.name: <role_name> # Имя роли в PKI Engine
# audit.service.ssl.vault.pki.common.name: <common_name> # Common name (CN) для генерации сертификатов
# audit.service.ssl.vault.pki.mount: "" # Путь до API движка выпуска сертификатов в Vault pki
# audit.service.ssl.vault.pki.email: email@example.com # Email для генерации сертификатов
# audit.service.ssl.vault.namespace: "" # Используемое пространство в vault
# audit.service.ssl.vault.auth.type: approle # Тип аутентификации в vault
# audit.service.ssl.vault.auth.role.id: <role_id> # Role ID для типа аутентификации approle
# audit.service.ssl.vault.auth.secret.id: "{{ vault_secret }}" # Secret ID для типа аутентификации approle
# audit.service.ssl.vault.tls.enable: "true" # Наличие защищенного соединения с HashiCorp Vault
# audit.service.ssl.vault.tls.truststore.location: /path/to/*.jks # Путь до truststore хранилища
# audit.service.ssl.vault.tls.truststore.password: "{{ jks_password }}" # Пароль от truststore хранилища
# audit.service.ssl.vault.engine.version: 1 # Версия API для key-value машины
# audit.service.ssl.vault.secret.path: path/to/certstore # Секретный путь для ключа, keystore и truststore паролей
# audit.service.ssl.vault.secret.key: key # Secret key для пароля ключа
# audit.service.ssl.vault.secret.keystore: keystore # Secret key для keystore пароля
# audit.service.ssl.vault.secret.truststore: truststore # Secret key для truststore пароля
# audit.service.ssl.vault.pem.trust.path: kv1/kvtrust # Путь до Key-Value секрета c доверенными сертификатами в формате PEM
# audit.service.ssl.vault.pem.trust.aliases: ca1, ca2 # Список ключей в секрете, содержимое которых необходимо загрузить в хранилище доверенных сертификатов
# audit.service.redelivery.memory.type: queue # Тип буфера
# audit.service.redelivery.memory.max.size: 100m # Максимальный размер буфера, может быть установлен в гига/мега/кило/байтах,например: 1024, 1024b, 100k, 10m, 1g, -1 для неограниченного размера
# audit.service.redelivery.kafka-buffer.ssl.keystore.location: ${vault:ssl.keystore.location} # Путь до keystore хранилища сертификата, где будет размещен сертификат сгенерированный Vault
# audit.service.redelivery.kafka-buffer.ssl.truststore.location: ${vault:ssl.truststore.location} # Путь до truststore хранилища
# audit.service.redelivery.kafka-buffer.ssl.endpoint.identification.algorithm: "" # Обязательный параметр. Значение "" неизменяемое. Отключение проверки хостнейма в сертификате, обязательно для стендов Kafka
# '"audit.service.redelivery.kafka-buffer.config.providers"': vault # Обязательно в кавычках
# audit.service.redelivery.kafka-buffer.config.providers.vault.class: ru.sbt.ss.kafka.VaultConfigProvider # Объявление провайдера шифрования паролей. Значение не изменять
# audit.service.redelivery.kafka-buffer.config.providers.vault.param.security.encoding.class: ru.sbt.ss.password.BaseEncryptor # Значение не изменяется. Используемый класс для расшифровки пароля
# audit.service.redelivery.kafka-buffer.config.providers.vault.param.security.encoding.key: file:path/to/encrypt.pass # Путь до файла, содержащего ключ шифрования паролей
# audit.service.redelivery.kafka-buffer.config.providers.vault.param.ssl.vault.address: https:/host:port # HashiCorp Vault URL.
# audit.service.redelivery.kafka-buffer.config.providers.vault.param.ssl.vault.tls.enable: "true" # Наличие защищенного соединения с HashiCorp Vault
# audit.service.redelivery.kafka-buffer.config.providers.vault.param.ssl.vault.tls.truststore.location:
# audit.service.redelivery.kafka-buffer.config.providers.vault.param.ssl.vault.tls.truststore.password: "{{ jks_password }}" # Пароль от truststore хранилища
# audit.service.redelivery.kafka-buffer.config.providers.vault.param.ssl.endpoint.identification.algorithm: "" # Обязательный параметр. Значение "" неизменяемое. Отключение проверки хостнейма в сертификате, обязательно для стендов Kafka
# audit.service.redelivery.kafka-buffer.config.providers.vault.param.ssl.vault.auth.type: approle # Тип аутентификации. Доступные значения: approle, token, password, cert
# audit.service.redelivery.kafka-buffer.config.providers.vault.param.ssl.vault.auth.role.id: <role_id> # Role ID для типа аутентификации approle
# audit.service.redelivery.kafka-buffer.config.providers.vault.param.ssl.vault.auth.secret.id: "{{ vault_secret }}" # Secret ID для типа аутентификации approle
# audit.service.redelivery.kafka-buffer.config.providers.vault.param.ssl.vault.pki.mount: "" # Путь до API движка выпуска сертификатов в Vault pki
# audit.service.redelivery.kafka-buffer.config.providers.vault.param.ssl.vault.pki.role.name: <role_name> # Имя роли в PKI Engine
# audit.service.redelivery.kafka-buffer.config.providers.vault.param.ssl.vault.pki.common.name: <common_name> # Common name (CN) для генерации сертификатов
# audit.service.redelivery.kafka-buffer.config.providers.vault.param.ssl.keystore.location: ${vault:ssl.keystore.location} # Путь до keystore хранилища сертификата, где будет размещен сертификат сгенерированный Vault
# audit.service.redelivery.kafka-buffer.config.providers.vault.param.ssl.truststore.location:${vault:ssl.truststore.location} # Путь до truststore хранилища
# audit.service.redelivery.kafka-buffer.config.providers.vault.param.ssl.vault.secret.path: path/to/certstore # Секретный путь для ключа, keystore и truststore паролей
# audit.service.redelivery.kafka-buffer.config.providers.vault.param.ssl.vault.engine.version: 1 # Версия API для key-value машины
# audit.service.redelivery.kafka-buffer.config.providers.vault.param.ssl.vault.secret.key: key # Secret key для пароля ключа
# audit.service.redelivery.kafka-buffer.config.providers.vault.param.ssl.vault.secret.keystore: keystore # Secret key для keystore пароля
# audit.service.redelivery.kafka-buffer.config.providers.vault.param.ssl.vault.secret.truststore: truststore # Secret key для truststore пароля
# audit.service.redelivery.kafka-buffer.config.providers.vault.param.ssl.vault.pki.email: email@example.com # Email для генерации сертификатов
# audit.service.redelivery.kafka-buffer.config.providers.vault.param.ssl.vault.namespace: "" # Используемое пространство в vault
# Пример использования для файлового буфера:
# audit.service.redelivery.file-buffer.type: file # Тип буфера
# audit.service.redelivery.file-buffer.file.name: buffers/redelivery.txt # Используемый файл
# audit.service.redelivery.file-buffer.encryption.enabled: true # Включить шифрование событий
# audit.service.redelivery.file-buffer.encryption.class: ru.sbt.ss.password.BaseEncryptor # ОПЦИОНАЛЬНО Указать класс шифрования, по умолчанию ru.sbt.ss.password.BaseEncryptor
# audit.service.redelivery.file-buffer.encryption.encrypt.key: file:ssl/secret.pass # Ключ шифрования (encrypt.key)
# audit.service.redelivery.file-buffer.encryption.encrypt.algorithm: PBEWithHmacSHA512AndAES_256 # Алгоритм шифрования (algorithm), по умолчанию PBEWithHmacSHA512AndAES_256
istio: # настройки манифестов Istio
peerAuthentication:
create: false
# name: peer-auth-0
# mtls_mode: PERMISSIVE # UNSET (default) | DISABLE | PERMISSIVE | STRICT
ingress:
create: false
hostName: '' # суффикс роута/ингресса
#ingressClassName: ''
annotations: {}
# Openshift
# openshift.io/host.generated: 'true'
# haproxy.router.openshift.io/balance: roundrobin
# Kubernetes
# haproxy-ingress.github.io/ssl-passthrough: 'true' # если есть tls
# ingress.kubernetes.io/rewrite-target: '/' # не включает endpoint в запрос (/server/clean -> /clean)
#targetService: ''
#targetPortName: ''
#targetPortNumber: ''
gateway:
name: ingressgateway
create: false
selector:
app: ingressgateway
istio: ingressgateway
tls:
caCertificates: /vault/ingress/ca.pem
mode: MUTUAL
privateKey: /vault/ingress/key.pem
serverCertificate: /vault/ingress/crt.pem
service:
create: false
name: ingressgateway-svc
selector:
app: ingressgateway
istio: ingressgateway
virtualService:
create: false
name: ingress-vs
destinationRule:
create: false
name: ingress-dr
# outlierDetection:
# consecutive5xxErrors: 5
# interval: 5m
# baseEjectionTime: 5m
# maxEjectionPercent: 50
deployment:
create: false # создавать ли Deployment для istio ingressgateway
readinessProbe: {}
# initialDelaySeconds: 1
# timeoutSeconds: 1
# periodSeconds: 2
# successThreshold: 1
# failureThreshold: 30
name: evpt-ingressgateway
# resources:
# limits:
# cpu: 0.1
# memory: 128M
# requests:
# cpu: 0.1
# memory: 64M
annotations:
sidecar.istio.io/inject: 'false'
# # Дополнительные аннотации для граничного прокси. Здесь можно описать импорт сертификатов из vault/secman
# vault.hashicorp.com/agent-inject-secret-ca.pem: 'true'
# vault.hashicorp.com/secret-volume-path-ca.pem: /vault/ingress
# vault.hashicorp.com/namespace: DEV_example
# vault.hashicorp.com/role: role-ga-secman-eda
# vault.hashicorp.com/secret-volume-path-key.pem: /vault/ingress
# vault.hashicorp.com/agent-inject: 'true'
# vault.hashicorp.com/agent-inject-secret-key.pem: 'true'
# vault.hashicorp.com/agent-init-first: 'true'
# vault.hashicorp.com/agent-limits-cpu: 100m
# vault.hashicorp.com/agent-requests-cpu: 100m
# vault.hashicorp.com/secret-volume-path-crt.pem: /vault/ingress
# vault.hashicorp.com/agent-inject-secret-crt.pem: 'true'
# vault.hashicorp.com/agent-inject-template-key.pem: |
# {%- raw %}
# {{- with secret "PKI/issue/role-ga-secman-eda"
# "common_name=evpt.eda.solution.sbt" "format=pem" "ttl=20h"
# "private_key_format=pkcs8" -}}
# {{ .Data.private_key }}
# {{- end }}
# {%- endraw %}
# vault.hashicorp.com/agent-inject-template-ca.pem: |
# {%- raw %}
# {{- with secret "PKI/issue/role-ga-secman-eda"
# "common_name=evpt.eda.solution.sbt" "format=pem" "ttl=20h"
# "private_key_format=pkcs8" -}}
# {{- range $idx, $cert := .Data.ca_chain }}
# {{ $cert }}
# {{- end }}
# {{- end }}
# {%- endraw %}
# vault.hashicorp.com/agent-inject-template-crt.pem: |
# {%- raw %}
# {{- with secret "PKI/issue/role-ga-secman-eda"
# "common_name=evpt.eda.solution.sbt" "format=pem" "ttl=20h"
# "private_key_format=pkcs8" -}}
# {{ .Data.certificate }}
# {{- end }}
# {%- endraw %}
labels: {}
# secman-injector: enabled # лейбл для активации интеграции с secman vault agent injector
istioDiscoveryService: istiod # название discovery сервиса панели истио к которой подключен ваш неймспейс
istioControlPlane: control-plane-01 # название неймспейса контрольной панели истио к которой подключен ваш неймспейс
proxyImage: image # ссылка на образ граничного прокси (IGEG)
egress:
deployment:
create: false # создавать ли Deployment для istio egressgateway
name: evpt-egressgateway
# resources:
# limits:
# cpu: 0.1
# memory: 128M
# requests:
# cpu: 0.1
# memory: 64M
annotations:
sidecar.istio.io/inject: 'false'
# # Дополнительные аннотации для граничного прокси. Здесь можно описать импорт сертификатов из vault/secman
# vault.hashicorp.com/agent-inject-template-cert.pem: |
# {%- raw %}
# {{- with secret "A/DEV/SY/EVTD/KV/example-audit-cert" -}}
# {{ index .Data "cert" }}
# {{- end }}
# {%- endraw %}
# vault.hashicorp.com/agent-inject-secret-ca.pem: 'true'
# vault.hashicorp.com/secret-volume-path-ca.pem: /vault
# vault.hashicorp.com/namespace: DEV_example
# vault.hashicorp.com/role: role-ga-secman-eda
# vault.hashicorp.com/agent-inject-secret-cert.pem: 'true'
# vault.hashicorp.com/secret-volume-path-key.pem: /vault
# vault.hashicorp.com/agent-inject: 'true'
# vault.hashicorp.com/secret-volume-path-cert.pem: /vault
# vault.hashicorp.com/agent-inject-secret-key.pem: 'true'
# vault.hashicorp.com/agent-init-first: 'true'
# vault.hashicorp.com/agent-limits-cpu: 200m
# vault.hashicorp.com/agent-requests-cpu: 200m
# vault.hashicorp.com/agent-inject-template-key.pem: |
# {%- raw %}
# {{- with secret "A/DEV/SY/EVTD/KV/example-audit-cert" -}}
# {{ index .Data "key" }}
# {{- end }}
# {%- endraw %}
# vault.hashicorp.com/agent-inject-template-ca.pem: |
# {%- raw %}
# {{- with secret "A/DEV/SY/EVTD/KV/example-audit-cert" -}}
# {{ index .Data "ca" }}
# {{- end }}
# {%- endraw %}
labels: {}
# secman-injector: enabled # лейбл для активации интеграции с secman vault agent injector
istioDiscoveryService: istiod # название discovery сервиса панели истио к которой подключен ваш неймспейс
istioControlPlane: control-plane-01 # название неймспейса контрольной панели истио к которой подключен ваш неймспейс
proxyImage: image # ссылка на образ граничного прокси (IGEG)
egressService: # параметры сервиса Egress
# name: "egressgateway0-svc" # имя сервиса Egress
create: false # создавать ли манифест сервиса
# internalPort: 9443 # внутренний порт Egress
# selector: # содержимое поля spec.selector в манифесте сервиса
# app: egressgateway-tribe-sy-synes-dev
# istio: egressgateway-tribe-sy-synes-dev
gateway: # параметры манифеста Gateway для Istio Egress
# name: egressgateway0-gw # имя манифеста
create: false # создавать ли манифест
# selector: # содержимое поля spec.selector в манифесте
# istio: egressgateway-tribe-sy-synes-dev
destinationRule:
# name: egressgateway0-dr
create: false
# tls:
# mode: MUTUAL # DISABLE | SIMPLE | MUTUAL (own certs) | ISTIO_MUTUAL (control plane certs)
# caCertificates: /path/to/egress/certificates/ca-chain.cert.pem
# clientCertificate: /path/to/egress/certificates/tls.crt
# privateKey: /path/to/egress/certificates/tls.key
# outlierDetection:
# consecutive5xxErrors: 5
# interval: 5m
# baseEjectionTime: 5m
# maxEjectionPercent: 50
# # После задания параметров перенаправления для kafka, из прикладного приложения к bootstrap серверу нужно обращаться на хост следующего формата:
# # {название_сервиса_egressgateway}.{имя_неймспейса}.svc.cluster.local:{gwPort_для_кафки_указываемый_ниже}
kafka: [] # параметры для направления kafka трафика через istio egressgateway. Можно указать список bootstrap серверов кафки
# - hosts: bootstrap.server1.host:9093,bootstrap.server2.host:9093 # хост и порт bootstrap серверов кафки. Если кластер, можно указать несколько. Разделитель ","
# gwPort: 10092 # порт сервиса egressgateway по которому будет доступна кафка изнутри неймспейса
# gwTls:
# mode: ISTIO_MUTUAL # Валидные значения: "PASSTHROUGH", "SIMPLE", "MUTUAL", "AUTO_PASSTHROUGH", "ISTIO_MUTUAL", "OPTIONAL_MUTUAL"
# destinationRule: # параметры для манифеста DestinationRule Istio для кафки
# create: true # создавать ли манифест
# outlierDetection:
# consecutive5xxErrors: 5
# interval: 5m
# baseEjectionTime: 5m
# maxEjectionPercent: 50
# tls:
# mode: MUTUAL
# clientCertificate: /path/to/egress/certificates/ca-chain.cert.pem
# privateKey: /path/to/egress/certificates/tls.crt
# caCertificates: /path/to/egress/certificates/tls.key
# virtualService: # параметры для манифеста VirtualService для кафки
# create: true # создавать ли манифест
vault: # параметры для интеграции с HashiCorp Vault
# host: srv-68-6.sy.dev.sbt # хост сервиса HashiCorp Vault
# port: 8200 # порт сервиса HashiCorp Vault
# externalPort: 8200 # порт сервиса HashiCorp Vault
# # Порты и протоколы ниже используются в манифестах VirtualService, Gateway, Gateway Service
# # Поддерживаемые gwSvc протоколы - "SCTP", "TCP", "UDP"
# gwPort: 9444 # порт на egressGateway
# gwProtocol: TLS # протокол на egressGateway
# gwSvcProtocol: TCP # протокол на service egressGateway
# gwTls:
# mode: ISTIO_MUTUAL # Валидные значения: "PASSTHROUGH", "SIMPLE", "MUTUAL", "AUTO_PASSTHROUGH", "ISTIO_MUTUAL", "OPTIONAL_MUTUAL"
destinationRule: # параметры для манифеста DestinationRule Istio
# name: epf-vault-dr # имя манифеста
create: false # создавать ли манифест
# tls: # параметры TLS в манифесте spec.trafficPolicy.portLevelSettings[0].tls
# mode: MUTUAL
# caCertificates: /path/to/egress/certificates/ca-chain.cert.pem
# clientCertificate: /path/to/egress/certificates/tls.crt
# privateKey: /path/to/egress/certificates/tls.key
# sni: vault.host
virtualService: # параметры для манифеста VirtualService
# name: scheduler-vault-vs # имя манифеста
# protocol: http # протокол для создания virtual service. Валидные значения: http, tls, tcp
create: false # создавать ли манифест VirtualService
audit: # параметры для интеграции с сервисом Аудита
# host: ext-http.audit2-http-proxy.apps.stands-vdc01.solution.sbt # хост сервиса Аудита
# port: 80 # порт сервиса Аудита
# externalPort: 443 # порт сервиса Аудита
# # Порты и протоколы ниже используются в манифестах VirtualService, Gateway, Gateway Service
# # Поддерживаемые gwSvc протоколы - "SCTP", "TCP", "UDP"
# gwPort: 9443 # порт на egressGateway
# gwProtocol: HTTP # протокол на egressGateway
# gwSvcProtocol: TCP # протокол на service egressGateway
# gwTls:
# mode: ISTIO_MUTUAL # Валидные значения: "PASSTHROUGH", "SIMPLE", "MUTUAL", "AUTO_PASSTHROUGH", "ISTIO_MUTUAL", "OPTIONAL_MUTUAL"
destinationRule: # параметры для манифеста DestinationRule Istio
# name: epf-audit-dr # имя манифеста
create: false # создавать ли манифест
# tls: # параметры TLS в манифесте spec.trafficPolicy.portLevelSettings[0].tls
# mode: MUTUAL
# caCertificates: /path/to/egress/certificates/ca-chain.cert.pem
# clientCertificate: /path/to/egress/certificates/tls.crt
# privateKey: /path/to/egress/certificates/tls.key
virtualService: # параметры для манифеста VirtualService
# name: epf-audit-vs # имя манифеста
# protocol: http # протокол для создания virtual service. Валидные значения: http, tls, tcp
create: false # создавать ли манифест VirtualService
telemetry: # параметры для интеграции с OpenTelemetry
# host: telemetry.url # хост сервиса OpenTelemetry
# port: 80 # порт сервиса OpenTelemetry для обращения из pod'а
# externalPort: 443 # порт сервиса OpenTelemetry
# # Порты и протоколы ниже используются в манифестах VirtualService, Gateway, Gateway Service
# # Поддерживаемые gwSvc протоколы - "SCTP", "TCP", "UDP"
# gwPort: 9449 # порт на egressGateway
# gwProtocol: HTTP # протокол на egressGateway
# gwSvcProtocol: TCP # протокол на service egressGateway
# gwTls:
# mode: ISTIO_MUTUAL # Валидные значения: "PASSTHROUGH", "SIMPLE", "MUTUAL", "AUTO_PASSTHROUGH", "ISTIO_MUTUAL", "OPTIONAL_MUTUAL"
destinationRule: # параметры для манифеста DestinationRule Istio
name: telemetry-dr # имя манифеста
create: false # создавать ли манифест
# tls:
# mode: MUTUAL
# caCertificates: /path/to/egress/certificates/ca-chain.cert.pem
# clientCertificate: /path/to/egress/certificates/tls.crt
# privateKey: /path/to/egress/certificates/tls.key
# outlierDetection:
# consecutive5xxErrors: 5
# interval: 5m
# baseEjectionTime: 5m
# maxEjectionPercent: 50
virtualService: # параметры для манифеста VirtualService
name: telemetry-vs # имя манифеста
protocol: http # протокол для создания virtual service. Валидные значения: http, tls, tcp
create: false # создавать ли манифест VirtualService
postgres: # настройки манифестов Istio для работы с базой данных
# - host: postgres.host # хост сервиса Postgres; указывать валидный SAN из сертификата
# port: 5432 # порт сервиса Postgres для обращения из pod'а
# externalPort: 5432 # порт сервиса Postgres
# # Порты и протоколы ниже используются в манифестах VirtualService, Gateway, Gateway Service
# # Поддерживаемые gwSvc протоколы - "SCTP", "TCP", "UDP"
# gwPort: 9445 # порт на egressGateway
# gwProtocol: TCP # протокол на egressGateway
# gwSvcProtocol: TCP # протокол на service egressGateway
# gwTls:
# mode: ISTIO_MUTUAL # Валидные значения: "PASSTHROUGH", "SIMPLE", "MUTUAL", "AUTO_PASSTHROUGH", "ISTIO_MUTUAL", "OPTIONAL_MUTUAL"
destinationRule:
create: false # создавать ли манифест
# tls:
# mode: MUTUAL # DISABLE | SIMPLE | MUTUAL (own certs) | ISTIO_MUTUAL (control plane certs)
# caCertificates: /path/to/egress/certificates/ca-chain.cert.pem
# clientCertificate: /path/to/egress/certificates/tls.crt
# privateKey: /path/to/egress/certificates/tls.key
# outlierDetection:
# consecutive5xxErrors: 5
# interval: 5m
# baseEjectionTime: 5m
# maxEjectionPercent: 50
virtualService: # параметры для манифеста VirtualService
create: false # создавать ли манифест VirtualService
# Массив serviceEntry, которые нужно создать
# Для postgres указать протокол postgres, а не tcp
# serviceEntry:
# - host: my_hostname
# port:
# name: tcp-kafka
# number: 9092
# protocol: TCP
# resolution: DNS
# annotations: # расскомментировать если нужно чтобы serviceEntry осталась после helm uninstall
# "helm.sh/resource-policy": keep
# - host: my_hostname_2
# addresses: { IP_ADDRESS }
# port:
# name: tcp-kafka
# number: 9092
# protocol: TCP
# resolution: STATIC
# - host: my_hostname_3
# port:
# name: tcp-kafka
# number: 9092
# protocol: TCP
# resolution: NONE
# Файл настроек для playbook DB
db:
host: localhost # адрес БД
database: batch # наименовнавие БД
schema: public # схема БД
username: __PLACEHOLDER__ # пользователь БД
password: __PLACEHOLDER__ # пароль БД
ssl:
enabled: false # включение/выключение SSL соединения
keystore_path: ssl/test.jks # путь до keystore относительно inventory
keystore_password: __PLACEHOLDER__ # пароль от keystore
truststore_path: ssl/test.jks # Путь до truststore
truststore_password: __PLACEHOLDER__ # пароль от truststore
key: __PLACEHOLDER__ # key для truststore пароля
При необходимости раскомментировать нужные блоки.