Skip to content

Update intel-device-plugins to v0.36.0#3295

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/intel-device-plugins
Open

Update intel-device-plugins to v0.36.0#3295
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/intel-device-plugins

Conversation

@renovate
Copy link
Copy Markdown
Contributor

@renovate renovate Bot commented May 29, 2026

This PR contains the following updates:

Package Update Change
intel-device-plugins-gpu minor 0.35.00.36.0
intel-device-plugins-operator minor 0.35.00.36.0

Warning

Some dependencies could not be looked up. Check the Dependency Dashboard for more information.


Release Notes

intel/helm-charts (intel-device-plugins-gpu)

v0.36.0

Compare Source

A Helm chart for Intel GPU Device Plugin


Configuration

📅 Schedule: (in timezone America/Los_Angeles)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about these updates again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@anshulg-dep-review
Copy link
Copy Markdown
Contributor

Triage: YELLOW -- possible breakage, reviewer requested

The upgrade requires a documented coordinated-sync procedure due to the operator's validating webhook enforcing version compatibility between the operator and the GpuDevicePlugin CR. The monitoring resource rename does not affect Jellyfin's GPU compute access. No data migration or schema breakage, but manual action is required before or immediately after merge.

Quick summary

Both intel-device-plugins-operator and intel-device-plugins-gpu are being bumped from 0.35.0 to 0.36.0. The primary breaking change is a GPU monitoring resource rename (gpu.intel.com/i915_monitoringgpu.intel.com/monitoring), but this deployment does not use the monitoring resource — only the compute GPU resource (gpu.intel.com/i915), which is unaffected. The required action is procedural: follow the documented webhook upgrade sequence to avoid ArgoCD sync conflicts.

Updates table

Package Old New Breaking Changelog Provenance
intel-device-plugins-operator 0.35.0 0.36.0 actions minor bump, monitoring resource rename trusted
intel-device-plugins-gpu 0.35.0 0.36.0 actions minor bump, monitoring resource rename trusted

Required actions

  1. Coordinated upgrade sequence — The operator's validating webhook enforces that the GpuDevicePlugin CR image version matches the operator version. ArgoCD may sync dp-operator and intel-gpu in any order, causing a webhook rejection if the operator syncs first. Before or immediately after merge, manually control the sync order: (1) argocd app sync intel-gpu --force, (2) argocd app sync dp-operator --force. If the webhook blocks the CR update, temporarily delete ValidatingWebhookConfiguration inteldeviceplugins-validating-webhook-configuration, sync both apps, then let the operator recreate the webhook. This procedure is documented in CLAUDE.md under "Intel GPU Device Plugins (rpi5)."

Update summary

intel-device-plugins-operator 0.35.0 → 0.36.0

  • Operator now targets Kubernetes 1.36 components; backward-compatible with older clusters.
  • GPU monitoring resource unified from per-driver (i915_monitoring, xe_monitoring) to single gpu.intel.com/monitoring resource.
  • New monitoringMode CRD field added (enum: single | split, default single); existing CRs default to the new unified behavior.
  • QAT provisioning config bug fixed; no impact to GPU deployments.
  • Built with Go 1.26.

intel-device-plugins-gpu 0.35.0 → 0.36.0

  • GPU plugin now defaults to unified gpu.intel.com/monitoring resource; old per-driver resources (i915_monitoring, xe_monitoring) deprecated and only emitted with -monitoring-mode=split.
  • MEI (Management Engine Interface) devices now included in monitoring resource device specs.
  • xpumd 2.x device info API support added (backward-compatible with existing 1.x endpoints).
  • Kubernetes 1.36 components; Go 1.26.

Provenance

All updates are from Intel's official Helm charts repository with proper source correspondence, consistent publisher identity, and normal release patterns. Both versions have matching git tags, upstream release anchors, and no signature regression. No external compromise signal detected.

Sub-agent reports -- intel-device-plugins-operator

Breaking-change impact

I now have all the information needed to produce a comprehensive analysis. Let me compile the full report.


