Commit Graph

29366 Commits

Author SHA1 Message Date
Kevin Hannon
94cc00aebb set KEP-5440 to enabled by default and add two e2e tests confirming behavior 2026-02-11 23:17:21 -05:00
Kubernetes Prow Robot
7b21ce7c9a Merge pull request #136905 from bart0sh/PR222-e2e-fix-extended-resource-flake
Fix extended resource flake
2026-02-11 21:56:02 +05:30
Ed Bartosh
0fc147ed02 DRA: e2e: refactor device plugin deployment
Refactored deployDevicePlugin, added undeployDevicePlugin

- Add skipCleanup parameter to control cleanup behavior
- Wait for device plugin resources to become allocatable on deploy
- Add undeployDevicePlugin function to properly cleanup and wait for
  resources to be removed from node allocatable capacity
- Update tests to use refactored functions and remove duplicate code

These changes reduce test flakiness by explicitly waiting for expected
node states before proceeding with test operations.
2026-02-11 16:11:24 +02:00
Ed Bartosh
02485d02ea DRA: e2e: move util_sampledevice.go to e2e/node/framework
- Moved sample device plugin constants and helper code to the
test/e2e/node/framework, so that both deviceplugin and DRA tests can
use it without creating e2e -> e2e_node dependency.

- Moved SampleDevsAmount constant from the
test/e2e_node/device_plugin_test.go
2026-02-11 16:07:17 +02:00
Kubernetes Prow Robot
8b09f925a7 Merge pull request #130918 from iPraveenParihar/e2e/add-snapshot-metadata
Add E2E tests for CSI Snapshot Metadata functionality
2026-02-11 19:10:01 +05:30
Kubernetes Prow Robot
90a76aaa9a Merge pull request #136846 from carlory/update-cri-losing-support
kubelet: defer the configurations flags (and the related fallback behavior) deprecation removal timeline from 1.36 to 1.37 to align with containerd v1.7 support
2026-02-11 09:26:15 +05:30
Kubernetes Prow Robot
9dc55d7d9e Merge pull request #135729 from yangjunmyfm192085/fixe2e2
test/e2e: e2e test cases `should support seccomp default, which is unconfined [LinuxOnly]`. Execution failed.
2026-02-11 09:26:08 +05:30
Kubernetes Prow Robot
eb09a3c23e Merge pull request #135395 from pohly/apimachinery-wait-for-cache-sync
apimachinery + client-go + device taint eviction unit test: context-aware Start/WaitFor, waiting through channels
2026-02-11 06:11:59 +05:30
杨军10092085
d94808665c e2e test cases should support seccomp default, which is unconfined [LinuxOnly]. Execution failed. 2026-02-11 08:17:31 +08:00
Kubernetes Prow Robot
c9534cbb2e Merge pull request #134981 from haircommander/drop-cpu-load
kubelet: drop cpu load metrics from container metrics test
2026-02-11 03:00:01 +05:30
Kubernetes Prow Robot
3e15c6fe2f Merge pull request #136911 from pohly/dra-e2e-data-race
DRA E2E: fix data race in test driver
2026-02-11 01:24:08 +05:30
Kubernetes Prow Robot
e7f26c678a Merge pull request #136339 from ffromani/deprecate-customcpucfsquota-fg-not-feature
move to GA the `CustomCPUCFSquota` feature gate (was: deprecate the FG,  not the feature)
2026-02-11 00:08:04 +05:30
Patrick Ohly
0511a75685 DRA E2E: fix data race in test driver
UnprepareResourceClaims was not locking the mutex and thus raced with
GetPreparedResources, as found when data race detection was enabled in
kubernetes-kind-dra-all.

