Add advise-mode VPA for every workload #283
Reference in New Issue
Block a user
Delete Branch "benvin/vpa-advise-all"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Why
Turns on right-sizing telemetry for the whole estate. Adds a
VerticalPodAutoscalerwithupdateMode: "Off"(recommendation-only, advise mode) for every Deployment and StatefulSet inapps/base. Off mode never evicts or mutates pods, so this is purely observational: the VPA recommender (added in the vpa-system PR) publishes suggested requests/limits in each VPA's status, and nothing acts on them until someone deliberately flips a mode.Changes
vpa.yamlper app underapps/base/<app>/containing a<workload>-vpaVerticalPodAutoscaler for each workload, and register it in that app'skustomization.yaml.Skipped (intentionally)
Clusterobjects (artifactapi, authentik, encapi, grafana, litellm, paperclip, puppet, woodpecker) — Postgres is managed by CloudNativePG, not a VPA target.HPA / VPA caveat
api, ui (artifactapi), litellm, and all four puppet deployments also carry an HPA. With
updateMode: "Off"there is no conflict today (VPA only recommends). VPA objects targeting these carry an inline comment: do not flip toAuto/Initialwhile the HPA still autoscales on CPU/memory, or the two controllers will fight over the same resource. Move the HPA to a custom/non-resource metric first.Verification
kubectl kustomizeover every touched overlay: 9/11 overlays PASS rendering all their VPAs; 2 failures are pre-existing and unrelated to this change —authentikfails on a local helm-tooling flag error identically on origin/main, andpapercliphas noapps/overlays/au-syd1/paperclipdirectory yet. Both apps' base kustomizations build clean and render their VPA.Merge gate
autoscaling.k8s.io/v1 VerticalPodAutoscaler; without the CRDs installed, ArgoCD sync fails on an unknown kind.