Skip to content

Commit 644d961

Browse files
authored
docs: link upstream Kubernetes support policy and fix the CRD-apply command (#2316)
Signed-off-by: Mark Chmarny <mark@chmarny.com>
1 parent 3c6aaff commit 644d961

1 file changed

Lines changed: 31 additions & 8 deletions

File tree

docs/user/component-catalog.md

Lines changed: 31 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -317,10 +317,17 @@ image pinned by digest in the component values. v1.3.0 is the API-graduation
317317
release: both `v1alpha1` and `v1beta1` are served and CRD storage is on
318318
`v1beta1`, while the chart still renders the `AIBOMControllerConfig` resource
319319
itself at `v1alpha1`. Upstream states Kubernetes support as a policy rather
320-
than a fixed range — stable APIs only, no known ceiling, tested floor 1.27 —
321-
backed by a version-matrix CI job. AICR also observed the dedicated
322-
integration test passing on its Kind 1.36.1 node image; that is qualification
323-
evidence, not an extension of upstream's support statement.
320+
than a fixed range: stable APIs only, no known version ceiling, tested floor
321+
1.27, backed by a weekly CI matrix. The authoritative statement is
322+
[upstream's compatibility policy](https://github.com/GoogleCloudPlatform/k8s-aibom/blob/main/docs/compatibility.md),
323+
which is linked rather than restated here so it cannot drift out of date on
324+
our side. That link deliberately tracks `main`: the point is the current
325+
policy, not a snapshot of it, which is the opposite of how this page cites
326+
qualified artifacts.
327+
328+
AICR also observed the dedicated integration test passing on its Kind 1.36.1
329+
node image; that is qualification evidence, not an extension of upstream's
330+
support statement.
324331

325332
### Health and readiness
326333

@@ -409,12 +416,28 @@ added fields. Apply the CRDs from the exact qualified chart first, then
409416
upgrade:
410417

411418
```bash
412-
helm show crds oci://ghcr.io/googlecloudplatform/charts/k8s-aibom \
413-
--version <qualified-version> | kubectl apply --server-side -f -
419+
CHART="oci://ghcr.io/googlecloudplatform/charts/k8s-aibom"
420+
VERSION="1.3.0" # replace with the version you are upgrading to
421+
422+
helm show crds "${CHART}" --version "${VERSION}" \
423+
| sed -n '/^---$/,$p' \
424+
| kubectl apply --server-side --force-conflicts -f -
414425
```
415426

416-
Use `--server-side` because the CRDs exceed the annotation size limit that
417-
client-side apply depends on.
427+
Three details in that command are load-bearing, and the obvious shorter form
428+
fails on both counts:
429+
430+
- **`sed -n '/^---$/,$p'`** drops `helm`'s progress output. For an OCI chart,
431+
`helm show crds` writes `Pulled:` and `Digest:` lines to *stdout*, and those
432+
two lines parse as a valid YAML mapping, so `kubectl` rejects the stream with
433+
`error validating data: [apiVersion not set, kind not set]`.
434+
- **`--force-conflicts`** is required because Helm created these CRDs on
435+
install and owns their fields. Without it, server-side apply refuses with a
436+
field-manager conflict.
437+
- **`--server-side`** is required because the CRDs exceed the annotation size
438+
limit that client-side apply depends on.
439+
440+
Verified against a live GKE cluster across a 1.2.0 to 1.3.0 upgrade.
418441

419442
Which deployers need that step differs, so check yours:
420443

0 commit comments

Comments
 (0)