How can I persist user and realms on keycloak deployed on kubernetes pod. Whenever the pods get restart my data gets lost even though I have defined persistent volume and made database connection with postgres db for it.
Please find below my deployment.yaml
---
apiVersion: "apps/v1"
kind: "Deployment"
metadata:
name: "keycloak-development"
namespace: "development"
spec:
selector:
matchLabels:
app: "keycloak-development"
replicas: 1
strategy:
type: "RollingUpdate"
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
minReadySeconds: 5
template:
metadata:
labels:
app: "keycloak-development"
spec:
containers:
-
name: "keycloak-development"
image: "quay.io/keycloak/keycloak:10.0.1"
imagePullPolicy: "Always"
env:
-
name: "KEYCLOAK_USER"
value: "xxxxx"
-
name: "KEYCLOAK_PASSWORD"
value: "xxxx"
-
name: "PROXY_ADDRESS_FORWARDING"
value: "true"
-
name: "DB_ADDR"
value: "xxxx"
-
name: "DB_DATABASE"
value: "xxxx"
-
name: "DB_PASSWORD"
value: "xxxx"
-
name: "DB_USER"
value: "xxxx"
-
name: "DB_PORT"
value: "xxxx"
-
name: "KEYCLOAK_FRONTEND_URL"
value: "https://myhost.com/keycloak-development/auth/"
-
name: "KEYCLOAK_ADMIN_URL"
value: "https://myhost.com/keycloak-development/auth/realms/master/admin/"
ports:
- name: "http"
containerPort: 8080
- name: "https"
containerPort: 8443
volumeMounts:
-
name: "keycloak-persistent-storage"
mountPath: "/opt/jboss/keycloak/startup/elements"
readinessProbe:
httpGet:
path: "/auth/realms/master"
port: 8080
volumes:
-
name: "keycloak-persistent-storage"
persistentVolumeClaim:
claimName: "keycloak-pvc-development"
imagePullSecrets:
-
name: "keycloak"