feat(connectivity): a VerticalPodAutoscaler for the agentgateway data plane and the controller behind one auto knob; the controller gets a PodDisruptionBudget and a hostname spread (agentgateway chart 2.1.2) - #376
Draft
paurosello wants to merge 1 commit into
Conversation
… plane and the controller behind one auto knob; the controller gets a PodDisruptionBudget and a hostname spread (agentgateway chart 2.1.2) Stacks on #373 (two data-plane replicas behind a PodDisruptionBudget). The controller sets the data-plane container's cpu/memory requests from its own defaults (100m/128Mi; the pod idles at 1m/10Mi on the fleet) and itself uses ~185Mi against a 128Mi request. The fleet's management clusters run VPA 1.5.1 in eviction-based Auto mode on 76 objects already. gateway.parameters.verticalPodAutoscaler (enabled: auto, updateMode, minAllowed, maxAllowed) is a cluster-shape knob like the others: `auto` follows autoscaling.k8s.io/v1 being served, resolved once by the meta chart and forwarded resolved; the connectivity chart renders the data-plane VPA named after gateway.name on the deployer's Deployment, and the same answer empties the forwarded agentgateway.controller.verticalPodAutoscaler to {} where the API is absent (a kind lab installs). The controller's VPA is requests-only: the chart's fixed limits (500m/512Mi) bound the recommendation, so the limits never scale with the request. The forwarded agentgateway block also carries controller.podDisruptionBudget (maxUnavailable 1) and a root topologySpreadConstraints entry on kubernetes.io/hostname selecting the controller pods. The packaging chart's schema accepts these keys from agentgateway 2.1.2 (giantswarm/agentgateway#51), so components.agentgateway.versionRange is >=2.1.2 <3.0.0 and the BOM example pins 2.1.2. MERGE ORDER: release the packaging chart first. Until 2.1.2 is published the agentgateway OCIRepository resolves nothing, its HelmRelease is not Ready and every release that dependsOn it (connectivity, agent-platform-mcps, everything behind connectivity) holds its next generation; the running releases keep running. make verify-components-charts renders the forwarded block against the newest published chart and is red for exactly that reason until 2.1.2 exists. Tests: make verify-dataplane-vpa (in the CI list), verify-auto's vpa-only shape and the knob on every shape, tests/verify-agentgateway-wiring.py for the controller's budget and spread. Contrarian review folded in: the merge-order blast radius, requests-only for the controller, the cpu leaves accept a number, best-effort wording for the spread. 3.x line: a feat on the fixes-only line, ported by hand from main (agent-platform#375); needs the team's agreement before it merges, and agentgateway 2.1.2 published first.
This was referenced Sep 11, 2026
Published Helm chart
|
| Chart | agent-platform |
| Version | 3.23.2-dev.agentgatew--oller-ha-3x.2026-09-11.09-52-26.h365ffbd |
| OCI reference | oci://gsoci.azurecr.io/charts/giantswarm/agent-platform:3.23.2-dev.agentgatew--oller-ha-3x.2026-09-11.09-52-26.h365ffbd |
| Digest | sha256:29f5b85c88743775a771af304ff15156b1a641d14da9f47f7addad0babb3aed0 |
| Registry | public — gsoci.azurecr.io |
| Git catalog | giantswarm-test-catalog (index) |
Pull this chart
helm pull oci://gsoci.azurecr.io/charts/giantswarm/agent-platform --version 3.23.2-dev.agentgatew--oller-ha-3x.2026-09-11.09-52-26.h365ffbdPosted by architect-orb · build 5861 · commit 365ffbd · updated in place on every push
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Draft. 3.x line: a
feat:on the fixes-only line — needs the team's agreement before it merges (migration guidance: the old line takes fixes unless agreed; afeat:releases 3.24.0, inside the fleet's range). Ported by hand from #375 onto #374's branch; stacks on #374 and waits for giantswarm/agentgateway#51 to release as 2.1.2 —make verify-components-chartsis red until then (on this line the pull finds no version satisfying>=2.1.2 <3.0.0). Do not merge before 2.1.2 is inoci://gsoci.azurecr.io/charts/giantswarm/agentgateway: with the range floor unresolved, the agentgatewayHelmReleaseis not Ready and every release that depends on it (connectivity, agent-platform-mcps, everything behind connectivity) holds its next generation until it is.What
Same change as #375, see its description:
gateway.parameters.verticalPodAutoscaler(enabled: auto) renders aVerticalPodAutoscaleron the data-planeDeploymentwhenautoscaling.k8s.io/v1is served; the meta chart resolves the knob once and forwards it; the forwardedagentgateway:block gainscontroller.podDisruptionBudget: {maxUnavailable: 1}, a hostnametopologySpreadConstraintsentry and a requests-onlycontroller.verticalPodAutoscaler(emptied to{}where the knob resolves false);components.agentgateway.versionRangeis>=2.1.2 <3.0.0, the BOM example pins 2.1.2. Newmake verify-dataplane-vpain this line's CI list,verify-autogains thevpa-onlyshape,tests/verify-agentgateway-wiring.pyholds the controller's budget and spread,tests/verify-components-charts.pygainsagentgateway(this line's simpler roster: red on the pull until 2.1.2).Why on the fleet
Every management cluster runs VPA 1.5.1 in
Automode on its platform components already; the agentgateway data plane and controller are the exception, on the path every MCP and model call crosses. #374 could give the controller only a second replica: the packaging chart's schema rejected a budget, a spread and a VPA until #51.Verified
origin/release-v3.x);verify-components-chartsred on agentgateway only, on the pull.agentgatewayblock renders against the fixed chart of feat: add klausGateway as opt-in conditional dependency #51: fleet shape — PDB, spread, VPA (RequestsOnly); vanilla — PDB, spread, no VPA.tests/pick-doc.py) byte-identical to feat(connectivity): a VerticalPodAutoscaler for the agentgateway data plane and the controller behind one auto knob; the controller gets a PodDisruptionBudget and a hostname spread (agentgateway chart 2.1.2) #375; the wiring-test assertions adapted to this line's indentation-keeping parser.Checklist
values.yamlandvalues.schema.jsonare valid.