Skip to content

WIP: debug rebase + patch#2687

Open
haircommander wants to merge 2998 commits into
openshift:masterfrom
haircommander:debug-resize
Open

WIP: debug rebase + patch#2687
haircommander wants to merge 2998 commits into
openshift:masterfrom
haircommander:debug-resize

Conversation

@haircommander

@haircommander haircommander commented Jun 9, 2026

Copy link
Copy Markdown
Member

What type of PR is this?

What this PR does / why we need it:

Which issue(s) this PR is related to:

Special notes for your reviewer:

Does this PR introduce a user-facing change?


Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:


Summary by CodeRabbit

  • New Features

    • Added alpha support for sharded list and watch operations across multiple APIs via shardSelector and shardInfo.
    • Expanded API discovery and OpenAPI specs with new resources including MutatingAdmissionPolicy, MutatingAdmissionPolicyBinding, PodGroup, DeviceTaintRule, and ResourcePoolStatusRequest.
    • Updated scheduling API from v1alpha1 to v1alpha2, adjusting available scheduling resources.
  • Chores

    • Updated Go toolchain to 1.26.4.
    • Updated CI build image tag.
    • Updated PR template options and changelog documentation.

tallclair and others added 30 commits March 24, 2026 16:38
scheduler: fix race in DRA pending allocation sharing
Flaky test fix for 'should restart failing container when pod restartPolicy is Always'
Revert "Switch PLEGOnDemandRelist default to `false` for 1.36"
The kubelet status manager was not preserving the
pod.status.nodeAllocatableResourceClaimStatuses field set by the
scheduler during pod status merges. This caused the information to the
to be destroyed by the kubelet's next status sync, making the field
always appear empty.

Add the same preservation pattern already used for
ResourceClaimStatuses and ExtendedResourceClaimStatus to both
mergePodStatus() and isPodStatusByKubeletEqual().

Signed-off-by: Antti Kervinen <antti.kervinen@intel.com>
Kubelet: Add alpha-2 stage implementation for UserNamespacesHostNetworkSupport feature gate
This commit introduces the DRAResourceClaimGranularStatusAuthorization
feature gate (Beta in 1.36) to enforce fine-grained authorization checks
on ResourceClaim status updates.

Previously, 'update' permission on 'resourceclaims/status' allowed modifying
the entire status. To enforce the principle of least privilege for DRA
drivers and the scheduler, this change introduces synthetic subresources and
verb prefixes:

- 'resourceclaims/binding': Required to update 'status.allocation' and
  'status.reservedFor'.
- 'resourceclaims/driver': Required to update 'status.devices'. Evaluated
  on a per-driver basis using 'associated-node:<verb>' (for node-local
  ServiceAccounts) or 'arbitrary-node:<verb>' (for cluster-wide controllers).
Fine-grained Authorization for ResourceClaim Status Updates
Fix race condition in updating the PodStatus cache
…actuated resources

Signed-off-by: ndixita <ndixita@google.com>
set InPlacePodLevelResourcesVerticalScaling to false if needed
…ager Metrics

The Memory Manager Metrics BeforeEach asserts that zero pods are
running on the node after a kubelet config update. This hard assertion
flakes when a preceding serial test's namespace deletion hasn't
completed yet — framework namespace cleanup is async and the kubelet
restart in updateKubeletConfig can delay in-flight pod termination.

CI logs show leftover pods from MemoryQoS tests (memqos-burstable,
memqos-no-limit, etc.), Probe Stress tests (50-container pods), and
Summary API PSI tests (memory-pressure-pod), all still Running when
the assertion fires 4-7ms after the previous test finishes.

Replace the immediate Expect(count).To(BeZero()) with an Eventually
poll (2 minute timeout, 5 second interval) that gives pods time to
drain after the kubelet restart. The existing printAllPodsOnNode
diagnostic output is preserved inside the poll for debugging.

Signed-off-by: Davanum Srinivas <davanum@gmail.com>
…rics-cleanup

e2e_node: wait for pod drain before asserting zero pods in Memory Manager Metrics
Fix flakiness in integration test for TopologyAwareScheduling with Basic Policy
…urce-test

