Развёртывание Камунда.РФ Пульт в Kubernetes с Helm
Требования к внешним сервисам и инфраструктуре
Заголовок раздела «Требования к внешним сервисам и инфраструктуре»В этом разделе перечислено всё, что должно быть предварительно настроено в вашем окружении перед началом установки Камунда.РФ Пульт.
Инфраструктура
Заголовок раздела «Инфраструктура»-
Доступы, адреса, учетные записи (предоставляются после приобретения Камунда.РФ)
-
Docker Registry, в котором лежит образ Камунда.РФ 7
-
Helm Registry, где лежит helm chart для Камунда.РФ 7
-
-
Kubernetes 1.23+
-
Helm 3.x
-
Доступ к кластеру Kubernetes
Программное обеспечение для установки
Заголовок раздела «Программное обеспечение для установки»Для выполнения инструкций по установке на вашем клиентском компьютере должны быть установлены следующие утилиты.
-
kubectl - https://kubernetes.io/ru/docs/tasks/tools/install-kubectl/
-
idn - https://www.gnu.org/software/libidn/manual/html_node/Invoking-idn.html
Репозиторий и подготовка
Заголовок раздела «Репозиторий и подготовка»На этом этапе мы подготовим окружение Kubernetes для установки Камунда.РФ Пульт: добавим репозиторий, создадим необходимые секреты и настроим конфигурацию.
Переменные окружения
Заголовок раздела «Переменные окружения»Подготовьте переменные среды:
Авторизация в Helm-registry
Заголовок раздела «Авторизация в Helm-registry»В этом разделе проверяем подключение к реестру с Helm-чартами.
Создание секрета доступа к Docker Registry Камунда.РФ
Заголовок раздела «Создание секрета доступа к Docker Registry Камунда.РФ»Чтобы Kubernetes мог скачать образ Камунда.РФ 8 из приватного реестра (docker registry), необходимо создать секрет с данными для аутентификации.
Где
-
$REGISTRY_USERNAME- имя пользователя для доступа к реестру Камунда.РФ -
$REGISTRY_PASSWORD- пароль пользователя для доступа к реестру Камунда.РФ
Подготовка pult.yaml
Заголовок раздела «Подготовка pult.yaml»Создаем файл pult.yaml, в котором переопределяем стандартные настройки Helm-чарта под наши нужды: указываем наш образ, настраиваем доступ к API и настраиваем ingress для внешнего доступа.
Минимально требуется переопределить следующие переменные:
В конфигурации по умолчанию Helm-чарт производит установку следующих компонентов:
-
СУБД PostgreSQL — для управления данными
-
СУБД ClickHouse — как хранилище исторических данных
-
Брокер Apache Kafka — для обмена сообщениями между компонентами системы
-
Crawler — Бэк-энд компонент Камунда.РФ Пульт
-
Pult — Фронт-энд компонент Камунда.РФ Пульт
-
Keycloak — OAuth2-сервер для авторизации пользователей
-
КамундаРФ 7 — как движок бизнес процессов
Любой из компонентов, может быть развернут отдельно, основными компонентами необходимыми для работы системы являются:
-
Crawler — Бэк-энд компонент Камунда.РФ Пульт
-
Pult — Фронт-энд компонент Камунда.РФ Пульт
-
ClickHouse — как хранилище исторических данных
Подготовим файл конфигурации для установки Камунда.РФ Пульт в наш кластер Kubernetes.
pult.yaml
Установка чарта
Заголовок раздела «Установка чарта»После подготовки файла окружения развернем наше решение.
Как добавить новый сервер
Заголовок раздела «Как добавить новый сервер»Внесите изменения в файл pult.yaml
pult.yaml
Настройки
Заголовок раздела «Настройки»Конфигурация базы данных
Заголовок раздела «Конфигурация базы данных»Настройки подключения к базам данных 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»Настройки аутентификации и авторизации через 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 |
Конфигурация Kafka
Заголовок раздела «Конфигурация Kafka»Настройки брокера сообщений 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»Настройки хранилища исторических данных 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
Заголовок раздела «Конфигурация ginger-api-crawler»Настройки бэкэнд компонента Камунда.РФ Пульт.
| Переменная | Описание | По умолчанию |
|---|---|---|
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
Заголовок раздела «Конфигурация camunda-pult»Настройки фронтэнд компонента Камунда.РФ Пульт.
| Переменная | Описание | По умолчанию |
|---|---|---|
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 |
Конфигурация kamundarf7
Заголовок раздела «Конфигурация kamundarf7»Настройки движка бизнес процессов Камунда.РФ 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 |