The locking gets added at the same level as in PrepareResourceClaims, i.e. in
the underlying implementation right before doing the actual work.

    WARNING: DATA RACE
    Write at 0x00c0047e03c0 by goroutine 9325:
      runtime.mapdelete()
          runtime/map_swiss.go:139 +0x0
      k8s.io/kubernetes/test/e2e/dra/test-driver/app.(*ExamplePlugin).nodeUnprepareResource()
          k8s.io/kubernetes/test/e2e/dra/test-driver/app/kubeletplugin.go:483 +0x391
      k8s.io/kubernetes/test/e2e/dra/test-driver/app.(*ExamplePlugin).UnprepareResourceClaims()
          k8s.io/kubernetes/test/e2e/dra/test-driver/app/kubeletplugin.go:496 +0x19d
      k8s.io/dynamic-resource-allocation/kubeletplugin.(*nodePluginImplementation).NodeUnprepareResources()
          k8s.io/dynamic-resource-allocation/kubeletplugin/draplugin.go:941 +0x4c1
      k8s.io/kubelet/pkg/apis/dra/v1._DRAPlugin_NodeUnprepareResources_Handler.func1()
          k8s.io/kubelet/pkg/apis/dra/v1/api_grpc.pb.go:181 +0xbe
      k8s.io/kubernetes/test/e2e/dra/test-driver/app.(*ExamplePlugin).recordGRPCCall()
          k8s.io/kubernetes/test/e2e/dra/test-driver/app/kubeletplugin.go:523 +0x2a6
      k8s.io/kubernetes/test/e2e/dra/test-driver/app.(*ExamplePlugin).recordGRPCCall-fm()
          <autogenerated>:1 +0x8f
      google.golang.org/grpc.getChainUnaryHandler.func1()
          google.golang.org/grpc@v1.78.0/server.go:1241 +0x23c
      k8s.io/kubernetes/test/e2e/dra/utils.(*Driver).interceptor()
          k8s.io/kubernetes/test/e2e/dra/utils/deploy.go:1045 +0x37d
      k8s.io/kubernetes/test/e2e/dra/utils.(*Driver).SetUp.func8()
          k8s.io/kubernetes/test/e2e/dra/utils/deploy.go:657 +0xb2
      google.golang.org/grpc.getChainUnaryHandler.func1.getChainUnaryHandler.1()
          google.golang.org/grpc@v1.78.0/server.go:1241 +0x11e
      k8s.io/dynamic-resource-allocation/kubeletplugin.(*grpcServer).interceptor()
          k8s.io/dynamic-resource-allocation/kubeletplugin/nonblockinggrpcserver.go:157 +0x545
      k8s.io/dynamic-resource-allocation/kubeletplugin.(*grpcServer).interceptor-fm()
          <autogenerated>:1 +0x8f
      google.golang.org/grpc.getChainUnaryHandler.func1()
          google.golang.org/grpc@v1.78.0/server.go:1241 +0x23c
      k8s.io/dynamic-resource-allocation/kubeletplugin.startGRPCServer.unaryContextInterceptor.func2()
          k8s.io/dynamic-resource-allocation/kubeletplugin/nonblockinggrpcserver.go:99 +0x7e
      google.golang.org/grpc.NewServer.chainUnaryServerInterceptors.chainUnaryInterceptors.func1()
          google.golang.org/grpc@v1.78.0/server.go:1232 +0xe7
      k8s.io/kubelet/pkg/apis/dra/v1._DRAPlugin_NodeUnprepareResources_Handler()
          k8s.io/kubelet/pkg/apis/dra/v1/api_grpc.pb.go:183 +0x1e6
      google.golang.org/grpc.(*Server).processUnaryRPC()
          google.golang.org/grpc@v1.78.0/server.go:1428 +0x1a69
      google.golang.org/grpc.(*Server).handleStream()
          google.golang.org/grpc@v1.78.0/server.go:1832 +0x185b
      google.golang.org/grpc.(*Server).serveStreams.func2.1()
          google.golang.org/grpc@v1.78.0/server.go:1063 +0x149

    Previous read at 0x00c0047e03c0 by goroutine 9257:
      runtime.mapIterStart()
          runtime/map_swiss.go:160 +0x0
      k8s.io/kubernetes/test/e2e/dra/test-driver/app.(*ExamplePlugin).GetPreparedResources()
          k8s.io/kubernetes/test/e2e/dra/test-driver/app/kubeletplugin.go:506 +0x112
      k8s.io/kubernetes/test/e2e/dra/test-driver/app.(*ExamplePlugin).GetPreparedResources-fm()
          <autogenerated>:1 +0x33
      runtime.call16()
          runtime/asm_amd64.s:774 +0x42
      reflect.Value.Call()
          reflect/value.go:365 +0xb5
      github.com/onsi/gomega/internal.(*AsyncAssertion).buildActualPoller.func3()
          github.com/onsi/gomega@v1.39.0/internal/async_assertion.go:337 +0x244
      github.com/onsi/gomega/internal.(*AsyncAssertion).match()
          github.com/onsi/gomega@v1.39.0/internal/async_assertion.go:560 +0xe01
      github.com/onsi/gomega/internal.(*AsyncAssertion).Should()
          github.com/onsi/gomega@v1.39.0/internal/async_assertion.go:145 +0xc4
      k8s.io/kubernetes/test/e2e/dra.init.func1.2.4()
          k8s.io/kubernetes/test/e2e/dra/dra.go:314 +0x4fc
      k8s.io/kubernetes/test/e2e/dra.init.func1.2.4()
          k8s.io/kubernetes/test/e2e/dra/dra.go:304 +0x204
      github.com/onsi/ginkgo/v2/internal.extractBodyFunction.func2()
          github.com/onsi/ginkgo/v2@v2.27.4/internal/node.go:517 +0x5d
      github.com/onsi/ginkgo/v2/internal.(*Suite).runNode.func3()
          github.com/onsi/ginkgo/v2@v2.27.4/internal/suite.go:945 +0x6ed
