Add helm checks for label constraints

This commit is contained in:
Nikola Jokic 2026-03-19 12:48:11 +01:00
parent ba73e39fa9
commit d479af7342
No known key found for this signature in database
GPG Key ID: 419BB425B0E501B0
3 changed files with 51 additions and 1 deletions

View File

@ -84,6 +84,14 @@ spec:
runnerGroup: {{ .Values.scaleset.runnerGroup | quote }}
runnerScaleSetName: {{ .Values.scaleset.name | quote }}
{{- if and .Values.scaleset.labels (kindIs "slice" .Values.scaleset.labels) }}
{{- range .Values.scaleset.labels }}
{{- if empty . }}
{{- fail "scaleset.labels contains an empty string, each label must be a non-empty string of less than 256 characters" }}
{{- end }}
{{- if ge (len .) 256 }}
{{- fail "scaleset.labels contains a label that is 256 characters or more, each label must be a non-empty string of less than 256 characters" }}
{{- end }}
{{- end }}
runnerScaleSetLabels:
{{- toYaml .Values.scaleset.labels | nindent 4 }}
{{- end }}

View File

@ -21,4 +21,38 @@ tests:
value: "linux"
- equal:
path: spec.runnerScaleSetLabels[1]
value: "x64"
value: "x64"
- it: should fail when a scaleset label is empty
set:
scaleset.name: "test"
scaleset.labels:
- "linux"
- ""
auth.url: "https://github.com/org"
auth.githubToken: "gh_token12345"
controllerServiceAccount.name: "arc"
controllerServiceAccount.namespace: "arc-system"
release:
name: "test-name"
namespace: "test-namespace"
asserts:
- failedTemplate:
errorMessage: "scaleset.labels contains an empty string, each label must be a non-empty string of less than 256 characters"
- it: should fail when a scaleset label is 256 characters or more
set:
scaleset.name: "test"
scaleset.labels:
- "linux"
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
auth.url: "https://github.com/org"
auth.githubToken: "gh_token12345"
controllerServiceAccount.name: "arc"
controllerServiceAccount.namespace: "arc-system"
release:
name: "test-name"
namespace: "test-namespace"
asserts:
- failedTemplate:
errorMessage: "scaleset.labels contains a label that is 256 characters or more, each label must be a non-empty string of less than 256 characters"

View File

@ -75,6 +75,14 @@ spec:
runnerScaleSetName: {{ . }}
{{- end }}
{{- if and .Values.scaleSetLabels (kindIs "slice" .Values.scaleSetLabels) }}
{{- range .Values.scaleSetLabels }}
{{- if empty . }}
{{- fail "scaleSetLabels contains an empty string, each label must be a non-empty string of less than 256 characters" }}
{{- end }}
{{- if ge (len .) 256 }}
{{- fail "scaleSetLabels contains a label that is 256 characters or more, each label must be a non-empty string of less than 256 characters" }}
{{- end }}
{{- end }}
runnerScaleSetLabels:
{{- toYaml .Values.scaleSetLabels | nindent 4 }}
{{- end }}