Перейти к основному содержимому
Версия: 2.0.x

selena-cm — values

Файл values для чарта selena-cm.

selena-cm-values.yaml
# Образ Selena Cluster Manager.
image:
# Repository CM image; меняйте, если используете внутренний registry/mirror.
repository: "hub.selena.sh/selena/selena-cm"
# Точный release tag CM image, который вы устанавливаете.
tag: "5.0.85"

# Secret для доступа к private registry; удалите блок, если registry публичный.
imagePullSecrets:
# Имя docker-registry Secret в namespace Selena applications.
- name: selena-registry

# Только параметры, которые зависят от URL-ов вашего стенда.
config:
# Env vars, которые попадут в CM ConfigMap.
env:
# Internal Keycloak token endpoint для user password login.
CM_KEYCLOAK_TOKEN_URI: "{keycloak_internal_url}/realms/selena/protocol/openid-connect/token"
# Public Keycloak logout endpoint для browser logout.
CM_KEYCLOAK_LOGOUT_URI: "{keycloak_public_url}/realms/selena/protocol/openid-connect/logout"
# Internal JWKS endpoint для проверки JWT signatures.
CM_KEYCLOAK_JWKS_URI: "{keycloak_internal_url}/realms/selena/protocol/openid-connect/certs"
# Public issuer; должен точно совпадать с claim `iss` в Keycloak token.
CM_KEYCLOAK_ISSUER_URI: "{keycloak_public_url}/realms/selena"
# Internal token endpoint для service account `selena-cluster-manager-api`.
CM_KEYCLOAK_ADMIN_TOKEN_URI: "{keycloak_internal_url}/realms/selena/protocol/openid-connect/token"
# Internal Keycloak Admin API base URL, откуда CM читает users/groups.
CM_KEYCLOAK_ADMIN_BASE_URI: "{keycloak_internal_url}/admin/realms/selena"
# Public IDE endpoint
CM_UI_IDE_URL: "{ide_public_url}"
# Public Grafana endpoint
CM_UI_GRAFANA_URL: "{grafana_public_url}"

# Business mappings: здесь администратор описывает свои Keycloak groups.
extraEnv:
# SPRING_APPLICATION_JSON нужен для map-ключей с `/` в Keycloak group paths.
- name: SPRING_APPLICATION_JSON
value: |
{
"cm": {
"identity": {
"external-groups": {
"mappings": {
"[/local/selena-readers]": "local_selena_readers",
"[/local/selena-writers]": "local_selena_writers"
}
}
},
"security": {
"group-role-mappings": {
"[/cm/admins]": "cm_admin",
"[/cm/role-admins]": "cm_role_admin",
"[/cm/viewers]": "cm_viewer"
}
}
}
}

# Secret env vars для CM.
secrets:
# Имя Kubernetes Secret с DB password, Keycloak client secrets и encryption key.
existingSecret: selena-cm-secrets
# Keys из Secret, которые chart пробросит как env vars.
envKeys:
# JDBC URL CM PostgreSQL.
- CM_DB_URL
# Username CM PostgreSQL.
- CM_DB_USER
# Password CM PostgreSQL.
- CM_DB_PASSWORD
# Secret Keycloak client `selena-engine`.
- CM_KEYCLOAK_LOGIN_CLIENT_SECRET
# Secret Keycloak client `selena-cluster-manager-api`.
- CM_KEYCLOAK_ADMIN_CLIENT_SECRET
# Base64 encryption key для CM secrets в DB.
- CM_ENCRYPTION_KEY_BASE64
# Идентификатор активного encryption key.
- CM_ENCRYPTION_KEY_ID

# --- prod tuning (resources/scheduling) ---
# CM — JVM/Spring. memory limit должен быть заметно больше heap (-Xmx), иначе OOMKill.
# В chart по умолчанию replicaCount: 2 (HA через PostgreSQL snapshot + ShedLock).
resources:
requests:
cpu: "2"
memory: "2Gi"
limits:
cpu: "4"
memory: "4Gi"
# Toleration безвреден, даже если taint не задан.
#tolerations:
# - key: "{node_taint_key}"
# operator: "Equal"
# value: "{node_taint_value}"
# effect: "NoSchedule"
# Раскомментируйте после замены плейсхолдеров (иначе под останется Pending).
# nodeSelector:
# "{node_label_key}": "{node_label_value}"
# Для разнесения 2 реплик по узлам (лучше — topologySpreadConstraints):
# affinity: {}
# topologySpreadConstraints: []