Установка#

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

Базовая структура#

{product_name}-{release_version}-${build_version}-distrib.zip
│
├── {product_name}-{release_version}-${build_version}-owned-distrib.zip # дистрибутив программного продукта 
│       ├── ...
│       ├── {product_name}-{release_version}-bin-${build_version}-distrib.zip # бинарные артефакты
│       ├── {product_name}-{release_version}-cfg-${build_version}-distrib.zip # конфигурации развертывания
│       └── ...
├── ...
└── {product_name}-{release_version}-${build_version}-party-distrib.zip # open-source зависимости TDM  

SBOM-спецификация для инвентаризации всех компонентов программного обеспечения как собственных, так и сторонних производителей#

{product_name}-{release_version}-${build_version}-distrib.zip
│
├── {product_name}-{release_version}-${build_version}-owned-distrib.zip # дистрибутив программного продукта 
│       ├── ...
│       ├── {product_name}-{release_version}-bin-${build_version}-cyclonedx-distrib.json # SBOM компонента программного продукта
│       └── ...
├── ...
└── {product_name}-{release_version}-${build_version}-cyclonedx-distrib.json # SBOM программного продукта

SWID-теги для идентификации ПП в процессах учета цифровых активов от момента создания актива до развертывания в среде эксплуатации#

{product_name}-{release_version}-${build_version}-distrib.zip
│
├── {product_name}-{release_version}-${build_version}-owned-distrib.zip
│       ├── ...
│       ├── regid.2021-12.ru.sbertech_{component_name}-{release_version}.swidtag <--- SWID-тег компонента
│       ├── {product_name}-{release_version}-bin-${build_version}-distrib.zip
│       │      ├── ...
│       │      └── regid.2021-12.ru.sbertech_{component_name}-{release_version}.swidtag <--- SWID-тег компонента
│       ├── {product_name}-{release_version}-cfg-${build_version}-distrib.zip
│       │      ├── ...
│       │      └── regid.2021-12.ru.sbertech_{component_name}-{release_version}.swidtag <--- SWID-тег компонента
│       └── ...
├── ...
├── regid.2021-12.ru.sbertech_{product_name}-{release_version}.swidtag <--- SWID-тег продукта
└── ...

Подготовка дистрибутива#

Примечание
Для распаковки дистрибутива воспользуйтесь Jenkins job Merger и Unpacker продукта Platform V DevOps Tools.

  1. Скачайте архив перепакованного дистрибутива на сервер, на котором будет произведена установка.

  2. Распакуйте содержимое архива дистрибутива в папку TDM.

    unzip <название дистрибутива> -d ./TDM
    

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

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

Процедура настройки окружения описана в разделе Настройка окружения.

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

Установка продукта возможна двумя способами:

При помощи Docker compose#

  1. Перейдите в папку TDM/package/conf распакованного дистрибутива из раздела Подготовка дистрибутива данного руководства:

    cd TDM/package/conf
    
  2. Выполните команду сборки образа из дистрибутива. Данный пункт необходимо выполнять при первичной установке, или при необходимости:

    docker-compose --env-file env.template build --no-cache 
    
  3. Выполните команду запуска сервисов:

    docker-compose --env-file env.template up -d
    

Установленный дистрибутив будет готов к работе по истечении примерно 15 минут.

При помощи Helm charts в среде контейнеризации#

Для развертывания предлагается использовать механизм HELM-charts. Манифесты расположены в директории package/conf/helm и содержат HELM-charts и values-файлы для развертывания TDMS.

Предварительная настройка конфигурационных файлов#

Перед началом установки заполните файл ./TDM/package/conf/helm/application/values.yml необходимыми стендозависимыми параметрами.

Инструмент Helm позволяет переопределять значение параметров. Для этого в момент запуска сервисов укажите через ключ -f путь до файла с переопределенными параметрами.

Список переменных и их описание приведено ниже в разделе Список переменных продукта.

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

#### Список секретов для подключения к Docker Registry
imagePullSecrets:
- name: '' # Наименование секрета для подключения к Docker Registry

#### Адрес и путь до образов в Docker Registry
registry: "" # Адрес сервера Docker Registry, например: "registry.docker.local"
registry_path: "" # Путь в registry до единицы развертывания, например: "dev/tdms"

#### Обязательные стендозависимые параметры SecMan/HashiCorp Vault
commonSecman:
  annotations:
    vault.hashicorp.com/namespace: "" 
    vault.hashicorp.com/role: ""

#### Описание ConfigMap, значения переменных указаны в соответствующей таблице ниже с описанием переменных на данной странице
tdmCommon:
  appName: common # Наименование
  enable: true # Флаг, если true, то конфигурация будет развернута на стенде
  envInConfigmap:
    PVWTDM_HOST: ""
tdmKeycloak:
  appName: keycloak
  enable: true
  envInConfigmap:
    PVWTDM_KEYCLOAK_HOST: ""

tdmKafka:
  appName: kafka
  enable: true
  envInConfigmap:
    PVWTDM_KAFKA_BOOTSTRAP_SERVERS: ""

tdmFrontend:
  appName: frontend
  enable: true
  envInConfigmap:
    BASE_HREF: ""

tdmDataHub:
  appName: datahub
  enable: true
  envInConfigmap:
    DH_USERNAME: ""

tdmJira:
  appName: jira
  enable: true
  envInConfigmap:
    PVWTDM_JIRA_API_BASEURL: ""
    PVWTDM_JIRA_UI_URL: ""
    PVWTDM_JIRA_API_PROPS: ""
    PVWTDM_JIRA_API_ISSUE: ""
    PVWTDM_JIRA_USER: ""

tdmPostgreSQL:
  appName: postgresql
  enable: true
  envInConfigmap:
    PVWTDM_DATABASE_SERVERS: ""
    PVWTDM_DATABASE_PARAMS: ""

tdmPostgreSQLNotificationService:
  appName: postgresql-notification-service
  enable: true
  envInConfigmap:
    PVWTDM_NOTIFICATION_SERVICE_DATABASE_NAME: ""
    PVWTDM_NOTIFICATION_SERVICE_DATABASE_USERNAME: ""
    PVWTDM_NOTIFICATION_SERVICE_DATABASE_SCHEMA: ""

tdmPostgreSQLExecutorsService:
  appName: postgresql-executors-service
  enable: true
  envInConfigmap:
    PVWTDM_EXECUTORS_SERVICE_DATABASE_NAME: ""
    PVWTDM_EXECUTORS_SERVICE_DATABASE_USERNAME: ""
    PVWTDM_EXECUTORS_SERVICE_DATABASE_SCHEMA: ""

tdmPostgreSQLExternalHealthcheckService:
  appName: postgresql-external-healthcheck-service
  enable: true
  envInConfigmap:
    PVWTDM_EHS_DATABASE_NAME: ""
    PVWTDM_EHS_DATABASE_USERNAME: ""
    PVWTDM_EHS_DATABASE_SCHEMA: ""

