Helm Quirk Support Matrix

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.

UNOFFICIAL/EXPERIMENTAL

This page says, for each Helm quirk class, what happens to it at each of the seven lifecycle stages - and what is not claimed. Cells use cautious verbs:

detected   the analysis stage records that the quirk exists
routed     the quirk is classified and sent down a named path
rendered   the quirk's output is part of the exact rendered object set
proven     a committed receipt or parity lane covers it
recorded   the requirement is written down with the package/variant
checked    a live lane verifies it against a cluster
manual     a human decision is required; the repo says so instead of guessing

The seven stages:

1 source/chart analysis    2 recipe/package creation   3 render parity
4 ConfigHub upload         5 derived variants          6 GitOps/OCI delivery
7 live observation / operations

The Matrix

Quirk1 Analysis2 Recipe/package3 Render parity4 Upload5 Derived variants6 Delivery7 Live
CRDsdetectedsplit into explicit bases (crds / no-crds)rendered + proven against the pinned capability profilestored as Unitsownership change routes back to a baseCRD owner is a recorded prerequisitepresence/established checked; capability mismatches become watchlist rows
Helm hooksdetected + phase classifiedrouted: desired objects, pre-install prerequisite, post-install lifecycle, controller-owned runtime, or unsupported/manualhook objects rendered when routed as desired objectsstored when routed as objectsno hook semantics added post-renderthe hook route decides what shipshook route receipts exist; hook execution receipts do not yet
Generated secrets/certs/passwordsdetectedrendered, then separated out of the publishable artifactsecret objects included in parityreferences recorded; secret material not uploadedreferences bind via target factsseparated secrets applied out-of-band firstpresence checked pre-flight; missing-secret false greens caught at runtime
lookupdetectedlifted into declared target facts; no live reads at renderdeterministic render proven (no hidden cluster reads)facts recorded with the packagefacts bound per targetfacts are recorded prerequisitesfacts checked live before reliance
.Capabilitiesdetectedpinned to a named capability profileproven against that profile onlyprofile recordedn/a post-rendertarget cluster must match the profile, or re-renderprofile mismatches surface as watch/blocked rows, not silent passes
tpldetectedrendered normally (render-time construct)covered by render paritystored like any objectsuser-payload tpl routes to extension-slot reviewships as reviewed outputno special live handling; field provenance through templates is not claimed
Raw manifests / extraObjects (extension slots)detectedempty slots stay in base; populating one creates a new reviewed basepopulated slot output enters paritystoredpopulating a slot post-render routes back to a baseships as reviewedclosed-world live check can flag unexpected extra objects
RBACdetectedrendered explicitly and reviewableproven, with server-normalization cases routed to the watchliststoredRBAC edits route back to a basecluster-permission review is a recorded prerequisitestrict witness compares rendered vs live RBAC
Webhooksdetectedrendered; cert/CA wiring classified as controller-owned runtime stateauthored fields proven; controller-populated fields excluded by designstoredn/awebhook/cert readiness is a recorded prerequisitecontroller-owned behavior demonstrated by lifecycle observations on selected charts
Storage / PVCsdetectedstorage choices are base variants; StorageClass is a target factprovenstoredclass/size binding via facts where the base exposes themStorageClass is a recorded prerequisitePVC binding checked at runtime
External dependencies / target factsdetectedrecorded as installer requirements and variant target factsparity covers references, not the external thing itselfrequirements recorded; no external material storedbound per targetrecorded prerequisiteschecked live pre-flight

What Is Proven Versus Routed, Per Quirk

Honest status, with the evidence trail:

How To Read A Gap

A quirk cell that says routed, recorded, or manual is not a euphemism for "works." It means the repo knows about the case, has a named path for it, and will not silently pretend it passed. The generated status pages say which charts currently sit on which path: top-100 user readiness, the watchlist, and current proof status.