Skip to content

Commit 27934be

Browse files
lucasrod16claude
andcommitted
Validate config.Kubernetes does not conflict with backends.kubernetes
Fail template rendering when config.Kubernetes.Enabled is false but backends.kubernetes.enabled is true, or when config.Kubernetes.Namespace differs from backends.kubernetes.namespace. These conflicts would produce an inconsistent gcfg where the chart enables the runner but the config disables it. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 7b22e7f commit 27934be

File tree

2 files changed

+43
-0
lines changed

2 files changed

+43
-0
lines changed

charts/rstudio-connect/templates/NOTES.txt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,18 @@ Please consider removing this configuration value.
3838
{{- fail "\n\n`launcher.enabled` and `backends.kubernetes.enabled` cannot both be true"}}
3939
{{- end }}
4040

41+
{{- if .Values.backends.kubernetes.enabled }}
42+
{{- $configEnabled := dig "Kubernetes" "Enabled" "" .Values.config }}
43+
{{- if or (eq (printf "%v" $configEnabled) "false") (eq (printf "%v" $configEnabled) "0") }}
44+
{{- fail "\n\n`config.Kubernetes.Enabled` is set to false but `backends.kubernetes.enabled` is true. Remove `config.Kubernetes.Enabled` — the chart sets it automatically." }}
45+
{{- end }}
46+
{{- $configNs := dig "Kubernetes" "Namespace" "" .Values.config }}
47+
{{- $chartNs := default $.Release.Namespace .Values.backends.kubernetes.namespace }}
48+
{{- if and $configNs (ne $configNs $chartNs) }}
49+
{{- fail (printf "\n\n`config.Kubernetes.Namespace` (%s) conflicts with `backends.kubernetes.namespace` (%s). Remove `config.Kubernetes.Namespace` — the chart sets it automatically from `backends.kubernetes.namespace`." $configNs $chartNs) }}
50+
{{- end }}
51+
{{- end }}
52+
4153
{{- if and .Values.launcher.useTemplates .Values.launcher.enabled }}
4254
{{- range $k,$v := .Values.launcher.launcherKubernetesProfilesConf }}
4355
{{- if hasKey $v "job-json-overrides" }}

charts/rstudio-connect/tests/kubernetes_test.yaml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,37 @@ tests:
1919
- failedTemplate:
2020
errorPattern: "launcher.enabled.*and.*backends.kubernetes.enabled.*cannot both be true"
2121

22+
- it: should fail when config.Kubernetes.Enabled conflicts with backends.kubernetes.enabled
23+
template: NOTES.txt
24+
set:
25+
launcher:
26+
enabled: false
27+
backends:
28+
kubernetes:
29+
enabled: true
30+
config:
31+
Kubernetes:
32+
Enabled: "false"
33+
asserts:
34+
- failedTemplate:
35+
errorPattern: "config.Kubernetes.Enabled.*is set to false.*backends.kubernetes.enabled.*is true"
36+
37+
- it: should fail when config.Kubernetes.Namespace conflicts with backends.kubernetes.namespace
38+
template: NOTES.txt
39+
set:
40+
launcher:
41+
enabled: false
42+
backends:
43+
kubernetes:
44+
enabled: true
45+
namespace: correct-ns
46+
config:
47+
Kubernetes:
48+
Namespace: wrong-ns
49+
asserts:
50+
- failedTemplate:
51+
errorPattern: "config.Kubernetes.Namespace.*conflicts with.*backends.kubernetes.namespace"
52+
2253
# Test backends.kubernetes.enabled creates configmap entries for job base
2354
- it: should create job.yaml in configmap when backends.kubernetes.enabled
2455
template: configmap.yaml

0 commit comments

Comments
 (0)