Keycloak deployen

Lerne, wie du Keycloak als Helm Release über lowcloud deployst – inklusive Datenbankanbindung, Ingress-Konfiguration und Realm-Import.

Zuletzt aktualisiert: 27. März 2026

Keycloak ist eine quelloffene Identity- und Access-Management-Lösung. Mit dem lowcloud Helm Release deployst du Keycloak in deinem Kubernetes-Cluster – inklusive eingebetteter PostgreSQL-Datenbank, Ingress-Unterstützung und optionalem Realm-Import.

Chart-Registry: oci://registry-1.docker.io/cloudpirates/keycloak

Das Helm Release wird von den Cloud Pirates bereitgestellt und gepflegt.

Voraussetzungen

  • Ein lowcloud-Account mit aktivem Cluster
  • Zugriff auf das lowcloud Dashboard

Quick Start

Minimale Konfiguration, um Keycloak schnell zum Laufen zu bringen:

keycloak:
  adminUser: admin
  adminPassword: your-secure-password
  hostname: https://auth.example.com
  proxyHeaders: xforwarded

postgres:
  enabled: true
  auth:
    password: your-db-password
Setze keycloak.proxyHeaders: xforwarded, wenn Keycloak hinter einem nginx-Ingress oder einem anderen Reverse Proxy betrieben wird. Ohne diesen Parameter funktionieren Redirects und Token-Validierungen nicht korrekt.

Konfiguration

Die wichtigsten Konfigurationsoptionen im Überblick:

ParameterBeschreibungDefault
keycloak.adminUserBenutzername des Keycloak-Adminsadmin
keycloak.adminPasswordPasswort des Admins (oder existingSecret nutzen)
keycloak.hostnameÖffentliche URL der Keycloak-Instanz
keycloak.proxyHeadersProxy-Header-Modus (xforwarded oder forwarded)
keycloak.productionProduktionsmodus (start) oder Dev-Modustrue
postgres.enabledEingebettete PostgreSQL aktivierentrue
postgres.auth.passwordPasswort für die eingebettete Datenbank
ingress.enabledIngress aktivierenfalse
ingress.classNameIngress-Klasse (z.B. nginx)
cache.stackCache-Modus (local oder ispn für Multi-Replica)local

Schritt-für-Schritt Anleitung

1. Service hinzufügen

Navigiere im lowcloud Dashboard zu Add Service und wähle Helm Release aus. Suche im Popup nach der Keycloak-Registry:

oci://registry-1.docker.io/cloudpirates/keycloak

Wähle anschließend die gewünschte Version aus. Die Option "latest" ist in den meisten Fällen eine gute Wahl.

2. Values konfigurieren

Gib dem Service einen aussagekräftigen Namen (z.B. keycloak). Passe dann die Values an:

keycloak:
  adminUser: admin
  adminPassword: your-secure-password
  hostname: https://auth.example.com
  proxyHeaders: xforwarded

postgres:
  enabled: true
  auth:
    password: your-db-password

ingress:
  enabled: true
  className: nginx
  hosts:
    - host: auth.example.com
      paths:
        - path: /
          pathType: Prefix

3. Deployment starten

Öffne den erstellten Service und klicke auf Deploy. Warte, bis das Label im Dashboard auf "Deployed" wechselt. Keycloak ist anschließend über die konfigurierte Hostname-URL erreichbar.

Erweiterte Values

Für den produktiven Einsatz empfiehlt sich eine vollständige Konfiguration mit Persistence, Resource Limits und TLS:

keycloak:
  adminUser: admin
  adminPassword: your-secure-password
  hostname: https://auth.example.com
  proxyHeaders: xforwarded
  production: true

postgres:
  enabled: true
  auth:
    password: your-db-password
  primary:
    persistence:
      enabled: true
      size: 10Gi
    resources:
      requests:
        cpu: 250m
        memory: 256Mi
      limits:
        cpu: 500m
        memory: 512Mi

ingress:
  enabled: true
  className: nginx
  hosts:
    - host: auth.example.com
      paths:
        - path: /
          pathType: Prefix
  tls:
    - secretName: auth-tls
      hosts:
        - auth.example.com

resources:
  requests:
    cpu: 500m
    memory: 512Mi
  limits:
    cpu: '2'
    memory: 1Gi

Realm-Import

Du kannst beim Start automatisch einen Realm importieren. Hinterlege deine Realm-Konfiguration als Kubernetes Secret und referenziere sie:

realm:
  import: true
  existingSecret: my-realm-secret

Das Secret muss einen Key realm.json mit dem Realm-JSON-Inhalt enthalten.

Externe Datenbank

Falls du eine bereits vorhandene PostgreSQL-Instanz nutzen möchtest, deaktiviere die eingebettete Datenbank und konfiguriere die externe Verbindung:

postgres:
  enabled: false

database:
  type: postgres
  host: my-postgres-service
  port: '5432'
  name: keycloak
  username: keycloak
  password: your-db-password
Wenn du eine externe PostgreSQL-Instanz aus einem anderen Helm Release verwendest, verbinde die beiden Services über Helm Release Dependencies im lowcloud Dashboard.