railiance-apps/charts/vergabe-teilnahme/templates/_helpers.tpl
tegwick 959eba637f Prepare durable isolated Vergabe pilot deployment and recovery
Assistant: codex
Assistant-Model: gpt-6-astra
Assistant-Session: 01a07ff8-19d0-7820-b4d0-1353833cb7fc
2026-09-11 16:35:14 +02:00

54 lines
2.1 KiB
Smarty

{{/*
Chart name + release name produce a unique resource name.
*/}}
{{- define "vergabe.fullname" -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- printf "%s" $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- define "vergabe.labels" -}}
app.kubernetes.io/name: {{ include "vergabe.fullname" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
app.kubernetes.io/part-of: railiance-apps
helm.sh/chart: {{ printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" }}
{{- end -}}
{{- define "vergabe.selectorLabels" -}}
app.kubernetes.io/name: {{ include "vergabe.fullname" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}}
{{- define "vergabe.image" -}}
{{- if .Values.image.digest -}}
{{- if not (regexMatch "^sha256:[a-f0-9]{64}$" .Values.image.digest) -}}
{{- fail "image.digest must be a sha256 OCI digest" -}}
{{- end -}}
{{- printf "%s@%s" .Values.image.repository .Values.image.digest -}}
{{- else -}}
{{- if not .Values.image.tag -}}
{{- fail "image.tag is required — pin it in helm/vergabe-teilnahme-values.yaml" -}}
{{- end -}}
{{- printf "%s:%s" .Values.image.repository .Values.image.tag -}}
{{- end -}}
{{- end -}}
{{- define "vergabe.validatePilot" -}}
{{- if .Values.pilot.enabled -}}
{{- if ne (int .Values.replicaCount) 1 -}}
{{- fail "invited pilot requires exactly one application replica" -}}
{{- end -}}
{{- if or (not .Values.persistence.media.enabled) (not .Values.persistence.appState.enabled) -}}
{{- fail "invited pilot requires persistent media and appState" -}}
{{- end -}}
{{- if not .Values.image.digest -}}
{{- fail "invited pilot requires an immutable image.digest" -}}
{{- end -}}
{{- $mediaClaim := default (printf "%s-media" (include "vergabe.fullname" .)) .Values.persistence.media.existingClaim -}}
{{- $stateClaim := default (printf "%s-app-state" (include "vergabe.fullname" .)) .Values.persistence.appState.existingClaim -}}
{{- if eq $mediaClaim $stateClaim -}}
{{- fail "media and appState must use distinct claims; operational state must not be downloadable" -}}
{{- end -}}
{{- end -}}
{{- end -}}