Руководство по установке#

В руководстве приведены инструкции по установке компонента Сервис управления справочными данными (NSIX) продукта Platform V Dictionaries (SDT).

Системные требования#

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

Системное программное обеспечение#

Ниже представлены категории системного ПО, которые обязательны или опциональны для установки, настройки, контроля и функционирования NSIX. В каждой категории перечислены все поддерживаемые продукты/компоненты. Клиенту необходимо выбрать один из вариантов в каждой категории, исходя из условий использования конечной ИС.

Обязательность установки (Да/Нет) *

Наименование ПО и версия **

Описание

Да

Альт 8 СП 10.0 и выше или
Platform V SberLinux OS Server (SLO) 8.8 и выше (Операционная система (INST)) или
Platform V SberLinux OS Core (SLC) 37.0 и выше (Базовая ОС (CORE)) или
Red Hat Enterprise Linux 8.5 и выше

Операционная система

Да

Platform V DropApp (K8S) 2.0 и выше (K8S Core (K8SC)) или
Kubernetes 1.22.2 и выше или
Red Hat OpenShift Container Platform 4.8.53 и выше

Среда контейнеризации

Да

Docker CE 1.23 и выше

Средство контейнеризации

Да

Jenkins 2.361.4 и выше или
Platform V DevOps Tools (DOT) 1.6.2 и выше (Deploy tools (CDJE))

Инструмент сборки, тестирования, развертывания контейнеризированных приложений

Да

AdoptOpenJDK (Adoptium) 11 и выше или
OpenJDK 11 и выше

Java-машина

Да

PostgreSQL 11.7 и выше или
Platform V Pangolin SE (PSQ) 5.3.1 и выше (Pangolin (PSQL))

Система управления базами данных (СУБД)

Да

Apache Maven 3.5.4 и выше

Инструмент управления проектом

Да

Nexus-Public 2.5.1 и выше или
Nexus Repository Manager PRO любая актуальная версия или
Nexus Repository Manager OSS любая актуальная версия

Сервис централизованного хранения репозиториев артефактов (хранилище артефактов)

Да

GitLab CE 15.0 и выше или
BitBucket 7.6 и выше

Сервис централизованного хранения репозиториев исходного кода

Да

Istio 2.0 и выше или
Platform V Synapse Service Mesh (SSM) 3.9.9 и выше (Сервисный прокси (SVPX), Граничный прокси (IGEG))

Сервис интеграции и оркестрации микросервисов в облаке

Нет

Secret Management System (SecMan) 1.7.0 и выше или
HashiCorp Vault 1.15.4 и выше

Система управления секретами

Да

Яндекс.Браузер 19 и выше

Браузер

Да

Liquibase любая актуальная версия

Система для управления изменениями баз данных

Нет

Platform V SynGX (SNX) 2.0 и выше (Веб-сервер и обратный прокси-сервер SynGX (SNGX))

Веб-сервер и обратный прокси-сервер

Нет

Platform V Audit SE (AUD) 4.2 и выше (Аудит (AUDT))

Регистрация и долговременное хранение событий информационной безопасности из автоматизированной системы (АС)

Нет

Kiali 1.24.3 и выше или
Platform V Monitor (OPM) 5.1.1 и выше (Объединенный мониторинг Unimon (MONA))

Система визуализации данных

Нет

Elasticsearch 7.17 и выше или
Platform V Monitor (OPM) 5.1.1 и выше (Журналирование (LOGA))

Система сбора и хранения логов

Нет

Platform V IAM SE (IAM) 1.6 и выше (IAM Proxy (AUTH), Объединенный сервис авторизации (ОСА) (AUTZ))

Сервис управления аутентификацией и авторизацией в бизнес-приложениях

Нет

