{{/* 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 -}}