tdmPostgreSQLModelsService:
   appName: postgresql-models-service
   enable: true
   envInConfigmap:
     PVWTDM_MODELS_SERVICE_DATABASE_NAME: ""
     PVWTDM_MODELS_SERVICE_DATABASE_USERNAME: ""
     PVWTDM_MODELS_SERVICE_DATABASE_SCHEMA: ""

tdmPostgreSQLNsiService:
  appName: postgresql-nsi-service
  enable: true
  envInConfigmap:
    PVWTDM_NSI_SERVICE_DATABASE_NAME: ""
    PVWTDM_NSI_SERVICE_DATABASE_USERNAME: ""
    PVWTDM_NSI_SERVICE_DATABASE_SCHEMA: ""

tdmPostgreSQLOrdersService:
  appName: postgresql-orders-service
  enable: true
  envInConfigmap:
    PVWTDM_ORDERS_SERVICE_DATABASE_NAME: ""
    PVWTDM_ORDERS_SERVICE_DATABASE_USERNAME: ""
    PVWTDM_ORDERS_SERVICE_DATABASE_SCHEMA: ""

tdmPostgreSQLPublicApiService:
  appName: postgresql-public-api-service
  enable: true
  envInConfigmap:
    PVWTDM_PAS_DATABASE_NAME: ""
    PVWTDM_PAS_DATABASE_USERNAME: ""
    PVWTDM_PAS_DATABASE_SCHEMA: ""

tdmPostgreSQLRemoteService:
  appName: postgresql-remote-service
  enable: true
  envInConfigmap:
    PVWTDM_REMOTE_SERVICE_DATABASE_NAME: ""
    PVWTDM_REMOTE_SERVICE_DATABASE_USERNAME: ""
    PVWTDM_REMOTE_SERVICE_DATABASE_SCHEMA: ""

tdmPostgreSQLScheduler:
  appName: postgresql-scheduler
  enable: true
  envInConfigmap:
    PVWTDM_SCHEDULER_DATABASE_NAME: ""
    PVWTDM_SCHEDULER_DATABASE_USERNAME: ""
    PVWTDM_SCHEDULER_DATABASE_SCHEMA: ""

tdmPostgreSQLSiService:
  appName: postgresql-si-service
  enable: true
  envInConfigmap:
    PVWTDM_SI_SERVICE_DATABASE_NAME: ""
    PVWTDM_SI_SERVICE_DATABASE_USERNAME: ""
    PVWTDM_SI_SERVICE_DATABASE_SCHEMA: ""

tdmPostgreSQLStatisticService:
  appName: postgresql-statistic-service
  enable: true
  envInConfigmap:
    PVWTDM_STATISTIC_SERVICE_DATABASE_NAME: ""
    PVWTDM_STATISTIC_SERVICE_DATABASE_USERNAME: ""
    PVWTDM_STATISTIC_SERVICE_DATABASE_SCHEMA: ""

tdmPostgreSQLTemplatesService:
  appName: postgresql-templates-service
  enable: true
  envInConfigmap:
    PVWTDM_TEMPLATES_SERVICE_DATABASE_NAME: ""
    PVWTDM_TEMPLATES_SERVICE_DATABASE_USERNAME: ""
    PVWTDM_TEMPLATES_SERVICE_DATABASE_SCHEMA: ""

tdmPostgreSQLUserManagerService:
  appName: postgresql-user-manager-service
  enable: true
  envInConfigmap:
    PVWTDM_UMS_DATABASE_NAME: ""
    PVWTDM_UMS_DATABASE_USERNAME: ""
    PVWTDM_UMS_DATABASE_SCHEMA: ""

#### Описание Deployment, Service, Ingress
tdmMlService:
  appName: ml-service # Наименование имени сервиса
  enable: true # Флаг, если true, то Deployment будет развернута на стенде
  image:
    sha256: "" # Хэш сумма образа сервиса ml-service
  secman:
    podSecmanAnnotations: {} # Заполняется, если SecMan/HashiCorp Vault включен через опцию enable. По умолчанию: enable: true

tdmNotificationService:
  appName: notification-service
  enable: true
  image:
    sha256: ""
  secman:
    podSecmanAnnotations: {}
     
tdmApiGateway:
  appName: api-gateway
  enable: true
  image:
    sha256: ""

  ingress:
    enable: true # Флаг, если true, то ingress будет развернута на стенде
    className: nginx # Контроллер, который будет обрабатывать запросы
    tls: # Заполняется опционально, если нужно защищенное соединение
      - hosts:
          - "" # Наименование хоста, на который будут отправляться клиентские запросы
        secretName: "" # Наименование секрета с ключами и типом tls
    hosts: # Список хостов, которые будет слушать ingress и обрабатывать запросы
    - host: "" # Наименование хоста
      paths:
      - path: /api/gateway(/|$)(.*)
        pathType: ImplementationSpecific
        port: 5556

tdmApiGatewayInfo:
  appName: api-gateway-info
  enable: true
  ingress:
    enable: true
    className: nginx
    tls:
      - hosts:
          - ""
        secretName: ""
    hosts:
    - host: ""
      paths:
      - path: /gateway-info(/|$)(.*)
        pathType: ImplementationSpecific
        port: 5556

tdmExecutorsService:
  appName: executors-service
  enable: true
  image:
    sha256: ""
  secman:
    podSecmanAnnotations: {}

tdmExternalHealthcheckService:
  appName: external-healthcheck-service
  enable: true
  image:
    sha256: ""
  secman:
    podSecmanAnnotations: {}

tdmGeneratorsService:
  appName: generators-service
  enable: true
  image:
    sha256: ""

tdmModelsService:
  appName: models-service
  enable: true
  image:
    sha256: 
  secman:
    podSecmanAnnotations: {}

tdmNsiService:
  appName: nsi-service
  enable: true
  image:
    sha256: ""
  secman:
    podSecmanAnnotations: {}

tdmOrdersService:
  appName: orders-service
  enable: true
  image:
    sha256: ""
  secman:
    podSecmanAnnotations: {}

tdmPublicApiService:
  appName: public-api-service
  enable: true
  image:
    sha256: ""
  secman:
    podSecmanAnnotations: {}

tdmRemoteService:
  appName: remote-service
  enable: true
  image:
    sha256: ""
  secman:
    podSecmanAnnotations: {}

tdmScheduler:
  appName: scheduler
  enable: true
  image:
    sha256: 
  secman:
    podSecmanAnnotations: {}

tdmSiService:
  appName: si-service
  enable: true
  image:
    sha256: ""
  secman:
    podSecmanAnnotations: {}

tdmStatisticService:
  appName: statistic-service
  enable: true
  image:
    sha256: ""
  secman:
    podSecmanAnnotations: {}

tdmTemplatesService:
  appName: templates-service
  enable: true
  image:
    sha256: ""
  secman:
    podSecmanAnnotations: {}

tdmTicketService:
  appName: ticket-service
  enable: true
  image:
    sha256: ""
  secman:
    podSecmanAnnotations: {}

