Skip to content

Audit and upgrade pinned component versions across the recipe catalog #2383

Description

@yuanchen8911

Problem

Component versions across recipes/ are pinned individually and bumped
opportunistically, usually when a specific recipe needs something. There is no
periodic sweep that asks whether the catalog as a whole is current. The result
is drift that only surfaces when a user hits it — an old GPU driver against a
new CUDA workload, a GPU Operator behind the chart its values assume, or a
component pinned to a release that upstream has since superseded.

recipes/registry.yaml carries 35 defaultVersion pins today. The ones that
matter most for GPU correctness:

Component Pinned Where
GPU driver 580.173.02 recipes/components/gpu-operator/values.yaml
gpu-operator v26.3.3 recipes/registry.yaml
nvidia-dra-driver-gpu 0.4.1 recipes/registry.yaml
nvidia-dra-driver-gpu-ocp 0.4.1 recipes/registry.yaml
network-operator 26.4.1 recipes/registry.yaml

Scope

Audit every pinned component version in the catalog against its current
upstream release, then bump what should be bumped and record why anything is
deliberately held back. Concretely:

  • Every defaultVersion in recipes/registry.yaml.
  • Version pins carried in overlays and mixins, which override the registry.
  • The GPU driver version in recipes/components/gpu-operator/values.yaml.
  • Image tags pinned inside component values and manifests.

For each, one of three outcomes: bumped, held with a recorded reason, or filed
as its own issue because the bump is not mechanical.

The DRA driver is expected to fold into GPU Operator

nvidia-dra-driver-gpu is currently a separate component (0.4.1, chart
oci://registry.k8s.io/dra-driver-nvidia/charts/dra-driver-nvidia-gpu), with a
second OCP-specific variant. Upstream is expected to integrate the DRA driver
into the GPU Operator.

When that lands, the sweep is not a version bump — it is a component
consolidation
: the standalone component and its OCP sibling would be removed
or become values-gated inside gpu-operator, every overlay referencing them
would change, and the health checks and validators that assume a standalone
DaemonSet would need revisiting. That should be its own issue with its own
migration plan, not folded into a routine bump. Part of this issue is
determining whether it has landed in a release AICR can adopt, and filing
that follow-up if so.

Why this is not covered by existing automation

Renovate manages some images but deliberately excludes others. Vendor-coupled
stacks are excluded on purpose and documented as "a deliberate, human-driven
change" (.github/renovate.json5) — the EFA device plugin and the GKE TCPXO
stack among them. Those are exactly the pins that go stale silently, because
nothing prompts a human to look.

The BOM has partial coverage: TestCommittedBOMVersionsMatchRegistry fails CI
when a pinned version drifts from the registry, and the weekly BOM-refresh
workflow catches rendered-image drift inside charts. Neither answers "is this
pin still the version we want?" — they only enforce internal consistency.

Constraints

  • A driver bump is not free on every family. On GKE the driver is
    GKE-managed (driver.enabled: false in the gke-cos values), so the version
    comes from the node pool or the driver-installer component, not from
    values.yaml. On GKE COS a driver version must additionally be COS-qualified
    for the GPU type. See feat(recipes)!: GKE bundle-installer replaces driver-installer #2360, which reworks that path.
  • Coupled pairs must move together. Several pins are one half of a vendor
    pair; bumping either half alone creates an unsupported combination. gke-nccl-tcpxo: installer/sidecar version pair has drifted and is not enforced #2378
    records one that already drifted.
  • Performance floors are calibrated against specific stacks. A driver or
    operator bump can shift measured bandwidth and throughput, so the validation
    gates need a look after any significant move.

Acceptance criteria

  • Every pinned component version is compared against its current upstream release, with the result recorded
  • GPU driver, gpu-operator, nvidia-dra-driver-gpu, and network-operator are explicitly addressed
  • Each pin is bumped, or held with a stated reason
  • Bumps that are not mechanical are split into their own issues rather than bundled
  • make bom-docs is run and the regenerated BOM committed with any chart-touching change
  • The DRA-into-GPU-Operator status is determined, and a migration issue filed if it has landed

Related

Metadata

Metadata

Assignees

Labels

area/recipestheme/recipesRecipe expansion, overlays, mixins, and component registry

Type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions