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

keycloak — values

Файл values для чарта keycloak.

keycloak-values.yaml
# Имя Keycloak Service/StatefulSet для команд из этой документации.
fullnameOverride: selena-keycloak

# Public hostname Keycloak; должен совпадать с issuer, redirect и logout URLs.
args:
# Production start mode Keycloak.
- start
# Вставьте внешний URL Keycloak, например https://keycloak.example.com.
- --hostname={keycloak_public_url}
# Разрешает работу за Ingress/LB, где Host приходит через proxy headers.
- --hostname-strict=false

# Realm URL должен быть `{keycloak_public_url}/realms/selena`, без legacy `/auth`.
http:
# "/" убирает старый prefix `/auth` из публичных Keycloak URLs.
relativePath: "/"

# Настройки proxy-aware режима Keycloak.
proxy:
# Keycloak читает X-Forwarded-* headers от Ingress/LB.
mode: xforwarded
# TLS обычно завершается снаружи, внутри кластера Keycloak слушает HTTP.
http:
# Включает HTTP listener внутри Kubernetes.
enabled: true

# Kubernetes Service Keycloak.
service:
# Отключает отдельный HTTPS service port в minimal profile.
httpsPort: null

# Bootstrap admin читается из Secret, чтобы пароль не лежал в values.yaml.
extraEnv: |
- name: KC_BOOTSTRAP_ADMIN_USERNAME
valueFrom:
secretKeyRef:
name: selena-keycloak-admin
key: admin-user
- name: KC_BOOTSTRAP_ADMIN_PASSWORD
valueFrom:
secretKeyRef:
name: selena-keycloak-admin
key: admin-password

# Подключение Keycloak к PostgreSQL.
database:
# Selena deployment использует PostgreSQL как persistent storage Keycloak.
vendor: postgres
# DNS/service host PostgreSQL.
hostname: "{postgres_service_host}"
# PostgreSQL port.
port: 5432
# Database для Keycloak.
database: keycloak
# DB user, созданный bundled PostgreSQL chart-ом.
username: selena
# Secret с DB password.
existingSecret: selena-keycloak-db
# Key внутри Secret с DB password.
existingSecretKey: password

# --- prod tuning (resources/scheduling) ---
# Keycloak — JVM. memory limit должен быть заметно больше heap (-Xmx), иначе OOMKill.
# Согласуйте с JAVA_OPTS_APPEND.
resources:
requests:
cpu: "1"
memory: "1Gi"
limits:
cpu: "2"
memory: "2Gi"
# Toleration безвреден, даже если taint не задан.
#tolerations:
# - key: "{node_taint_key}"
# operator: "Equal"
# value: "{node_taint_value}"
# effect: "NoSchedule"
# Раскомментируйте после замены плейсхолдеров (иначе под останется Pending).
# nodeSelector:
# "{node_label_key}": "{node_label_value}"
# Для HA задайте soft podAntiAffinity по hostname и:
# replicas: 2
# podDisruptionBudget:
# minAvailable: 1
# affinity: {}