Здесь описана установка платформы с нуля через Helm Chart. Этот способ подойдёт, если у вас уже есть своя инфраструктура Kubernetes и вы разворачиваете приложения через helm install/helm upgrade. Для новых установок с нуля рекомендуем Helmfile.
Перед началом нужно подготовить серверы.
sudo curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
sudo chmod +x get_helm.sh
sudo ./get_helm.sh
В примерах ниже используется namespace dreamteam, имя релиза dreamteam-on-premise и FQDN domain.example.com – замените на свои.
Создайте namespace:
kubectl create namespace dreamteam
Создайте секретЗащищённое место для хранения паролей и ключей доступа внутри Kubernetes с паролями приложения. Имя секрета – в формате имя-релиза-backend-app-credentials:
kubectl create secret generic dreamteam-on-premise-backend-app-credentials --from-literal=db-password='пароль пользователя БД' --from-literal=mail-password='пароль пользователя SMTP' --from-literal=backup-archive-password='пароль шифрования резервных копий' -n dreamteam
Создайте секрет для доступа к репозиторию образовХранилище готовых версий приложения, откуда сервер их скачивает вендора. Имя секрета – в формате имя-релиза-docker-registry-credentials:
kubectl create secret docker-registry dreamteam-on-premise-docker-registry-credentials --docker-server='https://registry.fact.digital' --docker-username='имя пользователя registry' --docker-password='пароль пользователя registry' -n dreamteam
Создайте секрет с сертификатомФайл, который подтверждает подлинность сайта и включает защищённое соединение (https) для домена. Нужны два файла: в --cert – цепочка сертификатов (сертификат хоста и промежуточный сертификат), в --key – приватный ключ без пароля. Имя секрета – в формате ваш-FQDN-tls:
kubectl create secret tls domain.example.com-tls --cert=path/to/cert/file --key=path/to/key/file -n dreamteam
Создайте рабочую папку и перейдите в неё:
mkdir dreamteam
cd dreamteam
Создайте в этой папке файл values.yaml в кодировке UTF-8. Все параметры в примерах обязательны для базовой установки:
Перед установкой проверьте, что в
values.yamlзаполнены параметры окружения, домена, подключения к базе данных, почты, образов и файлового хранилища приложения.
Обязательно укажите обе версии образов со страницы версий для установки и обновления:
dreamteam:
frontend:
applicationVersion: "<версия_frontend>"
backend:
applicationVersion: "<версия_backend>"
Замените <версия_frontend> и <версия_backend> конкретными тегами в своём values.yaml перед установкой.
Примеры
values.yamlиспользуют PVC-хранилище для пользовательских файлов. Если для файлов выбран другой вариант хранения, настройте его перед установкой.
Необязательно. Чтобы настроить интеграцию с GigaChat:
8. Зарегистрируйтесь в сервисе https://developers.sber.ru/portal/products/gigachat-api.
9. Получите ClientID и ClientSecret.
10. Создайте секрет в формате имя-релиза-backend-app-giga-chat-client-credentials:
kubectl create secret generic dreamteam-on-premise-backend-app-giga-chat-client-credentials --from-literal=giga-chat-client-id='ваш GigaChat ClientID' --from-literal=giga-chat-client-secret='ваш GigaChat ClientSecret' -n dreamteam
Выполните вход в репозиторий:
helm registry login registry.fact.digital
helm install dreamteam-on-premise oci://registry.fact.digital/dreamteam-on-premise/helm/dreamteam-on-premise-app --version <версия_чарта> -n dreamteam -f values.yaml
Замените <версия_чарта> версией Helm Chart с указанной страницы.
helm -n dreamteam list
kubectl -n dreamteam get pods
kubectl -n dreamteam get pvc
kubectl -n dreamteam get ingress
Все pod приложения должны перейти в состояние Running.Есть возможность использовать кастомизированные Docker-образы приложения.
Настройте лицензирование и переменные окружения.