Подготовка окружения¶
Namespace¶
Если нужен сбор логов Filebeat из чарта и в кластере включён Pod Security Admission:
Git-репозиторий интеграций¶
Платформа работает с одной веткой одного репозитория. Каждая папка в корне ветки считается проектом.
- Создайте репозиторий и ветку, например
main. - Положите в корень два служебных проекта:
configuration: скрипт сборкиbuild.shи фрагмент пода сборщикаbuilder.pod.jkube.yaml;templates: шаблоны, из которых создаются новые проекты (application.properties,deployment.jkube.yamlи другие).
Готовые служебные проекты входят в комплект поставки. 3. Создайте учётную запись или токен с правом записи в эту ветку.
Не кладите в корень ветки посторонние папки: платформа покажет их как интеграции.
Реестр образов¶
В реестре нужны:
- образ платформы
neomsa-esb:<тег>; - офлайн-сборщик
neomsa-esb-offline-builder:<тег>; - базовый образ интеграций из комплекта поставки.
Образы интеграций публикуются в группу, которую вы укажете в секрете (image-group). Учётной записи сборщика нужны права на публикацию в эту группу.
Если реестр не разрешает анонимное чтение, создайте секрет для загрузки образов:
kubectl -n <namespace> create secret docker-registry neomsa-esb-regcred \
--docker-server=<реестр> --docker-username=<пользователь> --docker-password=<пароль>
Укажите его в values.yaml чарта:
Чарт передаёт этот секрет только своим подам: платформе и Filebeat. Поды сборщика и dev-режима работают под сервисной учётной записью платформы neomsa-esb, поды интеграций под учётной записью default. Чтобы и они загружали образы, после установки чарта добавьте секрет в обе учётные записи:
kubectl -n <namespace> patch serviceaccount neomsa-esb \
-p '{"imagePullSecrets":[{"name":"neomsa-esb-regcred"}]}'
kubectl -n <namespace> patch serviceaccount default \
-p '{"imagePullSecrets":[{"name":"neomsa-esb-regcred"}]}'
Проверить, что секрет дошёл до пода:
Если под в состоянии ErrImagePull или ImagePullBackOff, причину покажут события пода (kubectl describe pod <под>): неверный адрес или тег, нет прав, реестр недоступен из сети узлов или его сертификат не доверен.
Секрет платформы¶
Значения подключения к git, реестру и базе данных хранятся в секрете neomsa-esb. Чарт создаёт его из шаблона templates/neomsa-esb-secret.yaml. Перед установкой заполните значения в начале этого шаблона:
| Ключ | Что указать |
|---|---|
git-repository |
Адрес репозитория интеграций, https://<git-сервер>/<группа>/<репозиторий>.git |
git-branch |
Ветка интеграций |
git-username, git-password |
Учётная запись или токен с правом записи |
image-registry |
Адрес реестра |
image-group |
Группа (проект) реестра для образов интеграций |
image-registry-username, image-registry-password |
Учётная запись с правом публикации |
db-url, db-username, db-password |
Подключение к PostgreSQL, например jdbc:postgresql://postgres:5432/karavan |
oidc-secret |
Секрет клиента сервера в провайдере OIDC. Нужен в режимах sso и sso+local |
Ключ master-password не используется, его можно не заполнять.
Значения в секрете Kubernetes записываются в base64. Заполняйте только значения в начале шаблона, ключи чарт сформирует сам. Значения git он дополнительно записывает под ключами karavan.git.*: по ним платформа загружает проекты из репозитория. Не удаляйте эти ключи из шаблона, иначе после входа интерфейс не дождётся загрузки проектов.
Пароль встроенной базы PostgreSQL задаётся в шаблоне templates/postgres/postgres.yaml (секрет postgres-secret). Замените его и укажите тот же пароль в db-password.
Внимание
Не храните реальные пароли и токены в git-репозитории чарта. Заполняйте шаблоны секретов на машине, с которой выполняется установка, и не отправляйте эти правки в общий репозиторий.
Платформа берёт ветку интеграций из ключа git-branch секрета. Сменить ветку из интерфейса нельзя.
Начальный пароль локальных пользователей¶
При первом запуске с локальным входом платформа создаёт пользователей admin и developer с паролем из переменной PLATFORM_PASSWORD. Создайте для пароля отдельный секрет до установки. Запишите пароль в файл без перевода строки в конце и выполните:
kubectl -n <namespace> create secret generic neomsa-esb-bootstrap \
--from-file=password=<файл с паролем>
Секрет подключается в values.yaml, пример есть в разделе Установка Helm-чартом.