From bf6fb126119b079a8673f164117012b51348f670 Mon Sep 17 00:00:00 2001 From: Artem Bortnikov Date: Tue, 10 Mar 2026 11:50:42 +0000 Subject: [PATCH 1/2] feat: add storageclass support to keycloak Signed-off-by: Artem Bortnikov --- packages/system/keycloak/templates/db.yaml | 3 +++ packages/system/keycloak/templates/storageclass.yaml | 10 ++++++++++ packages/system/keycloak/values.yaml | 5 +++++ 3 files changed, 18 insertions(+) create mode 100644 packages/system/keycloak/templates/storageclass.yaml diff --git a/packages/system/keycloak/templates/db.yaml b/packages/system/keycloak/templates/db.yaml index 1cd98ffc..48e189f9 100644 --- a/packages/system/keycloak/templates/db.yaml +++ b/packages/system/keycloak/templates/db.yaml @@ -6,6 +6,9 @@ spec: instances: 2 storage: size: 20Gi + {{- if .Values.storageClass.enable }} + storageClass: keycloak-db-retain + {{- end }} {{- if .Values._cluster.scheduling }} {{- $rawConstraints := get .Values._cluster.scheduling "globalAppTopologySpreadConstraints" }} {{- if $rawConstraints }} diff --git a/packages/system/keycloak/templates/storageclass.yaml b/packages/system/keycloak/templates/storageclass.yaml new file mode 100644 index 00000000..a252f345 --- /dev/null +++ b/packages/system/keycloak/templates/storageclass.yaml @@ -0,0 +1,10 @@ +{{- if .Values.storageClass.enable }} +apiVersion: storage.k8s.io/v1 +kind: StorageClass +metadata: + name: keycloak-db-retain +provisioner: {{ required ".Values.storageClass.provisioner is required when storageClass.enable is true" .Values.storageClass.provisioner }} +reclaimPolicy: Retain +volumeBindingMode: WaitForFirstConsumer +allowVolumeExpansion: true +{{- end }} diff --git a/packages/system/keycloak/values.yaml b/packages/system/keycloak/values.yaml index 708edc2c..4a3b728d 100644 --- a/packages/system/keycloak/values.yaml +++ b/packages/system/keycloak/values.yaml @@ -10,6 +10,11 @@ ingress: nginx.ingress.kubernetes.io/session-cookie-expires: "86400" nginx.ingress.kubernetes.io/session-cookie-max-age: "86400" nginx.ingress.kubernetes.io/session-cookie-name: "keycloak-cookie" + +storageClass: + enable: false + provisioner: "" + resources: requests: memory: 500Mi From 702ec703384a2e8faeaae7ad195ed70aa1f16f94 Mon Sep 17 00:00:00 2001 From: Artem Bortnikov Date: Tue, 10 Mar 2026 15:28:04 +0000 Subject: [PATCH 2/2] chore: configurable storageClass name Signed-off-by: Artem Bortnikov --- packages/system/keycloak/templates/db.yaml | 2 +- packages/system/keycloak/templates/storageclass.yaml | 4 ++-- packages/system/keycloak/values.yaml | 1 + 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/system/keycloak/templates/db.yaml b/packages/system/keycloak/templates/db.yaml index 48e189f9..82cf8c45 100644 --- a/packages/system/keycloak/templates/db.yaml +++ b/packages/system/keycloak/templates/db.yaml @@ -7,7 +7,7 @@ spec: storage: size: 20Gi {{- if .Values.storageClass.enable }} - storageClass: keycloak-db-retain + storageClass: {{ .Values.storageClass.name | default "keycloak-db-retain" }} {{- end }} {{- if .Values._cluster.scheduling }} {{- $rawConstraints := get .Values._cluster.scheduling "globalAppTopologySpreadConstraints" }} diff --git a/packages/system/keycloak/templates/storageclass.yaml b/packages/system/keycloak/templates/storageclass.yaml index a252f345..778deb35 100644 --- a/packages/system/keycloak/templates/storageclass.yaml +++ b/packages/system/keycloak/templates/storageclass.yaml @@ -2,8 +2,8 @@ apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: - name: keycloak-db-retain -provisioner: {{ required ".Values.storageClass.provisioner is required when storageClass.enable is true" .Values.storageClass.provisioner }} + name: {{ .Values.storageClass.name | default "keycloak-db-retain" }} +provisioner: {{ required ".Values.storageClass.provisioner is required when storageClass.enable is true" .Values.storageClass.provisioner | quote }} reclaimPolicy: Retain volumeBindingMode: WaitForFirstConsumer allowVolumeExpansion: true diff --git a/packages/system/keycloak/values.yaml b/packages/system/keycloak/values.yaml index 4a3b728d..b367e380 100644 --- a/packages/system/keycloak/values.yaml +++ b/packages/system/keycloak/values.yaml @@ -13,6 +13,7 @@ ingress: storageClass: enable: false + name: "" provisioner: "" resources: