Fixed
- The egress rules to kagent’s built-in tool server name the namespace the kagent chart renders it into (giantswarm/agent-platform#421): the kagent-tools subchart renders its Deployment and Services into
kagent.kagent-tools.namespaceOverride, else the kagent release’s namespace, and the kagent chart composes thekagent-tool-serverRemoteMCPServer URL from the same key — but the connectivity chart’s controller egress and the actors’ egress-gateway rule fell back to the kagent namespace (kagent.namespaceOverride, which moves the controller and not the subchart), and the meta chart set no override for the tools subchart. On graveler, the one installation withkagent.kagent-tools.enabled: true, the server rendered intoagent-platform, the URL followed it, the rule saidkagent, and the controller’s discovery ran into Cilium’s default-deny:Accepted: False — context deadline exceeded, a reconciler error a minute (no fleet agent binds the server; the Generic chart binds muster). Now the meta chart keeps the tool server in the kagent namespace with every other kagent subchart (kagent.kagent-tools.namespaceOverride: kagent; the connectivity chart carries no default of its own for the key, so the two charts can never read it differently), and the connectivity chart derives the rules’ namespace exactly as the kagent chart does — the override, else the release namespace (agent-platform.kagentTools.*, one derivation for both policies) — so the rules follow wherever the chart renders the server, override or not.make verify-kagent-netpolasserts both fallbacks and, throughtests/verify-kagent-tools-namespace.py, renders the kagent chart the range resolves to with the values the meta chart forwards and ties the rules’ namespace and port to the rendered Deployment’s namespace and the RemoteMCPServer URL. Installations act: none — the release rolls through both ranges; on an installation with the tool server on, its Deployment, Services, ServiceAccount and ClusterRoleBinding subject move from the release namespace to the kagent namespace (Helm delete + create), and the RemoteMCPServer becomesAccepted: Trueon the controller’s next retry.