Skip to content

Commit d718887

Browse files
committed
docs: scope the k8s-aibom CRD guidance to the deployers that need it
Two statements in the component catalog contradicted the opt-in policy this branch adds. The health-and-readiness section still said the HelmRelease AICR generates for Flux leaves spec.upgrade.crds unset. That is now false for exactly the component that section describes: k8s-aibom is marked ownsCRDs, so its generated HelmRelease sets CreateReplace and Flux applies the CRDs itself. The paragraph now says so, and explains why the storage-version assertion is still worth making on every deployer: it proves the deployed CRDs match the pinned chart, not merely that some deployer was expected to update them. The pre-upgrade CRD instruction was written as applying to every bundle upgrade. It is now scoped to helm and helmfile, with a pointer to the deployer table for the three that need no manual step. Related: #2264 Signed-off-by: Mark Chmarny <mark@chmarny.com>
1 parent 38f7f89 commit d718887

1 file changed

Lines changed: 18 additions & 10 deletions

File tree

docs/user/component-catalog.md

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -333,13 +333,18 @@ closed. Zero `AIBOM` objects is healthy before any namespace opts in.
333333

334334
The check also requires both shipped CRDs, `aiboms.aibom.k8saibom.dev` and
335335
`aibomcontrollerconfigs.aibom.k8saibom.dev`, to report the storage version of
336-
the chart version pinned in the registry. It matters
337-
because Helm and Helmfile skip a chart's `crds/` directory on upgrade, and the
338-
`HelmRelease` AICR generates for Flux leaves `spec.upgrade.crds` unset so the
339-
helm-controller default of `Skip` applies. A cluster can therefore run a new
336+
the chart version pinned in the registry. It matters because Helm and Helmfile
337+
skip a chart's `crds/` directory on upgrade, so a cluster can run a new
340338
controller against the previous schema while the older version stays served
341339
and the controller keeps working.
342340

341+
Flux is the exception for this component: `k8s-aibom` is marked `ownsCRDs` in
342+
the registry, so its generated `HelmRelease` sets
343+
`spec.upgrade.crds: CreateReplace` and Flux applies the CRDs itself. Argo CD
344+
applies them as ordinary manifests each sync. The assertion is still worth
345+
making on every deployer, because it proves the deployed CRDs match the pinned
346+
chart rather than merely that some deployer was expected to update them.
347+
343348
Both CRDs are asserted separately, so a failure names which one is stranded
344349
and a partially applied CRD set cannot pass. If this check fails after a chart
345350
bump, the pre-upgrade CRD step in
@@ -401,12 +406,15 @@ image: chart, CRDs, status API, and image are one qualified set. Quiesce
401406
configuration changes during rollback and confirm that
402407
`AIBOMControllerConfig/default` returns to a current `Ready=True` state.
403408

404-
**Apply CRDs before the bundle upgrade.** The chart ships its CRDs under
405-
`crds/`. Helm installs that directory on first install and never touches it
406-
again on upgrade, so a chart bump whose CRDs changed leaves the previous schema
407-
in place and the API server silently prunes the new controller's writes to
408-
added fields. Apply the CRDs from the exact qualified chart first, then
409-
upgrade:
409+
**Apply CRDs before the bundle upgrade — `helm` and `helmfile` only.** The
410+
chart ships its CRDs under `crds/`. Helm installs that directory on first
411+
install and never touches it again on upgrade, so a chart bump whose CRDs
412+
changed leaves the previous schema in place and the API server silently prunes
413+
the new controller's writes to added fields.
414+
415+
The `flux`, `argocd`, and `argocd-helm` bundles handle this themselves for this
416+
component and need no manual step; see the deployer table below. For `helm` and
417+
`helmfile`, apply the CRDs from the exact qualified chart first, then upgrade:
410418

411419
```bash
412420
helm show crds oci://ghcr.io/googlecloudplatform/charts/k8s-aibom \

0 commit comments

Comments
 (0)