agent-platform release v3.15.0
Added
- Seven components, off by default — the extras the agent-platform-standalone umbrella carried as Helm dependencies on top of this roster, so a cluster with none of them turns them on from the same
components: map: components.backstage (the Giant Swarm Backstage portal, 0.x), components.mcp-kubernetes (>=1.1.1 <2.0.0, the global.identity fallbacks its block relies on), components.cloudnative-pg (the upstream CloudNativePG operator from oci://ghcr.io/cloudnative-pg/charts, 0.29.x — one chart minor is one operator line and an operator upgrade rolls every instance pod, so moving it is a deliberate edit) and the four KServe charts components.kserve-crd, components.kserve-resources, components.kserve-llmisvc-crd, components.kserve-llmisvc-resources (0.2.x, one repository, moving together). Each is rendered by the existing loop as one OCIRepository + HelmRelease; the new top-level blocks backstage:, mcp-kubernetes:, cloudnative-pg:, kserve-crd:, kserve-resources:, kserve-llmisvc-crd:, kserve-llmisvc-resources: carry the standalone’s defaults (Backstage’s chart Ingress and VPA off, the base config restated, the Agent Platform app-config mounted from agent-platform-backstage-app-config, the credentials Secret and optional identity-provider CA from global.identity; mcp-kubernetes as an OAuth 2.1 resource server acting as the user with downstream OAuth; KServe in Standard deployment mode without per-model routes; the llm-d controller reusing the shared objects) and are forwarded verbatim with global injected. dependsOn replaces the standalone’s two-phase first-install guard: kserve-resources after kserve-crd, kserve-llmisvc-resources after kserve-crd, kserve-llmisvc-crd and kserve-resources, backstage after cloudnative-pg, and the CR consumers agent-platform-connectivity (the CNPG Cluster, the model serving objects) after cloudnative-pg and kserve-resources, model-manager after kserve-resources — every reference dropped at render time while the component is off, as before. None of the seven ships a crds/ dir (kserve-crd, kserve-llmisvc-crd and cloudnative-pg render their CRDs as templates, upgraded with the release), so none carries a crds: policy. kserve-llmisvc-crd is a component the standalone could not have: its 4.5 MB of CRDs did not fit in the umbrella’s one release Secret; as its own release it does. examples/customer-bom.yaml pins all seven (the standalone’s tested pins). The roster forwarded to the connectivity release carries the seven flags, so the wiring the standalone rendered by hand for them (the Backstage app-config and route, the mcp-kubernetes MCPServer, the model serving runtimes) can gate on them when it moves into the connectivity chart in a following release; the connectivity chart declares the seven roster entries and the seven blocks already. make verify-components asserts the roster (off by default, sources, ranges, order, BOM pins, the forwarded tree against the connectivity schema, schema symmetry between the two charts); make verify-components-charts pulls the seven charts at the range’s resolution and at the BOM pin and renders each with the forwarded values. No installation needs to act: the fleet render changes by the seven <name>: {enabled: false} roster lines inside the connectivity HelmRelease’s values only — one Helm revision of that release with unchanged objects and no pod rolled. components.<name>.omitKeys applies to a forwardAllValues component too, dropping top-level blocks from the forwarded tree. components.agent-platform-connectivity.omitKeys holds the seven new blocks back from the connectivity release until its wiring reads them: that chart’s root schema is additionalProperties: false, and while both charts release off one tag, the fleet’s connectivity release re-resolves its chart on its own OCIRepository interval — a block the live chart does not declare would fail that release on every installation until the chart caught up. The release that adds the wiring drops the blocks from the list; the connectivity values.yaml declares them from this release on, so that step has no such window.