← ClaudeAtlas

mimir-upgradelisted

Plan and run a controlled, COMMUNITY-edition Grafana Mimir upgrade on the `mimir-distributed` Helm chart, air-gap first — the chart↔app co-pinned ladder (5.7→5.8→6.0.6→6.1.0 = app 2.16→2.17→3.0.4→3.1.2), the classic-vs-ingest-storage decision (the chart ships a supported `classic-architecture.yaml`; `kafka.enabled: false` alone is NOT the switch and causes an ingestion outage), the community-specific nginx→gateway rename that silently moves the proxy's DNS name and breaks every remote_write client, the silent-no-op vs crashloop asymmetry between stale chart keys and stale app config, rollout-operator sequencing and the abort levers that deadlock a namespace, per-hop verification, and air-gap image/CRD/egress work. Companion to k8s-components-checker.
air-gapped/skills · ★ 5 · AI & Automation · score 78
Install: claude install-skill air-gapped/skills
# mimir-upgrade Plan, sequence, and de-risk a **community-edition Grafana Mimir** upgrade deployed via the `mimir-distributed` Helm chart, in an **air-gapped** environment. The hard part is not `helm upgrade`. It is that chart 6.0 changes the **write-path architecture**, the **proxy's DNS name**, and the **admission-webhook posture** all in one hop — and the chart validates none of the operator's stale values, so most of the damage is silent. **Community editions only.** Ignore Grafana Enterprise Metrics (GEM) gating; the whole GEM values surface is removed from the chart at 6.0 anyway. ## Evidence tags — do not flatten these Every claim in this skill is tagged: - **[UG] upstream-grounded** — a doc, changelog, release note, or source file says it. - **[RFC] reasoned-from-config** — derived by reading chart templates, values, or Go source. Both tags mean *researched*. The grounding runs to tagged upstream source (`help-all.txt.tmpl`, `config-descriptor.json`, `pkg/ingester`, `pkg/usagestats`, `pkg/storage/ingest`), kubectl's and Helm's own source, both CHANGELOGs, the docs, and six issues cited as evidence of absence. Two claims were settled by experiment rather than reading: the `classic-architecture.yaml` render was diffed against upstream's golden CI fixture (79/79 config keys), and the `null`-semantics question was settled by compiling a probe against Mimir's exact YAML library. What is missing is a third level: **behavioural observation on a running cluster.** No l