Настройка deploy pipeline#
Заполнение файла environment.json#
Добавить в репозиторий ci02606786_mailbridge_common_{стенд} в файл environment.json (находится в корне репозитория) следующий блок, указан стенд {стенд}. В файле должен быть указанный в примере блок с названием нужного стенда. По умолчанию там будет только блок "__default". Любые изменения в этом файле требуют автореконфигурации Job (запуск без указания параметров).
Под файлом описание только тех параметров, которые нужно изменить исходя из стенда
"{стенд}": {
"openshiftDeploySafeMode": "true",
"jdkAt": "JDK_1.8_121",
"mvnAt": "Maven 3.6.2",
"testsJob": "",
"testsJobMvn": "",
"addMarker": "true",
"efsReleaseBranch": "develop",
"jobLogCopy": "true",
"fpConfigUrlJobParam": "false",
"fpDistribUrlJobParam": "false",
"ansiColorDisable": "false",
"importSupTimeout": 600000,
"markerName": "dev",
"exta_ssh_params": "ANSIBLE_SSH_ARGS='-o ControlMaster=no -o StrictHostKeyChecking=no -o UserKnownHostsFile=/{стенд}/null'",
"playbooks_extra": {
"FP_CONF_CHECK": {
"id": 1
},
"JOB_LOG_COPY": {
"id": 2
},
"WAS_FPI_UTIL_CLEARING": {
"id": 3
},
"WAS_FPI_UTIL_JOB_CONF": {
"id": 4
},
"NGINX_CONF_RELOAD": {
"id": 5
},
"ANSI_COLOR_DISABLE": {
"id": 6
}
},
"credentials": {
"SshKeyCreds": "ssh_ci00159827",
"UserPassCreds": "tuz_ci00159827",
"openshiftOpsPasswordsCred": "vault_cred_openshift_ops",
"openssl_cipher": "aes-256-cbc"
},
"envNotification": "true",
"nexus_host": "хост_nexus",
"openshiftRegistry": "хост_docker_registry",
"doNotCheckInventoryOnNull": "true",
"openShiftPrecheck": "off",
"openShiftPrecheckEnabled": "false",
"openShiftPrecheckFail": "false",
"forcePreCheck": "false",
"openShiftPostCheck": "false",
"openshiftMultiClusters": "true",
"openshiftMultiClustersNames": [],
"nexusMavenMetadataAuth": "false",
"useMavenForDownload": "false",
"scriptsCustom": {
"gitSshUrlFull": "ssh://git@хост_bitbucket:7999/ci00428440/ci00380023_efs_scripts.git",
"gitCreds": "ssh_ci00159827",
"gitRepoName": "ci00380023_efs_scripts"
},
"openShiftNewPasswords": "true",
"openshiftDeploySteps": {
"openShiftPostCheck": "false",
"postCheckConfigs": "false",
"deployProtocol": "true",
"archiveConfigs": "true",
"deployConfigMaps": "true",
"deployApps": "true",
"deployJKS": "true",
"deployHPA": "false",
"deployServices": "true",
"deployRoutes": "true",
"deploySecrets": "true"
},
"playbooks_fpi": {
"OPENSHIFT_DEPLOY": {
"id": 1
},
"OPENSHIFT_UPDATE_REPLICAS": {
"id": 2
},
"OPENSHIFT_INGRESS_EGRESS_DEPLOY": {
"id": 3
},
"OPENSHIFT_UPDATE_ISTIO_REPLICAS": {
"id": 4
},
"OPENSHIFT_EXTRACT_DUMP": {
"id": 5
},
"MIGRATION_FP_CONF": {
"id": 6
}
}
}
Описание параметров:
Параметр |
Описание |
|---|---|
credentials.SshKeyCreds |
ID credential из плагина Jenkins credentials, в котором находится приватная часть SSH ключа ТУЗ DevOps для BitBucket |
credentials.UserPassCreds |
ID credential из плагина Jenkins credentials, в котором располагается логин и пароль ТУЗ DevOps |
credentials.openshiftOpsPasswordsCred |
ID credential из плагина Jenkins credentials, в котором располагается пароль для расшифровки _passwords.conf |
scriptsCustom.gitCreds |
ID credential из плагина Jenkins credentials, в котором находится приватная часть SSH ключа ТУЗ DevOps для BitBucket |
scriptsGitUrl |
(*) Опционально. url на репозиторий, где размещаются технические скрипты job установки/удаления |
(*) Необходим для исправной работы джобы удаления дистрибутива в случае, если суффикс у репозитория ФП отличается от "dev" или "mmv". Если не будет указан - job Jenkins будет завершаться с ошибками загрузки скриптов pipeline из репозитория, так как будет искать их по адресу по умолчанию. Данный параметр может быть также добавлен в Jenkins env: см. раздел Автоматизированное удаление сервиса с использованием Deploy Tools п. Настройка Jenkins задачи
Заполнение файла _global.resources.conf#
Во избежание ошибок установки, необходимо поправить некоторые незаполненные параметры в файле ci02606786_mailbridge_common_{стенд}\installer\system\efs\config\parameters_global.resources.conf Заполнить параметры произвольными значениями, например:
# адрес балансировщика без протокола и порта
# mm
global.default.nlb_mm.host=dummy
# ii
global.default.nlb_ii.host=dummy
# bh
global.default.nlb_bh.host=dummy
global.import.service.dcgn.url=dummy
Заполнение файла multiClusters.json#
Добавить в репозиторий ci02606786_mailbridge_common_{стенд} в файл multiClusters.json (находится в корне репозитория) следующее содержимое, одну запись на каждый кластер. Любые изменения в этом файле требуют автореконфигурации Job (запуск без указания параметров).
{
"datacenters": {
"{придумать_название_кластера_для_Jenkins}": {
"openshiftCluster": "https://api.openshift.com:6443",
"openshiftSATokenCred": "ST_OpenShiftToken_tribe-sy-mail-{стенд}-03",
"openshiftProjectName": "os-project-name",
"openshiftControlPlane": "control-plane-name",
"openshiftControlPlaneIstiodService": "istiod-service-name",
"openshiftWebConsole": "https://console-openshift.com/k8s/cluster/projects/tribe-sy-mail-{стенд}-03",
"openshiftNewRoute": "dummy",
"openshiftAppsDomain": "dummy",
"openshiftRoutersFQDN": [
{"name": "adapter", "host": "mailbridge-adapter-geo.openshift.com"},
{"name": "front", "host": "mailbridge-front-geo.openshift.com"}
],
"overrides": []
}
}
}
Описание параметров:
Параметр |
Описание |
Обязательность |
|---|---|---|
openshiftCluster |
Имя хоста и порт API OpenShift кластера |
да |
openshiftControlPlane |
Имя Istio control plane. Доступен просмотр в настройках проекта OpenShift |
да |
openshiftControlPlaneIstiodService |
Адрес istiod сервиса istio Service Mesh |
да |
openshiftNewRoute |
Любое значение, не применяется |
нет |
openshiftProjectName |
Название проекта в OpenShift |
да |
openshiftRoutersFQDN |
Входные endpoint для клиента (Route), формат json (пример выше) |
да |
openshiftSATokenCred |
ID cred'а в Jenkins Credentials, который содержит токен для логина в OpenShift |
да |
openshiftWebConsole |
URL консоли OpenShift |
нет |
openshiftAppsDomain |
Любое значение, не применяется |
нет |
overrides |
Признак, отражающий среду контейнеризации, возможные значения: "[]" - OpenShift |
да |
Точками входа в развернутое приложение будут являться DNS, указанные в параметре openshiftRoutersFQDN
Заполнение файла subsystems.json#
Любые изменения в этом файле требуют автореконфигурации Job (запуск без указания параметров). Добавить в репозиторий ci02606786_mailbridge_common_{стенд} в файл subsystems.json (лежит в корне) следующий блок. Описание других АС можно удалить. Должно остаться только __default и mailbridge.
"MAILBRIDGE": {
"nexus_repo": "sbt_PROD",
"groupId": "sbt_PROD.CI90000141_mail",
"artifactId": "MAIL",
"versionFilter": "SP-",
"classifier": "distrib",
"packaging": "zip",
"fpType": "fp",
"fpi_name": "mail",
"fpi_name_ose": "mail",
"guid": "111",
"deployType": "parallel"
}
Описание параметров:
Параметр |
Описание |
|---|---|
fpType |
Тип ФП, всегда fp |
fpi_name |
Код ФП, всегда mail |
fpi_name_ose |
Префикс поиска набора стендозависимых параметров в именах файлов в репозитории ФП, всегда mail |
nexus_repo |
Название репозитория в NEXUS |
groupId |
Группа ФП в NEXUS, всегда sbt_PROD.CI90000141_mail |
artifactId |
Артефакт ФП в NEXUS, всегда MAIL |
classifier |
Суффикс дистрибутива в NEXUS |
packaging |
Тип архива с дистрибутивом в NEXUS |
versionFilter |
Фильтр версии для показа в параметрах сборки Jenkins |
guid |
ГУИД ФП, не обязателен |
deployType |
тип deploy (manual/parallel). Предпочтительнее параллельный deploy, так как он быстрее. |
Значения параметров "groupId", "artifactId" зависят от реального расположения устанавливаемого дистрибутива в NEXUS.
Данные параметры можно посмотреть в
Заполнение файла openShift.conf#
Состав ключей и значений стендозависимых параметров, содержащихся в дистрибутиве в файлах mail.stand.all.conf и mail.stand.istio.all.conf нужно переопределить в ci02606786_mailbridge_common_{стенд} репозитории. Для этого необходимо добавить все параметры из файлов mail.stand.all.conf и mail.stand.istio.all.conf (можно найти в ci02606786_mailbridge_mail_{стенд} после запуска плейбука MIGRATION_FP_CONF) в файл installer/system/efs/config/parameters/openShift.conf. В примере указаны значения для ДЕВ стенда, для других стендов значения другие. Количество параметров может быть другим по мере доработок, указано для примера. Актуальную версию параметров можно взять из дистрибутива, который планируется к установке.
В дистрибутиве значения всех параметров уже определены. Часть из них является обязательными для переоределения (см. ниже).
Миграция параметров#
При установке обновления необходимо запустить сначала плейбук MIGRATION_FP_CONF. В результате выполнения в репозитории ci02606786_mailbridge_mail_{стенд} в папке log появятся лог файлы mail.stand.all.conf и mail.stand.istio.all.conf, в которых будут рассчитаны новые параметры (WARNING_NEW_KEY), требующие добавления в openShift.conf и настройки. Комментарии к новым параметрам можно найти в репозитории ci02606786_mailbridge_mail_{стенд} в папке config/parameters в файлах mail.stand.all.conf и mail.stand.istio.all.conf.
Обязательные параметры для переопределения#
Параметры из файла mail.stand.istio.all.conf#
########################
# ОБЩИЕ ПАРАМЕТРЫ ISTIO
########################
# Флаг включения аутентификации в контрольной панели istio по ротируемому токену
# config.mail.ose.istio.isThirdPartyJwtMode=false
# Флаг включения использования Istio SE (SberTech Edition)
# config.mail.ose.istio.isSynapseIstioEnabled=false
#######################
# INGRESS
#######################
# Fingerprint сертификата клиента для проверки прав для отправки запросов
# Формат: ["hashSha256_1", "hashSha256_2", ...]
config.mail.ose.istio.ingress.gateway.verifyCertificateHash.certSha256=[\
"4EC7F24500E98C7B5DE7E787826FC22397B13816536C4FEA60C4FC09335E9899",\
"182B0259E6CE70714426BF3675DA36ED51919CEC407B01A0C8AF70481A789D23",\
"D38A640A50A7771927F9B547D1E82993CEC473CC7C6FE5D533ED0FE38F8CEE2C"\
]
#######################
# EGRESS
#######################
# Vault
config.mail.vault.namespace=DEV_DZO
config.mail.vault.role.name=role-ga-secman-mail
# alias в jks, по которому будет производиться поиск ключа для дешифрования файла
config.mail.vault.secret.crypt.item.jks=mailbridge
config.mail.vault.secret.path.passwords=DEV_DZO/A/DEV/MAIL/AE/KV/OS/secret-mail
config.mail.vault.secret.path.crypt=DEV_DZO/A/DEV/MAIL/AE/KV/OS/crypt-key-secret
config.mail.vault.secret.path.egress=DEV_DZO/A/DEV/MAIL/AE/KV/OS/mail-secret-egress-gateway-certs
config.mail.vault.secret.path.ingress=DEV_DZO/A/DEV/MAIL/AE/KV/OS/mail-secret-ingress-gateway-certs
config.mail.vault.secret.path.kafkagw=DEV_DZO/A/DEV/MAIL/AE/KV/OS/mail-secret-kafka-gateway
config.mail.vault.secret.path.ibmmqgw=DEV_DZO/A/DEV/MAIL/AE/KV/OS/mail-secret-go-mq-gateway
Параметры из файла mail.stand.all.conf#
########################################################################################################################
# MAILBRIDGE
########################################################################################################################
# name - имя записи, используется в названиях манифестов, а также для именования файлов сертификатов
# !!! ВАЖНО !!! Лимит по количеству символов поля name = 20 символов
# virtualIp - виртуальный ip для маршрутизации трафика по сетке истио
# egressPort - порт егресс
# externalPort - внешний (реальный) порт
# isTlsOnEgress - признак терминации трафика в TLS на egress (true/false), если false, то трафик терминируется на сервисе
# meshProtocol - протокол маршрутизации по сетке istio, допустимые значения: tls, http, http2, tcp
# externalProtocol - протокол для взаимодействия с внешним хостом (используется в ServiceEntry, допустимые значения: tls, http, http2, tcp
# host - хост, принимает значения:
# - exchange-ews-dev - для записей exchange DEV EWS
# - exchange-smtp-dev - для записей exchange DEV SMTP
# - exchange-imap-dev - для записей exchange DEV IMAP
# - exchange-ews-ift - для записей exchange IFT EWS
# - exchange-smtp-ift - для записей exchange IFT SMTP
# - exchange-imap-ift - для записей exchange IFT IMAP
# - exchange-ews-psi - для записей exchange PSI EWS
# - exchange-smtp-psi - для записей exchange PSI SMTP
# - exchange-imap-psi - для записей exchange PSI IMAP
# - exchange-ews-prom - для записей exchange PROM EWS
# - exchange-smtp-prom - для записей exchange PROM SMTP
# - exchange-imap-prom - для записей exchange PROM IMAP
# - ldap - для записи ldap (может быть только одна запись)
# - mqgw - для записи ibmmq (может быть только одна запись)
# - ceph - для записи ceph (может быть только одна запись)
# - pgsql-pgbouncer - для записей postgresql pgbouncer (может быть больше одной записи для разных хостов кластера)
# - pgsql-liquibase - для записей postgresql liquibase (может быть больше одной записи для разных хостов кластера)
# - kafkagw - для записи kafka (может быть только одна запись)
# - secman-adapter - для записей secman (может быть только одна запись)
# POSTGRESQL:
# - virtualIp в рамках одного хоста на разные порты должен быть одинаковым (на разные хосты должен быть разный)
# - запись с портом pgbouncer помечается host=pgsql-pgbouncer
# - запись с портом liquibase помечается host=pgsql-liquibase
# - количество хостов может быть больше 1 для кластерной СУБД, для этого включить config.mail.ose.mail_db.postgresql.isCluster=true
# СТАТИЧЕСКИЕ IP адреса
# - В поле host добавить запись обязательно с суффиксом '.int'
# - В поле virtualIp добавить реальный внешний ip-адрес
# - В рамках одного IP адреса host должны быть одинаковыми, НО разными для разных внешних IP
# EXCHANGE
# Для хостов exhange дополнительно указываются:
# domains - список почтовых доменов, поддерживаемых указанном хостом
# type - протокол exchange ews, imap, smtp)
# url - урл для отравки писем по протоколу EWS
config.mail.hosts=[\
{ "name": "exchange-ews-dev", "host": "ews.example.ru", "virtualIp": "10.10.10.10", "egressPort": 2500, "externalPort": 443, "isTlsOnEgress": "true", "meshProtocol": "tcp", "externalProtocol": "tcp", "domains": ["@example.ru", "@ex.ru"], "type": "ews", "url": "http://mock-mail.example.ru:443/ews/exchange.asmx" },\
{ "name": "exchange-smtp-dev", "host": "smtp.example.ru", "virtualIp": "10.10.10.13", "egressPort": 2503, "externalPort": 26, "isTlsOnEgress": "false", "meshProtocol": "tcp", "externalProtocol": "tcp", "domains": ["@example.ru", "@ex.ru"], "type": "smtp" },\
{ "name": "exchange-imap-dev", "host": "imap.example.ru", "virtualIp": "10.10.10.15", "egressPort": 2505, "externalPort": 993, "isTlsOnEgress": "true", "meshProtocol": "tcp", "externalProtocol": "tcp", "domains": ["@example.ru", "@ex.ru"], "type": "imap" },\
{ "name": "ldap", "host": "ldap.example.ru", "virtualIp": "10.10.10.16", "egressPort": 2636, "externalPort": 636, "isTlsOnEgress": "true", "meshProtocol": "tcp", "externalProtocol": "tcp" },\
{ "name": "mqgw", "host": "mqgw.example.ru", "virtualIp": "10.10.10.17", "egressPort": 11414, "externalPort": 1414, "isTlsOnEgress": "false", "meshProtocol": "tcp", "externalProtocol": "tcp" },\
{ "name": "ceph", "host": "ceph.example.ru", "virtualIp": "10.10.10.18", "egressPort": 2700, "externalPort": 8000, "isTlsOnEgress": "true", "meshProtocol": "tcp", "externalProtocol": "tcp" },\
{ "name": "pgsql-pgbouncer", "host": "pgsql.example.ru", "virtualIp": "10.10.10.20", "egressPort": 26544, "externalPort": 6544, "isTlsOnEgress": "false", "meshProtocol": "tcp", "externalProtocol": "tcp" },\
{ "name": "pgsql-liquibase", "host": "pgsql.example.ru", "virtualIp": "10.10.10.20", "egressPort": 25432, "externalPort": 5432, "isTlsOnEgress": "false", "meshProtocol": "tcp", "externalProtocol": "tcp" },\
{ "name": "secman-adapter", "host": "secman.example.ru", "virtualIp": "10.10.10.21", "egressPort": 2801, "externalPort": 8443, "isTlsOnEgress": "false", "meshProtocol": "tcp", "externalProtocol": "tcp" },\
{ "name": "kafkagw", "host": "kgw.example.ru", "virtualIp": "10.10.10.23", "egressPort": 19093, "externalPort": 9093, "isTlsOnEgress": "false", "meshProtocol": "tcp", "externalProtocol": "tcp" },\
{ "name": "mq-server-tfs", "host": "mqtfs.example.ru", "virtualIp": "10.10.10.22", "egressPort": 21414, "externalPort": 1414, "isTlsOnEgress": "false", "meshProtocol": "tcp", "externalProtocol": "tcp" },\
{ "name": "okei", "host": "okei.example.ru", "virtualIp": "10.10.10.24", "egressPort": 2900, "externalPort": 443, "isTlsOnEgress": "true", "meshProtocol": "http2", "externalProtocol": "tls" }\
]
#######################
# БИЗНЕС СЕРВИСЫ
#######################
# mail_db
# Схема в СУБД postgreSQL
config.mail.ose.mail_db.postgresql.schema=emc_cfg
# БД в СУБД postgreSQL
config.mail.ose.mail_db.postgresql.database=emcdb
# Роль в СУБД postgreSQL, которая является владельцем объектов в заданной схеме, от которой доступны операции DDL в СУБД
config.mail.ose.mail_db.postgresql.owner=as_admin
# Роль в СУБД postgreSQL, от которой доступны операции DML в СУБД
config.mail.ose.mail_db.postgresql.runner=as_TUZ
# Признак является ли СУБД posstgreSQL сервер кластером
config.mail.ose.mail_db.postgresql.isCluster=false
# mail_back
# ldap база
config.mail.ose.mail_back.ldap.base=cn=accounts,dc=solution,dc=sbt
# поле по которому берется логин пользователя в ldap
config.mail.ose.mail_back.ldap.accountNameKey=uid
# поле по которому берется имя пользователя в ldap
config.mail.ose.mail_back.ldap.displayNameKey=displayName
# ключ для фильтрации поиска в ldap
config.mail.ose.mail_back.ldap.searchFilterPattern="uid={0}"
# Список предполагаемых администраторов системы, CASE_SENSITIVE!!!
config.mail.ose.mail_back.sysadmins.systemAdminsInitList=[\
"ldapLogin1", "ldapLogin2", "ldapLogin3"\
]
# По умолчанию false. Если true - при старте сервиса попытается добавить людей, которые есть в списке systemAdminsInitList,
# Но отсутствуют в системной команде.
# С учетом условий выше, если системная команда пуста по какой то причине - флаг будет проигнорирован и добавятся все из списка
config.mail.ose.mail_back.sysadmins.needCompleteSystemAdmins=false
# mail_go_mq_gateway
# SSL параметры
config.mail.ose.mail_go_mq_gateway.mq.ssl.sslCertAlias=ae
config.mail.ose.mail_go_mq_gateway.mq.ssl.sslCipherSuite=TLS_RSA_WITH_AES_256_CBC_SHA256
# Общие параметры
config.mail.ose.mail_go_mq_gateway.mq.connections.host=vm-test-sy-docker-142.vdc11.sy.dev.sbt
config.mail.ose.mail_go_mq_gateway.mq.connections.port=1414
config.mail.ose.mail_go_mq_gateway.mq.connections.queueManager=M99_EMC_LOC
config.mail.ose.mail_go_mq_gateway.mq.connections.channel=DEV.APP.SVRCONN
config.mail.ose.mail_go_mq_gateway.mq.connections.sslPeerName="CN=commonname,OU=00CA,O=Sberbank of Russia,C=RU"
# ТФС Gateway использует парамеры от mail_go_mq_gateway и перезаписывет нижеописанные:
config.mail.ose.mail_go_mq_gateway_tfs.mq.connections.host=vm-test-sy-docker-124.vdc11.sy.dev.sbt
config.mail.ose.mail_go_mq_gateway_tfs.mq.connections.port=1414
config.mail.ose.mail_go_mq_gateway_tfs.mq.connections.queueManager=M99_EMC_LOC
config.mail.ose.mail_go_mq_gateway_tfs.mq.connections.channel=DEV.APP.SVRCONN
# mail_kafka_gateway
# Формат:
# - group - группа инстансов кафка-gateway, все инстансы смотрят на одну группу кафка серверов
# - hostsPorts - массив хостов и портов серверов кафка
# - restTimeoutMs - таймаут REST запроса. Если не указать - по умолчанию подставится 60000 мс
# - restConnectionsPull - пулл коннектов для REST запроса. Если не указать - по умолчанию подставится 100
# - topics - массив названий топиков, limiterEnabled - включен ли ratelimiter для топика, limitTpm - максимум TPS в минуту (0 - если поставили limiterEnabled=false)
# - пример: [\
# { "group": "group1", "restTimeoutMs": 60000, "restConnectionsPull": 100, "hostsPorts": ["host:port"], "topics": [{"topic": "topic1", "limiterEnabled": "true", "limitTpm": 10}, {"topic": "topic2", "limiterEnabled": "true", "limitTpm": 10}] },\
# { "group": "group2", "hostsPorts": ["host:port"], "topics": [{"topic": "topic1", "limiterEnabled": "true", "limitTpm": 15}, {"topic": "topic2", "limiterEnabled": "true", "limitTpm": 15}] }\
# ]
config.mail.ose.mail_kafka_gateway.kafka.bootstrapServers=[\
{ "group": "group1", "restTimeoutMs": 60000, "restConnectionsPull": 100, "hostsPorts": ["vm-test-sy-kafka-138.vdc11.sy.dev.sbt:9093"], "topics": [{"topic": "topic1", "limiterEnabled": "true", "limitTpm": 15, "groupId": "CI02606786_MailBridge"}, {"topic": "topic2", "limiterEnabled": "true", "limitTpm": 15, "groupId": "CI02606786_MailBridge"}] },\
{ "group": "group2", "restTimeoutMs": 60000, "restConnectionsPull": 100, "hostsPorts": ["vm-test-sy-kafka-138.vdc11.sy.dev.sbt:9093"], "topics": [{"topic": "topic1", "limiterEnabled": "true", "limitTpm": 15, "groupId": "CI02606786_MailBridge"}, {"topic": "topic2", "limiterEnabled": "true", "limitTpm": 15, "groupId": "CI02606786_MailBridge"}] }\
]
# Адаптеры IBM MQ
# Формат - adapterName1:queueIn1:queueOut1:address1/address2/...;adapterName2:queueIn2:queueOut2:address3/address4/...
# - adapterName1 - алиас адаптера IBMMQ
# - queueIn1 - Очередь для запросов на отправку
# - queueOut1 - Очередь для ответных сообщений
# - address1/address2 - Список адресов, входящих в 'белый список', разрешенные адреса для адаптера
# - queueAppealRs - Очередь для ответа на обращение клиента (получение писем)
# - operUID - Признак, по которому mail-go-mq-gateway-tfs определит адрес адаптера, при получении сообщения от ТФС
# - ecmUser,tfsDir,scenarioId - параметры в БД Шлюза обмена E-Mail
# - tfsQueueIn - Очередь для сообщений в сторону ТФС (Команда перекладки файла в ЕСМ)
# - tfsQueueOut - Очередь для ответных сообщений от ТФС (Результат перекладки файла в ЕСМ)
config.mail.ose.ibm_mq_adapters=[\
{ "name": "cod", "queueIn": "EMC.COD.IN", "queueOut": "EMC.COD.OUT", "addresses": ["sa-sbt-ae-test01@sbertech.ru", "sa-sbt-ae-test02@sbertech.ru", "sa-sbt-ae-test03@sbertech.ru"], "tpsLimit": "1" },\
{ "name": "crm-corp", "queueIn": "EMC.CRM.CORP.IN", "queueOut": "EMC.CRM.CORP.OUT", "addresses": ["sa-sbt-ae-test01@sbertech.ru", "sa-sbt-ae-test02@sbertech.ru", "sa-sbt-ae-test03@sbertech.ru"], "tpsLimit": "1", "queueAppealRs": "EMC.CRM.CORP.APPEAL.RS", "operUID": "CRM_CORP_D2L_APPEAL", "ecmUser": "ecmUser", "tfsDir": "tfsDir", "tfsDirCustom": "sa-sbt-ae-test01@sbertech.ru:dir0001", "scenarioId": "scenarioId", "scenarioIdCustom": "sa-sbt-ae-test01@sbertech.ru:001", "tfsQueueIn": "TFS.IN", "tfsQueueOut": "TFS.OUT" },\
{ "name": "crm-retail", "queueIn": "EMC.CRMRET.IN", "queueOut": "EMC.CRMRET.OUT", "addresses": ["sa-sbt-ae-test01@sbertech.ru", "sa-sbt-ae-test02@sbertech.ru", "sa-sbt-ae-test03@sbertech.ru"], "tpsLimit": "1", "queueAppealRs": "EMC.CRM.RET.APPEAL.RS", "operUID": "CRM_RET_D2L_APPEAL", "tfsQueueIn": "TFS.IN", "tfsQueueOut": "TFS.OUT", "destinationName": "tfs_pr_lan", "scenarioId": "PLTFCORE-3800", "ecmUser": "p8admin" },\
]
#SecMan адаптер
config.mail.ose.mail_secman_adapter.secman.url=https://secman-dzo.solution.sbt:8443/v1
config.mail.ose.mail_secman_adapter.secman.props.namespace=DEV_DZO
config.mail.ose.mail_secman_adapter.secman.props.engine-name=A/DEV/MAIL/AE/KV
config.mail.ose.mail_secman_adapter.secman.props.secret-name=dummysecret
# Маппинг ящика и префикса s3 ключа для вложений, сохраняемых в ceph (при получении писем)
# Пример:
# { "test1@sber.ru": "cephKeyPrefix1/", "test2@sber.ru": "cephKeyPrefix2/"}
# или многострочный вариант (после последней записи нет запятой, т.к. заканчивается перечисление):
# {\
# "test1@sber.ru": "cephKeyPrefix1/",\
# "test2@sber.ru": "cephKeyPrefix2/"\
# }
config.mail.ose.mail_files.configmap.s3.write.prefix={\
"test1@sber.ru": "cephKeyPrefix1/",\
"test2@sber.ru": "cephKeyPrefix2/"\
}
# Список опрашиваемых ящиков (чтение писем/обращений клиентов), для которых необходимо включить шифрование
# (после последней записи нет запятой, т.к. заканчивается перечисление):
# {\
# "EMAILGW_TEST01@sigma-exchtest.sbrf.ru": {"read": {"encrypt": "true"}},\
# "EMAILGW_TEST02@sigma-exchtest.sbrf.ru": {"read": {"encrypt": "false"}}\
# }
config.mail.ose.mail_files.configmap.attachments.encryption.overwrite={\
"EMAILGW_TEST02@sigma-exchtest.sbrf.ru": {"read": {"encrypt": "false"}}\
}
#mail_core
# Отправлять ли сообщение при неуспешной проверке ЭП
config.mail.ose.mail_core.signature.sendMessageIfSignatureCheckFailed=true
# Есть ли потребность в конвертировании подписи в base64
config.mail.ose.mail_core.signature.isNeedBase64EncodeSignAndHash=false
# заголовок X-SYSTEM
config.mail.ose.mail_core.signature.okeiProperties.system=ADAPTEXCH
# заголовок X-CHANNEL
config.mail.ose.mail_core.signature.okeiProperties.channel=ADAPTEXCH01
# Параметры СryptoNet
config.mail.ose.mail_core.signature.cryptoNet.kus=SBTJ
config.mail.ose.mail_core.signature.cryptoNet.codeNet=001
# url до АС ОКей
config.mail.ose.mail_core.signature.urls.cryptoService=http://okcs-ift-sigma.ift-gen1-apps.ocp-geo.delta.sbrf.ru:443
#######################
# РЕСУРСЫ
#######################
# mail_kafka_gateway
# Формат:
# - group - группа инстансов кафка-gateway, все инстансы смотрят на одну группу кафка серверов
# - value - значение параметра
config.mail.ose.mail_kafka_gateway.deployment.resources.limits.cpu=[ {"group": "group1", "value": "400m"}, {"group": "group2", "value": "400m"} ]
config.mail.ose.mail_kafka_gateway.deployment.resources.limits.memory=[ {"group": "group1", "value": "800Mi"}, {"group": "group2", "value": "800Mi"}]
config.mail.ose.mail_kafka_gateway.deployment.resources.requests.cpu=[ {"group": "group1", "value": "300m"}, {"group": "group2", "value": "300m"} ]
config.mail.ose.mail_kafka_gateway.deployment.resources.requests.memory=[ {"group": "group1", "value": "600Mi"}, {"group": "group2", "value": "600Mi"} ]
config.mail.ose.mail_kafka_gateway.istio.resources.proxyCPU=[ {"group": "group1", "value": "200m"}, {"group": "group2", "value": "200m"} ]
config.mail.ose.mail_kafka_gateway.istio.resources.proxyCPULimit=[ {"group": "group1", "value": "200m"}, {"group": "group2", "value": "200m"} ]
config.mail.ose.mail_kafka_gateway.istio.resources.proxyMemory=[ {"group": "group1", "value": "512Mi"}, {"group": "group2", "value": "512Mi"} ]
config.mail.ose.mail_kafka_gateway.istio.resources.proxyMemoryLimit=[ {"group": "group1", "value": "512Mi"}, {"group": "group2", "value": "512Mi"} ]
#######################
# КОЛИЧЕСТВО РЕПЛИК ПОДОВ
#######################
# mail_kafka_gateway
# Формат:
# - group - группа инстансов кафка-gateway, все инстансы смотрят на одну группу кафка серверов
# - value - значение параметра
config.mail.ose.mail_kafka_gateway.deployment.replicas=[ {"group": "group1", "value": 1}, {"group": "group2", "value": 1} ]
#######################
# Заглушки при отправке
#######################
# включен ли мок EWS
config.mail.ose.mail_core.env.mockEws.enabled=true
# включен ли мок SMTP
config.mail.ose.mail_core.env.mockSmtp.enabled=true
# минимальное время задержки мока в мс (общий параметр для EWS и SMTP)
config.mail.ose.mail_core.env.mock.delayMin=100
# максимальное время задержки мока в мс (общий параметр для EWS и SMTP)
config.mail.ose.mail_core.env.mock.delayMax=500
Параметры подключения к Active Directory#
Параметры подключения к LDAP приведены в Руководстве по безопасности, в разделе Настройка параметров безопасности