Platform V Backend (#BD) 4.5.21.0 и выше (One-Time Password (OTP) / OTT (OTTS))

Сервис для аутентификации и авторизации межсервисных взаимодействий

Нет

VictoriaMetrics 1.52.0

Сервис хранения данных метрик

Да

Apache Kafka 2.7.0 и выше при условии сохранения обратной совместимости или
Platform V Corax (KFK) 9.340.0 и выше (Corax (KFKA))

Сервис хранения данных метрик

Примечание

Примечание
*

  • Да — ПО, необходимое для функционирования сервиса, без установки которого не гарантирована работоспособность.

  • Нет — ПО, необязательное для функционирования сервиса, установка которого не влияет на работоспособность основных функций.

    ** Минимальная версии программного обеспечения, на которой гарантируется работоспособность. Использование версий выше заявленной возможно до потери обратной совместимости.

Аппаратные требования#

Для установки NSIX требуется следующая конфигурация аппаратного обеспечения:

  • Квота на проект: 16 CPU, 32 ГБ Mem;

  • Количество pods на один элемент развертывания (deployment unit): 1.

Подсказка

Подсказка
Расчет потребности в физическом оборудовании происходит на основе коэффициентов повторной подписки, применяемых к требованиям по виртуальным ресурсам для каждого из стендов.

Для установки NSIX со всеми его модулями требуется нижеописанная конфигурация аппаратного обеспечения.

Название модуля

ПО среды функционирования

Количество

CPU (ГБ)

ОЗУ (ГБ)

Внутренние диски

Горизонтальное масштабирование

mdc-ivs

Kubernetes/DropApp (опционально Openshift)

1

4,65

4,65

Нет

mdc-jobs

Kubernetes/DropApp (опционально Openshift)

3

2,69

6,65

Да

mdc-kmd

Kubernetes/DropApp (опционально Openshift)

1

2,65

2,65

Нет

mdc-api

Kubernetes/DropApp (опционально Openshift)

1

2,69

4,65

Нет

mdc-ui

Kubernetes/DropApp (опционально Openshift)

1

0,7

0,7

Нет

Предупреждение

Важно!
Для стабильной работы NSIX рекомендуется использовать Guaranteed Quality of Service (QoS). Именно этот класс QoS pods позволяет быстро и качественно обрабатывать большие справочники.

Параметры горизонтального масштабирования приведены в таблице ниже:

Параметр

Значение

Описание параметра

mdc-jobs.deployment.spec.replicas

3

Основной параметр репликации

mdc-jobs.deployment.spec.max.replicas

5

Максимально допустимое количество pods для модуля mdc-jobs

mdc-jobs.hpa.spec.targetCPUUtilizationPercentage

30

Значение утилизации CPU pod, выше которого необходимо инициировать поднятие нового pod

Примечание

Примечание
При горизонтальном масштабировании продукта рекомендуется предварительно провести нагрузочное тестирование на целевой конфигурации конкретной инсталляции.

Предупреждение

Важно!
Максимальное количество pods ограничено.

Состав дистрибутива#

Состав дистрибутивного комплекта при первоначальной установке компонента:

Элемент дистрибутива

Описание элемента дистрибутива

\package\bh

Исполняемые JAR-файлы в среде JVM:
• mdc-api.jar;
• ivs-rest-cloud.jar;
• jobs-rest-cloud.jar;
• kmd-rest-cloud.jar

\package\conf

Конфигурационные файлы NSIX

\package\conf\config\parameters

Файлы конфигурационных параметров, общие для всех pods оркестратора среды контейнеризации mdc.all.conf (а также для каждого pod в частности)

\package\conf\data

Каталоги, содержащие файлы импорта данных для платформенных компонентов AUTH и LOGA

\package\conf\k8s\base

Каталог, содержащий общие файлы настроек Istio, Docker, ConfigMaps, Secrets для оркестраторов среды контейнеризации, а также Deployment configs для Kubernetes

\package\conf\k8s\overrides\openshift

Каталог, содержащий файлы настроек Deployment configs для оркестратора среды контейнеризации OpenShift (опционально)

\package\conf\distrib.yml

Файл, описывающий расположение и состав дистрибутива

\package\conf\pipeline.yml

Файлы с настройками для системы CI/CD по установке сервиса

\package\db

Скрипты Liquibase для инициализации объектов БД

Выбор способа установки#

Целевым является способ установки NSIX с помощью компонента Deploy tools (CDJE) продукта Platform V DevOps Tools (DOT).

Подготовка окружения#

Настройка системного ПО сервера приложений компонента NSIX#

Настройки из данного раздела выполняются системным администратором компонента. Действия осуществляются под учетной записью пользователя root, либо через sudo, если права позволяют редактировать текст системных файлов, владельцем которых является root.

Настройка сетевого взаимодействия#

Для настройки сетевого взаимодействия необходимо соблюсти следующие требования:

  1. На двух серверах БД NSIX в файле /etc/hosts должна содержаться информация об именах серверов приложений NSIX.

  2. На двух серверах БД NSIX должен быть обеспечен сетевой доступ к данным серверам.

  3. Должен быть обеспечен сетевой доступ к БД серверу конфигуратора Платформы.

  4. IP-адреса и порты серверов необходимо запросить у администраторов NSIX.

Настройка при развертывании в кластере#

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

  1. На двух серверах приложений NSIX в файле /etc/hosts должна присутствовать следующая информация об именах серверов:

    • (IP) Кластерное имя сервера приложений компонента;

    • (IP) Кластерное имя сервера приложений компонента (на первом сервере);

    • (IP) Кластерное имя сервера приложений компонента (на втором сервере);

    • (IP) Внутреннее кластерное имя сервера приложений компонента;

    • (IP) Внутреннее кластерное имя сервера баз данных компонента.

  2. Должен быть обеспечен сетевой доступ ко всем указанным выше серверам.

Подсказка

Подсказка
Внутреннее кластерное имя сервера приложений NSIX используется для организации прямого сетевого взаимодействия с сервером баз данных NSIX. На сервере баз данных для этих целей используется внутреннее кластерное имя сервера баз данных NSIX.

Подсказка

Подсказка
В качестве примера внутреннего кластерного имени сервера приложений компонента используется имя mdmpapp.
/ В качестве примера внутреннего кластерного имени сервера баз данных компонента используется имя mdmpdb.

Требования к среде установки#

Для корректной работы функциональности NSIX необходимо проверить, работают ли следующие модули NSIX:

  • mdc-ivs;

  • mdc-jobs;

  • mdc-kmd;

  • mdc-api;

  • mdc-ui.

Подсказка

Подсказка
NSIX использует модули ядра Platform V. До установки модуля сервисов прикладного ядра следует развернуть и настроить компоненты Platform V, указанные в разделе Системное программное обеспечение настоящего документа. Для развертывания компонента NSIX также должен быть установлен сервер приложений DropApp, Kubernetes или Openshift (опционально).

Установка#

Примечание

Примечание
Здесь и далее поддерживаемой системой приложений-контейнеров является DropApp или Kubernetes (использование OpenShift — опционально). В инструкциях по настройке, в именах переменных и параметрах системы могут встречаться названия систем контейнеризации (оркестрации), одинаковые и применимые для всех перечисленных сред контейнеризации.

Автоматизированная установка сервиса с использованием Deploy Tools#

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

Перед установкой NSIX убедитесь, что выполнены все следующие условия:

  1. У пользователя, производящего установку, должна быть возможность создания репозиториев в GitLab СЕ, Nexus Public и получения прав на чтение/запись, включая права на чтение/запись в ветке master.

  2. Должна наличествовать техническая учетная запись для работы с репозиториями.

  3. Должны быть созданы следующие pipeline-репозитории GitLab СЕ в проектной области, например:

    • pipeline — репозиторий с кодовой базой релизов pipeline (на каждый стенд — собственный репозиторий);

    • common — репозиторий с глобальными (одинаковыми для всех компонентов в рамках одного стенда) переменными среды (на каждый стенд — собственный репозиторий).

    • mdc с параметрами конфигурациями подсистемы MDC.

  4. Должны быть прописаны доступы в репозитории по протоколам SSH+HTTP на чтение/запись во все ветки, в т.ч. в ветку master.

  5. В Nexus Public должны быть размещены дистрибутивы разворачиваемых систем. К данным репозиториям должен быть доступ с правами на чтение для технической учетной записи.

  6. В Nexus Public должны быть созданы репозитории, в которые загружены дистрибутивы всех компонентов pipeline (Installer.Base, Installer.Migration, Installer.Common). (К перечисленным репозиториям должен быть доступ с правами на чтение для технической учетной записи):

    • AS_EFS_Installer.Base — глобальные настройки и утилиты для pipeline;

    • AS_EFS_Installer.Migration — дистрибутив утилиты миграции;

    • AS_EFS_Installer.Common — базовый дистрибутив common (глобальные параметры по умолчанию для pipeline).

  7. В GitLab СЕ должны быть созданы репозитории, в которые загружены дистрибутивы всех компонентов pipeline.

Подготовка инструментов развертывания#

Предусмотрены следующие инструменты развертывания:

  • JOB Service — job обновления (первичная загрузка кода JOB Deploy на стенд, обновление кода JOB Deploy при выпуске новых релизов JOB Deploy);

  • JOB Deploy — job развертывания дистрибутивов.

Используя Service job, выполните миграцию актуальных данных для репозиториев common и pipeline:

pipelineVersion=release/<distrib_version>
commonVersion=<distrib_version>

Настройка параметров конфигурации в common-репозитории#

После завершения миграции:

  1. Добавьте подсистему MDC в common-репозиторий.

  2. Заполните environment.json в блоке ENVIR: main.

Пример заполнения
{
  "main": {
    "credentials": {
      "SshKeyCreds": "git_ssh_tech",
      "UserPassCreds": "user_pass_tech",
      "ansible_vault_id": "encrypt_secret",
      "ansible_vault_id_ops": "encrypt_secret",
      "jenkinsQAkitCred": "85618fbf-6aac-4c69-be1d-d1fd1895d189",
      "openshiftOpsPasswordsCred": "encrypt_pass",
      "gatewayClientCer": "gateway_client_cer",
      "gatewayClientKey": "gateway_client_key",
      "gatewayClientKeystore": "gateway_client_keystore"
    },
    "ticketID": "true",
    "addMarker": "false",
    "iag": "true",
    "efsReleaseRepo": "",
    "platformVersions": [
      "R20.1"
    ],
    "openshiftCluster": "https://api.mycompanydomain:6443",
    "openshiftAppsDomain": "apps.ift-efs1-ds.mycompanydomain",
    "openshiftRegistry": "mycompany/public_efs/v2/efs",
    "openshiftInnerRegistry": "mycompany",
    "openshiftInnerRegistryCommonNamespace": "devopsefs",
    "openshiftInnerRegistryAlias": "mycompany",
    "openshiftUseSkopeo": "true",
    "openshiftOuterRegistryTLSVerify": "false",
    "openshiftInnerRegistryTLSVerify": "false",
    "openshiftWaitForDeploySeconds": "600",
    "openShiftNewPasswords": "true",
    "openshiftMultiClusters": "true",
    "openshiftNginx": "true",
    "openshiftDeploySteps": {
      "deployProtocol": "true",
      "archiveConfigs": "true",
      "deployConfigMaps": "true",
      "deployApps": "true",
      "deployJKS": "true",
      "deployHPA": "true",
      "deployServices": "true",
      "deployRoutes": "true",
      "deploySecrets": "true"
    },
    "oseProjectMapping": {
      "config": {
        "sector": "conf"
      }
    },
    "sector": "true",
    "sectorFilter": [
      "config"
    ],
    "cleanupPattern": "**/conf/config/parameters/*.conf **/conf/data/**/parameters/*.conf"
  }
}

Для авторегулирования числа pods для приложений mdc-jobs требуется развертывание объекта HorizontalPodAutoscaler. Для включения автоскейлинга в модуле jobs необходимо в environment.json в блоке openshiftDeploySteps установить для deployHPA значение true.

Пример заполнения
    "openshiftDeploySteps": {

      "deployHPA": "true"

    }
Пример environment.json
{
  "main": {
    "credentials": {
      "SshKeyCreds": "git_ssh_tech",
      "UserPassCreds": "user_pass_tech",
      "ansible_vault_id": "encrypt_secret",
      "ansible_vault_id_ops": "encrypt_secret",
      "jenkinsQAkitCred": "85618fbf-6aac-4c69-be1d-d1fd1895d189",
      "openshiftOpsPasswordsCred": "encrypt_pass",
      "gatewayClientCer": "gateway_client_cer",
      "gatewayClientKey": "gateway_client_key",
      "gatewayClientKeystore": "gateway_client_keystore"
    },
    "ticketID": "true",
    "addMarker": "false",
    "iag": "true",
    "efsReleaseRepo": "",
    "platformVersions": [
      "R20.1"
    ],
    "openshiftCluster": "https://api.mycompanydomain:6443",
    "openshiftAppsDomain": "apps.ift-efs1-ds.mycompany.ru",
    "openshiftRegistry": "mycompany/public_efs/v2/efs",
    "openshiftInnerRegistry": "mycompany",
    "openshiftInnerRegistryCommonNamespace": "devopsefs",
    "openshiftInnerRegistryAlias": "mycompany",
    "openshiftUseSkopeo": "true",
    "openshiftOuterRegistryTLSVerify": "false",
    "openshiftInnerRegistryTLSVerify": "false",
    "openshiftWaitForDeploySeconds": "600",
    "openShiftNewPasswords": "true",
    "openshiftMultiClusters": "true",
    "openshiftNginx": "true",
    "openshiftDeploySteps": {
      "deployProtocol": "true",
      "archiveConfigs": "true",
      "deployConfigMaps": "true",
      "deployApps": "true",
      "deployJKS": "true",
      "deployHPA": "false",
      "deployServices": "true",
      "deployRoutes": "true",
      "deploySecrets": "true"
    },
    "oseProjectMapping": {
      "config": {
        "sector": "conf"
      }
    },
    "sector": "true",
    "sectorFilter": [
      "config"
    ],
    "cleanupPattern": "**/conf/config/parameters/*.conf **/conf/data/**/parameters/*.conf"
  }
}
Пример subsystem.json
{
  "__default": {
    "classifier": "distrib",
    "groupId": "Nexus_PROD",
    "packaging": "zip",
    "strict": "false",
    "sqlReport": "false",
    "limit": 200,
    "deployType": "manual",
    "fpType": "p69",
    "openshiftProject": "",
    "at": {
      "groupId": "Nexus_PROD",
      "branch": "master",
      "classifier": "distrib",
      "packaging": "zip"
    },
    "at_ui": {
      "groupId": "Nexus_PROD",
      "branch": "master",
      "classifier": "distrib",
      "packaging": "zip"
    }
  },
  "MDC": {
    "app_name": [
      "mdc-ivs",
      "mdc-jobs",
      "mdc-kmd",
      "mdc-api",
      "mdc-ui"
    ],
    "groupId": "Nexus_PROD",
    "artifactId": "CI02910046_MDC",
    "fpType": "bts",
    "fpi_name": "mdc",
    "versionFilter": "4."
  },
  "MDC_mycompany": {
    "app_name": [
      "mdc-ivs",
      "mdc-jobs",
      "mdc-kmd",
      "mdc-api",
      "mdc-ui"
    ],
    "groupId": "mycompany_PROD.CI90000122_pprbnsi",
    "artifactId": "CI90000127_mdc_cloud",
    "nexus_repo": "mycompany_PROD",
    "fpType": "bts",
    "fpi_name": "mdc",
    "versionFilter": "4."
  }
}

Подсказка

Подсказка
При добавлении нового сектора в subsystem.json добавьте запись о нем в environment.json:

  • openshiftProjectName — название проекта;

  • openshiftSATokenCred — credentials из Jenkins (Secret text c содержанием токена сервисного аккаунта с правами развертывания).

Пример multiclusters.json
{
  "datacenters": {
    "tribe-pf-dev-nsix-vdc16-01": {
      "openshiftCluster": "https://api.mycompanydomain:6443",
      "openshiftSATokenCred": "token-credential-name",
      "openshiftProjectName": "namespace-name",
      "openshiftNewRoute": "dummyNewRoute",
      "openshiftControlPlane": "dummyIp",
      "openshiftControlPlaneIstiodService": "istiod-common-install",
      "openshiftRoutersFQDN": [
        "dummyIp"
      ]
    }
  }
}

Предупреждение

Важно!
При использовании глобальных переменных отредактируйте их под требуемое окружение и добавьте переменные для NSIX, как показано в примерах ниже.

Добавление глобальных переменных в common.conf.yml
# адрес БД продукта
global.jdbc.mdc_postgres.url=jdbc:postgresql://хост:порт/имя_бд?prepareThreshold=0

# Установка инициализационных скриптов + патчей метамодели. Проводится только 1 раз на чистую схему
isInstallDBInit: false

# Установка всех скриптов патчей (метамодель, модель и данные). Выбрать true только на схему с данными, иначе false
isInstallDBPatchesAll: true

# Установка скриптов патчей метамодели и модели без данных. Проводится, если предыдущий вариант выбран false
isInstallDBPatchesModel: false
# Если выбрать все варианты как "false", по умолчанию устанавливаются только скрипты патчей метамодели

# Имя дополнительного пользователя (не владельца схемы), под которым работает приложение. Если отдельного пользователя нет, параметр не задается 
MDC_APPL_USER: mdc_cloud_appl
# Имя дополнительной роли, которую наследуют вспомогательные пользователи приложения. Если таковой нет, параметр не задается 
MDC_APPL_ROLE: mdc_cloud_appl_role
Добавление глобальных переменных в _global.jdbc.conf
# адрес БД продукта
global.jdbc.mdc_postgres.url=jdbc:postgresql://хост:порт/имя_бд?prepareThreshold=0

В файл _global.resources.conf необходимо внести конечные хосты.

Примеры конечных хостов приведены в таблице ниже:

Хост

Категория хоста

global.platform.ingress.route.https=mdc-01.mdc-dev.apps.mycompanydomain

Хосты Ingress Nsix

global.platform.ingress.route.http=mdc-http-01.mdc-dev.apps.mycompanydomain

global.platform.ingress.gateway.https=ingress-gw-mdc-unver

global.platform.ingress.gateway.http=ingress-gw-mdc-unver

global.platform.sgw.route.core.host=mdc-http-test-01.mdc-dev.apps.mycompanydomain

global.platform.baseurl.mdc.ivs=mdc-http-01.mdc-dev.apps.mycompanydomain

Хосты NSIX

global.platform.baseurl.mdc.jobs=mdc-http-01.mdc-dev.apps.mycompanydomain

global.platform.baseurl.mdc.kmd=mdc-http-01.mdc-dev.apps.mycompanydomain

global.platform.baseurl.mdc.api=mdc-http-01.mdc-dev.apps.mycompanydomain

global.platform.baseurl.rspit=rspit.dev.apps.mycompanydomain

global.multiClusters.openshiftControlPlane=имя_контрольной_панели_istio

Контрольная панель Istio

Примечание

Примечание
Наименования хостов в таблице выше указаны схематично. При заполнении в промышленной среде необходимо указывать целевые параметры.

Подсказка

Подсказка
При развертывании NSIX в среде контейнеризации OpenShift на данном этапе необходимо внести в список глобальных переменных NAMESPACE=название_проектной_области_в_Openshift.

Подсказка

Подсказка
В файле ssl.conf необходимо закомментировать (с помощью символа #) значения параметров ssl.ose.keyStore.mq.keyStoreFromFile и ssl.ose.keyStore.mq.CertAlias, связанных с сертификатами mq, так как на данный момент в NSIX они не используются.

Параметр ssl.ose.keyStore.mq.keyStoreFromFile принимает значение ansible/files/ssl/ukoflssl.jks.
Параметр ssl.ose.keyStore.mq.CertAlias принимает значение ${ssl.ose.istio.keyStore.egress.certAlias}

Добавление глобальных переменных в openshift.conf

Параметр

Значения

Комментарий

global.ott.ose_deploy

true/false

true, если используется ОТТ, и false в противном случае

ose.kind_route.deploy

true/false

true, если в качестве маршрута ingress развертывается объект типа маршрута, совместимый только с OpenShift.
false, если развертывается объект типа Ingress

secman.secman_injector

true/false

true, если используется хранилище паролей и сертификатов Secret Management System вместо обычных secrets

Образы#

В _global.resources.conf внесите образы.

Пример внесения образов
# Образ Istio
global.multiClusters.openshiftEnvoyImage=mycompany/registry_redhat_io/openshift-service-mesh/proxyv2-rhel8@sha256:320f5bd35c208e00005c01ce0e83c8f05276119f273e9f881da950fdfff59a13

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

Для настройки интеграции с AUTZ необходимо указать его адрес для NSIX. Для этого необходимо в параметре mdc.configmap.spas.url прописать URL-адрес сервиса авторизации, на который NSIX будет отправлять запросы на получение прав аутентифицированного пользователя. AUTZ при получении запроса от NSIX по-указанному URL-адресу возвращает ответ, в котором содержатся права конкретного пользователя.

Специальной настройки для интеграции с AUTH не требуется. AUTH перехватывает запрос, выполняющийся через браузер, и проверяет наличие открытой сессии. Если сессия отсутствует, AUTH запрашивает данные авторизации пользователя (имя пользователя и пароль) и передает запрос в NSIX. NSIX проверяет входящий запрос от AUTH на предмет информации о пользователе.

Установка типа авторизации#

Для установки типа авторизации необходимо установить значение для параметра mdc.configmap.security.authorization. Допустимы значения в зависимости от типа авторизации:

  • SPAS — spas;

  • AUTZ — auth.

Также необходимо в параметре mdc.configmap.spas.url указать URL до сервиса авторизации и заполнить параметры группы mdc.istio.egress.common.spas.* для подключения к сервису по egress.

Параметры настройки с сервисом авторизации приведены в таблице ниже:

Параметр

Значение

Комментарий

mdc.configmap.spas.url

https://адрес_сервера/spas/rest

Адрес сервера SPAS. Если не используется — задать произвольный

mdc.configmap.security.authentication

iam

В случае, если IAM не используется, указать none

mdc.configmap.security.authorization

autz

Тип авторизации IAM

mdc.configmap.security.iam_channel

SUPPORT

Канал IAM

mdc.configmap.security.iam_mode

DEV или PROD

Режим IAM

mdc.configmap.security.iam_tenant

DEFAULT_TENANT

Тенант IAM

mdc.configmap.security.iam_auth_pool_size

20

Размер пула IAM

mdc.configmap.security.iam_ssl

true/false

Указать false, если необходимо использовать SSL в IAM

mdc.configmap.security.iam_trust_store_path

" "

Пусть к trust store IAM

mdc.configmap.security.iam_trust_store_password

" "

Пароль trust store IAM

mdc.configmap.security.iam_public_key_locations

" "

Путь к публичным ключам IAM

Подготовка и создание secrets. Настройка серверного сертификата#

Для каждого кластера создайте secrets, которые нужно поместить либо в Secman, либо в хранилище job:

  • secret-mdc.unver;

  • secret-mdc-kafka-certs.unver;

  • ingress-secret-mdc-istio-gateway-ca-certs.unver;

  • ingress-secret-mdc-istio-gateway-certs.unver;

  • egress-secret-mdc-istio-gateway-ca-certs.unver;

  • egress-secret-mdc-istio-gateway-certs.unver;

  • egress-secret-mdc-ott-ca-certs.unver;

  • egress-secret-mdc-ott-certs.unver.

Подсказка

Подсказка Первый secret из списка содержит значения типа ключ-значение, такие, как логин и пароль базы данных приложения, S3 и пароли к хранилищам сертификатов. Остальные secrets содержат сертификаты Egress, Ingress, Kafka и ОТТ.

Создание сертификатов Egress, Ingress#

Пример. Создание secret входного шлюза#

Secret входного шлюза состоит из двух ресурсов типа secret. Создание ресурса выполняется с помощью утилиты командной строки — OC client с локальной машины.

Перед началом создания secrets получите следующие файлы:

  • приватный ключ;

  • серверный сертификат, подписанный удостоверяющим центром;

  • цепочка сертификатов.

Выпуск сертификата для создания secret входного шлюза

Подсказка

Подсказка Выдача сертификатов осуществляется удостоверяющим центром. Сертификаты требуется создать для Egress, Ingress и Kafka LOGA. В зависимости от требований, для них могут использоваться как одни и те же, так и разные сертификаты, в последнем случае требуется выполнить аналогичные последовательности шагов.

Для создания группы сертификатов выполните следующие шаги:

  1. Создайте конфигурационный файл запроса на сертификат request.conf.

Пример конфигурационного файла с запросом на сертификат
[ req ]
default_bits = 2048
distinguished_name = req_distinguished_name
req_extensions = req_ext
prompt = no

[ req_distinguished_name ]
C = RU
L = Moscow
ST = Moscow
O = my company
OU = 00CA
CN = 00CA0001TEST

[ req_ext ]
subjectAltName = @alt_names
extendedKeyUsage = serverAuth,clientAuth - указать нужный

[alt_names]
DNS. 1 = *.apps.mycompanydomain1
DNS. 2 = *.*.apps.mycompanydomain1
DNS. 3 = *.apps.ocp.geo.mycompanydomain1
DNS. 4 = *.apps.mycompanydomain2
DNS. 5 = *.*.apps.mycompanydomain2
DNS. 6 = *.apps.ocp.geo.mycompanydomain2

Подсказка

Подсказка Необходимо подставить в поля OU и CN на целевые. Вместо mycompanydomain1, mycompanydomain2 и т.д. указывается кластерное доменное имя DropApp/Openhift/Kunernetes целевого сервера, которое в адресе задается поле apps. В commonName указывается один из полных адресов хостов сервиса или произвольная строка. В DNS.1, DNS.N указываются полные имена хостов сервиса. Все адреса приведены в качестве примера и для реальной инсталляции могут отличаться.

  1. Выполните генерацию запроса на сертификат и приватный ключ.

Пример генерации запроса на сертификат и приватный ключ
openssl req -out {НАЗВАНИЕ_ЗАПРОСА_НА_ПОДПИСЬ_В_УЦ}.csr -newkey rsa:2048 -nodes -keyout {НАЗВАНИЕ_КЛЮЧА}.key -config {НАЗВАНИЕ_КОНФИГ_ФАЙЛА}.conf
  1. На основе файла запроса .csr выпустите сертификат .crt в удостоверяющем центре (далее — УЦ) для сервера. Результатом выполнения будут следующие файлы: приватный ключ, целевой сертификат и цепочка подписи (промежуточный УЦ, корневой УЦ):

    • osecer.key — приватный ключ

    • osecer.cer — целевой сертификат (может быть в формате pem)

    • middle.cer — сертификат промежуточного УЦ

    • root.cer — сертификат корневого УЦ

Подсказка

Подсказка
Названия файлов в реальных промышленных инсталляциях могут отличаться.

Примечание

Примечание
В NSIX с помощью KeyValue-механизма Secret Management System для наполнения TrustStore предусмотрена возможность использования множества удостоверяющих центров (УЦ).

  1. Переведите все три сертификата в формат .pem, если они изначально не выпущены в нем.

Пример перевода сертификатов в формат .pem
openssl x509 -inform der -in osecer.cer -out osecer.pem
openssl x509 -inform der -in middle.cer -out middle.pem
openssl x509 -inform der -in root.cer -out root.pem
  1. В текстовом редакторе создайте новый файл chain.pem. В файл chain.pem по очереди вставьте содержимое файлов с сертификатами middle.pem и root.pem.

  2. В конец файла osecer.pem добавьте содержимое файла chain.pem.

Подсказка

Подсказка
Для Ingress и Kafka Logger используйте те же сертификаты либо при необходимости создайте отдельные аналогичным способом.

Создание хранилища сертификатов в SecMan#

При использовании SecMan, необходимо создать KeyValue-хранилище и поместить в него следующие secrets:

Необходимые secrets:

{
  "jdbc.mdc_postgres.user": "имя_прикладного_пользователя_БД",
  "jdbc.mdc_postgres.password": "пароль_прикладного_пользователя_БД",
  "platform.spas.token": "токен для системы авторизации SPAS, если не применяется — оставить пустым",
  "mdc.secret.s3.access_key": "имя_пользователя_для_доступа_к_S3",
  "mdc.secret.s3.secret_key": "пароль_пользователя_для_доступа_к_S3",
  "mdc.secret.s3.external.access_key": "имя_пользователя_БД_Standin",
  "mdc.secret.s3.external.secret_key": "пароль_пользователя_БД_Standin"
}
{
  "mdc-cloud.crt.pem": "клиентский сертификат приложения ОТТ в формате base64",
  "mdc-cloud.key.pem": "ключ клиентского сертификата приложения ОТТ в формате base64",
  "ott-service.crt.pem": "серверный сертификат ОТТ в формате base64",

}
{
   "sber_root_ca.crt.pem": "корневой CA сертификат ОТТ в формате base64"
}

Сертификаты, необязательные для добавления в случае использования PKI-движка

{
  "tls.crt": "сертификат egress в формате base64",
  "tls.key": "ключ сертификата egress в формате base64"
}
{
  "truststore_pem": "цепочка корневых + промежуточных CA сертификатов egress в незашифрованном виде"
}
{
  "tls.crt": "сертификат ingress в формате base64",
  "tls.key": "ключ сертификата ingress в формате base64"
}
{
  "truststore_pem": "цепочка корневых + промежуточных CA сертификатов ingress в незашифрованном виде",
}
{
  "truststore_pem": "цепочка корневых + промежуточных CA сертификатов ingress в незашифрованном виде"
  "tls.crt": "сертификат Kafka egress в формате base64",
  "tls.key": "ключ сертификата Kafka egress в формате base64"
}

Примечание

Примечание
Корневые сертификаты обычно используются общие для всей компании. Для logger Kafka могут использоваться отдельные сертификаты, отличные от сертификатов egress.

Подсказка

Подсказка
Для сертификатов egress, ingress и egress kafka logger можно создать движок PKI, генерирующий сертификаты. В этом случае при создании движка следует правильно указать commonName, имеющий в общем случае вид apps.mycompanydomain. В случае использования PKI-движка (параметры ... .pki_engine.enabled=true) соответствующие сертификаты можно не генерировать и не создавать secrets.

Создание хранилищ сертификатов для job Deploy Tools#

Если использование Secret Management System для хранения сертификатов не планируется, сертификаты следует поместить в хранилище JKS.

Для создания хранилища сертификатов Deploy Tools необходимо выполнить следующие действия:

  1. Сгенерировать хранилище .p12 с помощью команды:

openssl pkcs12 -export -in osecer.pem -inkey osecer.key -out cert_and_key.p12 -name ingress -CAfile chain.pem -caname root
  1. Использовать сгенерированное хранлище .p12 в .jks с помощью команды:

keytool -importkeystore -destkeystore test.jks -srckeystore cert_and_key.p12 -srcstoretype PKCS12 -alias ingress
# ingress — этот alias уйдет в ssl.conf в common-репозиторий
  1. Импортировать сертификат корневого УЦ в .jks с помощью команды:

keytool -import -trustcacerts -alias root -file root.pem -keystore test.jks
# root — этот alias уйдет в ssl.conf в common репозиторий
  1. Проверить созданное хранилище с помощью команды:

keytool -list -v -keystore test.jks
  1. Импортировать сертификаты промежуточного и корневого УЦ в .jks с помощью команды:

keytool -import -trustcacerts -alias middle -file middle.pem -keystore mq.jks
keytool -import -trustcacerts -alias root -file root.pem -keystore mq.jks
  1. Добавить One-Time Password (OTP) / OTT (OTTS) в egress.jks с помощью команды:

keytool -list -keystore egress_ui.jks
  1. Сформировать .p12-хранилище для последующего импорта в jks с помощью команды:

openssl pkcs12 -export -in ci90000103_smgx_ui_st.pem -inkey ci90000103_smgx_ui_st.key -out ci90000103_smgx_ui_st.p12 -name ci90000103_smgx_ui_st -mycompany.pem -caname ott-ca
  1. Импортировать полученное хранилище в основной nginx.jks с помощью команды:

keytool -importkeystore -destkeystore egress_ui.jks -srckeystore ci90000103_smgx_ui_st.p12 -srcstoretype PKCS12 -alias ci90000103_smgx_ui_st
  1. Пароли необходимо зашифровать в _passwords.conf. Команды для шифрования и расшифровки приведены в таблице:

Команда shell

Назначение команды

Файл

openssl enc -aes-256-cbc -salt -in _passwords_d.conf -out _passwords.conf

Шифрование

_passwords.conf

openssl enc -aes-256-cbc -salt -in _passwords.conf -out _passwords_d.conf -d

Расшифровка

_passwords.conf

ansible-vault encrypt secret.yml

Шифрование

secret.yml

ansible-vault decrypt secret.yml

Расшифровка

secret.yml

  1. В шифруемый файл _passwords_d.conf необходимо поместить следующие пароли:

Параметр

Описание

jdbc.mdc_postgres.user

Логин пользователя БД

jdbc.mdc_postgres.password

Пароль пользователя БД

platform.spas.token

Токен сервиса авторизации

mdc.secret.s3.access_key

Публичный ключ доступа к S3

mdc.secret.s3.secret_key

Приватный ключ доступа к S3

mdc.secret.s3.external.access_key

Публичный ключ доступа к S3 для внешних сервисов

mdc.secret.s3.external.secret_key

Приватный ключ доступа к S3 для внешних сервисов

ssl.ose.istio.keyStore.ingress.password

Пароль от хранилища ingress

ssl.ose.istio.keyStore.egress.password

Пароль от хранилища egress

ssl.ose.istio.keyStore.ott.password

Пароль KeyStore для OTT

ssl.ose.istio.trustStore.ott.password

Пароль TrustStore для OTT

Подсказка

Подсказка
Пароль шифрования от _passwords.conf должен быть задан в качестве secret в Jenkins.

Настройка доступа к хранилищам сертификатов job Deploy Tools#

Если в качестве хранилища сертификатов используются локальных хранилища и не используется Secret Management System, необходимо в common-репозитории (в файле ssl.conf) задать значения параметров, связанных с сертификатами Istio egress/ingress, а также ОТТ (если используется).

Пример заполнения значений параметров приведен в таблице ниже.

Примечание

Примечание
В примере используется один общий сертификат.

Группа параметров

Параметр

Значение параметра

Параметры egress/ingress

ssl.ose.istio.keyStore.ingress.CertAlias

ingress

ssl.ose.istio.keyStore.ingress.KeyStoreFromFile

ansible/files/ssl/ingress.jks

ssl.ose.istio.keyStore.egress.CertAlias

ingress

ssl.ose.istio.keyStore.egress.KeyStoreFromFile

ansible/files/ssl/ingress.jks

ssl.ose.istio.keyStore.RootCertAlias

root

ssl.ose.istio.keyStore.ingress.password

ssl.ose.istio.keyStore.ingress.password

ssl.ose.istio.keyStore.egress.password

ssl.ose.istio.keyStore.egress.password

Параметры One-Time Password (OTP) / OTT (OTTS)

ssl.ose.istio.keyStore.ott.KeyStoreFromFile

ansible/files/ssl/ott_store.jks

ssl.ose.istio.trustStore.ott.TrustStoreFromFile

ansible/files/ssl/ott_trust.jks

ssl.ose.istio.keyStore.ott.password

ssl.ose.istio.keyStore.ott.password

ssl.ose.istio.trustStore.ott.password

ssl.ose.istio.trustStore.ott.password

Создание secrets One-Time Password (OTP) / OTT (OTTS)#

Для job нужно создать два jks-хранилища: основное и trust-хранилище.

  • Пароль от основного хранилища — значение параметра ssl.ose.istio.keyStore.ott.password.

  • Пароль от trust-хранилища — ssl.ose.istio.trustStore.ott.password.

В основном хранилище необходимо разместить публичный сертификат сервера ОТТ с alias ott-service и подписанный сертификат приложения с alias mdc-cloud.

В trust-хранилище необходимо разместить trust-сертификат с alias sber_root_ca.

Оба файла хранилища следует разместить в репозитории common в папке ansible/files/ssl/ и указать относительный путь к ним в параметрах:

Пример
ssl.ose.istio.keyStore.ott.KeyStoreFromFile=ansible/files/ssl/ott_store.jks
ssl.ose.istio.trustStore.ott.TrustStoreFromFile=ansible/files/ssl/ott_trust.jks

После внесения изменений в common-репозитории, которые должны привести к изменению UI, запустите job без выбора параметров.

Настройка ФП репозитория#

Предупреждение

Важно!
Для всех развертываний NSIX необходимо выставить значения параметра -Djava.net.preferIPv4Stack=true в JAVA_OPTS.

В репозитории mdc должны содержаться все значения стендовых параметров NSIX.

Создайте в репозитории mdc корневую папку с именем, как в репозитории common. В ней создайте папку conf, куда сохраните файл versions.conf, содержащий строку вида:scriptsVersion=#1d7e44fdf33.

Подсказка

Подсказка
Версии скриптов могут меняться.

Также в новой папке conf создайте подпапку /config/parameters и сохраните в нее conf-файлы, аналогичные тем, что находятся в дистрибутиве в папке parameters, и задайте нужные (целевые) значения.

Конфигурационные файлы с перечнем параметров текущей версии NSIX и их значений:

mdc.all.conf mdc.fluentbit.sidecar.all.conf mdc.istio.all.conf mdc-api.conf mdc-api.istio.conf mdc-ivs.conf
mdc-jobs.conf mdc-kmd.conf mdc-ui.conf

Параметры для файла mdc.all.conf приведены в таблице ниже:

Группа параметров

Параметр

Описание

Допустимые значения

Комментарий

Параметры Docker

registry

Адрес Docker Registry

mycompany/docker

registry_path

Относительный путь к образам в Docker Registry

/xxx/nsix_cloud

registry_path_istio

Относительный путь к образам в Docker Registry для Istio

/xxx/polm

registry_path_otts

Относительный путь к образам в Docker Registry для OTTS

/xxx/otts

registry_path_logger

Относительный путь к образам в Docker Registry для logger Kafka

/xxx/loga

Параметр развертывания

mdc.deployment.spec.template.spec.priorityClassName

Название класса приоритета для pods приложений NSIX

Значение по умолчанию не задано, следует оставить пустым

Параметр включения AntiAffinity

mdc.feature.SelfAntiAffinity.enabled

Включение AntiAffinity

true / false

Параметры БД

mdc.configmap.db.dialect

Класс диалекта СУБД

org.hibernate.dialect.PostgreSQL95Dialect

Для PostgreSQL класс — org.hibernate.dialect

mdc.configmap.db.driver

Класс драйвера БД

org.postgresql.Driver

Для PostgreSQL драйвер — org.postgresql.Driver

mdc.configmap.db.schema

Название схемы БД

mdc

mdc.configmap.db.url

Ссылка на БД

jdbc:postgresql://хостБД:портБД/имяБД?prepareThreshold=0

Обычно в формате jdbc:типБД://хостБД:портБД/имяБД?prepareThreshold=0

mdc.configmap.db.connection_init_query

Начальный запрос для подключения к БД

SELECT 1

mdc.configmap.db.connection_test_query

Запрос проверки подключения к БД

SELECT 1

Параметры безопасности

mdc.configmap.spas.authentication

Аутентификация

none / spas

Задается none — если не используется аутентификация, spas — если используется

mdc.configmap.spas.url

URL-адрес сервера авторизации

https://адрес_сервера/spas/rest

Если не используется — задать произвольный

mdc.configmap.security.authentication

Система аутентификации

iam / sudir / external / none

none — если не используется аутентификация, sudir, external или iam — если используется указанная система

mdc.configmap.security.authorization

Тип авторизации

autz / none

none — если не используется, autz — если используется

mdc.configmap.security.iam_channel

Канал IAM

SUPPORT

mdc.configmap.security.iam_mode

Режим работы IAM, если используется

PROD

DEV — тестовый, PROD — рабочий (по умолчанию)

mdc.configmap.security.iam_tenant

Тенант IAM

DEFAULT_TENANT

mdc.configmap.security.iam_auth_pool_size

Размер пула IAM

20

mdc.configmap.security.iam_ssl

Переключатель SSL в IAM

true / false

Необходимо задать true, если используется SSL в IAM

mdc.configmap.security.iam_trust_store_path

Путь к trust-хранилищу IAM

<ссылка на TrustStore>

mdc.configmap.security.iam_trust_store_password

Пароль к trust-хранилищу IAM

Пароль, соответствующий политике безопасности

mdc.configmap.security.iam_public_key_locations

Путь к публичным ключам IAM

<ссылка>

mdc.configmap.security.iam_dev_mode

DEV-режим IAM

true / false

По умолчанию false

Параметры для logger Kafka LOGA

mdc.fluent-bit-forwarder-sidecar.configmap.kafka.bootstrap.servers

Список серверов LOGA Kafka для отправки данных в формате хост1:порт1, …

kafka-server-01.mydomain:9093,kafka-server-02.mydomain:9093

mdc.fluent-bit-forwarder-sidecar.configmap.kafka.topic

Название topic Kafka, куда будут отправляться данные

mdc.logs

mdc.fluent-bit-forwarder-sidecar.configmap.kafka.security.protocol

Режим шифрования

PLAINTEXT / SSL

mdc.fluent-bit-forwarder-sidecar.configmap.kafka.ssl.location

Путь к файлу сертификатов Kafka

/vault/secrets/kafkacerts

Параметры аудита

mdc.configmap.audit.host

Адрес сервиса аудита

demo.audit2-client-proxy.apps.mycompanydomain

mdc.configmap.audit.enabled

Переключатель аудита

true / false

mdc.configmap.audit.security_change_audit_enabled

Включение аудита изменения записей

true / false

Параметры ссылок на приложения mdc

mdc.configmap.url.ivs

Ссылка на хост приложения MDC IVS

http://nsix-svc-mdc-ivs-unver:8080

По умолчанию ссылается на внутренний сервис

mdc.configmap.url.jobs

Ссылка на хост приложения MDC JOBS

http://nsix-svc-mdc-jobs-unver:8080

По умолчанию ссылается на внутренний сервис

mdc.configmap.url.kmd

Ссылка на хост приложения MDC KMD

http://nsix-svc-mdc-kmd-unver:8080

По умолчанию ссылается на внутренний сервис

mdc.configmap.url.api

Ссылка на хост приложения MDC API

http://nsix-svc-mdc-api-unver:8080

По умолчанию ссылается на внутренний сервис

mdc.configmap.url.rspit

Ссылка на хост приложения RSPIT (Витрина данных)

http://mdc-rspit.apps.mycompanydomain

Параметры S3

mdc.configmap.s3.append_lock_period_ms

Установка временной блокировки на загрузку файла для устранения перезаписи файла в многопоточном режиме

20000

mdc.configmap.s3.region

Регион

eu-central-1

mdc.configmap.s3.call_timeout_ms

Время ожидания ответа в миллисекундах

50000

mdc.configmap.s3.end_point

Адрес сервиса S3

https://s3-bh-barrier.subdomain.mycompany/

mdc.configmap.s3.bucket_name

Имя bucket

s3-bh-barrier

mdc.configmap.s3.external.end_point

Адрес внешнего хранилища S3 для потребителей

https://s3-bh-barrier.subdomain.mycompany/

mdc.configmap.s3.external.bucket_name

Имя внешнего bucket потребителя

s3-bh-barrier

mdc.configmap.s3.external.folder_name

Папка в bucket с данными для загрузки

dictionary

Папка во внешнем bucket потребителя, в который планируется выкладывать файлы для передачи в NSIX

Параметры мониторинга

mdc.configmap.secret_auto_update_enable

Активация сервиса ротации

true / false

Если true, то приложение отслеживает и реинициализирует secrets автоматически

mdc.configmap.secret_rotate_window

Ожидание перед реинициализацией подключений

5

При обнаружении обновлений в secrets выжидает заданное время перед началом реинициализации подключений

mdc.configmap.secret_read_retry_count

Количество повторов считывания secrets в случае невозможности считать secret

3

mdc.configmap.secret_reload_retry_count

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

4

mdc.configmap.monitoring_metric_partition

Раздел на диске пода для метрик мониторинга

unknown

mdc.configmap.monitoring_metric_region

Регион метрик мониторинга

unknown

mdc.configmap.monitoring_metric_account

Аккаунт для метрик мониторинга

unknown

Параметры SRLS

mdc-rls.spec.endpoints.by_header.endpoint

Специфичный параметр для SRLS

${global.platform.ingress.route.http}:8080

mdc-rls.spec.endpoints.by_header.uri_prefixes

Специфичный параметр для SRLS

1000:1000:minute:/mdc-api:'client 1':mdc-client:10:minute

mdc-rls.spec.endpoints.by_header.name

Специфичный параметр для SRLS

srls-dev

mdc-rls.spec.endpoints.by_header.overall_limit

Специфичный параметр для SRLS

1000

mdc-rls.spec.endpoints.by_header.shortname

Специфичный параметр для SRLS

devsrv

mdc-rls.spec.endpoints.envoyVersion

Специфичный параметр для SRLS

1.14

mdc-rls.spec.endpoints.rlnamespace

Специфичный параметр для SRLS

<...>-srls-01

mdc-rls.spec.endpoints.by_header.unit

Специфичный параметр для SRLS

minute

mdc-rls.spec.rlserver

Специфичный параметр для SRLS

nsix-svc-mdc-rls-unver.${NAMESPACE}.svc.cluster.local

mdc-rls.spec.rlserverport

Специфичный параметр для SRLS

12001

Прочие параметры приложений mdc

mdc.configmap.other.rspit_block_size

Размер блока экспортируемых в данных в Витрину данных

20000

mdc.configmap.other.server_type

Отображаемое имя сервера/стенда

MDC_SERVER

mdc.configmap.other.blocked_domains

Список документов, работа с которыми будет заблокирована

Products

mdc.configmap.other.rspit_mwnsi_producer_code

Producer_code, зарегистрированный в витрине данных

jobs-rest

mdc.configmap.other.storage_type

Тип хранилища при работе с файлами S3/DB

S3

mdc.configmap.other.rspit_request_limit

Лимит количества записей, возвращаемых в результатах отправленных запросов к Витрине данных

1000

mdc.configmap.upload_buffer_size

Размер буфера для чтения и записи файлов

52428800

mdc.configmap.max-http-header-size

Размер HTTP-заголовков

32KB

mdc.configmap.secret_auto_update_enable

Параметр управляет включением/выключением механизма ротации secrets

true/ false

Если true — NSIX отслеживает и реинициализирует secrets автоматически. Если false, то посредством перезапуска сервиса

mdc.configmap.secret_rotate_window

Выжидает время после изменения файла

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

mdc.configmap.secret_read_retry_count

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

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

mdc.configmap.receiver_system

Наименование системы, в которую происходит экспорт

DATA_MART

На данный момент DATA_MART — единственное доступное значение

mdc.configmap.external_local_folder_name

Название локальной папки

/tmp

mdc.configmap.external_validation_connection_timeout

Время ожидания подключения

60000

mdc.configmap.external_validation_readtimeout

Время ожидания чтения

30000

mdc.configmap.other.timedependent.is_bk_used_as_tk

Параметр времязависимости

true/ false

mdc.configmap.other.timedependent.is_end_created_with_bk

Параметр времязависимости

true/ false

Параметры ingress/egress Secman

mdc.deployment.metadata.sidecar.secman.rootCertsPath

Ссылка на корневой сертификат ingress/egress SecMan

{{ lookup('vars', 'global.platform.annotations.hashicorp.rootCertsPath') }}

Может быть задан локально, а может ссылаться на глобальную переменную

Параметры fail strategy

mdc.configmap.reload_strategy_fail_fast

Параметр переключения варианта fail strategy

true / false (по умолчанию — false

Переключение значения в true переводит fail strategy в режим fail fast (подробнее — в примечании ниже)

Параметры Kafka

mdc.configmap.kafka.bootstrap_servers

Список хостов и портов

{ HOST }:{ PORT },{ HOST }:{ PORT }

mdc.configmap.kafka.enabled

Активация движка

true/ false

mdc.configmap.kafka.stub.enabled

Активация движка

true/ false

mdc.configmap.kafka.events_topic

Топик событий

nsix.events.out

mdc.configmap.kafka.events_producer

Producer событий

producer.nsix.events.out

mdc.configmap.kafka.release_topic

Топик версий

nsix.release.out

mdc.configmap.kafka.release_producer

Producer событий

producer.nsix.release.out

mdc.configmap.kafka.jobs_topic

Топик job

nsix.release.out

mdc.configmap.kafka.jobs_producer

Producer job

producer.nsix.release.out

mdc.configmap.kafka.topic_summary_enabled

Активация топика

true/ false

mdc.configmap.kafka.jobs_enabled

Активация job

true/ false

Предупреждение

Важно!
Во время развертывания NSIX поддерживает выбор одной из двух стратегий реакции на ошибку с помощью указания соответствующего значения в конфигурационном параметре: mdc.configmap.reload_strategy_fail_fast:

  1. Стратегия fail safe. Во время выполнения NSIX использует старые secrets, если обновление secrets или объектов, которые зависят от secrets, завершилось с ошибкой.

  2. Стратегия fail fast. Во время выполнения NSIX завершает работу, если обновление secrets или объектов, которые зависят от secrets, завершилось с ошибкой. При этом NSIX предоставляет возможность завершиться запросам, использующим старые варианты secrets.

Параметры для файла mdc-ivs.conf приведены в таблице ниже:

Группа параметров

Параметр

Описание

Допустимые значения

Комментарий

Параметры репликации

mdc-ivs.deployment.spec.replicas

Количество pods модуля

1

Ресурсы, необходимые для работы модуля

mdc-ivs.deployment.spec.template.spec.containers.resources.requests.cpu

Количество CPU, необходимое для работы модуля

1

mdc-ivs.deployment.spec.template.spec.containers.resources.limits.cpu

Максимальный лимит CPU для работы модуля

1

mdc-ivs.deployment.spec.template.spec.containers.resources.requests.memory

Количество памяти, необходимое для работы модуля

2Gi

mdc-ivs.deployment.spec.template.spec.containers.resources.limits.memory

Максимальный лимит памяти для работы модуля

2Gi

mdc-ivs.deployment.spec.template.spec.containers.readinessProbe.initialDelaySeconds

Задержка перед первым вызовом проверки готовности pod выполнять запросы

60

Ресурсы, выделяемые для контейнера Istio

mdc-ivs.deployment.metadata.annotations.sidecar.istio.io.inject

Подключение модуля к Istio

true / false

mdc-ivs.deployment.metadata.annotations.sidecar.istio.io.proxyCPU

Количество CPU, необходимое для контейнера Istio

440m

mdc-ivs.deployment.metadata.annotations.sidecar.istio.io.proxyCPULimit

Максимальный лимит CPU для контейнера Istio

440m

mdc-ivs.deployment.metadata.annotations.sidecar.istio.io.proxyMemory

Количество памяти, необходимое для контейнера Istio

1400Mi

mdc-ivs.deployment.metadata.annotations.sidecar.istio.io.proxyMemoryLimit

Максимальный лимит памяти для контейнера Istio

1400Mi

Ресурсы, выделяемые для контейнера FluentBit-sidecar

mdc-ivs.deployment.spec.template.spec.containers.fluent-bit-forwarder-sidecar.resources.requests.cpu

Количество CPU, необходимое для контейнера FluentBit-sidecar

50m

mdc-ivs.deployment.spec.template.spec.containers.fluent-bit-forwarder-sidecar.resources.limits.cpu

Максимальный лимит CPU для контейнера FluentBit-sidecar

250m

mdc-ivs.deployment.spec.template.spec.containers.fluent-bit-forwarder-sidecar.resources.requests.memory

Количество памяти, необходимое для контейнера FluentBit-sidecar

32Mi

mdc-ivs.deployment.spec.template.spec.containers.fluent-bit-forwarder-sidecar.resources.limits.memory

Максимальный лимит памяти для контейнера FluentBit-sidecar

250Mi

Ресурсы, выделяемые для контейнера vault-agent

mdc-ivs.deployment.metadata.annotations.sidecar.secman.proxyCPU

Количество CPU, необходимое для контейнера vault

50m

mdc-ivs.deployment.metadata.annotations.sidecar.secman.proxyCPULimit

Максимальный лимит CPU для контейнера vault

100m

mdc-ivs.deployment.metadata.annotations.sidecar.secman.proxyMemory

Количество памяти, необходимое для контейнера vault

64Mi

mdc-ivs.deployment.metadata.annotations.sidecar.secman.proxyMemoryLimit

Максимальный лимит памяти CPU для контейнера vault

128Mi

Параметры Secret Management System

mdc-ivs.deployment.metadata.annotations.sidecar.secman.agent.inject

Добавление контейнера vault-agent

true / false

mdc-ivs.deployment.metadata.annotations.sidecar.secman.role

Имя роли

ole-ga-secman-nsix

mdc-ivs.deployment.metadata.annotations.sidecar.secman.tenant

Имя тенанта

DEV

mdc-ivs.deployment.metadata.annotations.sidecar.secman.path

Путь к KV-хранилищу secrets

/A/DEV/BD/NSIX/KV

Параметры database engine

mdc-ivs.deployment.metadata.annotations.sidecar.secman.db.main.enabled

Активация database-движка

true / false

true — если использовать DBEngine, false — если использовать secret из KV-хранилища

mdc-ivs.deployment.metadata.annotations.sidecar.secman.db.main.template.path

Путь к database-движку в SecMan

/database/pg/static-creds/role-srv-1.pf.dev.mycompany-mdmp-mdc_cloud_appl

Параметры HikariCP

mdc-ivs.configmap.db.validationTimeout

Тайм-аут валидации соединения

5000

mdc-ivs.configmap.db.idleTimeout

Тайм-аут работы в простаивающем режиме

600000

mdc-ivs.configmap.db.connectionTimeout

Тайм-аут соединения

600000

mdc-ivs.configmap.db.maxLifetime

Максимальное время существования соединения

1800000

mdc-ivs.configmap.db.maximumPoolSize

Максимальный размер пула соединений

80

mdc-ivs.configmap.db.minimumIdle

Минимальное количество простаивающих соединений

10

mdc-ivs.configmap.db.leakDetectionThreshold

Время, в течение которого соединение может находиться вне пула до обнаружения утечки

0

0 — если обнаружение отключено

Прочие параметры

mdc-ivs.java.opts

Параметры запуска приложения JAVA

-XX:MaxRAMPercentage=75.0

mdc-ivs.configmap.multipart_max_upload_size

Пороговое значение размера загружаемого в приложение файла в байтах при многопоточной загрузке

524288000

mdc-ivs.common.storage_folder

Путь к локальной папке в pod приложения для хранения экспортируемых и импортируемых файлов

/app/storage

mdc-ivs.configmap.external_local_folder_name

Путь к локальной папке в pod приложения для временного хранения файлов, полученных из S3

/tmp

Параметры для файла mdc-jobs.conf приведены в таблице ниже:

Группа параметров

Параметр

Описание

Допустимые значения

Комментарий

Параметры репликации

mdc-jobs.deployment.spec.replicas

Количество pods модуля

3

mdc-jobs.deployment.spec.max.replicas

Максимальное допустимое количество pods для модуля mdc-jobs

5

mdc-jobs.hpa.spec.targetCPUUtilizationPercentage

Значение утилизации CPU pod, выше которого необходимо инициировать поднятие нового pod

30

Максимальное количество pods ограничено

Ресурсы, необходимые для работы модуля

mdc-jobs.deployment.spec.template.spec.containers.resources.requests.cpu

Количество CPU, необходимое для работы модуля

2

mdc-jobs.deployment.spec.template.spec.containers.resources.limits.cpu

Максимальный лимит CPU для работы модуля

2

mdc-jobs.deployment.spec.template.spec.containers.resources.requests.memory

Количество памяти, необходимое для работы модуля

4Gi

mdc-jobs.deployment.spec.template.spec.containers.resources.limits.memory

Максимальный лимит памяти для работы модуля

4Gi

mdc-jobs.deployment.spec.template.spec.containers.readinessProbe.initialDelaySeconds

Задержка перед первым вызовом проверки готовности pod выполнять запросы

60

Ресурсы, выделяемые для контейнера Istio

mdc-jobs.deployment.metadata.annotations.sidecar.istio.io.inject

Подключение модуля к Istio

true / false

mdc-jobs.deployment.metadata.annotations.sidecar.istio.io.proxyCPU

Ресурсы, выделяемые для контейнера Istio

440m

mdc-jobs.deployment.metadata.annotations.sidecar.istio.io.proxyCPULimit

Максимальный лимит CPU для контейнера Istio

440m

mdc-jobs.deployment.metadata.annotations.sidecar.istio.io.proxyMemory

Количество памяти, необходимое для контейнера Istio

1400Mi

mdc-jobs.deployment.metadata.annotations.sidecar.istio.io.proxyMemoryLimit

Максимальный лимит памяти для контейнера Istio

1400Mi

Ресурсы, выделяемые для контейнера FluentBit-sidecar

mdc-jobs.deployment.spec.template.spec.containers.fluent-bit-forwarder-sidecar.resources.requests.cpu

Количество CPU, необходимое для контейнера FluentBit-sidecar

50m

mdc-jobs.deployment.spec.template.spec.containers.fluent-bit-forwarder-sidecar.resources.limits.cpu

Максимальный лимит CPU для контейнера FluentBit-sidecar

250m

mdc-jobs.deployment.spec.template.spec.containers.fluent-bit-forwarder-sidecar.resources.requests.memory

Количество памяти, необходимое для контейнера FluentBit-sidecar

32Mi

mdc-jobs.deployment.spec.template.spec.containers.fluent-bit-forwarder-sidecar.resources.limits.memory

Максимальный лимит памяти для контейнера FluentBit-sidecar

250Mi

Ресурсы, выделяемые для контейнера vault-agent

mdc-jobs.deployment.metadata.annotations.sidecar.secman.proxyCPU

Количество CPU, необходимое для контейнера vault

50m

mdc-jobs.deployment.metadata.annotations.sidecar.secman.proxyCPULimit

Максимальный лимит CPU для контейнера vault

100m

mdc-jobs.deployment.metadata.annotations.sidecar.secman.proxyMemory

Количество памяти, необходимое для контейнера vault

64Mi

mdc-jobs.deployment.metadata.annotations.sidecar.secman.proxyMemoryLimit

Максимальный лимит памяти CPU для контейнера vault

128Mi

Параметры Secret Management System

mdc-jobs.deployment.metadata.annotations.sidecar.secman.agent.inject

Добавление контейнера vault-agent

true / false

mdc-jobs.deployment.metadata.annotations.sidecar.secman.role

Имя роли

role-ga-secman-nsix

mdc-jobs.deployment.metadata.annotations.sidecar.secman.tenant

Имя тенанта

DEV

mdc-jobs.deployment.metadata.annotations.sidecar.secman.path

Путь к KV-хранилищу secrets

/A/DEV/BD/NSIX/KV

Параметры DBEngine secrets SecMan

mdc-jobs.deployment.metadata.annotations.sidecar.secman.db.main.enabled

Активация database-движка

true / false

true — если использовать DBEngine, false — если использовать secret из KV-хранилища

mdc-jobs.deployment.metadata.annotations.sidecar.secman.db.main.template.path

Путь к database-движку в SecMan

/database/pg/static-creds/role-srv-1.pf.dev.mycompany-mdmp-mdc_cloud_appl

Параметры модуля jobs

mdc-jobs.configmap.cron.export_rspit_all

Cron-выражение для установки расписания запуска РЗ отправки данных по всем справочникам в Витрину данных

0 0 1 * * *

mdc-jobs.configmap.cron.clear_rspit

Cron-выражение для установки расписания запуска РЗ очистки временных файлов

0 0 4 * * *

mdc-jobs.configmap.excluded_dictionaries

Список справочников, которые будут исключены из общего перечня «Справочники», используемых в РЗ

...

mdc-jobs.configmap.common_import_max_pool_size

Максимальное количество потоков

16

mdc-jobs.configmap.common_import_keep_alive_sec

Время простоя потока, после которого поток будет удален

60

mdc-jobs.configmap.common_import_core_poll_size

Размер основного пула

3

mdc-jobs.configmap.common_import_queue_capacity

Уровень очереди

10

mdc-jobs.configmap.monitoring_metric_cron

Cron-выражение для запуска логики подсчета

0 0 6 * * *

mdc-jobs.java.opts

Параметры запуска приложения JAVA

-XX:MaxRAMPercentage=75.0

mdc-jobs.configmap.multipart_max_upload_size

Пороговое значение размера загружаемого в приложение файла в байтах при многопоточной загрузке

524288000

Параметры Quartz

mdc-jobs.configmap.quartz_threadpool_threadcount

Количество потоков Quartz

1

mdc-jobs.configmap.quartz_instance_name

Название инстанса Quartz

QuartzScheduler

mdc-jobs.configmap.quartz_wait_for_jobs_to_completeon_shutdown

Ожидание завершения jobs Quartz

true / false

mdc-jobs.configmap.quartz_max_retries_when_job_failed

Количество повторов job Quartz в случае неуспешного выполнения

0

mdc-jobs.common.storage_folder

Путь к папке для временного хранения файлов

/app/storage

mdc-jobs.configmap.jobs_general_server_directory

Директория в pod, используемая для импорта и экспорта файлов в jobs

/app/storage/upload/integration/

mdc-jobs.configmap.jobs_general_max_files_count

Максимальное количество файлов

1000

mdc-jobs.configmap.jobs_general_archive_days

Количество дней архивации

30

mdc-jobs.configmap.jobs_general_archive_store_days

Количество дней хранения в архиве

180

mdc-jobs.configmap.jobs_general_store_days

Количество дней хранения

7

mdc-jobs.configmap.common_import_stage_records

Количество импортируемых записей за стадию job

50

mdc-jobs.configmap.common_import_stage_records_limit

Предельное количество импортируемых записей за стадию job

50

mdc-jobs.configmap.universal_export_rspit_chunk

mdc-jobs.configmap.universal_export_rspit_chunk

500

mdc-jobs.configmap.universal_export_rspit_reader_beans

mdc-jobs.configmap.universal_export_rspit_reader_beans

500

mdc-jobs.configmap.receiver_system

Наименование системы, в которую происходит экспорт

DATA_MART

На данный момент доступно только значение DATA_MART

mdc-jobs.configmap.external_local_folder_name

Путь к локальной папке в pod приложения для временного хранения файлов, полученных из S3

/tmp

mdc-jobs.configmap.common_import_delete_legacy_records

Количество удаляемых устаревших записей при импорте справочников в mdc-jobs

6000

mdc-jobs.configmap.processing_distribution_cron

mdc-jobs.configmap.processing_distribution_cron

0 * * ? * *

mdc-jobs.configmap.refresh_distribution_cron

mdc-jobs.configmap.refresh_distribution_cron

0 * * ? * *

mdc-jobs.configmap.universal_export_force_enabled

mdc-jobs.configmap.universal_export_force_enabled

true / false

mdc-jobs.configmap.universal_import_force_enabled

mdc-jobs.configmap.universal_import_force_enabled

true / false

mdc-jobs.configmap.rebuild_hash_code_records_page_size

mdc-jobs.configmap.rebuild_hash_code_records_page_size

„1000“

mdc-jobs.configmap.find_record_by_business_key

mdc-jobs.configmap.find_record_by_business_key

true / false

mdc-jobs.configmap.common_import_default_is_strict

mdc-jobs.configmap.common_import_default_is_strict

true / false

Параметры для гарантированного удаления справочников (DDIS)

mdc-jobs.configmap.ddis_max_try_count

Количество повторных попыток для выполнения запроса в DDIS в случае неуспешного ответа

DDIS_MAX_TRY_COUNT

mdc-jobs.configmap.ddis_interrupt_interval

Временной интервал между проверками записей на отложенное удаление справочников в DDIS

DDIS_INTERRUPT_INTERVAL

mdc-jobs.configmap.ddis_sheduled_init_delay

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

DDIS_SHEDULED_INIT_DELAY

Параметры HikariCP

mdc-jobs.configmap.db.validationTimeout

Тайм-аут валидации соединения

5000

mdc-jobs.configmap.db.idleTimeout

Тайм-аут работы в простаивающем режиме

600000

mdc-jobs.configmap.db.connectionTimeout

Тайм-аут соединения

60000

mdc-jobs.configmap.db.maxLifetime

Максимальное время существования соединения

1800000

mdc-jobs.configmap.db.maximumPoolSize

Максимальный размер пула соединений

80

mdc-jobs.configmap.db.minimumIdle

Минимальное количество простаивающих соединений

10

mdc-jobs.configmap.db.leakDetectionThreshold

Время, в течение которого соединение может находиться вне пула до обнаружения утечки

0

0 — если обнаружение отключено

Параметры для файла mdc-kmd.conf приведены в таблице ниже:

Группа параметров

Параметр

Описание

Допустимые значения

Комментарий

Параметры репликации

mdc-kmd.deployment.spec.replicas

Количество pods модуля

1

Ресурсы, необходимые для работы модуля

mdc-kmd.deployment.spec.template.spec.containers.resources.requests.cpu

Количество CPU, необходимое для работы модуля

1

mdc-kmd.deployment.spec.template.spec.containers.resources.limits.cpu

Максимальный лимит CPU для работы модуля

1

mdc-kmd.deployment.spec.template.spec.containers.resources.requests.memory

Количество памяти, необходимое для работы модуля

2Gi

mdc-kmd.deployment.spec.template.spec.containers.resources.limits.memory

Максимальный лимит памяти для работы модуля

2Gi

mdc-kmd.deployment.spec.template.spec.containers.readinessProbe.initialDelaySeconds

Задержка перед первым вызовом проверки готовности pod выполнять запросы

60

Ресурсы, выделяемые для контейнера Istio

mdc-kmd.deployment.metadata.annotations.sidecar.istio.io.inject

Подключить модуль к Istio

true / false

mdc-kmd.deployment.metadata.annotations.sidecar.istio.io.proxyCPU

Количество CPU, необходимое для контейнера Istio

440m

mdc-kmd.deployment.metadata.annotations.sidecar.istio.io.proxyCPULimit

Максимальный лимит CPU для контейнера Istio

440m

mdc-kmd.deployment.metadata.annotations.sidecar.istio.io.proxyMemory

Количество памяти, необходимое для контейнера Istio

1400Mi

mdc-kmd.deployment.metadata.annotations.sidecar.istio.io.proxyMemoryLimit

Максимальный лимит памяти для контейнера Istio

1400Mi

Ресурсы, выделяемые для контейнера FluentBit-sidecar

mdc-kmd.deployment.spec.template.spec.containers.fluent-bit-forwarder-sidecar.resources.requests.cpu

Количество CPU, необходимое для контейнера FluentBit-sidecar

50m

mdc-kmd.deployment.spec.template.spec.containers.fluent-bit-forwarder-sidecar.resources.limits.cpu

Максимальный лимит CPU для контейнера FluentBit-sidecar

250m

mdc-kmd.deployment.spec.template.spec.containers.fluent-bit-forwarder-sidecar.resources.requests.memory

Количество памяти, необходимое для контейнера FluentBit-sidecar

32Mi

mdc-kmd.deployment.spec.template.spec.containers.fluent-bit-forwarder-sidecar.resources.limits.memory

Максимальный лимит памяти для контейнера FluentBit-sidecar

250Mi

Ресурсы, выделяемые для контейнера vault-agent

mdc-kmd.deployment.metadata.annotations.sidecar.secman.proxyCPU

Количество CPU, необходимое для контейнера vault

50m

mdc-kmd.deployment.metadata.annotations.sidecar.secman.proxyCPULimit

Максимальный лимит CPU для контейнера vault

100m

mdc-kmd.deployment.metadata.annotations.sidecar.secman.proxyMemory

Количество памяти, необходимое для контейнера vault

64Mi

mdc-kmd.deployment.metadata.annotations.sidecar.secman.proxyMemoryLimit

Максимальный лимит памяти CPU для контейнера vault

128Mi

Параметры Secret Management System

mdc-kmd.deployment.metadata.annotations.sidecar.secman.agent.inject

Добавление контейнера vault-agent

true / false

mdc-kmd.deployment.metadata.annotations.sidecar.secman.role

Имя роли

role-ga-secman-nsix

mdc-kmd.deployment.metadata.annotations.sidecar.secman.tenant

Имя тенанта

DEV

mdc-kmd.deployment.metadata.annotations.sidecar.secman.path

Путь к KV-хранилищу secrets

/A/DEV/BD/NSIX/KV

Параметры DBEngine для Secret Management System

mdc-kmd.deployment.metadata.annotations.sidecar.secman.db.main.enabled

Активация DBEngine

true / false

mdc-kmd.deployment.metadata.annotations.sidecar.secman.db.main.template.path

Путь к database-движку в SecMan

/database/pg/static-creds/role-srv-1.pf.dev.mycompany-mdmp-mdc_cloud_appl

Параметры HikariCP

mdc-kmd.configmap.db.validationTimeout

Тайм-аут валидации соединения

5000

mdc-kmd.configmap.db.idleTimeout

Тайм-аут работы в простаивающем режиме

600000

mdc-kmd.configmap.db.connectionTimeout

Тайм-аут соединения

600000

mdc-kmd.configmap.db.maxLifetime

Максимальное время существования соединения

1800000

mdc-kmd.configmap.db.maximumPoolSize

Максимальный размер пула соединений

80

mdc-kmd.configmap.db.minimumIdle

Минимальное количество простаивающих соединений

10

mdc-kmd.configmap.db.leakDetectionThreshold

Время, в течение которого соединение может находиться вне пула до обнаружения утечки

0

0 — если обнаружение отключено

Прочие параметры

mdc-kmd.java.opts

Параметры запуска приложения JAVA

0

mdc-jobs.configmap.db.leakDetectionThreshold

Время, в течение которого соединение может находиться вне пула до обнаружения утечки

-XX:MaxRAMPercentage=75.0

0 — если обнаружение отключено

mdc-kmd.multipart_max_upload_size

Пороговое значение размера загружаемого в приложение файла в байтах при многопоточной загрузке

524288000

mdc-kmd.common.storage_folder

Путь к папке для временного хранения файлов

/app/storage

mdc-kmd.configmap.external_local_folder_name

Путь к локальной папке в pod приложения для временно хранения файлов, полученных из S3

/tmp

mdc-jobs.configmap.storage_folder

Папка для хранения файлов обмена данными в pod mdc-jobs

/app/storage (в ранних версиях 8.x /usr/app/storage)

Параметры для файла mdc-ui.conf приведены в таблице ниже:

Группа параметров

Параметр

Описание

Допустимые значения

Параметры модуля UI

mdc-ui.deployment.spec.replicas

Параметры репликации

1

Ресурсы, необходимые для работы модуля

mdc-ui.deployment.spec.template.spec.containers.resources.requests.cpu

Количество CPU, необходимое для работы модуля

200m

mdc-ui.deployment.spec.template.spec.containers.resources.limits.cpu

Максимальный лимит CPU для работы модуля

200m

mdc-ui.deployment.spec.template.spec.containers.resources.requests.memory

Количество памяти, необходимое для работы модуля

200Mi

mdc-ui.deployment.spec.template.spec.containers.resources.limits.memory

Максимальный лимит памяти для работы модуля

200Mi

Ресурсы, выделяемые для контейнера Istio

mdc-ui.deployment.metadata.annotations.sidecar.istio.io.inject

Подключения модуля к Istio

true / false

mdc-ui.deployment.metadata.annotations.sidecar.istio.io.proxyCPU

Количество CPU, необходимое для контейнера Istio

440m

mdc-ui.deployment.metadata.annotations.sidecar.istio.io.proxyCPULimit

Максимальный лимит CPU для контейнера Istio

440m

mdc-ui.deployment.metadata.annotations.sidecar.istio.io.proxyMemory

Количество памяти, необходимое для контейнера Istio

400Mi

mdc-ui.deployment.metadata.annotations.sidecar.istio.io.proxyMemoryLimit

Максимальный лимит памяти для контейнера Istio

400Mi

mdc-ui.configmap.client_max_body_size

Максимальный размер тела входящих HTTP-запросов

100m

Параметры для файла mdc-api.conf приведены в таблице ниже:

Группа параметров

Параметр

Описание

Допустимые значения

Комментарий

Параметры репликации

mdc-api.deployment.spec.replicas

Количество pods модуля

1

Ресурсы, необходимые для работы модуля

mdc-api.deployment.spec.template.spec.containers.resources.requests.cpu

Количество CPU, необходимое для работы модуля

1

mdc-api.deployment.spec.template.spec.containers.resources.limits.cpu

Максимальный лимит CPU для работы модуля

1

mdc-api.deployment.spec.template.spec.containers.resources.requests.memory

Количество памяти, необходимое для работы модуля

2Gi

mdc-api.deployment.spec.template.spec.containers.resources.limits.memory

Максимальный лимит памяти для работы модуля

2Gi

mdc-api.deployment.spec.template.spec.containers.readinessProbe.initialDelaySeconds

Задержка перед первым вызовом проверки готовности pod выполнять запросы

60

Ресурсы, выделяемые для контейнера Istio

mdc-api.deployment.metadata.annotations.sidecar.istio.io.inject

Подключение модуля к Istio

true / false

mdc-api.deployment.metadata.annotations.sidecar.istio.io.proxyCPU

Количество CPU, необходимое для контейнера Istio

440m

mdc-api.deployment.metadata.annotations.sidecar.istio.io.proxyCPULimit

Максимальный лимит CPU для контейнера Istio

440m

mdc-api.deployment.metadata.annotations.sidecar.istio.io.proxyMemory

Количество памяти, необходимое для контейнера Istio

1400Mi

mdc-api.deployment.metadata.annotations.sidecar.istio.io.proxyMemoryLimit

Максимальный лимит памяти для контейнера Istio

1400Mi

Ресурсы, выделяемые для контейнера FluentBit-sidecar

mdc-api.deployment.spec.template.spec.containers.fluent-bit-forwarder-sidecar.resources.requests.cpu

Количество CPU, необходимое для контейнера FluentBit-sidecar

50m

mdc-api.deployment.spec.template.spec.containers.fluent-bit-forwarder-sidecar.resources.limits.cpu

Максимальный лимит CPU для контейнера FluentBit-sidecar

250m

mdc-api.deployment.spec.template.spec.containers.fluent-bit-forwarder-sidecar.resources.requests.memory

Количество памяти, необходимое для контейнера FluentBit-sidecar

32Mi

mdc-api.deployment.spec.template.spec.containers.fluent-bit-forwarder-sidecar.resources.limits.memory

Максимальный лимит памяти для контейнера FluentBit-sidecar

250Mi

Ресурсы, выделяемые для контейнера vault-agent

mdc-api.deployment.metadata.annotations.sidecar.secman.proxyCPU

Количество CPU, необходимое для контейнера vault

50m

mdc-api.deployment.metadata.annotations.sidecar.secman.proxyCPULimit

Максимальный лимит CPU для контейнера vault

100m

mdc-api.deployment.metadata.annotations.sidecar.secman.proxyMemory

Количество памяти, необходимое для контейнера vault

64Mi

mdc-api.deployment.metadata.annotations.sidecar.secman.proxyMemoryLimit

Максимальный лимит памяти CPU для контейнера vault

128Mi

Параметры Secret Management System

mdc-api.deployment.metadata.annotations.sidecar.secman.agent.inject

Добавление контейнера vault-agent

true / false

mdc-api.deployment.metadata.annotations.sidecar.secman.role

Имя роли

role-ga-secman-nsix

mdc-api.deployment.metadata.annotations.sidecar.secman.tenant

Имя тенанта

DEV

mdc-api.deployment.metadata.annotations.sidecar.secman.path

Путь к KV-хранилищу secrets

/A/DEV/BD/NSIX/KV

Параметры DBEngine для Secret Management System

mdc-api.deployment.metadata.annotations.sidecar.secman.db.main.enabled

Активация Database Engine

true / false

mdc-api.deployment.metadata.annotations.sidecar.secman.db.main.template.path

Путь к DBEngine

/database/pg/static-creds/role-srv-1.pf.dev.mycompany-mdmp-mdc_cloud_appl

Параметры сервиса аутентификации mdc-api

mdc-api.configmap.spas.authentication

Система аутентификации для mdc-api

none / external / sudir / iam

none — если не используется аутентификация, sudir, external или iam — если используется указанная система

mdc-api.configmap.spas.url

URL системы аутентификации для mdc-api

https://{ IP_ADDRESS }:{ PORT_NUMBER }/spas/rest

Параметры аудита

mdc-api.configmap.audit.host

Хост аудита

<хост>

mdc-api.configmap.audit.enabled

Включение аудита

true / false

mdc-api.configmap.audit.security_change_audit_enabled

Включение аудита изменения записей

true / false

Параметры HikariCP

mdc-api.configmap.db.validationTimeout

Тайм-аут валидации соединения

5000

mdc-api.configmap.db.idleTimeout

Тайм-аут работы в простаивающем режиме

600000

mdc-api.configmap.db.connectionTimeout

Тайм-аут соединения

60000

mdc-api.configmap.db.maxLifetime

Максимальное время существования соединения

1800000

mdc-api.configmap.db.maximumPoolSize

Максимальный размер пула соединений

80

mdc-api.configmap.db.minimumIdle

Минимальное количество простаивающих соединений

10

mdc-api.configmap.db.leakDetectionThreshold

Время, в течение которого соединение может находиться вне pool до обнаружения утечки

0

0 — если обнаружение отключено

Прочие параметры модуля mdc-api

mdc-api.configmap.other.server_type

Отображаемое имя сервера/стенда

SERVER_NAME

mdc-api.configmap.dictionary_delete_enabled

Включить/выключить endpoint удаления справочников

true / false

mdc-api.configmap.common_import_max_pool_size

Максимальное количество потоков

16

mdc-api.configmap.common_import_keep_alive_sec

Время простоя потока, после которого поток будет удален

60

mdc-api.configmap.common_import_core_poll_size

Размер основного пула

3

mdc-api.configmap.common_import_queue_capacity

Уровень очереди

1

mdc-api.configmap.ddis_disable_send_files

Отключить отправку файлов в DDIS

true / false

mdc-api.java.opts

Параметры запуска JAVA-приложения

-XX:MaxRAMPercentage=75.0

mdc-api.configmap.multipart_max_upload_size

Пороговое значение размера загружаемого в приложение файла в байтах при многопоточной загрузке

524288000

mdc-api.configmap.quartz_threadpool_threadcount

Количество потоков Quartz

1

mdc-api.configmap.nsix_stage_service_name

Название сервисной стадии NSIX

publish-nsix

mdc-api.configmap.quartz_instance_name

Название инстанса Quartz

QuartzScheduler

mdc-api.configmap.quartz_wait_for_jobs_to_completeon_shutdown

Ожидание завершения jobs Quartz

true / false

mdc-api.common.storage_folder

Путь к папке для временного хранения файлов

/app/storage

mdc-api.configmap.external_local_folder_name

Путь к локальной папке в pod приложения для временного хранения файлов, полученных из S3

/tmp

mdc-api.configmap.jobs_general_max_files_count

Максимально допустимое число файлов, находящихся в папке файлового сервиса, которые будут отображены в списке параметра загрузки файлов при запуске РЗ импорта справочников

1000

mdc-api.configmap.jobs_general_server_directory

Путь к папке в файловом хранилище, файлы которого отобразить в списке парамера загрузки файлов при запуске РЗ импорта справочников

/app/storage/upload/integration/

mdc-api.configmap.tenant.api.delete.enable

mdc-api.configmap.tenant.api.delete.enable

true / false

mdc-api.configmap.distribution.exclude_supressed_errors_enabled

mdc-api.configmap.distribution.exclude_supressed_errors_enabled

true / false

mdc-api.configmap.distribution.exclude_supressed_errors_names

mdc-api.configmap.distribution.exclude_supressed_errors_names

UNKNOWN_ATTRIBUTE

mdc-api.configmap.distribution.exclude_supressed_errors_dictionarynames

mdc-api.configmap.distribution.exclude_supressed_errors_dictionarynames

Countries

Параметры для файла mdc.istio.all.conf приведены в таблицах ниже:

Параметры Istio Docker и DropApp/K8s/Openshift

Параметр

Описание

Допустимые значения

mdc.istio.proxy_image

Ссылка на образ Istio в Docker registry

<URL>

mdc.istio.control_panel

Название контрольной панели

syn-cp

mdc.istio.istiod_host

Название сервера на контрольной панели

istiod-syn-cp

Параметры Istio FQDN

Параметр

Описание

Допустимые значения

Комментарий

mdc.openshift.appFQDN

FQDN имя хоста для HTTPS (mTLS), содержащееся в route

${global.platform.ingress.route.https,mdc.${projectName}.${appsDomain}}

Например, mdc-01.mdc-dev.apps.mycompanydomain

mdc-http.openshift.appFQDN

FQDN имя хоста для HTTP

${global.platform.ingress.route.http,mdc-http.${projectName}.${appsDomain}}

Например mdc-01.apps.mycompanydomain

Параметры Istio FluentBit

Параметр

Описание

Допустимые значения

mdc.fluent-bit-forwarder-sidecar.istio.egress.common.host

Хост Fluent Bit

logger-endpoint-http-ci00641491-idevgen-yamaha-logger-st.apps.mycompanydomain

Параметры ресурсов Istio Egress

Параметр

Описание

Допустимые значения

mdc.istio.egress.deployment.spec.replicas

Параметры ресурсов Istio Egress

1

mdc.istio.egress.deployment.spec.template.spec.containers.resources.requests.cpu

Количество CPU, необходимое для работы модуля

300m

mdc.istio.egress.deployment.spec.template.spec.containers.resources.limits.cpu

Максимальный лимит CPU для работы модуля

300m

mdc.istio.egress.deployment.spec.template.spec.containers.resources.requests.memory

Количество памяти, необходимое для работы модуля

500Mi

mdc.istio.egress.deployment.spec.template.spec.containers.resources.limits.memory

Максимальный лимит памяти для работы модуля

500Mi

mdc.istio.egress.deployment.spec.template.spec.containers.resources.limits.ephemeral-storage

Максимальный размер эфемерного хранилища egress

...

mdc.istio.egress.deployment.spec.template.spec.containers.resources.requests.ephemeral-storage

Задаваемый по умолчанию размер эфемерного хранилища egress

...

mdc.istio.egress.deployment.metadata.sidecar.secman.rootCertsPath

Ссылка на корневой сертификат egress SecMan

{{ lookup('vars', 'global.platform.annotations.hashicorp.rootCertsPath') }}

Параметры ресурсов Istio Ingress

Параметр

Описание

Допустимые значения

mdc.istio.ingress.deployment.spec.replicas

Параметры ресурсов Istio Ingress

1

mdc.istio.ingress.deployment.spec.template.spec.containers.resources.requests.cpu

Количество CPU, необходимое для работы модуля

300m

mdc.istio.ingress.deployment.spec.template.spec.containers.resources.limits.cpu

Максимальный лимит CPU для работы модуля

300m

mdc.istio.ingress.deployment.spec.template.spec.containers.resources.requests.memory

Количество памяти, необходимое для работы модуля

500Mi

mdc.istio.ingress.deployment.spec.template.spec.containers.resources.limits.memory

Максимальный лимит памяти для работы модуля

500Mi

mdc.istio.ingress.deployment.spec.template.spec.containers.resources.limits.ephemeral-storage

Максимальный размер эфемерного хранилища ingress

...

mdc.istio.ingress.deployment.spec.template.spec.containers.resources.requests.ephemeral-storage

Задаваемый по умолчанию размер эфемерного хранилища ingress

...

mdc.istio.ingress.deployment.metadata.sidecar.secman.rootCertsPath

Ссылка на корневой сертификат ingress SecMan

`

mdc.deployment.spec.template.spec.containers.ingress.istio.readinessProbe.failureThreshold

Параметр Istio Ingress

30

mdc.deployment.spec.template.spec.containers.ingress.istio.livenessProbe.failureThreshold

Параметр Istio Ingress

30

mdc.deployment.spec.template.spec.containers.ingress.ott.readinessProbe.failureThreshold

Параметр Istio Ingress

30

mdc.deployment.spec.template.spec.containers.egress.istio.readinessProbe.failureThreshold

Параметр Istio Egress

30

mdc.deployment.spec.template.spec.containers.egress.istio.livenessProbe.failureThreshold

Параметр Istio Egress

30

mdc.deployment.spec.template.spec.containers.egress.ott.readinessProbe.failureThreshold

Параметр OTTS Egress

30

Параметры хостов приложений MDC в Istio

Параметр

Описание

Допустимые значения

mdc.istio.egress.common.host.rspit_host

Хост приложения RSPIT (витрина данных)

mdc-rspit.apps.mycompanydomain

mdc.istio.egress.common.host.ivs_host

Хост приложения MDC-IVS

mdc-http.mdc-dev.apps.mycompanydomain

mdc.istio.egress.common.host.api_host

Хост приложения MDC-API

mdc-http.mdc-dev.apps.mycompanydomain

mdc.istio.ingress.common.host.mdc_ui_host

Хост приложения MDC-IVS для протокола HTTP

${global.platform.ingress.route.http,mdc-http.${projectName}.${appsDomain}}

mdc.istio.ingress.common.host.mdc_ui_host_mtls

Хост приложения MDC-IVS для протокола HTTPS (mTLS)

${global.platform.ingress.route.https,mdc-https.${projectName}.${appsDomain}}

mdc.istio.ingress.common.host.mdc_geo_hosts

Список хостов georouts, перечисляемых через «;»

nsi-dev-geo01.dev-apps.ocp-geo.mycompanydomain;nsi-dev-geo02.dev-apps.ocp-geo.mycompanydomain

Параметры timeouts Istio

Параметр

Описание

Допустимые значения

mdc.istio.egress.common.http.retries.attempts

Количество повторных попыток подключения

2

mdc.istio.egress.common.http.retries.timeout

Тайм-аут повторной попытки подключения

2s

mdc.istio.egress.common.http.request.timeout

Тайм-аут установления соединения

5s

Параметры routs Istio

Параметр

Описание

Допустимые значения

Комментарий

mdc.istio.ingress.route.metadata.annotations.ingress.class

Имя класса входящих запросов используемых в кластере, допустимые значения nginx и haproxy

nginx

Значение устанавливается в аннотацию kubernetes.io/ingress.class сущности Ingress

mdc.istio.ingress.route.haproxy.router.openshift.io.timeout

Тайм-аут подключения для маршрута класса haproxy

120s

Параметры для logger Kafka LOGA (FluentBit)

Параметр

Описание

Допустимые значения

Комментарий

mdc.fluent-bit-forwarder-sidecar.ose.istio.egress.kafka.bootservers

Список серверов LOGA для отправки данных logger в Kafka

kafka-server-01.mydomain:<ip-адрес-01>:ХХХ:TCP:ХХХ:TCP;kafka-server-02.mydomain:<ip-адрес-02>:TCP:ХХХ:TCP

Формат: <доменное_имя:ip_адрес:порт_сервера_порт_egress:протокол_соединения>

Параметры аудита Istio

Параметр

Описание

Допустимые значения

mdc.istio.egress.common.audit.host

Хост аудита

demo.audit2-client-proxy.apps.mycompanydomain

Параметры БД Istio

Параметр

Описание

Допустимые значения

Комментарий

mdc.istio.egress.common.db1.host

Доменное имя хоста БД

доменное_имя_хоста_1

mdc.istio.egress.common.db1.ip

IP хоста БД

ip.адрес.хоста.1

mdc.istio.egress.common.db1.port

Порт БД

6544

Обычно 5432 при прямом подключении или 6544 при использовании pgbouncer

mdc.istio.egress.common.db2.host

Доменное имя хоста резервной БД

доменное_имя_хоста_2

Если таковой нет, указать localhost

mdc.istio.egress.common.db2.ip

IP-адрес резервной БД

ip.адрес.хоста.2

mdc.istio.egress.common.db2.port

Порт резервной БД

6544

Обычно 5432 при прямом подключении или 6544 при использовании pgbouncer

Параметры внешнего валидатора Istio

Параметр

Описание

Допустимые значения

mdc.istio.egress.common.validation.external.host

Хост внешнего валидатора Istio

lookup('custom_vars', 'mdc.istio.ingress.common.host.mdc_ui_host')

mdc.istio.egress.common.validation.external.port

Порт внешнего валидатора Istio

443

mdc.istio.egress.common.validation.external.port.http

Порт внешнего валидатора для HTTP

80

mdc.istio.egress.common.validation.external.port.https

Порт внешнего валидатора для HTTPS

443

Параметры S3 Istio

Параметр

Описание

Допустимые значения

Комментарий

mdc.istio.egress.common.s3.end_point

Адрес сервиса s3

https://s3-bh-barrier.mycompany

Значение должно задаваться такое же, как в mdc.configmap.s3.end_point из mdc.all.conf

mdc.istio.egress.common.s3.host

Хост сервиса S3

s3-bh-barrier.mycompany

Значение является частью mdc.istio.egress.common.s3.end_point

mdc.istio.egress.common.s3.port

Порт сервиса S3

443

mdc.istio.egress.common.s3.external.end_point

Адрес внешнего сервиса S3 для потребителей, который используется в DDIS

https://vm-spo-..-minio-192.vdc22.../

Значение должно задаваться такое же как в mdc.configmap.s3.external.end_point из mdc.all.conf.
Если значение параметра совпадает с mdc.istio.egress.common.s3.end_point, необходимо указать несуществующий хост

mdc.istio.egress.common.s3.external.host

Хост сервиса S3, который используется в DDIS, mdc.istio.egress.common.s3.external.end_point

vm-spo-..-minio-192.vdc22...

Если значение параметра совпадает с mdc.istio.egress.common.s3.host, то необходимо указать несуществующий хост

mdc.istio.egress.common.s3.external.port

Порт внешнего сервиса S3 для потребителей, который используется в DDIS

9000

Параметры SPAS Istio

Параметр

Описание

Допустимые значения

mdc.istio.egress.common.spas.ip

IP-адрес SPAS

<ip-адрес spas>

mdc.istio.egress.common.spas.host

Доменное мя хоста SPAS

<имя хоста spas>

mdc.istio.egress.common.spas.port

Порт SPAS по умолчанию

8080

mdc.istio.egress.common.spas.port.http

Порт SPAS для HTTP

8080

mdc.istio.egress.common.spas.port.https

Порт spas для HTTPS

8443

mdc.istio.ingress.common.sudir.cn

Common-name для СУДИР

*.apps.mycompanydomain

mdc.istio.ingress.common.ddis.cn

Common-name для DDIS (RSPIT)

client-efsstdwasift.mycompanydomain

mdc.istio.ingress.autotest

Доменное имя NSIX для автоматической проверки

nsix.apps.mycompanydomain

Параметры IAM Istio

Параметр

Описание

Допустимые значения

mdc.istio.egress.common.iam.host

Хост IAM

vm-ift3-bd-wf-4999.stands-vdc09.solution.sbt

mdc.istio.egress.common.iam.port

Порт IAM по умолчанию

8443

mdc.istio.egress.common.iam.port.http

Порт IAM для HTTP-соединения

8080

mdc.istio.egress.common.iam.port.https

Порт IAM для HTTPS-соединения

8443

mdc.istio.egress.common.iam.host.common_tls_context

Алгоритм шифрования, который используется в EF при подключении к сервису IAM

ECDHE-RSA-AES256-SHA

Параметры Traffic policy outlierDetection для Ingress (механизм circuitBreaker)

Параметр

Описание

Допустимые значения

mdc.istio.ingress.dsr.spec.trafficPolicy.outlierDetection.baseEjectionTime

Временной интервал

30s

mdc.istio.ingress.dsr.spec.trafficPolicy.outlierDetection.consecutive5xxErrors

Количество последовательных ошибок

5

mdc.istio.ingress.dsr.spec.trafficPolicy.outlierDetection.interval

Временной интервал

10s

mdc.istio.ingress.dsr.spec.trafficPolicy.outlierDetection.maxEjectionPercent

Максимальный процент TLS

10

Параметры OTTS Istio

Параметр

Описание

Допустимые значения

Комментарий

mdc.ott.sidecar.deployment.image

Путь к образу ОТТ-sidecar в системе хранения образов

{путь до образа}/ott-client-api@sha256:67406dc889169a9dd787c1c7f370d7f9dff426217ce65181ea35339e01bfd2c5

mdc.istio.ott.egress.common.ott_service_hosts_ports

Список хостов, портов и внутренних портов сервиса OTTS для балансировки нагрузки

ott-host-01.mycompanydomain:8080:8098,ott-host-02.mycompanydomain:8080:8099

Формат: <хост1:внешний_порт1:внутренний_порт1,…,хостN:внешний_портN:внутренний_портN>

mdc.istio.ott.configmap.ott_service_hosts

Список серверов:портов сервиса OTTS для балансировки нагрузки, или аналогичный список NGINX OTTS

["ott-host-01.mycompanydomain","ott-host-02.mycompanydomain"]

mdc.istio.ott.configmap.ott_service_url

Шаблон URL сервиса OTTS

ott-host-01.mycompanydomain:8443/ott-service/rest/token

При балансировке значения будут подставляться из OTT_SERVICE_HOSTS

mdc.istio.ott.configmap.ott_store_type

Формат сертификатов ОТТ

PEM

PEM или PCKS12, по умолчанию PEM

mdc.istio.ott.configmap.ott_service_cert_path

Путь к серверному сертификату сервиса OTTS для проверки токенов

/mnt/secrets/ott/ott-service.crt.pem

Используется если выбран формат PEM

dc.istio.ott.configmap.ott_service_tls_cert_path

Путь к корневому сертификату для ОТТ

/mnt/secrets/ca/mycompany_root_ca.crt.pem

Используется если выбран формат PEM

mdc.istio.ott.configmap.ott_client_cert_path

Путь к клиентскому сертификату NSIX для ОТТ

/mnt/secrets/ott/mdc-cloud.crt.pem

Используется если выбран формат PEM

mdc.istio.ott.configmap.ott_client_key_path

Путь к приватному ключу клиентского сертификата NSIX для ОТТ

/mnt/secrets/ott/mdc-cloud.key.pem

Используется если выбран формат PEM

mdc.istio.ott.configmap.ott_certstore_path

Путь к хранилищу клиентских сертификатов ОТТ

/mnt/secrets/mdc-cloud.p12

Используется если выбран формат PCKS12, иначе можно задать значение-заглушку

mdc.istio.ott.configmap.ott_client_cert_alias

Alias сертификатов NSIX в хранилище клиентских сертификатов ОТТ

mdc-cloud

Используется если выбран формат PCKS12, иначе можно задать значение-заглушку

mdc.istio.ott.configmap.ott_truststore_path

Путь к хранилищу trust-сертификатов ОТТ

/mnt/secrets/ott_service_truststore.p12

Используется если выбран формат PCKS12

mdc.istio.ott.configmap.ott_module_id

Идентификатор приложений NSIX в системе ОТТ

mdc-cloud

mdc.istio.ott.configmap.ott_http_port

Порт OTT-sidecar для readiness-probe

8086

При необходимости можно выбрать любой другой свободный порт

mdc.istio.ott.configmap.ott_client_billing_account

Идентификатор инсталляции платформы

nsix

mdc.istio.ott.configmap.ott_sidecar_hotreload_enabled

Параметр включения hotReload

true / false

Включен изначально со значением по умолчания — true

mdc.istio.ott.configmap.ott_service_client_trusted_crt_rate

Период обновления кеша сертификатов серверов OTT в секундах

60

mdc.istio.ott.configmap.ott_service.client.circuitBreaker.sleepWindowInMilliseconds

Время после включения прерывателя, спустя которое инициализируется новый запрос к экземпляру сервиса OTT, на котором сработал прерыватель

5000

mdc.istio.ingress.configmap.ott_anonymous_requests_enabled

Анонимный режим ОТТ без авторизации для ingress

true / false

true — если включен и false — если выключен. В целевом варианте должен быть отключен

mdc.istio.ott.configmap.ott_service_tls_cert_path

Ссылка на серверный TLS-сертификат ОТТ в pod

/mnt/secrets/ca/mycompany_root_ca.crt.pem

mdc.istio.egress.configmap.ott_anonymous_requests_enabled

Анонимный режим ОТТ без авторизации для egress

true / false

true — если включен и false — если выключен. В целевом варианте должен быть отключен

mdc.istio.ott.configmap.ott_authz_version

Версия компонента авторизации

3.0

Ресурсы, выделяемые для контейнера OTT в ingress

Параметр

Описание

Допустимые значения

mdc.istio.ingress.deployment.spec.template.spec.containers.ott.resources.requests.cpu

Количество CPU, необходимое для контейнера OTT

300m

mdc.istio.ingress.deployment.spec.template.spec.containers.ott.resources.limits.cpu

Максимальный лимит CPU для контейнера OTT

300m

mdc.istio.ingress.deployment.spec.template.spec.containers.ott.resources.requests.memory

Количество памяти, необходимое для контейнера OTT

500Mi

mdc.istio.ingress.deployment.spec.template.spec.containers.ott.resources.limits.memory

Максимальный лимит памяти для контейнера OTT

500Mi

mdc.istio.ingress.deployment.spec.template.spec.containers.ott.readinessprobe.port

Порт для readiness-probe контейнера OTT

8086

mdc.istio.egress.deployment.spec.template.spec.containers.ott.resources.requests.cpu

Количество CPU, необходимое для контейнера OTT

300m

mdc.istio.egress.deployment.spec.template.spec.containers.ott.resources.limits.cpu

Максимальный лимит CPU для контейнера OTT

300m

mdc.istio.egress.deployment.spec.template.spec.containers.ott.resources.requests.memory

Количество памяти, необходимое для контейнера OTT

500Mi

mdc.istio.egress.deployment.spec.template.spec.containers.ott.resources.limits.memory

Максимальный лимит памяти для контейнера OTT

500Mi

mdc.istio.egress.deployment.spec.template.spec.containers.ott.readinessprobe.port

Порт для readiness-probe контейнера OTT

8086

Параметры аудита OTT в Ingress

Параметр

Описание

Допустимые значения

mdc.istio.ingress.configmap.ott_audit2-enabled

Включение аудита OTT ingress

true / false

mdc.istio.ingress.configmap.ott_audit2-moduleid

Идентификатор модуля в системе аудита OTT Ingress

nsix

mdc.istio.ingress.configmap.ott_audit2-metamodel-version

Версия метамодели аудита OTT Ingress

1.0

mdc.istio.ingress.configmap.ott_audit2-proxy-url

URL-адрес аудита OTT Ingress

По умолчанию http://127.0.0.1:8091

Параметры аудита OTT в Egress

Параметр

Описание

Допустимые значения

mdc.istio.egress.configmap.ott_audit2-enabled

Включение аудита OTT Egress

true / false

mdc.istio.egress.configmap.ott_audit2-moduleid

Идентификатор модуля в системе аудита OTT Egress

nsix

mdc.istio.egress.configmap.ott_audit2-metamodel-version

Версия метамодели аудита OTT Egress

1.0

mdc.istio.egress.configmap.ott_audit2-proxy-url

URL-адрес аудита OTT Egress

По умолчанию http://127.0.0.1:8091

Параметры Kubernetes

Параметр

Описание

Допустимые значения

mdc.istio.egress.common.kubernetes_service_ip

IP-адрес сервиса Kubernetes

<IP-Адрес>

Параметры Secret Management System

Параметр

Описание

Допустимые значения

mdc.istio.egress.se.secman.spec.hosts

Хост сервиса Secret Management System

secman-xxx.mycompanydomain

mdc.istio.egress.se.secman.spec.ports.https

Порт HTTPS-соединения Secret Management System

443

Ресурсы, выделяемые для контейнера vault-agent в Ingress

Параметр

Описание

Допустимые значения

mdc.istio.ingress.deployment.metadata.sidecar.secman.proxyCPU

Количество CPU, необходимое для контейнера vault

50m

mdc.istio.ingress.deployment.metadata.sidecar.secman.proxyCPULimit

Максимальный лимит CPU для контейнера vault

100m

mdc.istio.ingress.deployment.metadata.sidecar.secman.proxyMemory

Количество памяти, необходимое для контейнера vault

64Mi

mdc.istio.ingress.deployment.metadata.sidecar.secman.proxyMemoryLimit

Максимальный лимит памяти CPU для контейнера vault

128Mi

Параметры Secret Management System для Ingress

Параметр

Описание

Допустимые значения

mdc.istio.ingress.deployment.metadata.annotations.sidecar.secman.agent.inject

Добавить контейнер vault-agent

true / false

mdc.istio.ingress.deployment.metadata.annotations.sidecar.secman.role

Имя роли

role-ga-secman-nsix

mdc.istio.ingress.deployment.metadata.annotations.sidecar.secman.tenant

Имя тенанта

DEV

mdc.istio.ingress.deployment.metadata.sidecar.secman.path

Путь к KV-хранилищу secret

/A/DEV/BD/NSIX/KV

Ресурсы, выделяемые для контейнера vault-agent в Egress

Параметр

Описание

Допустимые значения

mdc.istio.egress.deployment.metadata.sidecar.secman.proxyCPU

Количество CPU, необходимое для контейнера vault

50m

mdc.istio.egress.deployment.metadata.sidecar.secman.proxyCPULimit

Максимальный лимит CPU для контейнера vault

100m

mdc.istio.egress.deployment.metadata.sidecar.secman.proxyMemory

Количество памяти, необходимое для контейнера vault

64Mi

mdc.istio.egress.deployment.metadata.sidecar.secman.proxyMemoryLimit

Максимальный лимит памяти CPU для контейнера vault

128Mi

Параметры Secret Management System для Egress

Параметр

Описание

Допустимые значения

mdc.istio.egress.deployment.metadata.annotations.sidecar.secman.agent.inject

Добавить контейнер vault-agent

true / false

mdc.istio.egress.deployment.metadata.annotations.sidecar.secman.role

Имя роли

role-ga-secman-nsix

mdc.istio.egress.deployment.metadata.annotations.sidecar.secman.tenant

Имя тенанта

DEV

mdc.istio.egress.deployment.metadata.sidecar.secman.path

Путь к KV-хранилищу secret

/A/DEV/BD/NSIX/KV

Параметры подключения PKI Secrets Engine сертификатов для Egress

Параметр

Описание

Допустимые значения

Комментарий

mdc.istio.egress.deployment.metadata.sidecar.secman.pki_engine.enabled

Использование PKI-движка вместо KV для сертификатов TLS Istio Egress

true / false

mdc.istio.egress.deployment.metadata.sidecar.secman.pki_engine.commonname

Common-name для PKI-движка

*.apps.mydomain

mdc.istio.egress.deployment.metadata.sidecar.secman.pki_engine.fetch.role

Путь к PKI-движку Egress в SecMan

DEV/PKI/issue/role-ga-secman-nsix

mdc.istio.egress.deployment.metadata.sidecar.secman.pki_engine.format

Формат сертификатов в PKI-движке Egress в SecMan

pem

По умолчанию pem

mdc.istio.egress.deployment.metadata.sidecar.secman.pki_engine.ttl

TTL PKI-движка Egress в SecMan

36000000

mdc.istio.egress.deployment.metadata.sidecar.secman.pki_engine.add-kv-ca-chain

Параметр для добавления цепочки сертификатов

true / false

mdc.istio.egress.deployment.metadata.sidecar.secman.pki_engine.altnames

Альтернативные имена для PKI-движка

Параметры подключения PKI Secrets Engine сертификатов для OTTS Egress

Параметр

Описание

Допустимые значения

Комментарий

mdc.istio.egress.deployment.metadata.sidecar.secman.pki_engine.ott.enabled

Использование PKI-движка вместо KV для сертификатов TLS Istio Egress OTTS

true / false

mdc.istio.egress.deployment.metadata.sidecar.secman.pki_engine.ott.commonname

Common-name для PKI-движка

*.apps.mydomain

mdc.istio.egress.deployment.metadata.sidecar.secman.pki_engine.ott.client.role

Путь к PKI-движку клиента Egress OTTS в SecMan

DEV/PKI/issue/role-ga-secman-nsix

mdc.istio.egress.deployment.metadata.sidecar.secman.pki_engine.ott.format

Формат сертификатов в PKI-движке OTTS Egress в SecMan

pem

По умолчанию pem

mdc.istio.egress.deployment.metadata.sidecar.secman.pki_engine.ott.ttl

TTL PKI-движка OTTS Egress в SecMan

36000000

mdc.istio.egress.deployment.metadata.sidecar.secman.pki_engine.ott.altnames

Альтернативные имена для PKI-движка

Параметры подключения PKI Secrets Engine сертификатов для Ingress

Параметр

Описание

Допустимые значения

Комментарий

mdc.istio.ingress.deployment.metadata.sidecar.secman.pki_engine.enabled

Использование PKI-движка вместо KV для сертификатов TLS Istio Ingress OTTS

true / false

mdc.istio.ingress.deployment.metadata.sidecar.secman.pki_engine.commonname

Common-name для PKI-движка

*.apps.mydomain

mdc.istio.ingress.deployment.metadata.sidecar.secman.pki_engine.fetch.role

Путь к PKI-движку клиента Ingress OTTS в SecMan

DEV/PKI/issue/role-ga-secman-nsix

mdc.istio.ingress.deployment.metadata.sidecar.secman.pki_engine.format

Формат сертификатов в PKI-движке OTTS Ingress в SecMan

pem

По умолчанию pem

mdc.istio.ingress.deployment.metadata.sidecar.secman.pki_engine.ttl

TTL PKI-движка OTTS Ingress в SecMan

36000000

mdc.istio.ingress.deployment.metadata.sidecar.secman.pki_engine.add-kv-ca-chain

Параметр для добавления цепочки сертификатов

true / false

mdc.istio.ingress.deployment.metadata.sidecar.secman.pki_engine.altnames

Альтернативные имена для PKI-движка

Параметры подключения PKI Secrets Engine сертификатов для OTTS в Ingress

Параметр

Описание

Допустимые значения

Комментарий

mdc.istio.ingress.deployment.metadata.sidecar.secman.pki_engine.ott.enabled

Использование PKI-движка вместо KV для сертификатов TLS Istio Ingress OTTS

true / false

mdc.istio.ingress.deployment.metadata.sidecar.secman.pki_engine.ott.commonname

Common-name для PKI-движка

*.apps.mydomain

mdc.istio.ingress.deployment.metadata.sidecar.secman.pki_engine.ott.client.role

Путь к PKI-движку клиента Ingress OTTS в SecMan

DEV/PKI/issue/role-ga-secman-nsix

mdc.istio.ingress.deployment.metadata.sidecar.secman.pki_engine.ott.format

Формат сертификатов в PKI-движке OTTS Ingress в SecMan

pem

По умолчанию pem

mdc.istio.ingress.deployment.metadata.sidecar.secman.pki_engine.ott.ttl

TTL PKI-движка OTTS Ingress в SecMan

36000000

Параметры timeouts Envoy-фильтров

Параметр

Описание

Допустимые значения

mdc.istio.egress.fluentbit_ef.spec.configPatches.patch.envoy.ext_authz.config.timeout

Tайм-аут envoy-фильтра FluentBit

4s

mdc.istio.egress.audit_ef.spec.configPatches.patch.envoy.ext_authz.config.timeout

Тайм-аут envoy-фильтра Audit

4s

mdc.istio.egress.rspit_ef.spec.configPatches.patch.envoy.ext_authz.config.timeout

Тайм-аут envoy-фильтра Rspit

4s

Параметры Rate Limiter

Параметр

Описание

Допустимые значения

mdc.istio.egress.common.rls.host

Хост

rate-limit-tribe-pf.std.apps.mycompanydomain

mdc.istio.egress.common.rls.port

Порт

443

agent.ose.istio.all.common.ingressAppSelector

Selector приложения Ingress

mdc-ingress-${NAMESPACE}

agent.ose.istio.all.common.ingressIstioSelector

Selector Istio Ingress

mdc-ingress-${NAMESPACE}

agent.ose.istio.all.common.egressAppSelector

Selector приложения Egress

mdc-egress-${NAMESPACE}

agent.ose.istio.all.common.egressIstioSelector

Selector Istio Egress

mdc-egress-${NAMESPACE}

Параметры для файла mdc.fluentbit.sidecar.all.conf приведены в таблице ниже:

Параметр

Описание

Допустимые значения

mdc.fluentbit-sidecar.configmap.javaArguments

Аргументы запуска приложения через JVM-переменную JAVA_OPTS

-XX:+UseContainerSupport -Xmx50m

Кроме того, в папке /conf в ФП-репозитории необходимо создать (либо мигрировать) файл custom_property.conf.yml, в котором также необходимо указать параметры.

Параметры для файла custom_property.conf.yml приведены в таблице ниже:

Параметр

Описание

Допустимые значения

Комментарий

dbType

Тип БД

postgresql_1

По умолчанию postgresql_1

logger_name

Тип logger

loga

Указывается LOGA — если планируется использовать logger Kafka LOGA, и любое другое значение — если нет

service_mesh_type

Тип SSM контрольной панели

synapse2

Указывается synapse3 — если используется контрольная панель с SSM-версии Synapse 3.x, и любое другое значение — в противном случае

securityContext_k8s

Тип SecurityContext для развертывания

true / false

Указывается false — если используется Openshift, и true — если чистый Kubernetes/DropApp

kind_route_deploy

Тип маршрута

true / false

Указывается true — если требуется развертывать тип маршрута «Route» вместо Ingress (Маршрут совместим только с Openshift), и false — если развертывать Ingress

apiVersion_vs

Версия API для VirtualService

alpha3

Допустимые значения alpha3 и beta1

apiVersion_gw

Версия API для Gateway

alpha3

Допустимые значения alpha3 и beta1

apiVersion_se

Версия API для ServiceEntry

alpha3

Допустимые значения alpha3 и beta1

apiVersion_dr

Версия API для DestinationRule

alpha3

Допустимые значения alpha3 и beta1

secman_kv2

Переключатель на движок KeyValue v.2 для Secret Management System

true / false

Указывается true — если в Secman используются хранилища типа KV-V2, по умолчанию — false

tls_postgres_connection

Использование шифрованного TLS-соединения для БД postgresql

true / false

tls_audit_connection

Использование шифрованного TLS-соединения для Аудита

true / false

tls_fluentbit_connection

Использование шифрованного TLS-соединения для журналирования FluentBit

true / false

tls_rspit_connection

Использование шифрованного TLS-соединения для RSPIT

true / false

tls_s3_connection

Использование шифрованного TLS-соединения для S3

true / false

tls_spas_connection

Использование шифрованного TLS-соединения для SPAS

true / false

tls_logger_connection

Использование шифрованного TLS-соединения для logger Kafka

true / false

tls_secman_connection

Использование шифрованного TLS-соединения для получения secrets из SecMan

true / false

tls_ott_connection

Использование шифрованного TLS-соединения для ОТТS

true / false

tls_iam_connection

Использование шифрованного TLS-соединения для IAM

true / false

tls_validation_connection

Использование шифрованного TLS-соединения для валидации

true / false

tls_kafka_connection

Использование шифрованного TLS-соединения для Kafka

true / false

deploy_rate_limit

Переключатель развертывания RateLimiter из дистрибутива

true / false

Используются только при централизованном варианте

DEPLOY_LIMITS

Переключатель развертывания RateLimiter из SRLS-агента

true / false

Если выбран этот вариант развертывания

DEPLOY_CENTR

Переключатель развертывания компонентов централизованного RateLimiter из SRLS-агента

true / false

Если выбран этот вариант развертывания

DEPLOY_DECENTR

Переключатель развертывания компонентов децентрализованного RateLimiter из SRLS-агента

true / false

Если выбран этот вариант развертывания

Для настроек среды контейнеризации необходимо задать параметры из таблицы ниже:

Параметр

Значение

Комментарий

securityContext_k8s

false

В случае, если используется Openshift

kind_route_deploy

true

В случае, если используется Openshift

securityContext_k8s

true

Если и используется Kubernetes или его вариация

kind_route_deploy

false

Если и используется Kubernetes или его вариация

service_mesh_type

synapse3

Если используется контрольная панель Synapse 3

Параметр для задания произвольного имени схемы БД:

Параметр

Значение

Комментарий

jdbc.mdc_postgres.schema

schema: "{{ lookup('vars', 'jdbc.mdc_postgres.schema') if lookup('vars', 'jdbc.mdc_postgres.schema') is defined and lookup('vars','jdbc.mdc_postgres.schema') is string else lookup('vars', 'jdbc.mdc_postgres.user') }}"

Задается в файле mdmp/oc-deployment/distrib.yml

Подсказка

Подсказка
Для синхронизации списка в job DEPLOY запустите playbook MIGRATION_FP и затем после выполнения измените значения по умолчанию на необходимые.

Параметры приложений в ConfigMaps для сред контейнеризации:

Наименование параметра

Допустимые значения

Принадлежность

Описание

FIND_RECORD_BY_BUSINESS_KEY

false / true

nsix-cm-mdc-jobs.unver

Параметр включает (true) и отключает (false) функционал поиска записей по новой колонке bk таблицы apikeyvalue_record. Для каждого способа необходимо предусмотреть сохранение значений атрибутов, помеченных как бизнес ключи, в колонку bk таблицы apikeyvalue_record в формате bk1:111111;bk2:Бизнес-ключ;bk3:false;bk4:04.12.2024;bk5:pk, где bk1 имеет тип Long, bk2 имеет тип String, bk3 имеет тип Boolean, bk4 имеет тип Date, bk5 имеет тип Reference, pk — это значение первичного ключа записи, на которую ведет ссылка

NSIX_TENANT_API_DELETE_ENABLE

false / true

nsix-cm-mdc-api.unver

Параметр управляет ограничением удаления тенанта. Если true — API удаление теннанта работает, если false — API возвращает ошибку с текстом Удаление тенанта выключено

FIX_MIN_MAX_STRING_VALUE

false / true

nsix-cm-mdc-jobs.unver

Параметр управляет валидацией — отключает строгие проверки минимальной и максимальной длины строчного атрибута. Если данный параметр включен (значение true по умолчанию), то осуществляется обрезание строки до допустимого максимального значения или записывается значение в том виде, в котором пришло (в случае если значение меньше минимального). Если параметр выключен (значение false), то осуществляется строгая загрузка, и несоответствие значения строкового параметра по длине инициирует критическую ошибку

DISTRIBUTION_EXCLUDE_SUPRESSED_ERRORS_NAMES

Допустимые значения приведены в отдельной таблице ниже *

nsix-cm-mdc-api.unver

Параметр содержит список типов ошибок, по которым не допустимо отправление

DISTRIBUTION_EXCLUDE_SUPRESSED_ERRORS_DICTIONARYNAMES

Перечень справочников, например: Holidays,Terbnkns

nsix-cm-mdc-api.unver

Параметр содержит список справочников, по которым требуется отключение отправки подавленных ошибок

DISTRIBUTION_EXCLUDE_SUPRESSED_ERRORS_ENABLED

false / true

nsix-cm-mdc-api.unver

Параметр включает отправку подавленных ошибок

COMMON_IMPORT_DEFAULT_IS_STRICT

false / true

nsix-cm-mdc-jobs.unver

Параметр активирует строгий режим, учитывающий некритичные ошибки, для регламентного задания Импорт справочников в формате CSV (значение false по умолчанию). Если значение параметра true, то в регламентном задании Импорт справочников в формате CSV активирован строгий режим загрузки по проверке критических и некритических ошибок, и пользователю недоступно его отключение

OTHER_TIMEDEPENDENT_IS_BK_USED_AS_TK

false / true

nsix-cm-mdc.unver

Параметр позволяет автоматически проставлять признак Временной ключ для атрибутов с признаком Бизнес-ключ во времязависимых справочниках (значение true по умолчанию)

OTHER_TIMEDEPENDENT_IS_END_CREATED_WITH_BK

false / true

nsix-cm-mdc.unver

Параметр позволяет автоматически проставлять признак Бизнес-ключ для атрибута конца периода (значение true по умолчанию)

RELOAD_STRATEGY_FAIL_FAST

false / true

nsix-cm-mdc.unver

Параметр отвечает за стратегию рестарта приложения. Если false — стратегия fail safe, если true — стратегия fail fast **

MDC_KAFKA_ENABLED

false / true

nsix-cm-mdc-jobs.unver

Параметр включает (true) и отключает (false) конфигурации Kafka и параметров bean-компонентов в модуле

MDC_KAFKA_BOOTSTRAP_SERVERS

<список брокеров Kafka>

nsix-cm-mdc-jobs.unver

Параметр содержит список брокеров Kafka и порты в кластере

MDC_KAFKA_RELEASE_TOPIC

Значение по умолчанию «nsix.release.out»

nsix-cm-mdc-jobs.unver

Параметры конфигурации для потока публикации релизных изменений справочника

MDC_KAFKA_RELEASE_PRODUCER

Значение по умолчанию «producer.nsix.release.out»

nsix-cm-mdc-jobs.unver

Параметр наименования продюсера темы

MDC_KAFKA_JOBS_TOPIC

Значение по умолчанию «nsix.jobs.out»

nsix-cm-mdc-jobs.unver

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

MDC_KAFKA_JOBS_PRODUCER

Значение по умолчанию «producer.nsix.jobs.out»

nsix-cm-mdc-jobs.unver

Параметр наименования продюсера темы

MDC_KAFKA_STUB_ENABLED

false / true

nsix-cm-mdc-jobs.unver

Параметр включает (true) и отключает (false) конфигурации Kafka и параметров bean-компонентов в модуле в stub-режиме

*:

Наименование ошибки

Описание ошибки

DELETE_FILE_ERROR

При удалении входного файла возникла ошибка

DICTIONARIES_NOT_FOUND_IN_FILE

В файле не найдено ни одного справочника для загрузки

DICTIONARY_NOT_FOUND

В файле не найден справочник, его загрузка проводиться не будет

DICTIONARY_NOT_LOADED

Во входном файле обнаружен справочник, который уже загружается в другом файле. Справочник исключен из загрузки во входном файле

DICTIONARY_NOT_LOADED

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

DICTIONARY_NOT_LOADED

В файле есть справочники, загрузка которых не востребована, они будут проигнорированы

FILE_NOT_DELETED

Не удалось удалить существующий файл назначения

NO_INPUT

Подходящие по маске файлы отсутствуют, либо все они уже были загружены ранее

NOT_FOUND_DICTS

Нет данных для загрузки, задача будет завершена

PACK_TO_ARCHIVE_ERROR

Ошибка во время архивирования ресурса

UNKNOWN_ATTRIBUTE

Неизвестный атрибут, исключен из загрузки

**:

Приложение во время развертывания должно поддерживать выбор одной из двух стратегий реакции на ошибку с помощью указания соответствующего значения в конфигурационном параметре.
Стратегия fail safe
Приложение во время выполнения должно использовать старые секреты, если обновление секретов или объектов, которые зависят от секретов, завершилось с ошибкой.
Стратегия fail fast
Приложение во время выполнения должно завершать свою работу, если обновление секретов или объектов, которые зависят от секретов, завершилось с ошибкой. При этом приложение должно предоставлять возможность завершиться запросам, использующим старые варианты секретов.

Глобальные параметры, используемые для настройки NSIX, приведены в таблице ниже:

Параметр

Описание

Значение

Комментарий

global.platform.logger.kafka.bootstrap.servers

Список хостов и портов logger в common-репозитории

ip1:внешний порт1, ... ,ipN:внешний_порт N

По умолчанию на данный параметр ссылается параметр mdc.fluent-bit-forwarder-sidecar.configmap.kafka.bootstrap.servers в ФП-репозитории, ему также можно задать значение константой без ссылки на глобальную переменную

global.platform.loga.kafka.servers

Список хостов и портов logger в common-репозитории

kafka-server-01.mydomain:<ip-адрес-01>:ХХХ:TCP:ХХХ:TCP;kafka-server-02.mydomain:<ip-адрес-02>:TCP:ХХХ:TCP

По умолчанию на данный параметр ссылается параметр mdc.fluent-bit-forwarder-sidecar.ose.istio.egress.kafka.bootservers в ФП-репозитории, ему также можно задать значение константой без ссылки на глобальную переменную

global.platform.logger.kafka.topic

Глобальное название topic Kafka для logger в common-репозитории

mdc.logs

По умолчанию на данный параметр ссылается параметр mdc.fluent-bit-forwarder-sidecar.configmap.kafka.topic в ФП-репозитории, ему также можно задать значение константой без ссылки на глобальную переменную

global.platform.logger.kafka.security.protocol

Ранее — глобальное название протокола logger

SSL или PLAINTEXT

Не используется в NSIX

global.jdbc.postgresql.spring.datasource.driver-class-name

Глобальное название драйвера JDBC

org.postgresql.Driver

По умолчанию на данный параметр ссылается параметр mdc.configmap.db.driver в ФП-репозитории, ему также можно задать значение константой без ссылки на глобальную переменную

global.jdbc.spring.datasource.hikari.connection-test-query

Глобальное значение тестового запроса JDBC

SELECT 1

По умолчанию на данный параметр ссылается параметр mdc.configmap.db.connection_test_query в ФП-репозитории, ему также можно задать значение константой без ссылки на глобальную переменную

global.jdbc.postgresql.spring.datasource.hikari.connection-init-sql

Глобальное значение запроса инициализации JDBC

SELECT 1

По умолчанию на данный параметр ссылается параметр mdc-api.configmap.audit.host в ФП-репозитории, ему также можно задать значение константой без ссылки на глобальную переменную

global.platform.pprb.baseurl.audit

Глобальное значение хоста аудита (без порта и протокола)

host1

По умолчанию на данный параметр ссылается параметр mdc-api.configmap.audit.host в ФП-репозитории, ему также можно задать значение константой без ссылки на глобальную переменную

global.server.max-http-header-size

Глобальное значение максимального размера заголовка HTTP-запроса в байтах

<size>

По умолчанию на данный параметр ссылается параметр mdc.configmap.max-http-header-size в ФП-репозитории, ему также можно задать значение константой без ссылки на глобальную переменную

global.platform.annotations.hashicorp.rootCertsPath

Путь к secret к корневым сертификатом

<path>

Используется дляя указагния пути к корневому сертификату SecMan

Список более не используемых (устаревших) параметров приведен в таблице ниже:

Параметр

Комментарий

mdc.configmap.db.user

Имя пользователя схемы БД. Заменен на secret

mdc-api.istio.egress.configmap.ott.service_url

Заменен общим параметром без -api в имени

mdc-api.istio.egress.configmap.ott.certstore_path

Заменен общим параметром без -api в имени

mdc-api.istio.egress.configmap.ott.truststore_path

Заменен общим параметром без -api в имени

mdc-api.istio.egress.configmap.ott.module_id

Заменен общим параметром без -api в имени

mdc-api.istio.egress.configmap.ott.service_hosts

Заменен общим параметром без -api в имени

mdc.istio.egress.common.ott.enabled

Заменен на глобальную переменную global.ott.ose_deploy

mdc-api.istio.egress.configmap.ott.client_cert_alias

Заменен общим параметром без -api в имени

Подсказка

Подсказка:
Данная таблица может потребоваться специалистам сопровождения при настройке NSIX и при установке новых версий.

Параметры конфигурации для Kafka приведены в таблице ниже

Параметр

Значение

Модуль NSIX

Описание

MDC_KAFKA_ENABLED

true — по умолчанию
false

nsix-cm-mdc.unver

Включение или отключение конфигурации Kafka и параметров bean-компонентов в модуле

MDC_KAFKA_BOOTSTRAP_SERVERS

По умолчанию «{IP}:{PORT},{IP}:{PORT},{IP}:{PORT}»

nsix-cm-mdc.unver

Все брокеры Kafka имя_домена/ips и порты в кластере

MDC_KAFKA_RELEASE_TOPIC

По умолчанию «nsix.release.out»

nsix-cm-mdc.unver

Параметры конфигурации для потока публикации релизных изменений справочника.
Название темы Kafka для отправки сообщений

MDC_KAFKA_RELEASE_PRODUCER

По умолчанию «producer.nsix.release.out»

nsix-cm-mdc.unver

Название продюсера темы

MDC_KAFKA_EVENTS_PRODUCER

По умолчанию «producer.nsix.events.out»

nsix-cm-mdc.unver

Название продюсера темы (сейчас не используется)

MDC_KAFKA_EVENTS_TOPIC

По умолчанию «nsix.events.out»

nsix-cm-mdc.unver

Параметры конфигурации для потока отправки событий изменения данных справочника. Название темы Kafka для отправки сообщений. Сейчас не используется

MDC_KAFKA_JOBS_TOPIC

По умолчанию «nsix.jobs.out»

nsix-cm-mdc.unver

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

MDC_KAFKA_JOBS_PRODUCER

По умолчанию «producer.nsix.jobs.out»

nsix-cm-mdc.unver

Название продюсера темы

MDC_KAFKA_STUB_ENABLED

false — по умолчанию
true

nsix-cm-mdc.unver

Включение или отключение конфигурации Kafka и параметров bean-компонентов в модуле в stub-режиме

MDC_KAFKA_JOBS_ENABLED

false — по умолчанию
true

nsix-cm-mdc.unver

Параметр запуска РЗ nsix.events.prwvc (prwvc — publish records when version changed), который позволит включать/отключать выгрузку записей РЗ при событии публикации справочника

MDC_KAFKA_TOPIC_SUMMARY_ENABLED

false — по умолчанию
true

nsix-cm-mdc.unver

Возможность конфигурации отправки событий по топикам при публикации справочника.

Вариант 1 (по умолчанию): Событие изменения справочника публикуется в топик «nsix.release.out». А события изменения записей при публикации справочника отправляются в топик «nsix.jobs.out».

Вариант 2 (опциональный): Событие изменения справочника и его релизных записей при публикации справочника отправляются в один топик «nsix.release.out»

MDC_KAFKA_EVENT_TO_CHUNK

По умолчанию 50

nsix-cm-mdc.unver

Выгрузка событий изменения справочника и его релизных записей в топик Kafka в блоки по определенному числу событий

Описание настроек подсистемы доступа#

Создание пользователей и присвоение им ролей выполняется в AUTH. Подробнее можно ознакомиться с эксплуатационной документацией IAM Proxy (AUTH).

Создание и обновление ролей и полномочий выполняется в AUTZ. Подробнее можно ознакомиться в документе Руководстве оператора AUTZ.

Описание настроек среды контейнеризации#

Подключение к Istio, настройка сертификатов и создание secrets — выполняются индивидуально для каждой именованной области среды контейнеризации в пределах каждого стенда. Производить эти действия необязательно, если в целевой проектной области среды контейнеризации не планируется использовать Istio.

Для корректной работы приложений необходимо создать в меню Workloads — Secrets — secret для скачивания образа типа Image pull Secret и два secret с приложениями — secret-mdc-db и secret-mdc-spas.

Подсказка

Подсказка
Значение переменных следует редактировать не напрямую в YAML (здесь оно отображается в зашифрованном виде), а через меню Edit secret.

Secret для скачивания образов (в примере названа mdc-pull) должен иметь тип kubernetes.io/dockerconfigjson, в котором содержится параметр вида .dockerconfigjson и содержанием:

{"auths":{"https://ссылка_на_хранилище_образов":{"username":"имя_пользователя","password":"пароль","auth":"код_аутентификации","email":""}}}
Пример Secret
kind: Secret
apiVersion: v1
metadata:
  name: mdc-pull
data:
  .dockerconfigjson: >-
    зашифрованный_блок_json
type: kubernetes.io/dockerconfigjson

Имя этого secret может быть произвольным, состоящим из латинских букв, цифр и символа -. В дальнейшем будет задаваться при настройке стендозависимых параметров.

Установка приложений#

Автоматическая установка#

Установка проводится в автоматическом режиме с помощью Deploy Tools.

При установке через Deploy Tools для DropApp/K8S/Openshift выберите директорию конфигурации, SUBSYSTEM = MDC, версию дистрибутива и namespace. Далее выберите playbooks в зависимости от потребностей:

  • MIGRATION_FP_CONF — миграция параметров дистрибутива в репозиторий. Рекомендуется выполнять отдельным шагом и затем править дефолтные значения стендозависимых параметров на действительные;

  • DB_UPDATE — обновление БД OPENSHIFT_DEPLOY;

  • OPENSHIFT_DEPLOY — установка приложений MDC без Istio;

  • OPENSHIFT_INGRESS_EGRESS_DEPLOY — установка приложений Ingress и Egress.

Перед выполнением установки следует уточнить и скорректировать значения параметров в common репозитории:

  • global.ott.ose_deploy;

  • ose.kind_route.deploy;

  • secman.secman_injector.

Подсказка

Подсказка
В зависимости от того, используется ли ОТТ, маршруты типа Route и Secret Management System, требуется уточнить и при необходимости скорректировать параметры в репозитории, связанные с использованием PKI Secrets Engine для Ingress/Egress и Database Secrets Engine для приложений.

Интеграция с платформенными зависимостями#

Для исходящего трафика используется сервис Egress-istio.

egress-svc-mdc — используется для сервисного трафика, предназначен для балансирования и терминации трафика на границе сети, для служб и сервисов аудита, логирования, мониторинга.

Шаблон установки для egress-svc-mdc — k8s/base/istio/deployments/egress/*.yaml. Каждый из этих шаблонов разворачивает egress-envoy и One-Time Password (OTP) / OTT (OTTS) сервис, подключенный как sidecar.

Для активации авторизации на envoy с применением One-Time Password (OTP) / OTT (OTTS) используется настройка envoy-фильтра:

Настройка envoy-фильтра
kind: EnvoyFilter
apiVersion: networking.istio.io/v1alpha3
metadata:
  name: egress-ef-mdc-audit-${distrib.release.version}
  labels:
    app: mdc-egress
    type: resource
spec:
  configPatches:
  - applyTo: HTTP_FILTER
    match:
      context: GATEWAY
      listener:
        filterChain:
          filter:
            name: envoy.http_connection_manager
        portNumber: 8091 # порт из gateway. при запросах на данный порт будет вызываться ott-sidecar для проставления токена
    patch:
      operation: INSERT_BEFORE
      value:
        name: envoy.ext_authz
        config:
          failure_mode_allow: false # запрещает трафик при недоступности сервиса авторизации
          grpc_service:
            google_grpc:
              stat_prefix: ext_authz
              target_uri: unix:/mnt/ott-uds-socket/ott.socket # используется для взаимодействия с ott-sidecar
            timeout: 4s # на фактическую производительность влияние не оказывает, но необходимо для корректного запуска
          with_request_body:
            allow_partial_message: true
            max_request_bytes: 65536
  workloadSelector:
    labels:
      app: mdc-egress-${NAMESPACE}
      istio: mdc-egress-${NAMESPACE}

egress-svc-mdc использует порт 5443 (mTLS + OTTS) в качестве выходного шлюза. Все остальные порты используются для mapping портов.

Настройка egress-svc-mdc
kind: Service
apiVersion: v1
metadata:
  name: egress-svc-mdc-${distrib.release.version}
  labels:
    app: mdc-egress
    type: resource
spec:
  ports:
    - name: status-port
      protocol: TCP
      port: 15020
      targetPort: 15020
    - name: tcp-9001     # DB_1 main
      protocol: TCP
      port: 9001
      targetPort: 9001
    - name: tcp-9002     # DB_2 second
      protocol: TCP
      port: 9002
      targetPort: 9002
    - name: http-8089    # fluent-bit
      protocol: TCP
      port: 8089
      targetPort: 8089
    - name: http-8091     # Audit
      protocol: TCP
      port: 8091
      targetPort: 8091
    - name: http-8092     # DataMart
      protocol: TCP
      port: 8092
      targetPort: 8092
    - name: tcp-8093    # AUTH
      protocol: TCP
      port: 8093
      targetPort: 8093
    - name: http-8095    # ceph
      protocol: TCP
      port: 8095
      targetPort: 8095
  selector:
    app: mdc-egress-${NAMESPACE}
    istio: mdc-egress-${NAMESPACE}
  type: ClusterIP
  sessionAffinity: None
 

Компонент Журналирование (LOGA), взаимодействие mTLS + One-Time Password (OTP) / OTT (OTTS).

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

ServiceEntry:

kind: ServiceEntry
apiVersion: networking.istio.io/v1alpha3
metadata:
  name: egress-se-mdc-fluent-bit-${distrib.release.version}
  labels:
    app: mdc-egress
    type: resource
spec:
  hosts:
    - ${mdc.fluent-bit-forwarder-sidecar.istio.egress.common.host}
  ports:
    - name: http-80
      number: 80
      protocol: HTTP
    - name: https-443
      number: 443
      protocol: HTTPS
  location: MESH_EXTERNAL
  resolution: DNS
  exportTo:
    - .

Gateway:

kind: Gateway
apiVersion: networking.istio.io/v1alpha3
metadata:
  name: egress-gw-mdc-fluent-bit-${distrib.release.version}
  labels:
    product: mdc
    type: resource
spec:
  servers:
    - hosts:
        - ${mdc.fluent-bit-forwarder-sidecar.istio.egress.common.host}
      port:
        name: http-8089
        number: 8089
        protocol: HTTP
  selector:
    app: mdc-egress-${NAMESPACE}
    istio: mdc-egress-${NAMESPACE}

VirtualService:

kind: VirtualService
apiVersion: networking.istio.io/v1alpha3
metadata:
  name: egress-vs-mdc-fluent-bit-${distrib.release.version}
  labels:
    app: mdc-egress
    type: resource
spec:
  hosts:
    - ${mdc.fluent-bit-forwarder-sidecar.istio.egress.common.host}
  gateways:
    - mesh
    - egress-gw-mdc-fluent-bit-${distrib.release.version}
  http:
    - match:
        - gateways:
            - mesh
          port: 80
      rewrite:
        authority: ${mdc.fluent-bit-forwarder-sidecar.istio.egress.common.host}
      route:
        - destination:
            host: egress-svc-mdc-${distrib.release.version}
            port:
                number: 8089
      retries:
        attempts: ${mdc.istio.egress.common.http.retries.attempts}
        perTryTimeout: ${mdc.istio.egress.common.http.retries.timeout}
        retryOn: gateway-error,connect-failure,refused-stream
      timeout: ${mdc.istio.egress.common.http.request.timeout}
    - match:
        - gateways:
            - egress-gw-mdc-fluent-bit-${distrib.release.version}
          port: 8089
      route:
        - destination:
            host: ${mdc.fluent-bit-forwarder-sidecar.istio.egress.common.host}
            port:
              number: 443
  exportTo:
    - .

EnvoyFilter:

kind: EnvoyFilter
apiVersion: networking.istio.io/v1alpha3
metadata:
  name: egress-ef-mdc-fluent-bit-${distrib.release.version}
  labels:
    app: mdc-egress
    type: resource
spec:
  configPatches:
  - applyTo: HTTP_FILTER
    match:
      context: GATEWAY
      listener:
        filterChain:
          filter:
            name: envoy.http_connection_manager
        portNumber: 8089 # порт из gateway. при запросах на данный порт будет вызываться ott-sidecar для проставления токена
    patch:
      operation: INSERT_BEFORE
      value:
        name: envoy.ext_authz
        config:
          failure_mode_allow: false # запрещает трафик при недоступности сервиса авторизации
          grpc_service:
            google_grpc:
              stat_prefix: ext_authz
              target_uri: unix:/mnt/ott-uds-socket/ott.socket # используется для взаимодействия с ott-sidecar
            timeout: 2s # на фактическую производительность влияние не оказывает, но необходимо для корректного запуска
          with_request_body:
            allow_partial_message: true
            max_request_bytes: 65536
  workloadSelector:
    labels:
      app: mdc-egress-${NAMESPACE}
      istio: mdc-egress-${NAMESPACE}

Компонент Аудит AUDT, взаимодействие mTLS + One-Time Password (OTP) / OTT (OTTS).

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

ServiceEntry:

kind: ServiceEntry
apiVersion: networking.istio.io/v1alpha3
metadata:
  name: egress-se-mdc-audit-${distrib.release.version}
  labels:
    app: mdc-egress
    type: resource
spec:
  hosts:
    - ${mdc.istio.egress.common.audit.host}
  ports:
    - name: https-443
      number: 443
      protocol: HTTPS
    - name: http-80
      number: 80
      protocol: HTTP
  location: MESH_EXTERNAL
  resolution: DNS
  exportTo:
    - .

Gateway:

kind: Gateway
apiVersion: networking.istio.io/v1alpha3
metadata:
  name: egress-gw-mdc-audit-${distrib.release.version}
  labels:
    product: mdc
    type: resource
spec:
  servers:
    - hosts:
        - ${mdc.istio.egress.common.audit.host}
      port:
        name: http-8091
        number: 8091
        protocol: HTTP
  selector:
    app: mdc-egress-${NAMESPACE}
    istio: mdc-egress-${NAMESPACE}

VirtualService:

kind: VirtualService
apiVersion: networking.istio.io/v1alpha3
metadata:
  name: egress-vs-mdc-audit-${distrib.release.version}
  labels:
    app: mdc-egress
    type: resource
spec:
  hosts:
    - ${mdc.istio.egress.common.audit.host}
  gateways:
    - mesh
    - egress-gw-mdc-audit-${distrib.release.version}
  http:
    - match:
        - gateways:
            - mesh
          port: 80
      rewrite:
        authority: ${mdc.istio.egress.common.audit.host}
      route:
        - destination:
            host: egress-svc-mdc-${distrib.release.version}
            port:
                number: 8091
    - match:
        - gateways:
            - egress-gw-mdc-audit-${distrib.release.version}
          port: 8091
      route:
        - destination:
            host: ${mdc.istio.egress.common.audit.host}
            port:
              number: 443
  exportTo:
    - .
 

DestinationRule:

kind: DestinationRule
apiVersion: networking.istio.io/v1alpha3
metadata:
  name: egress-dr-mdc-audit-${distrib.release.version}
  labels:
    app: mdc-egress
    type: resource
spec:
  exportTo:
    - .
  host: ${mdc.istio.egress.common.audit.host}
  trafficPolicy:
    loadBalancer:
      simple: ROUND_ROBIN
    portLevelSettings:
      - port:
          number: 443
        tls:
          caCertificates: /etc/istio/egressgateway-ca-certs/CA.crt
          clientCertificate: /etc/istio/egressgateway-certs/tls.crt
          mode: MUTUAL
          privateKey: /etc/istio/egressgateway-certs/tls.key
          sni: ${mdc.istio.egress.common.audit.host}
 

Компонент Corax (KFKA), взаимодействие mTLS + TCP/kafka.

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

egress-dr-mdc-kafka.yaml:

{% if lookup('custom_vars', 'tls_kafka_connection') | default(false) | bool == true %}
{% for custom_url in (vars['mdc.ose.istio.egress.kafka.bootservers'] | string).split(';') %}
  {% set custom_url_list = custom_url.split(':') %}
  {% set kafka_host = custom_url_list[0] %}
  {% set port = custom_url_list[2] %}
---
kind: DestinationRule
{% if ('beta1' in lookup('custom_vars', 'apiVersion_dr')|lower)|bool  %}
apiVersion: networking.istio.io/v1beta1
{% else %}
apiVersion: networking.istio.io/v1alpha3
{% endif %}
metadata:
  name: egress-dr-mdc-kafka-{{ loop.index }}-{{lookup('custom_vars', 'distrib.release.version')}}
  labels:
    app: mdc-egress-${NAMESPACE}
    istio: mdc-egress-${NAMESPACE}
    type: resource
spec:
  exportTo:
    - .
  host: {{ kafka_host }}
  trafficPolicy:
    loadBalancer:
      simple: ROUND_ROBIN
    portLevelSettings:
      - port:
          number: {{ port }}
        tls:
          caCertificates: /vault/secrets/certs/egressgateway-ca-certs/CA.crt
          clientCertificate: /vault/secrets/certs/egressgateway-certs/tls.crt
          privateKey: /vault/secrets/certs/egressgateway-certs/tls.key
          mode: MUTUAL
  {% if ('synapse3' in lookup('custom_vars', 'service_mesh_type')|lower)|bool  %}
  workloadSelector:
    matchLabels:
      app: mdc-egress-${NAMESPACE}
  {% endif %}
{% endfor %}
{% endif %}

egress-gw-mdc-kafka.yaml:

{% if ('beta1' in lookup('custom_vars', 'apiVersion_gw')|lower)|bool  %}
apiVersion: networking.istio.io/v1beta1
{% else %}
apiVersion: networking.istio.io/v1alpha3
{% endif %}
kind: Gateway
metadata:
  name: egress-gw-mdc-kafka-{{lookup('custom_vars', 'distrib.release.version')}}
  labels:
    app: mdc-egress-${NAMESPACE}
    istio: mdc-egress-${NAMESPACE}
spec:
  selector:
    app: mdc-egress-${NAMESPACE}
    istio: mdc-egress-${NAMESPACE}
  servers:
    {%- for custom_url in (vars['mdc.ose.istio.egress.kafka.bootservers'] | string).split(';') %}
    {%- set custom_url_list = custom_url.split(':') %}
    {%- set kafka_host = custom_url_list[0] %}
    {%- set ip = custom_url_list[1] %}
    {%- set port = custom_url_list[2] %}
    {%- set internal_port = custom_url_list[3] %}
    - hosts:
      - {{ kafka_host }}
      port:
        name: tcp-{{ internal_port }}
        number: {{ internal_port }}
        {% if lookup('custom_vars', 'tls_kafka_connection') | default(false) | bool == true %}
        protocol: TLS
        {% else %}
        protocol: TCP
        {% endif %}
      {% if lookup('custom_vars', 'tls_kafka_connection') | default(false) | bool == true %}
      tls:
        mode: ISTIO_MUTUAL
      {% endif %}
    {%- endfor %}

egress-se-mdc-kafka.yaml:

{% for custom_url in (vars['mdc.ose.istio.egress.kafka.bootservers'] | string).split(';') %}
  {% set custom_url_list = custom_url.split(':') %}
  {% set kafka_host = custom_url_list[0] %}
  {% set ip = custom_url_list[1] %}
  {% set port = custom_url_list[2] %}
  {% set internal_port = custom_url_list[3] %}
---
kind: ServiceEntry
{% if ('beta1' in lookup('custom_vars', 'apiVersion_se')|lower)|bool  %}
apiVersion: networking.istio.io/v1beta1
{% else %}
apiVersion: networking.istio.io/v1alpha3
{% endif %}
metadata:
  name: egress-se-mdc-kafka-{{ loop.index }}-{{lookup('custom_vars', 'distrib.release.version')}}
  labels:
    app: mdc-egress-${NAMESPACE}
    istio: mdc-egress-${NAMESPACE}
spec:
  addresses:
    - {{ ip }}
  exportTo:
    - .
  hosts:
    - {{ kafka_host }}
  location: MESH_EXTERNAL
  ports:
    - name: tcp-{{ port }}
      number: {{ port }}
      protocol: TCP
    - name: tcp-{{ internal_port }}
      number: {{ internal_port }}
      protocol: TCP
  resolution: DNS
{% endfor %}

egress-vs-mdc-kafka.yaml:

{% for custom_url in (vars['mdc.ose.istio.egress.kafka.bootservers'] | string).split(';') %}
  {% set custom_url_list = custom_url.split(':') %}
  {% set kafka_host = custom_url_list[0] %}
  {% set ip = custom_url_list[1] %}
  {% set port = custom_url_list[2] %}
  {% set internal_port = custom_url_list[3] %}
---
kind: VirtualService
{% if ('beta1' in lookup('custom_vars', 'apiVersion_vs')|lower)|bool  %}
apiVersion: networking.istio.io/v1beta1
{% else %}
apiVersion: networking.istio.io/v1alpha3
{% endif %}
metadata:
  name: egress-vs-mdc-kafka-{{ loop.index }}-{{lookup('custom_vars', 'distrib.release.version')}}
  labels:
    app: mdc-egress-${NAMESPACE}
    istio: mdc-egress-${NAMESPACE}
spec:
  exportTo:
    - .
  gateways:
    - mesh
    - egress-gw-mdc-kafka-{{lookup('custom_vars', 'distrib.release.version')}}
  hosts:
    - {{ kafka_host }}
  tcp:
    - match:
        - destinationSubnets:
            - {{ ip }}
          gateways:
            - mesh
          port: {{ port }}
      route:
        - destination:
            host: egress-svc-mdc-{{lookup('custom_vars', 'distrib.release.version')}}
            port:
              number: {{ internal_port }}
            {% if lookup('custom_vars', 'tls_kafka_connection') | default(false) | bool == true %}
            subset: egresstls
            {% endif %}
    - match:
        - destinationSubnets:
            - {{ ip }}
          gateways:
            - egress-gw-mdc-kafka-{{lookup('custom_vars', 'distrib.release.version')}}
          port: {{ internal_port }}
      route:
        - destination:
            host: {{ kafka_host }}
            port:
              number: {{ port }}
{% endfor %}

Сервис витрины, взаимодействие mTLS 1.2.

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

ServiceEntry:

kind: ServiceEntry
apiVersion: networking.istio.io/v1alpha3
metadata:
  name: egress-se-mdc-rspit-${distrib.release.version}
  labels:
    app: mdc-egress
    type: resource
spec:
  hosts:
    - ${mdc.istio.egress.common.host.rspit_host}
  ports:
    - name: http-80
      number: 80
      protocol: HTTP
    - name: https-443
      number: 443
      protocol: HTTPS
  location: MESH_EXTERNAL
  resolution: DNS
  exportTo:
    - .

Gateway:

kind: Gateway
apiVersion: networking.istio.io/v1alpha3
metadata:
  name: egress-gw-mdc-rspit-${distrib.release.version}
  labels:
    product: mdc
    type: resource
spec:
  servers:
    - hosts:
        - ${mdc.istio.egress.common.host.rspit_host}
      port:
        name: http-8092
        number: 8092
        protocol: HTTP
  selector:
    app: mdc-egress-${NAMESPACE}
    istio: mdc-egress-${NAMESPACE}

VirtualService:

kind: VirtualService
apiVersion: networking.istio.io/v1alpha3
metadata:
  name: egress-vs-mdc-rspit-${distrib.release.version}
  labels:
    app: mdc-egress
    type: resource
spec:
  hosts:
    - ${mdc.istio.egress.common.host.rspit_host}
  gateways:
    - mesh
    - egress-gw-mdc-rspit-${distrib.release.version}
  http:
    - match:
        - gateways:
            - mesh
          port: 80
      rewrite:
        authority: ${mdc.istio.egress.common.host.rspit_host}
      route:
        - destination:
            host: egress-svc-mdc-${distrib.release.version}
            port:
                number: 8092
      retries:
        attempts: ${mdc.istio.egress.common.http.retries.attempts}
        perTryTimeout: ${mdc.istio.egress.common.http.retries.timeout}
        retryOn: gateway-error,connect-failure,refused-stream
      timeout: ${mdc.istio.egress.common.http.request.timeout}
    - match:
        - gateways:
            - egress-gw-mdc-rspit-${distrib.release.version}
          port: 8092
      route:
        - destination:
            host: ${mdc.istio.egress.common.host.rspit_host}
            port:
              number: 443
  exportTo:
    - .
 

DestinationRule:

kind: DestinationRule
apiVersion: networking.istio.io/v1alpha3
metadata:
  name: egress-dr-mdc-rspit-${distrib.release.version}
  labels:
    app: mdc-egress
    type: resource
spec:
  exportTo:
    - .
  host: ${mdc.istio.egress.common.host.rspit_host}
  trafficPolicy:
    loadBalancer:
      simple: ROUND_ROBIN
    portLevelSettings:
      - port:
          number: 443
        tls:
          caCertificates: /etc/istio/egressgateway-ca-certs/CA.crt
          clientCertificate: /etc/istio/egressgateway-certs/tls.crt
          mode: MUTUAL
          privateKey: /etc/istio/egressgateway-certs/tls.key
          sni: ${mdc.istio.egress.common.host.rspit_host}
 

Примечание

Примечание
Настройка интеграции с компонентами AUTH и MONA осуществляется на стороне данных компонентов в соответствии с их эксплуатационной документацией. Настройки приведены в Руководстве по установке AUTH и Руководстве по установке MONA.

Подготовка дистрибутива потребителя для загрузки справочников в NSIX#

Файлы моделей справочников для импорта необходимо размещать в каталоге package/conf/data/nsix.

Настройка стенда потребителя#

Для добавления нового универсального загрузчика необходимо выполнить следующие этапы (через обновление common-сегмента):

  1. Добавить в environment.json сценарий для запуска сервиса в environment.json:

"playbooks_import": {
...
        "IMPORT_NSIX_PARAMS": {
                "id": 16,
                "description": "Импорт параметров приложения МВ НСИ",
                "dataDir": "nsix"
        }
...
  1. Внести в _global.resources.conf адрес нового загрузчика в формате (через обновление common-сегмента):

global.import.service.nsix.url=http://<INGRESS ХОСТ СЕРВИСА  NSIX>/mdc-api/dictionary/model

Подсказка

Подсказка
Параметр INGRESS ХОСТ СЕРВИСА NSIX необходимо запросить у сопровождения инсталляции NSIX.

  1. Если необходимо выполнить настройка аутентификации, обратитесь к руководству «Универсальный загрузчик» компонента CDJE (раздел «Настройка аутентификации загрузчика на стороне сервиса (или шлюза)»).

Обновление#

Перед обновлением компонента необходимо проверить, что образы с новой версией модуля были размещены в Docker-репозитории, и далее выполнить следующие шаги:

  1. Создать резервную копию основной базы данных NSIX.

  2. В консоли среды контейнеризации открыть раздел WorkloadsDeployments<имя модуля>YAML.

  3. В указанном в пункте 2 разделе найти строку image: и изменить значение хеш-кода на значение, указанное в конфигурационном релизе для нужного модуля.

  4. Сохранить изменения. Если рестарт не начался автоматически, удалить Replication Controller у конфигурации развертывания. Новый Replication Controller начнет старт модуля.

  5. В общем случае могут быть изменены значения переменных. В этом случае необходимо скорректировать их список на основе шаблонов в конфигурационном релизе (Parameters) и заполнить значения в WorkloadsConfig Maps<имя модуля>YAML, а также подставить в Deployments строки, где используются новые переменные, если они есть.

  6. Перезапустить установку в соответствии с правилами автоматизированной установки с использованием Deploy Tools, приведенной в настоящем документе.

Подсказка

Подсказка
При обновлении компонента до новой версии удаление предыдущей версии не требуется.

Удаление#

Для удаления NSIX необходимо удалить все ресурсы его компонентов:

  • ConfigMaps;

  • Secrets;

  • Deployments;

  • Deployment Configs (только в OpenShift);

  • Services;

  • PODs;

  • Routes (только в OpenShift);

  • Схему базы данных.

Для удаления ресурса необходимо подключиться к Kubernetes (или опционально OpenShift) через терминал и выполнить команду:

kubectl -n <имя namespace> delete <тип компонента Kubernetes (или опционально Openshift)> <имя компонента Kubernetes (или опционально Openshift)>

Подсказка

Подсказка
Для подключения рекомендуется использовать Kubectl версии, соответствующей версии Kubernetes. Kubectl является составной частью Kubernetes, устанавливается на рабочей станции.

Для удаления схемы базы данных необходимо открыть клиент для работы с БД, подключиться к серверу БД и выполнить команду:

DROP SCHEMA <имя схемы> CASCADE;

Проверка работоспособности#

  1. При установке с помощью DeployTools задание в Jenkins должно завершиться без ошибок. При наличии ошибки нужно посмотреть лог-файлы и выявлять проблему.

  2. Необходимо убедиться, что в консоли среды контейнеризации в разделе WorkloadsPods все Pods egress/ingress (если он используется) запущены (находятся в статусе Running) и не содержат ошибок.

  3. Необходимо убедиться, что Pods модулей mdc-api, mdc-jobs, mdc-ivs, mdc-kmd, mdc-ui запущены (находятся в статусе Running) и не содержат ошибок, а Pods с таким же именем и названием deploy завершены.

  4. Если Pod содержит ошибку вида CrashLoppBackOff или другую, горящую красным, нужно перейти в лог-файлы этого Pod и выяснить причину ошибки. Работа с данной ошибкой описана в разделе Часто встречающиеся проблемы и пути их устранения настоящего документа.

Успехом развертывания является то, что все сервисы запущены (поднялись все pod).

В случае, если не хватает какой-либо смежной системы, pods начнут писать внутри себя логи, либо перезагружаться, указывая на ошибку. Если такого поведения в процессе не наблюдается, то установка выполнена успешно.

Успешным результатом проверки корректной конфигурации механизмов безопасности является успешный запуск приложения, без применения корректной конфигурации механизмов безопасности приложение не запустится.

Для того что бы удостовериться, что выполненные действия по установке произведены верно, необходимо зайти в UI и перейти на главную страницу NSIX. Если главная страница и наименование логина пользователя на главной странице отображаются, то все действия произведены верно.

Откат#

Процедура отката предполагает откат максимум до предыдущей версии. Обязательные интеграции осуществляются в соответствии с разделами настоящего документа.

Примечание

Примечание
При откате на предыдущую версию обязательные интеграции с компонентами Платформы поддерживают обратную совместимость.

Откат производится путем установки дистрибутива компонента предыдущей версии. Детальное описание приведено в разделе Установка.

Откат системного ПО#

Для отката системного ПО необходимо:

Откат ролевой модели AUTZ#

Для отката ролевой модели AUTZ необходимо следующее:

  1. В разделе «Модули» для модулей ivs-rest, kmd-rest и version-rest загрузить ролевую модель из файлов старой версии (процедура производится аналогично установке новой ролевой модели).

  2. В разделе «Пользователи» перейти в меню и удалить неиспользуемые роли, а также, при необходимости, добавить старые роли, которые в откатываемой версии были удалены.

Откат БД#

Для отката системы к БД более ранней версии компонента необходимо восстановить БД из созданной ранее резервной копии. Создание резервной копии данных и восстановление данных из резервной копии выполняется штатными утилитами (средствами) администрирования БД, такими как pg_dump и pg_restore соответственно. Информация приведена в Руководстве по системному администрированию компонента NSIX.

Часто встречающиеся проблемы и пути их устранения#

Проблемы с кодировкой на стенде#

Для установки кодировки по умолчанию в JVM необходимо добавить в CM nsix-cm-mdc-jobs.unver в параметре JAVA_OPTS значение -Dfile.encoding=UTF-8.

Ошибка CrashLoppBackOff при установке#

Если Pod содержит ошибку вида CrashLoppBackOff или другую, горящую красным, нужно перейти в лог-файлы этого Pod и выяснить причину ошибки.

Причиной ошибки может быть:

  • некорректная ссылка на Docker-образ image;

  • ошибка jdbc-соединения;

  • некорректная модель БД;

  • отсутствие параметра конфигурации;

  • ошибка соединения с AUTZ.

Если Pod нет вовсе, нужно убедиться, что создана конфигурация развертывания (Workloads — Deployments), и в его настройках нажать кнопку Start Rollout.

Затем перейти в раздел Pods и следить за появлением Pods <имя-модуля-deploy> и <имя-модуля>. При появлении ошибки перейти в лог в течение минуты (далее Pod автоматически удаляется) и, скопировав сообщение из лога, проанализировать ошибку.

Если Pods работают, нужно посмотреть логи pod соответствующего компонента на наличие сообщений об ошибках.

Чек-лист валидации установки#

Чек лист валидации установки:

  • проверить в Deployments соответствие количества Pods, также значение метки version должно соответствовать версии системы;

  • статус ReplicationController соответствует статусу Complete;

  • статус Pods соответствует статусу Running;

  • в БД проверить таблицу databasechangelog на соответствие списка изменений схемы;

  • проверить корректность заполнения параметров безопасности, приведенных в разделе Настройка интеграции;

  • проверить корректность заполнения остальных параметров настройки интеграций, приведенных в разделе Настройка интеграции.