Skip to content

Commit b14c1db

Browse files
committed
mcp validations
1 parent 8d4cc51 commit b14c1db

File tree

4 files changed

+64
-2
lines changed

4 files changed

+64
-2
lines changed

charts/mcp-server/examples/node-chrome-devtools-bridge.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,9 @@ servers:
1616
register:
1717
enabled: false
1818

19+
# Disable Unla subchart for this standalone example
20+
unla:
21+
enabled: false
22+
1923
# The mcp-proxy bridge keeps the stdio server alive and converts to HTTP transport
2024
# Gateway is managed by the Unla subchart (Service: <release-name>, port 5235)
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
{{- /*
2+
Validation: if unla.enabled=false, no server may have register.enabled=true (default true).
3+
This prevents silently skipping registration while the user expects it.
4+
*/ -}}
5+
{{- $unla := .Values.unla -}}
6+
{{- $unlaDisabled := false -}}
7+
{{- if kindIs "map" $unla -}}
8+
{{- if kindIs "bool" $unla.enabled -}}
9+
{{- $unlaDisabled = (not $unla.enabled) -}}
10+
{{- end -}}
11+
{{- end -}}
12+
{{- if $unlaDisabled -}}
13+
{{- $bad := list -}}
14+
{{- range $i, $s := (default (list) .Values.servers) -}}
15+
{{- $reg := (get $s "register") -}}
16+
{{- $regMap := ternary $reg (dict) (kindIs "map" $reg) -}}
17+
{{- /* default register.enabled=true when omitted */ -}}
18+
{{- $regEnabled := (default true ($regMap.enabled)) -}}
19+
{{- if $regEnabled -}}
20+
{{- $name := ($s.name | default (printf "srv-%d" $i)) -}}
21+
{{- $bad = append $bad $name -}}
22+
{{- end -}}
23+
{{- end -}}
24+
{{- if gt (len $bad) 0 -}}
25+
{{- fail (printf "unla.enabled=false but these servers have register.enabled=true: %s. Either set unla.enabled=true or set register.enabled=false for these servers." (join ", " $bad)) -}}
26+
{{- end -}}
27+
{{- end -}}
28+

charts/mcp-server/templates/gateway-register-config.yaml

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,20 @@
11
{{- $hasServers := and (hasKey .Values "servers") (gt (len .Values.servers) 0) -}}
2-
{{- if and $hasServers (.Values.unla.enabled | default true) }}
2+
{{- $ctx := dict "hasReg" false -}}
3+
{{- range $i, $s := .Values.servers -}}
4+
{{- $reg := (get $s "register") -}}
5+
{{- $regMap := ternary $reg (dict) (kindIs "map" $reg) -}}
6+
{{- $enabled := (default true ($regMap.enabled)) -}}
7+
{{- if $enabled -}}
8+
{{- $_ := set $ctx "hasReg" true -}}
9+
{{- end -}}
10+
{{- end -}}
11+
{{- $unlaFlag := true -}}
12+
{{- if kindIs "map" .Values.unla -}}
13+
{{- if kindIs "bool" .Values.unla.enabled -}}
14+
{{- $unlaFlag = .Values.unla.enabled -}}
15+
{{- end -}}
16+
{{- end -}}
17+
{{- if and $hasServers $unlaFlag ($ctx.hasReg) }}
318
apiVersion: v1
419
kind: ConfigMap
520
metadata:

charts/mcp-server/templates/gateway-register-job.yaml

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,20 @@
11
{{- $hasServers := and (hasKey .Values "servers") (gt (len .Values.servers) 0) -}}
2-
{{- if and $hasServers (.Values.unla.enabled | default true) }}
2+
{{- $ctx := dict "hasReg" false -}}
3+
{{- range $i, $s := .Values.servers -}}
4+
{{- $reg := (get $s "register") -}}
5+
{{- $regMap := ternary $reg (dict) (kindIs "map" $reg) -}}
6+
{{- $enabled := (default true ($regMap.enabled)) -}}
7+
{{- if $enabled -}}
8+
{{- $_ := set $ctx "hasReg" true -}}
9+
{{- end -}}
10+
{{- end -}}
11+
{{- $unlaFlag := true -}}
12+
{{- if kindIs "map" .Values.unla -}}
13+
{{- if kindIs "bool" .Values.unla.enabled -}}
14+
{{- $unlaFlag = .Values.unla.enabled -}}
15+
{{- end -}}
16+
{{- end -}}
17+
{{- if and $hasServers $unlaFlag ($ctx.hasReg) }}
318
apiVersion: batch/v1
419
kind: Job
520
metadata:

0 commit comments

Comments
 (0)