Быстрый старт

Перед установкой чарта необходимо убедиться, что инфраструктура соответствует следующим условиям:

Требования

Вычислительные

Минимальные требования для запуска:

Сценарий

CPU (m)

RAM (Mi)

Без сервисов для поддержки ИИ

780 m

1950 Mi

С сервисами для поддержки ИИ

1030 m

2400 Mi

Лимиты:

Сценарий

CPU (m)

RAM (Mi)

Без сервисов для поддержки ИИ

1050 m

2505 Mi

С сервисами для поддержки ИИ

1800 m

3405 Mi

Аппаратные

Компонент

Требования

Kubernetes

Версия >= 1.19

Helm

Версия >= 3.10

Ingress Controller

Установлен и работает (например, ingress-nginx)

DNS

Доступ к управлению DNS-зоной у вашего провайдера (например, Regery) для создания A-записей

Доменные имена

Подготовлены домены для сервисов (например: portal.example.com, ges.example.com, app.example.com)

TLS

Для HTTPS необходимы TLS-сертификаты или wildcard-сертификат.

Добавление репозитория

Для установки чарта необходимо добавить наш публичный Helm-репозиторий:

helm repo add gramax https://s3.ics-it.ru/public/docreader/helm/ helm repo update

После этого вы можете убедиться, что репозиторий успешно добавлен: helm search repo gramax.

Пример values.yaml

Вы можете получить шаблон values.yaml для ускорения заполнения переменных с помощью такой команды:

curl -LO https://gram.ax/example.values.yaml

Настройка Gramax Enterprise Server

Задайте основные параметры Gramax Enterprise Server:

  • CLIENT_NAME — логин клиента Gramax Enterprise Server. Используется для аутентификации в Docker Registry и при подстановке значений в переменные конфигурации. Выдается при покупке. Обязателен. Пример: gramax

  • GES_URL — URL, на котором будет доступен GES. Обязателен. Пример: https://enterprise.gramax.local

  • AUTH_SERVICE_URL — URL, по которому будет доступен сервис auth. Пример: https://ges.gram.ax/auth

  • DIAGRAM_RENDERER_SERVICE_URL — URL, по которому будет доступен сервис Diagram-renderer. Пример: https://ges.gram.ax/diagram-renderer

  • ALLOWED_GRAMAX_URLS — URL-адреса инстансов Gramax (портал документации, браузерная версия и GES), через запятую. Обязателен. Пример: https://some-instance.gram.ax,https://another-instance.gram.ax

  • LICENSE_KEY — лицензионный ключ Gramax Enterprise Server. Выдается при покупке. Обязателен. Пример: 765d562b9092eec3…

  • GIT_SERVER_TOKEN — токен доступа к Git-серверу для чтения/клонирования репозиториев. Обязателен. Пример: glpat-...

  • GES_ADMIN_EMAILS — почты владельцев воркспейса через запятую. Устанавливаются в конфиг только при первом запуске. Обязателен. Пример: admin1@gramax.local,admin2@gramax.local

  • GIT_SERVER_URL — адрес GitLab-сервера для внешнего хранилища. Обязателен. Пример: https://gitlab.example.com

  • ENTERPRISE_STORAGE_TYPE — тип хранилища конфигураций: gitlab или local. Обязателен. Пример: gitlab

  • ENTERPRISE_CONFIG_PATH — при ENTERPRISE_STORAGE_TYPE=local: путь до папки с настройками GES на виртуальной машине. Обязателен. По умолчанию: /app/config

  • GIT_PROJECT_PATH — при ENTERPRISE_STORAGE_TYPE=gitlab: путь до репозитория с настройками в формате «группа/название-репозитория». Должен быть создан до инициализации. Обязателен. Пример: dr/gramax-yaml-manager

  • GIT_PROJECT_BRANCH — ветка репозитория GIT_PROJECT_PATH, если отличается от master. По умолчанию: master. Пример: main

  • ENTERPRISE_SERVICE_ENCRYPTION_KEY — ключ для безопасной передачи данных между сервисами. Обязателен. Пример: 5caf59ed...cddb8489

  • COOKIE_SECRET — ключ для шифрования секретов пользователя в куках. Рекомендуется 32-байтный ключ (openssl rand -hex 32). Пример: 397b6f3bf51a73b9...

  • WEB_EDITOR_URL — адрес веб-редактора, используемый десктопным приложением для формирования ссылок на статьи, через «Поделиться статьей».

Также настройте подключение к SSO, ИИ-функции и логирование.

Для чувствительных данных (токены, пароли, ключи) используется Kubernetes Secret. Настройка делается через параметры:

  • secrets.create — создавать Secret автоматически средствами чарта.

  • secrets.name — имя Secret для чтения переменных в подах.

Системные значения Helm-чарта

Настраиваются ресурсы сервисов (CPU и память) и параметры Ingress-доступа. Подробнее в статье.

Создание секретов

Docker конфиг

Секрет типа kubernetes.io/dockerconfigjson используется для загрузки приватных Docker-образов.

  1. Получите учетные данные для реестра (токен с правами на pull).

  2. Создайте секрет в целевом namespace:

    kubectl create secret docker-registry regcred \ --namespace <your-namespace> \ --docker-server=<REGISTRY_URL> \ --docker-username=<USERNAME> \ --docker-password=<PASSWORD_OR_TOKEN> \ --docker-email=<EMAIL>

Секрет с переменными

Есть два сценария:

  1. Secret создает чарт (secrets.create: true).

  2. Используется заранее созданный Secret (secrets.create: false, secrets.name: "<secret-name>").

Пример использования существующего Secret:

kubectl create secret generic gramax-app-secrets \ -n <namespace> \ --from-literal=COOKIE_SECRET='<...>' \ --from-literal=GIT_SERVER_TOKEN='<...>' \ --from-literal=ENTERPRISE_SERVICE_ENCRYPTION_KEY='<...>'

Установка чарта

После добавления и всех настроек можно установить чарт в ваш кластер Kubernetes.

helm install gramax gramax/gramax-enterprise-server-in-k8s -n <...> --create-namespace -f values.yaml

Пример установки c использованием существующего Secret:

helm install gramax gramax/gramax-enterprise-server-in-k8s \ -n <...> \ --create-namespace \ -f values.yaml \ --set secrets.create=false \ --set secrets.name=gramax-app-secrets