2026-02-10 15:20:48 +01:00
Patrick Ohly
45251e5f65 client-go cache: allow passing name+logger to DeltaFIFO, RealFIFO and Reflector
This improves logging and enables more informative waiting for cache sync in a
following commit. It addresses one klog.TODO in the Reflector.

The RealFIFOOptions and InformerOptions structs get extended the same way as
DeltaFIFOOptions before: a logger may be set, but it's not required. This is
not an API break.

That the name has to be passed separately is a bit annoying at first glance
because it could also be set directly on the logger through WithName, but
keeping it separate is better:
- name can be set without providing a logger
- name can be defaulted
- less code in the caller when passing through a logger and adding
  the name only in the field
- last but not least, extracting the name is not supported in a portable
  manner by logr

All in-tree references in production code get updated.

While at it, logging in the fifos gets updated to follow best practices: if
some code encounters an abnormal situation and then continues, it should use
utilruntime.HandleErrorWithLogger instead of normal error logging.

Existing "logger" fields get moved to the top because that is a more common
place for such a read-only field.
2026-02-10 13:48:30 +01:00
Antonio Ojea
2cfc90672a fix flake on ipaddress allocator integration test
The test need to consider the time for the Delete operation to populate
the ipallocator informer, otherwise, it can happen the allocator fails
with a range full failing the test.

Co-authored-by: hiirrxnn <hiren2004sharma@gmail.com>
2026-02-10 10:34:47 +00:00
Kubernetes Prow Robot
59cddedb04 Merge pull request #136901 from Phaow/vac-fix
test: bring back the VAC roll-forward test
2026-02-10 15:46:05 +05:30
Kubernetes Prow Robot
b6f27f1993 Merge pull request #136856 from pohly/dra-integration-timeouts
DRA integration: bump timeouts to 1 minute
2026-02-10 12:59:59 +05:30
Penghao
e3f7eb38fa Revert "Mark VAC roll-forward test as flaky"
This reverts commit 085d23388a.
2026-02-10 14:39:39 +08:00
Kubernetes Prow Robot
0bb75334dd Merge pull request #135464 from MikeSpreitzer/better-concurrency-test-margin
Relax the noise margin threshold in TestConcurrencyIsolation
2026-02-10 10:30:04 +05:30
Kubernetes Prow Robot
7b0310aadd Merge pull request #136820 from dims/update-otel-deps
Update OpenTelemetry dependencies to latest versions
2026-02-10 05:44:05 +05:30
Kubernetes Prow Robot
139e78d88d Merge pull request #136337 from pohly/dra-e2e-hostpath-image-selection
DRA E2E: use image utils to manage hostpath image
2026-02-10 00:02:02 +05:30
Patrick Ohly
2238a33655 DRA integration: bump timeouts to 1 minute
The 30 second timeouts in binding condition testing recently flaked, probably
related to increasing parallelism in integration test jobs.
2026-02-09 13:21:13 +01:00
Francesco Romani
9bc91a75d3 e2e: cpumanager: test for custom cpu cfs quota period
Add basic e2e test coverage for the CFSCPUPeriod toggle