tdmUserManagerService:
  appName: user-manager-service
  enable: true
  image:
    sha256: ""
  secman:
    podSecmanAnnotations: {}

tdmAdminClient:
  appName: admin-client
  enable: true
  image:
    sha256: ""
  ingress:
    enable: true
    className: nginx
    hosts:
    - host: ""
      paths:
      - path: /admin(/|$)(.*)
        pathType: ImplementationSpecific
        port: 8000

tdmThinClient:
  appName: thin-client
  enable: true
  image:
    sha256: ""
  ingress:
    enable: true
    className: nginx
    hosts:
    - host: ""
      paths:
      - path: (/|$)(.*)
        pathType: ImplementationSpecific
        port: 8000

Конфигурация продукта для настройки инструментов управления трафиком#

Перед тем, как начать настойку, необходимо развернуть Ingress Gateway и Egress Gateway, заполнив шаблон (замените <...> своими данными):

Deployment.yaml (istio-ingressgateway)

kind: Deployment
apiVersion: apps/v1
metadata:
  name: istio-ingressgateway
  labels:
    app: istio-ingressgateway
    istio: ingressgateway
spec:
  selector:
    matchLabels:
      app: istio-ingressgateway
      istio: ingressgateway
  template:
    metadata:
      labels:
        app: istio-ingressgateway
        istio: ingressgateway
      annotations:
        prometheus.io/path: /stats/prometheus
        prometheus.io/port: '15020'
        prometheus.io/scrape: 'true'
        sidecar.istio.io/inject: 'false'
    spec:
      restartPolicy: Always
      schedulerName: default-scheduler
      terminationGracePeriodSeconds: 30
      securityContext: {}
      containers:
        - resources:
            limits:
              cpu: <лимиты_по_cpu>
              memory: <лимиты_по_памяти>
            requests:
              cpu: <запросы_по_cpu>
              memory: <запросы_по_памяти>
          readinessProbe:
            httpGet:
              path: /healthz/ready
              port: 15021
              scheme: HTTP
            initialDelaySeconds: 1
            timeoutSeconds: 1
            periodSeconds: 2
            successThreshold: 1
            failureThreshold: 30
          terminationMessagePath: /dev/termination-log
          name: istio-proxy
          env:
            - name: PROXY_CONFIG
              value: |
                {"discoveryAddress":"<имя_сервиса_istiod_контрольной_панели>.<имя_проекта_контрольной_панели>.svc:15012"}
            - name: JWT_POLICY
              value: third-party-jwt
            - name: PILOT_CERT_PROVIDER
              value: istiod
            - name: CA_ADDR
              value: '<имя_сервиса_istiod_контрольной_панели>.<имя_проекта_контрольной_панели>.svc:15012'
            - name: NODE_NAME
              valueFrom:
                fieldRef:
                  apiVersion: v1
                  fieldPath: spec.nodeName
            - name: POD_NAME
              valueFrom:
                fieldRef:
                  apiVersion: v1
                  fieldPath: metadata.name
            - name: POD_NAMESPACE
              valueFrom:
                fieldRef:
                  apiVersion: v1
                  fieldPath: metadata.namespace
            - name: INSTANCE_IP
              valueFrom:
                fieldRef:
                  apiVersion: v1
                  fieldPath: status.podIP
            - name: HOST_IP
              valueFrom:
                fieldRef:
                  apiVersion: v1
                  fieldPath: status.hostIP
            - name: SERVICE_ACCOUNT
              valueFrom:
                fieldRef:
                  apiVersion: v1
                  fieldPath: spec.serviceAccountName
            - name: ISTIO_META_WORKLOAD_NAME
              value: istio-ingressgateway
            - name: ISTIO_META_OWNER
              value: >-
                kubernetes://apis/apps/v1/namespaces/<имя_проекта>/deployments/istio-ingressgateway
            - name: ISTIO_META_MESH_ID
              value: cluster.local
            - name: TRUST_DOMAIN
              value: cluster.local
            - name: ISTIO_META_UNPRIVILEGED_POD
              value: 'true'
            - name: ISTIO_META_CLUSTER_ID
              value: Kubernetes
          securityContext:
            capabilities:
              drop:
                - ALL
            privileged: false
            readOnlyRootFilesystem: true
            allowPrivilegeEscalation: false
          ports:
            - containerPort: 15021
              protocol: TCP
            - containerPort: 8080
              protocol: TCP
            - containerPort: 8443
              protocol: TCP
            - containerPort: 31400
              protocol: TCP
            - containerPort: 15443
              protocol: TCP
            - name: http-test
              containerPort: 15090
              protocol: TCP
          imagePullPolicy: Always
          volumeMounts:
            - name: istio-envoy
              mountPath: /etc/istio/proxy
            - name: istiod-ca-cert
              mountPath: /var/run/secrets/istio
            - name: istio-token
              readOnly: true
              mountPath: /var/run/secrets/tokens
            - name: istio-data
              mountPath: /var/lib/istio/data
            - name: socket
              mountPath: /var/run/secrets/workload-spiffe-uds
            - name: podinfo
              mountPath: /etc/istio/pod
            - name: ingressgateway-certs
              readOnly: true
              mountPath: /etc/istio/ingressgateway-certs
            - name: ingressgateway-ca-certs
              readOnly: true
              mountPath: /etc/istio/ingressgateway-ca-certs
          terminationMessagePolicy: File
          image: <ссылка_на_образ proxy из состава дистрибутива SSM>
          args:
            - proxy
            - router
            - '--domain'
            - $(POD_NAMESPACE).svc.cluster.local
            - '--proxyLogLevel=warning'
            - '--proxyComponentLogLevel=misc:error'
            - '--log_output_level=default:info'
      volumes:
        - name: istiod-ca-cert
          configMap:
            name: istio-ca-root-cert
            defaultMode: 256
        - name: podinfo
          downwardAPI:
            items:
              - path: labels
                fieldRef:
                  apiVersion: v1
                  fieldPath: metadata.labels
              - path: annotations
                fieldRef:
                  apiVersion: v1
                  fieldPath: metadata.annotations
            defaultMode: 256
        - name: istio-envoy
          emptyDir: {}
        - name: istio-data
          emptyDir: {}
        - name: istio-token
          projected:
            sources:
              - serviceAccountToken:
                  audience: istio-ca
                  expirationSeconds: 43200
                  path: istio-token
            defaultMode: 256
        - name: socket
          emptyDir: {}
        - name: ingressgateway-certs
          secret:
            secretName: istio-ingressgateway-certs
            defaultMode: 256
            optional: true
        - name: ingressgateway-ca-certs
          secret:
            secretName: istio-ingressgateway-ca-certs
            defaultMode: 256
            optional: true
      dnsPolicy: ClusterFirst

Deployment.yaml (istio-egressgateway)

kind: Deployment
apiVersion: apps/v1
metadata:
  name: istio-egressgateway
  labels:
    app: istio-egressgateway
    istio: egressgateway
spec:
  selector:
    matchLabels:
      app: istio-egressgateway
      istio: egressgateway
  template:
    metadata:
      labels:
        app: istio-egressgateway
        istio: egressgateway
      annotations:
        prometheus.io/path: /stats/prometheus
        prometheus.io/port: '15020'
        prometheus.io/scrape: 'true'
        sidecar.istio.io/inject: 'false'
    spec:
      restartPolicy: Always
      schedulerName: default-scheduler
      terminationGracePeriodSeconds: 30
      containers:
        - resources:
            limits:
              cpu: <лимиты_по_cpu>
              memory: <лимиты_по_памяти>
            requests:
              cpu: <запросы_по_cpu>
              memory: <запросы_по_памяти>
          readinessProbe:
            httpGet:
              path: /healthz/ready
              port: 15021
              scheme: HTTP
            initialDelaySeconds: 1
            timeoutSeconds: 1
            periodSeconds: 2
            successThreshold: 1
            failureThreshold: 30
          terminationMessagePath: /dev/termination-log
          name: istio-proxy
          env:
            - name: PROXY_CONFIG
              value: |
                {"discoveryAddress":"<имя_сервиса_istiod_контрольной_панели>.<имя_проекта_контрольной_панели>.svc:15012"}
            - name: JWT_POLICY
              value: third-party-jwt
            - name: PILOT_CERT_PROVIDER
              value: istiod
            - name: CA_ADDR
              value: '<имя_сервиса_istio_контрольной_панели>.<имя_проекта_контрольной_панели>.svc:15012'
            - name: NODE_NAME
              valueFrom:
                fieldRef:
                  apiVersion: v1
                  fieldPath: spec.nodeName
            - name: POD_NAME
              valueFrom:
                fieldRef:
                  apiVersion: v1
                  fieldPath: metadata.name
            - name: POD_NAMESPACE
              valueFrom:
                fieldRef:
                  apiVersion: v1
                  fieldPath: metadata.namespace
            - name: INSTANCE_IP
              valueFrom:
                fieldRef:
                  apiVersion: v1
                  fieldPath: status.podIP
            - name: HOST_IP
              valueFrom:
                fieldRef:
                  apiVersion: v1
                  fieldPath: status.hostIP
            - name: SERVICE_ACCOUNT
              valueFrom:
                fieldRef:
                  apiVersion: v1
                  fieldPath: spec.serviceAccountName
            - name: ISTIO_META_WORKLOAD_NAME
              value: istio-egressgateway
            - name: ISTIO_META_OWNER
              value: >-
                kubernetes://apis/apps/v1/namespaces/<имя-проекта>/deployments/istio-egressgateway
            - name: ISTIO_META_MESH_ID
              value: cluster.local
            - name: TRUST_DOMAIN
              value: cluster.local
            - name: ISTIO_META_UNPRIVILEGED_POD
              value: 'true'
            - name: ISTIO_META_CLUSTER_ID
              value: Kubernetes
          securityContext:
            capabilities:
              drop:
                - ALL
            privileged: false
            readOnlyRootFilesystem: true
            allowPrivilegeEscalation: false
          ports:
            - containerPort: 8080
              protocol: TCP
            - containerPort: 8443
              protocol: TCP
            - name: http-test
              containerPort: 15090
              protocol: TCP
          imagePullPolicy: Always
          volumeMounts:
            - name: istio-envoy
              mountPath: /etc/istio/proxy
            - name: istiod-ca-cert
              mountPath: /var/run/secrets/istio
            - name: istio-token
              readOnly: true
              mountPath: /var/run/secrets/tokens
            - name: istio-data
              mountPath: /var/lib/istio/data
            - name: socket
              mountPath: /var/run/secrets/workload-spiffe-uds
            - name: podinfo
              mountPath: /etc/istio/pod
            - name: egressgateway-certs
              readOnly: true
              mountPath: /etc/istio/egressgateway-certs
            - name: egressgateway-ca-certs
              readOnly: true
              mountPath: /etc/istio/egressgateway-ca-certs
          terminationMessagePolicy: File
          image: <ссылка_на_образ>
          args:
            - proxy
            - router
            - '--domain'
            - $(POD_NAMESPACE).svc.cluster.local
            - '--proxyLogLevel=warning'
            - '--proxyComponentLogLevel=misc:error'
            - '--log_output_level=default:info'
      volumes:
        - name: istiod-ca-cert
          configMap:
            name: istio-ca-root-cert
            defaultMode: 256
        - name: podinfo
          downwardAPI:
            items:
              - path: labels
                fieldRef:
                  apiVersion: v1
                  fieldPath: metadata.labels
              - path: annotations
                fieldRef:
                  apiVersion: v1
                  fieldPath: metadata.annotations
            defaultMode: 256
        - name: istio-envoy
          emptyDir: {}
        - name: istio-data
          emptyDir: {}
        - name: istio-token
          projected:
            sources:
              - serviceAccountToken:
                  audience: istio-ca
                  expirationSeconds: 43200
                  path: istio-token
            defaultMode: 256
        - name: socket
          emptyDir: {}
        - name: egressgateway-certs
          secret:
            secretName: istio-egressgateway-certs
            defaultMode: 256
            optional: true
        - name: egressgateway-ca-certs
          secret:
            secretName: istio-egressgateway-ca-certs
            defaultMode: 256
            optional: true
      dnsPolicy: ClusterFirst
Ingress Gateway. Настройка инструментов управления входного трафика#

В файл с настроенными стендозависимыми параметрами, добавьте в корень следующие строчки:

tdmIstio:
   ingress:
      gateway:
         enable: true 
         server:
            host: "" # В "" необходимо указать наименование хоста, на который пришел запрос.
Egress Gateway. Настройка инструментов управления выходного трафика#

Для всех внешних сервисов необходимо создать разрешающее правило, добавив в корень следующие строчки:

tdmIstio:
  egress:
    <название внешнего сервиса>: # Пример настройки правила для HTTPS-взаимодействия.
       serviceEntry:
       enable: true
       exportTo:
          - .
       hosts:
          - "" # В "" укажите наименование хоста, к которому будут поступать обращения.
       location: MESH_EXTERNAL
       ports:
          - name: tls-secman
            number: 8443
            protocol: https
       resolution: DNS
Настройка сервисного прокси#

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

tdmIstio:
  deployment:
    annotations:
      k8s.v1.cni.cncf.io/networks: istio-cni
      sidecar.istio.io/status: >-
        {"initContainers":["istio-validation"],"containers":["istio-proxy"],"volumes":["workload-socket","istio-envoy","istio-data","istio-token","istiod-ca-cert","istio-podinfo"],"imagePullSecrets":null,"revision":"<имя_проекта_контрольной_панели>"} 
      sidecar.istio.io/proxyImage: <ссылка_на_образ proxy из состава дистрибутива SSM> # Опциональный параметр (следует удалить, если необходимо использовать образ по умолчанию).
      istio.io/rev: <имя_проекта_контрольной_панели>

