Problem
The old-product recipe for the agent-platform 3.x maintenance line says to test a release-v3.x branch in the lab with --chart-branch or --chart-path. Neither works with the current lab shape:
config.LegacyChart() is true only for an exact stable platform.chartVersion below 4.0.0. A chart directory (platform.chartPath) or the dev channel (platform.chartBranch) always renders the 4.x values — substrate: and the other 4.x-only keys — which the 3.x chart's closed root schema refuses: the boot stops with additional properties 'substrate' not allowed. TestLegacyChart encodes this on purpose (a directory or a branch "is always the current line"), which stopped being true when release-v3.x became a pull-request target.
platform-test runs proveControllerIdentity unconditionally; it needs the kagent controller GRPCRoute the connectivity chart renders from 4.0 on, so on a 3.x lab the run ends after the muster and mcp-kubernetes identity proofs with the controller identity proof needs the controller's route on the edge: the controller's GRPCRoute is missing.
Proving giantswarm/agent-platform#613 took a detour: chartVersion: 3.23.1 with a platform.valuesFiles overlay for the baseline, a hand-driven helm upgrade from the checkout with state/agent-platform-values.yaml, and the RBAC run (test) as the second proof.
Proposed solution
LegacyChart follows the chart the lab installs, not the channel: for a directory, the roster in its values.yaml (no components.substrate is the 3.x shape); for a dev build, the resolved version's major.
platform-test on the 3.x shape skips the controller identity proof and says so (the muster and mcp-kubernetes identity proofs already cover the edge), so the run ends green.
Related: #211 deletes the 3.x shape once the last installation runs the 4.x meta chart.
Acceptance criteria
- A
configure --chart-path <release-v3.x checkout>/helm/agent-platform lab boots in the 3.x shape; the same with --chart-branch <a release-v3.x branch>.
platform-test on a 3.x lab ends green.
TestLegacyChart covers a 3.x directory, a 3.x dev build and the 4.x cases.
Problem
The old-product recipe for the agent-platform 3.x maintenance line says to test a
release-v3.xbranch in the lab with--chart-branchor--chart-path. Neither works with the current lab shape:config.LegacyChart()is true only for an exact stableplatform.chartVersionbelow 4.0.0. A chart directory (platform.chartPath) or the dev channel (platform.chartBranch) always renders the 4.x values —substrate:and the other 4.x-only keys — which the 3.x chart's closed root schema refuses: the boot stops withadditional properties 'substrate' not allowed.TestLegacyChartencodes this on purpose (a directory or a branch "is always the current line"), which stopped being true whenrelease-v3.xbecame a pull-request target.platform-testrunsproveControllerIdentityunconditionally; it needs the kagent controllerGRPCRoutethe connectivity chart renders from 4.0 on, so on a 3.x lab the run ends after the muster and mcp-kubernetes identity proofs withthe controller identity proof needs the controller's route on the edge: the controller's GRPCRoute is missing.Proving giantswarm/agent-platform#613 took a detour:
chartVersion: 3.23.1with aplatform.valuesFilesoverlay for the baseline, a hand-drivenhelm upgradefrom the checkout withstate/agent-platform-values.yaml, and the RBAC run (test) as the second proof.Proposed solution
LegacyChartfollows the chart the lab installs, not the channel: for a directory, the roster in itsvalues.yaml(nocomponents.substrateis the 3.x shape); for a dev build, the resolved version's major.platform-teston the 3.x shape skips the controller identity proof and says so (the muster and mcp-kubernetes identity proofs already cover the edge), so the run ends green.Related: #211 deletes the 3.x shape once the last installation runs the 4.x meta chart.
Acceptance criteria
configure --chart-path <release-v3.x checkout>/helm/agent-platformlab boots in the 3.x shape; the same with--chart-branch <a release-v3.x branch>.platform-teston a 3.x lab ends green.TestLegacyChartcovers a 3.x directory, a 3.x dev build and the 4.x cases.