Signed-off-by: Francesco Romani <fromani@redhat.com>
2026-02-09 08:27:51 +01:00
Francesco Romani
5a2578ce09 kubelet: promote the CustomCPUCFSQuotaPeriod to GA
Promote the CustomCPUCFSQuotaPeriod gate to GA, turning it enabled by
default. Short history of this feature so far:

As far as git and github history allows to reconstruct, this
feature was introduced without KEP/design doc process (kubernetes 1.12).
It was a double-opt-in feature: users set to first enable a FG to make
the kubelet honor a setting, then change a specific tunable to change
the behavior This is more like a “safeguard” FG
(Other noteworthy examples: `UnauthenticatedHTTP2DOSMitigation` or
`DisableCPUQuotaWithExclusiveCPUs`) rather than a KEP-driven feature gate

Major past events:
- introduced in: https://github.com/kubernetes/kubernetes/pull/63437
- Discussion about adding a FG: https://github.com/kubernetes/kubernetes/pull/63437#issuecomment-387828654
- The change was initially accepted as straightforward, but it was
  later discovered systemd had gaps, and the change was downgraded
  as experimental: https://github.com/kubernetes/kubernetes/pull/63437#issuecomment-391740566
- FG re-introduced because systemd acknowledged and fixed the gap,
  but the systemd rollout would take quite some time:
  https://github.com/kubernetes/kubernetes/pull/63437#issuecomment-407950436

There's a  gap, still relevant in 2026: missing e2e tests to move past alpha:
https://github.com/kubernetes/kubernetes/pull/63437#issuecomment-417674790

Other noteworthy work related to this feature:
- https://github.com/kubernetes/kubernetes/pull/94687
- https://github.com/kubernetes/kubernetes/pull/111520
- https://github.com/kubernetes/kubernetes/pull/129726
- https://github.com/kubernetes/kubernetes/pull/133845

Fix and modernize the related unit tests.

Signed-off-by: Francesco Romani <fromani@redhat.com>

fixup
2026-02-09 08:27:21 +01:00
Francesco Romani
ccb70a6577 kubelet: deprecate DisableCPUQuotaWithExclusiveCPUs
We missed the proper process initially, it should have
been set to deprecated from the beginning, to convey
this is a safety FG for a delicate, long needed fix
rather than a FG for a proper feature

Signed-off-by: Francesco Romani <fromani@redhat.com>
2026-02-09 08:25:56 +01:00
carlory
bd31a168fd kubelet: defer the configurations flags (and the related fallback behavior) deprecation removal timeline from 1.36 to 1.37 to align with containerd v1.7 support
Signed-off-by: carlory <baofa.fan@daocloud.io>
2026-02-09 10:39:17 +08:00
Mads Jensen
7883039b31 Remove unneeded use of fmt.Sprintf in test/{integration,e2e} 2026-02-08 14:34:13 +01:00
Davanum Srinivas
077dfc6175 Fix TestAPIServerTracing: update rpc.system to rpc.system.name
otelgrpc v0.65.0 upgraded to semconv v1.39.0, which renamed the
attribute key from "rpc.system" to "rpc.system.name". Update the
tracing integration test expectations to match.

Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2026-02-07 23:45:55 -05:00
Kubernetes Prow Robot
669b1de008 Merge pull request #136767 from Sahil-4555/atomic-types-test
test: refactor to use atomic types
2026-02-07 22:13:08 +05:30
Kubernetes Prow Robot
d863fbe80b Merge pull request #135335 from carlory/cleanup
[1.36] Remove feature gate HonorPVReclaimPolicy
2026-02-07 06:30:28 +05:30
Kubernetes Prow Robot
2023f445ec Merge pull request #136291 from atombrella/feature/modernize_rangeint_test_integration_utils
Use Go 1.22 for-range in test/{utils,integrations}
2026-02-06 20:16:32 +05:30
Kubernetes Prow Robot
c0e6971b70 Merge pull request #136710 from bart0sh/PR221-integration-add-implicit-extended-resources
DRA: integration: test implicit resources
2026-02-06 15:12:32 +05:30
carlory
4bc5464553 Remove feature gate HonorPVReclaimPolicy
Signed-off-by: carlory <baofa.fan@daocloud.io>
2026-02-06 13:31:16 +08:00
Kubernetes Prow Robot
8972957668 Merge pull request #135782 from richabanker/fifo-identity-metric
Add identifier-based queue depth metrics for RealFIFO
2026-02-06 07:34:29 +05:30
Kubernetes Prow Robot
5dd7be6b4f Merge pull request #136118 from HarshalNeelkamal/ga-external-jwt
Make ExternalServiceAccountTokenSigner GA
2026-02-06 03:16:29 +05:30
Kubernetes Prow Robot
cee0b6d6e0 Merge pull request #136752 from BenTheElder/please-no-new-test-images
clarifying adding new test images
2026-02-06 01:36:39 +05:30
Richa Banker
7ffcacbf9e Wire informer name through kube-controller-manager shared informers 2026-02-05 11:45:47 -08:00
Richa Banker
864357774f Add FIFO queue depth metrics 2026-02-05 11:42:20 -08:00
Ed Bartosh
299471da26 test: refactor extended resource test
Simplify testExtendedResource structure and add proper field validation:

- Rename tests to distinguish explicit vs implicit modes clearly
- Remove unnecessary nested sub-test to flatten test hierarchy
- Validate ExtendedResourceName is correctly stored or stripped
  based on feature gate state to ensure proper API behavior
- Remove outdated comment that no longer applies

Co-Authored-By: Patrick Ohly <patrick.ohly@intel.com>
2026-02-05 21:17:15 +02:00
Ed Bartosh
f56e2545f0 DRA: integration: test implicit resources
Modified DRA integration test to test implicit extended resources.
2026-02-05 21:17:15 +02:00
Ed Bartosh
ef68c5f91c test: integration: refactor DRA extended resource test
Simplified testExtendedResource by using the helper functions added
in the previous commit:

- Removed unused global test data (podWithExtendedResource,
  classWithExtendedResource, etc.)
- Used createTestClassWithSpec to create DeviceClass with extended resources
- Used createPodWithExtendedResource to create test pods
- Removed manual class and pod creation boilerplate
2026-02-05 21:17:15 +02:00
Ed Bartosh
c21cb83c74 test: modify integration test helpers
Add helper functions to use for testing DRA extended resources:

- Add createTestClassWithSpec to support custom DeviceClassSpec
- Add createPodWithExtendedResource to create pods requesting extended resources
2026-02-05 21:17:09 +02:00
Kubernetes Prow Robot
dab5f4f0ae Merge pull request #136777 from omerap12/update-agnhost
Upgrade agnhost image to 2.63.0
2026-02-06 00:44:38 +05:30
Omer Aplatony
201fe11b03 Promote agnhost image to 2.63.0
Signed-off-by: Omer Aplatony <omerap12@gmail.com>
2026-02-05 17:21:34 +00:00
Mads Jensen
cb7f56f30d Use Go 1.22 for-range in test/utils and test/integrations
This was changed using modernize/rangeint.
2026-02-05 16:13:58 +01:00
Sahil-4555
8d2bb516d8 test: refactor to use atomic types 2026-02-05 20:19:33 +05:30
Praveen M
a74bf84787 e2e: add tests for external-snapshot-metadata sidecar
The tests validate the sidecar's functionality,
integration with the CSI driver and correctness of
metadata retrieval for snapshot backups.

This will help CSI vendors test their implementation
of the snapshot-metadata feature.

Issue: kubernetes-csi/external-snapshot-metadata#120

Signed-off-by: Praveen M <m.praveen@ibm.com>
2026-02-05 15:02:40 +05:30
Kubernetes Prow Robot
365fd08d58 Merge pull request #136694 from michaelasp/addEmulationToClientGo
Add the ability to update locked features in client-go testing
2026-02-05 02:04:32 +05:30
Kubernetes Prow Robot
a773eb4838 Merge pull request #136691 from pohly/ktesting-deprecated-removal
ktesting: remove deprecated and unused functions
2026-02-05 00:36:32 +05:30
Michael Aspinwall
566a01682f Lock InOrderInformers to true by default 2026-02-04 18:46:03 +00:00