Skip to content

OCPBUGS-94044,OCPBUGS-86046: DS Merge 07/24/2026 - #335

Merged
openshift-merge-bot[bot] merged 44 commits into
openshift:mainfrom
wizhaoredhat:sync_upstream_july24
Jul 28, 2026
Merged

OCPBUGS-94044,OCPBUGS-86046: DS Merge 07/24/2026#335
openshift-merge-bot[bot] merged 44 commits into
openshift:mainfrom
wizhaoredhat:sync_upstream_july24

Conversation

@wizhaoredhat

@wizhaoredhat wizhaoredhat commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

OpenShift Specific

  • Updated Multus CNI image to be consistent with ART for 5.0

Platform & dependencies

  • Bump Kubernetes client libs from v0.35.2v0.36.2
  • Bump Go module from 1.25.71.26.0
  • Refresh related transitive deps (golang.org/x/*, prometheus, protobuf, etc.)

Features

  • DRA (resource.k8s.io/v1) via new pkg/draclient:
    • Resolve devices from ResourceClaims / ResourceSlices
    • Field-selector–based ResourceSlice indexing
    • Do not fail CNI ADD when a DRA claim contributes no devices
  • Optional pprof endpoint on multus-daemon
  • Connection limit for the thick Multus daemon (config, validation, e2e)

Bug fixes

  • Preserve conflist / delegate bytes across cniVersion injection so DEL does not leak IPs (upstream #1521)
  • Fix ignoreReadinessIndicator being silently skipped when server config is unset
  • Move DRA handling out of kubelet client into draclient (1.36 alignment)

Docs / manifests / CI

  • DaemonSet updates for thick-plugin / related settings
  • Docs updates for pprof and connection limits
  • New e2e coverage for connection-limit / many-pods
  • Upstream workflow refresh (OpenShift image/workflow customizations retained, including el9-only layout)

Summary by CodeRabbit

  • New Features

    • Added Dynamic Resource Allocation support for mapping pod devices to network attachments.
    • Added configurable connection limits and optional profiling endpoints for the Multus daemon.
    • Added the nad shorthand for NetworkAttachmentDefinitions and permissions for DRA resources.
    • Added an end-to-end connection-limit test.
  • Bug Fixes

    • Preserved CNI configuration fields during delegate processing.
    • Improved readiness indicator handling and CSR denial messages.
  • Documentation

    • Updated DRA and SR-IOV usage guidance for Kubernetes 1.34+.

RamLavi and others added 30 commits January 21, 2026 22:55
CRI-O 1.34+ enforces short name mode by default, which refuses
to pull images with unqualified names like 'alpine' because they
are ambiguous.

Use a full image docker.io/library/alpine

Fixes #1471

Signed-off-by: Ram Lavi <ralavi@redhat.com>
CRI-O 1.34+ enforces short name mode by default, which refuses
to pull images with unqualified names like 'centos:8' because they
are ambiguous.

Use the full image quay.io/centos/centos:8

Fixes #1471

Signed-off-by: Ram Lavi <ralavi@redhat.com>
CRI-O 1.34+ enforces short name mode by default, which refuses
to pull images with unqualified names like 'ubuntu:22.04' because they
are ambiguous.

Use the full image docker.io/library/ubuntu:22.04

Fixes #1471

Signed-off-by: Ram Lavi <ralavi@redhat.com>
The trivy-action@0.29.0 was trying to install Trivy v0.57.1 which
no longer exists in the GitHub releases. This was causing all PR
builds to fail on the "Image thick plugin" job. Update to v0.35.0
which properly installs the latest Trivy version.

Assisted by Claude Sonnet 4.5

Signed-off-by: Benjamin Pickard <bpickard@redhat.com>
ci: update trivy-action to v0.35.0 to fix image scanning failure
Signed-off-by: Ying Wang <yingwang@rehat.com>
Signed-off-by: Ying Wang <yingwang@rehat.com>
…00_test.go

Signed-off-by: Ying Wang <yingwang@rehat.com>
Signed-off-by: Ying Wang <yingwang@rehat.com>
When a namespace uses a primary User-Defined Network (UDN) with a
device-plugin resource (e.g. SR-IOV), OVN-Kubernetes uses the last
device in the list for the primary interface while Multus assigns
earlier devices to cluster-default/secondary interfaces. The kubelet
and checkpoint paths build the list from map iteration, so order was
non-deterministic and the "last" device could differ between callers.
Sorting ensures both Multus and OVN-K8s see the same order so the
last device is consistently the one reserved for the primary UDN.

Signed-off-by: Yun Zhou <yunz@nvidia.com>
Sort DeviceIDs in GetPodResourceMap for deterministic ordering
…ation

Listing all pods across all namespaces during bootstrap is expensive
in large clusters and unnecessary since the result is discarded.
Use the lightweight /version endpoint to validate connectivity instead.

Signed-off-by: Peng Liu <pliu@redhat.com>
Validate the per-node kubeconfig when a current certificate is
available and fall back to the bootstrap kubeconfig only when the
per-node config is no longer trusted.

Also rebuild the derived per-node rest.Config from the reloaded
bootstrap config so TLS settings are preserved and refreshed
consistently.

Signed-off-by: Peng Liu <pliu@redhat.com>
STATUS and GC are plugin-level commands with no pod context per the
CNI 1.1.0 spec. The thick plugin daemon incorrectly required
CNI_CONTAINERID, CNI_NETNS, and K8S_POD_NAME/K8S_POD_NAMESPACE for
these commands, causing failures when invoked by kubelet.

Signed-off-by: Jason Kary <jkary@redhat.com>
- Check os.OpenFile error in STATUS/GC test
- Document that k8sArgs may be nil for STATUS/GC in HandleCNIRequest

Made-with: Cursor
Bump multus-cni to Kube 1.35 and Go to 1.25
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.73.0 to 1.79.3.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](grpc/grpc-go@v1.73.0...v1.79.3)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-version: 1.79.3
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
k8sclient: use ServerVersion instead of pod list for kubeconfig validation
Fix thick plugin STATUS and GC handling for plugin-level commands
e2e: Use fully qualified image name for images
…les/google.golang.org/grpc-1.79.3

Bump google.golang.org/grpc from 1.73.0 to 1.79.3
Add pprof profiling endpoints to the metrics server, gated behind
a new EnablePprof config field. When enabled, standard Go pprof
handlers are registered on the metrics port under /debug/pprof/.

This also improves the metrics server setup:
- Use dedicated http.ServeMux instead of DefaultServeMux
- Move mux/handler setup outside the retry loop
- Use http.Server with ReadHeaderTimeout for resource safety
- Add graceful shutdown on context cancellation

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Benjamin Pickard <bpickard@redhat.com>
Co-authored-by: Takanori Hirano <me@hrntknr.net>
Add optional pprof endpoint support to multus-daemon
Add connection limit for thick daemon.
@wizhaoredhat

Copy link
Copy Markdown
Contributor Author

coderabbit has some good suggestions @wizhaoredhat but these arent things that we would implement ds. maybe we can have an agent go through and create upstream issues to track the suggestions?

Will do after on Upstream, not this Downstream sync.

@wizhaoredhat

Copy link
Copy Markdown
Contributor Author

/retitle OCPBUGS-94044,OCPBUGS-86046: DS Merge 07/24/2026

@openshift-ci openshift-ci Bot changed the title OCPBUGS-94044,OCPBUGS-86046, : DS Merge 07/24/2026 OCPBUGS-94044,OCPBUGS-86046: DS Merge 07/24/2026 Jul 27, 2026
@openshift-ci-robot openshift-ci-robot added jira/severity-important Referenced Jira bug's severity is important for the branch this PR is targeting. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. labels Jul 27, 2026
@openshift-ci-robot

Copy link
Copy Markdown
Contributor

@wizhaoredhat: This pull request references Jira Issue OCPBUGS-94044, which is invalid:

  • expected the bug to target either version "5.0." or "openshift-5.0.", but it targets "4.20.z" instead

Comment /jira refresh to re-evaluate validity if changes to the Jira bug are made, or edit the title of this pull request to link to a different bug.

The bug has been updated to refer to the pull request using the external bug tracker.

This pull request references Jira Issue OCPBUGS-86046, which is valid. The bug has been moved to the POST state.

3 validation(s) were run on this bug
  • bug is open, matching expected state (open)
  • bug target version (5.0.0) matches configured target version for branch (5.0.0)
  • bug is in the state ASSIGNED, which is one of the valid states (NEW, ASSIGNED, POST)

The bug has been updated to refer to the pull request using the external bug tracker.

Details

In response to this:

OpenShift Specific

  • Updated Multus CNI image to be consistent with ART for 5.0

Platform & dependencies

  • Bump Kubernetes client libs from v0.35.2v0.36.2
  • Bump Go module from 1.25.71.26.0
  • Refresh related transitive deps (golang.org/x/*, prometheus, protobuf, etc.)

Features

  • DRA (resource.k8s.io/v1) via new pkg/draclient:
  • Resolve devices from ResourceClaims / ResourceSlices
  • Field-selector–based ResourceSlice indexing
  • Do not fail CNI ADD when a DRA claim contributes no devices
  • Optional pprof endpoint on multus-daemon
  • Connection limit for the thick Multus daemon (config, validation, e2e)

Bug fixes

  • Preserve conflist / delegate bytes across cniVersion injection so DEL does not leak IPs (upstream #1521)
  • Fix ignoreReadinessIndicator being silently skipped when server config is unset
  • Move DRA handling out of kubelet client into draclient (1.36 alignment)

Docs / manifests / CI

  • DaemonSet updates for thick-plugin / related settings
  • Docs updates for pprof and connection limits
  • New e2e coverage for connection-limit / many-pods
  • Upstream workflow refresh (OpenShift image/workflow customizations retained, including el9-only layout)

Summary by CodeRabbit

  • New Features

  • Added Dynamic Resource Allocation support for mapping pod devices to network attachments.

  • Added configurable connection limits and optional profiling endpoints for the Multus daemon.

  • Added the nad shorthand for NetworkAttachmentDefinitions and permissions for DRA resources.

  • Added an end-to-end connection-limit test.

  • Bug Fixes

  • Preserved CNI configuration fields during delegate processing.

  • Improved readiness indicator handling and CSR denial messages.

  • Documentation

  • Updated DRA and SR-IOV usage guidance for Kubernetes 1.34+.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@openshift-ci-robot openshift-ci-robot added the jira/invalid-bug Indicates that a referenced Jira bug is invalid for the branch this PR is targeting. label Jul 27, 2026
@wizhaoredhat

Copy link
Copy Markdown
Contributor Author

/jira refresh

@openshift-ci-robot openshift-ci-robot added jira/valid-bug Indicates that a referenced Jira bug is valid for the branch this PR is targeting. and removed jira/invalid-bug Indicates that a referenced Jira bug is invalid for the branch this PR is targeting. labels Jul 27, 2026
@openshift-ci-robot

Copy link
Copy Markdown
Contributor

@wizhaoredhat: This pull request references Jira Issue OCPBUGS-94044, which is valid.

3 validation(s) were run on this bug
  • bug is open, matching expected state (open)
  • bug target version (5.0.0) matches configured target version for branch (5.0.0)
  • bug is in the state POST, which is one of the valid states (NEW, ASSIGNED, POST)

This pull request references Jira Issue OCPBUGS-86046, which is valid.

3 validation(s) were run on this bug
  • bug is open, matching expected state (open)
  • bug target version (5.0.0) matches configured target version for branch (5.0.0)
  • bug is in the state POST, which is one of the valid states (NEW, ASSIGNED, POST)
Details

In response to this:

/jira refresh

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@wizhaoredhat

Copy link
Copy Markdown
Contributor Author

/approve

@openshift-ci openshift-ci Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jul 27, 2026
@wizhaoredhat

Copy link
Copy Markdown
Contributor Author

/verified

@openshift-ci-robot

Copy link
Copy Markdown
Contributor

@wizhaoredhat: The /verified command must be used with one of the following actions: by, later, remove, or bypass. See https://docs.ci.openshift.org/docs/architecture/jira/#premerge-verification for more information.

Details

In response to this:

/verified

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@SchSeba

SchSeba commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

/lgtm
/approve

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label Jul 28, 2026

@raphaelvrosa raphaelvrosa left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/lgtm

@openshift-ci

openshift-ci Bot commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: raphaelvrosa, SchSeba, wizhaoredhat

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:
  • OWNERS [SchSeba,wizhaoredhat]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@wizhaoredhat

Copy link
Copy Markdown
Contributor Author

@openshift-ci-robot openshift-ci-robot added the verified Signifies that the PR passed pre-merge verification criteria label Jul 28, 2026
@openshift-ci-robot

Copy link
Copy Markdown
Contributor

@wizhaoredhat: This PR has been marked as verified by @wizhaoredhat.

Details

In response to this:

All tests in https://github.com/openshift/openshift-tests-private/blob/main/test/extended/networking/multus.go pass in ClusterBot AWS.

/verified by @wizhaoredhat

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@openshift-merge-bot
openshift-merge-bot Bot merged commit f099946 into openshift:main Jul 28, 2026
7 of 8 checks passed
@openshift-ci-robot

Copy link
Copy Markdown
Contributor

@wizhaoredhat: Jira Issue Verification Checks: Jira Issue OCPBUGS-94044
✔️ This pull request was pre-merge verified.
✔️ All associated pull requests have merged.
✔️ All associated, merged pull requests were pre-merge verified.

Jira Issue OCPBUGS-94044 has been moved to the MODIFIED state and will move to the VERIFIED state when the change is available in an accepted nightly payload. 🕓

Jira Issue Verification Checks: Jira Issue OCPBUGS-86046
✔️ This pull request was pre-merge verified.
✔️ All associated pull requests have merged.
✔️ All associated, merged pull requests were pre-merge verified.

Jira Issue OCPBUGS-86046 has been moved to the MODIFIED state and will move to the VERIFIED state when the change is available in an accepted nightly payload. 🕓

Details

In response to this:

OpenShift Specific

  • Updated Multus CNI image to be consistent with ART for 5.0

Platform & dependencies

  • Bump Kubernetes client libs from v0.35.2v0.36.2
  • Bump Go module from 1.25.71.26.0
  • Refresh related transitive deps (golang.org/x/*, prometheus, protobuf, etc.)

Features

  • DRA (resource.k8s.io/v1) via new pkg/draclient:
  • Resolve devices from ResourceClaims / ResourceSlices
  • Field-selector–based ResourceSlice indexing
  • Do not fail CNI ADD when a DRA claim contributes no devices
  • Optional pprof endpoint on multus-daemon
  • Connection limit for the thick Multus daemon (config, validation, e2e)

Bug fixes

  • Preserve conflist / delegate bytes across cniVersion injection so DEL does not leak IPs (upstream #1521)
  • Fix ignoreReadinessIndicator being silently skipped when server config is unset
  • Move DRA handling out of kubelet client into draclient (1.36 alignment)

Docs / manifests / CI

  • DaemonSet updates for thick-plugin / related settings
  • Docs updates for pprof and connection limits
  • New e2e coverage for connection-limit / many-pods
  • Upstream workflow refresh (OpenShift image/workflow customizations retained, including el9-only layout)

Summary by CodeRabbit

  • New Features

  • Added Dynamic Resource Allocation support for mapping pod devices to network attachments.

  • Added configurable connection limits and optional profiling endpoints for the Multus daemon.

  • Added the nad shorthand for NetworkAttachmentDefinitions and permissions for DRA resources.

  • Added an end-to-end connection-limit test.

  • Bug Fixes

  • Preserved CNI configuration fields during delegate processing.

  • Improved readiness indicator handling and CSR denial messages.

  • Documentation

  • Updated DRA and SR-IOV usage guidance for Kubernetes 1.34+.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@openshift-merge-robot

Copy link
Copy Markdown
Contributor

Fix included in release 5.0.0-0.nightly-2026-07-29-000055

@wizhaoredhat
wizhaoredhat deleted the sync_upstream_july24 branch July 31, 2026 13:45
@miheer

miheer commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

@wizhaoredhat https://github.com/openshift/multus-cni/pull/335#issuecomment-5074696645  was this test fixed ? I had created a followup PR for fixing the issue which security test found here in the u/s multus-cni k8snetworkplumbingwg/multus-cni#1524 cc @bpickard22

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

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. jira/severity-important Referenced Jira bug's severity is important for the branch this PR is targeting. jira/valid-bug Indicates that a referenced Jira bug is valid for the branch this PR is targeting. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. lgtm Indicates that a PR is ready to be merged. verified Signifies that the PR passed pre-merge verification criteria

Projects

None yet

Development

Successfully merging this pull request may close these issues.