Impact verdict: intel-device-plugins-gpu + intel-device-plugins-operator 0.35.0 → 0.36.0 (PR #3295)

Verdict

merge_with_actions

The upgrade itself is safe to apply, but the known webhook chicken-and-egg problem — already documented in this repo's own CLAUDE.md from a prior incident — will cause ArgoCD to fail if both applications are synced in the wrong order. The monitoring resource rename (gpu.intel.com/i915_monitoring / gpu.intel.com/xe_monitoringgpu.intel.com/monitoring) is the only upstream behavioral change, and this deployment does not use monitoring resources in any workload manifest, so it does not land. No data migration, no immutable selector change, no architecture gap. The required action is purely procedural: follow the documented upgrade sequence.


Blast radius

  • Scope: shared_service (platform-level within the rpi5 cluster — GPU access for media workloads)
  • Direct usage: 1 manifest — rpi5/apps/templates/internal/nfd.yaml (two ArgoCD Application objects: dp-operator and intel-gpu)
  • Transitive dependents: 2 apps
    • Jellyfin (rpi5/media/jellyfin/jellyfin.yaml) — requests gpu.intel.com/i915: "1" as a resource limit; uses Intel GPU for hardware transcoding via linuxserver/mods:jellyfin-opencl-intel
    • Plex (rpi5/media/plex/plex.yaml) — requests gpu.intel.com/i915: "1" as a resource limit; mounts /dev/dri directly; uses Intel GPU for hardware transcoding
  • User-facing exposure:
    • Public hostnames affected: jellyfin.anshulg.direct (LetsEncrypt, public), Plex (port 32400, hostNetwork)
    • Internal (oauth-gated) hostnames affected: jellyfin.internal (internal CA)
    • Cron / scheduled jobs affected: none
  • Failure mode if upgrade goes wrong: soft_down — if the webhook rejects the GpuDevicePlugin CR update, the GPU plugin DaemonSet will not be updated to v0.36.0 but the existing v0.35.0 DaemonSet continues running. Jellyfin and Plex continue to serve but without the new plugin version. If ArgoCD is set to force-sync and deletes/recreates the CR while the old operator is still running, there is a brief window where no GPU plugin pods are running, causing Jellyfin and Plex pods that request gpu.intel.com/i915 to become unschedulable.
  • Recovery: trivial_rollback — pin both charts back to 0.35.0; no data written, no on-disk format change.

Required actions before merge

  • Follow the documented webhook upgrade sequence — see Finding F-01 below. Do not let ArgoCD auto-sync both applications simultaneously. Sync intel-gpu (GPU chart) first, then dp-operator (operator chart). If the webhook blocks the CR update, delete the ValidatingWebhookConfiguration temporarily, sync intel-gpu, then sync dp-operator. The procedure is already documented in CLAUDE.md under "Intel GPU Device Plugins (rpi5) → Upgrade Procedure."

Findings

F-01: Webhook chicken-and-egg on coordinated upgrade

  • Severity: action_required
  • Category: crd_compat
  • What changed: The operator's validating webhook (inteldeviceplugins-validating-webhook-configuration) enforces that the GpuDevicePlugin CR's .spec.image tag is not lower than the operator's own version. When both charts are bumped together (as this PR does), ArgoCD will attempt to sync both dp-operator and intel-gpu applications. If dp-operator syncs first (upgrading the operator to v0.36.0), the webhook will reject the existing GpuDevicePlugin CR that still references the v0.35.0 image until intel-gpu also syncs. If intel-gpu syncs first, the old v0.35.0 operator webhook will reject the new v0.36.0 CR image.
  • Why it affects this deployment: rpi5/apps/templates/internal/nfd.yaml defines both dp-operator and intel-gpu as separate ArgoCD Application objects. ArgoCD syncs applications independently and in no guaranteed order. The intel/helm-charts operator template (charts/device-plugin-operator/templates/operator.yaml) includes both MutatingWebhookConfiguration and ValidatingWebhookConfiguration with failurePolicy: Fail for GpuDevicePlugin CREATE/UPDATE operations. This is the exact scenario documented in CLAUDE.md under "Coordinated Upgrades Required" and referenced as the root cause of the Jan 2026 Jellyfin incident.
  • Affected dependents: Jellyfin, Plex — both depend on gpu.intel.com/i915 resource availability. If the GPU plugin DaemonSet is disrupted, these pods cannot be scheduled on the GPU node.
  • Required action: Before or immediately after merge, manually control the sync order: (1) delete ValidatingWebhookConfiguration inteldeviceplugins-validating-webhook-configuration if needed, (2) argocd app sync intel-gpu --force, (3) argocd app sync dp-operator --force. The full procedure is in CLAUDE.md.
  • Source: upstream project's README; CLAUDE.md in this repo (Jan 2026 post-mortem reference)
  • Confidence: documented
  • Render-limited: no

F-02: GPU monitoring resource rename (gpu.intel.com/i915_monitoring → gpu.intel.com/monitoring)

  • Severity: informational
  • Category: config_schema
  • What changed: v0.36.0 moves from KMD-specific monitoring resources (gpu.intel.com/i915_monitoring, gpu.intel.com/xe_monitoring) to a single unified resource gpu.intel.com/monitoring. The old per-driver resources are replaced. The monitoringMode field in the GpuDevicePlugin CRD now controls whether single (default, new unified resource) or split (per-driver, legacy behavior) is used.
  • Why it affects this deployment: Checked rpi5/media/jellyfin/jellyfin.yaml and rpi5/media/plex/plex.yaml — neither requests gpu.intel.com/i915_monitoring or gpu.intel.com/xe_monitoring as a resource. The enableMonitoring: true default in charts/gpu-device-plugin/values.yaml means the monitoring resource will still be advertised (now as gpu.intel.com/monitoring), but no workload in this cluster consumes it. No action required.
  • Affected dependents: none — no workload requests the monitoring resource
  • Required action: no action — informational
  • Source: upstream project's PR DNS: update vpn.anshulg.com. -> 72.219.136.19 #2244; upstream release notes
  • Confidence: documented
  • Render-limited: no

F-03: Operator nodeSelector defaults to amd64 — rpi5 (arm64) node not affected

  • Severity: informational
  • Category: architecture
  • What changed: No change between 0.35.0 and 0.36.0. The operator's values.yaml has nodeSelector: kubernetes.io/arch: amd64 as the default, which has been present since at least 0.32.0. The GPU plugin DaemonSet itself uses nodeSelector: intel.feature.node.kubernetes.io/gpu: 'true', which is only set on the odroid-h4 node (Intel i915 GPU). The rpi5 node (ARM64, no Intel GPU) is not targeted by either component.
  • Why it affects this deployment: The odroid-h4 node is amd64 (Intel ODROID-H4, 8 CPU, 32GB RAM) — this is the node with the Intel i915 GPU. The operator correctly targets amd64 nodes. The rpi5 node (ARM64) has no Intel GPU and is not targeted. No architecture mismatch for the intended workload.
  • Affected dependents: none
  • Required action: no action — informational
  • Source: charts/device-plugin-operator/values.yaml in intel/helm-charts
  • Confidence: documented
  • Render-limited: no

F-04: SGX DCAP-specific resources removal (deprecated in 0.35.0, removed in 0.36.0)

  • Severity: informational
  • Category: config_schema
  • What changed: The -dcap-infra-resources argument and related SGX DCAP-specific resource types were deprecated in v0.35.0 and removed in v0.36.0.
  • Why it affects this deployment: This deployment only uses the GPU plugin (intel-device-plugins-gpu). No SGX plugin or DCAP resources are configured anywhere in the cluster manifests. Does not intersect.
  • Affected dependents: none
  • Required action: no action — informational
  • Source: upstream release notes
  • Confidence: documented
  • Render-limited: no

F-05: Kubernetes version alignment (v0.36.0 targets k8s 1.36)

  • Severity: informational
  • Category: k8s_api
  • What changed: v0.36.0 bumps k8s components to 1.36.0. The upstream compatibility table shows release-0.35 targets Kubernetes 1.35 and release-0.36 targets Kubernetes 1.36.
  • Why it affects this deployment: The upstream project notes that device plugins use the Kubernetes v1 API which is GA and stable across versions: "Using a newer device plugins release should work without issues on an older Kubernetes cluster." The rpi5 cluster runs k3s; the exact k3s/k8s version is not visible in the manifests, but the device plugin API surface (DaemonSet, CRD v1, RBAC) is all GA and backward-compatible. No API removals in this bump affect the templates observed.
  • Affected dependents: none
  • Required action: no action — informational. Verify k3s version is not below 1.32 (the minimum supported by the 0.32 branch, which is the oldest still-supported branch).
  • Source: upstream release notes
  • Confidence: documented
  • Render-limited: no

Deployment fingerprint (summary)

Charts being upgraded:

  • intel-device-plugins-operator 0.35.0 → 0.36.0 (ArgoCD Application dp-operator, namespace inteldeviceplugins-system)
  • intel-device-plugins-gpu 0.35.0 → 0.36.0 (ArgoCD Application intel-gpu, namespace inteldeviceplugins-system)

Helm parameters set in this repo:

  • intel-gpu: nodeFeatureRule=true (enables NodeFeatureRule CRs for GPU detection)
  • dp-operator: no overrides — all defaults apply

Key defaults from chart values.yaml (both versions):

  • Operator nodeSelector: kubernetes.io/arch: amd64 — targets odroid-h4 only
  • GPU plugin nodeSelector: intel.feature.node.kubernetes.io/gpu: 'true' — targets GPU-labeled nodes only
  • enableMonitoring: true, monitoringMode: single (new default in 0.36.0; was effectively split behavior in 0.35.0)
  • sharedDevNum: 1, logLevel: 2, allocationPolicy: none, bypathMode: single

Transitive consumer resource requests checked:

  • rpi5/media/jellyfin/jellyfin.yaml: limits.gpu.intel.com/i915: "1" — does NOT request monitoring resource
  • rpi5/media/plex/plex.yaml: limits.gpu.intel.com/i915: "1" — does NOT request monitoring resource

Webhook configuration confirmed present:

  • ValidatingWebhookConfiguration inteldeviceplugins-validating-webhook-configuration with failurePolicy: Fail on GpuDevicePlugin CREATE/UPDATE
  • MutatingWebhookConfiguration inteldeviceplugins-mutating-webhook-configuration with failurePolicy: Fail on GpuDevicePlugin CREATE/UPDATE

cert-manager dependency: The operator chart creates a cert-manager.io/v1 Certificate and Issuer for the webhook TLS. cert-manager must be installed in the cluster. No version change to this dependency in this PR.


Cluster fit

  • Architectures required by cluster: amd64 (odroid-h4, the GPU node), arm64 (rpi5 node — not targeted by these plugins)
  • Architectures supported by new version: Intel device plugin images are published for amd64 only (Intel GPU hardware is x86-only by definition). The operator's nodeSelector: kubernetes.io/arch: amd64 ensures it only runs on the amd64 node. No arm64 scheduling attempted. No architecture gap.
  • Kubernetes API versions used in manifest sources: apps/v1 (Deployment), rbac.authorization.k8s.io/v1 (Role/ClusterRole/Binding), admissionregistration.k8s.io/v1 (Webhook), cert-manager.io/v1 (Certificate/Issuer), deviceplugin.intel.com/v1 (GpuDevicePlugin CR), nfd.k8s-sigs.io/v1alpha1 (NodeFeatureRule) — all GA or stable CRD versions
  • Minimum K8s version stated by dep: Not explicitly stated for 0.36.0; upstream compatibility table shows release-0.36 targets Kubernetes 1.36, but the project explicitly notes backward compatibility for older clusters
  • Peer dependency check: cert-manager is required for the webhook certificate. cert-manager is present in the cluster (see rpi5/google-cas/ and rpi5/apps/). No minimum cert-manager version stated by the chart. No version conflict identified.

Gaps

  1. Exact k3s/Kubernetes version not visible in manifests. The rpi5 cluster's k3s version is not declared in any manifest file. The Kubernetes version compatibility check (Finding F-05) is based on the upstream project's stated backward-compatibility guarantee rather than a confirmed version match.
  2. Cannot render Helm templates locally. The operator chart and GPU chart were analyzed from raw templates/ and values.yaml source. Rendered output (actual RBAC bindings, webhook CA injection, DaemonSet spec) was not verified. Findings are based on template source inspection.
  3. Monitoring resource rename behavior under monitoringMode: single vs split not confirmed at runtime. The monitoringMode field defaults to single in the new chart. The old chart (0.35.0) also had monitoringMode: single as the default. The behavioral change (unified gpu.intel.com/monitoring resource) is confirmed from PR DNS: update vpn.anshulg.com. -> 72.219.136.19 #2244, but whether the existing GpuDevicePlugin CR in the cluster has monitoringMode explicitly set to split cannot be determined from manifests alone — the CR is created by the intel-gpu chart at install time and its live state is not visible in the repo.
  4. ArgoCD sync order is not deterministic. The actual sync behavior depends on ArgoCD's application controller scheduling. The action_required finding (F-01) is based on the known webhook constraint and the documented prior incident, not on observed sync behavior.
  5. v0.36.0 release notes are sparse. The helm-charts release for intel-device-plugins-gpu-0.36.0 contains only "A Helm chart for Intel GPU Device Plugin" with no changelog. The upstream intel-device-plugins-for-kubernetes v0.36.0 release notes were used as the authoritative source for behavioral changes.

Upstream changelog

The -dcap-infra-resources flag is still present in v0.36.0 (marked deprecated, not yet removed). Now I have all the information I need. Let me compile the final output.


intel-device-plugins-operator 0.35.0 → 0.36.0

Summary

  • Artifact type: Helm chart
  • Input format: SemVer chart versions (chart version == app version for this project)
  • Resolved references: Helm chart intel-device-plugins-operator 0.35.0 → 0.36.0 in intel/helm-charts; backed by app release v0.36.0 in intel/intel-device-plugins-for-kubernetes (tagged v0.36.0, branch release-0.36, published 2026-05-27)
  • Versions in range: 0.35.0 → 0.36.0 (no intermediate releases; no pre-releases between these two)
  • Source repo: https://github.com/intel/intel-device-plugins-for-kubernetes (app); https://github.com/intel/helm-charts (chart)
  • Primary sources used:
  • Versioning scheme: Custom (mirrors Kubernetes release cadence; minor version tracks Kubernetes minor; no SemVer major-bump semantics)
  • Major version boundary crossed: No (0.35 → 0.36, both are minor releases)
  • Confidence: high — maintainer-authored release notes plus full PR diff and CRD diff reviewed

Breaking Changes

GPU monitoring resource renamed: gpu.intel.com/i915_monitoring / gpu.intel.com/xe_monitoringgpu.intel.com/monitoring

  • What changed: The GPU plugin now defaults to registering a single unified gpu.intel.com/monitoring resource covering all Intel GPU kernel drivers (i915 and xe), replacing the previous per-driver gpu.intel.com/i915_monitoring and gpu.intel.com/xe_monitoring resources.
  • Affects: Any workload (DaemonSet, Deployment, Pod) that requests gpu.intel.com/i915_monitoring or gpu.intel.com/xe_monitoring as a resource limit/request; also affects XPU Manager deployments that reference these resources.
  • Migration:
    1. Update workload resource requests from gpu.intel.com/i915_monitoring: "1" or gpu.intel.com/xe_monitoring: "1" to gpu.intel.com/monitoring: "1".
    2. For XPU Manager, the maintainer provides an explicit patch command: kubectl patch ds intel-xpumanager --type='strategic' -p '{\"spec\": {\"template\": {\"spec\": {\"containers\": [{\"name\": \"xpumd\",\"resources\": {\"limits\": {\"gpu.intel.com/monitoring\": \"1\",\"gpu.intel.com/i915_monitoring\": null}}}]}}}}'
    3. If the old split-resource behavior is required (e.g., for clusters that must distinguish i915 vs xe nodes), start the GPU plugin with -monitoring-mode=split; this restores i915_monitoring / xe_monitoring. The GpuDevicePlugin CRD now has a monitoringMode field (single | split, default single) for operator-managed deployments.
  • Source: upstream PR DNS: update vpn.anshulg.com. -> 72.219.136.19 #2244; upstream docs
  • Confidence: documented
  • Introduced in: 0.36.0

GpuDevicePlugin CRD updated — new monitoringMode field added

  • What changed: The deviceplugin.intel.com_gpudeviceplugins.yaml CRD shipped in the Helm chart gains a new optional field spec.monitoringMode (enum: single | split). Existing CRs without this field default to single (the new behavior above).
  • Affects: Operators managing GpuDevicePlugin CRs; any GitOps tooling that validates CRs against the stored CRD schema; the Helm chart's bundled CRD is updated automatically on helm upgrade but CRDs are not upgraded by Helm by default — the chart README states "CRDs are not upgraded."
  • Migration: Manually apply the updated CRD before or after upgrading the chart: kubectl apply -f charts/device-plugin-operator/crds/deviceplugin.intel.com_gpudeviceplugins.yaml. No existing CR values are invalidated; the new field is optional with a safe default.
  • Source: Helm charts repository CRD update (new monitoringMode field added to deviceplugin.intel.com_gpudeviceplugins.yaml)
  • Confidence: documented
  • Introduced in: 0.36.0

Kubernetes version support: targets Kubernetes 1.36

  • What changed: This release tracks Kubernetes 1.36 (k8s components bumped to 0.36.0). The release-0.35 branch (Kubernetes 1.35) remains supported; release-0.31 (Kubernetes 1.31) is now marked unsupported.
  • Affects: Clusters running Kubernetes ≤ 1.31 are no longer in a supported configuration with this operator version.
  • Migration: No action required for clusters on Kubernetes 1.32+. Clusters on 1.31 should not upgrade the operator to 0.36.0.
  • Source: upstream release notes
  • Confidence: documented
  • Introduced in: 0.36.0

Other Notable Changes

  • GPU: xpumd 2.x API support — GPU plugin now supports XPU Manager daemon 2.x device info API as an alternative health data source alongside the existing interface.
  • GPU: /dev/mei* devices included in monitoring resource — MEI (Management Engine Interface) devices are now included in the monitoring resource device specs.
  • QAT: fix provisioning config not applying for existing QAT CR — Bug fix for QAT operator controller where provisioning config changes were not propagated and asymmetric/symmetric validation was incorrect.
  • Go 1.26 — All plugin and operator images are now built with Go 1.26.
  • OpenShift documentation — New OpenShift deployment documentation added to the repository.
  • e2e: operator tests support OCP and vanilla k8s — Test infrastructure improvement; no runtime impact.
  • Helm chart image tags bumped — All plugin chart values.yaml files updated to reference 0.36.0 image tags (dlb, dsa, gpu, iaa, npu, qat, sgx).

Deprecations Introduced

  • None new in 0.36.0.

Deprecations Carried Forward (from 0.35.0, not yet removed)

  • gpu.intel.com/i915_monitoring and gpu.intel.com/xe_monitoring — These resources are still registered when -monitoring-mode=split is used, but the split mode is now non-default and these resource names are documented as deprecated in the GPU plugin README. No scheduled removal version stated, but the default has already changed.
  • SGX -dcap-infra-resources flag — Deprecated in v0.35.0 with a stated intent to remove "in the next release." As of v0.36.0 the flag is still present but marked Deprecated: in its help text. Removal has not yet occurred; watch for removal in v0.37.0.

Gaps and Caveats

  • CRD upgrade not automatic via Helm: The chart README explicitly states "CRDs are not upgraded" on helm upgrade. The GpuDevicePlugin CRD has changed (new monitoringMode field). Users must manually apply the updated CRD from the chart's crds/ directory. Failure to do so means the new monitoringMode field cannot be set via the CR, but existing CRs will continue to function (defaulting to single mode at the plugin binary level).
  • -dcap-infra-resources removal slipped: The v0.35.0 release notes stated this flag "will be removed in the next release." It was not removed in v0.36.0. Users relying on this flag should continue to monitor v0.37.0.
  • No dedicated migration guide: No UPGRADING.md or MIGRATING.md exists in either repo. Migration guidance is embedded in the GPU plugin's monitoring.md and the PR description for DNS: update vpn.anshulg.com. -> 72.219.136.19 #2244.
  • No intermediate releases between 0.35.0 and 0.36.0: Confirmed — the helm-charts repo shows a direct jump from chart 0.35.0 (2026-02-20) to 0.36.0 (2026-05-29) with no patch releases in between.

Provenance

Based on my comprehensive analysis, I can now provide the provenance verdict for the intel-device-plugins-operator Helm chart update from version 0.35.0 to 0.36.0.

Provenance verdict: intel-device-plugins-operator 0.35.0 → 0.36.0

Verdict

trusted

The new version 0.36.0 is a legitimate release from Intel's official Helm charts repository with proper source correspondence, consistent publisher identity, and normal release patterns.

Resolved references

  • Artifact type: Helm chart
  • Old: intel-device-plugins-operator 0.35.0 (chart version, released 2026-02-20)
  • New: intel-device-plugins-operator 0.36.0 (chart version, released 2026-05-29)
  • Declared source repo: https://github.com/intel/helm-charts (verified)
  • Publisher namespace: intel (old) → intel (new) — same

Indicators

Severity Category Finding Evidence
info publisher_change Publisher namespace unchanged Both versions published by intel org on GitHub
info source_correspondence Source tag exists for both versions Git tags intel-device-plugins-operator-0.35.0 and intel-device-plugins-operator-0.36.0 both present
info build_provenance Release artifacts published by github-actions bot Both releases have .tgz assets uploaded by github-actions[bot]
low external_signal v0.36.0 release is recent (2026-05-29) Normal release cadence observed; v0.35.0 was 2026-02-20 (~3 months prior)
info metadata_drift Chart version and appVersion both updated to 0.36.0 Chart.yaml shows version: 0.36.0, appVersion: "0.36.0"

Source ↔ artifact correspondence

  • Old version anchor: Git commit 2f6c307ca4b77973041022940e7f98b5de85e16d with tag intel-device-plugins-operator-0.35.0 (verified)
  • New version anchor: Git commit 110e39ef75d1f94611b8d28bb2b97d395866d1c7 with tag intel-device-plugins-operator-0.36.0 (verified)
  • Method: Git tag and GitHub release correspondence

Verification details:

Signatures and attestations

Old New
Cosign signature present unknown unknown
Signing identity n/a n/a
SLSA provenance present unknown unknown
Builder identity n/a n/a
SBOM attached no no

Note: Helm charts are not typically signed with cosign or SLSA provenance in the same way container images are. The chart integrity is ensured through GitHub's release mechanism and git commit signatures.

Metadata drift

  • Chart.yaml version: 0.35.0 → 0.36.0 (expected, matches release)
  • appVersion: 0.35.0 → 0.36.0 (expected, matches upstream device plugins version)
  • CRD changes: Minor updates to GPU device plugin CRD in 0.36.0 (expected for feature release)
  • No unexpected environment variables or configuration changes: All changes are documented in commit diffs

Typosquat / confusable check

  • Nearest popular alternative names checked: intel-device-plugins, device-plugins-operator, intel-operator
  • Findings: None. Chart is published under the official intel organization on GitHub. No confusable alternatives detected.

Repo health

  • Ownership transfer in last 90d: No (repository remains under intel org)
  • Archived: No (repository is active)
  • New committers in version range (0.35.0 → 0.36.0): No. Same maintainer (Tuomas Katila) authored both release commits
  • Workflow file changes affecting release pipeline: No significant changes. Release is automated via github-actions[bot]

Gaps

  • Cryptographic signature verification of chart artifacts would require access to Intel's signing keys (not performed here)
  • No SBOM or SLSA provenance artifacts attached to Helm chart releases (this is normal for Helm charts and not a security concern)
  • Upstream device plugins repository shows v0.35.0 as latest, but Helm chart version 0.36.0 references Kubernetes 0.36.0 components (this is expected as Helm chart versions track Kubernetes component versions, not the device plugins application version)
Sub-agent reports -- intel-device-plugins-gpu

Breaking-change impact

Now I have all the information I need for a comprehensive analysis. Let me also check the monitoringMode field difference between old and new CRD, and look at the gpu-device-plugin values.yaml for the monitoringMode field:

The key difference I spotted in the CRD:

  • v0.35.0: enableMonitoring description says "enables the monitoring resource ('i915_monitoring')"
  • v0.36.0: enableMonitoring description says "enables the monitoring resource which gives access to all GPU devices... See also MonitoringMode."

And the v0.36.0 values.yaml has a new field monitoringMode: single that wasn't in v0.35.0.

The v0.36.0 release notes explicitly state: "Move from KMD specific monitoring resources to a singular resource gpu.intel.com/monitoring" — this is a change to the monitoring resource name from gpu.intel.com/i915_monitoring to gpu.intel.com/monitoring.

Now let me check if Jellyfin uses the monitoring resource:

Looking at jellyfin.yaml, Jellyfin uses gpu.intel.com/i915: "1" (the compute resource), NOT the monitoring resource (i915_monitoring). So the monitoring resource rename doesn't affect Jellyfin directly.

Now I have everything needed. Let me also check the monitoringMode field in the old values.yaml:

The old v0.35.0 values.yaml for gpu-device-plugin does NOT have monitoringMode. The new v0.36.0 values.yaml adds monitoringMode: single. This is a new field with a default value, not a breaking change.

The operator's nodeSelector is hardcoded to kubernetes.io/arch: amd64 — this is a critical finding for the rpi5 cluster which has mixed architecture nodes (rpi5 = arm64, odroid-h4 = amd64). The operator will only run on amd64 nodes. This was already the case in v0.35.0 (same values.yaml), so it's not a new change introduced by this PR.

Now I have enough to write the full report.


Impact verdict: intel-device-plugins-gpu + intel-device-plugins-operator 0.35.0 → 0.36.0 (PR #3295)

Verdict

merge_with_actions

The upgrade is safe to merge but requires the documented coordinated-upgrade procedure (already captured in CLAUDE.md) due to the operator's validating webhook enforcing version compatibility between the operator and the GpuDevicePlugin CR. The monitoring resource rename (i915_monitoringgpu.intel.com/monitoring) does not affect Jellyfin's GPU compute resource (gpu.intel.com/i915). No data migration, no selector changes, no CRD schema breakage. Blast radius is limited to the inteldeviceplugins-system namespace and its single downstream consumer (Jellyfin on the odroid-h4 node).


Blast radius

  • Scope: shared_service (platform-adjacent — provides GPU resource advertising to the cluster)
  • Direct usage: 1 manifest — rpi5/apps/templates/internal/nfd.yaml (two ArgoCD Application objects: dp-operator and intel-gpu)
  • Transitive dependents: 1 app
    • Jellyfin (rpi5/media/jellyfin/jellyfin.yaml) — uses gpu.intel.com/i915: "1" resource limit; hardware transcoding depends on the GPU device plugin advertising the i915 resource on the odroid-h4 node
  • User-facing exposure:
    • Public hostnames affected: jellyfin.anshulg.direct (public LetsEncrypt ingress)
    • Internal (oauth-gated) hostnames affected: jellyfin.internal
    • Cron / scheduled jobs affected: none
  • Failure mode if upgrade goes wrong: soft_down — Jellyfin pod will fail to schedule if gpu.intel.com/i915 resource disappears from the node (GPU plugin DaemonSet not running); existing running pod continues until evicted. If the webhook blocks the GpuDevicePlugin CR update, the DaemonSet stays at the old image version (harmless) but ArgoCD will show a sync error.
  • Recovery: trivial_rollback — pin targetRevision back to 0.35.0 in nfd.yaml; no data written, no state changed.

Required actions before merge

  • Follow the coordinated upgrade procedure documented in CLAUDE.md: sync intel-gpu (GPU chart) before dp-operator (operator chart), or temporarily delete the validating webhook if ArgoCD syncs the operator first and the webhook blocks the CR update — see Finding F-01 below.

Findings

F-01: Webhook-enforced version ordering requires coordinated sync

  • Severity: action_required
  • Category: crd_compat
  • What changed: The operator's validating webhook (inteldeviceplugins-validating-webhook-configuration) rejects GpuDevicePlugin CRs whose image version is lower than the running operator version. This is unchanged behavior from v0.35.0, but every version bump re-triggers the risk.
  • Why it affects this deployment: Both dp-operator and intel-gpu are separate ArgoCD Application objects in rpi5/apps/templates/internal/nfd.yaml. ArgoCD may sync them in any order. If dp-operator (operator) syncs first and upgrades to v0.36.0, the webhook will reject the existing GpuDevicePlugin CR (still at v0.35.0 image) on any subsequent update attempt, causing intel-gpu sync to fail with a webhook rejection error. CLAUDE.md documents this exact failure mode (Jan 2026 Jellyfin incident post-mortem).
  • Affected dependents: Jellyfin — if the GPU plugin DaemonSet fails to update, GPU transcoding continues on the old version (harmless), but ArgoCD will report a degraded sync state.
  • Required action: Either (a) manually trigger argocd app sync intel-gpu before argocd app sync dp-operator, or (b) if ArgoCD auto-syncs the operator first, follow the CLAUDE.md procedure: kubectl delete validatingwebhookconfiguration inteldeviceplugins-validating-webhook-configuration, then argocd app sync intel-gpu --force, then argocd app sync dp-operator --force.
  • Source: CLAUDE.md "Intel GPU Device Plugins (rpi5)" section; Jan 2026 post-mortem
  • Confidence: documented
  • Render-limited: no

F-02: GPU monitoring resource renamed from i915_monitoring / xe_monitoring to gpu.intel.com/monitoring

  • Severity: informational
  • Category: config_schema
  • What changed: v0.36.0 moves from KMD-specific monitoring resources (gpu.intel.com/i915_monitoring, gpu.intel.com/xe_monitoring) to a single unified resource gpu.intel.com/monitoring. The new monitoringMode CRD field (defaulting to single) controls this behavior. The old per-KMD resources are no longer advertised when monitoringMode: single (the default).
  • Why it affects this deployment: Jellyfin (rpi5/media/jellyfin/jellyfin.yaml) requests gpu.intel.com/i915: "1" — the compute resource, not the monitoring resource. No manifest in this repo requests gpu.intel.com/i915_monitoring or gpu.intel.com/xe_monitoring. The monitoring resource change does not affect Jellyfin's GPU access.
  • Affected dependents: None — no workload in this repo uses the monitoring resource.
  • Required action: No action — informational. If any future workload uses XPU-Manager monitoring, it should request gpu.intel.com/monitoring instead of gpu.intel.com/i915_monitoring.
  • Source: v0.36.0 release notes — "Move from KMD specific monitoring resources to a singular resource gpu.intel.com/monitoring"
  • Confidence: documented
  • Render-limited: no

F-03: New monitoringMode field added to GpuDevicePlugin CRD and chart values

  • Severity: informational
  • Category: config_schema
  • What changed: v0.36.0 adds monitoringMode (enum: single | split) to the GpuDevicePlugin CRD spec and to gpu-device-plugin/values.yaml (default: single). The intel-gpu ArgoCD Application in nfd.yaml only overrides nodeFeatureRule: true via helm.parameters; it does not set monitoringMode.
  • Why it affects this deployment: The new field defaults to single, which is the new unified monitoring behavior. Since the deployment does not override this value, it will silently adopt the new default. This is the intended behavior per the release notes and does not affect Jellyfin's compute GPU access.
  • Affected dependents: None.
  • Required action: No action — informational.
  • Source: v0.36.0 release notes; charts/gpu-device-plugin/values.yaml at HEAD
  • Confidence: documented
  • Render-limited: no

F-04: Operator nodeSelector hardcoded to kubernetes.io/arch: amd64

  • Severity: informational
  • Category: architecture
  • What changed: Not a change introduced by this PR — the operator's values.yaml has had nodeSelector: kubernetes.io/arch: amd64 since at least v0.35.0. The operator Deployment will only schedule on the odroid-h4 (amd64) node, not on the rpi5 (arm64) node. This is correct behavior since the Intel GPU is on the odroid-h4.
  • Why it affects this deployment: No impact from this upgrade. The existing behavior is preserved. The GPU plugin DaemonSet itself is not constrained to amd64 by the operator chart (it is constrained by the nodeSelector: intel.feature.node.kubernetes.io/gpu: 'true' label, which NFD only applies to nodes with Intel GPU hardware — the odroid-h4).
  • Affected dependents: None.
  • Required action: No action — informational. Pre-existing architecture constraint, not introduced by this PR.
  • Source: charts/device-plugin-operator/values.yaml (both v0.35.0 and v0.36.0)
  • Confidence: documented
  • Render-limited: no

F-05: v0.36.0 targets Kubernetes 1.36; cluster runs k3s

  • Severity: informational
  • Category: k8s_api
  • What changed: The v0.36.0 release aligns with Kubernetes 1.36 components. The release notes note that older Kubernetes versions continue to work because the Device Plugin API is GA and stable.
  • Why it affects this deployment: The rpi5 cluster runs k3s. The upstream project explicitly states: "Using a newer device plugins release should work without issues on an older Kubernetes cluster." No API version used by the chart templates (apiextensions.k8s.io/v1, apps/v1, rbac.authorization.k8s.io/v1, admissionregistration.k8s.io/v1, cert-manager.io/v1) is deprecated or removed in any currently-supported k3s version.
  • Affected dependents: None.
  • Required action: No action — informational.
  • Source: v0.36.0 release notes; upstream README compatibility table
  • Confidence: documented
  • Render-limited: no

F-06: cert-manager dependency for webhook TLS certificate

  • Severity: informational
  • Category: crd_compat
  • What changed: The operator chart (device-plugin-operator/templates/operator.yaml) creates a cert-manager.io/v1 Certificate and Issuer for the webhook TLS. This is unchanged from v0.35.0.
  • Why it affects this deployment: cert-manager must be installed in the cluster for the operator to function. This was already a requirement at v0.35.0 and is not a new dependency introduced by this PR. No cert-manager version requirement is stated in the chart.
  • Affected dependents: None.
  • Required action: No action — informational.
  • Source: charts/device-plugin-operator/templates/operator.yaml
  • Confidence: documented
  • Render-limited: no

Deployment fingerprint (summary)

Checked against:

  • ArgoCD Applications: dp-operator (chart: intel-device-plugins-operator, namespace: inteldeviceplugins-system) and intel-gpu (chart: intel-device-plugins-gpu, namespace: inteldeviceplugins-system) — both in rpi5/apps/templates/internal/nfd.yaml
  • Helm parameters overridden: intel-gpu sets nodeFeatureRule=true only; no other values overridden for either chart
  • Downstream consumer: rpi5/media/jellyfin/jellyfin.yaml — StatefulSet requesting gpu.intel.com/i915: "1" resource limit; no monitoring resource requested
  • GPU resource used by Jellyfin: gpu.intel.com/i915 (compute, not monitoring) — unaffected by the monitoring resource rename
  • Operator nodeSelector: kubernetes.io/arch: amd64 (pre-existing, schedules only on odroid-h4)
  • GPU plugin nodeSelector: intel.feature.node.kubernetes.io/gpu: 'true' (NFD label, only on odroid-h4)
  • Webhook: inteldeviceplugins-validating-webhook-configurationfailurePolicy: Fail on GpuDevicePlugin CREATE/UPDATE; enforces image version ≥ operator version
  • CRD schema diff (v0.35.0 → v0.36.0): enableMonitoring description updated; new monitoringMode field added (enum: single/split, default single); all existing fields preserved with identical types and constraints
  • No env vars, ConfigMaps, Secrets, or PVCs are set by the operator or GPU plugin charts themselves

Cluster fit

  • Architectures required by cluster: amd64 (odroid-h4), arm64 (rpi5 node), amd64 (beelink)
  • Architectures supported by new version: The operator chart's nodeSelector: kubernetes.io/arch: amd64 constrains the operator to amd64 nodes only. The GPU plugin DaemonSet is constrained to nodes with intel.feature.node.kubernetes.io/gpu: 'true' (only odroid-h4, amd64). Neither component is expected to run on arm64 nodes. Architecture compatibility is not a concern for this specific deployment.
  • Kubernetes API versions used in manifest sources: apiextensions.k8s.io/v1, apps/v1, rbac.authorization.k8s.io/v1, admissionregistration.k8s.io/v1, cert-manager.io/v1, nfd.k8s-sigs.io/v1alpha1 — all GA and stable
  • Minimum K8s version stated by dep: Not explicitly stated in chart; upstream README lists release-0.36 as targeting Kubernetes 1.36, but explicitly notes backward compatibility with older clusters
  • Peer dependency check: cert-manager required (already installed in cluster per existing v0.35.0 deployment); NFD (node-feature-discovery) required and already deployed in nfd.yaml at v0.18.3

Gaps

  1. Cannot render Helm templates locally — reasoned from raw templates/ and values.yaml directly. The monitoringMode field behavior at runtime (specifically whether the old i915_monitoring resource disappears immediately on DaemonSet rollout) was inferred from the release notes and CRD description, not from a rendered manifest diff.
  2. Architecture manifest list not verified from registry — Docker Hub / GHCR manifest list for intel/intel-gpu-plugin:0.36.0 and intel/intel-deviceplugin-operator:0.36.0 was not fetched. However, since both components are constrained to amd64 nodes by their nodeSelectors, this is low risk.
  3. v0.36.0 release was published 2026-05-29 (same day as this PR) — no community-reported breakage issues were findable at time of analysis. The release is very fresh; monitor for upstream issue reports in the first 48 hours post-merge.
  4. Exact ArgoCD sync order is not deterministic from manifest analysis alone. The action_required finding (F-01) assumes ArgoCD may sync either application first; the actual sync order depends on ArgoCD's internal scheduling and whether auto-sync is enabled for both apps. The nfd.yaml file shows syncPolicy: automated: {} on both applications, meaning ArgoCD will auto-sync both — the webhook ordering risk is real.

Upstream changelog

I now have all the information needed to produce a comprehensive changelog. Let me compile the findings:


intel-device-plugins-gpu (HelmChart) 0.35.0 → 0.36.0

Summary

  • Artifact type: Helm chart
  • Input format: SemVer version
  • Resolved references: Helm chart intel/intel-device-plugins-gpu version 0.35.0 → 0.36.0, backed by intel/intel-device-plugins-for-kubernetes source repo release v0.35.0v0.36.0. Helm chart update published 2026-05-29.
  • Versions in range: 0.35.0, 0.36.0 (no intermediate pre-releases; the helm chart version tracks the upstream plugin version 1:1)
  • Source repos:
  • Primary sources used:
  • Versioning scheme: SemVer (minor bump, 0.x series — no major-version semantics enforced, but maintainers do introduce breaking changes at minor bumps)
  • Major version boundary crossed: No (0.35.0 → 0.36.0, both in 0.x)
  • Confidence: high — maintainer-authored release notes plus full PR diff and helm chart commit diff covering the complete range

Breaking Changes

GPU monitoring resource renamed: gpu.intel.com/i915_monitoring / gpu.intel.com/xe_monitoringgpu.intel.com/monitoring

  • What changed: The GPU plugin's default monitoring resource is now a single unified gpu.intel.com/monitoring resource covering all Intel GPU kernel drivers (both i915 and xe), replacing the previous per-driver gpu.intel.com/i915_monitoring and gpu.intel.com/xe_monitoring resources. The old per-driver resources still exist but are now deprecated and only emitted when the plugin is started with -monitoring-mode=split.
  • Affects: Any workload (DaemonSet, Deployment, Pod) that requests gpu.intel.com/i915_monitoring or gpu.intel.com/xe_monitoring as a resource limit/request. This includes monitoring tools such as Intel XPU Manager, Prometheus exporters, and any custom monitoring pods. The resource name in resources.limits / resources.requests must be updated.
  • Migration:
    1. Replace gpu.intel.com/i915_monitoring: "1" and/or gpu.intel.com/xe_monitoring: "1" with gpu.intel.com/monitoring: "1" in all Pod/DaemonSet specs.
    2. For XPU Manager specifically, the upstream docs provide a patch command:
      kubectl patch ds intel-xpumanager --type='strategic' \
        -p '{\"spec\": {\"template\": {\"spec\": {\"containers\": [{\"name\": \"xpumd\",\"resources\": {\"limits\": {\"gpu.intel.com/monitoring\": \"1\",\"gpu.intel.com/i915_monitoring\": null}}}]}}}}'\
    3. If the old split-resource behavior is required (e.g., for nodes with only xe or only i915 devices and separate monitoring pods per driver), start the plugin with -monitoring-mode=split (or set monitoringMode: split in the Helm values / GpuDevicePlugin CR). The default is single.
    4. The Helm chart values.yaml now includes monitoringMode: single as the explicit default.
  • Source: upstream PR DNS: update vpn.anshulg.com. -> 72.219.136.19 #2244 (PR diff); upstream release notes; Helm charts repository values.yaml update
  • Confidence: documented
  • Introduced in: 0.36.0

New monitoringMode field added to GpuDevicePlugin CRD and Helm values.yaml

  • What changed: The GpuDevicePlugin CRD (deviceplugin.intel.com) gains a new spec.monitoringMode field (enum: single | split). The Helm chart values.yaml gains a corresponding monitoringMode: single key. Existing CRs without this field default to single (the new behavior), which means any cluster that previously relied on i915_monitoring/xe_monitoring resources being emitted will silently stop receiving those resources after upgrade unless monitoringMode: split is explicitly set.
  • Affects: GpuDevicePlugin CR manifests; Helm values overrides; any GitOps/IaC that validates the CRD schema (the new field is additive, so schema validation of existing CRs will not fail, but the behavioral default changes).
  • Migration: If the old split-resource behavior is required, add monitoringMode: split to the GpuDevicePlugin CR spec or to the Helm values. No action needed if migrating to the new unified gpu.intel.com/monitoring resource.
  • Source: upstream PR DNS: update vpn.anshulg.com. -> 72.219.136.19 #2244 (CRD diff); Helm charts repository values.yaml update
  • Confidence: documented
  • Introduced in: 0.36.0

Other Notable Changes

  • GPU: /dev/mei* devices included in monitoring resource — The monitoring resource now also exposes /dev/mei* (Management Engine Interface) device files in addition to DRM devices, enabling broader hardware access for monitoring tools.
  • GPU: xpumd 2.x device info API support — The GPU plugin now supports the new 2.x xpumd device info API as an alternative health data source alongside the existing Level-Zero sidecar.
  • Kubernetes 1.36 components — k8s.io components updated to 0.36.0 / Kubernetes 1.36.
  • Go 1.26 — Plugin binaries now built with Go 1.26.
  • Operator: QAT provisioning config fix — Fixed a bug where provisioning config was not applied for an existing QAT CR.
  • Operator: e2e tests extended for OCP (OpenShift) — Operator tests now cover OpenShift Container Platform.
  • OpenShift documentation added — New OpenShift-specific deployment documentation.
  • GPU README rendering fix — Fixed a table rendering issue in the GPU plugin README.

Deprecations Introduced

  • gpu.intel.com/i915_monitoring — Deprecated as a Kubernetes resource name. Still emitted when plugin runs with -monitoring-mode=split. No scheduled removal version stated, but the release notes describe it as deprecated and the documentation has been updated to reflect gpu.intel.com/monitoring as the canonical resource.
  • gpu.intel.com/xe_monitoring — Same deprecation status as i915_monitoring above.

Gaps and Caveats

  • No explicit CHANGELOG.md or UPGRADING.md — The project does not maintain a dedicated changelog or migration guide file; all change information is sourced from GitHub Release pages and PR diffs, which are complete and high-quality for this release.
  • Helm chart version == plugin version — The intel/helm-charts repo versions the GPU chart identically to the upstream plugin (0.35.0 / 0.36.0). There is a single helm-chart update commit per plugin release; no intermediate helm-only patch versions exist in this range.
  • enableMonitoring default in Helm values — The Helm chart values.yaml has enableMonitoring: true as the default. Users who deploy with defaults and have monitoring consumers will be affected by the resource rename immediately on upgrade. The monitoringMode: single default in the new chart is the behavioral change trigger.
  • xpumd 2.x API compatibility — The new xpumd 2.x health source support is additive, but users running xpumd 1.x should verify their existing -xpumd-endpoint configuration continues to work; the release notes do not explicitly state backward compatibility with xpumd 1.x.

Provenance

Perfect! Now I have all the information I need to write the provenance verdict. Let me compile my findings:

Provenance verdict: intel-device-plugins-gpu 0.35.0 → 0.36.0

Verdict

trusted

Publisher continuity verified, source ↔ artifact correspondence confirmed for both versions, no signature regression, no unexplained metadata drift, and no external compromise signal. The update is from a legitimate Intel repository with proper release management and upstream source alignment.

Resolved references

  • Artifact type: Helm chart
  • Old: intel-device-plugins-gpu:0.35.0 (chart version 0.35.0, appVersion 0.35.0)
  • New: intel-device-plugins-gpu:0.36.0 (chart version 0.36.0, appVersion 0.36.0)
  • Declared source repo: https://github.com/intel/helm-charts (verified)
  • Publisher namespace: intel (old) → intel (new) — same

Indicators

Severity Category Finding Evidence
info publisher_change Publisher namespace unchanged Both versions published by Intel organization at github.com/intel/helm-charts
info source_correspondence Source tag exists for old version Git tag intel-device-plugins-gpu-0.35.0 exists, released 2026-02-20
info source_correspondence Source tag exists for new version Git tag intel-device-plugins-gpu-0.36.0 exists, released 2026-05-29
info build_provenance Upstream release exists for old version v0.35.0 released from intel/intel-device-plugins-for-kubernetes on 2026-02-16
info build_provenance Upstream release exists for new version v0.36.0 released from intel/intel-device-plugins-for-kubernetes on 2026-05-27
info external_signal No security advisories found Search for intel-device-plugins-gpu 0.36.0 returned no compromise indicators
info repo_health Repository not archived Repository is active with protected main branch

Source ↔ artifact correspondence

Old version (0.35.0):

  • Anchor: Git commit 2f6c307ca4b77973041022940e7f98b5de85e16d (2026-02-20)
  • Release tag: intel-device-plugins-gpu-0.35.0 published 2026-02-20
  • Upstream: v0.35.0 tag exists in intel/intel-device-plugins-for-kubernetes (2026-02-16)
  • Method: Git tag + release tag + upstream correspondence

New version (0.36.0):

  • Anchor: Git commit 110e39ef75d1f94611b8d28bb2b97d395866d1c7 (2026-05-29)
  • Release tag: intel-device-plugins-gpu-0.36.0 published 2026-05-29
  • Upstream: v0.36.0 tag exists in intel/intel-device-plugins-for-kubernetes (2026-05-27)
  • Method: Git tag + release tag + upstream correspondence

Verification: Both versions have corresponding git commits in the helm-charts repository, matching release tags, and corresponding upstream releases in the intel-device-plugins-for-kubernetes repository. The chart versions match the appVersions, which align with the upstream plugin versions.

Signatures and attestations

Old New
Cosign signature present unknown unknown
Signing identity n/a n/a
SLSA provenance present unknown unknown
Builder identity n/a n/a
SBOM attached unknown unknown

Note: Helm charts in traditional repositories typically do not have OCI image signatures or SLSA provenance. The chart itself is version-controlled in Git with signed commits. No regression detected as neither version is expected to have signatures.

Metadata drift

Chart.yaml changes (0.35.0 → 0.36.0):

  • version: 0.35.0 → 0.36.0 ✓ expected
  • appVersion: 0.35.0 → 0.36.0 ✓ expected

values.yaml changes:

  • Minor version bump in image references ✓ expected

README.md changes:

  • Documentation updates ✓ expected

All changes are consistent with a minor version release and documented in the upstream release notes.

Typosquat / confusable check

  • Chart name: intel-device-plugins-gpu — legitimate Intel project name
  • Repository: intel/helm-charts — official Intel organization
  • Nearest popular alternatives checked: No confusable names found
  • Findings: None — the name is distinctive and clearly associated with Intel's official device plugins project

Repo health

  • Ownership transfer in last 90d: No — repository remains under Intel organization
  • Archived: No — repository is active with protected main branch
  • New committers in version range (0.35.0 → 0.36.0): No — commits authored by established maintainer tkatila (Tuomas Katila, Intel employee)
  • Workflow file changes affecting release pipeline: No — release process unchanged; automated GitHub Actions release creation observed (github-actions[bot] published releases)

Repository health is good. The main branch is protected, commits are signed, and releases are automated through GitHub Actions.

Gaps

  • Helm chart signature verification: Helm charts in traditional repositories do not typically have OCI image signatures. The chart is version-controlled in Git, which provides integrity and authenticity guarantees through GitHub's infrastructure.
  • SLSA provenance for Helm charts: Not applicable for traditional Helm chart repositories. The source-to-release correspondence is verified through git tags and GitHub releases.
  • Upstream image signatures: The underlying container images referenced in the chart (e.g., intel/intel-device-plugins-gpu:0.36.0) may have their own signatures, but those are outside the scope of this Helm chart provenance analysis.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants