Added
- The standalone umbrella’s wiring, ported into the connectivity chart and gated on the component toggles the meta chart forwards (roadmap#4348, PRD Q6): with
components.backstageon, the portal’s Agent Platform app-config ConfigMapagent-platform-backstage-app-config(the login provider fromglobal.identity, one installationbackstage.installationName, the in-cluster Kubernetes and muster entries,agentPlatform.fluxServiceAccountNamefrom the onekagent.fluxServiceAccountNamevalue, the skill repositories, the kagent / model-manager API routes when on, the pg block forbackstage.database.engine: postgresql), the publicHTTPRoutebackstage.<domain>and a post-install/post-upgrade config-reload hook that stamps the rendered app-config’s checksum into the Backstage Deployment’s pod template (kubectl set envby label: a no-op while unchanged, a rolling update on a change, nothing on a first install) with its network policy in both flavors (templates/backstage/); withcomponents.mcp-kuberneteson and muster on, theMCPServerCR that registers the server with muster — OAuth,forwardToken,requiredAudiences: [mcp-kubernetes.kubernetesAudience], theinfrastructuretool-group label (templates/mcp-kubernetes/); with the new feature switchcomponents.modelServingon (an entry withoutchart:: the loop renders no release for it and forwards its flag like every other; a top-level block named after a switch —modelServing:— travels withforwardAllValuesonly while the switch is on, so a live connectivity chart that predates the block never sees it), model serving on KServe with vLLM from themodelServing:block — theClusterServingRuntime, the seven shipped serving presets and their discovery ConfigMap, the Hugging Face cache PVC, the Kyverno cache policies (modelServing.policies.enabled: auto, resolved with the other cluster-shape knobs) and the serving namespace’s network policies in both flavors (templates/model-serving/,files/model-serving/), plus the guard that a model-manager on thekservebackend agrees with the layer; the render fails with a clear message whencomponents.modelServingis on withoutcomponents.kserve-crdandcomponents.kserve-resources(or a cluster that serves theserving.kserve.ioAPIs;modelServing.kserve.requireApi: falseskips the check); and withcomponents.kserve-resources/components.kserve-llmisvc-resourceson, the controllers’ network policies and guards (templates/kserve/). The wiring’s own keys keep the standalone’s names minuscomponents.—backstage.<hostname, parentRefs, installationName, extraScopes, startUrlSearchParams, enabledExtensions, disabledExtensions, skillsRepositories, catalogs, configReload>andmcp-kubernetes.kubernetesAudiencelive in the chart blocks and are dropped from the values forwarded to the strict component charts (components.backstage.omitKeys,components.mcp-kubernetes.omitKeys);modelServing.*is the standalone’scomponents.modelServing.*one-to-one;components.kserve.*maps onto the four kserve component toggles (README, “Turning on the standalone’s extras”). The seven values blocks of the extras are no longer held back from the connectivity release (components.agent-platform-connectivity.omitKeysis empty), the connectivity releasedependsOnmuster(theMCPServerCRD) andbackstagedependsOnagent-platform-connectivity(its pod mounts the ConfigMap rendered there). The kagent UI route guard from the standalone lands too: akagent.uiRoute.hostnameoverride with an oauth2-proxyredirect-urlstill derived fromglobal.domainfails the render.global.identity.ca(secretName,key) is declared by the connectivity chart and accepted by the meta chart (global.identityisadditionalProperties: truethere — no default, so theglobalblock injected into every component release is unchanged).make verify-wiring(in CI) asserts off = no object, the objects and guards on, both flavors and the vanilla shape, and the meta chart’s forwarding. No installation needs to act: every toggle is off on the fleet; the connectivityHelmRelease’s values gain the seven blocks and themodelServingroster line, itsdependsOngainsmuster, and the connectivity chart renders byte-identical objects from them — one Helm revision of that release, no object change, no pod rolled.