feat: add Kubernetes and Flux MCP servers as pod sidecars #25

Merged
cpfarhood merged 1 commits from feat/mcp-sidecars into main 2026-02-21 00:33:20 +00:00
cpfarhood commented 2026-02-21 00:30:36 +00:00 (Migrated from github.com)

Summary

  • Add Kubernetes MCP server (quay.io/containers/kubernetes_mcp_server) and Flux MCP server (ghcr.io/controlplaneio-fluxcd/flux-operator-mcp) as sidecar containers in the devcontainer pod
  • Sidecars inherit the pod's ServiceAccount RBAC permissions — no separate deployments or service-level RBAC needed
  • Update .mcp.json to connect via localhost (:8080 for k8s, :8081 for flux) instead of cluster-internal service DNS
  • Both sidecars are enabled by default and configurable via mcpSidecars values

Test plan

  • Deploy with clusterAccess: readonly (or higher) and verify both sidecars start
  • Confirm Kubernetes MCP responds on http://localhost:8080/sse
  • Confirm Flux MCP responds on http://localhost:8081/sse
  • Verify sidecars can query cluster resources using the pod's ServiceAccount
  • Test with sidecars disabled (mcpSidecars.kubernetes.enabled: false) to confirm they're excluded from the pod spec

🤖 Generated with Claude Code
via Happy

## Summary - Add Kubernetes MCP server (`quay.io/containers/kubernetes_mcp_server`) and Flux MCP server (`ghcr.io/controlplaneio-fluxcd/flux-operator-mcp`) as sidecar containers in the devcontainer pod - Sidecars inherit the pod's ServiceAccount RBAC permissions — no separate deployments or service-level RBAC needed - Update `.mcp.json` to connect via localhost (`:8080` for k8s, `:8081` for flux) instead of cluster-internal service DNS - Both sidecars are enabled by default and configurable via `mcpSidecars` values ## Test plan - [ ] Deploy with `clusterAccess: readonly` (or higher) and verify both sidecars start - [ ] Confirm Kubernetes MCP responds on `http://localhost:8080/sse` - [ ] Confirm Flux MCP responds on `http://localhost:8081/sse` - [ ] Verify sidecars can query cluster resources using the pod's ServiceAccount - [ ] Test with sidecars disabled (`mcpSidecars.kubernetes.enabled: false`) to confirm they're excluded from the pod spec 🤖 Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering)
Sign in to join this conversation.