@@ -35,7 +35,7 @@ Common labels
3535{ {- define " keycloak.labels" -} }
3636helm.sh/chart: { { include " keycloak.chart" . } }
3737{ { include " keycloak.selectorLabels" . } }
38- app.kubernetes.io/version: { { .Values.image.tag | default .Chart.AppVersion | toString | trunc 63 | quote } }
38+ app.kubernetes.io/version: { { include " keycloak.imageVersion " . | quote } }
3939app.kubernetes.io/managed-by: { { .Release.Service } }
4040{ {- end } }
4141
@@ -85,3 +85,34 @@ Renders a complete tree, even values that contains template.
8585 { {- tpl (.value | toYaml) .context } }
8686 { {- end } }
8787{ {- end -} }
88+
89+ { {/*
90+ Extract version from tag, removing digest suffix if present.
91+ Supports formats: " 1.2.3" , " 1.2.3@sha256:abc123"
92+ Returns only the version part (before @) for use in Kubernetes labels.
93+ */} }
94+ { {- define " keycloak.imageVersion" -} }
95+ { {- $tag := .Values.image.tag | default .Chart.AppVersion | toString -} }
96+ { {- $parts := splitList " @" $tag -} }
97+ { {- first $parts | trunc 63 -} }
98+ { {- end -} }
99+
100+ { {/*
101+ Build the full image reference.
102+ Supports multiple formats:
103+ - tag only: " repository:tag"
104+ - digest only: " repository@digest" (when image.digest is set)
105+ - tag@digest in tag field: " repository:tag@digest"
106+ */} }
107+ { {- define " keycloak.image" -} }
108+ { {- $repository := .Values.image.repository -} }
109+ { {- $digest := .Values.image.digest | default " " -} }
110+ { {- if $digest -} }
111+ { {- /* Digest field is set - use digest only */ -} }
112+ { {- printf " %s@%s" $repository $digest -} }
113+ { {- else -} }
114+ { {- $tag := .Values.image.tag | default .Chart.AppVersion | toString -} }
115+ { {- /* Tag may contain digest (tag@digest format from Renovate) */ -} }
116+ { {- printf " %s:%s" $repository $tag -} }
117+ { {- end -} }
118+ { {- end -} }
0 commit comments