Установка Helm-чартом¶
Параметры чарта¶
Основные параметры задаются в values.yaml:
| Параметр | Назначение |
|---|---|
image.repository, image.tag |
Образ платформы |
containers.env |
Переменные окружения платформы, см. Параметры платформы |
ingress.hosts |
Адрес платформы, например esb.example.local |
service.nodePort.enabled, service.nodePort.port |
Дополнительный доступ через NodePort |
resources |
Ресурсы пода платформы |
roleRules |
Права сервисной учётной записи платформы и сборщика в namespace |
monitoring.podMonitor.* |
Сбор метрик Prometheus, см. Метрики |
logging.filebeat.* |
Сбор логов Filebeat, см. Логи |
apm.* |
Отправка трейсов в Elastic APM, см. Трейсы |
Минимальный набор для первой установки:
image:
repository: <реестр>/<группа>/neomsa-esb
tag: "<тег>"
containers:
env:
- name: NEOMSA_ESB_DEVMODE_IMAGE
value: "<реестр>/<группа>/neomsa-esb-offline-builder:<тег>"
- name: NEOMSA_ESB_AUTH_MODE
value: "local"
- name: PLATFORM_PASSWORD
valueFrom:
secretKeyRef:
name: neomsa-esb-bootstrap
key: password
ingress:
enabled: true
hosts:
- host: esb.example.local
paths:
- path: /
pathType: ImplementationSpecific
tls:
- secretName: neomsa-esb-tls
hosts:
- esb.example.local
monitoring:
podMonitor:
enabled: false
logging:
filebeat:
enabled: false
apm:
enabled: false
Остальные переменные окружения (подключение к git, реестру и базе) чарт уже передаёт платформе из секрета neomsa-esb.
Секрет с сертификатом для ingress.tls создайте заранее. Сертификат должен содержать имя хоста платформы в SAN:
kubectl -n <namespace> create secret tls neomsa-esb-tls \
--cert=<цепочка сертификатов> --key=<закрытый ключ>
Если TLS завершается на внешнем балансировщике, блок tls не нужен.
Установка¶
Итоговые манифесты можно посмотреть до установки командой helm template neomsa-esb ./neomsa-esb -n <namespace> -f values.yaml. В выводе будут секреты, не сохраняйте его в общих каталогах.
Чарт создаёт:
- Deployment и Service платформы
neomsa-esb. Имена объектов чарта не зависят от имени релиза: их задаётfullnameOverride. Имя Service менять нельзя, сборщик 4.22 обращается к платформе по адресуhttp://neomsa-esb.<namespace>; - StatefulSet PostgreSQL 16 и PVC
data-postgres-0на 5 ГиБ. Размер задан в шаблонеtemplates/postgres/postgres.yaml.helm uninstallэтот PVC не удаляет: данные базы остаются, пока PVC не удалят вручную; - ServiceAccount, Role и RoleBinding для платформы и сборщика;
- Ingress;
- секреты
neomsa-esbи, при включённом APM,neomsa-esb-apm; - PodMonitor и DaemonSet Filebeat, если они включены.
Платформа и сборщик используют одну сервисную учётную запись. Её имя чарт передаёт в NEOMSA_ESB_BUILDER_SERVICE_ACCOUNT и NEOMSA_ESB_DEVMODE_SERVICE_ACCOUNT. Не удаляйте эти переменные из чарта: без них создание пода сборщика заканчивается ошибкой 403.
Проверка¶
kubectl -n <namespace> get pods
kubectl -n <namespace> get pvc
kubectl -n <namespace> rollout status deploy/neomsa-esb --timeout=300s
kubectl -n <namespace> logs deploy/neomsa-esb --tail=50
Под платформы и postgres-0 должны быть готовы (READY 1/1), состояния Running без готовности недостаточно. PVC data-postgres-0 должен быть в состоянии Bound. При первом запуске платформа создаёт таблицы в базе (Flyway) и загружает проекты из ветки git.
Откройте по HTTPS адрес из ingress.hosts и войдите локальным администратором admin.
При запуске с локальным входом (режимы local и sso+local) платформа создаёт двух пользователей, если их ещё нет в базе: admin со всеми ролями и developer с ролями разработчика. Пароль у обоих берётся из переменной PLATFORM_PASSWORD. Если переменная не задана, используется пароль по умолчанию, поэтому задайте её до первого запуска или смените пароли сразу после входа («Доступ» → «Профиль» и «Пользователи»). Пароль уже созданного пользователя переменная не меняет. В режиме sso локальные пользователи не создаются.
Примечание
Сессионная cookie платформы помечена Secure. Вход работает только по HTTPS или на localhost. TLS включается в ingress.tls, как в примере выше, или на внешнем балансировщике.