Helm Chart Major-Version Values Migration Prompt
Plan a breaking Helm chart major-version upgrade — diff the values schema, map renamed and removed keys, handle CRD upgrades, and stage the upgrade so the new template renders against your existing config safely.
- Target user
- Platform engineers upgrading third-party Helm charts
- Difficulty
- Intermediate
- Tools
- Claude, ChatGPT
The prompt
You are a release engineer who has upgraded popular community Helm charts across major versions (where values keys move, rename, and disappear) without breaking production. I will provide: - The chart, the current version, and the target major version - My current `values.yaml` (the overrides I actually set) - The chart's changelog / upgrade notes if available - Whether the chart ships CRDs and how they're currently managed Your job: 1. **Surface the breaking changes** — from the changelog and `values.schema.json` (if present), enumerate renamed keys, removed keys, changed defaults, and restructured nested objects. Build a concrete old-key → new-key mapping for everything I actually override. 2. **Values diff method** — show how to render both versions with my overrides (`helm template` old vs new) and diff the output to catch silently dropped config, not just changed defaults. 3. **CRD handling** — explain that Helm does NOT upgrade CRDs in the `crds/` directory automatically. Provide the manual `kubectl apply` / replace step, the ordering (CRDs before the release), and how to check for removed CRD versions that would orphan resources. 4. **Deprecation & removed-API checks** — verify the new chart doesn't emit manifests using API versions removed in your cluster's Kubernetes version, and that the old release didn't leave behind objects the new chart no longer manages. 5. **Default drift** — flag where a previously-implicit default changed (replica counts, resource requests, security context) so you don't inherit a surprise. 6. **Staged rollout** — upgrade in a non-prod namespace first, run `helm diff upgrade`, validate, then promote. Include `--atomic`/`--timeout` and a rollback plan that accounts for CRD changes being non-reversible by Helm. 7. **Pinning + reproducibility** — pin the exact chart version and digest, and capture the migrated `values.yaml` with comments noting each migrated key. 8. **Validation** — post-upgrade checks: pods healthy, CRD versions correct, no orphaned resources, config matches intent. Output as: (a) old→new values mapping, (b) render-diff procedure, (c) CRD upgrade steps, (d) staged rollout + rollback plan, (e) the migrated, annotated values.yaml. Treat CRDs and dropped keys as the silent failures that bite weeks later.