Deflake TestPodSubresourceAuth by waiting for effective permissions before testing
Signed-off-by: Alay Patel <alayp@nvidia.com>
…di-spec

kep-5304: bump cdi spec version to 0.5.0
…deAllocatableResourceClaimStatuses

kubelet: do not destroy nodeAllocatableResourceClaimStatuses
Signed-off-by: yashsingh74 <yashsingh1774@gmail.com>
Make cleanup aware of uid differences
The latest pause version is 3.10.2 but due to the introduction
of the PATCH level version to the pause image (previously was
only MAJOR.MINOR), various files have remained on an older
version. Either 3.10 or 3.10.1. Our validation with
build/dependencies.yaml ./hack/verify-external-dependencies.sh
did not account for that.
Signed-off-by: Mujib Ahasan <ahasanmujib8@gmail.com>
stbenjam and others added 25 commits June 12, 2026 19:23
After openshift/origin#30786 added ibmcloud to the provider switch in
openshift-tests, the provider name is now correctly passed through to
k8s-tests-ext. However, k8s-tests-ext only registers upstream Kubernetes
providers (aws, azure, gce, kubemark, openstack, vsphere) via the
test/e2e/providers.go import. OpenShift-specific providers like ibmcloud
are not registered, causing framework.AfterReadingAllFlags to call
SetupProviderConfig which fails with "Unknown provider" and Exit(1),
crashing every test process.

This registers all OpenShift-specific cloud providers (baremetal, ovirt,
kubevirt, alibabacloud, nutanix, ibmcloud, external) as NullProviders in
k8s-tests-ext. These providers don't require special setup for upstream
kube e2e tests.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…e2e test

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The WatchList test “[sig-api-machinery] API Streaming (aka. WatchList) [FeatureGate:WatchList] [Beta] should be requested by metadatainformer when WatchListClient is enabled” works by fetching an expected (initial) state of secrets, starting an informer, and polling until context timeout for the informer to converge to that expected state. If any other secret in the namespace changes while the test is running, they never converge, and the test times out. This change limits the secrets we’re listing to just the ones relevant to the test.
Signed-off-by: Shaza Aldawamneh <shaza.aldawamneh@hotmail.com>
…e when claims.email is used in username expression

Signed-off-by: Shaza Aldawamneh <shaza.aldawamneh@hotmail.com>
Also prevent duplicate metric emissions
RouteExternalCertificate is now enabled by default. This update is
removing references to this feature gate, hardcoding its value to true.
This update is also a pre-requisite to remove it from
openshift/cluster-ingress-operator.

This feature gate was added in 1448e1c
…reating clients on each metrics scrape

Signed-off-by: xigang <wangxigang2014@gmail.com>
Add a kubernetes/conformance suite that aggregates tests from
kubernetes/conformance/parallel and kubernetes/conformance/serial,
enabling `openshift-tests run kubernetes/conformance` to run all
kubernetes conformance tests in a single invocation.

Uses AddGlobalSuite (not AddSuite) so the umbrella starts with zero
qualifiers and inherits exclusively from its children via the
mergeParentQualifiers fixed-point loop in origin. AddSuite would
prepend a catch-all source qualifier that bypasses the exclusion
filters ([Disabled:], [Disruptive], [Slow], etc.) in the child
qualifiers.

Companion to openshift/origin#31261 which adds the Parents field
and mergeParentQualifiers mechanism.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: jubittajohn <jujohn@redhat.com>
To be squashed with the following commit later:"UPSTREAM: <carry>: Add OpenShift tooling, images, configs and docs"

Signed-off-by: jubittajohn <jujohn@redhat.com>
…er_manager_linux_test.go

Squash into: UPSTREAM: <carry>: disable load balancing on created cgroups when managed is enabled
…s in flagz_test.go and statusz_test.go

Squash into: UPSTREAM: <carry>: apiserver: add system_client=kube-{apiserver,cm,s} to apiserver_request_total
…acheGC is enabled

Squash into UPSTREAM: <carry>: create termination events
Squash into: UPSTREAM: <carry>: add management support to kubelet
Signed-off-by: jubittajohn <jujohn@redhat.com>
… driver when not enabled

