Перейти к содержимому

Развёртывание Камунда.РФ Пульт в Kubernetes с Helm

Требования к внешним сервисам и инфраструктуре

Заголовок раздела «Требования к внешним сервисам и инфраструктуре»

В этом разделе перечислено всё, что должно быть предварительно настроено в вашем окружении перед началом установки Камунда.РФ Пульт.

  • Доступы, адреса, учетные записи (предоставляются после приобретения Камунда.РФ)

    • Docker Registry, в котором лежит образ Камунда.РФ 7

    • Helm Registry, где лежит helm chart для Камунда.РФ 7

  • Kubernetes 1.23+

  • Helm 3.x

  • Доступ к кластеру Kubernetes

Для выполнения инструкций по установке на вашем клиентском компьютере должны быть установлены следующие утилиты.

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

Подготовьте переменные среды:

export REPO_NAME="kamundarf"
export HELM_REGISTRY="oci://$(idn камунда.рф)"
export REGISTRY_USERNAME="ваш-логин"
export REGISTRY_PASSWORD="ваш-пароль"

В этом разделе проверяем подключение к реестру с Helm-чартами.

helm registry login $HELM_REGISTRY --username $REGISTRY_USERNAME --password $REGISTRY_PASSWORD

Создание секрета доступа к Docker Registry Камунда.РФ

Заголовок раздела «Создание секрета доступа к Docker Registry Камунда.РФ»

Чтобы Kubernetes мог скачать образ Камунда.РФ 8 из приватного реестра (docker registry), необходимо создать секрет с данными для аутентификации.

kubectl create secret docker-registry krf-registry-secret \
  --docker-server=$(idn камунда.рф) \
  --docker-username=$REGISTRY_USERNAME \
  --docker-password=$REGISTRY_PASSWORD \
  --docker-email=devops@yourdomain.com

Где

  • $REGISTRY_USERNAME - имя пользователя для доступа к реестру Камунда.РФ

  • $REGISTRY_PASSWORD - пароль пользователя для доступа к реестру Камунда.РФ

Создаем файл pult.yaml, в котором переопределяем стандартные настройки Helm-чарта под наши нужды: указываем наш образ, настраиваем доступ к API и настраиваем ingress для внешнего доступа.

Минимально требуется переопределить следующие переменные:

В конфигурации по умолчанию Helm-чарт производит установку следующих компонентов:

  1. СУБД PostgreSQL — для управления данными

  2. СУБД ClickHouse — как хранилище исторических данных

  3. Брокер Apache Kafka  — для обмена сообщениями между компонентами системы

  4. Crawler — Бэк-энд компонент Камунда.РФ Пульт

  5. Pult — Фронт-энд компонент Камунда.РФ Пульт

  6. Keycloak — OAuth2-сервер для авторизации пользователей

  7. КамундаРФ 7 — как движок бизнес процессов

Любой из компонентов, может быть развернут отдельно, основными компонентами необходимыми для работы системы являются:

  1. Crawler — Бэк-энд компонент Камунда.РФ Пульт

  2. Pult — Фронт-энд компонент Камунда.РФ Пульт

  3. ClickHouse — как хранилище исторических данных

Подготовим файл конфигурации для установки Камунда.РФ Пульт в наш кластер Kubernetes.

pult.yaml

keycloak:
  domain: pult.test

ginger-api-crawler:
  domain: pult.test

camunda-pult:
  domain: pult.test

kamundarf7:
  domain: pult.test

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

helm upgrade --install pult oci://$(idn камунда.рф)/kamundarf/helmstore/pult-all-in-one --values pult.yaml

Внесите изменения в файл pult.yaml

pult.yaml

ginger-api-crawler:
  domain: xpult.test
  crawler:
    servers:
      # Идентификатор сервера
      new-server:
        # Тип сервера Cam7 - Сервер KamundaRF7 Cam8 - Сервер KamundaRF8
        type: Cam7
        name: "Новый сервер" # Название сервера для отображения в интерфейсе
        servers: # Полный путь к RestApi сервера
          - "http://some-external-service/camunda/engine-rest"
        topic: ext-service # Имя топика для обмена сообщениями
        auth: # Способ авторизации сервера
          type: none

Настройки подключения к базам данных PostgreSQL и ClickHouse.

Переменная Описание По умолчанию
postgres-operator.enabled Включение оператора PostgreSQL true
db_cluster.storageClass Класс хранения для кластера БД standard
db_cluster.databases.keycloak.user Имя пользователя для базы данных Keycloak keycloak
db_cluster.databases.kamundarf7.user Имя пользователя для базы данных KamundaRF7 kamundarf7
keycloak.externalDatabase.host Хост внешней базы данных для Keycloak db
keycloak.externalDatabase.database Имя базы данных для Keycloak keycloak

Настройки аутентификации и авторизации через Keycloak.

