Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions .github/workflows/vuln-scan-images.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -355,17 +355,17 @@ jobs:
# TestPreflightImagesPinnedEverywhere and
# TestNICHealthMonitorImagePinnedEverywhere fail if these drift apart.
- image: ghcr.io/nvidia/nvsentinel/kubernetes-object-monitor
tag: v1.20.0
tag: v1.22.0
- image: ghcr.io/nvidia/nvsentinel/preflight
tag: v1.20.0
tag: v1.22.0
- image: ghcr.io/nvidia/nvsentinel/preflight-dcgm-diag
tag: v1.20.0
tag: v1.22.0
- image: ghcr.io/nvidia/nvsentinel/preflight-nccl-loopback
tag: v1.20.0
tag: v1.22.0
- image: ghcr.io/nvidia/nvsentinel/preflight-nccl-allreduce
tag: v1.20.0
tag: v1.22.0
- image: ghcr.io/nvidia/nvsentinel/nic-health-monitor
tag: v1.20.0
tag: v1.22.0
# Versioned independently of the nvsentinel chart -- this comes from
# global.initContainerImage, not the chart's appVersion, so it does
# not move with defaultVersion. Digest-pinned, so the tag is only
Expand Down
2 changes: 1 addition & 1 deletion docs/user/component-catalog.md
Original file line number Diff line number Diff line change
Expand Up @@ -210,7 +210,7 @@ AICR ships NVSentinel in the upstream chart's **monitoring-only** configuration:
| `faultRemediation` | decides the remediation action |
| `janitor` / `janitorProvider` | executes it — reboot or terminate |

Also off: `healthEventsAnalyzer`, `lifecycleManager`, `cspHealthMonitor`, `kubernetesObjectMonitor`, `nicHealthMonitor`, `slurmDrainMonitor`, `preflight`, `eventExporter`, `inclusterFileServer`, `k8sdatastoreCrds`. Verified against chart `v1.20.0`, the version pinned in `recipes/registry.yaml`.
Also off: `healthEventsAnalyzer`, `lifecycleManager`, `cspHealthMonitor`, `kubernetesObjectMonitor`, `nicHealthMonitor`, `slurmDrainMonitor`, `preflight`, `eventExporter`, `inclusterFileServer`, `k8sdatastoreCrds`. Verified against chart `v1.22.0`, the version pinned in `recipes/registry.yaml`.

`nicHealthMonitor` is the one entry above that AICR's shipped recipes turn back on, and only on AKS and OKE — see [NIC and fabric fault detection](#nic-and-fabric-fault-detection).

