Admin.SPA
1. Введение
Версия чарта: 260814.207.1084
OCI-репозиторий: cr.yandex/crpt9c7igqasaqddbg0p/frontend/admin.spa/charts/admin-spa
Важно: Для admin-spa Ingress управляется через Terraform в модуле terraform/modules/medikt-infra (параметр nginx_ingress_medikt_admin_spa). Данный параметр должен быть включен в конфигурации Terraform.
2. Подготовка к развертыванию
2.1 Secret'ы
Для развертывания admin-spa требуется secret featbit-appsettings со следующими параметрами:
| Имя Secret'а | Ключ | Назначение |
|---|---|---|
| featbit-appsettings | client_secret | Ключ клиента для Feature Flags |
| featbit-appsettings | streaming_uri | URI для streaming (wss://els-featuremgr.medikt.net) |
| featbit-appsettings | event_uri | URI для событий (https://els-featuremgr.medikt.net) |
Управление Secret'ами через Terraform:
module "featbit-appsettings-secret" {
source = "./modules/k8s-secret"
k8s_secret_name = "featbit-appsettings"
k8s_ns = ["prod"]
data = {
client_secret = "<base64-encoded-client-secret>"
streaming_uri = "wss://els-featuremgr.medikt.net"
event_uri = "https://els-featuremgr.medikt.net"
}
type = "Opaque"
}
2.2 ConfigMap'ы
Конфигурация приложения (config.json) формируется из шаблона в чарте:
- Шаблон:
charts/admin-spa/templates/configmap.yaml - Template: Использует Helm-шаблоны (tpl) для подстановки значений из values.yaml
- Mount path:
/usr/share/nginx/html/config.json
3. Получение чарта
Установка из OCI-репозитория
helm pull oci://cr.yandex/crpt9c7igqasaqddbg0p/frontend/admin.spa/charts/admin-spa \
--version 260814.207.1084 \
--untar --untardir ./charts
4. Развертывание с помощью Helm
Установка в namespace prod
helm install medikt-admin-spa ./charts/admin-spa \
--namespace prod \
--create-namespace \
-f .values/admin-spa_prod.yaml
Обновление чарта
helm upgrade medikt-admin-spa ./charts/admin-spa \
--namespace prod \
-f .values/admin-spa_prod.yaml
Удаление
helm uninstall medikt-admin-spa --namespace prod
5. Конфигурация
Параметры values.yaml
Конфигурационные параметры (config.json)
| Параметр | prod значение | Описание |
|---|---|---|
adminAuthApiUrl | https://adm.medikt.net | URL API авторизации админки |
userSsr | https://medikt.net | URL SSR для пользователя |
userApiUrl | https://user.medikt.net | URL API пользователя |
contentApiUrl | https://content.medikt.net | URL API контента |
Пример для prod (.values/admin-spa_prod.yaml)
config:
adminAuthApiUrl: "https://adm.medikt.net"
userSsr: "https://medikt.net"
userApiUrl: "https://user.medikt.net"
contentApiUrl: "https://content.medikt.net"
ingress:
enabled: false # Управляется через Terraform
6. Проверка развертывания
Проверка подов
kubectl get pods -n prod -l app.kubernetes.io/name=admin-spa
Проверка сервиса
kubectl get svc -n prod medikt-admin-spa
Проверка Ingress (Terraform)
kubectl get ingress -n prod medikt-admin-spa
Проверка конфигурации
kubectl exec -n prod <pod-name> -- cat /usr/share/nginx/html/config.json