Перейти к содержанию

Установка 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 upgrade --install neomsa-esb ./neomsa-esb -n <namespace> \
  -f values.yaml --wait --timeout 10m

Итоговые манифесты можно посмотреть до установки командой 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, как в примере выше, или на внешнем балансировщике.