← ClaudeAtlas

gitlab-best-practiceslisted

Operate self-managed GitLab on the official Helm chart — multi-hop upgrade campaigns across required stops, the chart-10 wall (bundled PostgreSQL, Redis and MinIO removed and now mandatory), PostgreSQL 17 being both the minimum and the maximum for GitLab 19.x, default flips invisible to a values diff, air-gapped image sets the chart will not reveal, backup/restore with external dependencies and the secrets that are deliberately not in the backup, Sidekiq migration-loss and HPA-flap traps, and what high availability the chart actually provides (standalone Gitaly on Kubernetes is a documented single point of failure; Praefect on Kubernetes is beta).
air-gapped/skills · ★ 5 · AI & Automation · score 78
Install: claude install-skill air-gapped/skills
# gitlab-best-practices Run and upgrade a **self-managed GitLab on the official Helm chart** without unplanned downtime. The hard part is never `helm upgrade`. It is that the chart changes defaults the site never set, ships prerequisites written for a configuration the site does not run, and removed its own bundled databases in a release that breaks the *tooling* before it breaks the deployment. Facts here were verified **2026-08-29** against machine-readable upstream sources, the unpacked chart, and a live install taken through a multi-hop 18.x → 19.x campaign. Re-verify anything version-bearing. **Version anchor (2026-08-29):** latest chart **10.3.1** / app **19.3.1**. Chart major = app major − 9. Required stops through 19.x: **18.2 · 18.5 · 18.8 · 18.11 · 19.2 · 19.5 · 19.8 · 19.11** — enumerate them fresh, never from memory. ## Symptom index | Symptom | Where | |---|---| | Planning a multi-version upgrade; which stops, which order | § The ladder below, then `references/upgrade-campaign.md` | | Ingress objects gone after a chart bump; instance off the network | `references/upgrade-campaign.md` § the chart-10 wall | | Default render fails: "external PostgreSQL became required" | `references/upgrade-campaign.md` § chart 10.0 makes external deps mandatory | | Background migrations stuck, finalizing forever, `PG::UndefinedTable` | `references/failure-modes.md` | | `deduplicated: dropped` in Sidekiq logs; migrations never run, install looks green | `references/failure-mode