No MCP server ran on central, so remote agents reached dev-hub only through a reverse tunnel back to the workstation — routing a request for a service on their own machine out to another host and back. Adds a gated mcp Deployment and ClusterIP Service running the same image with `-m mcp_server.server`, API_BASE defaulted to the in-cluster API Service, and tcpSocket probes. No Ingress: the MCP layer proxies an unauthenticated API and must not be reachable from outside the cluster. Two fixes were needed before the manifests could work: - server.py hardcoded host="127.0.0.1". A Service routes to the pod IP, so a loopback bind is unreachable. Now MCP_HOST, still defaulting to loopback so local runs do not silently expose an unauthenticated proxy. - The container runs `-m mcp_server.server`, not the file path, so /app lands on sys.path rather than /app/mcp_server. mcp.enabled stays false in the deploy values: the running image predates MCP_HOST, so enabling it before the tag is bumped would ship a pod that never becomes reachable. Refs CUST-WP-0067-T08 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Assistant: claude-code Assistant-Model: opus Assistant-Process: 2583210@bnt-lap001 Assistant-Session: f2bff2d5-e9b2-4338-92ca-10282a927006
54 lines
1.9 KiB
Smarty
54 lines
1.9 KiB
Smarty
{{- define "statehub.fullname" -}}
|
|
{{- $name := default .Chart.Name .Values.nameOverride -}}
|
|
{{- printf "%s" $name | trunc 63 | trimSuffix "-" -}}
|
|
{{- end -}}
|
|
|
|
{{- define "statehub.labels" -}}
|
|
app: {{ include "statehub.fullname" . }}
|
|
app.kubernetes.io/name: {{ include "statehub.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 "+" "_" }}
|
|
railiance.io/layer: s5-app
|
|
{{- end -}}
|
|
|
|
{{- define "statehub.selectorLabels" -}}
|
|
app: {{ include "statehub.fullname" . }}
|
|
{{- end -}}
|
|
|
|
{{- define "statehub.image" -}}
|
|
{{- if not .Values.image.tag -}}
|
|
{{- fail "image.tag is required - pin it in deploy/railiance/apps/helm/state-hub-values.yaml or pass --set image.tag=<sha>" -}}
|
|
{{- end -}}
|
|
{{- printf "%s:%s" .Values.image.repository .Values.image.tag -}}
|
|
{{- end -}}
|
|
|
|
{{- define "statehub.mcpFullname" -}}
|
|
{{- printf "%s-mcp" (include "statehub.fullname" .) | trunc 63 | trimSuffix "-" -}}
|
|
{{- end -}}
|
|
|
|
{{- define "statehub.mcpLabels" -}}
|
|
app: {{ include "statehub.mcpFullname" . }}
|
|
app.kubernetes.io/name: {{ include "statehub.mcpFullname" . }}
|
|
app.kubernetes.io/component: mcp
|
|
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 "+" "_" }}
|
|
railiance.io/layer: s5-app
|
|
{{- end -}}
|
|
|
|
{{- define "statehub.mcpSelectorLabels" -}}
|
|
app: {{ include "statehub.mcpFullname" . }}
|
|
{{- end -}}
|
|
|
|
{{- define "statehub.mcpApiBase" -}}
|
|
{{- if .Values.mcp.apiBase -}}
|
|
{{- .Values.mcp.apiBase -}}
|
|
{{- else -}}
|
|
{{- printf "http://%s:%v" (include "statehub.fullname" .) .Values.service.port -}}
|
|
{{- end -}}
|
|
{{- end -}}
|