Настройка nginx#

Основные правила запуска Nginx#

Ниже предоставлен список правил, которые необходимо учесть при запуске Nginx:

  • Nginx должен быть развернут в docker контейнере с той же подсетью, что и другие сервисы, для возможности корректной работы upstream. Необходимая подсеть: pvwtdm_net.

  • При запуске Nginx необходимо осуществить монтирование конфигурационного файла по пути /etc/nginx/servers/synteta.conf.

  • В основном конфигурационном файле Nginx должны быть включены дополнительные пользовательские настройки Nginx: include servers/*;.

    Пример файла nginx.conf, где данная настройка добавлена:

    worker_processes  1;
    pid /tmp/nginx.pid;
       
    events {
        worker_connections  1024;
    }
       
    include streams/*;
       
    http {
        include       mime.types;
        default_type  application/octet-stream;
      
        sendfile        on;
        keepalive_timeout  65;
      
        proxy_buffer_size           128k;
        proxy_buffers               4 256k;
        proxy_busy_buffers_size     256k;
            
        include servers/*; <----
    }
    

Запуск Nginx#

Примечание
Для запуска Nginx используется свой образ, который в дальнейшем указывается в команде запуска вместо переменной {nginx_image_name}.

  1. Перейдите в папку package распакованного дистрибутива.

  2. Создайте образ synteta-nginx, выполнив команду:

    docker build -t {nginx_image_name} -f docker/synteta-nginx/Dockerfile .
    
  3. Запустите контейнер Nginx по HTTP:

    docker run --net pvwtdm_net -d -p80:50002 -v package/docker/synteta-nginx/synteta.conf:/etc/nginx/servers/synteta.conf --name synteta-nginx {nginx_image_name}
    
  4. Запустите контейнера Nginx по HTTPS:

    1. Создайте папку ssl и скопируйте в нее ключи (открытый (self-ssl.crt) и закрытый (self-ssl.key)).

    2. В папке ssl создайте файл ssl.conf и заполните его следующим содержимым:

      listen 443 default_server ssl;                     # Включаем прослушивание 443 порта для SSL
       
      ssl_certificate      /etc/nginx/ssl/self-ssl.crt;  # Путь до сертификаты с открытым ключом
      ssl_certificate_key  /etc/nginx/ssl/self-ssl.key;  # Путь до файла с закрытым ключом
      
    3. Запустите контейнер:

      docker run --net pvwtdm_net -d -p443:443 -v <Путь до папки ssl>:/etc/nginx/ssl -v package/docker/synteta-nginx/synteta.conf:/etc/nginx/servers/synteta.conf --name synteta-nginx {nginx_image_name}
      

Установка#

  1. Перейдите в папку TDM/package/conf распакованного дистрибутива из раздела Подготовка дистрибутива данного руководства:

    cd TDM/package/conf
    
  2. Выполните команду запуска сервисов:

    helm upgrade --install <Наименование инсталляции> helm/application -n <наименование пространства имен> -f <путь до файла с переопределенными параметрами>
    

Установленный дистрибутив будет готов к работе по истечении примерно 10 минут.

Приложение для проверки#

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

Инструкции по заведению пользователя и назначению групп на пользователя:

Для проверки выполненных действий перейдите по следующему адресу: http(s)://{{ PVWTDM_HOST }}/, где: {{ PVWTDM_HOST }} — доменное имя (или IP-адрес) стенда, по которому будет доступна инсталляция TDMS.

Список переменных продукта#

Обратите внимание
Все необходимые параметры настраиваются на этапе подготовки к установке. После установки дополнительные настройки со стороны системного администратора (DevOps) не требуются.

Обязательные#

Название переменной

Описание

BASE_IMAGE

Ссылка на базовый образ в docker registry для сборки сервисов. Доступные ОС для развертывания указаны в разделе Системные требования

OS

Значение из двух вариантов: alt или sbl в зависимости от установленной ОС: Альт 10 или Platform V SberLinux OS Server соответственно

PVWTDM_VERSION

Версия устанавливаемой системы, значение данной переменной используется для тегирования образа

PVWTDM_PROTOCOL

Протокол, по которому доступен TDMS (HTTP или HTTPS)

PVWTDM_HOST

Доменное имя (или внешний IP-адрес) стенда, по которому будет доступен TDMS

PVWTDM_DATABASE_SERVERS

Список хостов (или IP-адресов) и параметров для подключения к СУБД, используемой как СПО программного компонента. Серверы перечисляются через запятую

PVWTDM_DATABASE_PARAMS

Параметры подключения к СУБД, используемой как СПО программного компонента (Опционально)

PVWTDM_R2DBC_CONNECTION_PROTOCOL

Протокол подключения для R2DBC. По умолчанию: r2dbc:pool:postgresql

PVWTDM_R2DBC_DATABASE_PARAMS

Параметры подключения к СУБД для R2DBC, используемой как СПО программного компонента (Опционально)

TRUSTED_CERTS_PATH

Путь до директории с доверенными сертификатами, пример значения переменной: /tmp/certs/*.crt

PVWTDM_EXECUTORS_SERVICE_DATABASE_NAME

Наименование базы данных для хранения данных сервиса executors-service

PVWTDM_EXECUTORS_SERVICE_DATABASE_USERNAME

Пользователь, под учетной записью которого будет произведена авторизация в базе данных сервиса executors-service

PVWTDM_EXECUTORS_SERVICE_DATABASE_PASSWORD

Пароль для аутентификации пользователя в базе данных сервиса executors-service

PVWTDM_EXECUTORS_SERVICE_DATABASE_SCHEMA

Наименование схемы в базе данных сервиса executors-service, в которой будут созданы таблицы, триггеры, счетчики и т.д., необходимые для работы сервиса

PVWTDM_EHS_DATABASE_NAME

Наименование базы данных для хранения данных сервиса external-healthcheck-service

PVWTDM_EHS_DATABASE_USERNAME

Пользователь, под учетной записью которого будет произведена авторизация в базе данных сервиса external-healthcheck-service

PVWTDM_EHS_DATABASE_PASSWORD

Пароль для аутентификации пользователя в базе данных сервиса external-healthcheck-service

PVWTDM_EHS_DATABASE_SCHEMA

Наименование схемы в базе данных сервиса external-healthcheck-service, в которой будут созданы таблицы, триггеры, счетчики и т.д., необходимые для работы сервиса

PVWTDM_MODELS_SERVICE_DATABASE_NAME

Наименование базы данных для хранения данных сервиса models-service

PVWTDM_MODELS_SERVICE_DATABASE_USERNAME

Пользователь, под учетной записью которого будет произведена авторизация в базе данных сервиса models-service

PVWTDM_MODELS_SERVICE_DATABASE_PASSWORD

Пароль для аутентификации пользователя в базе данных сервиса models-service

PVWTDM_MODELS_SERVICE_DATABASE_SCHEMA

Наименование схемы в базе данных сервиса models-service, в которой будут созданы таблицы, триггеры, счетчики и т.д., необходимые для работы сервиса

PVWTDM_ML_DATABASE_NAME

Наименование базы данных для хранения данных сервиса ml-service

PVWTDM_ML_DATABASE_USERNAME

Пользователь, под учетной записью которого будет произведена авторизация в базе данных сервиса ml-service

PVWTDM_ML_DATABASE_PASSWORD

Пароль для аутентификации пользователя в базе данных сервиса ml-service

PVWTDM_ML_DATABASE_SCHEMA

Наименование схемы в базе данных сервиса ml-service, в которой будут созданы таблицы, триггеры, счетчики и т.д., необходимые для работы сервиса

PVWTDM_NOTIFICATION_SERVICE_DATABASE_NAME

Наименование базы данных для хранения данных сервиса notification-service

PVWTDM_NOTIFICATION_SERVICE_DATABASE_USERNAME

Пользователь, под учетной записью которого будет произведена авторизация в базе данных сервиса notification-service

PVWTDM_NOTIFICATION_SERVICE_DATABASE_PASSWORD

Пароль для аутентификации пользователя в базе данных сервиса notification-service

PVWTDM_NOTIFICATION_SERVICE_DATABASE_SCHEMA

Наименование схемы в базе данных сервиса notification-service, в которой будут созданы таблицы, триггеры, счетчики и т.д., необходимые для работы сервиса

PVWTDM_NSI_SERVICE_DATABASE_NAME

Наименование базы данных для хранения данных сервиса nsi-service

PVWTDM_NSI_SERVICE_DATABASE_USERNAME

Пользователь, под учетной записью которого будет произведена авторизация в базе данных сервиса nsi-service

PVWTDM_NSI_SERVICE_DATABASE_PASSWORD

Пароль для аутентификации пользователя в базе данных сервиса nsi-service

PVWTDM_NSI_SERVICE_DATABASE_SCHEMA

Наименование схемы в базе данных сервиса nsi-service, в которой будут созданы таблицы, триггеры, счетчики и т.д., необходимые для работы сервиса

PVWTDM_ORDERS_SERVICE_DATABASE_NAME

Наименование базы данных для хранения данных сервиса orders-service

PVWTDM_ORDERS_SERVICE_DATABASE_USERNAME

Пользователь, под учетной записью которого будет произведена авторизация в базе данных сервиса orders-service

PVWTDM_ORDERS_SERVICE_DATABASE_PASSWORD

Пароль для аутентификации пользователя в базе данных сервиса orders-service

PVWTDM_ORDERS_SERVICE_DATABASE_SCHEMA

Наименование схемы в базе данных сервиса orders-service, в которой будут созданы таблицы, триггеры, счетчики и т.д., необходимые для работы сервиса

PVWTDM_PAS_DATABASE_NAME

Наименование базы данных для хранения данных сервиса public-api-service

PVWTDM_PAS_DATABASE_USERNAME

Пользователь, под учетной записью которого будет произведена авторизация в базе данных сервиса public-api-service

PVWTDM_PAS_DATABASE_PASSWORD

Пароль для аутентификации пользователя в базе данных сервиса public-api-service

PVWTDM_PAS_DATABASE_SCHEMA

Наименование схемы в базе данных сервиса public-api-service, в которой будут созданы таблицы, триггеры, счетчики и т.д., необходимые для работы сервиса

PVWTDM_REMOTE_SERVICE_DATABASE_NAME

Наименование базы данных для хранения данных сервиса remote-service

PVWTDM_REMOTE_SERVICE_DATABASE_USERNAME

Пользователь, под учетной записью которого будет произведена авторизация в базе данных сервиса remote-service

PVWTDM_REMOTE_SERVICE_DATABASE_PASSWORD

Пароль для аутентификации пользователя в базе данных сервиса remote-service

PVWTDM_REMOTE_SERVICE_DATABASE_SCHEMA

Наименование схемы в базе данных сервиса remote-service, в которой будут созданы таблицы, триггеры, счетчики и т.д., необходимые для работы сервиса

PVWTDM_SCHEDULER_DATABASE_NAME

Наименование базы данных для хранения данных сервиса scheduler

PVWTDM_SCHEDULER_DATABASE_USERNAME

Пользователь, под учетной записью которого будет произведена авторизация в базе данных сервиса scheduler

PVWTDM_SCHEDULER_DATABASE_PASSWORD

Пароль для аутентификации пользователя в базе данных сервиса scheduler

PVWTDM_SCHEDULER_DATABASE_SCHEMA

Наименование схемы в базе данных сервиса scheduler, в которой будут созданы таблицы, триггеры, счетчики и т.д., необходимые для работы сервиса

PVWTDM_SI_SERVICE_DATABASE_NAME

Наименование базы данных для хранения данных сервиса si-service

PVWTDM_SI_SERVICE_DATABASE_USERNAME

Пользователь, под учетной записью которого будет произведена авторизация в базе данных сервиса si-service

PVWTDM_SI_SERVICE_DATABASE_PASSWORD

Пароль для аутентификации пользователя в базе данных сервиса si-service

PVWTDM_SI_SERVICE_DATABASE_SCHEMA

Наименование схемы в базе данных сервиса si-service, в которой будут созданы таблицы, триггеры, счетчики и т.д., необходимые для работы сервиса

PVWTDM_STATISTIC_SERVICE_DATABASE_NAME

Наименование базы данных для хранения данных сервиса statistic-service

PVWTDM_STATISTIC_SERVICE_DATABASE_USERNAME

Пользователь, под учетной записью которого будет произведена авторизация в базе данных сервиса statistic-service

PVWTDM_STATISTIC_SERVICE_DATABASE_PASSWORD

Пароль для аутентификации пользователя в базе данных сервиса statistic-service

PVWTDM_STATISTIC_SERVICE_DATABASE_SCHEMA

Наименование схемы в базе данных сервиса statistic-service, в которой будут созданы таблицы, триггеры, счетчики и т.д., необходимые для работы сервиса

PVWTDM_TEMPLATES_SERVICE_DATABASE_NAME

Наименование базы данных для хранения данных сервиса templates-service

PVWTDM_TEMPLATES_SERVICE_DATABASE_USERNAME

Пользователь, под учетной записью которого будет произведена авторизация в базе данных сервиса templates-service

PVWTDM_TEMPLATES_SERVICE_DATABASE_PASSWORD

Пароль для аутентификации пользователя в базе данных сервиса templates-service

PVWTDM_TEMPLATES_SERVICE_DATABASE_SCHEMA

Наименование схемы в базе данных сервиса templates-service, в которой будут созданы таблицы, триггеры, счетчики и т.д., необходимые для работы сервиса

PVWTDM_UMS_DATABASE_NAME

Наименование базы данных для хранения данных сервиса user-manager-service

PVWTDM_UMS_DATABASE_USERNAME

Пользователь, под учетной записью которого будет произведена авторизация в базе данных сервиса user-manager-service

PVWTDM_UMS_DATABASE_PASSWORD

Пароль для аутентификации пользователя в базе данных сервиса user-manager-service

PVWTDM_UMS_DATABASE_SCHEMA

Наименование схемы в базе данных сервиса user-manager-service, в которой будут созданы таблицы, триггеры, счетчики и т.д., необходимые для работы сервиса

PVWTDM_KAFKA_BOOTSTRAP_SERVERS

Список хостов (или IP-адресов) для подключения к брокеру сообщений. Указывается список хостов через запятую

PVWTDM_KAFKA_SECURITY_PROTOCOL

Протокол, по которому будет осуществлено подключение к брокеру Kafka. Доступные протоколы: PLAINTEXT (используется по умолчанию), SSL

PVWTDM_KAFKA_SSL_KEYSTORE_LOCATION

Местоположение файла хранилища ключей (только для SSL)

PVWTDM_KAFKA_SSL_KEYSTORE_PASSWORD

Пароль для файла хранилища ключей (только для SSL)

PVWTDM_KAFKA_SSL_TRUSTSTORE_LOCATION

Местоположение файла хранилища доверенных сертификатов (только для SSL)

PVWTDM_KAFKA_SSL_TRUSTSTORE_PASSWORD

Пароль для файла хранилища доверенных сертификатов. Если пароль не установлен, настроенный файл хранилища доверенных сертификатов по-прежнему будет использоваться, но проверка целостности будет отключена (только для SSL)

PVWTDM_KAFKA_SSL_KEY_PASSWORD

Пароль закрытого ключа в файле хранилища ключей или ключ PEM, указанный в PVWTDM_KAFKA_SSL_KEYSTORE_LOCATION

PVWTDM_KAFKA_SSL_ENDPOINT_IDENTIFICATION_ALGORITHM

Алгоритм идентификации конечной точки для проверки имени хоста сервера с использованием сертификата сервера (только для SSL, по умолчанию: https)

PVWTDM_KEYCLOAK_PROTOCOL

Протокол, по которому доступен Keycloak (HTTP или HTTPS)

PVWTDM_KEYCLOAK_HOST

Хост и порт (или IP-адрес и порт), по которому доступен KeyCloak

PVWTDM_KEYCLOAK_AUTH_PATH

Путь до стартовой страницы keycloak

PVWTDM_KEYCLOAK_REALM

Проектная область в KeyCloak

PVWTDM_KEYCLOAK_CLIENT_SERVER_APP

Клиент для сервисных взаимодействий

PVWTDM_KEYCLOAK_SECRET_SERVER_APP

Secret клиента KeyCloak (server-app), см. раздел Настройка окружения

PVWTDM_KEYCLOAK_CLIENT_SYNTETA_WEB

Клиент для пользователей

PVWTDM_KEYCLOAK_MANAGER_USERNAME

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

PVWTDM_KEYCLOAK_MANAGER_PASSWORD

Пароль пользователя с правами на поиск и просмотр пользователей и групп

PVWTDM_CONFIG_IMPORT_FILES

Список конфигурационных файлов для донастройки работы микросервисов. Например: classpath:conf/audit.yml

Для работоспособности функции предиктивной генерации тестовых данных#

Название переменной

Описание

KAFKA_CA_CERT

Путь до файла доверенного сертификата, формат файла pem

KAFKA_PUB_KEY

Путь до файла с открытым ключом (public key), формат файла pem

KAFKA_PRIVATE_KEY

Путь до файла с закрытым ключом (private key), формат файла pem

KAFKA_CONNECTION_TYPE

Протокол, по которому будет осуществлено подключение к брокеру Kafka. Доступные протоколы: PLAINTEXT, SSL

KAFKA_PRIVATE_KEY_PASSWORD

Пароль к закрытому ключу (private key)

KAFKA_BOOTSTRAP_SERVERS

Список хостов (или IP-адресов) для подключения к брокеру сообщений. Указывается список хостов через запятую

KAFKA_GROUP_ID

Группа зарегистрированных клиентов в Kafka (пример, ml-service)

KAFKA_TOPIC

Топик Kafka, по которому будут прослушиваться сообщения

DB_DSN

Строка подключения к базе данных

DB_ML_SCHEMA

Схема базы данных, к которой подключается ml-service

CLIENT_ID

Идентификатор клиента в Keycloak для межсервисного взаимодействия

GRANT_TYPE

Тип аутентификации. Поддерживаемая на текущий момент аутентификация - client_credentials, необходимо указать явно

CLIENT_SECRET

SecretCLIENT_ID для межсервисного взаимодействия

KEY_CLOAK_URL

URL-адрес для точки подключения токена

TEMPLATE_SERVICE_URL

Полный адрес для взаимодействия с templates-service, точка подключения по автогенерации

CRON_TRIGGER_HOUR

Расписание запуска cron job, указывается в часах

CRON_TRIGGER_MINUTE

Расписание запуска cron job, указывается в минутах

DB_DRIVER

Драйвер базы данных компонента программного компонента ml-service

DB_USER

Пользователь базы данных компонента программного компонента ml-service

DB_PASSWORD

Пароль от пользователя базы данных компонента программного компонента ml-service

DB_HOST

Хост (или IP-адрес) для подключения к базе данных компонента программного компонента ml-service

DB_NAME

Наименование базы данных компонента программного компонента ml-service

DB_ML_SCHEMA

Схема базы данных компонента программного компонента ml-service

Опционально#

Название переменной

Описание

BASE_HREF

Базовый адрес, который автоматически добавляется ко всем относительным ссылкам для TDMS

PVWTDM_TENANT

Наименование тенанта

PVWTDM_PUBLIC_API_DOC_URL

Ссылка на документацию public-api-service

Настройка отправки аудита#

Сохранение событий аудита в файл:

Название переменной

Описание

PVWTDM_AUDIT_FILE_PATH

Путь до директории, в которую будут записываться события аудита

PVWTDM_AUDIT_FILE_MAX_HISTORY

Срок хранения файлов событий аудита. По умолчанию 7 дней

Отправка событий аудита через Logstash:

Название переменной

Описание

PVWTDM_AUDIT_LOGSTASH_BOOTSTRAP_SERVER

Адреса сервера Logstash (host:port) для отправки событий аудита

Отправка событий аудита через Kafka:

Название переменной

Описание

PVWTDM_AUDIT_KAFKA_BOOTSTRAP_SERVER

Адреса сервера Kafka (host:port) для отправки событий аудита

PVWTDM_<Название микросервиса>_AUDIT_KAFKA_CLIENT_ID

Идентификатор клиента Kafka для отправки событий аудита (необязательный параметр, по умолчанию client_id = название микросервиса)

PVWTDM_AUDIT_KAFKA_TOPIC

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

PVWTDM_AUDIT_KAFKA_SECURITY_PROTOCOL

Протокол, используемый для связи с брокерами Kafka. Допустимые значения: PLAINTEXT, SSL (по умолчанию: PLAINTEXT)

PVWTDM_AUDIT_KAFKA_SSL_KEYSTORE_LOCATION

Местоположение файла хранилища ключей (только для SSL)

PVWTDM_AUDIT_KAFKA_SSL_KEYSTORE_PASSWORD

Пароль для файла хранилища ключей (только для SSL)

PVWTDM_AUDIT_KAFKA_SSL_TRUSTSTORE_LOCATION

Местоположение файла хранилища доверенных сертификатов (только для SSL)

PVWTDM_AUDIT_KAFKA_SSL_TRUSTSTORE_PASSWORD

Пароль для файла хранилища доверенных сертификатов. Если пароль не установлен, настроенный файл хранилища доверенных сертификатов по-прежнему будет использоваться, но проверка целостности будет отключена (только для SSL)

PVWTDM_AUDIT_KAFKA_SSL_KEY_PASSWORD

Пароль закрытого ключа в файле хранилища ключей или ключ PEM, указанный в PVWTDM_AUDIT_KAFKA_SSL_KEYSTORE_LOCATION

PVWTDM_AUDIT_KAFKA_SSL_ENDPOINT_IDENTIFICATION_ALGORITHM

Алгоритм идентификации конечной точки для проверки имени хоста сервера с использованием сертификата сервера (только для SSL, по умолчанию: https)

Параметры отправки оповещений пользователям#

Название переменной

Описание

PVWTDM_EMAIL_HOST

Хост почтового сервера для отправки оповещений пользователям

PVWTDM_EMAIL_PORT

Порт почтового сервера для отправки оповещений пользователям

PVWTDM_EMAIL_USERNAME

Пользователь почтового сервера для отправки оповещений пользователям

PVWTDM_EMAIL_PASSWORD

Пароль пользователя почтового сервера для отправки оповещений пользователям

PVWTDM_EMAIL_ADDRESS

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

Параметры для создания запроса на генератор#

Данная функциональность применима только для интеграции с Jira.

Название переменной

Описание

PVWTDM_JIRA_USER

Имя пользователя для создания запроса на генератор от его имени в Jira

PVWTDM_JIRA_PASS

Пароль пользователя для создания запроса на генератор от его имени в Jira

PVWTDM_JIRA_UI_URL

URL для пользовательского перехода на созданный запрос в Jira

PVWTDM_JIRA_API_BASEURL

Ссылка на API для взаимодействия с Jira на уровне сервиса

PVWTDM_JIRA_API_PROPS

Endpoint для получения списка полей из Jira для заполнения формы создания запроса на генератор

PVWTDM_JIRA_API_ISSUE

Endpoint для создания запроса на генератор в Jira

Параметры для работы со справочниками КЭ#

Название переменной

Описание

DH_USERNAME

Имя пользователя для авторизации в сервисе, обеспечивающем доступ к справочнику КЭ (например, DataHub)

DH_PASSWORD

Пароль для аутентификации пользователя в сервисе, обеспечивающем доступ к справочнику КЭ (например, DataHub)

Параметры для интеграции с системой поведенческой аналитики#

Название переменной

Описание

CLICK_STREAM_SEND_EVENT_ENABLED

Настройка, позволяющая включать (true)/выключать (false) отправку событий бэкенд сервисов в сервис поведенческой аналитики

CLICK_STREAM_BASE_URL

Ссылка на API для взаимодействия с сервисом поведенческой аналитики

Подключение виджета#

Название переменной

Описание

PVWTDM_WIDGET_URL

Адрес сервера, откуда будут подгружены файлы из переменных PVWTDM_WIDGET, PVWTDM_WIDGET_MAIN, PVWTDM_WIDGET_RUNTIME

PVWTDM_WIDGET_HOST_AGENT

Адрес API виджета

PVWTDM_WIDGET

Путь до файла swwidget.chunk.js

PVWTDM_WIDGET_MAIN

Путь до файла swwidget.main.chunk.js

PVWTDM_WIDGET_RUNTIME

Путь до файла swwidget.runtime-main.chunk.js

Интеграция с SSDP#

Название переменной

Описание

PVWTDM_SSDP_UI_ADMIN_URL

Абсолютный URL для доступа к сервису ssd-ui-admin (из состава Platform V OneWork, SSD)

PVWTDM_SSDP_TOOL_KEY

Ключ инструмента. Уникальное значение для инсталляции продукта TDMS

PVWTDM_SSDP_MENU_KEY

Ключ, по которому открывается вкладка в меню компонента TMS

Настройка отображения результатов от системы мониторинга SPAC#

Название переменной

Описание

PVWTDM_SPAC_URL

Ссылка на SPAC, центр управления интеграционными полигонами, отслеживания состояния, получения уведомления об инцидентах и других видах событий на тестовых стендах

SPAC_TIMEOUT_VALUE

Устанавливает время в милисекундах таймаута запроса к SPAC, по умолчанию 2000.

Для работоспособности функциональности глобального поиска#

Название переменной

Описание

PVWTDM_TEMPLATE_SERVICE_CLEAR_SEARCH_INDEX_CRON

Настройка периода очистки поисковых индексов Шаблона. По умолчанию равен 0 0 1 * * *.

Для работоспособности сервиса scheduler#

Название переменной

Описание

PVWTDM_RESPONSE_AUTHORIZATION_ENABLE

Включение или отключение авторизации на отправку ответа от внешних систем исполнителей работы генератора в TDMS

Настройка интерфейса системы администратором инсталляции#

Название переменной

Описание

PVWTDM_CONFIRM_UNSTABLE_GENERATE

Признак необходимости отображения диалогового окна для подтверждения генерации при нестабильности. Значение true или false

PVWTDM_GLOBAL_SEARCH_ENABLE

Признак необходимости включения работы глобального поиска. Значение true или false. По умолчанию значение true

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

Название переменной

Описание

PVWTDM_KAFKA_CONSUMER_TOPIC

Топик Kafka для считывания информации от микросервисов

PVWTDM_KAFKA_PRODUCER_TOPIC

Топик Kafka для публикации информации, сгенерированной LLM

PVWTDM_GIGA_AUTH_TOKEN

Токен аутентификаци для API GigaChat

PVWTDM_GIGA_MODEL

Используемая модель в рамках интеграции с LLM. По умолчанию GigaChat-Pro

PVWTDM_GIGA_VERIFY_SSL

Флаг SSL валидации. По умолчанию false

PVWTDM_GIGA_SCOPE

Контекст использования LLM. По умолчанию GIGACHAT_API_CORP

Шифрование входных и выходных параметров запускаемых задач#

Название переменной

Описание

PVWTDM_PARAMETER_ENCRYPTION_ENABLED

Включить/выключить шифрование входных и выходных параметров

PVWTDM_PARAMETER_ENCRYPTION_KEY

Ключ шифрования

PVWTDM_PARAMETER_ENCRYPTION_SAULT

Дополнительная „соль“ шифрования (должна иметь длину не менее 4 символов)