Expand Down
18 changes: 9 additions & 9 deletions docs/user/container-images.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ _Rendering fidelity:_ `catalog-parity: charts are rendered with the shared recip
| nvcre | helm | cluster-readiness-engine | v0.2.0 | 1 |
| nvidia-dra-driver-gpu | helm | dra-driver-nvidia-gpu | 0.5.0 | 1 |
| nvidia-dra-driver-gpu-ocp | helm | dra-driver-nvidia-gpu | 0.5.0 | 1 |
| nvsentinel | helm | nvsentinel | v1.20.0 | 6 |
| nvsentinel | helm | nvsentinel | v1.22.0 | 6 |
| prometheus-adapter | helm | prometheus-community/prometheus-adapter | 5.3.0 | 1 |
| prometheus-adapter-ocp | helm | prometheus-community/prometheus-adapter | 5.3.0 | 1 |
| prometheus-operator-crds | helm | prometheus-community/prometheus-operator-crds | 28.0.1 | 0 |
Expand Down Expand Up @@ -323,12 +323,12 @@ _No images extracted._

### nvsentinel

- `ghcr.io/nvidia/nvsentinel/gpu-health-monitor:v1.20.0-dcgm-3.x`
- `ghcr.io/nvidia/nvsentinel/gpu-health-monitor:v1.20.0-dcgm-4.x`
- `ghcr.io/nvidia/nvsentinel/labeler:v1.20.0`
- `ghcr.io/nvidia/nvsentinel/metadata-collector:v1.20.0`
- `ghcr.io/nvidia/nvsentinel/platform-connectors:v1.20.0`
- `ghcr.io/nvidia/nvsentinel/syslog-health-monitor:v1.20.0`
- `ghcr.io/nvidia/nvsentinel/gpu-health-monitor:v1.22.0-dcgm-3.x`
- `ghcr.io/nvidia/nvsentinel/gpu-health-monitor:v1.22.0-dcgm-4.x`
- `ghcr.io/nvidia/nvsentinel/labeler:v1.22.0`
- `ghcr.io/nvidia/nvsentinel/metadata-collector:v1.22.0`
- `ghcr.io/nvidia/nvsentinel/platform-connectors:v1.22.0`
- `ghcr.io/nvidia/nvsentinel/syslog-health-monitor:v1.22.0`

### prometheus-adapter

Expand Down Expand Up @@ -399,8 +399,8 @@ The trade-off is intentional. Pinning an image gives reproducibility; deferring
**Opt-in values enabled by a leaf override or mixin are a fourth gap.** A handful of images only appear once a component's *values*, not just its enablement, are overridden outside the shared `recipes/components/<name>/values.yaml` this BOM renders (`tools/bom/main.go`'s `renderHelmComponent` resolves each component against only its base values file, so it cannot see leaf or mixin overrides). Four known cases, none counted in the `nvsentinel` row's image count above. Three set a `global.*` toggle:

- The [`nvsentinel-observability` mixin](component-catalog.md#audit-logging-and-tracing) sets `global.auditLogging.enabled: true`, which conditionally adds a `fix-audit-log-permissions` init container (`docker.io/library/busybox:1.38.0@sha256:fd7dc98638c8e305f4dc34e979f1c0fdfdcaeb0fbf8fcff77ae834b6da3d7e6e`) to the `platform-connectors` DaemonSet and `labeler` Deployment. The chart's own default for this init container is `docker.io/bitnamilegacy/os-shell:12-debian-12-r30`, which sits in Bitnami's frozen archive and will never be patched; AICR overrides `global.initContainerImage` in `recipes/components/nvsentinel/values.yaml` to the same digest-pinned busybox it already ships in the `network-operator` and `gpu-operator` manifests.
- The [`nvsentinel-object-monitor` mixin](component-catalog.md#kubernetes-object-monitor) sets `global.kubernetesObjectMonitor.enabled`, turning on the chart's `kubernetes-object-monitor` subchart and pulling in `ghcr.io/nvidia/nvsentinel/kubernetes-object-monitor:v1.20.0`. That image is in AICR's weekly image scan despite not being built here, since nothing else would surface a CVE in it.
- The [`nvsentinel-nic-health-monitor` mixin](component-catalog.md#nic-and-fabric-fault-detection) sets `global.nicHealthMonitor.enabled`, turning on the chart's `nic-health-monitor` subchart and pulling in `ghcr.io/nvidia/nvsentinel/nic-health-monitor:v1.20.0`. Its `chown` init container reuses `docker.io/library/busybox:1.38.0@sha256:fd7dc98638c8e305f4dc34e979f1c0fdfdcaeb0fbf8fcff77ae834b6da3d7e6e` — the same overridden `global.initContainerImage` the observability mixin above already pulls in, not a second one. Unlike the other two, this mixin is referenced by the shipped `aks` and `oke-ol` overlays, so every AKS and OKE recipe deploys these images; the other families do not.
- The [`nvsentinel-object-monitor` mixin](component-catalog.md#kubernetes-object-monitor) sets `global.kubernetesObjectMonitor.enabled`, turning on the chart's `kubernetes-object-monitor` subchart and pulling in `ghcr.io/nvidia/nvsentinel/kubernetes-object-monitor:v1.22.0`. That image is in AICR's weekly image scan despite not being built here, since nothing else would surface a CVE in it.
- The [`nvsentinel-nic-health-monitor` mixin](component-catalog.md#nic-and-fabric-fault-detection) sets `global.nicHealthMonitor.enabled`, turning on the chart's `nic-health-monitor` subchart and pulling in `ghcr.io/nvidia/nvsentinel/nic-health-monitor:v1.22.0`. Its `chown` init container reuses `docker.io/library/busybox:1.38.0@sha256:fd7dc98638c8e305f4dc34e979f1c0fdfdcaeb0fbf8fcff77ae834b6da3d7e6e` — the same overridden `global.initContainerImage` the observability mixin above already pulls in, not a second one. Unlike the other two, this mixin is referenced by the shipped `aks` and `oke-ol` overlays, so every AKS and OKE recipe deploys these images; the other families do not.

A recipe composing any of these mixins **with `nvsentinel` still enabled** adds that mixin's images to what it deploys and mirrors; `aicr bundle`/`aicr mirror` on such a recipe surfaces them even though this static BOM cannot. A chain that disables `nvsentinel` (the OCP overlay, for example) can compose a mixin and ship none of them.

Expand Down
Loading
Loading