Skip to content

GH-5262: fix(helm): chart renders a no-op top-level autopilot block + docs values example drifts from real values.yaml - #5265

Merged
alekspetrov merged 1 commit into
mainfrom
pilot/GH-5262
Aug 30, 2026
Merged

GH-5262: fix(helm): chart renders a no-op top-level autopilot block + docs values example drifts from real values.yaml#5265
alekspetrov merged 1 commit into
mainfrom
pilot/GH-5262

Conversation

@alekspetrov

Copy link
Copy Markdown
Collaborator

Summary

Automated PR created by Pilot for task GH-5262.

Closes #5262

Changes

GitHub Issue GH-5262: fix(helm): chart renders a no-op top-level autopilot block + docs values example drifts from real values.yaml

Problem

Two pre-existing chart/docs drifts flagged as out-of-scope in PR#5260 (docs sweep) — filing so the deferral doesn't evaporate (the PR promised follow-ups; none existed).

  1. The Helm chart renders a no-op autopilot config block. deploy/helm/pilot/templates/configmap.yaml emits a literal top-level autopilot: with a mode: key into the generated config.yaml. The loader deprecation-lifts top-level autopilot blocks now (PR#5253/GH-5255: fix(config): top-level autopilot lift discards all defaults — decode into the default-populated struct, not a zero struct #5256), but mode binds to NO field on the autopilot config struct (verified: no yaml tag), so the rendered block does nothing except trigger the DEPRECATED log on every tenant start. The chart's actual autopilot control is the --autopilot=<mode> start arg (deploy/helm/pilot/templates/_helpers.tpl ~95, a hidden alias for --env). Fix: drop the dead block from the configmap template (the start-arg path is the real one), or render a correctly-nested orchestrator.autopilot block if chart users need YAML-level control.

  2. The docs values example doesn't match the real values schema. docs/content/deployment/docker-helm.mdx (~311) shows a config:-wrapped values example that does not match the chart's actual flat deploy/helm/pilot/values.yaml schema. Align the example with the real values file (and if the fix for item 1 changes the rendered shape, do both together).

Acceptance

  • A fresh helm template render contains no top-level autopilot block that binds to nothing — either the block is gone or it renders correctly nested; no DEPRECATED config log on tenant start from chart-rendered config.
  • The docker-helm.mdx values example round-trips against the chart's real values.yaml (keys exist, nesting matches what helm template consumes).
  • Chart + docs only; no Go changes.

Refs

…values example with real values.yaml (GH-5262)

The chart rendered a top-level `autopilot: mode:` key into config.yaml
that binds to nothing (autopilot.Config has no `mode` yaml tag) and only
triggers the loader's DEPRECATED top-level-autopilot log; the real control
is the `--autopilot=<mode>` start arg (hidden alias for --env). Drop the
dead block and document why. Also rewrite the docker-helm.mdx values.yaml
reference (and every drifted --set example) to match the chart's actual
flat schema — no config:/strategy:/existingSecret: keys, ingress.hosts as
a list, metrics.serviceMonitor nesting.
@codecov-commenter

Copy link
Copy Markdown

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@alekspetrov
alekspetrov merged commit 9fbb4f8 into main Aug 30, 2026
8 checks passed
@alekspetrov
alekspetrov deleted the pilot/GH-5262 branch August 30, 2026 15:08
@alekspetrov

Copy link
Copy Markdown
Collaborator Author

Post-merge review verdict: APPROVE-w-notes

Both spec items correctly implemented; acceptance verified including an actual helm template + helm lint render (via the alpine/helm docker image): rendered config.yaml top-level keys are exactly [adapters, gateway, storage] — no autopilot block, so no DEPRECATED log possible from chart-rendered config; deployment args keep --autopilot=stage, the functional control. Configmap fix is the spec-preferred dropped-block option with the start-arg path untouched and .Values.autopilot.mode still live via the arg. The rewritten docs values example round-trips key-for-key against the real values.yaml, including the previously-wrong ingress/serviceMonitor/secrets shapes; phantom config:/strategy: wrappers gone; --set examples corrected. Chart+docs only; no chart consumers outside deploy/helm+docs (grep-verified).

Notes (filed as a small follow-up): N1 — two install tabs still use the nonexistent config. prefix in --set examples; N2 — --set existingSecret=pilot-secrets appears twice but no such key exists anywhere in the chart (the documented "recommended" secrets flow is fictional); N3 — the new configmap comment slightly misstates what the lift binds (mode's yaml tag is environment); and no CI step lints/templates the chart — my docker run was the only validation this change got.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix(helm): chart renders a no-op top-level autopilot block + docs values example drifts from real values.yaml

2 participants