Skip to main content
Version: 1.12-grodno (current)

UserReg.API

userreg-api — это веб-API сервис регистрации пользователей в системе Medikt. Развертывание производится с помощью Helm-чарта в Kubernetes-кластер.

Версия чарта: 240830.60.219 OCI-репозиторий: cr.yandex/crpt9c7igqasaqddbg0p/backend/userreg.api/charts/userreg-api Ingress: reg.medikt.net (управляется через Terraform) Важно: Управление Ingress для всех сервисов осуществляется через Terraform. Параметр ingress.enabled должен быть установлен в false в values.yaml.

Подготовка к развертыванию

Необходимые Secret'ы

Для развертывания необходимы следующие Secret'ы:

ConfigMap'ы генерируются автоматически из шаблонов чарта. Ingress управляется через Terraform модуль medikt-infra.

Конфигурация через ConfigMap

Конфигурация приложения (appsettings.json) формируется из шаблона в чарте:

  • Шаблон: charts/userreg-api/appsettings.json
  • Template: Использует Helm-шаблоны (tpl) для подстановки значений из values.yaml
  • Пример подстановки: {{ include "userreg-api.captchaSecret" . | b64dec | quote }}
  • Mount path: /app/appsettings.Production.json (для Production environment, при dotnet_environment: Production)

Получение чарта из OCI-репозитория

Команда для скачивания чарта

helm pull oci://cr.yandex/crpt9c7igqasaqddbg0p/backend/userreg.api/charts/userreg-api \
--version 240830.60.219 \
--untar --untardir ./charts

Развертывание с помощью Helm

# Установка из OCI-репозитория (одной командой)
helm install medikt-userreg-api ./charts/userreg-api \
--version 240830.60.219 \
--namespace prod \
--create-namespace \
-f .values/userreg-api_prod.yaml

Обновление

# Обновление из OCI-репозитория
helm upgrade medikt-userreg-api ./charts/userreg-api \
--version 240830.60.219 \
--namespace prod \
-f .values/userreg-api_prod.yaml

Удаление

helm uninstall medikt-userreg-api --namespace prod

Конфигурация

Основные параметры конфигурации (values.yaml)

ПараметрТипЗначение по умолчаниюОписание
dotnet_environmentstringStagingДолжно быть Production
environmentstringenvВажно! Должно быть prod

CORS (Cross-Origin Resource Sharing)

ПараметрТипОписание
cors.originsarrayСписок разрешенных CORS-origins

Пример для продакшена:

cors:
origins:
- "https://medikt.net"

Строка подключения к базе данных

ПараметрТипОписание
connectionStrings.usersDatabaseSecretRefstringИмя Secret'а с подключением к БД

Secret должен содержать ключ connectionString с базой данных.

Ключ Yandex Captcha

ПараметрТипОписание
captchaKey.secretNameRefstringИмя Secret'а с ключом Captcha

Secret должен содержать ключ server_key.

Сервисы gRPC

ПараметрТипЗначение по умолчаниюОписание
userAuthApiGrpcAddressstringhttp://medikt-userauth-api:8081Адрес сервиса авторизации
notificationApiGrpcAddressstringhttp://medikt-notification-api:8081Адрес сервиса уведомлений

Параметры безопасности подов

ПараметрТипОписание
serviceAccount.createboolСоздавать ли Service Account
serviceAccount.namestringИмя Service Account (по умолчанию генерируется)
serviceAccount.automountboolАвтоматическое монтирование API-учетных данных
securityContextobjectSecurity Context для контейнера
podSecurityContextobjectSecurity Context для пода

Ресурсы

ПараметрТипОписание
resources.requests.memorystringЗапрос памяти (по умолчанию 300Mi)
resources.limits.cpu/memorystringЛимиты ресурсов (по умолчанию не заданы)

Пробы (Probes)

ПараметрТипОписание
livenessProbe.httpGet.pathstringПуть к endpoints лайв-пробы (/healthz/live)
readinessProbe.httpGet.pathstringПуть к endpoints readiness-пробы (/healthz/ready)

Конфигруация Affinity

По умолчанию заданы правила affinity для размещения подов на нодах с меткой api_affinity=true и исключениями для preemption-нод.

Проверка развертывания

Проверка статуса релиза

helm status medikt-userreg-api -n prod

Проверка подов

kubectl get pods -n prod -l app.kubernetes.io/name=userreg-api
kubectl describe pod <pod-name> -n prod

Проверка логов

kubectl logs -f <pod-name> -n prod

Проверка сервиса

kubectl get svc -n prod -l app.kubernetes.io/name=userreg-api

Проверка конфигурации

# Проверка ConfigMap с appsettings
kubectl get configmap medikt-userreg-api -n prod -o yaml

# Проверка mounted конфигурации в поде
kubectl exec <pod-name> -n prod -- cat /app/appsettings.Production.json