Shared fork vocabulary + current→canonical mapping

A repository document, rendered for the site. View source markdown.

Generated at: 2026-07-30T12:38:02.000Z UTC · source: committed helm-expt evidence for this rendered repository document.

Status: working reference. Built from the actual bases of all 20 top-20 catalog charts, not invented.

The problem, in one table

Every chart today has exactly 2 bases (a default:true + one fork), but the names are ad-hoc. The same dimension is named many ways, so a user can't predict the menu:

Canonical fork vocabulary (proposed)

dimensionmeaningcomposes?
defaulthonest OOTB base (role = default:true); zero placeholders where possible-
parameterizedsame shape as default; fill-safe fields exposed as placeholders-
existing-secretBYO secret instead of generated (the F3 fix-path)yes
ingress-tlsexternally exposed via ingress (+ TLS)yes
hahigh-availability / scalable deployment modeyes
no-crdsCRDs owned externally (GitOps/controller)yes
minimallean: drop optional components / persistenceyes
tlsBYO TLS material / CAyes

Forks compose (e.g. existing-secret + ingress-tls). The catalog should name a fork by its canonical dimension(s), not a bespoke string.

Current → canonical mapping (all 20)

chartdefault base (current)fork (current)→ canonical
redisdefaultreuse-existing-secretexisting-secret
postgresqlstatic-passwordsexisting-secretexisting-secret
rabbitmqstatic-passwordsexisting-secretexisting-secret
mysqlstatic-passwordsexisting-secretexisting-secret
mongodbstatic-passwordsexisting-secret-replicasetexisting-secret + ha
grafanastatic-passwordsexisting-secret-ingressexisting-secret + ingress-tls
consuldefault-control-planesecure-mesh-existing-secretsexisting-secret (+ mesh)
external-secretsdefaultno-crdsno-crds ✓
argo-cddefaultno-crdsno-crds ✓
kube-prometheus-stackdefaultno-crdsno-crds ✓
cert-managerdefaultcrds-enabledcrds (inverse - default should be no-crds for GitOps)
longhorndefaultui-ingressingress-tls
nginxhttp-clusteripexisting-tls-ingressingress-tls (+ existing-secret for TLS)
metrics-serverdefaultexternal-tls-catls
vaultdefaultha-raft-uiha
lokisingle-binary-filesystemsimple-scalable-minioha (scalable + object store)
tempolocal-persistents3-query-observabilityha (object store)
prometheusdefaultserver-only-ephemeralminimal
ingress-nginxdefaultadmission-disabledminimal
secrets-store-csi-driverdefaultsync-secret-rotation(chart feature: rotation)

What the data shows

Migration recommendation

  1. Adopt the canonical dimension names; keep bespoke shape names only as descriptive suffixes where they add meaning (e.g. ha for vault, with raft an implementation detail, not the fork name).
  2. Alias old names → canonical for one release so existing references don't break.
  3. Normalize the default role: the menu always presents the default:true base as "default" regardless of its underlying descriptive name.
  4. Flip cert-manager's default to no-crds (GitOps-consistent), with crds as the fork.

Sources

The current top-20 package bases, Catalog Doctrine, and the generated status and outcome data under data/.