Skip to content

v0.19.0

Latest

Choose a tag to compare

@github-actions github-actions released this 10 Aug 19:42
· 50 commits to main since this release
Immutable release. Only release title and notes can be modified.
v0.19.0
f1f6346

This release focuses on GPU stack profiles, broader recipe and platform coverage, signed release provenance, and validation hardening.

Highlights

GPU Stack Profiles (ADR-015) - As AICR covers more use-cases, one criteria combination increasingly maps to more than one valid infrastructure configuration. The only prior way to express the second was a bundle-time --set override that validation could not see, so aicr validate checked the stock configuration against a cluster running a different one. Recipes now declare a named gpuStack profile naming who owns a layer of the stack, the cloud service or the GPU Operator. One value is selected at generation time via aicr recipe --profile gpuStack=<value> or the declared default, hydrated into recipe.yaml, and its owned paths are locked against diverging overrides at bundle and mirror time. Selection is explicit intent, never inferred. So for example, the AKS pool reading supplied by aicr snapshot --aks-gpu-pools qualifies a selection and fails generation closed on mismatch. The mechanism landed in v0.18 with no adopter; AKS and the full GKE family have since converted. It is service-agnostic, so OKE addons and OCP operators extend it without new schema.

Supply Chain & Provenance - Release metadata and the aiperf-bench third-party source are published as signed OCI referrers alongside release artifacts, the latest release is re-verified daily, and Rekor identity monitoring gained a resumable scan that catches up large backlogs. aicr verify can be driven from AICRConfig (spec.verify), and POST /v1/bundle supports non-interactive attestation. A registry-inventory egress gate bounds which registries the supply chain may reach.

Validation Hardening - A pass now has to be earned. The validator fails closed on unmatched declared checks and on capability checks whose declared dependencies are missing, rolls back cluster-admin RBAC when prep fails, and re-establishes the Job watch after an apiserver idle-stream closure instead of reporting a false failure. Cordoned GPU and RDMA nodes are disclosed rather than silently skipped, gang-scheduling and webhook conformance tests are now behavioral, and six operator-owning health checks assert CRD Established=True. The evidence dashboard at validation.aicr.run gained multiple UX improvements, and validator outcomes carry redaction-safe CTRF extra data.

SDK Contract - The exported surface of pkg/client/v1 is pinned and gated by a compatibility check, alias and semver contracts are reconciled, and the selector API is context-aware with snapshot Jobs routed through the facade.

Recipes & Evidence

  • AKS H100 Ubuntu training and inference (Dynamo) recipe evidence
  • AKS training and inference Kubernetes floors aligned to the DRA-GA >= 1.34 rationale
  • Slurm/Slinky gains accounting ownership modes and shared RWX storage for home and data
  • Network Operator default bumped to v26.4.1; EKS GB200 enrolled in the nightly UAT
  • OpenShift Support - OCP-compatible components for cert-manager, prometheus-adapter, nvidia-dra-driver-gpu, and k8s-nim-operator, argocd-helm bundling now covers the OCP path with a pinned error contract, and recipes enabling both gpu-operator and gpu-operator-ocp are rejected at resolution

Other Improvements

  • aicr snapshot fails closed on unusable --snapshot input; the collector fails loud when Kubernetes collection is canceled mid-propagation and emits lossless label/taint readings
  • GET /v1/query requires a selector, versionless legacy bundle recipes are accepted, and duplicate ComponentRef names are rejected
  • Constraint measurement paths are validated at recipe load time; aicr validate --fail-on-error scoping and its exit-code and CTRF-suite semantics are documented
  • The BOM extracts nested operator images; the aiperf-bench runtime moved to NVIDIA distroless Python with pip removed
  • Readiness checks run in-process via pkg/chainsaw (promoted from validators/chainsaw), and the external chainsaw binary is gone from the validator images

Thanks to @andrewwhitecdw, @atif1996, @framsouza, @gat786, @kaynetu, @krtadev, @lockwobr, @mohityadav8, @njhensley, @rorajani, @rsd-darshan, @tjrasche, @varmesh, @yuanchen8911, and @mchmarny.

Changelog

New Features

Bug Fixes

Other Tasks