Настройка файла values-app компонента#
Общее представление файла: values-app.yaml
Основные принципы разделения данных по файлам values-*.yaml#
values-app.yaml представляет из себя файл с общими данными компонента abyss;
Данные используются в чартах в том виде, как они инициализированы в файле
values-app, а также могут быть переопределены в файлахvalues-abyss-*.yamlсамих чартов.Файлы чартов values-abyss-<module>.yaml содержат значения атрибутов и включение/отключение опций тонких настроек сервисов и служб, которые нельзя вынести в общий файл.
Стендозависимые параметры необходимо переопределять в дополнительных файлах, которые будут относится к определенному окружению стенда.
Подробнее об общих принципах переопределения параметров по файлам написано во втором разделе документа Работа с дистрибутивом конфигураций на базе HELM с описанием основных принципов работы с данными в helm-конфигурации.
Для удобства в файле будут использоваться пути до параметров в плоской структуре, т.е. описание использования следующих параметров:
global:
section:
block1:
param1: <value1>
block2:
param1: <value2>
param2: <value3>
может выглядеть таким образом:
global.section.block1.param1
global.section.block2.param1
global.section.block2.param2
или в нотации Helm:
.Values.global.section.block1.param1
.Values.global.section.block2.param1
.Values.global.section.block2.param2
Общие вспомогательные и технические параметры#
Верхний блок параметров файла values-app.yaml является вспомогательным, и касается следующих настроек:
global:
helm:
### Наименование секртов для спуливания образа из реджистера
imagePullSecrets:
- name: omdevops-image-pull
### Дополнительные сервисные описания для добавления информации об установке дистрибутива
additionalLabels:
distr_version: "{{ .Values.global.release.version }}"
### Добавляем label deploy_date, для принудительного обновления релиза - через rollout
deploy_date: "{{ now | date \"2006-*****-05\" }}"
service_group: abyss
jenkinsDeployUser: '{{ .Values.global.jenkins.jenkinsDeployUser }}'
### Блок настроек для сервисной сети Platform V Synapse Service Mesh
istio:
### Уровень логирования logLevel для конфигурации ingress-, egress-компонентов Platform V Synapse Service Mesh
ingressGateway:
logLevel: warning
egressGateway:
logLevel: warning
### Тип контрольной панели для проксирования и настройки марщрутизации трафика
controlPlane:
# ssm - Synapse Service Mesh
type: ssm
### Тип кластера для установки(ose = Platform V DropApp, k8s = Kubernetes. Переключает параметры рендера для INGRESS, ROUTE, HPA и т.д.)
cluster:
### (ose = Platform V DropApp, k8s = Kubernetes. Переключает параметры рендера для INGRESS / ROUTE, HPA и т.д.)
provider: k8s
Требуется актуализировать параметр: global.helm.imagePullSecrets.name, указав актуальное имя секрета для скачивания образов из хранилища.
Требуется переопределение параметров: не требуется
Параметры приложения#
Параметры приложения начинаются с секции global.helm.appOpts.abyss.
Далее в секции будут перечислены логические блоки конфигураций различных сервисов.
Включение Ingress правил для публикаций API через Ingress - для автоматизированного тестирования#
global:
helm:
appOpts:
apitests:
enabled: true
Требуется актуализировать параметр: global.helm.appOpts.abyss.apitests.enabled - выключить/включить правила для публикаций API через Ingress
Требуется переопределение параметров: не требуется
Включение функциональности Lease в Platform V DropApp#
global:
helm:
appOpts:
abyss:
lease:
### Автоматическое создание k8s Role и RoleBinding для leaderElecting
k8s_roles:
enabled: false
k8s_deploy:
enabled: false
Требуется актуализировать параметры: не требуется
Требуется переопределение параметров:
global.helm.appOpts.abyss.lease.k8s_roles.enabled- Генерация k8s yaml-манифестов для создания ролей Lease;global.helm.appOpts.abyss.lease.k8s_deploy.enabled- Генерация k8s yaml-манифестов Lease.
Блок настроек для Аудита#
### Параметры аудита
audit:
### Включение/выключение аудита
enabled: 'false'
### Режим аудит клиента. Допустимые значения - SYNC, KAFKA, ASYNC.
### ASYNC - асинхронный REST клиент, SYNC - синхронный REST клиент, KAFKA - Kafka клиент
client_type: ASYNC
### ContextPath для URL COTE публикации событий аудита
### Формат URL 'protocol://host:port{{ .Values.global.helm.appOpts.abyss.audit.rest_sub_path }}'
### где protocol, host, post - параметры блока global.endpoints.egress.audit файла values-env.yaml
rest_sub_path: /
### Параметры kafka аудита
kafka:
### Имя топика Kafka для мониторинга доступности кластера Kafka (abyss.audit.kafka.client.health-check-topic)
health_check_topic: abyss.coordinator_audit_health_check
### Время ожидания подтверждения от Kafka брокера об успешной доставке сообщения
producer_delivery_timeout_ms: '120000'
### Имя топика для публикации событий аудита (abyss.audit.kafka.client.producer.kafka-event-topic-name)
producer_kafka_event_topic_name: abyss.coordinator_audit_events
### Имя топика для публикации метамодели (abyss.audit.kafka.client.producer.kafka-metamodel-topic-name)
producer_kafka_metamodel_topic_name: abyss.coordinator_audit_metamodels
### Время ожидания перед отправкой набора записей (batch) на Kafka брокер
producer_linger_ms: '10'
### Время ожидания выполнения запроса к брокеру Kafka
producer_request_timeout_ms: '30000'
### Количество попыток повторной отправки сообщения в случае неудачной отправки или ошибки при передаче данных
producer_retry_attempts: '3'
### Идентификатор исходной системы (AS)
source_system: tengri
### Флаг, включающий синхронный режим отправки сообщений в Kafka
sync_send_enabled: 'true'
### Протокол для подключения к Kafka. Возможные варианты: SSL, PLAINTEXT, SASL_PLAINTEXT, SASL_SSL
security_protocol: PLAINTEXT
### Название модуля метамодели аудита
metamodel_module: abyss
Требуется актуализировать параметры:
global.helm.appOpts.abyss.audit.enabled- Включение/выключение аудитаglobal.helm.appOpts.abyss.audit.client_type- Режим аудит клиента. Допустимые значения - SYNC, KAFKA, ASYNC.global.helm.appOpts.abyss.audit.rest_sub_path- ContextPath для URL COTE публикации событий аудитаglobal.helm.appOpts.abyss.audit.kafka.health_check_topic- Имя топика Kafka для мониторинга доступности кластера Kafkaglobal.helm.appOpts.abyss.audit.kafka.producer_kafka_event_topic_name- Имя топика для публикации событий аудитаglobal.helm.appOpts.abyss.audit.kafka.producer_kafka_metamodel_topic_name- Имя топика для публикации метамоделиglobal.helm.appOpts.abyss.audit.kafka.source_system- Идентификатор исходной системы (AS)global.helm.appOpts.abyss.audit.kafka.security_protocol- Протокол для подключения к Kafka
Требуется переопределение параметров: возможно всех из перечисленных для актуализации.
Список модулей и файлов в них, в которых переопределены данные параметры (формат <модуль/файл values-*.yaml>):
abyss-archive/values-abyss-archive.yaml
abyss-authorization/values-abyss-authorization.yaml
abyss-base/values-abyss-base.yaml
abyss-client-api/values-abyss-client-api.yaml
abyss-flow/values-abyss-flow.yaml
abyss-fulltext-index/values-abyss-fulltext-index.yaml
abyss-kafka-svc/values-abyss-kafka-svc.yaml
abyss-monitoring/values-abyss-monitoring.yaml
abyss-trace-collector/values-abyss-trace-collector.yaml
abyss-trace-query/values-abyss-trace-query.yaml
Таким образом, переопределение параметров возможно как и для глобальных настроек из values-app.yaml:
global:
helm:
appOpts:
abyss:
audit:
client_type: 'KAFKA'
enabled: 'true'
rest_sub_path: '/push/project/audit_pvm/split-by-ott'
Так и для настроек файлов чарта, учитывая структуру этих файлов:
abyss-base:
helm:
appOpts:
abyss:
audit:
client_type: 'KAFKA'
enabled: 'true'
rest_sub_path: '/push/project/audit_pvm/split-by-ott'
Блок настроек authentication#
authentication:
### Включение/выключение аутентификации по сертификату
certificate_authentication_enabled: 'true'
### Параметр, определяющий необходимость доставать сертификат из заголовка sslClientCertHeader
certificate_get_cert_from_header: 'true'
### Тип аутентификации для подключения к OIDC провайдеру, возможные значения: SECRET, SECRET_AND_JWK common.auth.type
type: SECRET_AND_JWK
### Пароль, используется для проверки подписи токена
secret: ''
Требуется актуализировать параметры:
global.helm.appOpts.abyss.authentication.certificate_authentication_enabled- Включение/выключение аутентификации по сертификату (используются в application.properties)global.helm.appOpts.abyss.authentication.certificate_get_cert_from_header- Параметр, определяющий необходимость доставать сертификат из заголовка sslClientCertHeader (используются в application.properties)global.helm.appOpts.abyss.authentication.type- Тип аутентификации для подключения к OIDC провайдеруglobal.helm.appOpts.abyss.authentication.secret- Пароль, используется для проверки подписи токена
Требуется переопределение параметров: возможно всех из перечисленных для актуализации.
Следующие параметры переопределены в файлах конфигураций модулей компонента:
global.helm.appOpts.abyss.authentication.type- Тип аутентификации для подключения к OIDC провайдеруglobal.helm.appOpts.abyss.authentication.secret- Пароль, используется для проверки подписи токена
Список модулей и файлов в них, в которых переопределены данные параметры (формат <модуль/файл values-*.yaml>):
abyss-archive/values-abyss-archive.yaml
abyss-base/values-abyss-base.yaml
abyss-client-api/values-abyss-client-api.yaml
abyss-flow/values-abyss-flow.yaml
abyss-fulltext-index/values-abyss-fulltext-index.yaml
abyss-kafka-svc/values-abyss-kafka-svc.yaml
abyss-monitoring/values-abyss-monitoring.yaml
abyss-trace-query/values-abyss-trace-query.yaml
Таким образом, переопределение параметров возможно как и для глобальных настроек из values-app.yaml:
global:
helm:
appOpts:
abyss:
authentication:
secret: '$__vault{kv:A/DEMO/STAND/PROJECT/KV:common:common.auth.demo}'
Так и для настроек файлов чарта, учитывая структуру этих файлов:
abyss-flow:
helm:
appOpts:
abyss:
authentication:
secret: '$__vault{kv:A/DEMO/STAND/PROJECT/KV:common:common.auth.demo}'
Блок настроек authorization#
### Параметры сервиса authorization
authorization:
### Хост, на котором расположен сервис авторизации (свойство common.pvm-security.host)
host: abyss-authorization-{{ template "lib-chart-pvm.namespace-sha1-hash.tpl" $ }}
### Порт, на котором будет запущен сервис авторизации
port: '8181'
### Максимальное количество переподключений к сервису авторизации (свойство common.pvm-security.max-retries)
max_retries: '2'
### Ключ для шифрования API (свойство service.pvm.encoder.demo)
encoder_secret: ''
### Список админов пользователей (свойство service.pvm.security.admin-names-list)
admin_names_list: ''
### Имя пользователя для подключения к сервису авторизации
user: ''
### Пароль для подключения к сервису авторизации
password: ''
### Имя пользователя с правами на просмотр
users_viewer_name: ''
### Имя пользователя с правами администратора
users_admin_name: ''
### Пароль пользователя с правами администратора
users_admin_password: ''
Требуется актуализировать параметры:
global.helm.appOpts.abyss.authorization.port- Порт, на котором будет запущен сервис авторизацииglobal.helm.appOpts.abyss.authorization.encoder_secret- Ключ для шифрования APIglobal.helm.appOpts.abyss.authorization.admin_names_list- Список админов пользователейglobal.helm.appOpts.abyss.authorization.users_viewer_name- Имя пользователя с правами на просмотрglobal.helm.appOpts.abyss.authorization.user- Имя пользователя для подключения к сервису авторизацииglobal.helm.appOpts.abyss.authorization.password- Пароль для подключения к сервису авторизацииglobal.helm.appOpts.abyss.authorization.users_admin_name- Имя пользователя с правами администратораglobal.helm.appOpts.abyss.authorization.users_admin_password- Пароль пользователя с правами администратора
Требуется переопределение параметров: возможно всех из перечисленных для актуализации.
Следующие параметры переопределены в файлах конфигураций модулей компонента:
global.helm.appOpts.abyss.authorization.hostglobal.helm.appOpts.abyss.authorization.max_retriesglobal.helm.appOpts.abyss.authorization.passwordglobal.helm.appOpts.abyss.authorization.portglobal.helm.appOpts.abyss.authorization.user
Список модулей и файлов в них, в которых переопределены данные параметры (формат <модуль/файл values-*.yaml>):
abyss-archive/values-abyss-archive.yaml
abyss-base/values-abyss-base.yaml
abyss-client-api/values-abyss-client-api.yaml
abyss-flow/values-abyss-flow.yaml
abyss-fulltext-index/values-abyss-fulltext-index.yaml
abyss-kafka-svc/values-abyss-kafka-svc.yaml
abyss-monitoring/values-abyss-monitoring.yaml
abyss-trace-query/values-abyss-trace-query.yaml
Например, в файле abyss-authorization/values-abyss-authorization.yaml набор параметров блока расширен и выглядит следующим образом:
authorization:
admin_names_list: '{{ tpl (.Values.global.helm.appOpts.abyss.authorization.admin_names_list) $ }}'
api_paths_additional_public: ''
application_name: pvm_authorization_service
auth_type: BASIC
certificates_server_enabled: 'false'
encoder_secret: '{{ tpl (.Values.global.helm.appOpts.abyss.authorization.encoder_secret) $ }}'
liquibase_changelog: classpath:/db/changelog/changelog-master.xml
liquibase_enabled: 'true'
liquibase_password: ''
liquibase_user: ''
port: '8181'
search_max_users_to_return: '50'
search_min_mask_length: '5'
server_jetty_threads_max: '200'
user_catalog_ldap_cast_to_lower_case: 'false'
user_catalog_type: LOCAL
users_admin_name: '{{ tpl (.Values.global.helm.appOpts.abyss.authorization.users_admin_name) $ }}'
users_admin_password: '{{ tpl (.Values.global.helm.appOpts.abyss.authorization.users_admin_password) $ }}'
users_viewer_name: '{{ tpl (.Values.global.helm.appOpts.abyss.authorization.users_viewer_name) $ }}'
users_viewer_password: ''
Для перечисленных параметров переопределение возможно как и для глобальных настроек из values-app.yaml:
global:
helm:
appOpts:
abyss:
authentication:
secret: '$__vault{kv:A/DEMO/TEST/KVnewConfigs/ST:global:common.auth.demo}'
authorization:
encoder_secret: '$__vault{kv:A/DEMO/TEST/KVnewConfigs/ST/coordinator:pvm_auth:service.pvm.encoder.demo}'
password: '$__vault{kv:A/DEMO/TEST/KVnewConfigs/ST:global:common.pvm-security.demo}'
user: '$__vault{kv:A/DEMO/TEST/KVnewConfigs/ST:global:common.pvm-security.demo}'
users_admin_name: '$__vault{kv:A/DEMO/TEST/KVnewConfigs/ST:global:common.pvm-security.demo}'
users_admin_password: '$__vault{kv:A/DEMO/TEST/KVnewConfigs/ST:global:common.pvm-security.demo}'
Так и для настроек файлов чарта, учитывая структуру этих файлов:
abyss-authorization:
helm:
appOpts:
abyss:
authorization:
users_viewer_name: '$__vault{kv:A/DEMO/TEST/KVnewConfigs/ST:global:common.pvm-security.demo}'
users_viewer_password: '$__vault{kv:A/DEMO/TEST/KVnewConfigs/ST:global:common.pvm-security.demo}'
Блок настроек common:#
common:
### Путь к приложению
app_basepath: 'coordinator'
### Параметры springdoc для поиска api-doc и исключения путей из поиска
springdoc_api_docs_path: /api
springdoc_paths_to_exclude: /swagger-resources/**
springdoc_swagger_ui_path: /api/doc
### Идентификатор зоны на которую настроен сервис. Возможные значения: PRIMARY, SECONDARY
zone_id: PRIMARY
### Параметр для определения пути к конфигурации приложения (переменные окружения SERVICE_CONFIG, COLLECTOR_CONFIG)
application_property_path: '/app/config/application.properties'
### Параметр для опредеоения пути к конфигурации logback (переменные окружения LOGGING_CONFIG)
logback_path: '/app/config/logback-spring.xml'
Требуется актуализировать параметры:
global.helm.appOpts.abyss.common.app_basepath- Путь к приложениюglobal.helm.appOpts.abyss.common.springdoc_api_docs_path- Параметры springdoc для поиска api-doc и исключения путей из поискаglobal.helm.appOpts.abyss.common.springdoc_paths_to_exclude- Параметры springdoc для поиска api-doc и исключения путей из поискаglobal.helm.appOpts.abyss.common.springdoc_swagger_ui_path- Параметры springdoc для поиска api-doc и исключения путей из поискаglobal.helm.appOpts.abyss.common.zone_id- Идентификатор зоны на которую настроен сервис
Требуется переопределение параметров: возможно всех из перечисленных для актуализации.
Список модулей и файлов в них, в которых переопределены данные параметры (формат <модуль/файл values-*.yaml>):
abyss-archive/values-abyss-archive.yaml
abyss-base/values-abyss-base.yaml
abyss-client-api/values-abyss-client-api.yaml
abyss-flow/values-abyss-flow.yaml
abyss-fulltext-index/values-abyss-fulltext-index.yaml
abyss-kafka-svc/values-abyss-kafka-svc.yaml
abyss-monitoring/values-abyss-monitoring.yaml
abyss-trace-query/values-abyss-trace-query.yaml
Например, в файле abyss-authorization/values-abyss-authorization.yaml набор параметров блока расширен и выглядит следующим образом::
common:
api_basepath: v1
app_basepath: ''
configuration_advanced: ''
springdoc_api_docs_path: '{{ tpl (.Values.global.helm.appOpts.abyss.common.springdoc_api_docs_path) $ }}'
springdoc_paths_to_exclude: '{{ tpl (.Values.global.helm.appOpts.abyss.common.springdoc_paths_to_exclude) $ }}'
springdoc_swagger_ui_path: '{{ tpl (.Values.global.helm.appOpts.abyss.common.springdoc_swagger_ui_path) $ }}'
Пример переопределения параметров из файла abyss-trace-collector/values-abyss-trace-collector.yaml:
common:
configuration_advanced: ''
springdoc_api_docs_path: '{{ tpl (.Values.global.helm.appOpts.abyss.common.springdoc_api_docs_path) $ }}'
springdoc_paths_to_exclude: '{{ tpl (.Values.global.helm.appOpts.abyss.common.springdoc_paths_to_exclude) $ }}'
springdoc_swagger_ui_path: '{{ tpl (.Values.global.helm.appOpts.abyss.common.springdoc_swagger_ui_path) $ }}'
Таким образом, переопределение параметров возможно как и для глобальных настроек из values-app.yaml:
global:
helm:
appOpts:
abyss:
common:
zone_id: SECONDARY
Так и для настроек файлов чарта, учитывая структуру этих файлов:
abyss-authorization:
helm:
appOpts:
abyss:
common:
springdoc_api_docs_path: test
springdoc_paths_to_exclude: test
Блок настроек common.discovery:#
Параметры представляют из себя список общих хостов для внутренней работы кластера с мастер-подами.
Актуализация и переопределение не требуется
### Определяет, каким способом будет происходить регистрация сервисов, с помощью ZooKeeper или же статически, используя готовый список хостов. Возможные значения: ZOOKEEPER, K8S.
discovery:
type: "ZOOKEEPER"
### Параметры подключения к zookeeper (Discovery/Leader-Election)
zk_opts:
cluster_selector: "cluster1"
acl_enabled: "false"
discovery_path: "/abyss_dap_{{ .Values.global.helm.appOpts.abyss.common.zone_id | lower }}"
retry_interval_ms: "10000"
leadership_enabled: "true"
balancing_prefer_mode: "NONE"
### Параметры использования headless-services не требуют изменений
endpoints:
headles_service_client_api_server: "abyss-client-api-headless:8181"
headles_service_archive_service: "abyss-archive-headless:8181"
headles_service_full_text_index_server: "abyss-fulltext-index-headless:8181"
headles_service_monitoring_server: "abyss-monitoring-headless:8181"
headles_service_flow_server: "abyss-flow-headless:8181"
headles_service_kafka_server: "abyss-kafka-svc-headless:8181"
headles_service_trace_query_server: "abyss-trace-query-headless:8181"
headles_service_pvm_base_server: "abyss-base-headless:8181"
### Параметры k8s-lease для реализации Discovery/Leader-Election
k8s_opts:
### Xосты k8s сервисов в формате {svc_name}:{port}
endpoints:
leader:
archive_service: "leader-abyss-archive-{{ template \"lib-chart-pvm.namespace-sha1-hash.tpl\" $ }}:8181"
flow_server: "leader-abyss-flow-{{ template \"lib-chart-pvm.namespace-sha1-hash.tpl\" $ }}:8181"
full_text_index_server: "leader-abyss-fulltext-index-{{ template \"lib-chart-pvm.namespace-sha1-hash.tpl\" $ }}:8181"
kafka_server: "leader-abyss-kafka-svc-{{ template \"lib-chart-pvm.namespace-sha1-hash.tpl\" $ }}:8181"
monitoring_server: "leader-abyss-monitoring-{{ template \"lib-chart-pvm.namespace-sha1-hash.tpl\" $ }}:8181"
main:
archive_service: "abyss-archive-{{ template \"lib-chart-pvm.namespace-sha1-hash.tpl\" $ }}:8181"
client_api_server: "abyss-client-api-{{ template \"lib-chart-pvm.namespace-sha1-hash.tpl\" $ }}:8181"
flow_server: "abyss-flow-{{ template \"lib-chart-pvm.namespace-sha1-hash.tpl\" $ }}:8181"
full_text_index_server: "abyss-fulltext-index-{{ template \"lib-chart-pvm.namespace-sha1-hash.tpl\" $ }}:8181"
kafka_server: "abyss-kafka-svc-{{ template \"lib-chart-pvm.namespace-sha1-hash.tpl\" $ }}:8181"
monitoring_server: "abyss-monitoring-{{ template \"lib-chart-pvm.namespace-sha1-hash.tpl\" $ }}:8181"
pvm_base_server: "abyss-base-{{ template \"lib-chart-pvm.namespace-sha1-hash.tpl\" $ }}:8181"
trace_query_server: "abyss-trace-query-{{ template \"lib-chart-pvm.namespace-sha1-hash.tpl\" $ }}:8181
Требуется актуализировать параметры:
global.helm.appOpts.abyss.common.discovery.type- Определяет, каким способом будет происходить регистрация сервисовglobal.helm.appOpts.abyss.common.discovery.zk_opts.cluster_selector- Определение селектора кластера в блокеglobal.endpoints.egress.abysszkglobal.helm.appOpts.abyss.common.discovery.zk_opts.acl_enabled- Включение проверки ACLglobal.helm.appOpts.abyss.common.discovery.zk_opts.discovery_path- Путь хранения в zookeeperglobal.helm.appOpts.abyss.common.discovery.zk_opts.retry_interval_ms- Интервал повтора в мсglobal.helm.appOpts.abyss.common.discovery.zk_opts.leadership_enabled- Включение функционала выбора лидера (leader-election)
Требуется переопределение параметров: возможно всех из перечисленных для актуализации.
Блок настроек common.vault:#
### Xосты k8s сервисов в формате {svc_name}:{port}
vault:
### Включение интеграции с сервисом
enabled: 'true'
### Namespace секретов
namespace: DEV
### Время ожидания подключения в миллисекундах
connection_timeout: '5000'
### Время ожидания чтения в миллисекундах
read_timeout: '15000'
### Список параметров для kubernetes
kubernetes:
### Имя кластера kubernetes
methodPath: k8s/dap.devpub-01.solution.sbt
### Путь до секретов KV
path: A/ST/OMSTADM/LGDB/KV
### Роль для доступа к секретом
role: role-ga-secman-abyss
### Тип аутентификации
authentication: kubernetes
### Путь до токена SA kubernetes
token:
location: /var/run/secrets/kubernetes.io/serviceaccount/token
### Блок настроек по PKI, KV
defaultPkiOpts:
### Время жизни сертификата в формате ISO8601
pkiTtl: 24h
### Формирование PKI пути по формату - NS_NAME/PKI/issue/role-ga-example
fullPkiPath: "{{ .Values.global.helm.appOpts.abyss.common.vault.namespace }}/PKI/issue/{{ .Values.global.helm.appOpts.abyss.common.vault.kubernetes.role }}"
Требуется актуализировать параметры:
global.helm.appOpts.abyss.common.vault.namespaceglobal.helm.appOpts.abyss.common.vault.kubernetes.methodPathglobal.helm.appOpts.abyss.common.vault.kubernetes.pathglobal.helm.appOpts.abyss.common.vault.kubernetes.role
Требуется переопределение параметров: да
Список модулей и файлов в них, в которых переопределены данные параметры (формат <модуль/файл values-*.yaml>):
abyss-archive/values-abyss-archive.yaml
abyss-authorization/values-abyss-authorization.yaml
abyss-base/values-abyss-base.yaml
abyss-client-api/values-abyss-client-api.yaml
abyss-flow/values-abyss-flow.yaml
abyss-fulltext-index/values-abyss-fulltext-index.yaml
abyss-kafka-svc/values-abyss-kafka-svc.yaml
abyss-monitoring/values-abyss-monitoring.yaml
abyss-trace-collector/values-abyss-trace-collector.yaml
abyss-trace-query/values-abyss-trace-query.yaml
Переопределение параметров возможно только для глобальных настроек из values-app.yaml:
global:
helm:
appOpts:
abyss:
common:
vault:
namespace: 'TEST_CLUSTER'
kubernetes:
methodPath: k8s/dap.domain-01
Остальные параметры блока Vault логически разделены на использование двух типов секретов (KV и PKI), например, для базы данных:
db:
kv:
### Имя секрета KV cert секрета
certObjectName: "cert.pem"
### Имя секрета KV key секрета
keyObjectName: "key.pem"
### Путь до KV секрета
path: "A/EXAMPLE/PATH/PROJECT/KV/example-db"
pki:
### Если true - pki, иначе режим kv
enabled: true
### Дополнительные altNames, берём оставшиеся из списка (.Values.global.endpoints.ingress.abyss.ui.hosts) + (.Values.global.endpoints.ingress.abyss.geo.hosts) ###
altNames: '{{ printf "%s,%s" ((.Values.global.endpoints.ingress.abyss.ui.hosts) | join ",") ((.Values.global.endpoints.ingress.abyss.geo.hosts) | join ",") }}'
### Если используется first... - Используется основное имя нашей инсталляции, первый элемент списка из - (.Values.global.endpoints.ingress.abyss.ui.hosts) ###
cn: "{{ first (.Values.global.endpoints.ingress.abyss.ui.hosts) }}"
В таких блоках необходимо актуализировать параметры:
global.helm.appOpts.abyss.common.vault.<block_name>.kv.pathglobal.helm.appOpts.abyss.common.vault.<block_name>.pki.enabledglobal.helm.appOpts.abyss.common.vault.<block_name>.pki.cn
Блок настроек common.fluentBitSidecar:#
### Основные параметры сервиса Fluent-bit
fluentBitSidecar:
logger:
### Блок указания kafka clusterSelector, в случае если в .Values.global.endpoints.egress.kafka.service - несколько вложенных кластеров и мы хотим использовать конкретный.
### Если enabled - в состоянии false - по умолчинаю используется первый в алфавитном порядке.
kafka:
clusterSelector:
### Включение данного параметра, будет использовать имя кластера из .Values.global.endpoints.egress.kafka.service - а не первый в алфавитном порядке
enabled: true
### В данном случае cluster1 - соответствует .Values.global.endpoints.egress.kafka.service.cluster1
clusterId: cluster1
### Флаг переключения трафика fluentbit в vault через egress (false - подключение к vault будет осуществляться напрямую)
connection:
egress:
enabled: true
### Параметры конфигурации fluent-bit
http:
### Запуск сервера HTTP на listenIP для прослушивания сетевых интерфейсов
listenIp: 0.0.0.0
### Запуск сервера HTTP на listenPort для прослушивания сетевых интерфейсов
listenPort: 9081
### Параметры входящих экземпляров журналирования
input:
### Путь до файлов с логом
logPath: "/app/logs/log_*.json"
### Ограничения на размер экземпляра файла с логами
memBufLimit: 10MB
### Флаг чтения файлов логирования с начала (On - читать с начала, Off - с конца)
readFromHead: "On"
### Настройка для входящих экземпляров с тегом из параметра client_api_second_options.input.tag
client_api_second_options:
input:
### Путь до файлов с логом
logPath: '/app/logs/query_journal_log_*.json'
tag: file.tail.query
### Параметры исходящих экземпляров журналирования
output:
### Формат файла журналирования
logFormat: json
### Маска по которой в output будут выведены логи
match: "*"
### Тип вывода файлов логов для записей в Apache Kafka
name: kafka
### Параметры очередни сообщений
queue:
buffering:
maxKbytes: 5120
### Поля для фильтрации данных журнала
injectFields:
hostName: abyss
podName: "${POD_NAME}"
podNamespace: "${POD_NAMESPACE}"
tls:
### Путь до сертификатов
certPath: /vault/secrets/certs/
Требуется актуализировать параметры: нет
Требуется переопределение параметров: нет
Блок настроек common.tls#
### Основные параметры TLS-соединений
tls:
### Путь до сертификата УЦ
caCert: /etc/ssl/certs/caCertificates.pem
### Путь до цепочки сертификатов
cert: /vault/secrets/certs/cert.pem
### Путь до приватного ключа
privateKey: /vault/secrets/certs/private-key.pem
Требуется актуализировать параметры: нет
Требуется переопределение параметров: нет
Блок параметров common.ott#
### Основные параметры сервиса OTT
ott:
options:
### Уровень логирования в egress
egwlogLevel: INFO
### Уровень логирования в ingress
igwlogLevel: INFO
### Url сервиса, используется в параметре OTT_SERVICE_URL
url: https://stub-host:stub-port/ott-service/rest/token
### GRPC-порт, используется в параметре OTT_GRPC_PORT
grpcPort: /mnt/ott-uds-socket/ott.socket
### HTTP-порт, параметр OTT_HTTP_PORT
httpPort: "8090"
### Тип хранения сертификатов, параметр OTT_CERTSTORE_TYPE
type: PEM
### Режим работы egress, параметр OTT_OPER_MODE
egwOperMode: sign
### Режим работы ingress, параметр OTT_OPER_MODE
igwOperMode: validate
### Режим совместимости с MMT, параметр OTT_CLIENT_MMT-COMPATIBILITY-MODE
mmtCompatibilityMode: "false"
### Идентификатор модуля OTT, параметр OTT_MODULE_ID
module: "{{ ternary (first (.Values.global.endpoints.ingress.abyss.ui.hosts)) \"abyss\" (.Values.global.helm.appOpts.abyss.common.vault.ott.pki.enabled) }}"
### Имя аккаунта OTT_CLIENT_BILLING_ACCOUNT
billingAccount: pvm
### Путь монтирования MANAGEMENT_HEALTH_DISKSPACE_PATH
healthDiskSpacePath: /mnt
### Время ожидания старта сервиса в мс
startWaitInMillis: 10000
### Java-опции для запуска сервиса
javaOpts:
### Профиль spring
profile: PROM
### Расположение временных файлов
tmp: /tmp
### Параметры запуска Java-приложения
args: "-Dlogging.config=/mnt/ott-logback/logback.xml -Dspring.profiles.active=probes -XX:+UseContainerSupport -XX:MaxRAMPercentage=55.0"
### Запуск сервиса в анонимном режиме (параметр OTT_ANONYMOUS_REQUESTS_ENABLED)
requests:
enabled: "false"
### Далее перечислены основные атрибуты конфигурации сервиса
attribute:
### Параметр OTT_CLIENT_MMT_ACTION_ATTRID
clientId: "urn:sbrf:names:pprb:1.0:action:id"
### Параметр OTT_APPLICATION_ATTRIBUTE_ID
applicationId: "urn:sbrf:names:pprb:1.0:module:id"
### Параметр OTT_CLIENT_MMT_RESOURCE_ATTRID
resource: "urn:sbrf:names:pprb:1.0:api:interface:fullname"
certs:
### Условие использование сертификатов
ottModuleCrtEnable: true
### Параметр OTT_SERVICE_CRT )(если ottModuleCrtEnable=true, ott.pki.enabled=false)
serviceCrt: /vault/secrets/certs/ott/ottService.pem
### Период обновления кэша сертификатов сервиса OTT, параметр OTT_SERVICE_CLIENT_TRUSTED_CRT_RATE
trustedRate: 60
authz:
### Имя служебного realm для подключения аварийного fallback-токена, параметр OTT_AUTHZ_REALM
authRealm: ott
### Realm для авторизации потребителя, параметр OTT_CLIENT_DEFAULT_REALM
defaultRealm: mmt
### Включение авторизации на провайдере, параметр OTT_AUTHZ_PROVIDER_MODE
providerMode: "true"
### Версия API-сервера, параметр OTT_AUTHZ_VERSION (2.0 - без передачи клиентского сертификата, 3.0 - с передачей)
version: "2.0"
hotReload:
### Включение hotReload, параметр OTT_SIDECAR_HOTRELOAD_ENABLED
enabled: "true"
secret:
### Время обновления секретов, мс. По умолчанию - 3 мс, параметр OTT_SIDECAR_HOTRELOAD_SECRET_REFRESHING_WINDOW
refreshingWindow: 3
### Интервал после обновления, в течение которого приложение ожидает его завершения после обновления secrets, мс. По умолчанию - 4 мс, параметр OTT_SIDECAR_HOTRELOAD_SECRET_LIMIT_WINDOW
limitWindow: 4
### Стратегия обновления. Варианты - safe и fast, параметр OTT_SIDECAR_HOTRELOAD_REACTION_STRATEGY
reactionStrategy: safe
### Коэффициент, определя.obq продолжительность времени ожидания приложения - REFRESHING_WINDOW * SLEEP_INDEX. OTT_SIDECAR_HOTRELOAD_SLEEP_INDEX
sleepIndex: 10
### Количество попыток обновления secrets. По умолчанию - 5 попыток, параметр OTT_SIDECAR_HOTRELOAD_RETRY_READ_ATTEMPTS
retryReadAttempts: 5
### Интервал ожидания перед обновлением secrets, мс. От минимального (min, параметр OTT_SIDECAR_HOTRELOAD_DELAY_MIN) до максимального (max, параметр OTT_SIDECAR_HOTRELOAD_DELAY_MAX)
delay:
min: 1
max: 5
Требуется актуализировать параметр: global.helm.appOpts.abyss.common.ott.options.module - наименование moduleID в OTT; может быть представлен как именем компонента, так и КЭ компонента + имя компонента. При условии использования Audit REST значение параметра необходимо скорректировать следующим образом:
global:
helm:
appOpts:
abyss:
common:
ott:
options:
module: "{{ ternary (first (.Values.global.endpoints.ingress.abyss.backend.hosts)) \"abyss\" (.Values.global.helm.appOpts.abyss.common.vault.ott.pki.enabled) }}"
Требуется переопределение параметров: нет
Блок параметров db (Базы данных)#
abyss:
db:
### Имя схемы БД
db_name: coordinator_db
### Включает возможность остановки пула соединений
hikari_allow_pool_suspension: 'true'
### Таймаут получения соединения из пула соединений
hikari_connection_timeout: '30000'
### Таймаут нахождения неиспользованного соединения в пуле соединений
hikari_idle_timeout: '300000'
### Время, по истечении которого соединение, находящееся в использовании считается для пула потерянным (не будет возвращено в пул)
hikari_leak_detection_threshold: '0'
### Максимальное время жизни соединения в пуле
hikari_max_lifetime: '1200000'
### Максимальный размер пула соединений
hikari_maximum_pool_size: '6'
### Минимальное количество неиспользованных (свободных) соединений, которое пул соединений должен поддерживать
hikari_minimum_idle: '6'
### Тип источника данных при подключении к БД. По умолчанию используется com.zaxxer.hikari.HikariDataSource.
type: com.zaxxer.hikari.HikariDataSource
### Параметры подключения JDBC
jdbc_opts: prepareThreshold=0&sslmode=disable
Требуется актуализировать параметры:
global.helm.appOpts.abyss.db.db_name- имя схемы БД;global.helm.appOpts.abyss.db.jdbc_opts- параметры подключения JDBC;Возможные значения sslmode:
sslmode=prefer- не важна безопасность, но есть шифрование (и приемлю связанные издержки), если это поддерживает сервер.sslmode=verify-ca- валидация корневых сертификатов (режим по умолчанию)sslmode=verify-full- валидация корневых сертификатов + валидация хоста (хост в урле подключения должен быть равен хосту в CN серверного сертификата)
По требованию безопасности при интеграции через egress (поднятие соединения на самом egress и с него до эндпоинта) доступен только режим sslmode=disable.
Параметры используются в указании url до БД в составе следующих файлов:
abyss-archive/restricted-abyss-archive.yamlabyss-archive/values-abyss-archive.yamlabyss-authorization/restricted-abyss-authorization.yamlabyss-authorization/values-abyss-authorization.yamlabyss-base/restricted-abyss-base.yamlabyss-base/values-abyss-base.yamlabyss-flow/restricted-abyss-flow.yamlabyss-flow/values-abyss-flow.yamlabyss-fulltext-index/restricted-abyss-fulltext-index.yamlabyss-fulltext-index/values-abyss-fulltext-index.yamlabyss-kafka-svc/restricted-abyss-kafka-svc.yamlabyss-kafka-svc/values-abyss-kafka-svc.yamlabyss-monitoring/restricted-abyss-monitoring.yamlabyss-monitoring/values-abyss-monitoring.yamlabyss-trace-query/restricted-abyss-trace-query.yamlabyss-trace-query/values-abyss-trace-query.yaml
Требуется переопределение параметров: нет
Блок настроек Flow#
### Параметры Flow Management Service
flow:
### Включение Access Control List Zookeper
client_zookeeper_acl_enabled: 'true'
### Включение клиента Solr Zookeeper
job_solr_zk_client_enabled: 'true'
Требуется актуализировать перечисленный блок параметров: да
Блок параметров HDFS#
### Параметры Hadoop
hdfs:
### Путь до файлов клиентской конфигурации HDFS
hadoop_conf_dir: /app/hadoop-conf
### Использование имени хоста при подключении
use_hostname: 'true'
Требуется актуализировать перечисленный блок параметров: да
Блок параметров Kerberos#
### Параметры для Kerberos server
kerberos:
### аргумент для JAVA opts для запуска Spark Submit процесса
krb5_path: /app/config/krb5.conf
### Значение keytab/Путь в secman, где хранится keytab (в кодировке base64)
application_keytab_path: '/app/config/keytab'
### Включение/выключение Kerberos для подключения к Hadoop
enabled: 'false'
### REALM - значение service.archive.hadoop.filesystem.kerberos-realm
realm: ''
Требуется актуализировать параметр: global.helm.appOpts.abyss.kerberos.realm
Блок настроек самомониторинга#
global:
...
appOpts:
abyss:
### Параметры самомониторинга
logger:
metrics:
### Включение/выключение передачи метрик в kafka из компонента abyss
enabled: 'false'
### Топик для публикации метрик
topic_name: abyss.coordinator-metrics
kafka:
### Имя кластера kafka. Участвует во формировании списка Kafka брокеров (при условии использования функциональности кластера)
cluster_selector: kafka-cluster1
client:
### Конфигурация подтверждений:
### 0 - producer никогда не ждет подтверждения от брокера;
### 1 - получает подтверждение после того, как реплика лидера получила данные;
### -1 - получает подтверждение после того, как все синхронизированные реплики получили данные.
ask: '-1'
### Протокол, по которому будет осуществляться взаимодействие с Kafka. Допустимые значения: PLAINTEXT, SSL, SASL_PLAINTEXT, SASL_SSL
protocol: PLAINTEXT
producer:
### Максимальный размер отправляемых сообщений
max_size: '2097152'
### Количество повторных попыток отправки сообщений
retry_attempts: '3'
### Максимальное время, которое продюсер будет ждать, прежде чем повторить отправку
delivery: '120000'
### Время как долго клиент будет ждать ответа от брокера
request: '30000'
### Ожидание перед сборкой нового пакета сообщений
linger: '10'
Требуется актуализировать параметры:
global.helm.appOpts.abyss.logger.metrics.enabled- Включение/выключение передачи метрик в kafka из компонента abyssglobal.helm.appOpts.abyss.logger.metrics.topic_name- Топик для публикации метрикglobal.helm.appOpts.abyss.logger.metrics.kafka.cluster_selector- Имя кластера kafka
Требуется переопределение параметров: не требуется
Блок настроек для логирования#
### Параметры logback-spring.xml
logs:
### Паттерн пути для поиска файлов журналов
directory: '/app/logs'
### Максимальный размеры файлов логирования
maxFileSize: 1MB
### Максимальное количество файлов
maxFileHistory: '10'
### Максимальный размер лог-файла
totalFileSizeCap: 100MB
### Два варианта значений: CustomKafkaAppender - отправка логов без использования FluentBit, посредством Abyss; LogaAppender - отправка логов с использованием FluentBit
type: CustomKafkaAppender
### Уровень логирования в ConsoleAppender
consoleAppender:
loglevel: INFO
### Параметры работы с kafka
kafka:
### Имя кластера kafka. Значение параметра формируется на основании имени блока global.endpoints.egress.kafka.service.cluster1, в формате kafka-<имя кластера в блоке>
cluster_selector: kafka-cluster1
### Флаг использования идемпотентности
enable_idempotence: 'false'
### Уровень логировани фильтра класса ThresholdFilter
level: 'INFO'
### Уровень логирования для logger name=Audit
query_journal_kafka_logger_level: 'TRACE'
### Топик для публикаций логов с QueryJournalCustomKafkaAppender
query_journal_kafka_topic: 'abyss.coordinator-query-journal'
### Топик для публикации логов
topic: 'abyss.coordinator-logs'
Требуется актуализировать параметры:
global.helm.appOpts.abyss.logs.consoleAppender.loglevelglobal.helm.appOpts.abyss.logs.kafka.query_journal_kafka_logger_levelglobal.helm.appOpts.abyss.logs.kafka.query_journal_kafka_topicglobal.helm.appOpts.abyss.logs.kafka.topicglobal.helm.appOpts.abyss.logs.kafka.levelglobal.helm.appOpts.abyss.logs.kafka.cluster_selector
Требуется переопределение параметров: не требуется
Блок настроек метрик и мониторинга#
metrics:
kafka:
### Включение самомониторинга
enabled: 'false'
### Имя кластера kafka. Значение параметра формируется на основании имени блока global.endpoints.egress.kafka.service.cluster1, в формате kafka-<имя кластера в блоке>
cluster_selector: kafka-cluster1
### Параметры самомониторинга
### Свойство abyss.selfmonitoring.kafka.client.acks
ask: '0'
### Свойство abyss.selfmonitoring.kafka.client.producer.max-request-size
max_request_size: '2097152'
### Свойство abyss.selfmonitoring.kafka.client.producer.retry-attempts
retry_attempts: '3'
### Свойство abyss.selfmonitoring.kafka.client.producer.delivery-timeout-ms
delivery_timeout_ms: '120000'
### Свойство abyss.selfmonitoring.kafka.client.producer.request-timeout-ms
request_timeout_ms: '30000'
### Свойство abyss.selfmonitoring.kafka.client.producer.linger_ms
linger_ms: '10'
### Топик для самомониторинга
topic: 'abyss.coordinator-metrics'
### Включение health-проб, параметр management.endpoint.health.probes.enabled
health_probes_enabled: 'true'
### Включение проб работоспособности, параметр management.health.livenessState.enabled
liveness_state_enabled: 'true'
### Включение проб готовности принимать трафик, параметр management.health.readinessState.enabled
readiness_state_enabled: 'true'
### Изменение точки управления для запуска проб, параметр management.endpoints.web.base-path
web_base_path: /
### Список включаемых endpoints для доступа, параметр management.endpoints.web.exposure.include
web_exposure_include: prometheus,health,info,loggers
### Сопоставление пути для проб с новой конечной точкой из web.base-path, параметр management.endpoints.web.path-mapping.prometheus
web_path_mapping_prometheus: /metrics
### Включение/выключение публикации метрик архивного хранилища
scheduler_metric_enabled: 'true'
Требуется актуализировать параметры:
global.helm.appOpts.abyss.metrics.kafka.topicglobal.helm.appOpts.abyss.metrics.kafka.cluster_selectorglobal.helm.appOpts.abyss.metrics.liveness_state_enabledglobal.helm.appOpts.abyss.metrics.health_probes_enabledglobal.helm.appOpts.abyss.metrics.readiness_state_enabledglobal.helm.appOpts.abyss.metrics.scheduler_metric_enabledglobal.helm.appOpts.abyss.metrics.web_base_path
Требуется переопределение параметров: возможно всех из перечисленных для актуализации
Список модулей и файлов в них, в которых переопределены данные параметры (формат <модуль/файл values-*.yaml>):
abyss-archive/values-abyss-archive.yamlabyss-authorization/values-abyss-authorization.yamlabyss-base/values-abyss-base.yamlabyss-client-api/values-abyss-client-api.yamlabyss-flow/values-abyss-flow.yamlabyss-fulltext-index/values-abyss-fulltext-index.yamlabyss-kafka-svc/values-abyss-kafka-svc.yamlabyss-monitoring/values-abyss-monitoring.yamlabyss-trace-collector/values-abyss-trace-collector.yamlabyss-trace-query/values-abyss-trace-query.yaml
Примеры переопределения параметров были приведены выше.
Блок параметров для TraceCollectorService#
### Параметры TraceCollector Service
tracing:
### Включение/отключение функциональности
enabled: 'false'
### Параметр включения сбора трейсов внешним сервером
ext_tracing_enabled: false
### ContextPath URL сервера выполняющего сбор трейсов (при ext_tracing_enabled: true)
sub_path: '/api/v2/spans'
### Количество трейсов в процентном отношении, которые будут отправлены на сервер сбора трейсов. Если был создан составной трейс, то он отправляется на сервер целиком. Возможные значения: 1-100
sampling_percent: '100'
Требуется актуализировать параметры:
global.helm.appOpts.abyss.tracing.enabledglobal.helm.appOpts.abyss.tracing.ext_tracing_enabledglobal.helm.appOpts.abyss.tracing.sub_path
Требуется переопределение параметров: возможно всех из перечисленных для актуализации
Одиночные параметры#
### Добавление клиентского сертификата в header - X-Abyss-SSL-Client-Cert
set_cert_in_header:
enabled: false
### Параметры SOLR
solr:
### Для включения установки ACL Solr
zookeeper_acl_enabled: 'false'
yarn:
### Путь до файлов клиентской конфигурации YARN
yarn_conf_dir: /app/yarn-conf
zookeeper:
### Настройка подключения к zookeeper, если несколько кластеров zookeeper - clusters если один - subsets
connection_type: subsets
Требуется актуализировать параметры:
global.helm.appOpts.abyss.set_cert_in_header.enabledglobal.helm.appOpts.abyss.solr.zookeeper_acl_enabledglobal.helm.appOpts.abyss.zookeeper.connection_typeglobal.helm.appOpts.abyss.yarn.yarn_conf_dir
Требуется переопределение параметров: возможно всех из перечисленных для актуализации