Service Foundry
Young Gyu Kim <credemol@gmail.com>

How to Install Keycloak on Kubernetes using Helm

Introduction

Add and Update the Helm Repository

$ helm repo add bitnami https://charts.bitnami.com/bitnami
$ helm repo update bitnami

Pull the Keycloak Helm Chart

$ helm pull bitnami/keycloak -d $HOME/Dev/helm/charts/bitnami

$ ls -l $HOME/Dev/helm/charts/bitnami/keycloak-24.4.13.tgz

Get default values

$ helm show values bitnami/keycloak > values.yaml

Create a secret for admin password

# create a secret named keycload-credentials for the admin password having the key admin-password in namespace keycloak

$ kubectl create secret generic keycloak-credentials \
  --from-literal=admin-password=changeit \
  --namespace keycloak --dry-run=client -o yaml \
  | yq eval 'del(.metadata.creationTimestamp)' > keycloak-credentials-secret.yaml
$ kubectl create namespace keycloak
$ kubectl apply -f keycloak-credentials-secret.yaml

custom-values.yaml

custom-values.yaml
# 131
auth:
  adminUser: admin
  existingSecret: keycloak-credentials
  passwordSecretKey: admin-password

# 369
resources:
  requests:
    cpu: 500m
    memory: 512Mi
  limits:
    cpu: 1000m
    memory: 1024Mi


# 476
nodeSelector:
  agentpool: depnodes

service:
  type: LoadBalancer
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: ip

# 1327
postgresql:
  auth:
    postgresPassword: changeit
    username: keycloak
    password: changeit
    database: keycloak

Install Keycloak

$ helm upgrade --install keycloak $HOME/Dev/helm/charts/bitnami/keycloak-24.4.13.tgz \
  -f custom-values.yaml --namespace keycloak --create-namespace

# OR
$ helm upgrade --install keycloak bitnami/keycloak --version 24.4.13 \
  -f custom-values.yaml --namespace keycloak --create-namespace

Reference