diff --git a/charts/gha-runner-scale-set-experimental/templates/autoscalingrunnserset.yaml b/charts/gha-runner-scale-set-experimental/templates/autoscalingrunnserset.yaml index f0d2c8a4..b0e60c1f 100644 --- a/charts/gha-runner-scale-set-experimental/templates/autoscalingrunnserset.yaml +++ b/charts/gha-runner-scale-set-experimental/templates/autoscalingrunnserset.yaml @@ -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 }} diff --git a/charts/gha-runner-scale-set-experimental/tests/autoscaling_runner_set_scale_set_labels_test.yaml b/charts/gha-runner-scale-set-experimental/tests/autoscaling_runner_set_scale_set_labels_test.yaml index 6176694b..b8fb8d9e 100644 --- a/charts/gha-runner-scale-set-experimental/tests/autoscaling_runner_set_scale_set_labels_test.yaml +++ b/charts/gha-runner-scale-set-experimental/tests/autoscaling_runner_set_scale_set_labels_test.yaml @@ -21,4 +21,38 @@ tests: value: "linux" - equal: path: spec.runnerScaleSetLabels[1] - value: "x64" \ No newline at end of file + 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" \ No newline at end of file diff --git a/charts/gha-runner-scale-set/templates/autoscalingrunnerset.yaml b/charts/gha-runner-scale-set/templates/autoscalingrunnerset.yaml index 0771e9c9..384395b8 100644 --- a/charts/gha-runner-scale-set/templates/autoscalingrunnerset.yaml +++ b/charts/gha-runner-scale-set/templates/autoscalingrunnerset.yaml @@ -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 }}