Переменная Описание По умолчанию
keycloak.enabled Включение Keycloak true
keycloak.httpRelativePath Относительный путь для доступа к Keycloak /auth/
keycloak.ingress.enabled Включение Ingress для Keycloak true
keycloak.ingress.hostname Доменное имя для доступа к Keycloak {{ .Values.domain }}
keycloak.image.repository Репозиторий образа Keycloak kamundarf/other/keycloak
keycloak.image.tag Тег образа Keycloak 0.0.2
keycloak.keycloakConfigCli.enabled Включение CLI конфигурации Keycloak true
keycloak.keycloakConfigCli.configuration.master.yaml.realm Название realm в Keycloak master
keycloak.keycloakConfigCli.configuration.master.yaml.loginTheme Тема интерфейса Keycloak pult
keycloak.keycloakConfigCli.configuration.master.yaml.users[0].username Имя пользователя по умолчанию testuser
keycloak.keycloakConfigCli.configuration.master.yaml.users[0].credentials[0].value Пароль пользователя по умолчанию password
keycloak.keycloakConfigCli.configuration.master.yaml.clients[0].clientId ID клиента для crawler crawler
keycloak.keycloakConfigCli.configuration.master.yaml.clients[0].secret Секрет клиента для crawler test

Настройки брокера сообщений Apache Kafka.

Переменная Описание По умолчанию
kafka.enabled Включение Kafka true
kafka.replicaCount Количество реплик Kafka 1
kafka.controller.replicaCount Количество контроллеров Kafka 1
kafka.listeners.client.protocol Протокол для клиентского listener PLAINTEXT
kafka.listeners.client.containerPort Порт для клиентского listener 9092
kafka.service.ports.client Порт сервиса Kafka 9092
kafka.persistence.enabled Включение персистентности для Kafka true
kafka.persistence.size Размер хранилища для Kafka 8Gi

Настройки хранилища исторических данных ClickHouse.

Переменная Описание По умолчанию
clickhouse.enabled Включение ClickHouse true
clickhouse.auth.username Имя пользователя ClickHouse test
clickhouse.auth.password Пароль пользователя ClickHouse test
clickhouse.shards Количество шардов ClickHouse 1
clickhouse.replicaCount Количество реплик ClickHouse 1
clickhouse.image.repository Репозиторий образа ClickHouse bitnamilegacy/clickhouse
clickhouse.image.tag Тег образа ClickHouse 25.7.5

Настройки бэкэнд компонента Камунда.РФ Пульт.

Переменная Описание По умолчанию
ginger-api-crawler.enabled Включение ginger-api-crawler true
ginger-api-crawler.image.repository Репозиторий образа crawler kamundarf/other/crawler
ginger-api-crawler.image.tag Тег образа crawler 0.0.1-SNAPSHOT
ginger-api-crawler.ingresHost Доменное имя для crawler {{ .Values.domain }}
ginger-api-crawler.camunda.bpm.adminUser.id ID администратора Camunda demo
ginger-api-crawler.camunda.bpm.adminUser.password Пароль администратора Camunda demo
ginger-api-crawler.spring.datasource.url URL подключения к ClickHouse jdbc:clickhouse://{{ .Release.Name }}-clickhouse:8123/default
ginger-api-crawler.spring.kafka.consumer.bootstrapServers Адрес брокера Kafka для потребителя {{ .Release.Name }}-kafka:9092
ginger-api-crawler.spring.kafka.producer.bootstrapServers Адрес брокера Kafka для производителя {{ .Release.Name }}-kafka:9092
ginger-api-crawler.crawler.camunda7GroupId Группа для Camunda 7 kam7
ginger-api-crawler.crawler.camunda8GroupId Группа для Camunda 8 kam8
ginger-api-crawler.crawler.writeQueue.topic Топик очереди записи write-queue

Настройки фронтэнд компонента Камунда.РФ Пульт.

Переменная Описание По умолчанию
camunda-pult.enabled Включение camunda-pult true
camunda-pult.image.repository Репозиторий образа pult xn--80aalwlg5b.xn--p1ai/kamundarf/pult
camunda-pult.image.tag Тег образа pult 10478db6
camunda-pult.ingress.enabled Включение Ingress для pult true
camunda-pult.ingress.className Класс Ingress controller’а nginx
camunda-pult.ingress.hosts[0].host Доменное имя для pult {{ .Values.domain }}
camunda-pult.ingress.hosts[0].paths[0].path Путь для доступа к pult /
camunda-pult.ingress.hosts[0].paths[0].pathType Тип обработки пути ImplementationSpecific

Настройки движка бизнес процессов Камунда.РФ 7.

Переменная Описание По умолчанию
kamundarf7.enabled Включение kamundarf7 true
kamundarf7.image.tag Тег образа kamundarf7 1.0.0-SNAPSHOT
kamundarf7.plugins.history.enabled Включение плагина истории true
kamundarf7.plugins.history.topic Топик для истории kamundarf7-raw
kamundarf7.plugins.history.rawTopic Топик для сырых данных истории kamundarf7-raw
kamundarf7.plugins.history.bootStrapServers[0] Адрес брокера Kafka paio-kafka:9092
kamundarf7.db.secretName Имя секрета с данными БД kamundarf7.db.credentials.postgresql.acid.zalan.do
kamundarf7.db.secretUsernameKey Ключ имени пользователя в секрете username
kamundarf7.db.secretPasswordKey Ключ пароля в секрете password
kamundarf7.ingress.enabled Включение Ingress для kamundarf7 true
kamundarf7.ingress.hosts[0].host Доменное имя для kamundarf7 {{ .Values.domain }}
kamundarf7.ingress.hosts[0].paths[0].path Путь для доступа к kamundarf7 /camunda
kamundarf7.ingress.hosts[0].paths[0].pathType Тип обработки пути ImplementationSpecific