The upstream csi-hostpath-plugin.yaml manifest now includes a csi-snapshot-metadata sidecar container and volume (added in k/k#130918). Upstream PR k/k#137057 added conditional stripping of these when CapSnapshotMetadata is not enabled, but only for the upstream hostpathCSIDriver. The OpenShift-specific groupSnapshotHostpathCSIDriver was never updated, causing the driver pod to fail with "secret csi-snapshot-metadata-server-certs not found"  and all csi-hostpath-groupsnapshot tests to fail in techpreview jobs.

Signed-off-by: jubittajohn <jujohn@redhat.com>
Signed-off-by: Sai Ramesh Vanka <svanka@redhat.com>
Signed-off-by: jubittajohn <jujohn@redhat.com>
Signed-off-by: jubittajohn <jujohn@redhat.com>
… pods

Exclude non-admitted pods from allocation capacity calculations.

This prevents pods that haven't been admitted yet (and may fail admission)
from being incorrectly counted when calculating available node resources.

Signed-off-by: Peter Hunt <pehunt@redhat.com>
When SyncPod receives a pod from HandlePodSyncs, it gets a fresh copy from
the pod manager which has desired resources (from the API spec), not allocated
resources.

Even though the pod worker calls UpdatePodFromAllocation when queueing updates,
HandlePodSyncs replaces the pod with GetPodAndMirrorPod which returns a fresh
pod from the pod manager.

This causes two issues:
1. IsPodResizeInProgress compares desired vs actual instead of allocated vs actual
2. generateAPIPodStatus populates containerStatus.allocatedResources with
   desired resources instead of allocated resources

This commit adds a call to UpdatePodFromAllocation at the beginning of the
InPlacePodVerticalScaling block in SyncPod to ensure we always have the latest
allocated resources when:
- Checking if resize is in progress
- Generating resize completion events
- Populating container status

The test TestSyncPodUsesAllocatedResources verifies this behavior:
- Without fix: containerStatus.allocatedResources shows 1991m (desired) - FAIL
- With fix: containerStatus.allocatedResources shows 186m (allocated) - PASS

This fixes the failing e2e test where container status incorrectly showed
desired resources instead of allocated resources.

Signed-off-by: Peter Hunt <pehunt@redhat.com>
Signed-off-by: Peter Hunt <pehunt@redhat.com>
@openshift-ci-robot

Copy link
Copy Markdown

@haircommander: the contents of this pull request could not be automatically validated.

The following commits are valid:

The following commits could not be validated and must be approved by a top-level approver:

Comment /validate-backports to re-evaluate validity of the upstream PRs, for example when they are merged upstream.

@openshift-ci

openshift-ci Bot commented Jun 22, 2026

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: haircommander
Once this PR has been reviewed and has the lgtm label, please assign benluddy for approval. For more information see the Code Review Process.

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

Details Needs approval from an approver in each of these files:

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

@haircommander

Copy link
Copy Markdown
Member Author

/test e2e-aws-ovn-techpreview-serial-1of2
/test k8s-e2e-gcp-serial

@openshift-ci

openshift-ci Bot commented Jun 23, 2026

Copy link
Copy Markdown

@haircommander: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/e2e-metal-ipi-ovn-ipv6 04d877d link true /test e2e-metal-ipi-ovn-ipv6
ci/prow/e2e-aws-ovn-runc 04d877d link false /test e2e-aws-ovn-runc
ci/prow/e2e-aws-ovn-techpreview 04d877d link false /test e2e-aws-ovn-techpreview
ci/prow/verify 04d877d link true /test verify
ci/prow/e2e-gcp 04d877d link true /test e2e-gcp
ci/prow/e2e-aws-ovn-fips 04d877d link true /test e2e-aws-ovn-fips
ci/prow/e2e-aws-ovn-cgroupsv2 04d877d link true /test e2e-aws-ovn-cgroupsv2
ci/prow/e2e-aws-ovn-downgrade 04d877d link true /test e2e-aws-ovn-downgrade

Full PR test history. Your PR dashboard.

Details

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 kubernetes-sigs/prow repository. I understand the commands that are listed here.

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

Labels

backports/unvalidated-commits Indicates that not all commits come to merged upstream PRs. do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. vendor-update Touching vendor dir or related files

Projects

None yet

Development

Successfully merging this pull request may close these issues.