Compare commits

...

1399 commits

Author SHA1 Message Date
Kubernetes Prow Robot
638bdc9df6
Merge pull request #136993 from hdp617/patch-1
Update cloud-controller-manager image version to v35.0.2
2026-02-14 00:44:00 +05:30
Kubernetes Prow Robot
23ea1ec286
Merge pull request #135769 from vshkrabkov/cleanup/unsch-pods-remove-recorder-nil-check
Remove nil checks for unschedulable pods metrics recorder
2026-02-13 18:03:59 +05:30
Kubernetes Prow Robot
5467a9f9e2
Merge pull request #135028 from itzPranshul/master-vg-enable-clusterRole
rbac: migrate PolicyRule.verbs to Declarative Validation
2026-02-13 10:27:59 +05:30
Kubernetes Prow Robot
ec2c7739bc
Merge pull request #135808 from tico88612/cleanup/SeparateCacheWatchRPC
SeparateCacheWatchRPC LockToDefault set true
2026-02-13 08:53:59 +05:30
Kubernetes Prow Robot
1132395d4a
Merge pull request #136793 from yongruilin/master_vg-strategy-alpha
KEP-5073:  Declarative Validation Lifecycle Update
2026-02-13 07:16:00 +05:30
yongruilin
33dec2246f address feedback: refactor declarative validation migration checks
- Extract HV error filtering into filterHandwrittenErrors for readability.
- Simplify errOutputMatcherByStability initialization in testing helpers.
2026-02-13 00:54:18 +00:00
yongruilin
d1b805f41e Mark scheduling Workload validation as Alpha in test 2026-02-13 00:54:18 +00:00
yongruilin
93b901d177 Enhance validation testing: add support for all declarative rules enforcement 2026-02-13 00:54:18 +00:00
yongruilin
3470dbd96e address feedback: add IsAlpha/IsBeta helpers for ValidationStabilityLevel
Introduce IsAlpha() and IsBeta() helper methods on field.Error to
encapsulate stability level checks. Unexport the underlying
ValidationStabilityLevel constants to keep the API surface minimal.
Update the apiserver's validation logic to use these helpers.
2026-02-13 00:54:18 +00:00
yongruilin
4d2a2abdee scheduling/workload: fix tests requiring RequestInfo for declarative validation
- Update resttest and genericregistrytest to support RequestInfo injection.
- Inject RequestInfo in Workload storage and strategy tests to resolve context-related failures.
- Refine validate.go log messages and error deduplication logic.
2026-02-13 00:54:18 +00:00
yongruilin
4f56a298cc Enforce zero mismatches in validation equivalence testing 2026-02-13 00:54:18 +00:00
yongruilin
2ef358870a Update validation equivalence testing for lifecycle enforcement
- Test scenarios: Beta Enabled, Beta Disabled, and Legacy (emulated 1.35).
- Remove deprecated Takeover gate references and redundant coverage checks.
- Add TODO to remove legacy emulation in 1.39.
- Update documentation to match the new Validation Lifecycle strategy.
2026-02-13 00:54:18 +00:00
yongruilin
a972411936 opt-in Workload v1alpha1 to explicit declarative enforcement
Mark Workload v1alpha1 validations as +k8s:alpha(since:"1.35") and
configure the registry strategy to use WithDeclarativeEnforcement().
This transitions the resource to the stability-based validation lifecycle,
where enforcement is determined by tag stability and feature gates.
Includes generated code updates.
2026-02-13 00:54:18 +00:00
yongruilin
069f913681 Update mismatch checking to support Validation Lifecycle stages
- Rename takeover to enforced in mismatch checking logic and comments.
- Update recommendation messages to refer to DeclarativeValidationBeta.
- Ensure Alpha-level mismatches always recommend "HV authoritative" (shadowed).
- Filter mismatch candidates by lifecycle stage when explicit enforcement is active.
- Refactor mismatch tests to cover Alpha/Beta scenarios and remove redundancy.
2026-02-13 00:54:18 +00:00
yongruilin
eceed007d3 Implement DeclarativeValidationBeta and Validation Lifecycle strategy
- Introduce WithDeclarativeEnforcement to opt-in to the lifecycle model.
- Update ValidateDeclarativelyWithMigrationChecks to:
    - Enforce Beta-level validations when DeclarativeValidationBeta is enabled.
    - Shadow Alpha-level validations.
    - Filter handwritten errors only for Beta-level validations (when enabled).
    - Limit mismatch checking to Alpha and Beta stages when enforcement is enabled.
- Deprecate WithDeclarativeNative and DeclarativeNative field in field.Error.
- Add comprehensive lifecycle tests and clean up redundant test cases.
2026-02-13 00:54:17 +00:00
yongruilin
0c679cea68 Introduce DeclarativeValidationBeta and deprecate Takeover gate
This change introduces the DeclarativeValidationBeta feature gate in v1.36
as the global safety switch for Beta-stage validation rules and marks
DeclarativeValidationTakeover as deprecated.

Following KEP-5073.
2026-02-13 00:54:11 +00:00
Kubernetes Prow Robot
fb78de873a
Merge pull request #136824 from cnuss/issues/136823
client-go: Replace deprecated BackoffManager with DelayFunc in Reflector
2026-02-13 06:10:07 +05:30
Kubernetes Prow Robot
9571e19da9
Merge pull request #134675 from JoelSpeed/enable-kal-optionalorrequired-apiserver-internal
Enforce either optional or required tag on apiserverinternal API group
2026-02-13 06:10:00 +05:30
Kubernetes Prow Robot
b72e248c25
Merge pull request #136953 from lalitc375/revert-dv-native
Revert dv native in the validation-gen framework
2026-02-13 04:44:10 +05:30
Kubernetes Prow Robot
47e2318e85
Merge pull request #136952 from dgrisonnet/kubelet-metrics-provider
Add kubelet_metrics_provider metric
2026-02-13 04:44:00 +05:30
Kubernetes Prow Robot
7f13600dad
Merge pull request #136400 from vinayakankugoyal/gitrepo
KEP:5040 Lock gitRepo Volume Driver to disabled.
2026-02-13 03:58:10 +05:30
Kubernetes Prow Robot
03da245585
Merge pull request #134827 from michaelasp/rvStore
Add Resource Version query and Bookmarks to thread safe store
2026-02-13 03:58:00 +05:30
Christian Nuss
33ebd41b2c
client-go: Replace deprecated BackoffManager with DelayFunc in Reflector
Move backoff documentation comments to var block for better discoverability.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-12 17:18:14 -05:00
Kubernetes Prow Robot
d7f6f91dae
Merge pull request #135820 from pohly/dra-sharing-claim-sequentially-test
DRA: sharing claim sequentially test
2026-02-13 01:50:09 +05:30
Kubernetes Prow Robot
0ba7bf5716
Merge pull request #135503 from aojea/externalname_repairip
repairip externalname to cluster ip type
2026-02-13 01:50:01 +05:30
Joel Speed
82a9a99a44
Restore omitempty on ServerStorageVersion fields 2026-02-12 18:55:47 +00:00
Kubernetes Prow Robot
98dd4d8e60
Merge pull request #136812 from rpb-ant/rpb/sts-not-found
Add 404 handling for the statefulset controller pod deletion codepath
2026-02-13 00:18:00 +05:30
Damien Grisonnet
22706b7bdf pkg/kubelet: add kubelet_metrics_provider metric
This metric is meant to help end-users identify which metrics provider
kubelet is using under the hood to expose container stats.

Signed-off-by: Damien Grisonnet <dgrisonn@redhat.com>
2026-02-12 19:28:52 +01:00
Kubernetes Prow Robot
b6eb3d0546
Merge pull request #136970 from iPraveenParihar/e2e/snapshot-metadata-typo-fixes
e2e: fix typos in snapshot-metadata testfile
2026-02-12 23:30:02 +05:30
Joel Speed
319978e216
Update openapi/swagger 2026-02-12 17:44:53 +00:00
Joel Speed
551c08e2a2
Update exceptions to drop "it must be optional" 2026-02-12 17:42:44 +00:00
Huy Pham
dfda908ab2
Update cloud-controller-manager image version to v35.0.2 2026-02-12 09:22:46 -08:00
Kubernetes Prow Robot
5b63a8c68e
Merge pull request #136921 from dims/dump-from-utils
Move dump package from apimachinery to k8s.io/utils
2026-02-12 22:28:10 +05:30
Kubernetes Prow Robot
728fb46ab1
Merge pull request #136816 from damdo/cloud-provider-add-webhook-tls-options
k8s.io/cloud-provider: Adds missing TLS flags to webhook serving options
2026-02-12 22:28:02 +05:30
Kubernetes Prow Robot
150247a304
Merge pull request #136981 from soltysh/simplify_logs_e2e
Add slight timeout after pods are running, and drop duplicate log lines checks
2026-02-12 20:30:09 +05:30
Kubernetes Prow Robot
096a581c9c
Merge pull request #136909 from shwetha-s-poojary/fix_flake_TestWebhookConversion_WhitespaceCABundleEtcdBypass
test: fix the flaking TestWebhookConversion_WhitespaceCABundleEtcdBypass
2026-02-12 20:30:01 +05:30
Ryan Brewster
11c6f8c7c8
Clean up redundant IsNotFound checks in stateful_set_control
🏠 Remote-Dev: homespace
2026-02-12 14:35:10 +00:00
Joel Speed
0b10375aec
Add exception for union type in scheduling API
We need to add a marker to allow podgroup to be marked up correctly as a union type, and then teach the nonpointerstructs linter how to understand this
2026-02-12 14:12:36 +00:00
Joel Speed
0ebf47cb08
Update generated code 2026-02-12 14:12:35 +00:00
Joel Speed
a9034c040e
Enable nonpointerstructs alongside optionalorrequired 2026-02-12 14:12:33 +00:00
Kubernetes Prow Robot
fef67434a6
Merge pull request #136982 from cpanato/update-go-main
Bump images and versions to go 1.25.7 and distroless iptables
2026-02-12 19:22:04 +05:30
Carlos Panato
634d1f00ab
Bump images and versions to go 1.25.7 and distroless iptables
Signed-off-by: Carlos Panato <ctadeu@gmail.com>
2026-02-12 14:04:23 +01:00
Maciej Szulik
c2bf995e96
Add 1s timeout after pods get ready, to ensure log generator produces output
Signed-off-by: Maciej Szulik <soltysh@gmail.com>
2026-02-12 13:36:27 +01:00
Maciej Szulik
6e6107c9e9
Cleans up the test, removing duplicate checks and making code more
readable

Signed-off-by: Maciej Szulik <soltysh@gmail.com>
2026-02-12 13:35:23 +01:00
Davanum Srinivas
550cc8645b
Move dump package from apimachinery to k8s.io/utils
Replace all imports of k8s.io/apimachinery/pkg/util/dump with
k8s.io/utils/dump across the repo. The apimachinery dump package
now contains deprecated wrapper functions that delegate to
k8s.io/utils/dump for backwards compatibility.

Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2026-02-12 07:34:19 -05:00
Patrick Ohly
0cb57b97e7 DRA integration: test sharing a claim sequentially
This used to be an E2E test, but it turned out to be too slow and unreliable
and therefore got removed. As an integration test we have a bit better control
over the environment, so it should be possible to avoid the same flakes.

Some of the slowness comes from pods entering backoff. Maybe this is an
opportunity for future improvements.

To support this tests, the ResourceClaim controller is needed. The framework
can start it on demand now, similar to how the scheduler was handled already.
2026-02-12 12:33:22 +01:00
Patrick Ohly
bff684d951 DRA ResourceClaim controller: update logging
This provides a bit more information when the controller touches a
ResourceClaim.
2026-02-12 12:33:22 +01:00
Patrick Ohly
21bf85de15 DRA E2E: support usage without real nodes
This enables usage in test/integration/dra:
- "deploying" a driver merely sets up the usual slices and class
- created pods get force-deleted
2026-02-12 12:33:22 +01:00
Joel Speed
c4b2640b32
Remove exceptions for groups with no issues 2026-02-12 11:16:54 +00:00
Joel Speed
8651d99a26
Enforce either optional or required tag on apiserverinternal API group 2026-02-12 11:14:37 +00:00
Kubernetes Prow Robot
c89da3c99f
Merge pull request #136238 from herb-duan/fix-kubelet-status-reconcile
fix(kubelet): ignore resource claim statuses in pod status comparison
2026-02-12 15:03:59 +05:30
Kubernetes Prow Robot
00bf52745a
Merge pull request #131846 from yangjunmyfm192085/fixtest
Adjust the expected and actual parameters of the unit test Equal function to the correct order
2026-02-12 14:14:01 +05:30
Kubernetes Prow Robot
4ae98b99c0
Merge pull request #136971 from sunya-ch/follow-up-rename
DRA: Rename GetBaseDeviceID to GetDeviceID for SharedDeviceID
2026-02-12 12:18:00 +05:30
Sunyanan Choochotkaew
e1a7952a6c
DRA: Rename GetBaseDeviceID to GetDeviceID for SharedDeviceID
Signed-off-by: Sunyanan Choochotkaew <sunyanan.choochotkaew1@ibm.com>
2026-02-12 13:47:11 +09:00
Praveen M
ab6221517f e2e: fix typos in snapshot-metadata testfile
Signed-off-by: Praveen M <m.praveen@ibm.com>
2026-02-12 10:15:05 +05:30
Kubernetes Prow Robot
89900005ee
Merge pull request #136913 from jsafrane/bump-csi-driver-host-path
Update the csi-driver-host-path version to 1.17.1
2026-02-12 09:32:01 +05:30
Kubernetes Prow Robot
1956f4e90d
Merge pull request #136701 from Jefftree/fix-tombstone
Add tombstone handling for serviceaccount and attachdetach controllers
2026-02-12 08:24:09 +05:30
Kubernetes Prow Robot
91d349939f
Merge pull request #135880 from hoskeri/remote-apiserver
Delay building discovery transport until needed
2026-02-12 08:24:00 +05:30
Kubernetes Prow Robot
9d72a65986
Merge pull request #130660 from cbandy/cel-godoc
Show CEL library doc comments in godoc
2026-02-12 07:34:00 +05:30
Michael Aspinwall
428b903cd9 Plumb bookmark RVs to controller for observation 2026-02-12 00:41:30 +00:00
Michael Aspinwall
9c6ac550ef Add rv query to store 2026-02-12 00:41:25 +00:00
Kubernetes Prow Robot
54489c1a33
Merge pull request #136729 from ahmedtd/podcert-pkcs10
Pod Certificates: Add StubPKCS10Request; migrate in-tree usages
2026-02-12 04:43:59 +05:30
Kubernetes Prow Robot
04d82d95fa
Merge pull request #136796 from kairosci/fix/kube-proxy-nftables-udata
Fix kube-proxy nftables crash with newer nftables versions
2026-02-12 03:53:59 +05:30
Jefftree
334fa1cef8 Add tombstone handling for serviceaccount and attachdetach controllers 2026-02-11 16:06:29 -05:00
Alessio Attilio
72ef5b34a8 pkg/proxy/nftables: fix kube-proxy crash with newer nftables versions
Fixes kube-proxy's nftables mode to work on systems with nft 1.1.3.
2026-02-11 21:46:23 +01:00
Your Name
7291cd6929 Revert "validation-gen: Implement declarative validation native logic"
This reverts commit 7e5c081339.
2026-02-11 19:20:38 +00:00
Your Name
903a3fee95 Revert "Add DV support for cross field validators"
This reverts commit bccf92dc3f.
2026-02-11 19:20:34 +00:00
Kubernetes Prow Robot
311071d300
Merge pull request #133427 from natasha41575/admitHandler
[FG:InPlacePodVerticalScaling] refactor allocation feasibility check into its own admitHandler
2026-02-12 00:10:00 +05:30
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
45b924818c
Merge pull request #136719 from pohly/e2e-gce-speedups
e2e-gce: improve performance of cluster shutdown
2026-02-11 18:12:01 +05:30
Patrick Ohly
f7a0c01d60 cluster gce: parallelize cluster cleanup a bit more
This brings down the execution time for ./hack/e2e-internal/e2e-down.sh in
e2e-gce from ~7:30min to slightly less than 5 minutes.
2026-02-11 10:50:30 +01:00
Chris Bandy
6e81ff4433 Show CEL library doc comments in godoc
Documentation for the Format, SemVer, and Quantity libraries now appears
in godoc and at pkg.go.dev.
2026-02-10 22:25:48 -06:00
shwetha-s-poojary
019f68be5c test: fix the flaking TestWebhookConversion_WhitespaceCABundleEtcdBypass 2026-02-11 09:36:47 +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
fce5bc2854
Merge pull request #134316 from xigang/node_controller_pod
node_lifecycle_controller: fix processing deleted pod events, which are currently missed
2026-02-11 09:26:00 +05:30
Kubernetes Prow Robot
a79d324427
Merge pull request #136927 from BenTheElder/clean-fix
add dockerized go cache chmod to  `make clean`
2026-02-11 08:38:08 +05:30
Kubernetes Prow Robot
7b999810bf
Merge pull request #136925 from michaelasp/pipeFeatureGate
Pipe feature gate of unlockWhileProcessing
2026-02-11 08:38:01 +05:30
Kubernetes Prow Robot
b236451928
Merge pull request #136928 from BenTheElder/cleanup-unused-env
remove unused env from common.sh
2026-02-11 07:10:00 +05:30
Kubernetes Prow Robot
46ac9df8c8
Merge pull request #135675 from richabanker/merged-discovery
Peer-aggregated discovery: add GV Exclusion Manager
2026-02-11 06:12:07 +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
99d4b4d426
Merge pull request #135256 from natasha41575/pod-gen-field
remove Pod Generation feature gate from field descriptions
2026-02-11 05:17:59 +05:30
Alessio Attilio
62c3d8d820 Update knftables to v0.0.20 2026-02-11 00:39:40 +01:00
Benjamin Elder
2257cdc413 remove unused env from common.sh
I searched the whole repo for usage with no hits, these are stale from the rsync code
2026-02-10 15:16:56 -08:00
Benjamin Elder
a15b558fd6 add dockerized go cache to make clean 2026-02-10 14:54:44 -08:00
Michael Aspinwall
718ebb6dfc Pipe feature gates 2026-02-10 22:39:18 +00:00
Natasha Sarkar
d5dabfcd65 remove Pod Generation feature gate from field descriptions 2026-02-10 21:33:09 +00:00
Kubernetes Prow Robot
870e2928bc
Merge pull request #136716 from yonizxz/concurrent-node-syncs-split
Split from concurrent-node-syncs a separate flag for node status updates
2026-02-11 03:00:10 +05:30
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
Natasha Sarkar
0010062c24 remove unused allocatedPod var 2026-02-10 20:28:40 +00:00
Natasha Sarkar
01d42901e9 remove allocationManager's unused dependency on nodeConfig 2026-02-10 20:26:49 +00:00
Natasha Sarkar
676be66993 move resize infeasibility check into an admitHandler 2026-02-10 20:26:49 +00:00
Natasha Sarkar
694c998fb1 add 'operation' field to lifecycle.PodAdmitAttributes 2026-02-10 20:26:48 +00:00
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
1bb2e12490
Merge pull request #136734 from sunya-ch/sunya-ch/fix-gather-shared-id
Fix missing GetSharedDeviceIDs bug in GatherAllocatedState
2026-02-11 01:24:00 +05:30
Kubernetes Release Robot
f42571572d CHANGELOG: Update directory for v1.32.12 release 2026-02-10 19:06:20 +00:00
Kubernetes Release Robot
5fbe09a2fc CHANGELOG: Update directory for v1.33.8 release 2026-02-10 19:05:28 +00:00
Kubernetes Release Robot
3403737ffe CHANGELOG: Update directory for v1.34.4 release 2026-02-10 19:04:53 +00:00
Kubernetes Release Robot
699d840eb8 CHANGELOG: Update directory for v1.35.1 release 2026-02-10 19:03:35 +00:00
Jonathan Yaniv
0dbf8667cc Split from concurrent-node-syncs a separate flag for node status updates 2026-02-10 18:57:52 +00:00
Kubernetes Prow Robot
65f09e605c
Merge pull request #136826 from alvaroaleman/bumpv0.32
Bump structured merge diff to v6.3.2
2026-02-11 00:08:13 +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
Kubernetes Prow Robot
7f890ab7ad
Merge pull request #136802 from pohly/fix-data-race-refs-populaterefs
Fix data race in PopulateRefs by copying Items and AdditionalProperties
2026-02-10 23:16:00 +05:30
Patrick Ohly
5ff323de79 client-go informers: context-aware Start + WaitForCacheSync
Passing a context to StartWithContext enables context-aware reflector
logging. This is the main remaining source of log spam (output to stderr
instead of per-test logger) in controller unit tests.

WaitForCacheSynceWithContext takes advantage of the new cache.WaitFor +
NamedHasSynced functionality to finish "immediately" (= no virtual time
passed) in a synctest bubble. While at it, the return type gets improved so
that a failure is easier to handle.
2026-02-10 17:06:47 +01:00
Patrick Ohly
fdcbb6cba9 client-go cache: wait for cache sync via channels, better logging
The main advantage is that waiting on channels creates a causal relationship
between goroutines which is visible to synctest. When a controller in a
synctest bubble does a WaitFor in a test's background goroutine for the
controller, the test can use synctest.Wait to wait for completion of cache
sync, without requiring any test specific "has controller synced" API. Without
this, the test had to poll or otherwise wait for the controller.

The polling in WaitForCacheSync moved the virtual clock forward by a random
amount, depending on how often it had to check in wait.Poll. Now tests can be
written such that all events during a test happen at a predictable time. This
will be demonstrated in a separate commit for the
pkg/controller/devicetainteviction unit test.

The benefit for normal production is immediate continuation when the last
informer is synced (not really a problem, but still...) and more important,
nicer logging thanks to the names associated with the thing that is being
waited for. The caller decides whether logging is enabled or disabled and
describes what is being waited for (typically informer caches, but maybe also
event handlers or even something else entirely as long as it implements the
DoneChecker interface).

Before:

    Waiting for caches to sync
    Caches are synced

After:

    Waiting for="cache and event handler sync"
    Done waiting for="cache and event handler sync" instance="SharedIndexInformer *v1.Pod"
    Done waiting for="cache and event handler sync" instance="SharedIndexInformer *v1.ResourceClaim"
    Done waiting for="cache and event handler sync" instance="SharedIndexInformer *v1.ResourceSlice"
    Done waiting for="cache and event handler sync" instance="SharedIndexInformer *v1.DeviceClass"
    Done waiting for="cache and event handler sync" instance="SharedIndexInformer *v1alpha3.DeviceTaintRule"
    Done waiting for="cache and event handler sync" instance="SharedIndexInformer *v1.ResourceClaim + event handler k8s.io/kubernetes/pkg/controller/devicetainteviction.(*Controller).Run"
    Done waiting for="cache and event handler sync" instance="SharedIndexInformer *v1.Pod + event handler k8s.io/kubernetes/pkg/controller/devicetainteviction.(*Controller).Run"
    Done waiting for="cache and event handler sync" instance="SharedIndexInformer *v1alpha3.DeviceTaintRule + event handler k8s.io/kubernetes/pkg/controller/devicetainteviction.(*Controller).Run"
    Done waiting for="cache and event handler sync" instance="SharedIndexInformer *v1.ResourceSlice + event handler k8s.io/kubernetes/pkg/controller/devicetainteviction.(*Controller).Run"

The "SharedIndexInformer *v1.Pod" is also how this appears in metrics.
2026-02-10 17:05:51 +01:00
Jan Safranek
7d68b9b996 Update the csi-driver-host-path version to 1.17.1
It fixes one annoying flake, https://github.com/kubernetes-csi/external-snapshotter/issues/1357
2026-02-10 16:33:26 +01:00
Kubernetes Prow Robot
2a9b8baab7
Merge pull request #136787 from ahmedtd/bump-ctb
Push ClusterTrustBundles v1beta1 deprecation to 1.37
2026-02-10 20:30:13 +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
Kubernetes Prow Robot
01b283ad45
Merge pull request #136907 from aojea/ipaddress_flake
fix flake on ipaddress allocator integration test
2026-02-10 19:30:01 +05:30
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
467099411d
Merge pull request #136898 from carlory/kubeadm-ContainerRuntimeVersion-1-37
kubeadm:  bump the version in the ContainerRuntimeVersionCheck warning message from 1.36 to 1.37
2026-02-10 14:48:18 +05:30
Kubernetes Prow Robot
76b4a9019c
Merge pull request #136326 from bart0sh/PR218-migrate-kubelet_node_status-to-contextual-logging
Migrate kubelet_node_status* to contextual logging
2026-02-10 14:48:10 +05:30
Kubernetes Prow Robot
65b1000a7d
Merge pull request #135749 from novahe/fix-defer-latency
Fix: Incorrect duration metric recording incorrect values
2026-02-10 14:48:01 +05:30
Kubernetes Prow Robot
44dc4cb68c
Merge pull request #136888 from neolit123/revert-136130-kubeadm_use_newclientset
Revert "kubeadm: switch tests to NewClientset"
2026-02-10 13:00:07 +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
1955210d81
Merge pull request #134044 from mcallzbl/master
Replace deprecated sets.String with sets.Set[string] in apiserver
2026-02-10 10:29:57 +05:30
Richa Banker
f4882eeaa6 Use AddAfter for GV reaping instead of periodic ticker 2026-02-09 19:20:38 -08:00
carlory
8eb3b65222
kubeadm: the preflight check ContainerRuntimeVersion validates if the installed container runtime supports the RuntimeConfig gRPC method. For older kubelet versions than 1.37, it will return a preflight warning.
Signed-off-by: carlory <baofa.fan@daocloud.io>
2026-02-10 10:30:12 +08:00
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
f693c45c4e
Merge pull request #136775 from atombrella/feature/activate_modernize_slicessort
Enable modernize/slicessort rule
2026-02-10 05:43:57 +05:30
Kubernetes Prow Robot
fc74562c38
Merge pull request #136808 from nmn3m/kubelet-contextual-logging
Update kubelet to use EventRecorderLogger.WithLogger() for contextual…
2026-02-10 02:31:58 +05:30
Kubernetes Prow Robot
09e1c9fe0e
Merge pull request #136455 from pohly/client-go-simpleclient-undeprecation
fake client-go: un-deprecate NewSimpleClientset
2026-02-10 01:33:59 +05:30
Patrick Ohly
e80da21868 fake client-go: un-deprecate NewSimpleClientset
NewSimpleClientset was marked as deprecated when NewClientset was
introduced. This has caused some confusion:
- Not all packages have NewClientset (https://github.com/kubernetes/kubernetes/issues/135980).
- Tests that work with NewSimpleClientset fail when
  switched to NewClientset (https://github.com/kubernetes/kubernetes/issues/136327)
  because of missing CRD support (https://github.com/kubernetes/kubernetes/issues/126850).

It doesn't seem burdensome to keep NewSimpleClientset around forever. Some unit
tests may even prefer to use it when they don't need server-side apply (less
overhead). Therefore there is no need to deprecate it.

This avoids churn in the eco system because contributors no longer create PRs
"because the linter complains about the usage of a deprecated function".
2026-02-09 20:09:42 +01:00
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
Lubomir I. Ivanov
aa082ab174
Revert "kubeadm: switch tests to NewClientset" 2026-02-09 20:28:21 +02:00
Kubernetes Prow Robot
e73221ce18
Merge pull request #136488 from thockin/fix_bad_arg_name_in_dv
Rename an argument in validation stack
2026-02-09 21:57:21 +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
Kubernetes Prow Robot
a39c8201e9
Merge pull request #136423 from neolit123/1.36-remove-flex-volume-support-from-kubeadm
kubeadm: removed the built-in flex volume support
2026-02-09 14:07:21 +05:30
Francesco Romani
9dc40c8545 kubelet: api: validation: remove CustomCPUCFSQuotaPeriod setting
we moved the FG to default on, so we don't need to enable
it explictly anymore.

Signed-off-by: Francesco Romani <fromani@redhat.com>
2026-02-09 08:27:51 +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
Richa Banker
d03e9c8708 Use single worker for ActiveGVTracker and Refliter workqueues 2026-02-08 21:30:35 -08:00
Kubernetes Prow Robot
97a2334637
Merge pull request #136778 from Jefftree/etcd-metrics-typo
Fix RecordStorageListMetrics comment
2026-02-09 10:31:08 +05:30
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
Sunyanan Choochotkaew
92fc98de6f
DRA: Fix missing GetSharedDeviceIDs bug in GatherAllocatedState with consumable capacity
Signed-off-by: Sunyanan Choochotkaew <sunyanan.choochotkaew1@ibm.com>
2026-02-09 10:04:29 +09:00
Kubernetes Prow Robot
918b5ac90b
Merge pull request #136840 from atombrella/feature/fmt_sprintf_unneeded
Remove unneeded use of fmt.Sprintf in test/{integration,e2e}
2026-02-09 00:53:08 +05:30
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
Alvaro Aleman
f59cfe60ef Bump structured merge diff to v6.3.2
Diff: https://github.com/kubernetes-sigs/structured-merge-diff/compare/v6.3.1...v6.3.2

It's just one change that prevents a NPD when an embedded pointer to a
struct is encountered.
2026-02-07 13:49:48 -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
Davanum Srinivas
275adf8b04
Update OpenTelemetry dependencies to latest versions
Bump OpenTelemetry dependencies:
- go.opentelemetry.io/otel v1.39.0 → v1.40.0
- go.opentelemetry.io/otel/metric v1.39.0 → v1.40.0
- go.opentelemetry.io/otel/sdk v1.39.0 → v1.40.0
- go.opentelemetry.io/otel/trace v1.39.0 → v1.40.0
- go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.39.0 → v1.40.0
- go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.39.0 → v1.40.0
- go.opentelemetry.io/contrib/.../otelrestful v0.64.0 → v0.65.0
- go.opentelemetry.io/contrib/.../otelhttp v0.64.0 → v0.65.0
- go.opentelemetry.io/contrib/.../otelgrpc v0.63.0 → v0.65.0

Unpin otelgrpc: the nil TracerProvider panic (kubernetes#135865) that
required pinning at v0.63.0 is fixed in v0.65.0. Removed the
pinnedModules entry from unwanted-dependencies.json.

Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2026-02-07 09:21:51 -05:00
Damiano Donati
5e9056fe35
k8s.io/cloud-provider: add missing --webhook-tls-* --webhook-disable-http2-serving options
The webhook server was missing several TLS
configuration flags that the main secure serving endpoint exposes.
Add the following flags and wire them through ApplyTo:

  --webhook-disable-http2-serving
  --webhook-tls-cipher-suites
  --webhook-tls-min-version
  --webhook-tls-sni-cert-key

These flags mirror the behavior of their non-prefixed equivalents
(--disable-http2-serving, --tls-cipher-suites, --tls-min-version,
--tls-sni-cert-key) and allow operators to fully configure TLS
for the webhook endpoint independently of the main serving endpoint.
2026-02-07 14:01:35 +01:00
Damiano Donati
8751dab9df
k8s.io/cloud-provider: fix webhook flags description
previously the webhook flags descriptions were still referencing the old
flag names.
2026-02-07 11:47:00 +01:00
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
Ryan Brewster
efe3667b6b
Add 404 handling for the statefulset controller pod deletion codepath
The daemonset controller already has handling for NotFound errors.

Right now if the statefulset controller is attempting to scale down a
statefulset and its informer cache is stale, it can get hard-blocked on a
missing pod.

This issue will eventually self-resolve once the informer cache "catches
up", but in the process of exploring this issue I realized that
404s during pod deletions don't strictly need to abort the entire sync;
we can continue.

This is especially impactful for large statefulsets with
podManagementStrategy: Parallel, where a single "phantom" pod (actually
missing, but still present in the informer cache) can block thousands of
other pods from being cleaned up.
2026-02-06 22:45:57 +00:00
Kubernetes Release Robot
a491db621b CHANGELOG: Update directory for v1.36.0-alpha.1 release 2026-02-06 22:38:29 +00:00
Kubernetes Prow Robot
a4437af6c6
Merge pull request #136621 from ermias19/fix-validatingadmissionpolicy-nil-panic
Fix validatingadmissionpolicy nil panic
2026-02-07 04:06:35 +05:30
Mads Jensen
ae8838f58a Fixes under staging. 2026-02-06 22:46:08 +01:00
Mads Jensen
95616cecda Use slices.Sort instead of sort.Slice.
There were only two instances of this in the entire code-base. Hence,
I have enabled the modernize rule/linter in golangci-lint.
2026-02-06 22:46:08 +01:00
Austin Abro
598922db75
feat(wait): introduce waitOptions.RunWaitContext() (#136781)
* run wait with context

Signed-off-by: Austin Abro <austinabro321@gmail.com>

* delete other comment

Signed-off-by: Austin Abro <austinabro321@gmail.com>

---------

Signed-off-by: Austin Abro <austinabro321@gmail.com>
2026-02-07 01:40:32 +05:30
Kubernetes Prow Robot
17810c6249
Merge pull request #136743 from ansilh/master
fix(kube-proxy): skip topology hints logging when no ready endpoints exist
2026-02-06 23:06:36 +05:30
Nour
dde1c5d8a6
Update kubelet to use EventRecorderLogger.WithLogger() for contextual logging when emitting events.
Signed-off-by: Nour <nurmn3m@gmail.com>
2026-02-06 19:29:40 +02:00
ansilh
440cfca4ef refactor(kube-proxy): remove redundant empty endpoints check in topologyModeFromHints
The len(endpoints) == 0 check is now redundant since the hasReadyEndpoints
check handles this case when the slice is empty, the loop executes zero
times, hasReadyEndpoints stays false, and returns "" via the same path.
2026-02-06 21:56:58 +05:30
ansilh
18f56fa7c7 fix(kube-proxy): skip topology hints logging when no ready endpoints exist
When all endpoints are non-ready (ready=false, serving=false, terminating=false),
the topologyModeFromHints function was incorrectly logging "Ignoring same-zone
topology hints for service since no hints were provided for zone" because the
boolean flags remained at their initial values after the loop skipped all
non-ready endpoints.

This fix adds tracking for whether any ready endpoints were processed and
returns early if none exist, avoiding misleading log messages.

Also adds a test case covering this scenario.
2026-02-06 21:46:05 +05:30
Patrick Ohly
ad7c5fda15 PopulateRefs unit test
The test fails on master with:

    WARNING: DATA RACE
    Read at 0x00c00038ccf8 by goroutine 10:
      k8s.io/apiserver/pkg/cel/openapi/resolver.populateRefs()
          /nvme/gopath/src/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/cel/openapi/resolver/refs.go:82 +0xb0a
      k8s.io/apiserver/pkg/cel/openapi/resolver.PopulateRefs()
          /nvme/gopath/src/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/cel/openapi/resolver/refs.go:37 +0x325
      k8s.io/apiserver/pkg/cel/openapi/resolver.TestPopulateRefs.func2()
          /nvme/gopath/src/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/cel/openapi/resolver/refs_test.go:99 +0x4f
      sync.(*WaitGroup).Go.func1()
          /nvme/gopath/go-1.25.2/src/sync/waitgroup.go:239 +0x5d

    Previous write at 0x00c00038ccf8 by goroutine 11:
      k8s.io/apiserver/pkg/cel/openapi/resolver.populateRefs()
          /nvme/gopath/src/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/cel/openapi/resolver/refs.go:89 +0xc1c
      k8s.io/apiserver/pkg/cel/openapi/resolver.PopulateRefs()
          /nvme/gopath/src/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/cel/openapi/resolver/refs.go:37 +0x325
      k8s.io/apiserver/pkg/cel/openapi/resolver.TestPopulateRefs.func3()
          /nvme/gopath/src/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/cel/openapi/resolver/refs_test.go:106 +0x3a
      sync.(*WaitGroup).Go.func1()
          /nvme/gopath/go-1.25.2/src/sync/waitgroup.go:239 +0x5d

    ...

    --- FAIL: TestPopulateRefs (0.00s)
        refs_test.go:115: read-only input schema got modified (- original, + modification):
              &spec.Schema{
              	VendorExtensible: {},
              	SchemaProps: spec.SchemaProps{
              		... // 22 identical fields
              		MinProperties: nil,
              		Required:      nil,
              		Items: &spec.SchemaOrArray{
              			Schema: &spec.Schema{
              				VendorExtensible: {},
              				SchemaProps: spec.SchemaProps{
            - 					ID: "",
            + 					ID: "item",
              					Ref: spec.Ref{
              						Ref: jsonreference.Ref{
              							... // 2 ignored fields
              							HasFullURL:      false,
            - 							HasURLPathOnly:  true,
            + 							HasURLPathOnly:  false,
              							HasFragmentOnly: false,
              							HasFileScheme:   false,
              							HasFullFilePath: false,
              						},
              					},
              					Schema:      "",
              					Description: "",
              					... // 31 identical fields
              				},
              				SwaggerSchemaProps: {},
              				ExtraProps:         nil,
              			},
              			Schemas: nil,
              		},
              		AllOf:      nil,
              		OneOf:      nil,
              		AnyOf:      nil,
              		Not:        nil,
              		Properties: {"a": {SchemaProps: {Ref: {Ref: {HasURLPathOnly: true, ...}}}}},
              		AdditionalProperties: &spec.SchemaOrBool{
              			Allows: false,
              			Schema: &spec.Schema{
              				VendorExtensible: {},
              				SchemaProps: spec.SchemaProps{
            - 					ID: "",
            + 					ID: "additional",
              					Ref: spec.Ref{
              						Ref: jsonreference.Ref{
              							... // 2 ignored fields
              							HasFullURL:      false,
            - 							HasURLPathOnly:  true,
            + 							HasURLPathOnly:  false,
              							HasFragmentOnly: false,
              							HasFileScheme:   false,
              							HasFullFilePath: false,
              						},
              					},
              					Schema:      "",
              					Description: "",
              					... // 31 identical fields
              				},
              				SwaggerSchemaProps: {},
              				ExtraProps:         nil,
              			},
              		},
              		PatternProperties: nil,
              		Dependencies:      nil,
              		... // 2 identical fields
              	},
              	SwaggerSchemaProps: {},
              	ExtraProps:         nil,
              }
        testing.go:1617: race detected during execution of test
    FAIL
2026-02-06 16:24:40 +01:00
tennisleng
317c96a062 Fix data race in PopulateRefs by copying Items and AdditionalProperties
The populateRefs function was modifying result.Items.Schema and
result.AdditionalProperties.Schema directly. Since result is a shallow
copy of the input schema, these pointer fields still reference the
original shared structures, causing a data race when multiple goroutines
call PopulateRefs concurrently.

Fix by creating copies of Items and AdditionalProperties before
modifying their Schema field.
2026-02-06 16:23:41 +01:00
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
1c91a55324
Merge pull request #136798 from dims/mark-archived-deps-unwanted
Mark flynn/go-shlex and kr/pty as unwanted dependencies
2026-02-06 18:56:33 +05:30
Davanum Srinivas
8518a8bcfa
Mark flynn/go-shlex and kr/pty as unwanted dependencies
Both repositories are archived on GitHub and were detected by the
new check-dependency-archived-periodical CI job.

Also add flynn/go-shlex to unwantedReferences (referenced by
github.com/coredns/caddy).

Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2026-02-06 07:17:02 -05:00
Vlad Shkrabkov
cbfc201afa Remove nil checks for unschedulable pods metrics recorder 2026-02-06 11:03:37 +00:00
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
Kubernetes Prow Robot
38c2026613
Merge pull request #136315 from liyuerich/commentstartauthorization
enable commentstart check on authorization API group
2026-02-06 14:04:32 +05:30
liyuerich
d172d92d6c enable commentstart check on authorization API group
Signed-off-by: liyuerich <yue.li@daocloud.io>
2026-02-06 14:15:29 +08:00
Kubernetes Prow Robot
aba3dc7256
Merge pull request #133759 from BenTheElder/integrationprocs
Reapply "stop overriding max concurrency in CI, let automax procs handle it
2026-02-06 11:06:36 +05:30
carlory
4bc5464553
Remove feature gate HonorPVReclaimPolicy
Signed-off-by: carlory <baofa.fan@daocloud.io>
2026-02-06 13:31:16 +08:00
Taahir Ahmed
c76efb3a14 Pod Certificates: make update 2026-02-05 21:04:54 -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
da9e038713
Merge pull request #133845 from rbiamru/clarify-cpucfsquotaperiod
Clarify CPUCFSQuotaPeriod config vs CustomCPUCFSQuotaPeriod feature gate
2026-02-06 06:22:29 +05:30
Taahir Ahmed
26a78bab27 Pod Certificates: Add StubPKCS10Request; migrate in-tree usages to it 2026-02-05 16:27:54 -08:00
Kubernetes Prow Robot
98629689c1
Merge pull request #136478 from kairosci/fix-audit-log-rotation
fix: Set effectively unlimited MaxSize for audit logs when 0 is specified
2026-02-06 05:26:30 +05:30
Alessio Attilio
b753a2afe5 fix: Set effectively unlimited MaxSize for audit logs when 0 is specified
Signed-off-by: Alessio Attilio <attilio.alessio@protonmail.com>

fix: Update TestAuditLogMaxSizeZero to expect os.File when MaxSize is 0

fix: Update TestAuditValidOptions to handle MaxSize=0 case
2026-02-06 00:06:57 +01:00
Kubernetes Prow Robot
9b1228fe05
Merge pull request #136706 from Jefftree/ulimit
Fix ulimit check in test.sh
2026-02-06 04:16:30 +05:30
Taahir Ahmed
83e774264c Push ClusterTrustBundles v1beta1 deprecation to 1.37
ClusterTrustBundles are ready for promotion to GA, but we are holding
them back so that they go GA alongside PodCertificateRequests.
2026-02-05 14:00:27 -08:00
Kubernetes Prow Robot
ca0c2c50bd
Merge pull request #136284 from lalitc375/dv-shadow
Implement +k8s:alpha and +k8s:beta
2026-02-06 03:16:37 +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
Kubernetes Prow Robot
9f49748159
Merge pull request #135636 from mikecook/DeepEqualWithNilDifferentFromEmpty
fix DeepEqualWithNilDifferentFromEmpty comparison
2026-02-06 01:36:31 +05:30
Richa Banker
7ffcacbf9e Wire informer name through kube-controller-manager shared informers 2026-02-05 11:45:47 -08:00
Richa Banker
9638680933 Wire InformerName through SharedIndexInformer 2026-02-05 11:45:38 -08:00
Richa Banker
1fec293a1d Generate informers with InformerName support 2026-02-05 11:42:54 -08:00
Richa Banker
e90b7a8de9 Update informer-gen to support InformerName for metrics 2026-02-05 11:42:34 -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
Kubernetes Prow Robot
344604831e
Merge pull request #136492 from Ignoramuss/optionalorrequired-policy
api: enable optionalorrequired linter for policy API
2026-02-06 00:44:30 +05:30
Kubernetes Prow Robot
79a7301142
Merge pull request #136770 from pohly/e2e-gce-no-package-installs
cluster gce: remove installation of additional packages
2026-02-05 23:22:31 +05:30
Your Name
27461e05f9 Extract out tags valdiations from all validations 2026-02-05 17:52:07 +00:00
Your Name
90578014e6 Add alpha and beta tests 2026-02-05 17:51:54 +00:00
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
Damien Grisonnet
cb79675508 Fix defer duration metric recording bug
Defer statements were incorrectly recording near-zero duration values (~2
microseconds) instead of actual elapsed time because arguments to deferred
functions are evaluated immediately when the defer statement is executed.

Solution: Added HistogramVec.ObserveSince() API that properly handles
deferred duration measurement, and replaced all problematic patterns.

The new API pattern:
  defer metric.ObserveSince(time.Now(), labels)()

Also deprecated SinceInSeconds() with warnings about incorrect defer usage.

Fixes: Incorrect HTTP request duration metrics in kubelet
2026-02-06 00:29:15 +08:00
Jefftree
c063acdb16 Fix RecordStorageListMetrics comment 2026-02-05 11:20:21 -05: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
ermias19
acb3e1306e keep params declared when schema is untyped 2026-02-05 14:32:37 +01:00
Kubernetes Prow Robot
dc1ec1211e
Merge pull request #136747 from dims/use-k8s-utils-btree
Use btree from k8s.io/utils instead of github.com/google/btree
2026-02-05 16:02:30 +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
Patrick Ohly
46a9dfe361 cluster gce: remove installation of additional packages
Downloading repository metadata and installing these packages can take too
long, causing timeouts in e2e-gce and similar jobs because the 300s timeout for
"Kubernetes is up and running" gets exceeded.

It's unclear whether all of these packages are still needed. They apparently
were in 2020 (acd286d), but maybe not anymore?
2026-02-05 09:43:48 +01:00
Your Name
d477d1ff2b Update validators to support alpha/beta levels 2026-02-05 05:57:49 +00:00
Your Name
0379d82906 Add +k8s:alpha and +k8s:beta tags support 2026-02-05 05:57:42 +00:00
Kubernetes Prow Robot
f1bed8121b
Merge pull request #136753 from tallclair/qos-cleanup
Use quantity.Sign() instead of quantity.Cmp(zeroQuantity)
2026-02-05 11:20:29 +05:30
Richa Banker
db27f4c123 Add identity tracking for queue items 2026-02-04 14:49:47 -08:00
Davanum Srinivas
a328ca88ad
Use btree from k8s.io/utils instead of github.com/google/btree
The google/btree package is deprecated, so switch to the maintained
fork in k8s.io/utils/third_party/forked/golang/btree.

API differences:
- NewG -> New
- BTreeG[T] -> BTree[T]

Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2026-02-04 16:11:16 -05:00
Kubernetes Prow Robot
cb58c79c76
Merge pull request #136750 from BenTheElder/master-go-1.25.7
update core binaries to go 1.25.7 for CVE fixes
2026-02-05 02:04:39 +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
Michael Aspinwall
8099c57042 Add SetForTesting for testing feature gates 2026-02-04 18:45:51 +00:00
Tim Allclair
e8b7c959c9 Use quantity.Sign() instead of quantity.Cmp(zeroQuantity) 2026-02-04 10:38:23 -08:00
Benjamin Elder
f356122aef clarifying adding new test images 2026-02-04 10:23:15 -08:00
Kubernetes Prow Robot
518dcf95c9
Merge pull request #136746 from dims/cleanup/remove-openstorage-pinned-module
Remove openstorage pinned module from unwanted-dependencies
2026-02-04 22:42:40 +05:30
Kubernetes Prow Robot
871ad000b4
Merge pull request #136673 from HirazawaUi/remove-DisableNodeKubeProxyVersion
Lock the DisableNodeKubeProxyVersion feature gate to be enabled by default
2026-02-04 22:42:33 +05:30
Benjamin Elder
94aa043a7b upgrade go to 1.25.7 for core binaries 2026-02-04 08:44:00 -08:00
Ignoramuss
c29724f060 Regenerate OpenAPI spec files for policy API
Run hack/update-openapi-spec.sh to regenerate the static OpenAPI
specification files after adding +optional markers to
PodDisruptionBudgetStatus fields.
2026-02-04 07:50:27 -08:00
Ignoramuss
9e8deefd9a Regenerate OpenAPI spec after adding +optional markers to policy API
Run hack/update-codegen.sh to regenerate OpenAPI specifications after
adding +optional markers to PodDisruptionBudgetStatus fields in both
policy/v1 and policy/v1beta1.
2026-02-04 07:50:27 -08:00
Ignoramuss
d485fe5610 api: enable optionalorrequired linter for policy API
Add missing +optional markers to PodDisruptionBudgetStatus fields in
policy/v1 and policy/v1beta1 and enable the optionalorrequired linter
for the policy API group.
2026-02-04 07:50:27 -08:00
Kubernetes Prow Robot
27dad90a0c
Merge pull request #136730 from dims/update-prometheus-deps
Bump prometheus/common to v0.67.5 and prometheus/procfs to v0.19.2
2026-02-04 20:44:33 +05:30
Kubernetes Prow Robot
5dcd4e8d17
Merge pull request #136539 from lukasmetzner/feat-ccm-route-resync-metric
feat(ccm): introduce metric route_controller_route_sync_total
2026-02-04 19:26:31 +05:30
HirazawaUi
9703ce508f Lock the DisableNodeKubeProxyVersion feature gate to be enabled by default. 2026-02-04 21:45:15 +08:00
Davanum Srinivas
1a25b103f5
Remove openstorage pinned module from unwanted-dependencies
The github.com/libopenstorage/openstorage dependency was removed in
299ec97e6f, so we no longer
need to pin it in hack/unwanted-dependencies.json.

Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2026-02-04 08:34:57 -05:00
Kubernetes Prow Robot
68f58e9c82
Merge pull request #136721 from omerap12/extenal-metrics-agnhost
test:add sample-external-metrics-server to agnhost
2026-02-04 17:41:57 +05:30
Omer Aplatony
a29d099dd4 test:add sample-external-metrics-server to agnhost
Signed-off-by: Omer Aplatony <omerap12@gmail.com>
2026-02-04 06:08:45 +00:00
Kubernetes Prow Robot
0cf6c382a0
Merge pull request #136727 from zylxjtu/images
Add Windows Server 2025 support for agnhost image
2026-02-04 07:56:36 +05:30
Kubernetes Prow Robot
e74193bcbf
Merge pull request #135917 from zylxjtu/registry
Add the fake registry server functionality to agnhost windows
2026-02-04 07:56:28 +05:30
Davanum Srinivas
aa4159c2d2
Bump prometheus/common to v0.67.5 and prometheus/procfs to v0.19.2
prometheus/common v0.66.1 -> v0.67.5:
- Breaking: TextParser must now use NewTextParser() constructor
- Float/gauge histograms support in expfmt
- Fixed panic in tlsRoundTripper when CA file missing
- https://github.com/prometheus/common/compare/v0.66.1...v0.67.5

prometheus/procfs v0.16.1 -> v0.19.2:
- New: process shared memory, netfilter queue, hung_task metrics
- Enhanced meminfo (zswap, hugetlb fields)
- MD raid component devices exposed
- Fixed ZswappedBytes calculation
- https://github.com/prometheus/procfs/compare/v0.16.1...v0.19.2

Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2026-02-03 21:25:04 -05:00
Kubernetes Prow Robot
44ff6085cd
Merge pull request #136726 from dims/fix-containerd-ubuntu-dual-install
Fix install-containerd-ubuntu to skip apt when both versions specified
2026-02-04 06:30:36 +05:30
Kubernetes Prow Robot
cde1fe6a40
Merge pull request #133844 from pohly/invariants
E2E: check log output to detect DATA RACEs
2026-02-04 06:30:27 +05:30
Kubernetes Prow Robot
1861c1a072
Merge pull request #136601 from michaelasp/realFifoGA
Set RealFIFO to GA in 1.36
2026-02-04 05:32:34 +05:30
Kubernetes Prow Robot
c4f5cea36b
Merge pull request #135746 from richabanker/move-flagz
Move apiserver's flagz installation to genericapiserver alongside statusz
2026-02-04 05:32:27 +05:30
Harshal Neelkamal
754c108b96 Make ExternalServiceAccountTokenSigner GA 2026-02-03 23:47:33 +00:00
zylxjtu
34ffbf459a Add Windows Server 2025 support for agnhost image 2026-02-03 22:04:06 +00:00
Davanum Srinivas
67043dca9f
disable unnecessary Ubuntu services during node bootstrap
Mask and stop services that compete with apt operations or are not
needed for Kubernetes nodes:

- apt-news.service/timer: fetches APT news, holds apt lock
- esm-cache.service: Ubuntu Pro cache updates
- snapd.service/socket: Snap package manager
- lxd-installer.socket: LXD container helper
- ubuntu-advantage.service: Ubuntu Pro auto-attach
- unattended-upgrades.service: automatic security updates
- motd-news.timer: MOTD news fetching
- update-notifier-motd.timer: "new Ubuntu version" checks
- update-notifier-download.timer: failed package retry

This addresses CI timeouts where apt-news.service running concurrently
with apt-get update caused the master node to take ~5 minutes for
package index downloads (vs ~5-9 seconds on worker nodes).

Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2026-02-03 16:49:06 -05:00
Davanum Srinivas
f81e280ca9
fix install-containerd-ubuntu to skip apt when both versions specified
when both UBUNTU_INSTALL_CONTAINERD_VERSION and UBUNTU_INSTALL_RUNC_VERSION
are set, skip apt entirely and download binaries directly from GitHub.
this avoids installing apt packages that get immediately overwritten.

Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2026-02-03 15:41:53 -05:00
Kubernetes Prow Robot
bc9c9f79ad
Merge pull request #136477 from everettraven/feature/liveness-probe-fails-on-loopback-cert-expiry
Add loopback certificate expiration health check
2026-02-04 00:58:28 +05:30
Kubernetes Prow Robot
13c031ffc8
Merge pull request #136715 from guettli/set-getProbeTimeoutSeconds-to-3
e2e tests netpol: Set getProbeTimeoutSeconds to 3
2026-02-03 23:58:35 +05:30
Kubernetes Prow Robot
c91e982433
Merge pull request #136489 from Ignoramuss/optionalorrequired-node
api: enable optionalorrequired linter for node API
2026-02-03 23:58:27 +05:30
Your Name
123ad66688 Add ValidationLevel to field errors 2026-02-03 18:19:11 +00:00
Bryce Palmer
1d5082dd27 server/config: methods for adding healthz and livez health checks
Signed-off-by: Bryce Palmer <bpalmer@redhat.com>
2026-02-03 12:31:20 -05:00
Bryce Palmer
79aaabb40f bugfix: add loopback certificate expiration health check
so that configured liveness probes will fail
if the loopback certificate has expired,
forcing a restart.

Signed-off-by: Bryce Palmer <bpalmer@redhat.com>
2026-02-03 12:31:20 -05:00
Kubernetes Prow Robot
677c8ec05f
Merge pull request #136613 from tosi3k/cleanup-preemption
Decouple evaluation and execution in the preemption framework
2026-02-03 22:32:40 +05:30
Kubernetes Prow Robot
d50446099d
Merge pull request #136561 from DockToFuture/patch/NetworkUnavailable
Fix route controller condition update
2026-02-03 22:32:32 +05:30
Kubernetes Prow Robot
11e3294feb
Merge pull request #136685 from pohly/apimachinery-rbac-helper-oidc-data-race
RBAC helper: fix data race
2026-02-03 21:10:33 +05:30
Jordan Liggitt
af36d192c3 RBAC helper: fix data race
The verbs parameter slice might be shared between different rule instances and
gets sorted (= written), so we have to make a copy or (even better) also
de-duplicate as in pkg/apis/rbac/helpers.go.

More specifically, plugin/pkg/auth/authorizer/rbac/bootstrappolicy/policy.go
shares the Read and ReadWrite slices, causing:

    WARNING: DATA RACE
    Read at 0x000008e5e5b0 by goroutine 124:
      slices.insertionSortOrdered[go.shape.string]()
          /home/prow/go/src/k8s.io/kubernetes/_output/local/go/cache/mod/golang.org/toolchain@v0.0.1-go1.25.6.linux-amd64/src/slices/zsortordered.go:14 +0x126
      slices.pdqsortOrdered[go.shape.string]()
          /home/prow/go/src/k8s.io/kubernetes/_output/local/go/cache/mod/golang.org/toolchain@v0.0.1-go1.25.6.linux-amd64/src/slices/zsortordered.go:75 +0x6c4
      slices.Sort[go.shape.[]string,go.shape.string]()
          /home/prow/go/src/k8s.io/kubernetes/_output/local/go/cache/mod/golang.org/toolchain@v0.0.1-go1.25.6.linux-amd64/src/slices/sort.go:18 +0x64
      sort.Strings()
          /home/prow/go/src/k8s.io/kubernetes/_output/local/go/cache/mod/golang.org/toolchain@v0.0.1-go1.25.6.linux-amd64/src/sort/sort.go:181 +0xe
      k8s.io/kubernetes/pkg/apis/rbac/v1.(*PolicyRuleBuilder).Rule()
          /home/prow/go/src/k8s.io/kubernetes/pkg/apis/rbac/v1/helpers.go:98 +0x2c9
      k8s.io/kubernetes/pkg/apis/rbac/v1.(*PolicyRuleBuilder).RuleOrDie()
          /home/prow/go/src/k8s.io/kubernetes/pkg/apis/rbac/v1/helpers.go:65 +0x2f44
      k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac/bootstrappolicy.ClusterRoles()
          /home/prow/go/src/k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/policy.go:404 +0x2c13
    ...
    Previous write at 0x000008e5e5b0 by goroutine 123:
      slices.insertionSortOrdered[go.shape.string]()
          /home/prow/go/src/k8s.io/kubernetes/_output/local/go/cache/mod/golang.org/toolchain@v0.0.1-go1.25.6.linux-amd64/src/slices/zsortordered.go:15 +0x2f9
      slices.pdqsortOrdered[go.shape.string]()
          /home/prow/go/src/k8s.io/kubernetes/_output/local/go/cache/mod/golang.org/toolchain@v0.0.1-go1.25.6.linux-amd64/src/slices/zsortordered.go:75 +0x6c4
      slices.Sort[go.shape.[]string,go.shape.string]()
          /home/prow/go/src/k8s.io/kubernetes/_output/local/go/cache/mod/golang.org/toolchain@v0.0.1-go1.25.6.linux-amd64/src/slices/sort.go:18 +0x64
      sort.Strings()
          /home/prow/go/src/k8s.io/kubernetes/_output/local/go/cache/mod/golang.org/toolchain@v0.0.1-go1.25.6.linux-amd64/src/sort/sort.go:181 +0xe
      k8s.io/kubernetes/pkg/apis/rbac/v1.(*PolicyRuleBuilder).Rule()
          /home/prow/go/src/k8s.io/kubernetes/pkg/apis/rbac/v1/helpers.go:98 +0x2c9
      k8s.io/kubernetes/pkg/apis/rbac/v1.(*PolicyRuleBuilder).RuleOrDie()
          /home/prow/go/src/k8s.io/kubernetes/pkg/apis/rbac/v1/helpers.go:65 +0x2f44
      k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac/bootstrappolicy.ClusterRoles()
          /home/prow/go/src/k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/policy.go:404 +0x2c13

Seen in test/integration/apiserver/oidc.
2026-02-03 15:46:33 +01:00
ermias19
a7ec7efc66 SchemaDeclType resolved. 2026-02-03 14:58:33 +01:00
Kubernetes Prow Robot
b23802b609
Merge pull request #136528 from bart0sh/PR219-sheduler_perf-add-implicit-extended-resources
DRA: add scheduler_perf benchmark for implicit resources
2026-02-03 19:18:32 +05:30
Antoni Zawodny
1eee34760d Decouple evaluation and execution in the preemption framework 2026-02-03 14:30:23 +01:00
Ed Bartosh
bf7aed2039 DRA: add scheduler_perf benchmark for implicit resources
Add ImplicitExtendedResource_25Classes performance configuration that
measures scheduling performance of the implicit extended resources.
2026-02-03 14:57:21 +02:00
Thomas Güttler
1c2e529295 e2e tests netpol: Set getProbeTimeoutSeconds to 3
Before tests sometimes failed randomly. For example:

> [It] [sig-network] Netpol NetworkPolicy between server and client should allow ingress access from updated namespace [Feature:NetworkPolicy]

Related: https://kubernetes.slack.com/archives/C09QYUH5W/p1770111316158039

Signed-off-by: Thomas Güttler <thomas.guettler@syself.com>

Update test/e2e/network/netpol/kubemanager.go

Co-authored-by: Antonio Ojea <antonio.ojea.garcia@gmail.com>
Signed-off-by: Thomas Güttler <thomas.guettler@syself.com>
2026-02-03 13:34:45 +01:00
Kubernetes Prow Robot
bfafa32d90
Merge pull request #136500 from atombrella/feature/modernize_checks_hints
linting: Enabling `modernize` rules as hints
2026-02-03 15:10:29 +05:30
Kubernetes Prow Robot
98c9fb858b
Merge pull request #136088 from mortent/PartitionableDevicesIntegrationTests
DRA: Add integration tests for Partitionable Devices
2026-02-03 14:16:36 +05:30
Kubernetes Prow Robot
e2ce7dfbce
Merge pull request #135788 from BenTheElder/etcd-tag
remove build tags from e2e internal unit test with etcd
2026-02-03 14:16:28 +05:30
Kubernetes Prow Robot
5655a0c19d
Merge pull request #136603 from 249043822/br003
Fix:NewUnmounter always returns error while deleting pod after node reboot
2026-02-03 11:12:26 +05:30
Jefftree
09333f1a97 Fix ulimit check 2026-02-02 21:33:05 -05:00
Your Name
92de205642 Extract out tags validations from all validations 2026-02-02 21:59:38 +00:00
Your Name
938ef0f7a7 rename stability Level to TagStabilityLevel 2026-02-02 21:59:30 +00:00
Kubernetes Prow Robot
b12d6a7f6b
Merge pull request #136476 from rohitkbc/master
Test: Add unit test for ParsePercentage
2026-02-03 03:14:28 +05:30
Kubernetes Prow Robot
f7ca45a969
Merge pull request #136530 from saschagrunert/fix-image-volume-symlink-test
Fix image volume subPath test symlink issue
2026-02-03 02:18:34 +05:30
Kubernetes Prow Robot
2ad7178741
Merge pull request #136522 from hoteye/kubelet-contextual-core
kubelet: migrate core sync path to contextual logging
2026-02-03 02:18:26 +05:30
Benjamin Elder
2d8a26a79c remove build tags from test e2e internal unittests 2026-02-02 11:35:53 -08:00
zylxjtu
979f73bf7d Add the fake registry server functionality to agnhost windows
there are recent changes in k8s e2e test for image pull test to switch
to use fake registry server,
https://github.com/kubernetes/kubernetes/pull/133272
https://github.com/kubernetes/kubernetes/pull/134453

Unfortunately, this does not take into account of windows node. so the
corresonding test on windows node strat to break

The try to address this issue, by
(1): update the agnhost windows image to include the fake registery server
functionality as well

(2): update the (common) pull image test to include windows node, will require
(a): deploy the agnhost faker register server as a HPC pod
(b): update the comanndline/options for the windows container specific
2026-02-02 19:00:29 +00:00
Morten Torkildsen
14c6d99b8e DRA: Add integration tests for Partitionable Devices 2026-02-02 18:21:23 +00:00
Mads Jensen
8f9038e7b2 Enabling many modernize linter rules as hints.
Follow-up to #136292
2026-02-02 18:01:26 +01:00
Kubernetes Prow Robot
a841d11420
Merge pull request #136619 from pohly/dra-allocator-promotion
DRA allocator: promote experimental -> incubating -> stable
2026-02-02 22:22:29 +05:30
Patrick Ohly
61a08b94dc ktesting: remove deprecated and unused functions
They were replaced with methods and after their usage got updated can now also
be removed.
2026-02-02 16:35:11 +01:00
Kubernetes Prow Robot
eba75de156
Merge pull request #136341 from Karthik-K-N/remove-deprecated-methods
Remove usage of deprecated functions from ktesting package
2026-02-02 19:28:31 +05:30
Kubernetes Prow Robot
cabdd596c2
Merge pull request #136683 from pohly/dra-integration-timeouts
DRA integration: increase timeout, II
2026-02-02 14:30:28 +05:30
Patrick Ohly
47c3b10e8d DRA integration: increase timeout, II
When running with race detection enabled several tests have suffered from
timeouts recently, with no obvious commit which could be blamed for this.
Let's use a common constant and make it larger.
2026-02-02 09:04:57 +01:00
张可10140699
bd7c78107f Fix:NewUnmounter always returns error while deleting pod after node reboot 2026-02-02 10:55:01 +08:00
Kubernetes Prow Robot
8c9c67c000
Merge pull request #136667 from palnabarun/update-go-12412-1256
Update publishing rules to reflect 1.25.6 and 1.24.12
2026-02-01 02:24:26 +05:30
Nabarun Pal
d85557c867 Update publishing rules to reflect 1.25.6 and 1.24.12
Signed-off-by: Nabarun Pal <pal.nabarun95@gmail.com>
2026-02-01 00:19:03 +05:30
Kubernetes Prow Robot
80833a543b
Merge pull request #136654 from dims/fix-local-e2e-cni-ptp
hack: switch local-up-cluster to ptp CNI for reliable DIND networking
2026-02-01 00:18:24 +05:30
Kubernetes Prow Robot
ff38eebb98
Merge pull request #136661 from atombrella/feature/fix_test_TestContainerMapCloneUnshared
Fix typo in `TestContainerMapCloneUnshared`
2026-01-31 17:00:24 +05:30
xigang
0fe227edfa nodelifecycle: fix processing deleted pod events, which are currently missed
Signed-off-by: xigang <wangxigang2014@gmail.com>
2026-01-31 10:49:15 +08:00
Ignoramuss
50eb238457 api: enable optionalorrequired linter for node API
Add missing +required marker to RuntimeClass.Spec in node/v1alpha1 and
enable the optionalorrequired linter for the node API group.
2026-01-30 17:24:42 -08:00
Kubernetes Prow Robot
07a697046f
Merge pull request #136638 from Jefftree/kcm-context
Add ctx to endpointslicemirroring controller
2026-01-31 05:30:24 +05:30
Davanum Srinivas
cfcb10ef8a
hack: switch local-up-cluster to ptp CNI for reliable DIND networking
The ci-kubernetes-local-e2e job has been flaky (~40-45% success rate)
with intermittent DNS/service connectivity failures. The root cause is
that bridge CNI requires br_netfilter and bridge-nf-call-iptables
kernel settings, which don't work reliably in docker-in-docker.

This switches to ptp (point-to-point) CNI, which creates direct veth
pairs between pods and host namespace. No bridge means no br_netfilter
dependency. This is the same approach KIND uses and it works reliably.

Changes:
- Replace bridge CNI with ptp CNI plugin
- Configure kernel network parameters for DIND (route_localnet,
  arp_ignore, ip_forward) required for ptp and iptables-based kube-proxy
- Remove CoreDNS pod delete/restart workaround from 1168b11875 that was
  masking the underlying networking issues (no longer needed)
- Add CoreDNS log capture during cleanup for debugging DNS issues

Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2026-01-30 16:25:05 -05:00
Kubernetes Prow Robot
de9ac07430
Merge pull request #128606 from pohly/ktesting-interrupt
ktesting: abort entire test suite on SIGINT + /dev/tty
2026-01-31 02:10:24 +05:30
Richa Banker
4e47bea7b0 Move flagz installation together with statusz's 2026-01-30 11:25:19 -08:00
Kubernetes Prow Robot
c04907b025
Merge pull request #135790 from 0x5457/fix/attach-reattach-message-missing-namespace
Fix missing namespace flag in attach reattach message
2026-01-30 23:36:31 +05:30
Kubernetes Prow Robot
49fe2ecce1
Merge pull request #135719 from Argh4k/waiting-pod-integration-test
Put pods preempted in WaitOnPermit to backoff queue
2026-01-30 23:36:24 +05:30
Mads Jensen
2a0916850a Fix typo in an if in TestContainerMapCloneUnshared 2026-01-30 19:01:50 +01:00
Kubernetes Prow Robot
22e1ea92cd
Merge pull request #136643 from ardaguclu/kubectl-kuberc-beta
Promote kubectl kuberc commands to beta
2026-01-30 22:20:32 +05:30
Kubernetes Prow Robot
c9df8cdf21
Merge pull request #135942 from aman4433/fix-apf-timeout-header-flake
test: skip APF header assertions after request timeout
2026-01-30 22:20:23 +05:30
Kubernetes Prow Robot
f4938574d4
Merge pull request #134830 from MatteoFari/matteofari/enable-jsontags-linter
enabled jsontags for kal and added exceptions because of non modifiable :Port
2026-01-30 17:55:42 +05:30
Patrick Ohly
36bcd43fca ktesting: abort entire test suite on SIGINT
When aborting an integration test with CTRL-C while it runs,
the current test fails and etcd exits. But additional tests were still being
started and the failed slowly because they couldn't connect to etcd.

It's better to fail additional tests in ktesting.Init when the test run has
already been interrupted.

While at it, also make it a bit more obvious that testing was interrupted by
logging it and update one comment about this and clean up the naming of
contexts in the code.

Example:

    $ go test -v ./test/integration/quota
    ...
    I1106 11:42:48.857162  147325 etcd.go:416] "Not using watch cache" resource="events.events.k8s.io"
    I1106 11:42:48.857204  147325 handler.go:286] Adding GroupVersion events.k8s.io v1 to ResourceManager
    W1106 11:42:48.857209  147325 genericapiserver.go:765] Skipping API events.k8s.io/v1beta1 because it has no resources.
    ^C

    INFO: canceling test context: received interrupt signal

    {"level":"warn","ts":"2024-11-06T11:42:48.984676+0100","caller":"embed/serve.go:160","msg":"stopping insecure grpc server due to error","error":"accept tcp 127.0.0.1:44177: use of closed network connection"}
    ...
    I1106 11:42:50.042430  147325 handler.go:142] kube-apiserver: GET "/apis/rbac.authorization.k8s.io/v1/clusterroles" satisfied by gorestful with webservice /apis/rbac.authorization.k8s.io/v1
        test_server.go:241: timed out waiting for the condition
    --- FAIL: TestQuota (11.45s)
    === RUN   TestQuotaLimitedResourceDenial
        quota_test.go:292: testing has been interrupted: received interrupt signal
    --- FAIL: TestQuotaLimitedResourceDenial (0.00s)
    === RUN   TestQuotaLimitService
        quota_test.go:418: testing has been interrupted: received interrupt signal
    --- FAIL: TestQuotaLimitService (0.00s)
    FAIL
2026-01-30 12:35:57 +01:00
Patrick Ohly
8946e86e3a ktesting: properly clean up
When cleaning up the progress channel properly (stop signal delivery, closing
the channel), the loop dumping progress reports no longer needs to check for
the separate shutdown context. Instead, it can distinguish between "signal
received" and "channel closed".

The signal context was getting cleanup by canceling it, but a channel is better
because it avoids the slightly misleading "received interrupt signal"
cancellation when the test was only shutting down.
2026-01-30 12:35:57 +01:00
Patrick Ohly
d0141640fe ktesting: print info and progress to /dev/tty
The "received interrupt signal" is useful also when running with "go test"
without -v because it shows that the shutdown has started.

But more important is that a progress report gets shown because that feature is
useful in particular when "go test" produces no output while it runs.
2026-01-30 12:35:57 +01:00
Kubernetes Prow Robot
3a477f2332
Merge pull request #135458 from Argh4k/master
Pass threshold to collected metrics in scheduler perf.
2026-01-30 15:11:44 +05:30
Maciej Wyrzuc
f1f3a08ba7 Put pods preempted in WaitOnPermit in backoff queue 2026-01-30 09:38:17 +00:00
Matteo Fari
b18b7aa966 modified exceptions to match the new KAL 2026-01-30 10:07:13 +01:00
Matteo Fari
2182441bdd enabled jsontags for kal and added exceptions
enabled jsontags for kal and added exceptions
2026-01-30 09:58:57 +01:00
Maciej Wyrzuc
264f403ffb Pass threshold to collected metrics in scheduler perf.
With this change, the metrics for which the threshold is defined, will have a "Threshold" data point that should be visible in perf dash.
2026-01-30 08:48:52 +00:00
Aman Shrivastava
8d0efb4805 test: skip APF header assertions after request timeout 2026-01-30 13:58:20 +05:30
Arda Güçlü
82826975c9 Add e2e tests for kubectl kuberc commands 2026-01-30 11:15:12 +03:00
Kubernetes Prow Robot
a7b940cde2
Merge pull request #131068 from soltysh/sample_controller_scheme
Switch sample-controller to use NewClientset supporting applyconfiguration rather than deprecated NewSimpleClientset
2026-01-30 12:09:42 +05:30
Arda Güçlü
4e47d34a0d Promote kubectl kuberc commands to beta 2026-01-30 09:23:14 +03:00
Kubernetes Prow Robot
702e2a3800
Merge pull request #136622 from guettli/e2e-better-msg-when-no-address-found
e2e: Better error message, when no InternalIP was found.
2026-01-30 08:01:48 +05:30
Jefftree
063caad801 Fix unit tests 2026-01-29 17:55:08 -05:00
Jefftree
1e67dbfefb Add ctx to endpointslicemirroring controller 2026-01-29 17:07:14 -05:00
Kubernetes Prow Robot
c8e45a3331
Merge pull request #136620 from yongruilin/master_vg-fix-fuzz
fix DeclarativeValidation fuzzing test panic and refactor subresource handlin
2026-01-30 03:08:04 +05:30
Kubernetes Prow Robot
4caf96e199
Merge pull request #136598 from dgrisonnet/update-go-systemd
Bump go-systemd to v22.7.0
2026-01-30 03:07:56 +05:30
Kubernetes Prow Robot
3760cdc64a
Merge pull request #136482 from aaron-prindle/dv-feature-gate-ga
Graduate DeclarativeValidation feature gate to GA
2026-01-30 03:07:48 +05:30
Kubernetes Prow Robot
cc0fdc1fe2
Merge pull request #136509 from pohly/client-go-informer-deadlock
client-go informers: fix potential deadlock
2026-01-30 01:22:14 +05:30
Kubernetes Prow Robot
8f4c197169
Merge pull request #136424 from JoelSpeed/podgroup-union
Mark PodGroupPolicy up with openapi union member tags
2026-01-30 01:22:06 +05:30
Kubernetes Prow Robot
5178fee46e
Merge pull request #135638 from cartermckinnon/enforce-compressible-doc
doc(kubelet): enforceNodeAllocatable compressible options
2026-01-30 01:21:57 +05:30
Kubernetes Prow Robot
9b8aa0b585
Merge pull request #134867 from ShaanveerS/enable-kal-nodurations
Enable nodurations rule for Kube API Linter
2026-01-30 01:21:49 +05:30
Kubernetes Prow Robot
4b5e40aacd
Merge pull request #136190 from pohly/logcheck-update
test dependencies: logtools v0.10.0
2026-01-29 23:31:58 +05:30
Kubernetes Prow Robot
f1d3ab9cf3
Merge pull request #134925 from ShaanveerS/shaan/imagepolicy-on-joel
feat(kal): enforce either optional or required tag on imagepolicy API group
2026-01-29 23:31:51 +05:30
Kubernetes Prow Robot
af6acb8016
Merge pull request #136624 from pohly/dra-integration-timeouts
DRA integration: increase timeout
2026-01-29 22:39:58 +05:30
Kubernetes Prow Robot
92e82427f5
Merge pull request #136623 from macsko/scheduling_queue_test_cleanup
Cleanup scheduling queue tests to use cmp.Diff instead of direct pod comparisons
2026-01-29 22:39:50 +05:30
Rohit Chaudhari
cbf8fab05a
Clean up blank lines in container_manager_test.go
Removed unnecessary blank lines in the test file.
2026-01-29 21:40:13 +05:30
Kubernetes Prow Robot
250e18904e
Merge pull request #136050 from ShaanveerS/fix-selinuxwarning-verbosity
fix(controller/volume): convert V().Error() to V().Info()
2026-01-29 21:11:58 +05:30
Kubernetes Prow Robot
8d05750d56
Merge pull request #135262 from cmuuss/auditrulegroupwildcards
added wildcard * for GroupResources to allow filtering of noisy subgr…
2026-01-29 21:11:51 +05:30
Maciej Szulik
3e6de91064
Run make update
Signed-off-by: Maciej Szulik <soltysh@gmail.com>
2026-01-29 16:06:16 +01:00
Maciej Szulik
afaa8c19fe
Update update-codegen.sh with sample-controller exception for openapi
Signed-off-by: Maciej Szulik <soltysh@gmail.com>
2026-01-29 16:06:16 +01:00
Maciej Szulik
9c0a9cb538
Switch to using NewClientset rather than deprecated NewSimpleClientset
Signed-off-by: Maciej Szulik <soltysh@gmail.com>
2026-01-29 16:06:16 +01:00
Maciej Szulik
c45c6f1842
Generate applyconfigurations and openapi for sample-controller
Signed-off-by: Maciej Szulik <soltysh@gmail.com>
2026-01-29 16:06:12 +01:00
Maciej Szulik
1d23ecbdde
Copy models-schema generator to sample-controller
Signed-off-by: Maciej Szulik <soltysh@gmail.com>
2026-01-29 16:03:31 +01:00
Maciej Szulik
7eb548f9c3
Drop unused boilerplate file
Signed-off-by: Maciej Szulik <soltysh@gmail.com>
2026-01-29 16:03:31 +01:00
Omer Aplatony
10f1b28712
test(hpa): add sample-external-metrics-server (#136251)
Signed-off-by: Omer Aplatony <omerap12@gmail.com>
2026-01-29 19:49:49 +05:30
Rohit Chaudhari
cbf051361f Fix formatting issues in container_manager_test.go 2026-01-29 19:42:53 +05:30
Patrick Ohly
b96dd6d2f8 DRA integration: increase timeout
When running with race detection enabled several tests have suffered from
timeouts recently, with no obvious commit which could be blamed for this.
Let's use a common constant and make it larger.
2026-01-29 14:13:26 +01:00
Maciej Skoczeń
01540ed1d5 Cleanup scheduling queue tests to use cmp.Diff instead of direct pod comparisons 2026-01-29 13:08:00 +00:00
Thomas Güttler
9072d47b75 e2e: Better error message, when no InternalIP was found.
Signed-off-by: Thomas Güttler <thomas.guettler@syself.com>
2026-01-29 13:46:33 +01:00
Kubernetes Prow Robot
c99976db2a
Merge pull request #136087 from my-git9/cod
Update CoreDNS to v1.14.1
2026-01-29 17:27:51 +05:30
Patrick Ohly
858d26fd45 DRA structured: remove obsolete, confusing comment 2026-01-29 12:53:47 +01:00
Patrick Ohly
5c19239290 DRA allocator: promote experimental -> incubating -> stable
The previous incubating becomes stable, experimental the new incubating. Now
experimental and incubating are identical until we merge more experimental
changes again.

Specifically, these commands where used:

    rm -rf stable
    mv incubating stable
    mv stable/allocator_incubating.go stable/allocator_stable.go
    mv stable/pools_incubating.go stable/pools_stable.go
    sed -i -e 's/package incubating/package stable/' stable/*.go
    cp -a experimental incubating
    mv incubating/allocator_experimental.go incubating/allocator_incubating.go
    mv incubating/pools_experimental.go incubating/pools_incubating.go
    sed -i -e 's/package experimental/package incubating/' incubating/*.go

Some other packages then need to be adapted, in particular the
TestAllocatorSelection test.
2026-01-29 12:52:57 +01:00
yongruilin
fbefdc816f refactor subresource handling in versioned validation fuzz tests
Refactor TestVersionedValidationByFuzzing to use a declarative map,
subresourceOnly, for resources that must be validated via a specific
subresource path (like autoscaling/Scale).

GVKs not in this map default to root-level validation (""), which is
sufficient for resources that share validation logic between their root
and subresources. This replaces the previous ad-hoc special-casing
with a cleaner, extensible mapping.
2026-01-29 10:30:12 +00:00
yongruilin
64140b8385 fuzz internal objects in versioned validation tests
Fuzzing must be performed on the internal version of objects because
custom fuzzing functions are typically registered for internal types.
This ensures that all fields are properly initialized with random values
before being converted to various API versions for validation.

Move fuzzing logic into VerifyVersionedValidationEquivalence via a new
WithFuzzer option. This also fixes a panic that occurred when attempting
to fuzz types without an internal version (e.g., APIGroupList) by adding
a nil check after internal conversion.
2026-01-29 10:29:55 +00:00
Karthik Bhat
e44e06c53f Remove usage of deprecated functions from ktesting package 2026-01-29 14:51:59 +05:30
Christian Muuß
ea3bfd9ea0 feat: Allow wildcard '*' for API groups in audit policy rules 2026-01-29 08:17:10 +00:00
xin.li
e1cbecc9d2 update vendor
Signed-off-by: xin.li <xin.li@daocloud.io>
2026-01-29 14:43:06 +08:00
xin.li
386c4df2c2 bump corefile-migration
Signed-off-by: xin.li <xin.li@daocloud.io>
2026-01-29 14:08:45 +08:00
xin.li
1713d43d13 update coredns to 1.14.1
Signed-off-by: xin.li <xin.li@daocloud.io>
2026-01-29 13:56:47 +08:00
xin.li
4823e1fade Update CoreDNS to v1.14.0
Signed-off-by: xin.li <xin.li@daocloud.io>
2026-01-29 13:56:47 +08:00
Aaron Prindle
0cab277183 Graduate DeclarativeValidation feature gate to GA
This change graduates the 'DeclarativeValidation' feature gate to GA in v1.36.
The feature gate is now locked to 'true' by default.

Changes:
- Updated 'DeclarativeValidation' feature gate to GA in 'pkg/features/kube_features.go' and 'staging/src/k8s.io/apiserver/pkg/features/kube_features.go'.
- Updated feature gate documentation and versioned lists via 'hack/update-featuregates.sh'.
- Added feature gate emulation versioning to tests that explicitly disable 'DeclarativeValidation' to prevent panics now that the gate is locked to default.
2026-01-29 05:38:20 +00:00
Kubernetes Prow Robot
ebc5660fa5
Merge pull request #136583 from michaelasp/watchListRVEnforcement
Ensure resource version callbacks aren't called preemptively in reflector
2026-01-29 06:53:48 +05:30
Michael Aspinwall
7107e2f350 Set RealFIFO to GA in 1.36 2026-01-28 23:06:23 +00:00
Kubernetes Prow Robot
5245587ff7
Merge pull request #136596 from aramase/aramase/f/kep_5538_stable_impl
Mark CSIServiceAccountTokenSecrets feature gate as GA
2026-01-29 04:01:48 +05:30
Michael Aspinwall
35d29e4772 Add enforcement for rv update in watchlist to preserve the rv ordering invariant 2026-01-28 21:54:41 +00:00
Kubernetes Prow Robot
0d4d8a0cb2
Merge pull request #136575 from enj/enj/i/agg_dis_npe
Prevent nil pointer exception in aggregated discovery
2026-01-29 02:13:52 +05:30
Anish Ramasekar
d6d215821a
Mark CSIServiceAccountTokenSecrets feature gate as GA
Signed-off-by: Anish Ramasekar <anish.ramasekar@gmail.com>
2026-01-28 14:41:34 -06:00
Damien Grisonnet
e454bf04bb Bump go-systemd to v22.7.0
Signed-off-by: Damien Grisonnet <dgrisonn@redhat.com>
2026-01-28 20:57:35 +01:00
Kubernetes Prow Robot
6dfae1df46
Merge pull request #136551 from kannon92/fix-pod-replacement-policy-review-nits
Use Log instead of Logf for job integration tests
2026-01-29 00:27:50 +05:30
Monis Khan
e7de8ba856
Prevent nil pointer exception in aggregated discovery
Signed-off-by: Monis Khan <mok@microsoft.com>
2026-01-28 13:55:37 -05:00
pranshul gupta
8afc18ddcc Refactor Declarative validation test file for role and clusterrole to be more clearner 2026-01-28 22:57:05 +05:30
Kubernetes Prow Robot
a57b4befdf
Merge pull request #136587 from saschagrunert/test-getimageref-deduplication
kubelet: add test for GetImageRef content-based deduplication
2026-01-28 22:18:21 +05:30
Kubernetes Prow Robot
0ed3bf2a9d
Merge pull request #136576 from pohly/log-client-go-apimachinery-network-util
apimachinery: contextual logging in network util code
2026-01-28 22:18:13 +05:30
Kubernetes Prow Robot
52ed30246d
Merge pull request #136537 from soltysh/missing_schemas
Generate applyconfigurations for kube-aggregator and sample-apiserver
2026-01-28 22:18:05 +05:30
Kubernetes Prow Robot
03c362c9b1
Merge pull request #136534 from dmaizel/fix/nil-map-panic-maxResourceList
fix: handle nil ResourceList in max() to prevent panic
2026-01-28 22:17:57 +05:30
Kubernetes Prow Robot
4ffc49fb3e
Merge pull request #136226 from HirazawaUi/fix-kubelet-race-3
Fix data race in kubelet pod allocated resources
2026-01-28 22:17:49 +05:30
Kubernetes Prow Robot
0d1b02490b
Merge pull request #136590 from mkumatag/fix_version
Fix the semver for the nginx image
2026-01-28 20:40:03 +05:30
Kubernetes Prow Robot
a41a5c35d3
Merge pull request #135106 from bkhadars/enable-commentstart1
enable commentstart check on admissionregistration API group
2026-01-28 20:39:53 +05:30
Daniel Maizel
7d5b4710bd fix: handle nil ResourceList in max() to prevent panic 2026-01-28 16:07:25 +02:00
Kubernetes Prow Robot
7002ccc892
Merge pull request #136206 from HirazawaUi/fix-kubelet-race-2
Fix data race in kubelet container manager
2026-01-28 19:29:58 +05:30
Kubernetes Prow Robot
664efa8627
Merge pull request #136205 from HirazawaUi/fix-kubelet-race-1
Fix data race in kubelet status manager
2026-01-28 19:29:49 +05:30
Kubernetes Prow Robot
1c9da264ab
Merge pull request #129332 from pohly/log-client-go-clientcmd
client-go command: structured, contextual logging
2026-01-28 18:11:49 +05:30
kfess
3a0744ce6d
Add missing tests for kubectl describe commands (#136461)
* Add missing tests for kubectl describe commands

* fix linter error
2026-01-28 16:37:52 +05:30
Kubernetes Prow Robot
091d147008
Merge pull request #136557 from pohly/ktesting-signal-cleanup
ktesting: progress reporting fix
2026-01-28 15:32:00 +05:30
Kubernetes Prow Robot
9a1f9cbab6
Merge pull request #136541 from bart0sh/PR220-kubelet-dra-improve-contextual-logging
Kubelet: DRA: improve contextual logging
2026-01-28 15:31:53 +05:30
Manjunath Kumatagi
b2049e9a91
Fix the semver for the nginx image
Signed-off-by: Manjunath Kumatagi <mkumatag@in.ibm.com>
2026-01-28 15:28:12 +05:30
Sascha Grunert
d088372d98
Add test for GetImageRef content-based deduplication
Adds TestGetImageRefReturnsImageIdNotRepoDigest to verify that GetImageRef
returns Image.Id instead of RepoDigests. This ensures content-based
deduplication where the same image pulled from different registries is
treated as identical content rather than separate images.

The test prevents regression of the issue fixed in the revert of cb011623c8
where using RepoDigests[0] caused location-dependent identity
(registry.io/image@sha256:...) instead of content-based identity
(sha256:...), breaking deduplication and creating separate pull records
for identical image content.

Signed-off-by: Sascha Grunert <sgrunert@redhat.com>
2026-01-28 09:24:10 +01:00
Kubernetes Prow Robot
f866eed44a
Merge pull request #134394 from toredash/dns-1.26.5
kube-dns bump to v1.26.7
2026-01-28 09:21:48 +05:30
hoteye
f684d90648 kubelet: migrate core sync path to contextual logging 2026-01-28 09:07:31 +08:00
Kubernetes Prow Robot
b90909e432
Merge pull request #136582 from yongruilin/master_kubeopenapi-format
Bump k8s.io/kube-openapi to latest and enable numeric format validation
2026-01-28 05:37:48 +05:30
Kubernetes Prow Robot
81e8d2e54f
Merge pull request #136571 from liggitt/kube-proxy-ds
Remove kube proxy daemonset from cluster
2026-01-28 03:27:56 +05:30
Kubernetes Prow Robot
8ccb55ffef
Merge pull request #136040 from petern48/error-level-logs
fix(controller/resourcequota, controller/garbagecollector): Change V().Error() to V().Info()
2026-01-28 03:27:48 +05:30
yongruilin
45b64fb145 Add ratcheting tests for numeric format validation 2026-01-27 21:49:24 +00:00
yongruilin
4a457d97f4 Add tests for invalid numeric formats 2026-01-27 21:48:25 +00:00
yongruilin
e4f87f1cd7 Add tests for numeric format validation 2026-01-27 21:48:18 +00:00
yongruilin
f050da1dec Update anyOf/allOf tests for numeric validation 2026-01-27 21:48:05 +00:00
yongruilin
eac0206446 Stop stripping valid formats for number/integer types 2026-01-27 21:45:41 +00:00
yongruilin
65b579a036 Bump k8s.io/kube-openapi to latest 2026-01-27 21:39:39 +00:00
Kubernetes Prow Robot
7f7deb8c7f
Merge pull request #136578 from yongruilin/grandtour-codegen-doc
docs: Add comprehensive overview of Kubernetes Code Generator
2026-01-28 01:41:49 +05:30
yongruilin
ee926bc113 docs: Add comprehensive overview of Kubernetes Code Generator 2026-01-27 19:17:16 +00:00
Kubernetes Prow Robot
f2b4e9f9c5
Merge pull request #136502 from tzneal/fix-endpointslice-churn-for-headless-services
fix: normalize nil ports to empty slice in NewPortMapKey
2026-01-28 00:05:49 +05:30
Patrick Ohly
1620b27076 client-go remotecommand: structured, contextual logging
The API for the package already had a context, so all that was missing was to
extract and use the logger from that.
2026-01-27 18:36:25 +01:00
Patrick Ohly
8701f481ff client-go clientcmd: exclude from structured, contextual logging
The only log output is for error messages which should normally not occur. It's
also likely that users expect to see exactly those messages, so it's better to
not touch them.
2026-01-27 18:36:25 +01:00
Patrick Ohly
77b02b7ad4 apimachinery: contextual logging in network util code 2026-01-27 18:26:30 +01:00
Kubernetes Prow Robot
99a2c5c634
Merge pull request #136574 from pohly/revert-129344-log-client-go-apimachinery-network-util
Revert "apimachinery: contextual logging in network util code"
2026-01-27 22:47:50 +05:30
Patrick Ohly
9d65b9be20
Revert "apimachinery: contextual logging in network util code" 2026-01-27 17:21:02 +01:00
Kubernetes Prow Robot
4d212f7f47
Merge pull request #136558 from saschagrunert/revert-135369-getimageref-logic
Revert GetImageRef to use Image.Id instead of RepoDigests
2026-01-27 21:44:01 +05:30
Kubernetes Prow Robot
3dd404d7cd
Merge pull request #136544 from aramase/aramase/c/rm_structured_authz_fg
Drop StructuredAuthorizationConfiguration feature gate
2026-01-27 21:43:52 +05:30
Ed Bartosh
3b4e56e09c kubelet: DRA: plugin: set logging prefix 2026-01-27 18:09:16 +02:00
Ed Bartosh
1c913f6e9c kubelet: DRA: manager: set logging prefix 2026-01-27 18:09:11 +02:00
Jordan Liggitt
ae6f08eefd
Remove kube proxy daemonset from cluster 2026-01-27 10:49:34 -05:00
Todd Neal
4ba4211660 fix: normalize nil ports to empty slice in NewPortMapKey
Prevents EndpointSlice churn for headless services where
getEndpointPorts returns [] but existing slices from the API
have nil ports, causing different hash values.
2026-01-27 15:33:51 +00:00
Kubernetes Prow Robot
be658b44f3
Merge pull request #136441 from kannon92/remove-alpha-api-dra
remove alpha comments for GA or beta resource fields
2026-01-27 20:16:00 +05:30
Kubernetes Prow Robot
ab78ad32d1
Merge pull request #136194 from bart0sh/PR216-add-signode-approvers-to-dra-owners
add SIG-Node approvers to DRA dirs
2026-01-27 20:15:52 +05:30
Patrick Ohly
2ec0305d72 client-go informers: replace time.Sleep with callback
While time.Sleep is what the test needs, maybe an arbitrary hook invocation is
more acceptable in the production code because it is more general.
2026-01-27 14:48:32 +01:00
Kubernetes Prow Robot
1087ff613a
Merge pull request #136454 from ania-borowiec/log_illegal_state
Log error when UpdatePod finds no existing PodGroup for the pod
2026-01-27 18:01:50 +05:30
docktofuture
57315c1974 call fake.NewClientset instead of fake.NewSimpleClientset 2026-01-27 13:00:47 +01:00
Ania Borowiec
48c4605408
Add logging error when UpdatePod finds no existing PodGroup with the pod to update 2026-01-27 11:42:03 +00:00
Kubernetes Prow Robot
7cf00c96ac
Merge pull request #136554 from dims/fix-kubeproxy-ipv6-conntrack
test: Fix KubeProxy CLOSE_WAIT test for IPv6 environments (and where /proc/net/nf_conntrack may be missing)
2026-01-27 16:55:49 +05:30
Davanum Srinivas
06bd2191ca
Apparently some EC2 images we use do not have /proc/net/nf_conntrack
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2026-01-27 10:29:10 +00:00
Kubernetes Prow Robot
5c9977b892
Merge pull request #136202 from RomanBednar/fix-csi-plugin-backoff
csi: raise kubelet CSI init backoff to cover ~140s DNS delays
2026-01-27 15:47:48 +05:30
docktofuture
eedbe162d1 Fix route controller condition update when external CNI sets NetworkUnavailable 2026-01-27 11:15:03 +01:00
lukasmetzner
f3de090c60 fix: introduce metric as stage alpha 2026-01-27 11:07:50 +01:00
lukasmetzner
a538402126 fix: update golden list of metrics 2026-01-27 11:07:50 +01:00
lukasmetzner
61cfa3fd14 feat: add boilerplate header 2026-01-27 11:07:50 +01:00
Davanum Srinivas
65c981be7a
test: cleanup from review
- Use netutils.IsIPv6(ip) instead of manual nil/To4 check
- Remove unnecessary ip.To16() call since IPv6 is already 16 bytes
- Remove ipFamily from grep pattern since IP format ensures correctness

Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2026-01-27 09:31:04 +00:00
Patrick Ohly
65693b2d2a ktesting: fix setting up progress reporting
The recent change to support importing ktesting into an E2E suite
without progress reporting was flawed:
- If a Go unit test had a deadline (the default when invoked
  by `go test`!), the early return skipped initializing progress
  reporting.
- When it didn't, for example when invoking a test binary directly
  under stress, a test created goroutines which were kept running,
  which broke leak checking in e.g. an integration tests TestMain.

The revised approach uses reference counting: as long as some unit test is
running, the progress reporting with the required goroutines are active.
When the last one ends, they get cleaned up, which keeps the goleak
checker happy.
2026-01-27 10:13:43 +01:00
Sascha Grunert
6b6c596a60
Revert GetImageRef to use Image.Id instead of RepoDigests
Partially reverts cb011623c8 from #135369.

Using RepoDigests[0] as image identity causes credential verification
issues because it makes identity location-dependent (registry.io/image@sha256:...)
instead of content-based (sha256:...). This defeats deduplication and
creates separate pull records for identical image content from different
registries.

ImagePulledRecord already handles per-registry credentials via its
two-level design: ImageRef identifies content, CredentialMapping tracks
registry-specific credentials.

Related: #136498, #136549
Signed-off-by: Sascha Grunert <sgrunert@redhat.com>
2026-01-27 09:41:04 +01:00
Patrick Ohly
d91be59690 ktesting: run time-sensitive unit tests as synctest
The TestCause tests were already unreliable in the CI. The others failed under
stress.

As synctest we have to be more careful how to construct and clean up the parent
context for TestCause (must happen inside bubble), but once that's handled we
can reliably measure the (fake) time and compare exactly against expected
results.
2026-01-27 09:18:10 +01:00
Sascha Grunert
59e3b9137e
Fix image volume subPath test and add feature tag
Change /etc/os-release to /etc/passwd in subPath test to avoid
symlink issues with Alpine 3.21 (kitten:1.8).

Add Feature:ImageVolume tag to properly categorize tests for CI.

Signed-off-by: Sascha Grunert <sgrunert@redhat.com>
2026-01-27 08:43:06 +01:00
Davanum Srinivas
27c59678f0
test: Fix KubeProxy CLOSE_WAIT test for IPv6 environments
The /proc/net/nf_conntrack file uses fully expanded IPv6 addresses
with leading zeros in each 16-bit group. For example:
  fc00:f853:ccd:e793::3 -> fc00:f853:0ccd:e793:0000:0000:0000:0003

Add expandIPv6ForConntrack() helper function to expand IPv6 addresses
to the format used by /proc/net/nf_conntrack before using them in
the grep pattern.

Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2026-01-27 00:35:25 +00:00
Kubernetes Prow Robot
028015267e
Merge pull request #136116 from vinayakankugoyal/ga
KEP:2862 Graduate to STABLE.
2026-01-27 05:09:49 +05:30
Kubernetes Prow Robot
2c9cc8da1a
Merge pull request #135763 from darshansreenivas/admissionregistratio_k8s_io_ValidationAction
feat: wire admissionregistration group for declarative validation and +k8s:required to ValidatingAdmissionPolicyBindingSpec.ValidationActions
2026-01-27 03:23:53 +05:30
Kevin Hannon
da76c98b4d Use Log instead of Logf for job integration where we don't have any varidatic arguments 2026-01-26 16:39:00 -05:00
Kubernetes Prow Robot
c70b61069d
Merge pull request #136465 from cpanato/update-go-1256
Bump images and versions to go 1.25.6 and distroless iptables
2026-01-27 01:23:50 +05:30
Anish Ramasekar
a1478c7730
Drop StructuredAuthorizationConfiguration feature gate
Signed-off-by: Anish Ramasekar <anish.ramasekar@gmail.com>
2026-01-26 11:35:39 -06:00
Carlos Panato
5e54532bf4
Bump images and versions to go 1.25.6 and distroless iptables
Signed-off-by: Carlos Panato <ctadeu@gmail.com>
2026-01-26 18:04:17 +01:00
Kubernetes Prow Robot
efc15394a1
Merge pull request #135573 from brejman/issue-129733-score-update
Update scoring function for balanced allocation to consider change to the node's balance
2026-01-26 21:49:52 +05:30
Ed Bartosh
2f82dc6dce kubelet: DRA: claiminfo: improve logging
- got rid of embedding logger into a struct
- added logging prefix
2026-01-26 17:43:38 +02:00
Ed Bartosh
acff01fe8b kubelet: DRA: healthinfo: set logging prefix 2026-01-26 17:43:38 +02:00
Ed Bartosh
7933d90815 kubelet/dra: get rid of Background calls
Removed almost all remaining context.Background and klog.Background
calls, pass context or logger instead.
2026-01-26 17:43:38 +02:00
Kubernetes Prow Robot
3d544b9142
Merge pull request #136474 from ShaanveerS/netpol-revive-135706
Netpol: reduce e2e pod churn with agnhost porter
2026-01-26 20:59:59 +05:30
Kubernetes Prow Robot
53b29a3a2c
Merge pull request #136269 from pohly/dra-scheduler-double-allocation-fixes
DRA scheduler: double allocation fixes
2026-01-26 20:59:50 +05:30
Patrick Ohly
001ec49eb6 DRA integration: more pods per node, more parallelism
Long running tests like TestDRA/all/DeviceBindingConditions (42.50s)
should run in parallel with other tests, otherwise the overall runtime is too
high.

This then must allow more pods per node to avoid blocking scheduling.
2026-01-26 15:44:49 +01:00
Patrick Ohly
2198d96520 DRA integration: add "uses all resources" test
This corresponds to an E2E test which sometimes (but very rarely) flaked in the
CI.
2026-01-26 15:44:48 +01:00
Patrick Ohly
581ee0a2ec DRA scheduler: fix another root cause of double device allocation
GatherAllocatedState and ListAllAllocatedDevices need to collect information
from different sources (allocated devices, in-flight claims), potentially even
multiple times (GatherAllocatedState first gets allocated devices, then the
capacities).

The underlying assumption that nothing bad happens in parallel is not always
true. The following log snippet shows how an update of the assume
cache (feeding the allocated devices tracker) and in-flight claims lands such
that GatherAllocatedState doesn't see the device in that claim as allocated:

    dra_manager.go:263: I0115 15:11:04.407714      18778] scheduler: Starting GatherAllocatedState
    ...
    allocateddevices.go:189: I0115 15:11:04.407945      18066] scheduler: Observed device allocation device="testdra-all-usesallresources-hvs5d.driver/worker-5/worker-5-device-094" claim="testdra-all-usesallresources-hvs5d/claim-0553"
    dynamicresources.go:1150: I0115 15:11:04.407981      89109] scheduler: Claim stored in assume cache pod="testdra-all-usesallresources-hvs5d/my-pod-0553" claim="testdra-all-usesallresources-hvs5d/claim-0553" uid=<types.UID>: a84d3c4d-f752-4cfd-8993-f4ce58643685 resourceVersion="5680"
    dra_manager.go:201: I0115 15:11:04.408008      89109] scheduler: Removed in-flight claim claim="testdra-all-usesallresources-hvs5d/claim-0553" uid=<types.UID>: a84d3c4d-f752-4cfd-8993-f4ce58643685 version="1211"
    dynamicresources.go:1157: I0115 15:11:04.408044      89109] scheduler: Removed claim from in-flight claims pod="testdra-all-usesallresources-hvs5d/my-pod-0553" claim="testdra-all-usesallresources-hvs5d/claim-0553" uid=<types.UID>: a84d3c4d-f752-4cfd-8993-f4ce58643685 resourceVersion="5680" allocation=<
        	{
        	  "devices": {
        	    "results": [
        	      {
        	        "request": "req-1",
        	        "driver": "testdra-all-usesallresources-hvs5d.driver",
        	        "pool": "worker-5",
        	        "device": "worker-5-device-094"
        	      }
        	    ]
        	  },
        	  "nodeSelector": {
        	    "nodeSelectorTerms": [
        	      {
        	        "matchFields": [
        	          {
        	            "key": "metadata.name",
        	            "operator": "In",
        	            "values": [
        	              "worker-5"
        	            ]
        	          }
        	        ]
        	      }
        	    ]
        	  },
        	  "allocationTimestamp": "2026-01-15T14:11:04Z"
        	}
         >
    dra_manager.go:280: I0115 15:11:04.408085      18778] scheduler: Device is in flight for allocation device="testdra-all-usesallresources-hvs5d.driver/worker-5/worker-5-device-095" claim="testdra-all-usesallresources-hvs5d/claim-0086"
    dra_manager.go:280: I0115 15:11:04.408137      18778] scheduler: Device is in flight for allocation device="testdra-all-usesallresources-hvs5d.driver/worker-5/worker-5-device-096" claim="testdra-all-usesallresources-hvs5d/claim-0165"
    default_binder.go:69: I0115 15:11:04.408175      89109] scheduler: Attempting to bind pod to node pod="testdra-all-usesallresources-hvs5d/my-pod-0553" node="worker-5"
    dra_manager.go:265: I0115 15:11:04.408264      18778] scheduler: Finished GatherAllocatedState allocatedDevices=<map[string]interface {} | len:2>: {

Initial state: "worker-5-device-094" is in-flight, not in cache
- goroutine #1: starts GatherAllocatedState, copies cache
- goroutine #2: adds to assume cache, removes from in-flight
- goroutine #1: checks in-flight

=> device never seen as allocated

This is the second reason for double allocation of the same device in two
different claims. The other was timing in the assume cache. Both were
tracked down with an integration test (separate commit). It did not fail
all the time, but enough that regressions should show up as flakes.
2026-01-26 15:44:48 +01:00
Kubernetes Prow Robot
584add12b6
Merge pull request #136457 from tosi3k/workload-helper
Extract helper methods from gang scheduling plugin
2026-01-26 20:01:51 +05:30
Bartosz
720d648d2f
Remove outdated test for scoring zero request pods 2026-01-26 14:26:52 +00:00
Bartosz
56ca09911f
Refactor resource allocation tests to be more readable 2026-01-26 14:26:46 +00:00
Bartosz
8f5f69bc70
Change scoring function for balanced allocation 2026-01-26 14:22:46 +00:00
lukasmetzner
8c4286bdd3 feat(ccm): introduce metric route_controller_route_sync_total
This metric tracks the amount of times routes are synced with the
cloud provider. This metric is mainly used for A/B tests on the
feature gate `CloudControllerManagerWatchBasedRoutesReconciliation`
introduced in Kubernetes v1.35.
2026-01-26 14:56:19 +01:00
Kubernetes Prow Robot
437184c055
Merge pull request #136292 from atombrella/feature/modernize_plusbuild
Remove obsolete `// +build` instruction.
2026-01-26 19:05:59 +05:30
Kubernetes Prow Robot
ac2ce676c1
Merge pull request #136249 from Yuvraj02/qos-cgroup-cpu-shares-test
kubelet: add unit tests for QoS CPU shares update
2026-01-26 19:05:51 +05:30
Ed Bartosh
77b79d7d1a node status test: fixed lint errors 2026-01-26 15:30:23 +02:00
Ed Bartosh
5ca517efa1 migrate kubelet_node_status* to contextual logging 2026-01-26 15:30:08 +02:00
Maciej Szulik
80e70c52c0
Run make update
Signed-off-by: Maciej Szulik <soltysh@gmail.com>
2026-01-26 14:26:27 +01:00
Maciej Szulik
a291714883
Generate applyconfigurations for sample-apiserver
Signed-off-by: Maciej Szulik <soltysh@gmail.com>
2026-01-26 14:23:55 +01:00
Maciej Szulik
46082bd565
Generate applyconfigurations for kube-aggregator
Signed-off-by: Maciej Szulik <soltysh@gmail.com>
2026-01-26 14:23:51 +01:00
Tore Lønøy
82a636f1f3 kube-dns bump to v1.26.7 2026-01-26 14:07:55 +01:00
Antoni Zawodny
8b39544d60 Extract helper methods from gang scheduling plugin 2026-01-26 13:45:26 +01:00
Kubernetes Prow Robot
e0cd8e3897
Merge pull request #136529 from dims/fix-kube-proxy-conntrack-test
test: Read /proc/net/nf_conntrack instead of using conntrack binary
2026-01-26 17:35:52 +05:30
Joel Speed
a984ba0bd9
Mark PodGroupPolicy up with openapi union member tags 2026-01-26 11:42:13 +00:00
ShaanveerS
46e9b9e671 feat(kal): enforce optional/required on imagepolicy API group 2026-01-26 12:26:31 +01:00
Davanum Srinivas
7f2c4535c3
test: Read /proc/net/nf_conntrack instead of using conntrack binary
The distroless-iptables image no longer includes the conntrack binary
as of v0.8.7 (removed in kubernetes/release#4223 since kube-proxy no
longer needs it after kubernetes#126847).

Update the KubeProxy CLOSE_WAIT timeout test to read /proc/net/nf_conntrack
directly instead of using the conntrack command. The file contains the
same connection tracking data and is accessible from the privileged
host-network pod.

Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2026-01-26 07:42:07 +00:00
Kubernetes Prow Robot
f4eedc41b8
Merge pull request #136518 from atombrella/feature/modernize_forvar
Remove redundant re-assignments in for-loops under tests
2026-01-26 12:25:08 +05:30
Herb Duan
81e4b115fd fix(kubelet): ignore resource claim statuses in pod status comparison
The isPodStatusByKubeletEqual function in the status manager was comparing
the entire pod status, including the ResourceClaimStatuses and
ExtendedResourceClaimStatus fields.

However, these fields are not owned or managed by the kubelet; they are
populated by other control plane components. This caused the function to
incorrectly detect a difference between the kubelet's generated status
(where these fields are nil) and the status from the API server for any
Pod using Dynamic Resource Allocation.

This discrepancy triggered a continuous and unnecessary reconciliation loop
(needsReconcile -> syncPod), adding avoidable load on the kubelet,
API server, and etcd without ever changing the status.

This patch corrects the behavior by overwriting the ResourceClaimStatuses
and ExtendedResourceClaimStatus fields on the cached API server status
with the corresponding fields from the new kubelet-generated status before
comparison. Since the kubelet-generated status always has these fields as
nil, this effectively neutralizes them in the equality check and ensures
that only kubelet-owned fields are compared.

A unit test is added to verify that differences in these specific fields
are correctly ignored.

Signed-off-by: Herb Duan <herbertduan@qq.com>
2026-01-26 05:26:47 +00:00
Mads Jensen
757647786d Remove redundant re-assignments in for-loops in test/{e2e,integration,utils}
The modernize forvar rule was applied. There are more details in this blog
post: https://go.dev/blog/loopvar-preview
2026-01-25 22:58:27 +01:00
Patrick Ohly
e6ef79b2f6 client-go informers: fix potential deadlock
In the unlikely situation that sharedProcessor.distribute was triggered by a
resync before sharedProcessor.run had a chance to start the listeners, the
sharedProcessor deadlocked: sharedProcessor.distribute held a read/write lock
on listenersLock while being blocked on the write to the listener's
channel. The listeners who would have read from those weren't get started
because sharedProcessor.run was blocked trying to get a read lock for
listenersLock.

This gets fixed by releasing the read/write lock in sharedProcessor.distribute
while waiting for all listeners to be started. Because either all or no
listeners are started, the existing global listenersStarted boolean is
sufficient.

The TestListenerResyncPeriods tests now runs twice, with and without the
artificial delay. It gets converted to a synctest, so it executes quickly
despite the time.Sleep calls and timing is deterministic. The enhanced log
output confirms that with the delay, the initial sync completes later:

    === RUN   TestListenerResyncPeriods
        shared_informer_test.go:236: 0s: listener3: handle: pod1
        shared_informer_test.go:236: 0s: listener3: handle: pod2
        shared_informer_test.go:236: 0s: listener1: handle: pod1
        shared_informer_test.go:236: 0s: listener1: handle: pod2
        shared_informer_test.go:236: 0s: listener2: handle: pod1
        shared_informer_test.go:236: 0s: listener2: handle: pod2
        shared_informer_test.go:236: 2s: listener2: handle: pod1
        shared_informer_test.go:236: 2s: listener2: handle: pod2
        shared_informer_test.go:236: 3s: listener3: handle: pod1
        shared_informer_test.go:236: 3s: listener3: handle: pod2
    --- PASS: TestListenerResyncPeriods (0.00s)
    === RUN   TestListenerResyncPeriodsDelayed
        shared_informer_test.go:236: 1s: listener1: handle: pod1
        shared_informer_test.go:236: 1s: listener1: handle: pod2
        shared_informer_test.go:236: 1s: listener2: handle: pod1
        shared_informer_test.go:236: 1s: listener2: handle: pod2
        shared_informer_test.go:236: 1s: listener3: handle: pod1
        shared_informer_test.go:236: 1s: listener3: handle: pod2
        shared_informer_test.go:236: 2s: listener2: handle: pod1
        shared_informer_test.go:236: 2s: listener2: handle: pod2
        shared_informer_test.go:236: 3s: listener3: handle: pod1
        shared_informer_test.go:236: 3s: listener3: handle: pod2
    --- PASS: TestListenerResyncPeriodsDelayed (0.00s)
2026-01-25 21:21:10 +01:00
ShaanveerS
281964596f Enable nodurations rule for Kube API Linter 2026-01-25 16:16:19 +01:00
Yuvraj
9b05946801 kubelet: add unit tests for QoS CPU shares update
Signed-off-by: Yuvraj <yuvrajsinghbhadoria@gmail.com>
2026-01-25 13:20:07 +05:30
Dan Winship
325c346659 Use a single container in all Netpol test pods
"agnhost porter" can listen on multiple ports, so there's no need to
run multiple containers.

Co-authored-by: ShaanveerS <shaanver.singh@gmail.com>
2026-01-25 08:13:43 +01:00
Richa Banker
4df467d42d separate raw and filtered peer discovery caches 2026-01-24 20:33:37 -08:00
MohammedSaalif
4925c6bea4
DRA: support non-pod references in ReservedFor (#136450)
* DRA: support non-pod references in ReservedFor

Signed-off-by: MohammedSaalif <salifud2004@gmail.com>

* Expand reservation validation comment in syncClaim as suggested by mortent

* Address feedback: rename valid to remaining and remove obsolete TODO

---------

Signed-off-by: MohammedSaalif <salifud2004@gmail.com>
2026-01-25 00:28:13 +05:30
darshansreenivas
bcdc613966 update open api spec 2026-01-24 04:15:12 -08:00
darshansreenivas
0b635116f1 feat(admissionregistration): enable declarative validation wiring and require ValidationActions 2026-01-24 03:46:24 -08:00
Darshan Murthy
b4947a5891
feat(storage): enable validation-gen + DV wiring for storage.k8s.io (#135438)
* Enable DV coverage for VolumeAttachmentSpec.Attacher validation

update code-gen

* addressing PR comments
2026-01-24 14:29:26 +05:30
Kubernetes Prow Robot
af5dd4492e
Merge pull request #136484 from dims/fix-container-restart-test-aftereach
Fix container_restart_test AfterEach failing when CRI Proxy is undefined
2026-01-24 12:19:26 +05:30
Kubernetes Prow Robot
4bfdd672b5
Merge pull request #136442 from borg-land/drop-ipc-utils-image-one
add util-linux to agnhost so we can replace ipc-utils with agnhost
2026-01-24 10:33:55 +05:30
Kubernetes Prow Robot
4d59060ba2
Merge pull request #136052 from sreeram-venkitesh/added-missing-tests-for-client-go-metrics
Added missing tests for client-go metrics
2026-01-24 10:33:47 +05:30
Kubernetes Prow Robot
7cdeb11327
Merge pull request #135800 from danwinship/nftables-hairpin
rework nftables masquerading code, part 1
2026-01-24 10:33:39 +05:30
Kubernetes Prow Robot
5eb7087ccb
Merge pull request #135761 from darshansreenivas/admissionregistratio_k8s_io_policy_name
feat: wire admissionregistration group for declarative validation and +k8s:required to ValidatingAdmissionPolicyBindingSpec.PolicyName
2026-01-24 10:33:31 +05:30
Kubernetes Prow Robot
4116b65ac5
Merge pull request #135694 from saschagrunert/update-cri-tools-v1.35.0
Update cri-tools to v1.35.0
2026-01-24 09:01:26 +05:30
Kubernetes Prow Robot
56583f4464
Merge pull request #136444 from borg-land/drop-arm-from-e2e-test-images
drop armv7 from our e2e test images
2026-01-24 07:39:35 +05:30
Kubernetes Prow Robot
0c127dd954
Merge pull request #135291 from xuzhenglun/fix-ut
fix case title in kubelet/server unit
2026-01-24 07:39:28 +05:30
Tim Hockin
8f2be40b50
Rename an argument in validation stack 2026-01-23 17:40:38 -08:00
杨军10092085
2b474ff0f1 Adjust the expected and actual parameters of the unit test Equal function to the correct order 2026-01-24 09:16:11 +08:00
Kubernetes Prow Robot
01cc26fba3
Merge pull request #136379 from amigo-nishant/master
cleanup: improve darwin error messages
2026-01-24 06:43:27 +05:30
Davanum Srinivas
03e6622c92
Fix container_restart_test AfterEach failing when CRI Proxy is undefined
Two test contexts were failing because their AfterEach blocks run even
when BeforeEach skips the test (standard Ginkgo behavior). This caused
resetCRIProxyInjector to fail with "CRI Proxy is undefined".

Switched to using DeferCleanup inside BeforeEach instead, which only
runs if BeforeEach succeeds. This is the same pattern the other test
contexts in this file already use.

Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2026-01-23 19:59:22 -05:00
Kubernetes Prow Robot
c7416f744e
Merge pull request #136486 from dims/fix-imagepulltest-timeout
Add timeout to ImagePullTest poll loop to prevent infinite hangs
2026-01-24 05:51:27 +05:30
Davanum Srinivas
48f67b9656
Add timeout to ImagePullTest poll loop to prevent infinite hangs
ImagePullTest was using wait.PollUntilContextCancel which has no
timeout, causing tests to hang for hours when the expected container
state is never reached (e.g., ErrImageNeverPull).

Changed to wait.PollUntilContextTimeout with ContainerStatusRetryTimeout
(5 minutes), matching the pattern used by other tests in the same file.

Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2026-01-23 18:19:17 -05:00
Rohit Chaudhari
b7355510ef
Fix copyright notice in container_manager_test.go
Correct copyright year in container_manager_test.go
2026-01-24 01:28:47 +05:30
Kubernetes Prow Robot
6b092968ac
Merge pull request #136166 from ngopalak-redhat/ngopalak/sub-dir-walk
Add test and doc for processing all the sub-directories in kubelet drop-in folder
2026-01-24 00:29:30 +05:30
Kubernetes Prow Robot
62cbba593b
Merge pull request #136413 from hoteye/migrate-kubelet-getnode-context
kubelet: migrate kubelet_getters.go to contextual logging
2026-01-23 23:35:37 +05:30
Kubernetes Prow Robot
4c221cdc56
Merge pull request #133335 from bart0sh/PR190-pluginmanager-fix-handling-registration-failures
pluginmanager: fix handling registration failures
2026-01-23 23:35:29 +05:30
Rohit Chaudhari
687076f6f9
Add unit tests for parsePercentage function 2026-01-23 23:08:45 +05:30
upodroid
111c4cfb9f add util-linux-misc to agnhost so we can replace ipc-utils with agnhost 2026-01-23 20:19:46 +03:00
Rohit Chaudhari
21893163d8
Create container_manager_test.go 2026-01-23 22:46:41 +05:30
Neeraj Krishna Gopalakrishna
001dcf63ba Add test and doc for processing all the sub-directories in drop-in folder 2026-01-23 21:58:31 +05:30
Kubernetes Prow Robot
a90cf50004
Merge pull request #136443 from dims/bump-e2e-test-images
Bump e2e test images to latest promoted versions
2026-01-23 18:57:38 +05:30
Kubernetes Prow Robot
a46ff14f97
Merge pull request #136089 from ngopalak-redhat/ngopalak/config-dir
Improve logging, doc and test for kubelet config-dir file extension
2026-01-23 18:57:31 +05:30
Mahamed Ali
00238edfdd drop armv7 from our e2e test images 2026-01-23 12:20:32 +00:00
Kubernetes Prow Robot
0af247eb14
Merge pull request #136344 from brejman/kep-5732-tas-rename-podgroupinfo
Rename PodGroupInfo in preparation for Workload-aware scheduling changes
2026-01-23 17:37:29 +05:30
hoteye
e649292782 kubelet: migrate kubelet_getters.go to contextual logging. Migrate GetNode and related functions to use contextual logging 2026-01-23 19:54:43 +08:00
Davanum Srinivas
bceadbece2
Bump e2e test images to latest promoted versions
Image updates:
- ipc-utils: 1.3 → 1.4
- kitten: 1.7 → 1.8
- nautilus: 1.7 → 1.8
- nginx: 1.14-4 → 1.15-4
- nginx (new): 1.15-4 → 1.27-0
- node-perf/npb-ep: 1.2 → 1.6.0
- node-perf/npb-is: 1.2 → 1.7.0
- nonewprivs: 1.3 → 1.4
- nonroot: 1.4 → 1.5
- resource-consumer: 1.13 → 1.14
- volume/nfs: 1.4 → 1.6.0
- volume/iscsi: 2.6 → 2.7

Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2026-01-23 06:19:30 -05:00
amigo-nishant
b56c322f24 cleanup: improve darwin error messages 2026-01-23 09:30:07 +05:30
Kubernetes Prow Robot
c2618d48c0
Merge pull request #136445 from dims/fix-volume-nfs-centos-stream9
Fix volume/nfs image for CentOS Stream 9
2026-01-23 09:25:25 +05:30
Davanum Srinivas
e8d1e3563b
Fix volume/nfs image for CentOS Stream 9
The volume/nfs:1.5 image was updated from CentOS 8 to CentOS Stream 9
in commit 9b47a096f4, but this broke NFS server startup because
NFSv2 is no longer supported in RHEL 9 / CentOS Stream 9.

The `-N 2` flag (disable NFSv2) passed to rpc.mountd and rpc.nfsd
causes them to fail with "2: Unsupported version" since there's no
NFSv2 to disable. This prevented rpc.nfsd from starting, causing
NFS mount timeouts in e2e tests.

Fix by removing the `-N 2` flags. NFSv2 is already unavailable in
CentOS Stream 9, so explicitly disabling it is unnecessary.

Red Hat documentation states: "NFS version 2 (NFSv2) is no longer
supported by Red Hat."

Reference: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/managing_file_systems/mounting-nfs-shares_managing-file-systems

Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2026-01-22 21:13:15 -05:00
Kubernetes Prow Robot
5f4adaf579
Merge pull request #136303 from ShaanveerS/fix-flake
scheduler: deflake TestUnReservePreBindPlugins
2026-01-23 05:17:27 +05:30
Kevin Hannon
159eb4cd77 remove alpha comments for GA or beta DRA fields 2026-01-22 17:03:40 -05:00
Kubernetes Prow Robot
3863ed83f1
Merge pull request #136429 from dims/fix-npb-is-ppc64le
Remove ppc64le and s390x support from npb-is image
2026-01-23 03:03:35 +05:30
Kubernetes Prow Robot
5614f02d2a
Merge pull request #135940 from pohly/webhook-unit-test-flake
webhook admission: avoid risk of flakes
2026-01-23 03:03:27 +05:30
Kubernetes Prow Robot
4b5db19cb7
Merge pull request #136407 from ivanvc/master
Bump etcd client SDK to 3.6.7
2026-01-23 02:09:35 +05:30
Kubernetes Prow Robot
ed4c206ffa
Merge pull request #136398 from dims/use-pytorch-wide-deep-in-tests
Switch node perf tests from TensorFlow to PyTorch Wide-Deep
2026-01-23 02:09:27 +05:30
darshansreenivas
04ea1eabff feat(admissionregistration): wire group for declarative validation and require PolicyName 2026-01-22 11:19:22 -08:00
Kubernetes Prow Robot
a20550b2f8
Merge pull request #135751 from PhantomInTheWire/fix/operation-executor-test
Fix goroutine leak in pluginmanager test
2026-01-22 23:57:36 +05:30
Kubernetes Prow Robot
c42aa9b74a
Merge pull request #132047 from rzlink/memory
kubelet/windows: use CommitMemoryBytes for MemoryStats.UsageBytes in CRI stats provider
2026-01-22 23:57:29 +05:30
Kubernetes Prow Robot
789e38ef03
Merge pull request #136404 from borg-land/nonewprivs-agnhost
add nonewprivs to agnhost
2026-01-22 22:47:29 +05:30
Davanum Srinivas
00e1a2e9a2
Switch node perf tests from TensorFlow to PyTorch Wide-Deep
Replace the TensorFlow-based wide-deep workload with the PyTorch
implementation. This change:

- Adds pytorchWideDeepWorkload using the new pytorch-wide-deep image (1.0.0)
- Removes tfWideDeepWorkload and tf-wide-deep image references
- Enables arm64 support (PyTorch image is multi-arch)
- Uses the same log parsing (time -p output format)

Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2026-01-22 12:02:58 -05:00
Ivan Valdes
63e442e167
Bump etcd 3.6.7 SDK 2026-01-22 08:51:06 -08:00
Kubernetes Prow Robot
8a04fd20dd
Merge pull request #136425 from Karthik-K-N/small-cleanup
Remove previously added print statement for test debug
2026-01-22 21:55:39 +05:30
Kubernetes Prow Robot
01c430acd5
Merge pull request #136359 from dims/glibc-dns-testing-code-update
test: update code to use GlibcDnsTesting image
2026-01-22 21:55:31 +05:30
Davanum Srinivas
4060725e7b
Remove ppc64le and s390x support from npb-is image
The npb-is image was failing to build on ppc64le with relocation overflow:
  relocation truncated to fit: R_PPC64_TOC16_HA against symbol 'key_array'

Remove ppc64le and s390x from supported architectures:
- The IS benchmark with CLASS=D has ~8GB data arrays that require special
  compiler flags for non-x86 architectures
- ppc64le and s390x builds are difficult to test and maintain
- Keep amd64 and arm64 which are the primary node performance test targets

I don't think these arch(es) ever worked!

Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2026-01-22 10:50:21 -05:00
Bartosz
ae27a49a13
Rename PodGroupInfo to PodGroupState
This is in preparation for PodGroupInfo struct with more pod group
details
2026-01-22 14:45:40 +00:00
Kubernetes Prow Robot
a4272922fc
Merge pull request #136397 from dims/add-pytorch-wide-deep-test-image
Add PyTorch Wide-Deep node performance test image
2026-01-22 20:15:28 +05:30
upodroid
8fb70f8716 add nonewprivs to agnhost 2026-01-22 17:08:03 +03:00
Kubernetes Prow Robot
b3f3cb88e8
Merge pull request #136419 from pacoxu/add-google-btree-unwanted
Add github.com/google/btree to unwanted dependencies
2026-01-22 19:17:28 +05:30
Davanum Srinivas
0183b5547a
test: update code to use GlibcDnsTesting image
Updates the codebase to use the new glibc-dns-testing image which replaces
the deprecated jessie-dnsutils image.

This PR depends on the glibc-dns-testing image being available in the
registry (registry.k8s.io/e2e-test-images/glibc-dns-testing:2.0.0).

Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2026-01-22 08:39:46 -05:00
Karthik Bhat
85aceb54fd Remove fmt.Println() added for debug 2026-01-22 18:34:15 +05:30
Davanum Srinivas
ad361ce193
Add PyTorch Wide-Deep node performance test image
Add a new PyTorch-based Wide-Deep benchmark image to replace the
TensorFlow version which has compatibility issues with tf.estimator
removal in TensorFlow 2.16+.

Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2026-01-22 07:59:11 -05:00
Kubernetes Prow Robot
1b187f883d
Merge pull request #136414 from dims/fix-post-kubernetes-push-e2e-node-perf-npb-is-test-images-problem-arm64
Fix post-kubernetes-push-e2e-node-perf-npb-is-test-images problem (arm64)
2026-01-22 18:11:37 +05:30
Kubernetes Prow Robot
30607b55b4
Merge pull request #136389 from adrianmoisey/promote-kep-5311-to-beta
Promote KEP-5311 (Relaxed validation for Services names) to beta
2026-01-22 18:11:28 +05:30
ShaanveerS
42b16a8dd8 scheduler: deflake TestUnReservePreBindPlugins 2026-01-22 12:27:45 +01:00
Kubernetes Prow Robot
9a0ebb4464
Merge pull request #136420 from pohly/e2e-ssh-dial-retry
E2E framework ssh: avoid log spam in runSSHCommand
2026-01-22 16:31:32 +05:30
Patrick Ohly
dd78c81057 E2E framework ssh: avoid log spam in runSSHCommand
Emitting "error dialing" on each retry spams the test log output even when the
tests succeed.

Using Eventually also has other advantages (better failure message, support for
Gingko progress reports when a test is stuck).
2026-01-22 12:00:09 +01:00
Lubomir I. Ivanov
c7b4a6593b kubeadm: removed the built-in flex volume support
kubeadm tracks if the user adds the flex volume flag
to the KCM, and then mounts the flex volume directory
on the KCM static-pod.

With the default KCM image using distroless and the flex
volumes being in maintenane mode since 1.22, this integration
with kubeadm is edge case. User should manually opt-in
by using a custom KCM image, passing the KCM flag and
manually mounting the volume.
2026-01-22 11:37:01 +01:00
Paco Xu
be68191231 Add github.com/google/btree to unwanted dependencies
Mark github.com/google/btree as unwanted due to being unmaintained
and in archive mode. The module is currently referenced by:
- go.etcd.io/etcd/server/v3
- k8s.io/apiserver
2026-01-22 16:56:57 +08:00
Kubernetes Prow Robot
2274f69d9a
Merge pull request #136342 from esotsal/GetNodeAllocatableAndAvailableValues
Move getNodeAllocatableAndAvailableValues to test e2e framework node
2026-01-22 13:49:29 +05:30
Basheer
eb343a9049 update generated code 2026-01-22 10:05:27 +05:30
Basheer
aecc4135cc enable commentstart check on admissionregistration API group 2026-01-22 10:05:23 +05:30
Davanum Srinivas
e08030fa5f
Fix post-kubernetes-push-e2e-node-perf-npb-is-test-images problem (arm64)
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2026-01-21 23:03:54 -05:00
Kubernetes Prow Robot
0eabb569fb
Merge pull request #136412 from dims/fix-npb-arm64-cross-build
Fix NPB test images arm64 cross-build failures
2026-01-22 09:09:26 +05:30
Kubernetes Prow Robot
290b358acd
Merge pull request #136410 from michaelasp/addToReviewer
Add michaelasp to client-go/tools/cache reviewers
2026-01-22 07:57:33 +05:30
Kubernetes Prow Robot
d3500c6652
Merge pull request #135570 from Karthik-K-N/fix-sidecar-flake
Fix TestTerminationOrderingSidecarStopAfterMain flake under stress
2026-01-22 07:57:26 +05:30
Vinayak Goyal
cfd7b49484 KEP:5040 Lock gitRepo Volume Driver to disabled. 2026-01-21 21:16:52 -05:00
Richa Banker
aaed7525dd Consolidate delete handler, reaper logic into same sync loop using the same worker - activeGVQueue 2026-01-21 16:53:28 -08:00
Davanum Srinivas
45e30087fd
Fix NPB test images arm64 cross-build failures
The NPB (NAS Parallel Benchmarks) test images were failing to build
for arm64 architecture due to missing shebangs in NPB shell scripts.

The sys/print_header and sys/print_instructions scripts in NPB lack
default /bin/sh), they fail with "Error 127" (command not found) during
QEMU-emulated cross-builds.

Fix by adding shebangs to these scripts during the Docker build.

Changes:
- npb-ep: Add shebang fix, bump version 1.5 → 1.6.0
- npb-is: Add shebang fix, bump version 1.4 → 1.5.0

Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2026-01-21 19:41:18 -05:00
Kubernetes Prow Robot
e51e40ede6
Merge pull request #136186 from hoteye/migrate-kubelet-getters-contextual-logging
kubelet: migrate kubelet_getters.go to contextual logging
2026-01-22 05:09:33 +05:30
Kubernetes Prow Robot
ef8c024a14
Merge pull request #136028 from thc1006/fix/issue-136027-error-verbosity
fix(kubelet): convert V().Error() to V().Info() for verbosity-aware logging
2026-01-22 05:09:25 +05:30
Richa Banker
1713b6d8f2 Wire GVExclusionManager 2026-01-21 15:22:29 -08:00
Richa Banker
79375cf7de Add tests for GVExclusionManager 2026-01-21 15:22:29 -08:00
Richa Banker
41761eb724 Add GVExclusionManager to process CRD and aggregated APIs GVs 2026-01-21 15:22:29 -08:00
Richa Banker
438649a934 Rename exclusion_filter.go to gv_exclusion_manager.go 2026-01-21 15:22:29 -08:00
Kubernetes Prow Robot
97df11dfd1
Merge pull request #136381 from ffromani/remove-memmgr-fg
remove the MemoryManager FG
2026-01-22 04:15:34 +05:30
Kubernetes Prow Robot
3d5e3da18f
Merge pull request #136380 from ffromani/topo-mgr-opts-lock-defaults
features: lock TopologyManagerOptions
2026-01-22 04:15:26 +05:30
Kubernetes Prow Robot
2ccf67b90d
Merge pull request #136056 from nem0z/chore/HandleCrashWithContext_kublet_126379
Replace non-contextual API utilruntime.HandleError under /pkg/kubelet within the new context-aware version when possible
2026-01-22 03:17:33 +05:30
Kubernetes Prow Robot
6fde485ec9
Merge pull request #135309 from richabanker/zpages
Enhance content negotiation for zpages
2026-01-22 03:17:25 +05:30
Michael Aspinwall
8418cf16d7 Add michaelasp to client-go cache reviewers 2026-01-21 21:46:59 +00:00
Kubernetes Prow Robot
bf613ce5b5
Merge pull request #136401 from dims/update-glibc-dns-testing-version
test/images: use semver for glibc-dns-testing image
2026-01-22 02:23:33 +05:30
Kubernetes Prow Robot
69eb15ee58
Merge pull request #136362 from dims/update-opentelemetry-v1.39.0
Update OpenTelemetry dependencies to latest versions
2026-01-22 02:23:25 +05:30
Kubernetes Prow Robot
dff962ddbb
Merge pull request #136264 from michaelasp/unlockWhileProcess
Ensure that processing does not block queue writers in RealFIFO
2026-01-22 00:15:26 +05:30
Sotiris Salloumis
d9c3ec29ad Move getNodeAllocatableAndAvailableValues to framework
To allow use of this good method from future tests using
e2enode test framework.
2026-01-21 19:41:08 +01:00
Davanum Srinivas
a7c6da07f1
test/images: use semver for glibc-dns-testing image
Update VERSION to 2.0.0 for consistency with semver format.

Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2026-01-21 13:23:19 -05:00
Michael Aspinwall
082f38d97b Add benchmarks for adding objects with slow handlers 2026-01-21 17:56:17 +00:00
Michael Aspinwall
40c01b99a7 Ensure that processing does not block queue writers 2026-01-21 17:56:00 +00:00
Kubernetes Prow Robot
7fb075627f
Merge pull request #136395 from dims/use-semver-for-pets/zookeeper-installer-image
use semver for pets/zookeeper-installer image
2026-01-21 22:21:42 +05:30
Kubernetes Prow Robot
2408fce347
Merge pull request #136388 from dims/dummy-commit-to-trigger-glibc-dns-testing-image-build
dummy commit to trigger glibc-dns-testing image build
2026-01-21 22:21:34 +05:30
Kubernetes Prow Robot
724f7a99c1
Merge pull request #136332 from seans3/websocket-test-logging
Adds more websocket flaky test logging
2026-01-21 22:21:26 +05:30
Kubernetes Prow Robot
25ae8f3e38
Merge pull request #136301 from AutuSnow/fix-flaky-volume-test-kubelet
Fix(kubelet/test): flaky TestWaitForAllPodsUnmount by adding goroutin…
2026-01-21 21:21:36 +05:30
Kubernetes Prow Robot
6010707b8a
Merge pull request #135470 from Ignoramuss/optionalorrequired-scheduling
api: add +required markers to scheduling API
2026-01-21 21:21:28 +05:30
Davanum Srinivas
bcc8b0ab62 use semver for pets/zookeeper-installer image
1.7 -> 1.7.0
2026-01-21 09:43:11 -05:00
Adrian Moisey
1b338eec1c
Promote KEP-5311 (Relaxed validation for Services names) to beta 2026-01-21 15:44:21 +02:00
Davanum Srinivas
af51cc3911 dummy commit to trigger glibc-dns-testing image build 2026-01-21 08:07:45 -05:00
Kubernetes Prow Robot
a66a59fc6f
Merge pull request #136371 from dims/fix-npb-cross-build-permissions
Fix NPB test image cross-build for arm64
2026-01-21 18:27:30 +05:30
Kubernetes Prow Robot
31e7bacdca
Merge pull request #136370 from dims/fix-sample-apiserver-build
Fix sample-apiserver image build failure
2026-01-21 16:31:26 +05:30
Francesco Romani
078c7dfd90 features: lock TopologyManagerOptions
TopologyManagerOptions went to GA but were not LockedToDefaults
unlike other GA features. Fix that.

Signed-off-by: Francesco Romani <fromani@redhat.com>
2026-01-21 10:56:19 +01:00
Patrick Ohly
703642baf6 DRA scheduler: fix one root cause of double device allocation
DRA depends on the assume cache having invoked all event handlers before
Assume() returns, because DRA maintains state that is relevant for scheduling
through those event handlers.

This log snippet shows how this went wrong during PreBind:

    dynamicresources.go:1150: I0115 10:35:29.264437] scheduler: Claim stored in assume cache pod="testdra-all-usesallresources-kqjpj/my-pod-0091" claim="testdra-all-usesallresources-kqjpj/claim-0091" uid=<types.UID>: 516f274f-e1a9-4a4b-b7d2-bb86138e4240 resourceVersion="5636"
    dra_manager.go:198: I0115 10:35:29.264448] scheduler: Removed in-flight claim claim="testdra-all-usesallresources-kqjpj/claim-0091" uid=<types.UID>: 516f274f-e1a9-4a4b-b7d2-bb86138e4240 version="287"
    dynamicresources.go:1157: I0115 10:35:29.264463] scheduler: Removed claim from in-flight claims pod="testdra-all-usesallresources-kqjpj/my-pod-0091" claim="testdra-all-usesallresources-kqjpj/claim-0091" uid=<types.UID>: 516f274f-e1a9-4a4b-b7d2-bb86138e4240 resourceVersion="5636" allocation=<
    ...
    allocateddevices.go:189: I0115 10:35:29.267315] scheduler: Observed device allocation device="testdra-all-usesallresources-kqjpj.driver/worker-1/worker-1-device-096" claim="testdra-all-usesallresources-kqjpj/claim-0091"

- goroutine #1: UpdateStatus result delivered via informer.
  AssumeCache updates cache, pushes event A, emitEvents pulls event A from queue.
  *Not* done with delivering it yet!
- goroutine #2: AssumeCache.Assume called. Updates cache, pushes event B, emits it.
  Old and new claim have allocation, so no "Observed device allocation".
- goroutine #3: Schedules next pod, without considering device as allocated (not in the log snippet).
- goroutine #1: Finally delivers event A: "Observed device allocation", but too late.

Also, events are delivered out-of-order.

The fix is to let emitEvents when called by Assume wait for a potentially
running emitEvents in some other goroutine, thus ensuring that an event pulled
out of the queue by that other goroutine got delivered before Assume itself
checks the queue one more time and then returns.

The time window were things go wrong is small. An E2E test covering this only
flaked rarely, and only in the CI. An integration test (separate commit) with
higher number of pods finally made it possible to reproduce locally. It also
uncovered a second race (fix in separate commit).

The unit test fails without the fix:

    === RUN   TestAssumeConcurrency
        assume_cache_test.go:311: FATAL ERROR:
            	Assume should have blocked and didn't.
    --- FAIL: TestAssumeConcurrency (0.00s)
2026-01-21 10:51:31 +01:00
Francesco Romani
401a73ceb1 remove the MemoryManager FG
MemoryManager went GA and LockedToDefault in 1.32,
but it seems we forgot to mark the FG for removal.
Enough time (1.36 cycle beginning at time of writing)
has passed, we can remove it.

Signed-off-by: Francesco Romani <fromani@redhat.com>
2026-01-21 10:32:29 +01:00
Sean Sullivan
3975b1edca Adds more websocket flaky test logging 2026-01-21 07:33:21 +00:00
Kubernetes Prow Robot
2bd9d39bb3
Merge pull request #136358 from dims/glibc-dns-testing-image
test/images: add glibc-dns-testing image (replaces jessie-dnsutils)
2026-01-21 12:57:26 +05:30
Kubernetes Prow Robot
89394bf402
Merge pull request #136363 from dims/add-kind-dependency-label-to-PULL_REQUEST_TEMPLATE.md
add kind-dependency label to PULL_REQUEST_TEMPLATE.md
2026-01-21 09:33:38 +05:30
Kubernetes Prow Robot
05ed7d9992
Merge pull request #135167 from mengqiy/consistencychecker
log diff in consistent checker
2026-01-21 09:33:31 +05:30
Davanum Srinivas
ff7b1dac18
Fix NPB test image cross-build for arm64
Fix by adding chmod -R a+rX after tar extraction to ensure all files
are readable and executables/directories are accessible.

Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2026-01-20 22:16:28 -05:00
Davanum Srinivas
cb8963ad92
Fix sample-apiserver image build failure
The kube-cross image has GOPATH=/usr/local/go and GOROOT=/usr/local/go
(same directory). When `go install .` runs, the binary is placed in
/usr/local/go/bin/, but the Makefile was searching for it in /go/bin/
which is empty.

Fix by using `go build -o` to place the binary directly at the target
location instead of relying on go install + find.

Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2026-01-20 21:54:22 -05:00
Kubernetes Prow Robot
63459fb128
Merge pull request #136325 from AutuSnow/fix/expansion/tryReadVariableName
fix(expansion):Resolve the issue of UTF-8 characters being truncated
2026-01-21 05:37:25 +05:30
Davanum Srinivas
c40ea60b9f
Update OpenTelemetry dependencies to latest versions
Core packages (opentelemetry-go):
- go.opentelemetry.io/otel: v1.38.0 → v1.39.0
- go.opentelemetry.io/otel/metric: v1.38.0 → v1.39.0
- go.opentelemetry.io/otel/trace: v1.38.0 → v1.39.0
- go.opentelemetry.io/otel/sdk: v1.38.0 → v1.39.0

Exporters:
- go.opentelemetry.io/otel/exporters/otlp/otlptrace: v1.34.0 → v1.39.0
- go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc: v1.34.0 → v1.39.0

Contrib instrumentation (opentelemetry-go-contrib):
- go.opentelemetry.io/contrib/.../otelhttp: v0.61.0 → v0.64.0
- go.opentelemetry.io/contrib/.../otelrestful: v0.44.0 → v0.64.0

Protocol definitions (opentelemetry-proto-go):
- go.opentelemetry.io/proto/otlp: v1.5.0 → v1.9.0

Notable changes:
- Go 1.24 is now the minimum required version (Go 1.23 support dropped) for OTEL components
- Performance: ~4x improvement in histogram concurrent operations; xxhash
  replaces fnv for attribute hashing
- Fixed goroutine leak in span processors when context is canceled
- otelrestful migrated semantic conventions from v1.20.0 to v1.34.0
  (e.g., http.method → http.request.method)
- Partial OTLP export errors now surfaced instead of being silently dropped
- otelrestful no longer depends on json-iterator/go, modern-go/concurrent,
  or modern-go/reflect2; unwanted-dependencies.json updated accordingly

Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2026-01-20 18:24:44 -05:00
Davanum Srinivas
fd4d214b3c
add kind-dependency label to PULL_REQUEST_TEMPLATE.md
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2026-01-20 18:14:09 -05:00
Kubernetes Prow Robot
6a20aa630d
Merge pull request #136241 from princepereira/ppereira-preferdualstack
Fix for preferred dualstack and required dualstack in winkernel proxier.
2026-01-21 04:03:24 +05:30
Kubernetes Prow Robot
58b22e33f9
Merge pull request #136353 from dims/fix-sample-apiserver-image
test/images: Fix sample-apiserver build to use existing tag
2026-01-21 02:47:42 +05:30
Kubernetes Prow Robot
3aacf1e184
Merge pull request #136352 from dims/fix-zookeeper-installer-netcat
test/images: Fix zookeeper-installer netcat package for bookworm
2026-01-21 02:47:35 +05:30
Kubernetes Prow Robot
ad3f8a50fe
Merge pull request #136351 from dims/fix-npb-images-base
test/images: Update npb-ep and npb-is base images to bookworm-slim
2026-01-21 02:47:27 +05:30
Davanum Srinivas
aa06bb320f
test/images: add glibc-dns-testing image (replaces jessie-dnsutils)
The jessie-dnsutils image build has been failing since Debian Jessie reached
end-of-life (EOL) and its repositories were moved to archive.debian.org:

  W: Failed to fetch http://deb.debian.org/debian/dists/jessie/Release
     404  Not Found [IP: 151.101.86.132 80]
  E: Some index files failed to download.

This adds a new glibc-dns-testing image to replace jessie-dnsutils. The new
name better reflects the image's purpose: testing glibc DNS resolution behavior
(vs. musl in Alpine-based agnhost).

The name glibc-dns-testing was recommended by maintainers to reflect that
the image's purpose is testing glibc-based DNS resolution, which behaves
differently from musl libc (used by Alpine/agnhost). Key differences include:
- glibc queries nameservers sequentially; musl queries in parallel
- glibc and musl handle ndots and search domains differently
- The hostname command behaves differently between glibc and musl

Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2026-01-20 16:00:03 -05:00
Kubernetes Prow Robot
76f4413931
Merge pull request #136349 from dims/fix-tf-wide-deep-image
test/images: fix tf-wide-deep build by using models v1.9.0
2026-01-21 01:53:26 +05:30
Prince Pereira
4198b789f5 Fix for preferred dualstack and required dualstack in winkernel proxier. 2026-01-21 00:57:09 +05:30
Davanum Srinivas
400630d3bd
test/images: Fix sample-apiserver build to use existing tag
Update to use v0.33.7 which is the latest available tag in the 0.33.x series.

Build failure:
https://storage.googleapis.com/kubernetes-ci-logs/logs/post-kubernetes-push-e2e-sample-apiserver-test-images/2011957392350121984/build-log.txt

feels like an intermittent issue, but no way to re-run it. So
bumping tags so i restart the ci jobs.

Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2026-01-20 14:20:22 -05:00
Davanum Srinivas
4786745bfe
test/images: Fix zookeeper-installer netcat package for bookworm
In Debian bookworm, 'netcat' is a virtual package with no installation
candidate. Replace it with 'netcat-openbsd' which provides the actual
netcat implementation.

Build failure:
```
 > [2/7] RUN clean-install wget bash netcat:
0.382 Get:6 http://deb.debian.org/debian-security bookworm-security/main amd64 Packages [291 kB]

3.174 Reading state information...
3.180 Package netcat is a virtual package provided by:
3.180   netcat-openbsd 1.219-1
3.180   netcat-traditional 1.10-47
3.180
3.182 E: Package 'netcat' has no installation candidate
------
```

Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2026-01-20 14:02:59 -05:00
Davanum Srinivas
8c714fb8e4
test/images: Update npb-ep and npb-is base images to bookworm-slim
Debian stretch and buster have reached end of life and their
package repositories are no longer available. Update the NAS
Parallel Benchmarks images to use Debian bookworm-slim:

- npb-is: stretch-slim -> bookworm-slim (version 1.2 -> 1.3)
- npb-ep: buster-slim -> bookworm-slim (version 1.3 -> 1.4)

For npb-ep, also remove the hardcoded buster apt sources and
version-pinned packages that are no longer needed with bookworm.

Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2026-01-20 13:56:35 -05:00
Davanum Srinivas
d1cc61a78b
test/images: fix tf-wide-deep build by using models v1.9.0
The wide_deep directory was removed from tensorflow/models after v1.9.0.
Commit f8ca585b66 updated models from v1.9.0 to v2.15.0, breaking the
build because /models-2.15.0/official/wide_deep/data_download.py no
longer exists.

Revert to models v1.9.0 which contains the wide_deep implementation.
The v1.9.0 code uses tf.estimator APIs which are still available in
TensorFlow 2.x.

Fixes: https://prow.k8s.io/view/gs/kubernetes-ci-logs/logs/post-kubernetes-push-e2e-node-perf-tf-wide-deep-test-images/2011957382287986688

Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2026-01-20 13:30:29 -05:00
Kubernetes Prow Robot
8f76dbf79b
Merge pull request #136227 from dims/update-grpc-ecosystem-deps-jan2026
Update gRPC ecosystem dependencies
2026-01-20 22:41:26 +05:30
Kubernetes Prow Robot
6da1e3e73d
Merge pull request #135919 from rogowski-piotr/handle-claims-when-one-is-prepared
kubelet(dra): fix handling of multiple ResourceClaims when one is already prepared
2026-01-20 16:08:49 +05:30
Patrick Ohly
a2ebdf633a DRA E2E: use image utils to manage hostpath image
When testing in an air-gapped cluster, users of the e2e.test depend on
-list-images and KUBE_TEST_REPO_LIST to pre-populate a local registry with
required images.

The hostpath image used by DRA was not part of that process (not getting
patched with local registry) and the version fell behind what SIG Storage was
using at least once. Now the registry and version are derived from what is
being tested elsewhere, using the latest available image if there is more than
one.
2026-01-20 11:09:54 +01:00
qiuxue
d78f090d1b fix(expansion):Resolve the issue of UTF-8 characters being truncated, resulting in invalid UTF-8 2026-01-20 13:53:37 +08:00
Kubernetes Prow Robot
cb077823fb
Merge pull request #136204 from romanbaron/remove-cache-ttl
Remove cache expiration mechanism
2026-01-20 03:42:50 +05:30
Mads Jensen
f38fc5d064 Enforce plusbuild rule with golangci-lint 2026-01-19 20:27:56 +01:00
Kubernetes Prow Robot
9ea678d860
Merge pull request #136010 from olamilekan000/fix-k8s-losing-some-line-of-logs
fix kubectl interactive mode losing some line of logs
2026-01-20 00:45:48 +05:30
Piotr Rogowski
ea4f784f4b test(ut/dra): add unit test for pod requesting prepared and new claims 2026-01-19 18:20:33 +00:00
Piotr Rogowski
9d1474f487 test(e2e/dra): add test for pod requesting allocated and new claims 2026-01-19 18:20:03 +00:00
Kubernetes Prow Robot
daf12cc0f3
Merge pull request #136297 from dims/update-agnhost-etcd-versions
Update agnhost to 2.61 and etcd to 3.6.7-0 in test manifests
2026-01-19 22:31:56 +05:30
Kubernetes Prow Robot
caf327583f
Merge pull request #136273 from neolit123/1.36-bump-create-job-timeout-to-1-minute
kubeadm: bump the CreatJob check timeout to 1 minute
2026-01-19 22:31:48 +05:30
Mads Jensen
64a7d4c741 Remove deprecated +build instruction. 2026-01-19 17:40:33 +01:00
Kubernetes Prow Robot
d047572e81
Merge pull request #135322 from carlory/rm-portworx
[1.36] Remove intree volume plugin portworx
2026-01-19 21:19:13 +05:30
Patrick Ohly
474e0ec8ba E2E logcheck: don't fail when there are warnings
Warnings should be logged, but don't need to trigger a test failure because
podlogs handles the problem.

While at it, convert text data to string and drop the unnecessary trailing
newline.  Doesn't matter with the current log formatter, but it makes the
intent a bit more obvious.
2026-01-19 16:25:49 +01:00
Patrick Ohly
e154f634ad E2E logcheck: extend package comments
This explains the overall mode of operation.
2026-01-19 16:25:49 +01:00
Patrick Ohly
83169cee9f E2E logcheck: move to "invariants" directory
This check needs closer scrutiny because it hooks into the overall test suite execution.
2026-01-19 16:25:49 +01:00
olalekan odukoya
f338a70f25 fix kubectl in interactive mode losing some line of logs
Signed-off-by: olalekan odukoya <odukoyaonline@gmail.com>
2026-01-19 14:21:27 +01:00
Kubernetes Prow Robot
14dec2184b
Merge pull request #136320 from pohly/e2e-framework-tcontext-namespace-fix
E2E framework: fix nil pointer crash in TContext
2026-01-19 17:41:13 +05:30
rogowski-piotr
dd377619c9 kubelet(dra): fix multiple claims handling 2026-01-19 11:57:33 +00:00
Patrick Ohly
0c9c7ce40d E2E framework: fix nil pointer crash in TContext
Not all framework instances have a default namespace. TContext
crashed for those.

(cherry picked from commit 80cc14831e)

This got merged in https://github.com/kubernetes/kubernetes/pull/136140,
then reverted in https://github.com/kubernetes/kubernetes/pull/136151 and was
not brought back in https://github.com/kubernetes/kubernetes/pull/136156.
2026-01-19 10:51:24 +01:00
Kubernetes Prow Robot
e3684b7eb2
Merge pull request #136283 from pohly/dra-upgrade-downgrade-refactor-2
DRA tests: stop using deprecated ktesting functions
2026-01-19 13:47:11 +05:30
Patrick Ohly
fda3bdbd5e DRA tests: stop using deprecated ktesting functions
Some of them were already converted previously, but didn't take full advantage
of the more flexible methods: errors can be checked again by Gomega.
2026-01-19 08:27:15 +01:00
carlory
dc12e00fd2 remove CheckMigrationFeatureFlags
Signed-off-by: carlory <baofa.fan@daocloud.io>
2026-01-19 11:35:30 +08:00
carlory
be0e68ba84 remove featureGate from PluginManager
Signed-off-by: carlory <baofa.fan@daocloud.io>
2026-01-19 11:35:30 +08:00
carlory
6d1afce678 remove GetHostName func from the VolumeHost interface
Signed-off-by: carlory <baofa.fan@daocloud.io>
2026-01-19 11:35:30 +08:00
carlory
299ec97e6f run hack/update-vendor.sh
Signed-off-by: carlory <baofa.fan@daocloud.io>
2026-01-19 11:35:30 +08:00
carlory
46727c48eb remove portworx from in-tree volume plugins
Signed-off-by: carlory <baofa.fan@daocloud.io>
2026-01-19 11:35:30 +08:00
carlory
c8fc0a1b98 remove CSIMigrationPortworx and InTreePluginPortworxUnregister feature gates
Signed-off-by: carlory <baofa.fan@daocloud.io>
2026-01-19 11:35:29 +08:00
Kubernetes Prow Robot
dc9fbf0a10
Merge pull request #136300 from ShaanveerS/bump-agnhost-v2.61
test/images: bump agnhost to v2.61
2026-01-19 07:47:11 +05:30
Davanum Srinivas
9dda58194a
Update agnhost to 2.61 and etcd to 3.6.7-0 in test manifests
Update outdated image versions across test manifests and add tracking
to build/dependencies.yaml for version drift detection via zeitgeist:

- agnhost: 2.32/2.53/2.54/2.57 → 2.61 (latest)
- etcd: 3.2.24 → 3.6.7-0
- kitten/nautilus BASEIMAGE: agnhost 2.57 → 2.61

and added etcd statefulset reference to existing etcd entry.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2026-01-18 20:39:57 -05:00
qiuxue
9cfa16d35e Fix(kubelet/test): flaky TestWaitForAllPodsUnmount by adding goroutine synchronization 2026-01-19 02:11:22 +08:00
Kubernetes Prow Robot
02e674769e
Merge pull request #136014 from SataQiu/fix-20260104
kubeadm: waiting for etcd learner member to be started before promoting during 'kubeadm join'
2026-01-18 18:33:10 +05:30
ShaanveerS
d800e7e052 test/images: bump agnhost to v2.61 2026-01-18 12:57:37 +01:00
Roman Baron
08819ca8f4 scheduler: Changed upadteMetrics lock to RLock 2026-01-18 11:05:13 +02:00
Kubernetes Prow Robot
1c9180cd45
Merge pull request #136081 from lalitc375/dv-native
Dv native support in the validation-gen framework,
2026-01-18 12:11:09 +05:30
thc1006
e89362f1db fix(kubelet): convert V().Error() to V().Info() in volumemanager
Apply the same verbosity-aware logging fix to volumemanager components:
- desired_state_of_world.go (2 instances)
- reconciler/reconstruct.go (1 instance)

This completes the kubelet-wide fix for V().Error() ignoring verbosity.

Signed-off-by: thc1006 <84045975+thc1006@users.noreply.github.com>
2026-01-17 14:24:07 +00:00
thc1006
3e9b24cffb fix(kubelet): convert V().Error() to V().Info() for verbosity-aware logging
The go-logr package ignores verbosity level (V()) for Error() calls,
causing these logs to always print regardless of the -v flag setting.
Convert to Info() with "err" key-value pair to respect verbosity levels.

This change covers 23 instances across kubelet components:
- prober (4 instances)
- lifecycle (4 instances)
- stats (3 instances)
- kuberuntime (2 instances)
- pleg (1 instance)
- allocation (1 instance)
- cm/devicemanager (1 instance)
- cm/dra (1 instance)
- metrics/collectors (1 instance)
- kubelet.go (3 instances)
- images/pullmanager (2 instances)

Ref: https://github.com/kubernetes/kubernetes/issues/136027
Signed-off-by: thc1006 <84045975+thc1006@users.noreply.github.com>
2026-01-17 14:23:53 +00:00
hoteye
5cd3a4ffc6 kubelet: migrate kubelet_getters.go to contextual logging
Migrate kubelet_getters.go and related functions to use contextual logging.
  Functions that only need logging receive logger klog.Logger directly instead
  of ctx context.Context.

  Changes:
  - getPodVolumePathListFromDisk: ctx -> logger
  - getMountedVolumePathListFromDisk: ctx -> logger
  - getPodVolumeSubpathListFromDisk: ctx -> logger
  - getLastObservedNodeAddresses: ctx -> logger
  - podVolumesExist: ctx -> logger
  - removeOrphanedPodVolumeDirs: ctx -> logger
  - cleanupOrphanedPodDirs: ctx -> logger
  - cleanupOrphanedPodCgroups: ctx -> logger

  Callers use klog.FromContext(ctx) to obtain logger from existing context.
2026-01-17 17:53:16 +08:00
Yuvraj
9c9b335294 kubelet: add unit tests for QoS CPU shares update
Signed-off-by: Yuvraj <yuvrajsinghbhadoria@gmail.com>
2026-01-17 14:42:59 +05:30
Kubernetes Prow Robot
9bfe52e1fe
Merge pull request #136191 from saschagrunert/psi-memory-pressure-test
Skip memory pressure PSI test for CRI-O
2026-01-17 09:27:15 +05:30
Kubernetes Prow Robot
57e68a76e3
Merge pull request #135842 from liyuerich/commentstartauthentication
enable commentstart check on authentication API group
2026-01-17 08:35:22 +05:30
Kubernetes Prow Robot
751ab64d57
Merge pull request #135837 from dgrisonnet/increase-resource-limits
test/e2e: fix pod resize test flakes on CRI-O/runc environments
2026-01-17 08:35:15 +05:30
Kubernetes Prow Robot
e869f3c0d0
Merge pull request #136180 from bart0sh/PR215-migrate-kubelet_pods-to-contextual-logging
migrate kubelet_pods* to contextual logging
2026-01-17 06:59:22 +05:30
Kubernetes Prow Robot
a966be1a07
Merge pull request #136026 from KyungHwanKim-devs/fix-goroutine-leak-kubelet-pluginmanager
Fix potential goroutine leak in kubelet operation_executor_test
2026-01-17 06:59:15 +05:30
Kubernetes Prow Robot
6817bea700
Merge pull request #136274 from pohly/e2e-ginkgo-forbidigo
golangci-lint: enforce control over ginkgo.ReportBeforeSuite/ReportAfterSuite
2026-01-17 02:31:31 +05:30
Kubernetes Prow Robot
6414ab0e3d
Merge pull request #136229 from thc1006/fix/issue-136027-apiserver-error-verbosity
fix(apiserver): convert V().Error() to V().Info()
2026-01-17 02:31:24 +05:30
Kubernetes Prow Robot
49f5ecc02c
Merge pull request #135874 from mochizuki875/make_general_profile_default
kubectl debug: make general profile default
2026-01-17 02:31:16 +05:30
Kubernetes Prow Robot
ae76dd831d
Merge pull request #136168 from bart0sh/PR214-DRA-kubelet-OWNERS-update
Add pohly and bart0sh as approvers for kubelet/cm/dra
2026-01-17 01:33:24 +05:30
Kubernetes Prow Robot
9bbfe74def
Merge pull request #135744 from ali-a-a/describe-service-app-protocol
Add appProtocol to the service describe output
2026-01-17 01:33:17 +05:30
Kubernetes Prow Robot
8de4a11252
Merge pull request #136156 from pohly/dra-upgrade-downgrade-refactor-2
DRA: upgrade/downgrade refactor, II
2026-01-16 23:31:15 +05:30
Patrick Ohly
391a58ce24 test dependencies: logtools v0.10.0
The update logcheck linter will warn about logger.V().Error by default. Such
calls make no sense because logr by design treats this like logger.Error. In
Kubernetes, they tend to be the result of an incorrect conversion of
klog.V().Error[S], which does check the verbosity. With logger, Error needs to
be replaced by Info.
2026-01-16 18:44:21 +01:00
Kubernetes Prow Robot
e86e7123c1
Merge pull request #136278 from AutuSnow/fix/kubelet/WaitForAllPodsUnmount
fix(kubelet):resolve loop variable capture bug in WaitForAllPodsUnmount
2026-01-16 22:21:17 +05:30
Keita Mochizuki
211e77a996
Update staging/src/k8s.io/kubectl/pkg/cmd/debug/debug.go
Co-authored-by: Maciej Szulik <soltysh@gmail.com>
2026-01-16 23:45:12 +09:00
qiuxue
aeb9002d14 fix(kubelet):resolve loop variable capture bug in WaitForAllPodsUnmount 2026-01-16 22:37:50 +08:00
Patrick Ohly
7a480de230 E2E: check system logs for DATA RACE reports
While an E2E suite runs, logs of all containers in the "kube-system"
namespace (customizable via command line flag) are retrieved and checked for
"DATA RACE" errors. The kubelet logs are retrieved through the log query
feature. By default, this is attempted on all nodes and it is a test failure
if the log query feature is not enabled. The nodes to check can be customized
via another command line flag.

Data races only get reported if the cluster components were built with data
race detection, so in most clusters this additional checking wouldn't find
anything and therefore is off by default.

The failure message is in Markdown format and ready to be copy-and-pasted into
a GitHub issue.
2026-01-16 15:14:54 +01:00
Kubernetes Prow Robot
08764697f4
Merge pull request #135381 from kannon92/mutable-pod-replacement-policy
[KEP-5440]: Add integration test for MutablePodResourcesForSuspendedJobs with Pod Replacement Policy = Failed
2026-01-16 19:29:16 +05:30
Patrick Ohly
e058fbdd99 golangci-lint: enforce control over ginkgo.ReportBeforeSuite/ReportAfterSuite
https://git.k8s.io/enhancements/keps/sig-testing/5468-invariant-testing
introduced a mechanism for tests which hook into the test suite run via
ginkgo.ReportAfterSuite. Usage was limited to code in test/e2e/invariants with
stricter reviews.

However, this was not enforced mechanically. With forbidigo we can be sure that
nothing slips through.

ginkgo.ReportBeforeSuite has similar restrictions.
2026-01-16 13:32:05 +01:00
Davanum Srinivas
f727e938dc
Update gRPC ecosystem dependencies
Update the gRPC ecosystem to pick up performance improvements,
bug fixes, and maintain compatibility with the latest protobuf
and OpenTelemetry releases.

Notable changes in grpc v1.78.0:
- mem.Reader interface changed to struct
- Legacy pick_first load balancer policy removed (pickfirstleaf)
- Improved connection state management

Updated dependencies:
- grpc-gateway/v2: v2.27.4 (2025-12-26)
- go-grpc-middleware/v2: v2.3.3 (2025-11-04)
- go-grpc-middleware/providers/prometheus: v1.1.0 (2025-06-16)
- google.golang.org/grpc: v1.78.0 (2025-12-23)
- genproto/googleapis/api: v0.0.0-20260112192933-99fd39fd28a9 (2026-01-12)
- genproto/googleapis/rpc: v0.0.0-20260112192933-99fd39fd28a9 (2026-01-12)

Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2026-01-16 07:20:17 -05:00
Lubomir I. Ivanov
283df2214c kubeadm: bump the CreatJob check timeout to 1 minute
During upgrade on Windows nodes the pause image is
bigger and there are various other factors that differ from
Linux.

Users can prepull images with `kubeadm config images pull
--kubernetes-version TARGET`, but it seems reasonable
to increase the rather short timeout of 15 seconds for
this preflight check.

Additionally users can always skip it with
--ignore-preflight-errors=...
2026-01-16 13:00:09 +01:00
Kubernetes Prow Robot
f4ed7b3e28
Merge pull request #135951 from droach282/cronjob-schedule-dv
Adding declarative validations to CronJob Schedule field
2026-01-16 17:18:49 +05:30
Kubernetes Prow Robot
a94970c0c5
Merge pull request #136212 from dims/update-security-deps-jan2026-v2
Update security and stability dependencies
2026-01-16 15:38:41 +05:30
Sascha Grunert
19e1f9cce2
Skip memory pressure PSI test for CRI-O
Skip the memory pressure PSI test when running with CRI-O until automatic
memory.high configuration is available in the runtime. The test fails on
Fedora CoreOS due to different page cache reclaim behavior, and CRI-O is
implementing a fix to automatically set memory.high to 95% of memory.max
for cgroup v2 containers.

Signed-off-by: Sascha Grunert <sgrunert@redhat.com>
2026-01-16 09:03:01 +01:00
Patrick Ohly
1847d5b1a2 DRA e2e+integration: test ResourceSlice controller
The "create 100 slices" E2E sometimes flaked with timeouts (e.g. 95 out of 100
slices created). It created too much load for an E2E test.

The same test now uses ktesting as API, which makes it possible to run it as
integration test with the original 100 slices and with more moderate 10 slices
as E2E test.

(cherry picked from commit c47ad64820)
2026-01-16 08:10:37 +01:00
Patrick Ohly
11dcfc6c15 ktesting: replace Begin/End with TContext.Step
Manually pairing Being with End is too error prone to be useful. It had the
advantage of keeping variables created between them visible to the following
code, but that doesn't justify using those calls.

By using a callback we can achieve a few things:

- Code using it automatically shadows the parent tCtx, thus enforcing
  that within a code block the tCtx with step is used consistently.
- The code block is clearly delineated with curly braces.
- When the code block ends, the unmodified parent tCtx is automatically
  in scope again.

Downsides:

- Extra boilerplate for the anonymous function.
  Python's `with tCtx.Step(...) as tCtx: ` would be nicer.
  As an approximation of that `for tCtx := range tCtx.Step(...)` was
  tried with `Step` returning an iterator, but that wasn't very idiomatic.
- Variables created inside the code block are not visible outside of it.

(cherry picked from commit 047682908d)
2026-01-16 08:10:36 +01:00
Patrick Ohly
d44d0281eb DRA upgrade/downgrade: rewrite as Go unit test
tCtx.Run and sub-tests make it much simpler to separate the different steps
than with Ginkgo because unless a test runs tCtx.Parallel (which we don't do
here), everything runs sequentially in a deterministic order.

Right now we get:

    ...
        localupcluster.go:285: I1210 12:24:22.067524] bring up v1.34: stopping kubelet
        localupcluster.go:285: I1210 12:24:22.067548] bring up v1.34: stopping kube-scheduler
        localupcluster.go:285: I1210 12:24:22.067570] bring up v1.34: stopping kube-controller-manager
        localupcluster.go:285: I1210 12:24:22.067589] bring up v1.34: stopping kube-apiserver
    --- PASS: TestUpgradeDowngrade (94.78s)
        --- PASS: TestUpgradeDowngrade/after-cluster-creation (2.07s)
            --- PASS: TestUpgradeDowngrade/after-cluster-creation/core_DRA (2.05s)
            --- PASS: TestUpgradeDowngrade/after-cluster-creation/ResourceClaim_device_status (0.02s)
        --- PASS: TestUpgradeDowngrade/after-cluster-upgrade (4.10s)
            --- PASS: TestUpgradeDowngrade/after-cluster-upgrade/core_DRA (4.09s)
            --- PASS: TestUpgradeDowngrade/after-cluster-upgrade/ResourceClaim_device_status (0.01s)
        --- PASS: TestUpgradeDowngrade/after-cluster-downgrade (1.24s)
            --- PASS: TestUpgradeDowngrade/after-cluster-downgrade/core_DRA (1.21s)
            --- PASS: TestUpgradeDowngrade/after-cluster-downgrade/ResourceClaim_device_status (0.02s)
    PASS

It's even possible to use `-failfast` and
e.g. `-run=TestUpgradeDowngrade/after-cluster-creation/core_DRA`: `go test` then
runs everything up to that sub-test or any failing sub-test, then stops and
cleans up.

(cherry picked from commit de47714879)
2026-01-16 07:54:51 +01:00
Patrick Ohly
06d52b7702 CSI: revert introduction of context with cancellation
The traditional behavior of PodIO was to ignore the context. Changing that to
use the canceled context was risky because maybe some cleanup operation after
cancellation of the context wouldn't run anymore when it previously did.

However, this is theoretical. Tests all seemed to pass fine even without this
change.
2026-01-16 07:53:00 +01:00
Patrick Ohly
4a3d822689 DRA e2e: make driver deployment possible in Go unit tests
This leverages ktesting as wrapper around Ginkgo and testing.T to make all
helper code that is needed to deploy a DRA driver available to Go unit
tests and thus integration tests.

How to proceed with unifying helper code for integration and E2E testing is
open. This is just a minimal first step in that direction. Ideally, such
code should be in separate packages where usage of Ginkgo, e2e/framework
and gomega.Expect/Eventually/Consistently are forbidden.

While at it, the builder gets extended to make cleanup optional.
This will be needed for upgrade/downgrade testing with sub-tests.

(cherry picked from commit 7c7b1e1018)
2026-01-16 07:53:00 +01:00
Patrick Ohly
db36339d03 e2e framework: avoid memory overhead of ginkgo.GinkgoT
It turned out that ginkgo.GinkgoT() wasn't as cheap as it should have been (fix
coming in Ginkgo 2.27.5). When instantiated once for each framework.Framework
instance during init by all workers at the same time, the resulting spike in
overall memory usage within the container caused OOM killing of workers in Prow
jobs like ci-kubernetes-e2e-gci-gce with very tight memory limits.

Even with the upcoming fix in Ginkgo it makes sense to set the TB field only
while it really is needed, i.e. while a test runs. This is conceptually similar
to setting and unsetting the test namespace. It may help to flush out incorrect
usage of TB outside of tests.
2026-01-16 07:53:00 +01:00
Patrick Ohly
0d64cbff49 e2e framework: support creating TContext
This makes it possible to call helper packages which expect a TContext from E2E
tests.

The implementation uses GinkgoT as TB and supports registering cleanup
callbacks which expect a context. These callbacks then run with a context that
comes from ginkgo.DeferCleanup, just as if they had called that directly.

(cherry picked from commit 47b613eded)
2026-01-16 07:53:00 +01:00
Patrick Ohly
4864f45cc3 DRA upgrade/downgrade: split out individual test steps
This approach with collecting results from callbacks in a main ginkgo.It and
using them as failures in separate ginkgo.It callbacks might be the best that
can be done with Ginkgo.

A better solution is probably Go unit tests with sub-tests.

(cherry picked from commit 65ef31973c)
2026-01-16 07:52:55 +01:00
Patrick Ohly
7421eea877 ktesting: install signal handler on demand
The ktesting package is meant to be usable in E2E suites and then must not
affect signal handling in Ginkgo.
2026-01-16 07:51:29 +01:00
Kubernetes Prow Robot
81383b249f
Merge pull request #135164 from helayoty/helayoty/workload-declarative-validation
KEP-4671: Add Declarative Validation to Workload API
2026-01-16 12:13:11 +05:30
Yuvraj
b8af7e8ea8 kubelet: fix data race in QoS cgroup CPU shares test 2026-01-16 11:00:53 +05:30
Kubernetes Prow Robot
1d45fecf9a
Merge pull request #135685 from chaochn47/master-fix-audit-log
Bugfix: calculate request latency properly in audit log filter
2026-01-16 09:25:12 +05:30
David Yu
e616260c7d log diff in consistent checker 2026-01-15 18:03:26 -08:00
Kubernetes Prow Robot
e777bba0b2
Merge pull request #136243 from dims/mounttest-tmpfs-detection
Add tmpfs detection to mounttest and unit tests
2026-01-16 07:07:11 +05:30
Davanum Srinivas
5b478645cd
Update security and stability dependencies
This PR updates several dependencies addressing security vulnerabilities,
stability fixes, and authentication improvements.

- golang.org/x/crypto: v0.46.0 -> v0.47.0
  - Includes latest X509 root certificate bundle updates
  - Security hardening for cryptographic operations
  - Foundation dependency for TLS and authentication

- github.com/golang-jwt/jwt/v5: v5.2.2 -> v5.3.0
  - IMPORTANT: v5.2.2 patched vulnerability GHSA-mh63-6h87-95cp (token
    validation security issue) - this update ensures we have the fix
  - Adds multiple audience validation support for JWT tokens
  - Go 1.21 minimum requirement (code modernization)
  - Replaced legacy interface{} with modern any keyword

- golang.org/x/net: v0.48.0 -> v0.49.0
  - HTTP/2 priority scheduler improvements (RFC 9218)
  - WebSocket security enhancements
  - Network layer stability fixes

- go.uber.org/zap: v1.27.0 -> v1.27.1
  - Fix: Prevent Object from panicking on nils (PR #1501)
  - Fix: Race condition in WithLazy (PR #1511)
  - Both fixes improve logging stability in concurrent scenarios

- github.com/godbus/dbus/v5: v5.2.0 -> v5.2.2
  - Security: Disabled SHA1 authentication by default on non-Windows
    platforms (v5.2.0 change now inherited)
  - Performance: Multiple optimizations reducing memory allocations
  - Fix: Alignment issues in decoder operations
  - Fix: Allow more than 32 containers/struct fields in a signature

Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2026-01-15 19:57:11 -05:00
Kubernetes Prow Robot
c6ba23521c
Merge pull request #136257 from BenTheElder/go125.6
upgrade core binaries to go to 1.25.6 for CVE fixes
2026-01-16 05:53:11 +05:30
Kubernetes Prow Robot
a9af774b23
Merge pull request #136259 from BenTheElder/rip-logicalhan
emeritus logicalhan, rest in peace
2026-01-16 05:01:27 +05:30
Kubernetes Prow Robot
7de6160456
Merge pull request #136253 from lalitc375/testing-utils
Make sure errors present in declarative validation test files are DV …
2026-01-16 05:01:19 +05:30
Kubernetes Prow Robot
b82b03b924
Merge pull request #136008 from michaelasp/atomicResync
Add atomic resync operation for real fifo
2026-01-16 05:01:11 +05:30
Heba Elayoty
5d7208e48f
Add udpate and immutable tags on Workload API
Co-Author: Lalit Chauhan <lalitc375@gmail.com>

Signed-off-by: Heba Elayoty <heelayot@microsoft.com>
2026-01-15 14:26:40 -08:00
Chao Chen
f82471dee9 Bugfix: calculate request latency properly in audit log filter
Signed-off-by: Chao Chen <chaochn@amazon.com>
2026-01-15 22:07:25 +00:00
Kubernetes Prow Robot
f4f3e5f92c
Merge pull request #136247 from MikeZappa87/mzappa/deletedeadcode
Delete mistakenly added file
2026-01-16 03:05:13 +05:30
Michael Aspinwall
6fbaebc054 Add atomic resync and remove usage of store in FIFO 2026-01-15 21:18:25 +00:00
Dan Roach
5b5cc2d498 Adding declarative validations to CronJob 2026-01-15 14:05:15 -07:00
Lalit Chauhan
6e54b85d23 Remove non existent tags 2026-01-15 21:04:06 +00:00
Benjamin Elder
4c37109787 clone dep-approvers list to dep-reviewers to avoid warning about empty alias
we could remove the alias everywhere instead, but that's higher-churn, and the distinction may be useful in the future with onboarding new reviewer => approvers
2026-01-15 12:19:49 -08:00
Benjamin Elder
a60d114402 emeritus logicalhan, rest in peace
https://github.com/cncf/memorials/blob/main/han-kang.md
2026-01-15 12:18:02 -08:00
Benjamin Elder
9e27ee8042 bump go to 1.25.6 for CVE fixes 2026-01-15 11:25:15 -08:00
Patrick Ohly
33301aec54 webhook admission: avoid risk of flakes
The unit test flaked at least once so far in the CI. Cannot be reproduced
locally, though.

    === RUN   TestGetMutatingWebhookConfigSmartReload/create_configuration_and_update_moar_of_them
        mutating_webhook_manager_test.go:238: Expected number of webhooks 4 received 0
        mutating_webhook_manager_test.go:245: Expected number of creations 4 received 0
        mutating_webhook_manager_test.go:266: Expected final number of webhooks 5 received 3
    --- FAIL: TestGetMutatingWebhookConfigSmartReload/create_configuration_and_update_moar_of_them (2.00s)

There were two potential root causes:
- The watch must be set up completely before creating objects (a fake
  client-go limitation, fix separately).
- The delay might be too small on a loaded system.

By running the tests in a synctest bubble with synctest.Wait calls at
the right places both problems are avoided. As a welcome side effect
the test also completes faster.

Before:

    ok  	k8s.io/apiserver/pkg/admission/configuration	21.036s

After:

    ok  	k8s.io/apiserver/pkg/admission/configuration	4.029s

    2m0s: 13801 runs so far, 0 failures
2026-01-15 19:45:47 +01:00
Kubernetes Prow Robot
fd41228d1a
Merge pull request #136246 from dims/update-vendor-deps-cadvisor-containerd-oci
Update vendored dependencies: cadvisor, containerd, runtime-spec, selinux
2026-01-15 23:53:38 +05:30
Lalit Chauhan
c3fecccd3e Make sure errors present in declarative validation test files are DV errors 2026-01-15 17:42:02 +00:00
Kubernetes Prow Robot
1dde6f3475
Merge pull request #135584 from pohly/dra-upgrade-downgrade-tests
DRA testing: upgrade/downgrade preparation for 1.35
2026-01-15 22:41:40 +05:30
Davanum Srinivas
d3d78ce0dd
Add tmpfs detection to mounttest and unit tests
Refactor fsType() to use a platform-specific formatFsType() helper that
translates filesystem magic numbers to human-readable names. On Linux,
tmpfs filesystems now display as "tmpfs" instead of the raw magic number.

Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2026-01-15 12:02:56 -05:00
Kubernetes Prow Robot
8392659d3c
Merge pull request #136143 from pohly/client-go-fake-list-and-watch-fix
client-go testing: fix List+Watch support
2026-01-15 21:35:36 +05:30
Michael Zappa
b651f2f34d
delete dead code 2026-01-15 09:00:40 -07:00
Davanum Srinivas
050c786014
Update vendored dependencies: cadvisor, containerd, runtime-spec, selinux
Update the following vendored dependencies:

- github.com/google/cadvisor: v0.55.1 -> v0.56.0
- github.com/containerd/containerd/api: v1.9.0 -> v1.10.0
- github.com/opencontainers/runtime-spec: v1.2.1 -> v1.3.0
- github.com/opencontainers/selinux: v1.13.0 -> v1.13.1

cadvisor v0.56.0 changes:
- Add s390x (IBM Z/mainframe) CPU topology support with NumBooks and
  NumDrawers fields in MachineInfo
- Add new Prometheus metrics: machine_cpu_books and machine_cpu_drawers
- Add standard deviation (Std) field to Percentiles for resource statistics
- Add sysfs constants CPUBookID and CPUDrawerID for s390x topology detection

containerd/api v1.10.0 changes:
- Add ActiveMount message type for tracking mounts with timestamps
- Add ActivationInfo message for mount management and lifecycle tracking

runtime-spec v1.3.0 changes (from ChangeLog):
- Add FreeBSD platform support with new Spec.FreeBSD field
- Add netDevices object for moving network devices to container namespaces
- Add memoryPolicy object for NUMA memory policy configuration
- Add hwConfig object for VM-based containers (vcpus, memory, device-tree)
- Add iomems for hardware I/O memory page access in VMs
- Add intelRdt.schemata and intelRdt.enableMonitoring fields
- Change LinuxPids.Limit to pointer type for optional handling
- Clarify intelRdt configuration and pids cgroup settings

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2026-01-15 10:26:13 -05:00
Patrick Ohly
3783a720e7 client-go testing: start ResourceVersion at 1 for empty set
List should never return "0", that has a special meaning in queries.
2026-01-15 16:08:23 +01:00
Patrick Ohly
359aff0552 client-go testing: include event handler in List+Watch unit test
The event handler must receive both object (the initial one from List, the
newer one from Watch) and it must be considered synced.
2026-01-15 16:08:23 +01:00
Patrick Ohly
6bfa727bee client-go testing: fix List+Watch support
5644850607 added support for List+Watch to a fake client-go instance.
However, that support was not quite working yet as seen when analyzing a test
flake:

- List returned early when there were no objects, without adding the
  ResourceVersion. The ResourceVersion should have been "0" instead.
- When encountering "" as ResourceVersion, Watch didn't deliver
  any objects. That was meant to preserve compatibility with clients
  which don't expect objects from a Watch, but the right semantic of
  "" is "Start at most recent", which includes delivering existing
  objects.

Tests which meddle with the List implementation via a reactor (like
clustertrustbundlepublisher) have to be aware that Watch now may
return objects when given an empty ResourceVersion.
2026-01-15 16:08:23 +01:00
Kubernetes Prow Robot
2c677fe034
Merge pull request #135563 from yangjunmyfm192085/fixkubectl
When using kubectl to delete multiple sts pods simultaneously, it gets stuck and won't exit
2026-01-15 20:15:35 +05:30
Kubernetes Prow Robot
3fe167e586
Merge pull request #136245 from soltysh/clarify_scaling
Eliminate duplicate scale methods deployment controller in favor of a parameter
2026-01-15 19:13:40 +05:30
Yuvraj
deb23a8f84 kubelet: add unit tests for QoS CPU shares update
Add unit test coverage for UpdateCgroups() to verify that CPU
shares are correctly computed and applied for Guaranteed,
Burstable, and BestEffort QoS classes based on active pods.

This improves test coverage in the QoS container manager area,
as suggested in tracker #109717.

Signed-off-by: Yuvraj <yuvrajsinghbhadoria@gmail.com>
2026-01-15 19:11:37 +05:30
Maciej Szulik
5f21c6c709
Eliminate duplicate scale methods deployment controller in favor of a parameter
This initially was attempted in 5f083e3b9f
but it caused e2e failing heavily (see
https://github.com/kubernetes/kubernetes/issues/135222 for more details).
The changes proposed in e6641cd290
clarified the naming of the two existing scale methods but they still
leave both of them as is.

This change goes a step further by combining both into a single method
with a parameter `forceUpdate` which is responsible for driving the mode
of execution between lazy update and a forced update.

Signed-off-by: Maciej Szulik <soltysh@gmail.com>
2026-01-15 13:50:39 +01:00
Kubernetes Prow Robot
14d67d489c
Merge pull request #135981 from vshkrabkov/fix/unschedulable_pods_broke_while_preenqueue
Fix unschedulable pods metric broke while preenqueue
2026-01-15 18:11:35 +05:30
Ed Bartosh
eb2cf5ad04 migrate kubelet_pods* to contextual logging 2026-01-15 12:30:24 +02:00
Kubernetes Prow Robot
0ba578f91f
Merge pull request #135393 from tosi3k/parallel-prebind
Run PreBind plugins in parallel
2026-01-15 12:39:34 +05:30
Kubernetes Prow Robot
8b1496ac62
Merge pull request #136184 from yongruilin/master_dependenttag
feat(kube-api-linter): add dependenttags linter for k8s:unionMember
2026-01-15 11:09:45 +05:30
Kubernetes Prow Robot
b40830cca7
Merge pull request #135794 from AutuSnow/master
kubelet: resolve data race in WaitForAllPodsUnmount when collecting errors(#134083)
2026-01-15 11:09:37 +05:30
SataQiu
5e334d9b57 kubeadm: waiting for etcd learner member to be started before promoting during 'kubeadm join' 2026-01-15 10:52:16 +08:00
Kubernetes Prow Robot
e79df94fc8
Merge pull request #136064 from coillteoir/master
testing: reintegrate volume image e2e test
2026-01-15 07:27:34 +05:30
Kubernetes Prow Robot
8322d26d1f
Merge pull request #135462 from michaelasp/atomicReplace
Add atomic replace in client-go
2026-01-15 03:35:37 +05:30
Kubernetes Prow Robot
3ad38f3885
Merge pull request #132120 from flpanbin/fix-requestedToCapacityRatio-nil-pointer
fix the noderesourcefit plugin's nil pointer by validating RequestedToCapacityRatio config
2026-01-15 02:35:37 +05:30
yongruilin
49be15534e feat: Enforce +k8s:optional on +k8s:unionMember fields via dependenttag linter 2026-01-14 20:08:59 +00:00
yongruilin
37e05b74c7 update sigs.k8s.io/kube-api-linter to latest 2026-01-14 20:02:30 +00:00
Kubernetes Prow Robot
285222e92e
Merge pull request #136192 from dnaeon/fix/defaulter-gen-leftover
code-generator/defaulter-gen: remove a leftover
2026-01-15 01:29:35 +05:30
Roman Baron
827f5fc9fc scheduler: Updated cache state machine diagram 2026-01-14 21:28:16 +02:00
Michael Aspinwall
3d585f1c50 Add support for ReplacedAll delta handling 2026-01-14 19:00:32 +00:00
Michael Aspinwall
022fec7ba8 Plumb AtomicFIFO options into controller/store construction 2026-01-14 19:00:32 +00:00
Michael Aspinwall
9e25c19199 Add AtomicFIFO feature gate 2026-01-14 19:00:32 +00:00
Michael Aspinwall
64f780c1ec Guard against unexpected delta types in batch processing 2026-01-14 19:00:32 +00:00
Michael Aspinwall
b8470beda4 Make PopBatch process a single-item batch identically to Pop 2026-01-14 19:00:32 +00:00
Michael Aspinwall
1c29ee7e7b Expand controller unit test coverage 2026-01-14 19:00:32 +00:00
Michael Aspinwall
4171c8cff8 Plumb keyFunc to informer/controller/delta handling 2026-01-14 19:00:31 +00:00
Michael Aspinwall
b94e610244 Refactor RealFIFO#Replace delete/update handling to reconcileReplacement 2026-01-14 19:00:31 +00:00
Michael Aspinwall
ebd6959b12 Fix Replaced delta documentation 2026-01-14 19:00:31 +00:00
Michael Aspinwall
2dad39751d Refactor delta addition/clearing 2026-01-14 19:00:31 +00:00
Kubernetes Prow Robot
cd8fc957c7
Merge pull request #135303 from vikasbolla/fix_pcr_flake
Fix context deadline exceeded in PodCertificate test
2026-01-15 00:27:46 +05:30
Kubernetes Prow Robot
616fff8247
Merge pull request #131317 from bitoku/fix-static-init
Fix:Static pod status is always Init:0/1 if unable to get init container status
2026-01-15 00:27:38 +05:30
thc1006
97bbd4246c fix(apiserver): convert V().Error() to V().Info() for verbosity-aware logging
The go-logr/logr package ignores verbosity levels when using the Error
method. This means logger.V(1).Error() will always log regardless of
the verbosity setting, which contradicts the developer's intent.

This commit converts V(1).Error(err, "msg") to V(1).Info("msg", "err", err)
in the authorizeUnsafeDelete function to properly respect the verbosity
level.

This issue was identified in PR #136190 which adds a logcheck linter
rule to detect this pattern.
2026-01-14 16:13:26 +00:00
Kubernetes Prow Robot
cc55e34478
Merge pull request #135567 from aviralgarg05/fix-flaky-test-apply-crd-during-finalization
Fix flaky TestApplyCRDuringCRDFinalization test
2026-01-14 19:51:46 +05:30
HirazawaUi
3532789fdb Fix data race in kubelet pod allocated resources 2026-01-14 22:16:29 +08:00
Kubernetes Prow Robot
c086a712b1
Merge pull request #136197 from bart0sh/PR217-use-benchtime-1x-in-scheduler_perf-doc
scheduler_perf: use -benchtime=1x in the test examples
2026-01-14 19:01:38 +05:30
David Lynch
df66e4728b Back out "Remove image volume e2e test because CI has containerd < 2.1"
Original commit changeset: 71ddb98ae4

user: David Lynch <davite3@protonmail.com>
2026-01-14 12:36:03 +00:00
HirazawaUi
a03ca7aa5a Fix data race in kubelet status manager 2026-01-14 20:27:25 +08:00
Roman Bednar
53fa7aa1eb csi: raise kubelet CSI init backoff to cover ~140s DNS delays
- bump init backoff to Duration=30ms, Factor=8 (Steps=6) to yield ~140s total
- prevent kubelet restarts when DNS is blackholed and NSS must fall back to myhostname
- keep CSI/CSINode initialization alive long enough to complete in ARO DNS-failure scenarios
2026-01-14 12:05:09 +01:00
Ed Bartosh
d966d9b89d scheduler_perf: use -benchtime=1x in the test examples
Update scheduler performance test examples to use `-benchtime=1x`
instead of `-benchtime=1ns` for explicitly running each benchmark
exactly once. This makes the intent clearer and aligns the examples
with recommended Go benchmark usage.

Co-authored-by: Patrick Ohly <patrick.ohly@intel.com>
2026-01-14 11:07:32 +02:00
Kubernetes Prow Robot
62277ef5d2
Merge pull request #136199 from saschagrunert/master
Fix credential test by setting `AlwaysVerify` policy
2026-01-14 08:49:43 +05:30
Kubernetes Prow Robot
8bafe2cef1
Merge pull request #136198 from serathius/approver-storage
Add serathius as approver for apiserver storage
2026-01-14 08:49:35 +05:30
Heba Elayoty
7ca8d8154c
Update codegen for validation
Signed-off-by: Heba Elayoty <heelayot@microsoft.com>
2026-01-13 15:10:21 -08:00
Kubernetes Prow Robot
c29a5d73a6
Merge pull request #136162 from dims/update-security-deps-jan2026
Update security-critical authentication and protobuf dependencies
2026-01-14 04:15:34 +05:30
Heba Elayoty
63708d84dc
Add comment for the reason behind not checking empty or too-long names
Signed-off-by: Heba Elayoty <heelayot@microsoft.com>
2026-01-13 14:37:38 -08:00
Davanum Srinivas
c825d80bbf Update security-critical authentication and protobuf dependencies
This PR updates security-critical dependencies addressing authentication
and data parsing vulnerabilities.

**Authentication Security:**
- github.com/coreos/go-oidc: v2.3.0 -> v2.5.0
  - Security fix: Now verifies token signature BEFORE validating payload
  - Prevents potential processing of tampered tokens before cryptographic
    verification

- github.com/cyphar/filepath-securejoin: v0.6.0 -> v0.6.1
  - Security fix: Fixed seccomp fallback logic - library now properly falls
    back to safer O_PATH resolver when openat2(2) is denied by seccomp-bpf
  - Fixed file descriptor leak in openat2 wrapper during RESOLVE_IN_ROOT

- cyphar.com/go-pathrs: v0.2.1 -> v0.2.2
  - Companion update to filepath-securejoin

**Protobuf Security:**
- google.golang.org/protobuf: v1.36.8 -> v1.36.11
  - Security fix: Added recursion limit check in lazy decoding validation
  - Prevents potential stack exhaustion attacks via maliciously crafted
    protobuf messages
  - Also adds support for URL chars in type URLs in text-format

These updates are critical for:
- OIDC authentication in kube-apiserver
- Container filesystem path resolution (used by container runtimes)
- Protobuf message parsing throughout the codebase

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2026-01-13 16:56:16 -05:00
Heba Elayoty
24c161307f
Add tweak functions and enhance code readability
Signed-off-by: Heba Elayoty <heelayot@microsoft.com>
2026-01-13 13:42:55 -08:00
Heba Elayoty
36f5750042
Move path-segment validation to pkg content
This is where all the scrubbed validation helpers are going.

Note: This does NOT check for  or too-long inputs, and changing it now
would be a breaking change.

Co-authored-by: Tim Hockin <thockin@google.com>
Signed-off-by: Heba Elayoty <heelayot@microsoft.com>
2026-01-13 13:27:41 -08:00
Kubernetes Prow Robot
9674c06ec4
Merge pull request #135579 from Jefftree/controller-revision
Add index on ControllerRevision OwnerReference
2026-01-14 02:07:36 +05:30
Jefftree
2522628780 Add index for controller revision 2026-01-13 19:46:34 +00:00
Kubernetes Prow Robot
ce793bf4d6
Merge pull request #136077 from kannon92/sync-mutable-pod-mutable-scheduling-suspend-check
sync check in batch stategy to match AllowMutableSchedulingDirectives and AllowMutablePodResources
2026-01-14 01:11:42 +05:30
Kubernetes Prow Robot
b639540931
Merge pull request #135432 from pohly/apimachinery-featuregate-contextual-logging
featuregate: contextual logging
2026-01-14 01:11:35 +05:30
aviralgarg05
6264b559c9 Fix flaky TestApplyCRDuringCRDFinalization test
This PR fixes the flaky TestApplyCRDuringCRDFinalization test that was failing
intermittently on slower systems (s390x architecture, race detector builds).

The root cause was a race condition where the test would attempt to apply a CR
immediately after requesting CRD deletion, without waiting for the CRD to
actually enter the terminating state. The fix explicitly waits for the CRD
to have the Terminating condition set to True before attempting the apply.
2026-01-14 00:41:39 +05:30
Lalit Chauhan
d576a57620 Fix staticcheck lint error in validation-gen
Remove unnecessary assignment to blank identifier.
2026-01-13 17:56:23 +00:00
Lalit Chauhan
7e5c081339 validation-gen: Implement declarative validation native logic 2026-01-13 17:56:22 +00:00
Lalit Chauhan
bccf92dc3f Add DV support for cross field validators 2026-01-13 17:56:22 +00:00
Kubernetes Prow Robot
c6be052768
Merge pull request #129344 from pohly/log-client-go-apimachinery-network-util
apimachinery: contextual logging in network util code
2026-01-13 23:07:39 +05:30
Patrick Ohly
c16a07a8b1 featuregate: contextual logging
This is primarily useful in unit tests and therefore supported by
featuregate/testing. Without this, all warnings are emitted to stderr, with no
connection to the test which caused the warning to be emitted.

When a single test fails, `go test` started by showing all warnings triggered by
any test, not just the failed test:

    I1121 18:50:28.112284  396950 feature_gate.go:466] feature gates: {map[DRADeviceTaintRules:true DRADeviceTaints:true]}
    ...
    I1121 18:50:29.704907  396950 feature_gate.go:466] feature gates: {map[DRADeviceTaintRules:false DRADeviceTaints:false]}
    --- FAIL: TestAll (1.58s)
        --- FAIL: TestAll/Eviction (0.02s)

This warning was actually slightly broken: it passed an atomic.Value to Infof,
not the map. This violates the "must not be copied after first use" rule
for atomic.Value (thus wasn't thread-safe) and printed the value in an awkward
way (extra {}).

Now it shows that the feature gates are modified inside TestAll (in this example):

    --- FAIL: TestAll (1.56s)
        feature_gate.go:170: I1124 17:31:27.245108] Updated featureGates={"DRADeviceTaintRules":true,"DRADeviceTaints":true}
        --- FAIL: TestAll/Eviction (0.02s)
            --- FAIL: TestAll/Eviction/initial (0.00s)
        ...

        feature_gate.go:170: I1124 17:31:28.821975] Updated featureGates={"DRADeviceTaintRules":false,"DRADeviceTaints":false}
    FAIL
    FAIL	k8s.io/kubernetes/pkg/controller/devicetainteviction	1.602s
2026-01-13 18:20:59 +01:00
Kubernetes Prow Robot
c20e0bc541
Merge pull request #135958 from serathius/watchcache-store
Move store to cacher subpackage.
2026-01-13 21:41:40 +05:30
Patrick Ohly
588bba42c7 apimachinery: contextual logging in network util code 2026-01-13 16:55:36 +01:00
HirazawaUi
7632fe7a9b Fix data race in kubelet container manager 2026-01-13 23:52:51 +08:00
Roman Baron
788918e2f1 scheduler: Updated docs and comments 2026-01-13 17:04:06 +02:00
Roman Baron
944ce8f55c scheduler: Remove FinishBinding from cache 2026-01-13 17:04:06 +02:00
Roman Baron
74b7ff3c63 scheduler: Remove ttl parameter from cache.New signature 2026-01-13 17:04:06 +02:00
Roman Baron
6321b05160 scheduler: Remove assumed pods ttl from cache 2026-01-13 17:04:06 +02:00
Kubernetes Prow Robot
58000ddd0e
Merge pull request #136195 from HirazawaUi/upgrade-containerd-version
Upgrade the COS version (upgrade containerd to version v2.1+)
2026-01-13 19:39:38 +05:30
Sascha Grunert
1abe2c4860
Fix credential test by setting AlwaysVerify policy
The test expects unauthorized pods to be blocked from accessing cached
private images, but the default policy (NeverVerifyPreloadedImages)
allows access to any image previously pulled by the kubelet.

Configure the kubelet to use AlwaysVerify policy for this test, which
enforces credential checks for all images regardless of pull history.

Signed-off-by: Sascha Grunert <sgrunert@redhat.com>
2026-01-13 13:52:43 +01:00
Marek Siarkowicz
eb35b0a657 Add serathius as approver for apiserver storage 2026-01-13 13:22:05 +01:00
HirazawaUi
3164b73d28 upgrade containerd version to v2.1+ 2026-01-13 18:13:52 +08:00
Kubernetes Prow Robot
9f6977db54
Merge pull request #136086 from richabanker/graduate-watch_list_duration_seconds-BETA
Graduate watch_list_duration_seconds to BETA
2026-01-13 15:29:37 +05:30
Ed Bartosh
5c77f56ae6 add SIG-Node approvers to DRA dirs 2026-01-13 11:52:29 +02:00
Marin Atanasov Nikolov
73a0b5f08d code-generator/defaulter-gen: remove a leftover 2026-01-13 11:12:07 +02:00
Kubernetes Prow Robot
6b541e0b58
Merge pull request #135977 from pohly/test-parallel-fix
make test: fix support for PARALLEL
2026-01-13 09:51:41 +05:30
Neeraj Krishna Gopalakrishna
6045df84e0 Improve logging, doc and test for kubelet config-dir file extension 2026-01-13 08:55:13 +05:30
Kubernetes Prow Robot
e0464327ce
Merge pull request #135770 from dnaeon/code-generator/defaulter-gen
code-generator/defaulter-gen: generate defaults only if required tags are present
2026-01-13 08:33:36 +05:30
Kubernetes Prow Robot
fa8340b207
Merge pull request #136117 from lalitc375/dv-strategy
Add utilities to allow strategy.go files to enable DV native validations
2026-01-13 07:43:43 +05:30
Kubernetes Prow Robot
d68d48073f
Merge pull request #136112 from danwinship/network-1.36-cleanup
Drop TopologyAwareHints and ServiceTraficDistribution feature gates
2026-01-13 07:43:36 +05:30
Kubernetes Prow Robot
31cdb5de61
Merge pull request #136183 from aramase/aramase/i/fix_kms_test_136181
test: fix kind local registry config for kms ci jobs
2026-01-13 05:25:38 +05:30
helayoty
6a9f3a1509
Remove descriminated union
Signed-off-by: helayoty <heelayot@microsoft.com>
2026-01-12 14:22:58 -08:00
helayoty
f17edf7efb
Restructure validation tests to check declarative coverage 2026-01-12 14:22:58 -08:00
helayoty
251832a33c
Add union validation tags 2026-01-12 14:22:58 -08:00
helayoty
b75e665a7d
Add +k8s:minimum validation tag 2026-01-12 14:22:57 -08:00
helayoty
ac8fe6b94e
Add +k8s:format validation tags 2026-01-12 14:22:57 -08:00
helayoty
ac7b776537
Add +k8s:listType, +k8s:listMapKey, and +k8s:maxItems validation tags 2026-01-12 14:22:57 -08:00
helayoty
36ddf6c471
Add +k8s:required and +k8s:optional validation tags 2026-01-12 14:22:57 -08:00
helayoty
ce9797aa47
Add k8s-path-segment-name format validator 2026-01-12 14:22:57 -08:00
helayoty
f4c839950e
Wire up declarative validation for Workload API 2026-01-12 14:22:55 -08:00
Lalit Chauhan
42b8ceee21 Address feedbacks 2026-01-12 22:09:50 +00:00
Kubernetes Prow Robot
1c894014eb
Merge pull request #136161 from dims/update-golang-x-deps-jan2026
Update golang.org/x dependencies to latest versions
2026-01-13 03:05:37 +05:30
Anish Ramasekar
900a8030f3
test: fix kind local registry config for kms ci jobs
Signed-off-by: Anish Ramasekar <anish.ramasekar@gmail.com>
2026-01-12 12:59:14 -08:00
Kubernetes Prow Robot
477b99a8d8
Merge pull request #135759 from Abhigyan-Shekhar/fix-cel-race-condition
FIX: Deep copy MapType in CEL composition to prevent data race
2026-01-13 02:15:08 +05:30
Kubernetes Prow Robot
f2143d70db
Merge pull request #135597 from alvaroaleman/plumb-context
Service account controller: Wire through context
2026-01-13 02:15:00 +05:30
Kevin Hannon
986020d6bd sync check in batch stategy to match AllowMutableSchedulingDirectives and AllowMutablePodResources 2026-01-12 15:40:34 -05:00
Omer Aplatony
6cbb58349d
HPA: Enable DV support for MaxReplicas (#135412)
Signed-off-by: Omer Aplatony <omerap12@gmail.com>
2026-01-13 00:54:09 +05:30
Kubernetes Prow Robot
19d344fbee
Merge pull request #135887 from ErikJiang/fix/log-validation-messages
fix log validation messages
2026-01-13 00:00:17 +05:30
Kubernetes Prow Robot
f366ba158a
Merge pull request #135668 from yliaog/implicit
added unit test case to ensure implicit DRA extended resource is handled properly during pod admission at kubelet
2026-01-13 00:00:09 +05:30
Ignoramuss
687eb7cf5d api: regenerate openapi and lint config for scheduling changes 2026-01-12 09:08:13 -08:00
Kubernetes Prow Robot
4a29c352ce
Merge pull request #135949 from lalitc375/stability-tag-promotion
Promote validation-gen tags to Stable
2026-01-12 22:24:29 +05:30
Kubernetes Prow Robot
210881f0f0
Merge pull request #135485 from saschagrunert/fix-device-plugin-termination-grace-period
Fix device plugin admission failure after container restart
2026-01-12 22:24:22 +05:30
Kubernetes Prow Robot
af6c58193c
Merge pull request #135369 from saschagrunert/serial-tests
test: Fix image credential pulls test node scheduling
2026-01-12 22:24:13 +05:30
Patrick Ohly
71d7a2d92c e2e podlogs: resume following logs based on last time stamp
If receiving the log output fails for whatever reason, it now uses the last
seen time stamp to continue where it got interrupted.
2026-01-12 17:30:47 +01:00
Patrick Ohly
8da5d89069 e2e podlogs: support routing log output to some other destination
This enables callers to either do their own file handling or capture the log
output by implementing io.Writer.

While at it, some context handling gets fixed.
2026-01-12 17:30:47 +01:00
Patrick Ohly
68fec4eec0 ginkgo-e2e.sh: support arguments in KUBE_E2E_TEST_ARGS env variable
This is useful when invoked through kind's e2e-k8s.sh which doesn't support
passing through arguments.

The alternatives are:
- Extending e2e-k8s.sh to support passing through arguments.
- Bespoke copies of e2e-k8s.sh which set additional arguments.

Both seem more complex than allowing simple arguments to be passed through the
env variable.
2026-01-12 17:30:47 +01:00
Kubernetes Prow Robot
b9e2575a54
Merge pull request #135992 from bart0sh/PR212-migrate-remaining-kubelet-subdirs-to-contextual-logging
Migrate remaining kubelet subdirs to contextual logging
2026-01-12 19:58:41 +05:30
Kubernetes Prow Robot
b89a81cfcb
Merge pull request #136167 from Karthik-K-N/update-funcs
DRA: remove deprecated test method usage, fix linter hints
2026-01-12 18:04:39 +05:30
Sascha Grunert
172a65c71d
Fix device plugin admission failure after container restart
When a container restarts before kubelet restarts, containerMap has
multiple entries (old exited + new running). GetContainerID() may
return the exited container, causing the running check to fail. Fixed
by checking if ANY container for the pod/name is running.

Also filter terminal pods from podresources since they no longer
consume resources, and fix test error handling to avoid exiting
Eventually immediately on transient errors.

Signed-off-by: Sascha Grunert <sgrunert@redhat.com>
2026-01-12 11:55:25 +01:00
Kubernetes Prow Robot
6df7e09ad9
Merge pull request #135911 from ShaanveerS/add-udp-agnhost
Add UDP and explicit TCP support to agnhost porter
2026-01-12 16:16:06 +05:30
Karthik Bhat
8962f08815 Remove deprecated test methods 2026-01-12 16:15:04 +05:30
Ed Bartosh
b0375e76f0 Add pohly and bart0sh as approvers for kubelet/cm/dra 2026-01-12 12:43:07 +02:00
Ed Bartosh
0dc83930de logcheck: move all kubelet subdirs to contextual logging 2026-01-12 12:36:59 +02:00
Ed Bartosh
1c48267565 migrate pkg/kubelet/events to contextual logging 2026-01-12 12:36:59 +02:00
Ed Bartosh
597c20d050 migrate kubelet/stats to contextual logging 2026-01-12 12:36:59 +02:00
Ed Bartosh
1fa4951dd5 migrate kubelet/podcertificate to contextual logging 2026-01-12 12:36:58 +02:00
Ed Bartosh
152c2e5d1c migrate kubelet/images/pullmanager to contextual logging 2026-01-12 12:36:53 +02:00
Kubernetes Prow Robot
997ca903d8
Merge pull request #136127 from carlory/fix-3279
kubeadm: fix a bug where kubeadm upgrade is failed if the content of the `kubeadm-flags.env` file is `KUBELET_KUBEADM_ARGS=""`
2026-01-12 15:24:10 +05:30
carlory
f96472556c
kubeadm: fix a bug where kubeadm upgrade is failed if the content of the kubeadm-flags.env file is KUBELET_KUBEADM_ARGS=""
Signed-off-by: carlory <baofa.fan@daocloud.io>
2026-01-12 10:09:05 +08:00
Davanum Srinivas
0e67c56a8f
Update golang.org/x dependencies to latest versions
updates the golang.org/x package family to newer releases:

- golang.org/x/crypto: v0.45.0 -> v0.46.0
- golang.org/x/net: v0.47.0 -> v0.48.0
- golang.org/x/sys: v0.38.0 -> v0.40.0
- golang.org/x/time: v0.9.0 -> v0.14.0
- golang.org/x/oauth2: v0.30.0 -> v0.34.0
- golang.org/x/text: v0.31.0 -> v0.33.0
- golang.org/x/term: v0.37.0 -> v0.39.0
- golang.org/x/sync: v0.18.0 -> v0.19.0
- golang.org/x/mod: v0.29.0 -> v0.32.0
- golang.org/x/tools: v0.38.0 -> v0.40.0
- golang.org/x/exp: 8a7402abbf56 -> 944ab1f22d93

Security & Stability:
- x/crypto: Updated X509 root certificate bundle
- x/net: HTTP/2 PING optimization to reduce DoS detection triggers,
  data race fix in trace RenderEvents
- x/sys: Fixed out-of-bounds memory access in sockaddrIUCVToAny
- x/time: Fixed rate limiter overflow when using very low rates that
  could cause the limiter to jam open

Performance:
- x/time: ~19% improvement in Sometimes.Do when no interval configured

Maintenance:
- Various vet diagnostic fixes for Go 1.26 compatibility
- Dependency updates across the golang.org/x ecosystem

Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2026-01-11 16:26:07 -05:00
Antoni Zawodny
833b7205fc Run PreBind plugins in parallel if feasible 2026-01-11 14:19:18 +01:00
Antoni Zawodny
16b375e4ef Generalize ErrorChannel to other underlying types 2026-01-11 13:58:06 +01:00
Kubernetes Prow Robot
036cd9fc6e
Merge pull request #136151 from pohly/e2e-ktesting-revert
testing: partial revert of E2E + DRA upgrade/downgrade
2026-01-11 17:29:57 +05:30
Patrick Ohly
e999d595b1 testing: partial revert of E2E + DRA upgrade/downgrade
Refactoring the DRA upgrade/downgrade testing such that it runs as Go test
depended on supporting ktesting in the E2E framework. That change worked during
presubmit testing, but broke some periodic jobs. Therefore the relevant commits
from https://github.com/kubernetes/kubernetes/pull/135664/commits get reverted:

c47ad64820 DRA e2e+integration: test ResourceSlice controller
047682908d ktesting: replace Begin/End with TContext.Step
de47714879 DRA upgrade/downgrade: rewrite as Go unit test
7c7b1e1018 DRA e2e: make driver deployment possible in Go unit tests
65ef31973c DRA upgrade/downgrade: split out individual test steps
47b613eded e2e framework: support creating TContext

The last one is what must have caused the problem, but the other commits depend
on it.
2026-01-11 09:55:17 +01:00
Kubernetes Prow Robot
6714aef4aa
Merge pull request #136130 from LoginovIlia/kubeadm_use_newclientset
kubeadm: switch tests to NewClientset
2026-01-11 03:53:57 +05:30
yliao
e02f0e2ba5 added unit test case to ensure implicit DRA extended resource is handled properly during pod admission at kubelet 2026-01-10 16:57:08 +00:00
ShaanveerS
d1867b4864 agnhost porter add support UDP and SERVE_TCP_PORT 2026-01-10 05:47:25 +01:00
Kubernetes Prow Robot
8f20f72526
Merge pull request #136079 from lalitc375/for-each
Re-apply "Migrate ResourceSlice map key validation to declarative validation"
2026-01-10 07:27:46 +05:30
Kubernetes Prow Robot
51579e9c36
Merge pull request #135890 from CLBRITTON2/discovery-endpoint-dv
Feat: wire discovery group for declarative validation and migrate Endpoint.Addresses + EndpointSlice.AddressType
2026-01-10 07:27:38 +05:30
Kubernetes Prow Robot
5151096d1f
Merge pull request #136096 from pacoxu/patch-14
Update error message expectation in criproxy_test
2026-01-10 05:47:47 +05:30
Kubernetes Prow Robot
3ad5f1b8a9
Merge pull request #134681 from JoelSpeed/enable-kal-nonullable
Enable nonullable rule for Kube API Linter
2026-01-10 05:47:40 +05:30
Kubernetes Prow Robot
c71eec3c3f
Merge pull request #135687 from yashsingh74/cni-bump
Update CNI plugins to v1.9.0
2026-01-10 04:57:41 +05:30
Kubernetes Prow Robot
03e8ca9faa
Merge pull request #136115 from harche/remove_year
Remove year from runtime_test.go file copyright notice
2026-01-10 03:23:38 +05:30
Richa Banker
8d2838a53e Graduate watch_list_duration_seconds to BETA 2026-01-09 13:37:20 -08:00
Kubernetes Prow Robot
da22735138
Merge pull request #136041 from richabanker/update-metrics-docs-1.35
Update metrics docs 1.35
2026-01-10 02:13:41 +05:30
pranshul gupta
d21b249b19 rbac: complete declarative validation migration for PolicyRule.Verbs
Co-authored-by: ShaanveerS <shaanver.singh@gmail.com>
2026-01-10 00:31:25 +05:30
ShaanveerS
8b29b3dc7a rbac: enable Declarative Validation for Role 2026-01-09 23:45:54 +05:30
Dan Winship
5cffb4d1f6 Remove mark-for-masquerade chain from nftables kube-proxy
Current kernels have problems with very large rulesets with lots of
jumps (because of inefficiency in the code that ensures the jumps
don't create loops). Get rid of a bunch of jumps (1 per endpoint and
usually 1 or 2 per service) by just doing mark-for-masquerade inline
rather than calling a helper chain to do it.
2026-01-09 12:51:24 -05:00
Dan Winship
36673b618e Rework masquerade handling in nftables tracer
Process the actual rules rather than treating
"jump mark-for-masquerade" as having special semantics.
2026-01-09 12:50:26 -05:00
Dan Winship
c3595012b5 Simplify nftables masquerade rule
We originally made it multiple rules, matching iptables, but nftables
lets you do it all in a single rule.
2026-01-09 12:46:37 -05:00
Dan Winship
f278b47ecd Drop TopologyAwareHints and ServiceTraficDistribution feature gates 2026-01-09 12:42:34 -05:00
Kubernetes Prow Robot
98e6935d43
Merge pull request #136140 from pohly/e2e-framework-tcontext-fix
E2E framework: fix nil pointer crash in TContext
2026-01-09 23:09:41 +05:30
CLBRITTON2
6d69ee0937 Add declarative validation tests for EndpointSlice addressType supported values 2026-01-09 11:54:52 -05:00
CLBRITTON2
5ee4b49ebd Add declarative validation tests for EndpointSlice addressType immutability 2026-01-09 11:54:51 -05:00
CLBRITTON2
1ee5d304a9 Add declarative validation tests for EndpointSlice addressType required 2026-01-09 11:54:51 -05:00
CLBRITTON2
a6618afc29 Wire discovery v1/v1beta1 for fuzz testing 2026-01-09 11:54:51 -05:00
chris britton
2c3516edb0 Add maxItems tag to Endpoint.Addresses, update tests 2026-01-09 11:54:51 -05:00
chris britton
5e4d5fe599 Mark Endpoint.Addresses required, add test cases 2026-01-09 11:54:51 -05:00
chris britton
494e27a059 Wire discovery group for declarative validation 2026-01-09 11:54:51 -05:00
Kubernetes Prow Robot
c68de67df3
Merge pull request #136132 from pohly/ktesting-default-verbosity
ktesting: avoid increasing default verbosity
2026-01-09 22:17:50 +05:30
Kubernetes Prow Robot
908dab36f4
Merge pull request #136119 from lalitc375/ignore-conversion
Bring the fuzz testing  changes back which was removed due to  an accident
2026-01-09 22:17:42 +05:30
vshkrabkov
b78cdbfdf4 Adds test cases for multiple preEnqueue plugins 2026-01-09 15:35:48 +00:00
Patrick Ohly
80cc14831e E2E framework: fix nil pointer crash in TContext
Not all framework instances have a default namespace. TContext
crashed for those.
2026-01-09 16:23:11 +01:00
Kubernetes Prow Robot
aee92bc072
Merge pull request #136085 from richabanker/watchlist-init-log
Log WatchList initial listing phase completion
2026-01-09 20:51:48 +05:30
Kubernetes Prow Robot
a221280c53
Merge pull request #136084 from richabanker/watchlist-logs-audit
Add auditID to Watch start logs
2026-01-09 20:51:41 +05:30
Kubernetes Prow Robot
b1d3ab8a4b
Merge pull request #136136 from dims/fix-devicemanager-race-condition
Fix data race in devicemanager PluginDisconnected logging
2026-01-09 19:39:43 +05:30
Patrick Ohly
36a95a05eb ktesting: avoid increasing default verbosity
Bumping to 5 is useful in unit tests. Those tend to not produce less output and
ideally use per-test output, so we end up keeping only the output of failed
tests where increased verbosity also in CI runs is useful.

But ktesting now also gets imported into e2e test binaries through the
framework. There the increased verbosity is apparently causing OOM killing in
some jobs which previously worked fine.

Long term we need a better solution than simply disabling the verbosity
change. We could modify each unit test to call SetDefaultVerbosity, but that's
tedious. Perhaps an env variable? It cannot be a command line flag because not
all unit tests accept `-v`.
2026-01-09 14:54:09 +01:00
Abhigyan Shekhar
7bc62e74ab FIX: Deep copy MapType in CEL composition to prevent data race
This commit fixes a fatal crash (concurrent map read/write) in
NewCompositedCompilerFromTemplate by:

- Refactoring CEL EnvSet composition to eliminate cloning and symbol conflicts
- Adding NewCompositedCompilerForTypeChecking for typechecking
- Removing deprecated CompositionEnv type and functions
- Adding regression test for concurrency race condition
- Using mustExtend helper function for clearer intent
2026-01-09 18:57:29 +05:30
Davanum Srinivas
1b33c52ef1
Fix data race in devicemanager PluginDisconnected logging
Don't log the endpoint struct in PluginDisconnected() - it contains
a gRPC client and logging it via reflection races with Close().

The logger walks the struct with reflection, reading gRPC internals,
while Close() is modifying mutex state in the background. Removing
the endpoint from the log avoids the race. The resourceName is already
logged which is enough to identify which endpoint disconnected.

This race becomes visible with gRPC v1.76.0+ due to timing changes
in buffer handling and goroutine lifecycle during Close(). The
ci-kubernetes-unit-dependencies job was hitting this ~10% of the time
when testing with updated dependencies.

CI failures:
- https://storage.googleapis.com/kubernetes-ci-logs/logs/ci-kubernetes-unit-dependencies/2009065501396832256/build-log.txt
- https://storage.googleapis.com/kubernetes-ci-logs/logs/ci-kubernetes-unit-dependencies/2008641956699181056/build-log.txt
- https://storage.googleapis.com/kubernetes-ci-logs/logs/ci-kubernetes-unit-dependencies/2007491912692404224/build-log.txt
- https://storage.googleapis.com/kubernetes-ci-logs/logs/ci-kubernetes-unit-dependencies/2007431281842851840/build-log.txt

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2026-01-09 08:19:33 -05:00
Kubernetes Prow Robot
c36cb4913d
Merge pull request #136128 from p0lyn0mial/upstream-watchlist-kcm-options-cleanup
kcm: remove WatchListClient feature gate override
2026-01-09 16:39:47 +05:30
Kubernetes Prow Robot
407b1de3bf
Merge pull request #136076 from kannon92/fix-flake-mutable-job
[flake] wait for job suspended condition for JobMutable test cases
2026-01-09 16:39:39 +05:30
Joel Speed
a64e802673
Enable nonullable rule for Kube API Linter 2026-01-09 10:38:15 +00:00
Kubernetes Prow Robot
6f93518c7f
Merge pull request #136124 from MohammedMutee/fix-typecheck-flake
Fix flaky typecheck by enforcing serial execution
2026-01-09 15:05:41 +05:30
LoginovIlia
bfe4b7ecd7 kubeadm: switch tests to NewClientset 2026-01-09 04:30:53 -05:00
Lukasz Szaszkiewicz
4cccfe28e6 kcm: remove WatchListClient feature gate override
WatchListClient is enabled by default since 1.35, so the
kcm specific override in flags is no longer needed.
2026-01-09 10:23:25 +01:00
Vinayak Goyal
88ba7e73d1 run ./hack/update-featuregates.sh 2026-01-09 00:19:42 -05:00
MohammedMutee
53d94b06b9 Fix flaky typecheck: enforce serial execution to prevent OOM 2026-01-09 10:40:43 +05:30
Vinayak Goyal
8a0c5683d8 use emulation version for tests so that we can still test KubeletFineGrainedAuthz=false 2026-01-08 21:13:41 -05:00
Vinayak Goyal
3fa14adfba run hack/update-featuregates.sh 2026-01-08 20:33:18 -05:00
Vinayak Goyal
28b98aa91d KEP:2862 Graduate to STABLE. 2026-01-08 20:33:18 -05:00
Lalit Chauhan
55041b832f Bring the changes back which was removed due to accident in #134909 2026-01-09 00:02:41 +00:00
Richa Banker
739e4150e6 Add auditID to Watch start logs 2026-01-08 14:33:56 -08:00
Lalit Chauhan
265394c0a5 Add utilities to allow strategy.go files to enable DV naitve validations 2026-01-08 22:24:03 +00:00
Lalit Chauhan
19fa5ef5eb apimachinery/field: Add MarkDeclarativeNative support to Error and ErrorList 2026-01-08 22:24:03 +00:00
Darshan Murthy
1c24a05ce1
wire network group for declarative validation and +k8s:required to IngressClassParametersReference.Name and IngressClassParametersReference.Kind (#134909) 2026-01-09 03:11:43 +05:30
Kevin Hannon
2a9c44b329 wait for job suspended condition 2026-01-08 15:57:00 -05:00
Harshal Patil
6027ac1f2c Remove year from runtime_test.go file copyright notice
Signed-off-by: Harshal Patil <12152047+harche@users.noreply.github.com>
2026-01-08 15:45:56 -05:00
Kubernetes Prow Robot
758ef0ffbc
Merge pull request #136108 from pohly/ginkgo-gomega-update
dependencies: ginkgo v2.27.4, gomega v1.39.0
2026-01-09 02:11:54 +05:30
Kubernetes Prow Robot
25b452b971
Merge pull request #135631 from danwinship/ipvs-winkernel-resync-period
Switch ipvs and winkernel back to more regular forced syncs
2026-01-09 02:11:46 +05:30
Kubernetes Prow Robot
f22cda03cb
Merge pull request #135358 from harche/sort_hanlders
Sort runtime handlers list coming from the CRI runtime
2026-01-09 02:11:39 +05:30
Richa Banker
d6c7b24af3 Log WatchList initial listing phase completion 2026-01-08 12:28:37 -08:00
Kubernetes Prow Robot
d8556481df
Merge pull request #135551 from Jefftree/deployment
Add pod indexer to deployment controller
2026-01-09 01:19:49 +05:30
Kubernetes Prow Robot
e551ea5ea5
Merge pull request #133678 from mortent/AllocatorPerfImprovements
DRA: Avoid unnecessary work in allocator
2026-01-09 01:19:41 +05:30
Kubernetes Prow Robot
72eaa2d5c9
Merge pull request #136111 from aojea/endpointslice_optional
define endpointslice.endpoints as optional
2026-01-09 00:27:46 +05:30
Kubernetes Prow Robot
228e56eddc
Merge pull request #136110 from liggitt/kyaml-watch-event
Fix kyaml output of watch events
2026-01-09 00:27:39 +05:30
Kubernetes Prow Robot
60e420eac3
Merge pull request #135930 from 249043822/br001
Fix:globalmount path may be residual while pod creation-deletion
2026-01-08 23:01:40 +05:30
Jordan Liggitt
c280c22ea4
Fix kyaml output of watch events 2026-01-08 12:14:41 -05:00
Antonio Ojea
e0c545353c
define endpointslice.endpoints as optional
The field is actually optional but defined as required in OpenAPI, causing issues
with clients that expected the field to be required when it was not.
2026-01-08 17:12:25 +00:00
Morten Torkildsen
9562aa8ba5 DRA: Avoid unnecessary work in allocator 2026-01-08 16:52:44 +00:00
Patrick Ohly
f8a0c80ed8 dependencies: ginkgo v2.27.4, gomega v1.39.0
Latest release of both. The CurrentTreeConstructionNodeReport fix
is needed before being able to use it in the E2E framework.
2026-01-08 17:16:05 +01:00
Jefftree
5e753a131d Update benchmark for deployment 2026-01-08 15:10:32 +00:00
Kubernetes Prow Robot
b54554b72d
Merge pull request #135955 from utam0k/async-metrics
scheduler: align the meaning of victim metrics between async preemption and sync preemption
2026-01-08 20:39:41 +05:30
Kubernetes Prow Robot
26fd963327
Merge pull request #135664 from pohly/dra-upgrade-downgrade-refactor
DRA e2e: upgrade/downgrade refactor
2026-01-08 19:31:47 +05:30
Anson Qian
a816a7b1d8
Make ConcurrentResourceClaimSyncs configurable (#134701)
* DRA resource claim controller: configurable number of workers

It might never be necessary to change the default, but it is hard to be sure.
It's better to have the option, just in case.

* generate files

* resourceclaimcontroller: normalize validation error message

* Update cmd/kube-controller-manager/app/options/resourceclaimcontroller.go

Co-authored-by: Jordan Liggitt <jordan@liggitt.net>

---------

Co-authored-by: Patrick Ohly <patrick.ohly@intel.com>
Co-authored-by: Jordan Liggitt <jordan@liggitt.net>
2026-01-08 19:31:39 +05:30
Jefftree
1250c7d56e Add pod indexer to deployment controller 2026-01-08 13:55:48 +00:00
Kubernetes Prow Robot
c4881eae3b
Merge pull request #136100 from soltysh/remove_dead_api
Remove dead api
2026-01-08 18:39:47 +05:30
Kubernetes Prow Robot
c9994c5f82
Merge pull request #135234 from atiratree/renameScaleReplicaSetAndRecordEvent
rename scaleReplicaSetAndRecordEvent to scaleReplicaSetWithLazyAnnotationUpdate
2026-01-08 18:39:40 +05:30
utam0k
44e0c79406
Align the meaning of victim metrics between async preemption and sync preemption
Signed-off-by: utam0k <k0ma@utam0k.jp>
2026-01-08 21:02:17 +09:00
Kubernetes Prow Robot
7e8e8a71be
Merge pull request #135986 from scaliby/simplify-describe-lookups
Refactor describe to inline client calls
2026-01-08 17:19:53 +05:30
Kubernetes Prow Robot
3fb97a0c8b
Merge pull request #135888 from scaliby/deduplicate-client-creation
Deduplicate client creation in describe tests
2026-01-08 17:19:46 +05:30
Kubernetes Prow Robot
5fbb132d69
Merge pull request #135625 from atiratree/quotamonitor-race
mark QuotaMonitor as not running and invalidate monitors list
2026-01-08 17:19:38 +05:30
Maciej Szulik
cfe5cb2e03
Drop describers for batch/v1beta1 CronJob and extensions/v1beta1 Ingress resources
Signed-off-by: Maciej Szulik <soltysh@gmail.com>
2026-01-08 11:54:54 +01:00
Maciej Szulik
699197d7da
Use latest API for column definitions in printers
Signed-off-by: Maciej Szulik <soltysh@gmail.com>
2026-01-08 11:54:28 +01:00
Paco Xu
6cbfd72c15
Update error message expectation in criproxy_test 2026-01-08 15:56:14 +08:00
Kubernetes Prow Robot
97bd924010
Merge pull request #134162 from zeqian-meng/update-npb-ep-image
Upgrade Debian and NPB for npb-ep e2e test
2026-01-08 13:21:38 +05:30
Kubernetes Prow Robot
ca1f339c3e
Merge pull request #136060 from tallclair/config-mux
Clean up Pod config sources: remove dead code
2026-01-08 07:05:39 +05:30
Tim Allclair
99f08f0091 Remove unused SET config update type. 2026-01-07 16:46:01 -08:00
Tim Allclair
fca9563853 Remove unused config.Sync function. 2026-01-07 16:46:01 -08:00
张可10140699
ab19ec1bfc Fix:globalmount path may be residual while pod creation-deletion 2026-01-08 08:36:40 +08:00
Kubernetes Prow Robot
8e4ba87939
Merge pull request #135689 from KasimVali2207/add-probe-stress-tests
Add stress tests for gRPC, HTTP, and TCP liveness probesAdd probe stress tests
2026-01-08 04:57:45 +05:30
Kubernetes Prow Robot
3619b0c8aa
Merge pull request #135189 from haircommander/proc-e2e-node
e2e_node: update proc mount test to correctly handle baseline PSA
2026-01-08 04:57:37 +05:30
Kubernetes Prow Robot
7e7267a6df
Merge pull request #136046 from Tanner-Gladson/issue-136027-error-verbosity
fix(controller/storageversionmigrator) Reduce log level
2026-01-08 04:03:50 +05:30
Kubernetes Prow Robot
8ab1bc1633
Merge pull request #135725 from bart0sh/PR211-add-extended-resources-test-cases
Fix extended resource handling for DRA-backed resources on pod admission
2026-01-08 04:03:42 +05:30
Kubernetes Prow Robot
817f68f75f
Merge pull request #135377 from harche/dra_flake_test
Fix race condition in DRA health e2e test pod status update
2026-01-08 03:01:46 +05:30
Kubernetes Prow Robot
df9a0bda18
Merge pull request #133797 from tico88612/cleanup/new-fake-with-options
Replace apimachinery/pkg/watch.NewFake with NewFakeWithOptions in pkg/controller
2026-01-08 03:01:38 +05:30
Peter Hunt
da695e7b78 e2e_node: update proc mount test to correctly handle baseline PSA
Signed-off-by: Peter Hunt <pehunt@redhat.com>
2026-01-07 15:59:26 -05:00
Kubernetes Prow Robot
0988d3fd05
Merge pull request #136034 from lalitc375/dv-hpa-min-max
Add ignoreConversionErrors option to validation testing
2026-01-08 01:03:51 +05:30
Kubernetes Prow Robot
210c838eaf
Merge pull request #135997 from ngopalak-redhat/ngopalak/fix_imagegc
Add negative validation for imageMinimumGCAge
2026-01-08 01:03:43 +05:30
Lalit Chauhan
2d233b6c31 Add a test case for invalid map to invalid map 2026-01-07 18:13:46 +00:00
Lalit Chauhan
13c801305a Migrate ResourceSlice map key validation to declarative validation
This commit migrates the validation of map keys for CounterSet.Counters and
DeviceCounterConsumption.Counters in the ResourceSlice API from handwritten
validation to declarative validation using +k8s:eachKey=+k8s:format=k8s-short-name.

This simplifies the handwritten validation logic and leverages the shared
declarative validation machinery.
2026-01-07 17:53:45 +00:00
Kubernetes Prow Robot
5aae66e736
Merge pull request #136073 from liggitt/fix-timeout-flake
Fix context timeout test flake
2026-01-07 22:33:48 +05:30
Kubernetes Prow Robot
2eb312a14f
Merge pull request #136066 from serathius/watchcache-cleanup-watch-without-rv
Cleanup WatchFromStorageWithoutResourceVersion feature gate
2026-01-07 22:33:41 +05:30
Kubernetes Prow Robot
0f4705e12e
Merge pull request #136068 from aojea/leader_race_time
fix leader election data race reading observedtime
2026-01-07 21:29:47 +05:30
Kubernetes Prow Robot
5750f54036
Merge pull request #136067 from dims/update-sig-architecture-email
chore: update sig-architecture mailing list email
2026-01-07 21:29:40 +05:30
kkh
d733195cfe Fix potential goroutine leak in operation_executor_test.go
If the test times out in isOperationRunConcurrently, the receiver channel stops listening. The goroutine spawned in startOperationAndBlock then blocks forever on ch <- nil.

This commit updates startOperationAndBlock to use a select statement. It now waits for either the send to complete or the quit channel to be closed (signaling test completion). This ensures the goroutine exits cleanly even if the receiver is gone.

Signed-off-by: kkh <kkhdevs@gmail.com>
2026-01-08 00:37:00 +09:00
vshkrabkov
779ff43005 Add unschedulabe pods metric drop for pod deletion 2026-01-07 15:17:27 +00:00
Jordan Liggitt
5bba728bb8
Fix context timeout test flake 2026-01-07 09:47:47 -05:00
Kubernetes Prow Robot
18663b347e
Merge pull request #135983 from Goend/master
Fix the issue of slow creation of ResourceClaim in specific scenarios
2026-01-07 20:05:46 +05:30
Kubernetes Prow Robot
4e69edd0ee
Merge pull request #135392 from brejman/issue-134393-nominated-nodes
Fix queue hint for plugins on change to pods with nominated nodes
2026-01-07 20:05:38 +05:30
Antonio Ojea
d5ac0e408a
leaderelection RWlock
We need to lock on observedTime reads to avoid races, before we were
only locking to read the observed record.

Use a RW lock since there are much more reads that writes.
2026-01-07 14:19:32 +00:00
Kubernetes Prow Robot
fe36b79c2a
Merge pull request #135959 from pohly/client-go-testing-list-and-watch-race
client-go testing: support List+Watch with ResourceVersion
2026-01-07 19:01:45 +05:30
Kubernetes Prow Robot
08ad958d0d
Merge pull request #135774 from pohly/e2e-framework-ginkgo-wrappers
E2E framework: make usage of Ginkgo wrappers optional
2026-01-07 19:01:38 +05:30
Davanum Srinivas
bebefd8382
chore: update sig-architecture mailing list email
Update the mailing list for SIG Architecture to the new kubernetes.io Google Group:
- New: https://groups.google.com/a/kubernetes.io/g/sig-architecture/
- Old archive still available: https://groups.google.com/g/kubernetes-sig-architecture/

Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2026-01-07 09:19:09 -04:00
Patrick Ohly
4e6cf3ca0c ktesting: shorter error logging in WithError
Gomega formats errors by first showing Error() (already has all information
after WithError) and then again by dumping the error struct, which is redundant
in this case. We can avoid the latter by providing a GomegaString
implementation which returns nothing.
2026-01-07 14:11:33 +01:00
Patrick Ohly
01765f4a41 ktesting: more flexible Eventually/Consistently
Being able to call arbitrary functions is useful, even if it means giving up
some compile-time checking. Because we now use reflection,
Eventually/Consistently can be methods.
2026-01-07 14:11:33 +01:00
Patrick Ohly
c47ad64820 DRA e2e+integration: test ResourceSlice controller
The "create 100 slices" E2E sometimes flaked with timeouts (e.g. 95 out of 100
slices created). It created too much load for an E2E test.

The same test now uses ktesting as API, which makes it possible to run it as
integration test with the original 100 slices and with more moderate 10 slices
as E2E test.
2026-01-07 14:11:33 +01:00
Patrick Ohly
047682908d ktesting: replace Begin/End with TContext.Step
Manually pairing Being with End is too error prone to be useful. It had the
advantage of keeping variables created between them visible to the following
code, but that doesn't justify using those calls.

By using a callback we can achieve a few things:

- Code using it automatically shadows the parent tCtx, thus enforcing
  that within a code block the tCtx with step is used consistently.
- The code block is clearly delineated with curly braces.
- When the code block ends, the unmodified parent tCtx is automatically
  in scope again.

Downsides:

- Extra boilerplate for the anonymous function.
  Python's `with tCtx.Step(...) as tCtx: ` would be nicer.
  As an approximation of that `for tCtx := range tCtx.Step(...)` was
  tried with `Step` returning an iterator, but that wasn't very idiomatic.
- Variables created inside the code block are not visible outside of it.
2026-01-07 14:11:33 +01:00
Patrick Ohly
d17aaf5e29 e2e: suppress or ignore init log output
klog calls during init are becoming a problem because now test/e2e/framework
depends in test/utils/ktesting which bumps up the default verbosity during init
to make test output more complete when there is no argument parsing.

For cadvisor, an upstream fix is
needed (https://github.com/google/cadvisor/pull/3778). For kubectl we can make
it silently accept the valid (!) LC_ALL=C.
2026-01-07 14:11:33 +01:00
Patrick Ohly
de47714879 DRA upgrade/downgrade: rewrite as Go unit test
tCtx.Run and sub-tests make it much simpler to separate the different steps
than with Ginkgo because unless a test runs tCtx.Parallel (which we don't do
here), everything runs sequentially in a deterministic order.

Right now we get:

    ...
        localupcluster.go:285: I1210 12:24:22.067524] bring up v1.34: stopping kubelet
        localupcluster.go:285: I1210 12:24:22.067548] bring up v1.34: stopping kube-scheduler
        localupcluster.go:285: I1210 12:24:22.067570] bring up v1.34: stopping kube-controller-manager
        localupcluster.go:285: I1210 12:24:22.067589] bring up v1.34: stopping kube-apiserver
    --- PASS: TestUpgradeDowngrade (94.78s)
        --- PASS: TestUpgradeDowngrade/after-cluster-creation (2.07s)
            --- PASS: TestUpgradeDowngrade/after-cluster-creation/core_DRA (2.05s)
            --- PASS: TestUpgradeDowngrade/after-cluster-creation/ResourceClaim_device_status (0.02s)
        --- PASS: TestUpgradeDowngrade/after-cluster-upgrade (4.10s)
            --- PASS: TestUpgradeDowngrade/after-cluster-upgrade/core_DRA (4.09s)
            --- PASS: TestUpgradeDowngrade/after-cluster-upgrade/ResourceClaim_device_status (0.01s)
        --- PASS: TestUpgradeDowngrade/after-cluster-downgrade (1.24s)
            --- PASS: TestUpgradeDowngrade/after-cluster-downgrade/core_DRA (1.21s)
            --- PASS: TestUpgradeDowngrade/after-cluster-downgrade/ResourceClaim_device_status (0.02s)
    PASS

It's even possible to use `-failfast` and
e.g. `-run=TestUpgradeDowngrade/after-cluster-creation/core_DRA`: `go test` then
runs everything up to that sub-test or any failing sub-test, then stops and
cleans up.
2026-01-07 14:11:33 +01:00
Patrick Ohly
7c7b1e1018 DRA e2e: make driver deployment possible in Go unit tests
This leverages ktesting as wrapper around Ginkgo and testing.T to make all
helper code that is needed to deploy a DRA driver available to Go unit
tests and thus integration tests.

How to proceed with unifying helper code for integration and E2E testing is
open. This is just a minimal first step in that direction. Ideally, such
code should be in separate packages where usage of Ginkgo, e2e/framework
and gomega.Expect/Eventually/Consistently are forbidden.

While at it, the builder gets extended to make cleanup optional.
This will be needed for upgrade/downgrade testing with sub-tests.
2026-01-07 14:11:33 +01:00
Marek Siarkowicz
fd2083450a Cleanup WatchFromStorageWithoutResourceVersion feature gate 2026-01-07 13:57:11 +01:00
Kubernetes Prow Robot
21f7c3ff68
Merge pull request #135777 from serathius/init-hook-default
Enable WatchCacheInitializationPostStartHook by default
2026-01-07 17:31:46 +05:30
Kubernetes Prow Robot
ed17ca808f
Merge pull request #132145 from inkel/inkel/client-go/improve-bearerauthrt-roundtrip-perf
fix(client): Concatenate string instead of using `fmt.Sprintf`
2026-01-07 17:31:38 +05:30
Patrick Ohly
e4ab523161 E2E framework: make usage of Ginkgo wrappers optional
Previously it was necessary to use the Ginkgo wrappers when
using any of the custom arguments like WithSlow(). Now the
hook within Ginkgo for modifying arguments is used such that
e.g. the original ginkgo.It also works.
2026-01-07 12:05:43 +01:00
Patrick Ohly
47d02070ba E2E: remove unnecessary trailing spaces in test names
The spaces are unnecessary because Ginkgo adds spaces automatically.

This was detected before only for tests using the wrapper functions,
now it also gets detected for ginkgo methods.
2026-01-07 12:05:43 +01:00
Kubernetes Prow Robot
37f7634ee3
Merge pull request #135961 from serathius/watchcache-testing-dummy
Move dummy testing to subpackage
2026-01-07 16:29:39 +05:30
Marek Siarkowicz
f42b1db39a Move dummy testing to subpackage
Change-Id: I52863cf256fc52b863c182932eb9520f3626adc3
2026-01-07 11:10:42 +01:00
pranshul gupta
5cd117505f rbac:migrate policyRule.verbs to declarative validation 2026-01-07 12:13:12 +05:30
Richa Banker
a9dec0cfdd Explicit checking for supported and unsupported types, add test 2026-01-06 20:00:58 -08:00
Tanner
bb8b4b0d80 Correct the usage of vlog's .Error() or .V().Info() methods 2026-01-06 20:31:04 -05:00
Neeraj Krishna Gopalakrishna
92129d36bf Add negative validation for imageMinimumGCAge 2026-01-07 06:56:14 +05:30
Ignoramuss
b9b585ac9e api: fix scheduling API optional/required markers
- Change PriorityClass.Value from +required to +optional since
  there is no validation requiring it and no defaulting (0 is valid)
- Remove +required from *List.Items fields as List types should
  not need optional/required markers on their Items field
2026-01-06 16:24:47 -08:00
Ignoramuss
610ca77fc9 api: enable optionalorrequired linter for scheduling API
Enable the optionalorrequired linter rule and add exception patterns
for all other API groups except scheduling. This ensures the scheduling
API group is validated for proper +optional/+required markers.

Part of #134671
2026-01-06 16:24:47 -08:00
Ignoramuss
cd4109c75f Update generated.proto files with +required markers 2026-01-06 16:19:40 -08:00
Ignoramuss
b2b76ef879 api: add +required markers to scheduling API
Add missing +required markers to fields in the scheduling API group
to satisfy the optionalorrequired linter rule:
- PriorityClass.Value in v1, v1alpha1, v1beta1
- PriorityClassList.Items in v1, v1alpha1, v1beta1
- WorkloadList.Items in v1alpha1

Part of #134671
2026-01-06 16:19:40 -08:00
Kubernetes Prow Robot
6af6361e3b
Merge pull request #134798 from aditigupta96/fix-runwithcontext-apimachinery
apimachinery: Use informer.RunWithContext in various components
2026-01-07 05:45:37 +05:30
Tim Allclair
414f4e2770 Remove unused Snapshot config source modes. 2026-01-06 15:00:19 -08:00
Tim Allclair
fa1dfe4181 Clean up config source update merging: remove code handling unused
update types.
2026-01-06 14:59:48 -08:00
Kubernetes Prow Robot
2df19bd236
Merge pull request #136058 from yongruilin/vg-master_skip-list
feat(validation-gen): skip generating for List objects
2026-01-07 02:59:38 +05:30
yongruilin
016e821718 run codegen 2026-01-06 20:18:06 +00:00
yongruilin
2a4951be27 feat: skip validation for types that are Lists in GetTargets function 2026-01-06 20:17:02 +00:00
Kubernetes Prow Robot
ca3d030261
Merge pull request #134177 from n2h9/126379-replace-HandleCrash-with-HandleCrashWithContext-in-apiserver-00
[apiserver] [126379]: replace call to HandleCrash with call to HandleCrashWithContext in apiserver
2026-01-07 01:13:37 +05:30
Lalit Chauhan
4e6aafb9b3 Address feedbacks 2026-01-06 18:38:35 +00:00
Matteo Fari
a1d638ea11
Enable nomaps rule for Kube API Linter (#134852)
* tested how many errors

* added exceptions

* added scoped exceptions per API group

* added struct.field specification

* improved regex match and included core and resources with the new struct.field format

* condensed exceptions using regex as requested

* fixed the scope kal nomaps exceptions to match existing fields
2026-01-06 23:59:39 +05:30
Lalit Chauhan
e83723ce2c Add ignoreConversionErrors option to validation testing
This commit adds an 'IgnoreObjectConversionErrors' option to the
validation testing framework in 'k8s.io/apimachinery' and exposes it
via 'pkg/api/testing'.

This is useful for fuzzing tests where we might want to skip object
versions that cannot be converted from the internal version (e.g. due to
missing fields or incompatible types in older versions) but still want
to test validation for the versions that *can* be converted.

The 'autoscaling' group versions are added to 'TestVersionedValidationByFuzzing'
with this option enabled.
2026-01-06 18:23:26 +00:00
Richa Banker
de68e0ae8b Update metrics docs list for v1.35 2026-01-06 09:25:56 -08:00
Kubernetes Prow Robot
4c5746c0bc
Merge pull request #134680 from JoelSpeed/enable-kal-integers
Enable integers rule for Kube API Linter
2026-01-06 22:39:39 +05:30
Maxime
a168b6b05d feat: use contextual HandleCrash when possible 2026-01-06 15:53:22 +00:00
Kubernetes Prow Robot
3edae6c1c4
Merge pull request #136053 from tchap/kcm-leader-election-thread-mgmt
leasecandidate: Improve goroutine management
2026-01-06 20:59:08 +05:30
Goend
13e46ffc45 Fix the issue of slow creation of ResourceClaim in specific scenarios 2026-01-06 19:18:58 +08:00
Ondra Kupka
498896ec42 leasecandidate: Improve goroutine management
Make sure all goroutines are terminated when Run returns.
2026-01-06 10:43:05 +01:00
sreeram-venkitesh
f4a66c3f43 Added missing tests for client-go metrics
Signed-off-by: sreeram-venkitesh <sreeramvenkitesh@gmail.com>
2026-01-06 14:51:55 +05:30
Kubernetes Prow Robot
76c562be4a
Merge pull request #135611 from Karthik-K-N/fix-device-taint
Fix flake TestDeviceTaintRule test
2026-01-06 14:45:08 +05:30
ShaanveerS
977abfa047 fix(controller/volume): convert V().Error() to V().Info() for selinuxwarning 2026-01-06 08:35:26 +01:00
Kubernetes Prow Robot
f36be36c76
Merge pull request #136037 from pravk03/ndf-fix
Prevent nil pointer dereference in HandlePodUpdates
2026-01-06 11:16:38 +05:30
Karthik Bhat
cd7d35fa3d Fix flake TestDeviceTaintRule test by adjusting event hanlder status update logic
Co-authored-by: Pohly <patrick.ohly@intel.com>
2026-01-06 11:00:06 +05:30
Kubernetes Prow Robot
0f89b13c79
Merge pull request #135227 from hime/master
Inverting DRAOperationsDuration metric by inverting 'is_error' label.
2026-01-06 05:24:38 +05:30
Peter Nguyen
384e516093 Change error log to info log in pkg/controller/garbagecollector/ 2026-01-05 13:13:16 -08:00
Peter Nguyen
40d19f0a05 Change error log to info log in resource_quorta_monitor.go 2026-01-05 12:57:54 -08:00
Praveen Krishna
1ff74821f9 Fix: Prevent nil pointer dereference in HandlePodUpdates
In HandlePodUpdates, oldPod is nil for a mirror pod. Adding a nil check to prevent panic when the NodeDeclaredFeatures feature gate is enabled.
2026-01-05 20:41:45 +00:00
Harshal Patil
a770f8342d Sort runtime handlers list coming from the CRI runtime
Signed-off-by: Harshal Patil <12152047+harche@users.noreply.github.com>
2026-01-05 14:56:42 -05:00
Harshal Patil
1e71a25950 Fix race condition in DRA health e2e test pod status update
Signed-off-by: Harshal Patil <12152047+harche@users.noreply.github.com>
2026-01-05 14:13:40 -05:00
Patrick Ohly
65ef31973c DRA upgrade/downgrade: split out individual test steps
This approach with collecting results from callbacks in a main ginkgo.It and
using them as failures in separate ginkgo.It callbacks might be the best that
can be done with Ginkgo.

A better solution is probably Go unit tests with sub-tests.
2026-01-05 13:45:03 +01:00
Patrick Ohly
47b613eded e2e framework: support creating TContext
This makes it possible to call helper packages which expect a TContext from E2E
tests.

The implementation uses GinkgoT as TB and supports registering cleanup
callbacks which expect a context. These callbacks then run with a context that
comes from ginkgo.DeferCleanup, just as if they had called that directly.
2026-01-05 13:45:03 +01:00
Patrick Ohly
dab76ef8de ktesting: add namespace support
Many helper packages need to know the test namespace in addition to the client.
Supporting passing of that information through the TContext avoids adding
another parameter to such helper packages.

This mirrors similar functionality in framework.Framework which also provides
a namespace to the test and packages taking such a parameter.
2026-01-05 13:45:03 +01:00
Patrick Ohly
57ae8e991a ktesting: safer RESTConfig()
Instead of granting callers access to the instance stored in the context,
let's return a copy. Otherwise a caller might accidentally modify what is
stored in the context when they forget to make a copy themselves before
modifying fields.
2026-01-05 13:45:03 +01:00
Patrick Ohly
551cf6f171 ktesting: reimplement without interface
The original implementation was inspired by how context.Context is handled via
wrapping a parent context. That approach had several issues:

- It is useful to let users call methods (e.g. tCtx.ExpectNoError)
  instead of ktesting functions with a tCtx parameters, but that only
  worked if all implementations of the interface implemented that
  set of methods. This made extending those methods cumbersome (see
  the commit which added Require+Assert) and could potentially break
  implementations of the interface elsewhere, defeating part of the
  motivation for having the interface in the first place.

- It was hard to see how the different TContext wrappers cooperated
  with each other.

- Layering injection of "ERROR" and "FATAL ERROR" on top of prefixing
  with the klog header caused post-processing of a failed unit test to
  remove that line because it looked like log output. Other log output
  lines where kept because they were not indented.

- In Go <=1.25, the `go vet sprintf` check only works for functions and
  methods if they get called directly and themselves directly pass their
  parameters on to fmt.Sprint. The check does not work when calling
  methods through an interface. Support for that is coming in Go 1.26,
  but will depend on bumping the Go version also in go.mod and thus
  may not be immediately possible in Kubernetes.

- Interface documentation in
  https://pkg.go.dev/k8s.io/kubernetes@v1.34.2/test/utils/ktesting#TContext
  is a monolithic text block. Documentation for methods is more readable and allows
  referencing those methods with [] (e.g. [TC.Errorf] works, [TContext.Errorf]
  didn't).

The revised implementation is a single struct with (almost) no exported
fields. The two exceptions (embedded context.Context and TB) are useful because
it avoids having to write wrappers for several functions resp. necessary
because Helper cannot be wrapped. Like a logr.LogSink, With* methods can make a
shallow copy and then change some fields in the cloned instance.

The former `ktesting.TContext` interface is now a type alias for
`*ktesting.TC`. This ensures that existing code using ktesting doesn't need to
be updated and because that code is a bit more compact (`tCtx
ktesting.TContext` instead of `tCtx *ktesting.TContext` when not using such an
alias). Hiding that it is a pointer might discourage accessing the exported
fields because it looks like an interface.

Output gets fixed and improved such that:
- "FATAL ERROR" and "ERROR" are at the start of the line, followed by the klog header.
- The failure message follows in the next line.
- Continuation lines are always indented.

The set of methods exposed via TB is now a bit more complete (Attr, Chdir).

All former stand-alone With* functions are now also available as methods and
should be used instead of the functions. Those will be removed.

Linting of log calls now works and found some issues.
2026-01-05 13:45:03 +01:00
Patrick Ohly
8a10a1a4a4 ktesting: add tContext.Require and tContext.Assert
Assert is useful because sometimes one wants to check several different things
in the same test, without stopping after the first failed assertion.

Require gets added for symmetry and to mirror testify's require and
assert. Require is identical to Expect (gomega naming).
2026-01-05 13:45:03 +01:00
Patrick Ohly
095475485f ktesting: rewrite unit testing with mock TB
We need to see the actual effect that ktesting will have when used as wrapper
around testing.T. Producing an error hid that adding the klog header makes some
output sub-optimal:

     <klog header>: FATAL ERROR: ...

The problem with having the klog header at the beginning of the line is that
the Kubernetes `make test` post-processing treats this as log output instead
of the failure message of the test. Will be fixed separately.
2026-01-05 13:45:03 +01:00
Patrick Ohly
1a866b8795 e2e framework: fix inconsistency in log output
Example:

    I1208 16:01:05.852628 243 upgradedowngrade_test.go:239] get source code version: bring up v1.34: cluster is running, use KUBECONFIG=/var/run/kubernetes/admin.kubeconfig to access it
    I1208 16:01:05.869679     243 reflector.go:446] "Caches populated" type="*v1.ServiceAccount" reflector="k8s.io/client-go/tools/watch/informerwatcher.go:162"

The first line is printed via framework.Logf, which is meant to emulate the
format used by the klog text logger in the second line. The difference is that
klog formats the pid with 7 characters, padding on the left with spaces.

Consistency trumps brevity here, so let's format exactly as in klog.
2026-01-05 13:45:03 +01:00
Patrick Ohly
e0514f6656 lint: don't ignore go vet printf
Our current code does not have any such issues related to printf and
we want to keep it that way.
2026-01-05 13:44:57 +01:00
Patrick Ohly
5644850607 client-go testing: support List+Watch with ResourceVersion
Quite a lot of unit tests set up informers with a fake client, do
informerFactory.WaitForCacheSync, then create or modify objects. Such tests
suffered from a race: because the fake client only delivered objects to the
watch after the watch has been created, creating an object too early caused
that object to not get delivered to the informer.

Usually the timing worked out okay because WaitForCacheSync typically slept a
bit while polling, giving the Watch call time to complete, but this race has
also gone wrong occasionally. Now with WaitForCacheSync returning more promptly
without polling (work in progress), the race goes wrong more often.

Instead of working around this in unit tests it's better to improve the fake
client such that List+Watch works reliably, regardless of the timing. The fake
client has traditionally not touched ResourceVersion in stored objects and
doing so now might break unit tests, so the added support for ResourceVersion
is intentionally limited to List+Watch.

The test simulates "real" usage of informers. It runs in a synctest bubble and
completes quickly:

    go  test -v .
    === RUN   TestListAndWatch
        listandwatch_test.go:67: I0101 01:00:00.000000] Listed configMaps="&ConfigMapList{ListMeta:{ 1  <nil>},Items:[]ConfigMap{ConfigMap{ObjectMeta:{cm1  default    0 0001-01-01 00:00:00 +0000 UTC <nil> <nil> map[] map[] [] [] []},Data:map[string]string{},BinaryData:map[string][]byte{},Immutable:nil,},},}" err=null
        listandwatch_test.go:79: I0101 01:00:00.000000] Delaying Watch...
        listandwatch_test.go:90: I0101 01:00:00.100000] Caches synced
        listandwatch_test.go:107: I0101 01:00:00.100000] Created second ConfigMap
        listandwatch_test.go:81: I0101 01:00:00.100000] Continuing Watch...
    --- PASS: TestListAndWatch (0.00s)
    PASS
    ok  	k8s.io/client-go/testing/internal	0.009s

Some users of the fake client need to be updated to avoid test failures:
- ListMeta comparisons have to be updated.
- Optional: pass ListOptions into tracker.Watch. It's optional because
  the implementation behaves as before when options are missing,
  but the List+Watch race fix only works when options are passed.
2026-01-05 12:30:01 +01:00
Kubernetes Prow Robot
b2ac9e206f
Merge pull request #130231 from Barakmor1/updateimagelocality
Update ImageLocality plugin to account ImageVolume images
2026-01-05 12:28:37 +05:30
Kubernetes Prow Robot
caf5cdc58b
Merge pull request #135148 from neolit123/1.35-add-deprecated-api-flag-to-config-validate
kubeadm: add --allow-deprecated-api to 'config validate'
2026-01-04 18:30:37 +05:30
liyuerich
dfef76d018 enable commentstart check on authentication API group
Signed-off-by: liyuerich <yue.li@daocloud.io>
2026-01-04 16:58:51 +08:00
Ed Bartosh
882cd02253 test: Add extended resource handling test coverage
Add unit test cases for extended resource handling in kubelet lifecycle
predicates and scheduler admission checks for resources backed up by
DRA and Device plugins.
2026-01-02 16:08:57 +02:00
Ed Bartosh
c2361491f5 Fix extended resource handling for DRA-backed resources
In kubelet admission:
   - Remove extended resources from pod requirements if they are either
     backed by DRA or not present in node's allocatable resources

In scheduler (fit.go):
   - Remove fallback logic that delegated all resources to DRA when
     draManager is nil

These changes ensure that:
- DRA-backed extended resources are properly handled during pod admission
- DevicePlugin-backed extended resources still follow standard admission rules
2026-01-02 16:08:49 +02:00
Konrad Kaim
73307ba402 feat: simplify describe lookups 2025-12-31 08:21:32 +00:00
Kubernetes Prow Robot
bf0e7b694f
Merge pull request #135856 from natasha41575/static_pod_check
[InPlacePodVerticalScaling] remove ineffectual static pod feasibility check
2025-12-31 07:18:34 +05:30
Kubernetes Prow Robot
d1c1efea52
Merge pull request #135976 from pohly/dra-scheduler-plugin-after-claim-change-fix
DRA scheduler: fix unit test flakes
2025-12-31 01:02:34 +05:30
Natasha Sarkar
9c7a83d30f remove ineffectual static pod check for resize 2025-12-30 17:35:32 +00:00
Kubernetes Prow Robot
a1f6c4171f
Merge pull request #135971 from DEVMANISHOFFL/fix-kubeadm-reset-crash
fix(kubeadm): prevent nil pointer panic in reset command
2025-12-30 21:56:35 +05:30
Manthan Parmar
41cde37f00 Update pkg/scheduler/backend/queue/scheduling_queue.go
Co-authored-by: Maciej Skoczeń <87243939+macsko@users.noreply.github.com>
2025-12-30 15:05:51 +00:00
Patrick Ohly
817e8cd898 make test: fix support for PARALLEL
There was an env variable PARALLEL and a -p command line flag,
but the value then wasn't passed on to "go test".

The new default is to not set any explicit parallelism, which
matches the prior (accidental?) behavior of ignoring PARALLEL.
2025-12-30 12:22:13 +01:00
Patrick Ohly
dfa6aa22b2 DRA scheduler: fix unit test flakes
Test_isSchedulableAfterClaimChange was sensitive to system load because of the
arbitrary delay when waiting for the assume cache to catch up. Running inside
a synctest bubble avoids this. While at it, the unit tests get converted
to ktesting (nicer failure output, no extra indention needed for
tCtx.SyncTest).

TestPlugin/prebind-fail-with-binding-timeout relied on setting up a claim with
certain time stamps and then getting that test case tested within a certain
real-world time window. It's surprising that this didn't flake more often
because test execution order is random. Now the time stamp gets set right
before the test case is about to be tested. Conversion to a synctest would
be nicer, but synctests cannot have sub-tests, which are used here to track
where log output and failures come from within the larger test case.

Inside the plugin itself some log output gets added to explain why a claim is
unavailable on a node in case of a binding timeout or error during Filter.
2025-12-30 11:45:02 +01:00
Kubernetes Prow Robot
3226fe520d
Merge pull request #135948 from pohly/dra-scheduler-resource-plugin-unit-test-fix
DRA extended resources: fix flake in unit tests
2025-12-30 16:12:35 +05:30
devmanishofficial
ecf7e6d41f fix(kubeadm): prevent nil pointer panic in reset command
Signed-off-by: devmanishofficial <devmanishofficial@gmail.com>
2025-12-30 15:53:10 +05:30
Kubernetes Prow Robot
f1dbece0a4
Merge pull request #135974 from ErikJiang/fix/init-plan-slice-init
Optimize slice initialization in kubeadm
2025-12-30 15:12:34 +05:30
bo.jiang
e0d4e7075b
Optimize slice initialization in kubeadm
Signed-off-by: bo.jiang <bo.jiang@daocloud.io>
2025-12-30 16:42:36 +08:00
Kubernetes Prow Robot
2a3a6605ac
Merge pull request #135330 from sujalshah-bit/fix-mem-leak
scheduler: Fix memory leak in scheduler cache
2025-12-29 15:56:34 +05:30
Kubernetes Prow Robot
8d1296caf2
Merge pull request #135912 from pohly/scheduler-plugin-test-data-race
scheduler: plugin test DATA RACE fix
2025-12-29 14:46:35 +05:30
qiuxue
a844386202 fix: resolve data race in WaitForAllPodsUnmount when collecting errors 2025-12-29 15:51:55 +08:00
Kubernetes Prow Robot
dd838ccf07
Merge pull request #135954 from pohly/hack-test-features-script-removal
hack: remove list-feature-tests.sh
2025-12-28 23:54:33 +05:30
Marek Siarkowicz
8d5b39298c Move store to cacher subpackage. 2025-12-28 10:50:42 +01:00
Kubernetes Prow Robot
ed4b5ee317
Merge pull request #134350 from macsko/add_scheduling_duration_collector
Add scheduling duration collector to scheduler_perf
2025-12-28 05:50:33 +05:30
Patrick Ohly
57b65a2509 hack: remove list-feature-tests.sh
The script is broken because it relies on grepping the source code.
This has always been fragile (currently it finds the search term
in comments) and stopped working years ago when changing how tests
are labeled.

Instead of fixing the script let's remove it because it's clearly unused.
2025-12-27 11:15:24 +01:00
Patrick Ohly
7a4d650125 DRA extended resources: fix flake in unit tests
The tests assumed that instantiating a DRAManager followed by
informerFactory.WaitForCacheSync would be enough to have the manager
up-to-date, but that's not correct: the test only waits for informer *caches*
to be synced, but syncing *event handlers* like the one in the manager may
still be going on. The flake rate is low, though:

    $ GOPATH/bin/stress -p 256 ./noderesources.test
    5s: 0 runs so far, 0 failures, 256 active
    10s: 256 runs so far, 0 failures, 256 active
    15s: 256 runs so far, 0 failures, 256 active
    20s: 512 runs so far, 0 failures, 256 active
    25s: 567 runs so far, 0 failures, 256 active
    30s: 771 runs so far, 0 failures, 256 active

    /tmp/go-stress-20251226T181044-974980161
    --- FAIL: TestCalculateResourceAllocatableRequest (0.81s)
        --- FAIL: TestCalculateResourceAllocatableRequest/DRA-backed-resource-with-shared-device-allocation (0.00s)
            extendedresourcecache.go:197: I1226 18:11:14.431337] Updated extended resource cache for explicit mapping extendedResource="extended.resource.dra.io/something" deviceClass="device-class-name"
            extendedresourcecache.go:204: I1226 18:11:14.431380] Updated extended resource cache for default mapping extendedResource="deviceclass.resource.kubernetes.io/device-class-name" deviceClass="device-class-name"
            extendedresourcecache.go:220: I1226 18:11:14.431394] Updated device class mapping deviceClass="device-class-name" extendedResource="extended.resource.dra.io/something"
            resource_allocation_test.go:595: Expected requested=2, but got requested=1
    FAIL

It becomes higher when changing WaitForCacheSync such that it doesn't poll and
therefore returns more promptly, which is where this flake was first observed.

The fix is to run the test in a syntest bubble where Wait can be used to wait
for all background activity, including event handling, to be finished before
proceeding with the test.

synctest is less forgiving about lingering goroutines. A synctest bubble must
wait for gouroutines to stop, which in this case means that there has to be
a way to wait for the metric recorder shutdown. Event handlers have to be
removed.

This could be done with plain Go, but here test/utils/ktesting is used instead
because it offers some advantages:
- less boilerplate code
- automatic cancellation of the context (i.e. less manual context.WithCancel)
- tCtx.SyncTest is a direct substitute for t.Run, which avoids re-indenting
  sub-tests. synctest itself needs another anonymous function, which makes
  the line too long and forced re-indention:
     t.Run(... func(...) {
         synctest.Test(... func() {
         })
     })

For the sake of consistency all tests get updated.

While at it, some code gets improved:

- t.Fatal(err) is not a good way to report an error because
  there is no additional markup in the test output that indicates
  that there was an unexpected error. It just logs err.Error(),
  which might not be very informative and/or obvious.
- newTestDRAManager aborts in case of a failure instead of
  returning an error.
2025-12-27 09:47:56 +01:00
Kubernetes Prow Robot
3c2e339be8
Merge pull request #135946 from borg-land/bump-gcp-ccm
bump gcp ccm to v35
2025-12-27 04:18:32 +05:30
Kubernetes Prow Robot
5023ec504c
Merge pull request #135933 from pohly/dra-scheduler-unit-test-flakes
DRA ExtendedResourceCache: avoid risk of flakes
2025-12-27 01:48:32 +05:30
Kubernetes Prow Robot
8db962ba5a
Merge pull request #135947 from michaelasp/UpdateKubeBinary
Update DefaultKubeBinaryVersion to 1.36
2025-12-27 00:18:32 +05:30
Lalit Chauhan
603cc5b4ea Promote validation-gen tags to Stable
Promote the stability of the following tags defined in validation-gen/validator directory to Stable.
These tags were introduced in the API types (staging/src/k8s.io/api) in the following commits:

- k8s:enum (2025-10-15): 9020a17731 https://github.com/kubernetes/kubernetes/commit/9020a177318
- k8s:format (2025-09-16): 8606fa03dc https://github.com/kubernetes/kubernetes/commit/8606fa03dc7
- k8s:listMapKey (2025-07-16): 6a2d5a1e64 https://github.com/kubernetes/kubernetes/commit/6a2d5a1e644
- k8s:listType (2025-07-16): 6a2d5a1e64 https://github.com/kubernetes/kubernetes/commit/6a2d5a1e644
- k8s:maxItems (2025-09-18): 11df50453f https://github.com/kubernetes/kubernetes/commit/11df50453fc
- k8s:maxLength (2025-10-22): 6fa8cb4a99 https://github.com/kubernetes/kubernetes/commit/6fa8cb4a993
- k8s:minimum (2024-11-30): e08bbf254c https://github.com/kubernetes/kubernetes/commit/e08bbf254c4
- k8s:optional (2024-12-19): 0f4786536f https://github.com/kubernetes/kubernetes/commit/0f4786536f7
- k8s:required (2025-09-16): 8606fa03dc https://github.com/kubernetes/kubernetes/commit/8606fa03dc7
- k8s:subfield (2025-04-14): 229c6b13ca https://github.com/kubernetes/kubernetes/commit/229c6b13ca7
- k8s:unionMember (2025-10-23): 8a6b3caaa0 https://github.com/kubernetes/kubernetes/commit/8a6b3caaa0d
- k8s:zeroOrOneOfMember (2025-07-16): 6a2d5a1e64 https://github.com/kubernetes/kubernetes/commit/6a2d5a1e644
- k8s:item (2025-07-16): 6a2d5a1e64 https://github.com/kubernetes/kubernetes/commit/6a2d5a1e644
2025-12-26 18:32:18 +00:00
Michael Aspinwall
c2805d38c4 Update DefaultKubeBinaryVersion to 1.36 2025-12-26 17:06:32 +00:00
Kubernetes Prow Robot
d719bc771f
Merge pull request #135938 from pohly/hack-verify-featuregates-output
hack/verify-featuregates.sh: print failure information to stderr
2025-12-26 19:56:32 +05:30
upodroid
2514b1df49 bump gcp ccm to v35 2025-12-26 13:39:58 +03:00
Patrick Ohly
ad012f63f7 hack/verify-featuregates.sh: print failure information to stderr
Verify scripts are run such that stderr is captured and included in the JUnit
files. Stdout is not. Therefore the instructions in case of a failure where
only visible by searching the entire job log file, but not in the Prow summary.
2025-12-26 10:37:10 +01:00
Patrick Ohly
41c598c4df DRA ExtendedResourceCache: avoid risk of flakes
The unit test flaked at least once so far in the CI. Can be reproduced
locally by running many instances of the test in parallel.

There were two potential root causes:
- The watch must be set up completely before creating objects (a fake
  client-go limitation).
- The one second timeout might be too small on a loaded system.

By running the tests in a synctest bubble with synctest.Wait calls at
the right places both problems are avoided. As a welcome side effect
the test also completes faster.

Before:

    $ go test k8s.io/dynamic-resource-allocation/deviceclass/extendedresourcecache
    ok  	k8s.io/dynamic-resource-allocation/deviceclass/extendedresourcecache	9.300s

    $ stress -p 512 ./extendedresourcecache.test
    5s: 0 runs so far, 0 failures, 512 active
    10s: 8 runs so far, 0 failures, 512 active

    /tmp/go-stress-20251225T195231-2875181701
    --- FAIL: TestExtendedResourceCache (9.14s)
        extendedresourcecache_test.go:234: Expected to find device class 'gpu-class' for 'example.com/gpu', got nil
        extendedresourcecache_test.go:241: Expected to find device class 'fpga-class' for 'deviceclass.resource.kubernetes.io/fpga-class', got nil
        extendedresourcecache_test.go:247: Expected default mapping for gpu-class
        extendedresourcecache.go:197: I1225 19:52:36.332170] Updated extended resource cache for explicit mapping extendedResource="example.com/gpu" deviceClass="gpu-class-3"
        extendedresourcecache.go:204: I1225 19:52:36.332216] Updated extended resource cache for default mapping extendedResource="deviceclass.resource.kubernetes.io/gpu-class-3" deviceClass="gpu-class-3"
        extendedresourcecache.go:220: I1225 19:52:36.332245] Updated device class mapping deviceClass="gpu-class-3" extendedResource="example.com/gpu"
        extendedresourcecache_test.go:260: Expected to find device class 'gpu-class' for 'example.com/gpu', got &DeviceClass{ObjectMeta:{gpu-class-3      0 2025-12-24 19:52:35.32560833 +0100 CET m=-86396.691266715 <nil> <nil> map[] map[] [] [] [{unknown Update resource.k8s.io/v1 2025-12-25 18:52:36.332067439 +0000 UTC FieldsV1 {"f:spec":{"f:extendedResourceName":{}}} }]},Spec:DeviceClassSpec{Selectors:[]DeviceSelector{},Config:[]DeviceClassConfiguration{},ExtendedResourceName:*example.com/gpu,},}
        extendedresourcecache.go:197: I1225 19:52:37.336135] Updated extended resource cache for explicit mapping extendedResource="example.com/gpu" deviceClass="gpu-class-4"
        extendedresourcecache.go:204: I1225 19:52:37.336169] Updated extended resource cache for default mapping extendedResource="deviceclass.resource.kubernetes.io/gpu-class-4" deviceClass="gpu-class-4"
        extendedresourcecache.go:220: I1225 19:52:37.336192] Updated device class mapping deviceClass="gpu-class-4" extendedResource="example.com/gpu"
        extendedresourcecache.go:197: I1225 19:52:38.340121] Updated extended resource cache for explicit mapping extendedResource="example

After:

    ok  	k8s.io/dynamic-resource-allocation/deviceclass/extendedresourcecache	0.064s
    ...
    2m0s: 7063 runs so far, 0 failures, 512 active
2025-12-25 19:59:20 +01:00
mochizuki875
8e420e0b3a make general profile default 2025-12-24 15:35:31 +00:00
Kubernetes Prow Robot
15673d04e3
Merge pull request #135918 from MarcosDaNight/fix/kubectl-exec-panic
kubectl: Fix panic in exec terminal size queue
2025-12-24 12:52:31 +05:30
Marcos Guillermo
5f67574044 kubectl: Fix panic in exec terminal size queue
Check if delegate is nil before calling Next() in terminalSizeQueueAdapter
to prevent a nil pointer dereference.
2025-12-24 00:21:56 -03:00
Patrick Ohly
f758d0850b scheduler: plugin test DATA RACE fix
Reading numPreFilterCalled races with writing it in the scheduler, at least as
far as the data race detector is concerned. That the test waits for pod
scheduling is too indirect. enqueuePlugin.called has the same problem,
but hasn't triggered the race detector (yet).

We need to protect against concurrent access. The easiest way to enforce that
is via atomic.Int64. In contrast to a mutex it is impossible to use it wrong.

Shutting down the scheduler first was also tried, but didn't work out because
"teardown" does more than just stopping the scheduler, it also cancels a
context that is needed during test shutdown.
2025-12-23 19:13:53 +01:00
Kubernetes Prow Robot
1c30a75a22
Merge pull request #135903 from macsko/disable_async_api_calls_135
Disable SchedulerAsyncAPICalls feature gate due to performance issues
2025-12-23 20:22:34 +05:30
Maciej Skoczeń
4954c5e3b0 Disable SchedulerAsyncAPICalls in v1.35 due to performance issues 2025-12-23 12:34:47 +00:00
Kubernetes Prow Robot
d04610bbfb
Merge pull request #135886 from sonikaarora/fix-typos-kubectl-comments
Fix typos kubectl comments
2025-12-23 13:40:32 +05:30
bo.jiang
b1d7cb00cf
Fix log validation messages and example typo
Signed-off-by: bo.jiang <bo.jiang@daocloud.io>
2025-12-23 10:10:28 +08:00
Kubernetes Prow Robot
9bd81471eb
Merge pull request #135805 from humblec/etcd-3.6.7
etcd: Update etcd to v3.6.7
2025-12-22 16:28:39 -08:00
Kubernetes Prow Robot
6f92c01979
Merge pull request #135391 from jpbetz/smd-6_3_1
Bump structured-merge-diff to pick up flake fix and bug fixes
2025-12-22 16:28:32 -08:00
Kubernetes Prow Robot
c255acea91
Merge pull request #135859 from cheftako/anp-release
Update KAS apiserver network proxy to v0.34
2025-12-22 15:34:32 -08:00
Walter Fender
c8f8bb83d1 Update KAS apiserver network proxy to v0.34
Update konnectivity network proxy to v0.34.0. Includes bug fixes such as memory-leak in http-connect mode, stale count fix and updates to match/support kubernetes version 1.34
(https://github.com/kubernetes-sigs/apiserver-network-proxy/commits/v0.34.0)
2025-12-22 17:42:53 +00:00
Kubernetes Prow Robot
9720186a46
Merge pull request #135862 from grandeit/fix-race-scheduling-queue
Fix data race in PriorityQueue.UnschedulablePods()
2025-12-22 09:08:40 -08:00
Kubernetes Prow Robot
9f68013b1e
Merge pull request #135501 from shivamwayal37/fix/113359-win-snapshot-fs-size
Fix: Use Get-Volume for Windows snapshot size verification
2025-12-22 09:08:31 -08:00
Konrad Kaim
ef476fa19e fix: linter 2025-12-22 16:48:48 +00:00
Konrad Kaim
96d47f1383 feat: dedupe client creation 2025-12-22 16:01:20 +00:00
Sonika Arora
7b6fbc9677 Fix typos in kubectl package comments
- Fix 'Prefrences' -> 'Preferences' in kuberc.go
- Fix 'formating' -> 'formatting' in humanreadable_flags.go
2025-12-21 23:24:02 -08:00
Kubernetes Prow Robot
3bde8d89a4
Merge pull request #135807 from carlory/fix-kubeadm-3108
kubeadm: remove --pod-infra-container-image flag from the unwantedFlags list
2025-12-21 20:32:30 -08:00
Abhijit Hoskeri
197f5ab05b Delay building discovery transport until needed
Instead of building the discovery transport at the beginning
of the sync loop, delay constructing the client until
we know we need to reach out to the endpoint.
2025-12-21 17:06:40 -08:00
Abhijit Hoskeri
ee8f5e7967 avoid goto in hasAvailableEndpoints
Avoid the need for a goto in hasAvailableEndpoints
by moving the logic to a helper function.

Also, use slices and range-over-int where applicable.
2025-12-21 17:06:40 -08:00
Kubernetes Prow Robot
5151f58ef0
Merge pull request #135869 from dims/cleanup/remove-orphaned-nsswitch-conf
Remove orphaned build/nsswitch.conf
2025-12-21 07:04:31 -08:00
Kubernetes Prow Robot
f5f6ab05de
Merge pull request #135829 from dims/try-latest-cadvisor-dec-18
Update to github.com/google/cadvisor v0.55.1
2025-12-21 06:04:31 -08:00
Davanum Srinivas
95cf1f264d
Update to github.com/google/cadvisor v0.55.1
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2025-12-21 08:13:06 -05:00
Davanum Srinivas
7d8ce09dd1
Remove orphaned build/nsswitch.conf
This file was added in 2018 (PR #69238) to ensure Go's netgo DNS
resolver respects /etc/hosts in busybox-based control plane images.

In 2021 (PR #99015), the build switched to on-disk Dockerfiles and
distroless base images. The nsswitch.conf copying was dropped and
the distroless base (Debian-based) already includes /etc/nsswitch.conf.

Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2025-12-20 22:40:50 -05:00
Kubernetes Prow Robot
dce2e8cef7
Merge pull request #135867 from dims/pin-versions-of-dbus-and-otelgrpc-to-avoid-breakage
Pin versions of dbus and otelgrpc to avoid breakage
2025-12-20 15:48:46 -08:00
Kubernetes Prow Robot
6ec02c3061
Merge pull request #135710 from SergeyKanzhelev/removeImageClarification
clarify RemoveImage CRI API call
2025-12-20 15:48:38 -08:00
Kubernetes Prow Robot
99e77f8c46
Merge pull request #134243 from lucming/lucming/enhan-stsfs-type
fix: Check Statfs_t type using unix package only
2025-12-20 15:48:31 -08:00
Kubernetes Prow Robot
9a88ce1044
Merge pull request #135156 from elmiko/update-cloud-provider-owners
update sig cloud provider owners
2025-12-20 14:06:38 -08:00
Kubernetes Prow Robot
445739989c
Merge pull request #134027 from richabanker/kms_transformation_test_fix
Fix KMS integration test: remove existing socket before starting mock plugin
2025-12-20 14:06:31 -08:00
Davanum Srinivas
60cce0abd0
updated to last known good dependencies for otelgrpc and dbus
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2025-12-20 15:32:11 -05:00
Davanum Srinivas
13f7fbd04c
Pin versions of dbus and otelgrpc to avoid breakage
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2025-12-20 15:03:27 -05:00
Manuel Grandeit
66d4bd3206 Fix data race in PriorityQueue.UnschedulablePods()
The UnschedulablePods() function iterates over the unschedulablePods.podInfoMap
without holding any lock, while other goroutines may concurrently modify the map
via addOrUpdate(), delete(), or clear().

Other functions like PendingPods() and GetPod() correctly acquire p.lock.RLock()
before accessing unschedulablePods.podInfoMap, but UnschedulablePods() was
missing this.

Fix by adding p.lock.RLock()/RUnlock() to UnschedulablePods(), matching the
pattern used by PendingPods().
2025-12-20 13:46:58 +01:00
ChengHao Yang
23a46c2a3d
SeparateCacheWatchRPC LockToDefault set true
Signed-off-by: ChengHao Yang <17496418+tico88612@users.noreply.github.com>
2025-12-20 11:43:51 +08:00
Kubernetes Prow Robot
7d0b8f979c
Merge pull request #135629 from jsafrane/selinux-fix-completed-pods
selinux: Fix the controller to ignore finished pods
2025-12-19 11:52:33 -08:00
Joel Speed
b75c2ed9cc
Enable integers rule for Kube API Linter 2025-12-19 17:46:24 +00:00
Kubernetes Prow Robot
589e695797
Merge pull request #135701 from neolit123/1.36-remove-special-flag-handling-for-older-etcd
kubeadm: remove the usage of 2 deprecated flags for etcd < 3.6.0
2025-12-19 09:30:42 -08:00
Kubernetes Prow Robot
032cd00f4c
Merge pull request #135400 from neolit123/1.36-dont-sort-extra-args
kubeadm: do not sort extraArgs alpha-numerically
2025-12-19 09:30:34 -08:00
Kubernetes Prow Robot
268bdbe214
Merge pull request #135836 from pohly/ginkgo-gomega-update
dependencies: ginkgo v2.27.3 + gomega v1.38.3
2025-12-19 08:36:39 -08:00
Kubernetes Prow Robot
0a3146f030
Merge pull request #135259 from JoelSpeed/update-kal
Update Kube API Linter to latest main branch
2025-12-19 08:36:32 -08:00
Kubernetes Prow Robot
0ea3824860
Merge pull request #135845 from skitt/drop-armon-circbuf
Replace armon/circbuf with k8s.io/utils/buffer
2025-12-19 07:40:37 -08:00
Joel Speed
aa1dfd0ab8
Update NoTimestamp exceptions for qualified names 2025-12-19 14:57:24 +00:00
Joel Speed
456c13b409
Update Kube API Linter 2025-12-19 14:57:23 +00:00
Jan Safranek
80d0b0f8cc Add unit test with CSIDriver.SELinuxMount=false
Add unit test with a volume plugin that does not support SELinux. That
simulates a CSi driver whose spec.SELinuxMount is empty or false.

This requires a little refactoring, each unit test now has a flag if it
runs with a volume plugin that supports SELinux.
2025-12-19 15:01:01 +01:00
Kubernetes Prow Robot
791c9de930
Merge pull request #129664 from hkttty2009/bug/volumeattachment
Fix VolumeAttachment cleanup when AttachRequired changes
2025-12-19 06:00:34 -08:00
Jan Safranek
02d4c11b00 Added e2e tests with disabled SELinux
Added few tests with a CSI driver that does not support SELinux and has it
disabled in its CSIDriver instance
2025-12-19 14:45:38 +01:00
Marek Siarkowicz
8b0cdec46b Enable genericfeatures.WatchCacheInitializationPostStartHook as default
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
2025-12-19 13:48:48 +01:00
Bartosz
3b4f0be6e3
Check NominatedNodeName to decide if a pod is scheduled 2025-12-19 12:30:06 +00:00
Kubernetes Prow Robot
5262149cd6
Merge pull request #135742 from HirazawaUi/promote-4656-to-ga
Kubeadm: Graduate NodeLocalCRISocket feature gate to GA
2025-12-19 02:10:32 -08:00
Patrick Ohly
db841afdbb dependencies: ginkgo v2.27.3 + gomega v1.38.3
This fixes some issues found in Kubernetes (data race in ginkgo CLI, gomega
formatting) and helps with diagnosing OOM killing in CI jobs (exit status of
processes).

The modified gomega formatting shows up in some of the output tests for the E2E
framework. They get updated accordingly.
2025-12-19 10:37:54 +01:00
Stephen Kitt
3653ae2b9a
Replace armon/circbuf with k8s.io/utils/buffer
This uses the new generic fixed ring implementation in k8s.io/utils.

Signed-off-by: Stephen Kitt <skitt@redhat.com>
2025-12-19 09:59:41 +01:00
hongkang
be9b3d5a46 Add e2e test for VolumeAttachment cleanup when CSIDriver AttachRequired changes
Signed-off-by: hongkang <mzhkcj50@gmail.com>
2025-12-19 15:56:33 +08:00
hongkang
6910bc7bb0 Fix VolumeAttachment cleanup when AttachRequired changes
When CSI's AttachRequired changes from true to false after a successful
volume attach, MarkVolumeAsAttached fails because it attempts to look up
the plugin by spec, which fails verification.
This patch passes the VolumeName directly to MarkVolumeAsAttached.
This allows the function to skip the plugin lookup and correctly mark
the volume as attached in the Actual State of World, ensuring
VolumeAttachment cleanup can proceed.

Signed-off-by: hongkang <mzhkcj50@gmail.com>
2025-12-19 15:51:45 +08:00
Damien Grisonnet
c29d27bc44 test/e2e: increase memory limits in pod resize tests
The pod resize e2e tests use memory limits as low as 20Mi for Guaranteed
QoS pods. On OpenShift/CRI-O, the container runtime (runc) runs inside
the pod's cgroup and requires ~20-22MB of memory during container
creation and restart operations. This causes intermittent OOM kills
when the pod's memory limit is at or below runc's memory footprint.

This issue does not occur on containerd-based clusters because
containerd's shim runs outside the pod's cgroup by default (ShimCgroup=""),
so runc's memory is not charged against the pod's limit.

Increase memory limits to provide sufficient headroom for runc:
- originalMem: 20Mi -> 35Mi
- reducedMem: 15Mi -> 30Mi
- increasedMem: 25Mi -> 40Mi

The test validates resize behavior, not minimal memory limits, so
larger values do not reduce test coverage.

Signed-off-by: Damien Grisonnet <dgrisonn@redhat.com>
2025-12-19 07:41:59 +01:00
Kubernetes Prow Robot
86b66f6f33
Merge pull request #135510 from dims/add-utility-to-summarize-feature-gates-in-markdown
Add utility to summarize feature gates in markdown
2025-12-18 21:34:31 -08:00
Kubernetes Prow Robot
09ca6040f7
Merge pull request #135840 from michaelasp/makeDeterministic
Fix issue with TestReplaceEvents not sending history deterministically
2025-12-18 20:16:32 -08:00
Davanum Srinivas
8703640651
add utility for generating markdown for feature gates
Signed-off-by: Davanum Srinivas <davanum@gmail.com>

fix for review comments

Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2025-12-18 22:53:56 -05:00
Kubernetes Prow Robot
31fb6f64ef
Merge pull request #135821 from pohly/dra-device-taints-owner
DRA device taints controller: add pohly to OWNERS
2025-12-18 19:24:38 -08:00
Kubernetes Prow Robot
6e75905ed6
Merge pull request #135229 from lalitc375/origin-union
Add origins for the union validations errors
2025-12-18 19:24:31 -08:00
Kubernetes Prow Robot
8d7db1d19e
Merge pull request #135834 from dgrisonnet/revert-135680
Revert "test/e2e: increase memory limits in pod resize tests"
2025-12-18 18:32:37 -08:00
Kubernetes Prow Robot
f158d31d8d
Merge pull request #134707 from GrigoriyMikhalkin/134427-data-race
Fixing data race in etcd watcher
2025-12-18 18:32:30 -08:00
HirazawaUi
cbb227b0e4 promote NodeLocalCRISocket to GA 2025-12-19 09:57:59 +08:00
Michael Aspinwall
2b330f0357 Fix issue with test not sending history deterministically 2025-12-19 01:41:38 +00:00
Kubernetes Prow Robot
ed61f3fb62
Merge pull request #135824 from hakman/remove-etcd-image
etcd: Remove unused legacy image build code
2025-12-18 15:13:24 -08:00
Kubernetes Prow Robot
b9d491f56e
Merge pull request #134556 from carlory/fix-133160
lock the feature-gate VolumeAttributesClass to default (true)
2025-12-18 15:13:17 -08:00
Kubernetes Prow Robot
3347801a59
Merge pull request #135046 from darshansreenivas/node-tag-migration-dtumkur
feat: wire node group for declarative validation
2025-12-18 13:29:16 -08:00
Lalit Chauhan
630a2a7c35 Add origins for the union validtions errors 2025-12-18 19:07:47 +00:00
Kubernetes Prow Robot
13518f66e2
Merge pull request #135833 from soltysh/drop_unused_acronym
Drop unused describe acronym
2025-12-18 11:05:17 -08:00
Kubernetes Prow Robot
e07199dbc6
Merge pull request #135832 from liggitt/test-replace-flake
Make TestReplaceEvents deterministic for delete event comparison
2025-12-18 10:13:25 -08:00
Kubernetes Prow Robot
e7588d77ac
Merge pull request #135513 from grandeit/fix-kubectl-apply-dry-run-client
kubectl apply: fix --dry-run=client to show merged result
2025-12-18 10:13:18 -08:00
Damien Grisonnet
315c38fb8a Revert "test/e2e: increase memory limits in pod resize tests"
This reverts commit a2cf7f770d.
2025-12-18 19:05:47 +01:00
Ayato Tokubi
8ef450884a Add standalone tests for init container status fix. 2025-12-18 17:07:35 +00:00
Ayato Tokubi
5108449511 Refactor comment in convertToAPIContainerStatuses 2025-12-18 16:15:35 +00:00
Ayato Tokubi
a98cd90701 Remove static pod check 2025-12-18 16:15:35 +00:00
V0dik
ce3f6b1d0e Fix:Static pod status is always Init:0/1 if unable to get init container status from container runtime.
Signed-off-by: Ayato Tokubi <atokubi@redhat.com>
2025-12-18 16:15:33 +00:00
Ciprian Hacman
aa5b4e0f78 hack/update-vendor.sh 2025-12-18 18:15:15 +02:00
Ciprian Hacman
c1b4b41c1f etcd: Remove unused legacy image build code 2025-12-18 18:15:13 +02:00
0x5457
c7ba4bbcf8 Fix missing namespace flag in attach reattach message 2025-12-19 00:01:10 +08:00
Maciej Szulik
d291dd9404
Drop unused describe acronym
Signed-off-by: Maciej Szulik <soltysh@gmail.com>
2025-12-18 16:58:04 +01:00
Kubernetes Prow Robot
a51c7d6f31
Merge pull request #135818 from votdev/issue_135817_fix_drain_filter_error
Remove the unnecessary `cannot delete` from the error message
2025-12-18 07:55:26 -08:00
Kubernetes Prow Robot
430fef557f
Merge pull request #135531 from pohly/golangci-lint-bump
golangci-lint: bump to v2.7.1
2025-12-18 07:55:18 -08:00
Kubernetes Prow Robot
04d866b37d
Merge pull request #135539 from dims/move-httpcache-to-third_party/forked
move httpcache to third_party/forked
2025-12-18 07:01:17 -08:00
Jordan Liggitt
fb288e3ce1
Make TestReplaceEvents deterministic for delete event comparison 2025-12-18 09:54:56 -05:00
Humble Devassy Chirammal
8dc8edf49b etcd: Update etcd to v3.6.7
ETCD 3.6.7 has some critical bug fixes
https://github.com/etcd-io/etcd/blob/main/CHANGELOG/CHANGELOG-3.6.md

Signed-off-by: Humble Devassy Chirammal <humble.devassy@gmail.com>
2025-12-18 19:05:14 +05:30
Davanum Srinivas
ab1ffaf12e
move httpcache to third_party/forked
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2025-12-18 08:18:57 -05:00
Kubernetes Prow Robot
1d45317959
Merge pull request #135823 from HirazawaUi/clean-unused-code
Kubeadm: Clean up unused constant
2025-12-18 04:41:17 -08:00
HirazawaUi
642d96dcb4 clean up unused constant 2025-12-18 19:45:38 +08:00
Kubernetes Prow Robot
c34c5a5426
Merge pull request #135608 from pohly/dra-device-taints-unit-tests-helpers
DRA device taints: fix and simplify unit tests
2025-12-18 03:21:23 -08:00
Kubernetes Prow Robot
34430b9127
Merge pull request #135589 from neolit123/1.36-revert-dynamic-etcd-map
kubeadm: revert to using a static list of etcd versions
2025-12-18 03:21:16 -08:00
Patrick Ohly
ad79e479c2 build: remove deprecated '// +build' tag
This has been replaced by `//build:...` for a long time now.

Removal of the old build tag was automated with:

    for i in $(git grep -l '^// +build' | grep -v -e '^vendor/'); do if ! grep -q '^// Code generated' "$i"; then sed -i -e '/^\/\/ +build/d' "$i"; fi; done
2025-12-18 12:16:21 +01:00
Patrick Ohly
6bcb5beba3 golangci-lint: bump to v2.7.1 2025-12-18 12:10:15 +01:00
Patrick Ohly
9194bfe75b DRA device taints controller: add pohly to OWNERS
While the code is nominally owned by SIG Scheduling, in practice I am the one
who knows it best, so I should be a reviewer and should be able to merge simple
changes without additional approvals (will use cautiously!).
2025-12-18 12:07:52 +01:00
Volker Theile
468d3a8406
Remove the unnecessary cannot delete from the error message
Related to: https://github.com/kubernetes/kubernetes/issues/135817

Signed-off-by: Volker Theile <vtheile@suse.com>
2025-12-18 11:49:26 +01:00
Kubernetes Prow Robot
bb52ae5e24
Merge pull request #135776 from neolit123/1.36-always-retry-on-patch-node-errors
kubeadm: always retry Patch() Node API calls
2025-12-18 02:11:01 -08:00
Kubernetes Prow Robot
9618ffd46f
Merge pull request #135773 from neolit123/1.36-remove-ControlPlaneKubeletLocalMode
kubeadm: remove the FG ControlPlaneKubeletLocalMode
2025-12-18 02:10:54 -08:00
Kubernetes Prow Robot
45ad3e260e
Merge pull request #135760 from thockin/validation-warnings
Add validation-gen 'warning' to tag docs
2025-12-18 02:10:46 -08:00
Kubernetes Prow Robot
a504b1b4eb
Merge pull request #135755 from pohly/dra-logging
DRA: log more information
2025-12-18 02:10:38 -08:00
Kubernetes Prow Robot
5eecce635d
Merge pull request #135748 from princepereira/ppereira-vendoring-hnslib-v012
Update vendored hnslib to v0.1.2
2025-12-18 02:10:30 -08:00
Kubernetes Prow Robot
cb74fe988b
Merge pull request #135723 from danwinship/netpol-test-cleanup
minor Netpol test cleanups
2025-12-18 02:10:22 -08:00
Kubernetes Prow Robot
8c33e90e50
Merge pull request #135720 from soltysh/allowed_licenses_link
Update allowed-thir-party-license-policy.md link
2025-12-18 02:10:14 -08:00
Kubernetes Prow Robot
55628b6a00
Merge pull request #135714 from lalitc375/fix-validation-identifier
Ensure metricIdentifier uses scheme for kind resolution
2025-12-18 02:10:05 -08:00
Kubernetes Prow Robot
4bb621ad4b
Merge pull request #135709 from SergeyKanzhelev/cri-api-changelog
cri-api changelog for 1.35: no changes
2025-12-18 02:09:57 -08:00
Kubernetes Prow Robot
17cb08ffa3
Merge pull request #135691 from bart0sh/PR210-DRA-e2e-add-extended-resources-tests
DRA: add new e2e tests for extended resources
2025-12-18 02:09:49 -08:00
Ümüt Özalp
bbd992d496
Enhance smartLabelFor function (#135683)
* Enhance smartLabelFor function to support additional acronym "PDB" and add unit tests

* Remove "PDB" acronym from commonAcronyms in smartLabelFor function
2025-12-18 02:09:41 -08:00
Kubernetes Prow Robot
06ff302857
Merge pull request #135680 from dgrisonnet/increase-memory-values
test/e2e: fix pod resize test flakes on CRI-O/runc environments
2025-12-18 02:09:33 -08:00
Kubernetes Prow Robot
f83f687475
Merge pull request #135674 from Phaow/volume-expand
test: Add XFS filesystem support to volume expansion e2e tests
2025-12-18 02:09:25 -08:00
Kubernetes Prow Robot
8a873ec7d2
Merge pull request #135666 from aditigupta96/TestWebhookConverterWithWatchCache-flaky-fix
Fixes the flaky `TestWebhookConverterWithWatchCache` test
2025-12-18 02:09:17 -08:00
Kubernetes Prow Robot
0c17bcb630
Merge pull request #134926 from m4rc0555/fix-typo-iscsi-provideded
Fix typo in iscsi.go comment: provideded -> provided
2025-12-18 00:29:17 -08:00
carlory
f8e8e55f1d
locked the feature-gate VolumeAttributesClass to default (true) and switch storage version from v1beta1 to v1
Signed-off-by: carlory <baofa.fan@daocloud.io>
2025-12-18 15:59:33 +08:00
carlory
e3c0292431
kubeadm: remove --pod-infra-container-image flag from the unwantedFlags list
Signed-off-by: carlory <baofa.fan@daocloud.io>
2025-12-18 15:52:04 +08:00
Kubernetes Prow Robot
9d8404426f
Merge pull request #135665 from michaelasp/replaceTest
Add test for replace events in client-go controller
2025-12-17 23:29:05 -08:00
Kubernetes Prow Robot
01697eb712
Merge pull request #135647 from grandeit/fix-gc-data-race-135621
Fix data race in garbage collector on node.owners field
2025-12-17 23:28:58 -08:00
Kubernetes Prow Robot
150288e68b
Merge pull request #135644 from AnthonySchool/docs-addition-open-kubernetes-fields
Document x-kubernetes-list-map-keys into OpenAPI extensions
2025-12-17 23:28:50 -08:00
Kubernetes Prow Robot
861e9cde52
Merge pull request #135623 from jsafrane/fix-preemption-e2e
Run RWOP preemption test as serial
2025-12-17 23:28:42 -08:00
bmordeha
6f57f1e95b Update imageLocality plugin
to account for ImageVolume images when scoring
and prioritizing nodes with required pod images

Signed-off-by: bmordeha <bmordeha@redhat.com>
2025-12-18 09:28:39 +02:00
kfess
bee2251aef
Fixed kubectl alpha kuberc set command to preserve unspecified fields on overwrite (#135619)
* Fix kuberc set command to preserve unspecified fields on overwrite

* remove ambiguous description
2025-12-17 23:28:34 -08:00
Kubernetes Prow Robot
508074f023
Merge pull request #135615 from soltysh/drop_autoscaling_v2betaX
Drop autoscaling v2beta1 and v2beta2
2025-12-17 23:28:25 -08:00
Kubernetes Prow Robot
fdf8aefa87
Merge pull request #135610 from soltysh/err_race
test/e2e: explicitly use new err variable inside parallelized code
2025-12-17 23:28:17 -08:00
Kubernetes Prow Robot
246fa57363
Merge pull request #135604 from dims/better-support-for-cri-stats
kubelet: improve CRI stats for resource metrics and testing
2025-12-17 23:28:10 -08:00
Kubernetes Prow Robot
2fa93a995e
Merge pull request #135593 from danwinship/proxy-duplicate-ips
Handle the case of a pod IP being reused while the old Pod still exists
2025-12-17 23:28:02 -08:00
Kubernetes Prow Robot
101ee1bc9c
Merge pull request #135549 from danwinship/proxy-backend-files
Split up `pkg/proxy/*/proxier.go` a bit more
2025-12-17 23:27:54 -08:00
Kubernetes Prow Robot
1faee42453
Merge pull request #135548 from danwinship/conntrack-setup
Move kube-proxy conntrack setup code to pkg/proxy
2025-12-17 23:27:46 -08:00
Kubernetes Prow Robot
77f5336dbc
Merge pull request #135547 from danwinship/healthcheck-interface
Add a nodeManager interface to pkg/proxy/healthcheck
2025-12-17 23:27:38 -08:00
Kubernetes Prow Robot
df610f8cee
Merge pull request #135538 from dims/drop-usates-of-archived-dependency-grpc-ecosystem/go-grpc-prometheus
Drop usages of archived dependency - github.com/grpc-ecosystem/go-grpc-prometheus
2025-12-17 23:27:30 -08:00
Kubernetes Prow Robot
fba3338407
Merge pull request #135526 from dims/debug-mounter-issue
Fix mounter issue with latest ubuntu 24.04 (nfs tests)
2025-12-17 23:27:23 -08:00
Kubernetes Prow Robot
30fcf30805
Merge pull request #135522 from petern48/graduate_workqueue_metrics
Promote workqueue metrics from ALPHA to BETA
2025-12-17 23:27:15 -08:00
Kubernetes Prow Robot
53b29512ec
Merge pull request #135515 from dims/add-explicit-type-to-feature-gate-const-declarations
Add explicit type to feature gate const declarations
2025-12-17 22:36:59 -08:00
Kubernetes Prow Robot
c6a254d2e8
Merge pull request #135514 from klaskosk/fix-135512
kubectl: remove context.TODO from daemonSetFilter
2025-12-17 22:36:51 -08:00
Kubernetes Prow Robot
1abe8c34e9
Merge pull request #135511 from aojea/conntrack_udp_filters
kube-proxy: optimize conntrack cleanup with O(n) flow filter
2025-12-17 22:36:43 -08:00
Kubernetes Prow Robot
321e0f69d8
Merge pull request #135504 from dims/bump=github.com/opencontainers/cgroups-to-v0.0.6
Bump github.com/opencontainers/cgroups to v0.0.6
2025-12-17 22:36:36 -08:00
Kubernetes Prow Robot
4a1cbabadd
Merge pull request #135495 from tosi3k/skip-last-pod-deletion
Skip last victim in async preemption if any prior Pod preemption failed
2025-12-17 22:36:28 -08:00
Kubernetes Prow Robot
d9c281159a
Merge pull request #135494 from Argh4k/readme-fix
Fix example with profiling in README
2025-12-17 22:36:21 -08:00
Kubernetes Prow Robot
62db4db266
Merge pull request #135489 from ania-borowiec/update_comment
Update async preemption comment to reflect the current state of the code
2025-12-17 22:36:13 -08:00
Kubernetes Prow Robot
c5a0c31294
Merge pull request #135484 from bart0sh/PR209-improve-balanced-allocation-coverage
Extended resources unit tests: cover DRA resources
2025-12-17 22:36:06 -08:00
Kubernetes Prow Robot
91fd6eff40
Merge pull request #135476 from ardaguclu/deflake-subresource-test
Filter out the nodes created by other tests
2025-12-17 22:35:59 -08:00
Kubernetes Prow Robot
5e5a422b72
Merge pull request #135457 from duanwei33/vol-resize
Fix volume expansion e2e tests to use actual allocated size
2025-12-17 22:35:51 -08:00
Kubernetes Prow Robot
8fcb1fd4cf
Merge pull request #135455 from carlory/csiNodeIDMaxLength
cleanup csiNodeIDMaxLength
2025-12-17 22:35:44 -08:00
Arda Güçlü
bb9bb4d422
Move away from deprecated term.AllowsColorOutput (#135454)
* Move away from deprecated term.AllowsColorOutput

* Move away from term.IsTerminal
2025-12-17 22:35:36 -08:00
Kubernetes Prow Robot
43cfcac7cc
Merge pull request #135434 from yliaog/quota_abuse
Fixes the loophole that allows users to workaround resource quota set by system admin
2025-12-17 22:35:28 -08:00
Filip Křepinský
7aa186fa0a
schedule pod availability checks at the correct time in StatefulSets (#135428)
* wire now (time) to the availability checks in the StatefulSet controller

- this helps to make the controller reconcilliation consistent

* schedule pod availability checks at the correct time in StatefulSets

* replace "k8s.io/klog/v2/ktesting" with "k8s.io/kubernetes/test/utils/ktesting"

for advanced features (e.g. Eventually)

* add StatefulSetAvailabilityCheck test
2025-12-17 22:35:21 -08:00
Kubernetes Prow Robot
85876061cb
Merge pull request #135418 from carlory/gang_scheduling_rbac
add Workload permissions to view, edit and admin clusterroles
2025-12-17 22:35:14 -08:00
Kubernetes Prow Robot
7795655410
Merge pull request #135402 from xigang/pv_controller
PV controller: Add rate-limiting queues and improve error handling
2025-12-17 21:43:02 -08:00
Kubernetes Prow Robot
4c6855d3ec
Merge pull request #135398 from xigang/quotadmission
resourcequota: fix namespace GroupKind using wrong API group
2025-12-17 21:42:54 -08:00
Kubernetes Prow Robot
1a3d8712f3
Merge pull request #135394 from brejman/adhoc-interpodaffinity-pending-pod-update
Fix queue hint for interpodaffinity when target pod is updated
2025-12-17 21:42:46 -08:00
Kubernetes Prow Robot
591b60fd37
Merge pull request #135386 from ania-borowiec/add_anias_to_reviewers
Add ania-borowiec to SIG Scheduling reviewers
2025-12-17 21:42:39 -08:00
Kubernetes Prow Robot
be49637f88
Merge pull request #135385 from PatrickLaabs/132086-denypointerpkg
chore: Denying deprecated pointer package in golangci-linters config
2025-12-17 21:42:31 -08:00
Kubernetes Prow Robot
a8b2be3f45
Merge pull request #135380 from BenTheElder/apidiffremotebranch
apidiff: autodetect remote and default branch
2025-12-17 21:42:23 -08:00
Kubernetes Prow Robot
c96663a4b7
Merge pull request #135372 from ingvagabund/e2e-scheduler-preemption-async-fix
fix(SchedulerPreemption/Async): schedule all medium priority pods first so all low priority pods can be preempted
2025-12-17 21:42:15 -08:00
Kubernetes Prow Robot
3558d1e9ce
Merge pull request #135371 from Nikateen/contextual-logging-leaderelection
Use contextual logging in leaderelection
2025-12-17 21:42:08 -08:00
Kubernetes Prow Robot
1757c6358b
Merge pull request #135368 from vshkrabkov/fix/scheduler-queue-metric-sync
Scheduler: Fix GatedPods metric desync in unschedulable queue
2025-12-17 21:42:00 -08:00
Kubernetes Prow Robot
0c2174f2bd
Merge pull request #135367 from mborsz/metric
Fix apiserver_watch_events_sizes metric.
2025-12-17 21:41:53 -08:00
Kubernetes Prow Robot
a2a97119bb
Merge pull request #135361 from Karthik-K-N/cel-test-imporvements
CEL test imporvements to use test context across test instead of generic context
2025-12-17 21:41:45 -08:00
Kubernetes Prow Robot
9e055e5945
Merge pull request #135355 from lalitc375/basic
Add k8s:optional on Device.Basic
2025-12-17 21:41:37 -08:00
Kubernetes Prow Robot
fefd7ddc37
Merge pull request #135348 from brejman/issue-134393-perf
Add perf test for scheduling pods matching existing pods antiaffinity
2025-12-17 21:41:29 -08:00
Kubernetes Prow Robot
0c90269334
Merge pull request #135340 from ricardomaraschini/bump-cbor-limits
cbor: bump limits as the defaults are not large enough
2025-12-17 21:41:21 -08:00
Kubernetes Prow Robot
74143f083f
Merge pull request #135331 from yashsingh74/bump-etcd-3.6.6
Bump etcd 3.6.6 sdk
2025-12-17 21:41:14 -08:00
Kubernetes Prow Robot
285eb9fdba
Merge pull request #135325 from brejman/issue-134393
Fix queue hint for inter-pod anti-affinity
2025-12-17 20:01:02 -08:00
Kubernetes Prow Robot
13b10dc70f
Merge pull request #135324 from p0lyn0mial/upstream-watchlist-unsupported-wl-better-docs
client-go/reflector: Improve WatchListClient disabled log message for clarity
2025-12-17 20:00:54 -08:00
Kubernetes Prow Robot
907f9d26c7
Merge pull request #135302 from liyuerich/commentstartapidiscovery
enable commentstart check on apidiscovery API group
2025-12-17 20:00:46 -08:00
Kubernetes Prow Robot
f9761d1319
Merge pull request #135301 from bwsalmon/bsalmon-batch-after
Fix a bug in scheduler_perf integration test
2025-12-17 20:00:39 -08:00
laervn
8759535363
kubectl explain: Add -r shorthand flag for --recursive (#135283)
* kubectl explain: Add -r shorthand flag for --recursive

* kubectl explain: Change --recursive shorthand flag to R
2025-12-17 20:00:32 -08:00
Kubernetes Prow Robot
a9266c35ab
Merge pull request #135281 from scaliby/unify-pod-describer
Standardize `PodDescriber` behavior to return `NotFound` errors consistently
2025-12-17 20:00:24 -08:00
Kubernetes Prow Robot
811f4d30f9
Merge pull request #135251 from bart0sh/PR208-migrate-allocation-to-contextual-logging
kubelet: migrate allocation to contextual logging
2025-12-17 20:00:16 -08:00
Penghao
7e68ec0ffc
test: refine vgs resources clean up (#135250)
* test: refine vgs resources clean up

Signed-off-by: Penghao <pewang@redhat.com>

* fix: refine structure

Signed-off-by: Penghao <pewang@redhat.com>

* fix: typo and proper data structure usage

Signed-off-by: Penghao <pewang@redhat.com>

---------

Signed-off-by: Penghao <pewang@redhat.com>
2025-12-17 20:00:09 -08:00
Kubernetes Prow Robot
c0c81a4258
Merge pull request #135249 from bart0sh/PR207-migrate-container-manager-to-contextual-logging
kubelet: migrate container manager to contextual logging
2025-12-17 20:00:01 -08:00
Kubernetes Prow Robot
cd48cabb04
Merge pull request #135232 from jsut21/kubelet/healthz-untilwithcontext-126379
kubelet: use wait.UntilWithContext for healthz server (structured logging)
2025-12-17 19:59:54 -08:00
Kubernetes Prow Robot
1c0eb534ca
Merge pull request #135219 from skitt/valswap
Enforce Golang a, b = b, a swaps
2025-12-17 19:59:46 -08:00
Kubernetes Prow Robot
8f8bf5640b
Merge pull request #135217 from VijetaPriya47/fix-nodeipam-sync-test-goroutine-leak
Fix goroutine leak in TestNodeSyncResync
2025-12-17 19:59:39 -08:00
Kubernetes Prow Robot
99b27386d9
Merge pull request #135211 from AkihiroSuda/fix-135210
hack/lib/util.sh: support uutils' `date` command
2025-12-17 19:59:32 -08:00
Kubernetes Prow Robot
d24c46b1d9
Merge pull request #135183 from enj/patch-11
Add enj to k8s.io/client-go approvers
2025-12-17 19:59:24 -08:00
Kubernetes Prow Robot
05ae5a310c
Merge pull request #135126 from mrvarmazyar/add-pod-flush-metric
scheduler: add metric for pods scheduled after flush
2025-12-17 19:59:16 -08:00
Kubernetes Prow Robot
a31e6a115f
Merge pull request #132402 from astraw99/ftr-add-node-arch
Add node `arch` in the kubectl get node output
2025-12-17 18:33:14 -08:00
Kubernetes Prow Robot
3346a57834
Merge pull request #134966 from shwetha-s-poojary/enable-notimestamp-lint
Enable notimestamp rule for Kube API Linter
2025-12-17 17:37:15 -08:00
yliao
3e34de29c4 fixed the loophole that allows user to get around resource quota set by system admin 2025-12-18 00:56:20 +00:00
Kubernetes Prow Robot
a3622a3575
Merge pull request #134849 from tchap/kubectl-label-message
kubectl label: Add 'modified' output version
2025-12-17 16:27:01 -08:00
Kubernetes Prow Robot
0603a36306
Merge pull request #134791 from aditigupta96/contextual-kube-aggregator
kube-aggregator: Refactor OpenAPI controllers to be context-aware
2025-12-17 16:26:54 -08:00
Kubernetes Prow Robot
d6c073990b
Merge pull request #134623 from adrianmoisey/service-headless
Refactor 'Services should implement service.kubernetes.io/headless' test
2025-12-17 16:26:47 -08:00
Kubernetes Prow Robot
31a4fb02b8
Merge pull request #134607 from varunrsekar/dra-pci-bus-attr
Helper function to standardize the PCIBusID device attribute for DRA drivers
2025-12-17 16:26:39 -08:00
Kubernetes Prow Robot
243404b870
Merge pull request #134515 from carlory/e2e-autoscaling
e2e: improve test/e2e/framework/autoscaling/autoscaling_utils.go
2025-12-17 16:26:32 -08:00
Kubernetes Prow Robot
0b7ad29069
Merge pull request #134451 from aditigupta96/finalizing-controller-refactor
refactor(apiextensions-apiserver): Make finalizingController controller context-aware
2025-12-17 16:26:25 -08:00
Kubernetes Prow Robot
8362ec56da
Merge pull request #134441 from humblec/kubelet-volume
Record proper orphaned pod cleanup error based on the system call
2025-12-17 16:26:18 -08:00
Kubernetes Prow Robot
cc4bccf6a1
Merge pull request #134422 from jaehanbyun/ingressclass-default-marker
ingressclass: show (default) marker for default IngressClass
2025-12-17 16:26:11 -08:00
Kubernetes Prow Robot
1078cf59b9
Merge pull request #133964 from K-Diger/fix/dra-plugin-unreachable-code
kubelet: refactor DRA plugin health client initialization
2025-12-17 16:26:03 -08:00
Kubernetes Prow Robot
6d0b48092e
Merge pull request #133895 from Narita-1095305/fix/peerproxy-rand-shadowing
apiserver/peerproxy: avoid shadowing math/rand with local variable\n\…
2025-12-17 16:25:55 -08:00
Kubernetes Prow Robot
09e71afb4b
Merge pull request #133828 from dims/drop-unnecessary-usegocmp-build-tag
Drop unnecessary `usegocmp` build tag
2025-12-17 16:25:47 -08:00
Kubernetes Prow Robot
1187749524
Merge pull request #133719 from carlory/removeMaxAttachLimit
clean up removeMaxAttachLimit
2025-12-17 16:25:40 -08:00
Kubernetes Prow Robot
97e95711c5
Merge pull request #133654 from kwohlfahrt/kubelet-cert
Fix kubelet certificate reload when connecting by IP address
2025-12-17 16:25:32 -08:00
Kubernetes Prow Robot
eb7e43ba44
Merge pull request #133466 from bart0sh/PR193-refactor-api-enablement
Refactor API group validation and error reporting
2025-12-17 16:25:25 -08:00
Kubernetes Prow Robot
e14cdadc5a
Merge pull request #132807 from iholder101/feature/ImageVolumeWithDigest
[KEP-5365] Implement Image Volume with Digest
2025-12-17 16:25:17 -08:00
Richa Banker
e179f38cb8 zpages - add proper handling of the application/yaml Accept Header 2025-12-17 15:57:29 -08:00
GrigoriyMikhalkin
3266f18eea
Update staging/src/k8s.io/apiserver/pkg/storage/etcd3/watcher.go
Co-authored-by: Patrick Ohly <patrick.ohly@intel.com>
2025-12-17 21:28:43 +01:00
Davanum Srinivas
914ddf4468
kubelet: improve CRI stats for resource metrics and testing
properly support the resource metrics endpoint when `PodAndContainerStatsFromCRI` is enabled and fix the related e2e tests.

Stats Provider:
- add container-level CPU and memory stats to `ListPodCPUAndMemoryStats` so the resource metrics endpoint has complete data
- add `aggregatePodSwapStats` to compute pod-level swap from container stats (CRI doesn't provide pod-level swap directly)
- add missing memory stats fields: `AvailableBytes`, `PageFaults`, and `MajorPageFaults`
- add platform-specific implementations for Linux and Windows

Tests:
- skip cAdvisor metrics test when `PodAndContainerStatsFromCRI` is enabled (cAdvisor metrics aren't available in that mode)
- fix expected metrics in `ResourceMetricsAPI` test
- `node_swap_usage_bytes` is only available with cAdvisor (need to verify!)
- Add `dumpResourceMetricsForPods` helper to log actual metric values when tests fail, making debugging easier

Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2025-12-17 10:52:32 -05:00
Kubernetes Release Robot
92d5eb1175 CHANGELOG: Update directory for v1.35.0 release 2025-12-17 13:01:55 +00:00
Manuel Grandeit
b18339638a Fix data race in garbage collector on node.owners field
Add ownersLock to protect concurrent access to node.owners between
GraphBuilder.processGraphChanges() (writer) and GC worker goroutines
reading in blockingDependents() and unblockOwnerReferences() methods.

Also fix concurrent reads in the HTTP debug handler (/graph endpoint)
for owners, dependents, beingDeleted, deletingDependents, and virtual
fields by using their respective thread-safe accessor methods.
2025-12-16 22:38:59 +01:00
Kubernetes Release Robot
ea0dce1df1 CHANGELOG: Update directory for v1.32.11 release 2025-12-16 18:27:41 +00:00
Lubomir I. Ivanov
4d11e21fc9 kubeadm: always retry Patch() Node API calls
The PatchNodeOnce function has historically exited early
in scanarious when we Get a Node object, but the next Patch
API call on the same Node object fails. This can happen
in setups that are under a lot of resource pressure
or different network timeout scenarious.

Instead of exiting early and allow listing certain errors,
always retry on any Patch error. This aligns with the
general idea that kubeadm retries *all* API calls.
2025-12-16 19:09:01 +01:00
Michael Aspinwall
6b977a28e9 Add test for replace events in controller 2025-12-16 17:48:03 +00:00
Lubomir I. Ivanov
df44db129b kubeadm: remove the FG ControlPlaneKubeletLocalMode
The FG went GA in 1.35. It can be removed in 1.36.
2025-12-16 17:32:50 +01:00
Bartosz
49035d1404
Add perf test for scheduling pods matching existing pods antiaffinity 2025-12-16 13:02:11 +00:00
Bartosz
d6d8639349
Fix queue hint for interpod antiaffinity 2025-12-16 13:01:15 +00:00
Bartosz
145adcd522
Fix queue hint for interpodaffinity when target pod is updated 2025-12-16 12:57:50 +00:00
Prince Pereira
832e342c01 Update vendored hnslib to v0.1.2 2025-12-16 12:50:35 +00:00
Patrick Ohly
5d536bfb8e DRA: log more information
For debugging double allocation of the same
device (https://github.com/kubernetes/kubernetes/issues/133602) it is necessary
to have information about pools, devices and in-flight claims. Log calls get
extended and the config for DRA CI jobs updated to enable higher verbosity for
relevant source files.

Log output in such a cluster at verbosity 6 looks like this:

I1215 10:28:54.166872       1 allocator_incubating.go:130] "Gathered pool information" logger="FilterWithNominatedPods.Filter.DynamicResources" pod="dra-8841/tester-3" node="kind-worker2" pools={"count":1,"devices":["dra-8841.k8s.io/kind-worker2/device-00"],"meta":[{"InvalidReason":"","id":"dra-8841.k8s.io/kind-worker2","isIncomplete":false,"isInvalid":false}]}
I1215 10:28:54.166941       1 allocator_incubating.go:254] "Gathered information about devices" logger="FilterWithNominatedPods.Filter.DynamicResources" pod="dra-8841/tester-3" node="kind-worker2" allocatedDevices={"count":2,"devices":["dra-8841.k8s.io/kind-worker/device-00","dra-8841.k8s.io/kind-worker3/device-00"]} minDevicesToBeAllocated=1
2025-12-16 09:58:05 +01:00
Marin Atanasov Nikolov
5a49b58661 code-generator/defaulter-gen: generate defaults only if required tags are present
This change makes `defaulter-gen` consistent with the rest of the code-generator
tools like `deepcopy-gen`, `validation-gen` and others.

In order for defaults to be generated, the `defaulter-gen` tool will expect to
find the respective `+k8s:defaulter-gen` marker.

Additional details can be found in the following issue:

https://github.com/kubernetes/kubernetes/issues/135417
2025-12-16 09:40:47 +02:00
Tim Hockin
ea02c4bfb9
Add validation-gen 'warning' to tag docs 2025-12-15 09:41:28 -08:00
Maciej Skoczeń
bfc44a42d5 Allow to change scheduler_perf threshold data bucket 2025-12-15 14:39:56 +00:00
Vlad Shkrabkov
5be527b78e Scheduler: Fix GatedPods metric desync in unschedulable queue
Previously, when a Pod residing in the 'unschedulablePods' queue was updated and subsequently rejected by PreEnqueue plugins (returning 'Wait'), the logic in 'moveToActiveQ' would return early because the Pod was already present in the queue.

This caused the 'scheduler_gated_pods_total' metric to fail to increment, leading to metric inconsistencies (and potentially negative values upon Pod deletion).

This change adds a check to detect the transition from Ungated to Gated. If detected, the Pod is removed and re-added to the queue to ensure metrics are correctly swapped (Unschedulable-- and Gated++).

Added regression test 'TestSchedulingQueueMetrics_UngatedToGated' to verify the fix.

Signed-off-by: Vlad Shkrabkov <vshkrabkov@google.com>
2025-12-15 11:47:22 +00:00
Karan
330dcb43d7
Fix goroutine leak in pluginmanager test
Use a buffered channel for the operation start signal to prevent
goroutines from blocking indefinitely. When the test receiver times
out before all goroutines send their signal, an unbuffered channel
causes those goroutines to block forever on the send operation.
The buffer size is computed dynamically using max() to ensure it
always accommodates the maximum number of concurrent operations
any test may spawn.
2025-12-15 03:23:25 +05:30
Ali Abbasi Alaei
156a181ce1 Add appProtocol to the service describe output 2025-12-13 14:58:42 -05:00
Kubernetes Prow Robot
c180d6762d
Merge pull request #135692 from pohly/local-up-containerd-config-fix
local-up-cluster.sh: support more recent containerd like 2.2
2025-12-12 20:33:45 -08:00
Sergey Kanzhelev
76af576cc7 clarify RemoveImage CRI API call 2025-12-12 21:29:30 +00:00
KasimVali2207
d8fe13bac7 Address review feedback: use gomega.Consistently and refactor pod creation
- Replaced time.Sleep with gomega.Consistently to ensure reliable failure detection if a restart occurs during the wait
- Refactored createPodWith*Probes functions into a single helper to remove code duplication

Signed-off-by: KasimVali2207 <kasimvali2207@gmail.com>
2025-12-12 19:28:45 +05:30
KasimVali2207
53e5dcec97 Add stress tests for gRPC, HTTP, and TCP liveness probes
This commit adds e2e stress tests to verify that liveness probes do not cause
unexpected container restarts under load. The tests create many containers
(50 per test) with liveness probes configured to run every 1 second.

Three test cases are included:
- HTTP liveness probe stress test
- TCP liveness probe stress test
- gRPC liveness probe stress test

Each test waits for all containers to be running, observes probe behavior for
2 minutes, and validates that no containers have restarted unexpectedly.

These tests address the bug fix from issue kubernetes#89898 and serve as a
replacement for the skipped unit test from PR kubernetes#115329.
2025-12-12 19:28:44 +05:30
Ed Bartosh
1820dc7535 Fit tests: add DRA-aware test cases 2025-12-12 15:48:18 +02:00
Ed Bartosh
7860effc2c resourceAllocationScorer: add unit test for DRA nodeMatches 2025-12-12 15:48:13 +02:00
Ed Bartosh
02a39d6c1e Balanced allocation tests: cover DRA resources
- Added DRA-aware test cases
- Pulled shared DRA setup out into helper to keep tests DRY
- Added SignPod test
2025-12-12 13:51:19 +02:00
Jan Safranek
e701a37a1e Use only enqueuePod to add pods to the controller queue
enqueuePod already creates the right key for a pod, it's better to reuse it
than copy the code around.
2025-12-12 11:19:13 +01:00
Jan Safranek
cfa65ceed2 Fix policy of Pods with unknown SELinux label
Reset SELinuxChangePolicy of Pods that have no SELinux label set to
Recursive. Kubelet cannot mount with `-o context=<label>`, if the label is
not known.

This fixes the e2e test error revealed by the previous commit - it changed the
e2e test to check for events when no events are expected and it found a
warning about a Pod with no label, but MountOption policy.
2025-12-12 11:17:54 +01:00
Jan Safranek
4999d9a9e4 selinux: add e2e test with a completed pod
Add a test that checks the SELinux controller does not report conflicts
with Succeeded pods.
2025-12-12 11:17:54 +01:00
Jan Safranek
cbcf845810 Add new unit tests 2025-12-12 11:17:54 +01:00
Jan Safranek
7609325a9a Rework unit tests to builder pattern 2025-12-12 11:17:54 +01:00
Jan Safranek
fa1847ac40 selinux: Do not report conflits with finished pods
When a Pod reaches its final state (Succeeded or Failed), its volumes are
getting unmounted and therefore their SELinux mount option will not
conflict with any other pod.

Let the SELinux controller monitor "pod updated" events to see the pod is
finished
2025-12-12 11:17:51 +01:00
Lalit Chauhan
391045e0f3 refactor: Ensure metricIdentifier uses scheme for kind resolution
The metricIdentifier function in pkg/registry/rest/validate.go has been updated to consistently use  for determining the resource kind. This change ensures that the identifier is derived from the scheme, which is the authoritative source for API type information.

Corresponding unit tests in pkg/registry/rest/validate_test.go have been updated to align with this new behavior, explicitly passing the scheme in test cases where kind resolution is expected and verifying the correct unknown_resource fallback when the scheme or object is not sufficient to determine the kind.
2025-12-11 20:53:11 +00:00
Manuel Grandeit
aea05ad180 kubectl apply: fix --dry-run=client to show merged result
When a resource exists on the server, kubectl apply --dry-run=client
was outputting the unchanged server state instead of showing what
would result from applying the manifest.

Fix by computing the three-way merge patch (same as real apply) and
then applying it locally to the current server state.
2025-12-11 21:03:07 +01:00
Dan Winship
f2408aa83f Rearrange setup code in Netpol tests to be consistent between tests 2025-12-11 11:52:00 -05:00
Dan Winship
d8a9c58535 Rename a weirdly named field in Netpol tests 2025-12-11 11:51:58 -05:00
Maciej Szulik
365beb2398
Update allowed-thir-party-license-policy.md link
Signed-off-by: Maciej Szulik <soltysh@gmail.com>
2025-12-11 17:10:35 +01:00
Sascha Grunert
cb011623c8
test: Fix image credential pulls test for CRI-O digest handling
This commit fixes the image credential pulls test by ensuring GetImageRef
and PullImage return the same digest reference format for credential validation.

The test was failing because:
1. PullImage returns a digest reference (e.g., localhost:5000/pause@sha256:abc...)
2. Pull records were stored under this digest
3. GetImageRef returned Image.Id (config hash) instead of a digest reference
4. Credential validation failed due to the lookup mismatch

Signed-off-by: Sascha Grunert <sgrunert@redhat.com>
2025-12-11 16:10:06 +01:00
Sergey Kanzhelev
49ecd0adeb cri-api changelog for 1.35: no changes 2025-12-10 23:39:18 +00:00
Dan Winship
a6e12205bd Drop unneeded NewWindowsModel from Netpol tests
The SCTP tests are already skipped on Windows, so we don't need any
other special handling.
2025-12-10 15:36:51 -05:00
Penghao
a9f878111e test: Add XFS filesystem support to volume expansion e2e tests
Signed-off-by: Penghao <pewang@redhat.com>
2025-12-11 02:39:24 +08:00
Antoni Zawodny
7577f84e79 Skip last victim in async preemption if any prior Pod preemption failed 2025-12-10 14:44:06 +01:00
Lubomir I. Ivanov
08a339bdd7 kubeadm: do not use deprecated etcd flags
In local.go there are a couple of flags that changed their
format for etcd > 3.6.0. kubeadm 1.36 no longer supports
deploying a k8s version that maps to etcd < 3.6.0, thus
the branching and the deprecated flags can be removed.
2025-12-10 14:33:31 +01:00
Sascha Grunert
95420eab45
Update cri-tools to v1.35.0
Signed-off-by: Sascha Grunert <sgrunert@redhat.com>
2025-12-10 10:03:19 +01:00
Patrick Ohly
f58f81d917 local-up-cluster.sh: support more recent containerd like 2.2
The kubekins image got updated from containerd 1.7 to 2.2, which broke
local-up-cluster.sh in the CI because more recent containerd uses single
quotation marks around strings instead of double quotation marks as before. The
search/replaced with sed no longer matched, causing containerd to fail mounting
overlayfs on the default /var/lib/containerd. We have to use the emptyDir host
mount under /docker-graph.

The fix is to relax the search term slightly so that it accepts both kinds of
quotation marks.
2025-12-10 09:17:03 +01:00
Ed Bartosh
8a573b92ff DRA: add new e2e tests for extended resources 2025-12-10 10:09:50 +02:00
yashsingh74
1618bf1357
Update CNI plugins to v1.9.0
Signed-off-by: yashsingh74 <yashsingh1774@gmail.com>
2025-12-10 10:01:39 +05:30
Kubernetes Release Robot
04d87a4b6e CHANGELOG: Update directory for v1.33.7 release 2025-12-10 01:15:24 +00:00
Kubernetes Release Robot
f887a29fe2 CHANGELOG: Update directory for v1.34.3 release 2025-12-10 01:13:50 +00:00
Kubernetes Release Robot
612122f1d7 CHANGELOG: Update directory for v1.35.0-rc.1 release 2025-12-09 13:56:23 +00:00
Damien Grisonnet
a2cf7f770d test/e2e: increase memory limits in pod resize tests
The pod resize e2e tests use memory limits as low as 20Mi for Guaranteed
QoS pods. On OpenShift/CRI-O, the container runtime (runc) runs inside
the pod's cgroup and requires ~20-22MB of memory during container
creation and restart operations. This causes intermittent OOM kills
when the pod's memory limit is at or below runc's memory footprint.

This issue does not occur on containerd-based clusters because
containerd's shim runs outside the pod's cgroup by default (ShimCgroup=""),
so runc's memory is not charged against the pod's limit.

Increase memory limits to provide sufficient headroom for runc:
- originalMem: 20Mi -> 35Mi
- reducedMem: 15Mi -> 30Mi
- increasedMem: 25Mi -> 40Mi

The test validates resize behavior, not minimal memory limits, so
larger values do not reduce test coverage.

Signed-off-by: Damien Grisonnet <dgrisonn@redhat.com>
2025-12-09 12:15:25 +01:00
darshansreenivas
b1aebfcf7e fixed order of tags 2025-12-08 17:05:40 -08:00
Jaime Bohorquez
19d50f6340 Fix recording of "DRAOperationsDuration" metric by inverting "is_error" boolean. 2025-12-08 23:40:05 +00:00
Aditi Gupta
2307674798 Fixes the flaky test (Issue #132953) 2025-12-08 13:10:06 -08:00
Lubomir I. Ivanov
05c4e3febe kubeadm: revert to using a static list of etcd versions
The introduction of dynamic keys in the etcd version
map in constants.go introduced a couple of problems:

1. The size of the map could no longer be unit tested
because at UT runtime there was only one key "0".

2. Once a new k8s release branch is cut the version map
has mismatched versions. The latest k8s version mapped to the
future prerelease alpha (placeholder), the previous was the current
WIP release version and the oldest version in the map is the
current stable. This introduces a undesider shift of versions
where we are applying the wrong version to the current WIP
release unless an contrubutor PRs it.

The old static approach on the other hand is safer because
it hardcodes the versions, and the utility function
EtcdSupportedVersion() ensures that we get a relevant etcd
version even if the input k8s MINOR key is out of bonds for the map.

- Revert to using static version in the map.
- Revert the unit test TestEtcdSupportedVersionLength.
- Add additional comments over the map.
2025-12-08 13:40:11 +01:00
Jan Safranek
6666bd52b8 refactoring: use a common function to enqueue Pod
addPod and deletePod have the same implementation, merge them into
enqueuePod
2025-12-08 12:36:56 +01:00
darshansreenivas
ce6ea2f4b0 adding required and other test cases 2025-12-06 11:02:19 -08:00
Shivam Wayal
daa2e07f08 Fix: Use Get-Volume for Windows snapshot size verification
Implement the robust, multi-stage PowerShell Get-Volume logic to accurately
determine the filesystem size of volumes mounted in Windows E2E tests. This
solution replaces the unreliable fsutil utility and resolves persistent
failures (including in CAPZ) caused by fragile parsing and directory mounts.
2025-12-06 23:05:13 +05:30
Anthony Amador
7ce879d16f
Document x-kubernetes-list-map-keys into OpenAPI extensions
This PR adds missing OpenAPI vendor extension documentation for the following:
x-kubernetes-list-map-keys

The provided documentation includes simple additions to api/openapi-spec/README.md with similar format to present documentation.
Fixes issue #131724
2025-12-05 23:37:35 -08:00
Carter McKinnon
4b47da69f7 doc(kubelet): enforceNodeAllocatable compressible options 2025-12-05 18:28:46 -08:00
Mike Cook
7bacc1e036 fix DeepEqualWithNilDifferentFromEmpty comparison
refactor tests to add missing test cases
2025-12-05 14:28:19 -08:00
Patrick Ohly
b2151b1f51 DRA device taints: fix and simplify unit tests
Using `t` instead of `tCtx` is subtly wrong: the failure is attributed to the
parent test, not the sub-test. Using a separate function with tCtx as
parameter ensures that t is not in scope of the code and thus this mistake
cannot happen. The number of lines is the same, it's just a bit more code.

For TestRetry another advantage is the reduced indention.

It's worth calling out that the same cannot be done for benchmarks:
- They need methods (Loop) or fields (N) which are not exposed by TContext.
- The `for b.Loop()` pattern only works if the for loop is written exactly
  like that.
2025-12-05 19:13:55 +01:00
Dan Winship
1e61027d75 Switch ipvs and winkernel back to more regular forced syncs 2025-12-05 11:28:32 -05:00
Jan Šafránek
eb13761338
Update test/e2e/storage/testsuites/readwriteoncepod.go
Co-authored-by: Patrick Ohly <patrick.ohly@intel.com>
2025-12-05 16:07:53 +01:00
Filip Křepinský
feffdbbcf2 mark QuotaMonitor as not running and invalidate monitors list
to prevent close of closed channel panic
2025-12-05 15:50:32 +01:00
Jan Safranek
618bec889d Fix the preemption test
It needs to run as [Serial], so it accidentally does not evict other Pods.

Consider this scenario on a busy clusters, with all nodes at their attachment limit.

1. pod1 of the preemption test runs, pod2 is created.
2. The scheduler evicts pod1. That frees the RWOP volume and it also frees the last attachment slot on the node.
3. Some other e2e tests creates a Pod and scheduler puts it on a node, taking the last attachment slot.
4. The scheduler schedules pod2 agaian and it sees there is no node with a free attachment slot -> new round of eviction, now evicting a pod of unrelated e2e tests. The unrelated test will fail.
2025-12-05 15:26:13 +01:00
杨军10092085
a14f528ffe When using kubectl to delete multiple sts pods simultaneously, it gets stuck and won't exit 2025-12-05 19:42:16 +08:00
Maciej Szulik
583ddba569
Generated changes
Signed-off-by: Maciej Szulik <soltysh@gmail.com>
2025-12-05 11:59:55 +01:00
Maciej Szulik
e347aa994b
React to removing autoscaling v2beta1 and v2beta2
Signed-off-by: Maciej Szulik <soltysh@gmail.com>
2025-12-05 11:59:30 +01:00
Maciej Szulik
fad6e977f7
Remove autoscaling v2beta1 and v2beta2
Signed-off-by: Maciej Szulik <soltysh@gmail.com>
2025-12-05 11:28:58 +01:00
Maciej Szulik
9eb57b6291
test/e2e: explicitly use new err variable inside parallelized code
Signed-off-by: Maciej Szulik <soltysh@gmail.com>
2025-12-05 11:17:34 +01:00
darshansreenivas
897adb7b48 DRA: adding tag to node module
move DRA to a update method

fix boilerplate code

apply node normalize code at fuzz logic

adding normalization fix

fix nit
2025-12-04 23:03:21 -08:00
Alvaro Aleman
3d6a5d471f Service account controller: Wire through context
This change enables structured logging and cancellation in the service
account controller by replacing the usage of context.TODO with an actual
context.
2025-12-04 19:30:55 -05:00
k-diger
b255410b4f Remove duplicate connection management in DRA plugin Fixes 2025-12-05 01:34:44 +09:00
Dan Winship
e1b20366e3 Handle the case of a pod IP being reused while the old Pod still exists
If the pod network reuses a pod IP while the old pod is still
terminating, then we may temporarily see two Endpoints for that IP. In
that case, prefer the non-terminating one.
2025-12-04 10:35:34 -05:00
Dan Winship
bc8aa8c067 Remove incorrect special-case when Endpoints move between EndpointSlices
The code was assuming that if an Endpoint got moved from one slice to
another, and one is "local" but the other isn't, then we should prefer
the local one. But this doesn't make sense; if it's actually the same
Endpoint (i.e., same targetRef) then both copies will have the same
Hostname. And if it's not the same Endpoint, then one of the two
Endpoints is wrong, but there's no reason to assume it's the non-local
one.
2025-12-04 10:30:00 -05:00
Patrick Ohly
1aa69e5f46 DRA upgrade/downgrade: remove kube-controller-manager workaround
https://github.com/kubernetes/kubernetes/pull/132533 solved
https://github.com/kubernetes/kubernetes/issues/132334 in 1.34 and got
backported to 1.33 in https://github.com/kubernetes/kubernetes/pull/134676.

This enables n-2 skew testing between 1.35 and 1.33 without the workaround.
2025-12-04 13:36:39 +01:00
Patrick Ohly
36dbf37cf1 DRA upgrade/downgrade: better Gomega failure for system log output
Truncating the kube-controller-manager log output at the end when waiting for
"Caches are synced" fails isn't useful because it doesn't show how far the
controller got (might be stuck). This can be solved by implementing
GomegaStringer with truncation in the middle.
2025-12-04 13:34:22 +01:00
Karthik Bhat
116ada9a35 Fix TestTerminationOrderingSidecarStopAfterMain flake under stress 2025-12-03 19:34:05 +05:30
Antonio Ojea
38e08c231c kube-proxy: optimize conntrack cleanup with O(n) flow filter
Previously, we created a separate filter for each stale flow,
resulting in O(n^2) complexity when deleting flows because the
netlink llibrary iterates over all filters for each flow.

This change introduces a new filter backed by a `sets.Set` for O(1) lookup per flow.
This reduces the overall complexity of cleaning up stale entries to O(n).
2025-12-03 10:35:29 +00:00
Aditi Gupta
915866f0e4 apimachinery: Use informer.RunWithContext in various components 2025-12-02 15:02:04 -08:00
Davanum Srinivas
1f1d197701
Drop unnecessary usegocmp build tag
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2025-12-02 14:28:27 -05:00
Dan Winship
531be81208 Move proxier cleanup code into separate files.
(No code changes, just moving between files.)
2025-12-02 11:05:00 -05:00
Dan Winship
9f4edccb97 Move proxier supportedness-checking code into separate files.
(No code changes, just moving between files.)
2025-12-02 11:05:00 -05:00
Dan Winship
fe84ab85f1 Move conntrack sysctl setup from cmd/kube-proxy/ to pkg/proxy/conntrack/
Eventually this code will be called from the backends themselves.
2025-12-02 11:03:00 -05:00
Dan Winship
d8a481a696 Move setupConntrack from server_linux.go to conntrack.go 2025-12-02 11:02:58 -05:00
Dan Winship
3ecc3c9e6e Clean up some code we're about to move
So linter-hints won't complain about it in the new file.
2025-12-02 09:54:56 -05:00
Maciej Skoczeń
e22a30a13e Add scheduling duration collector to scheduler_perf 2025-12-02 14:48:22 +00:00
Antonio Ojea
4325b2b5c6 repairip externalname to cluster ip type
The repairip loop triggers a reconcilation of the current state when
there is an event on services or ipaddresses. However, the reconcile
loop operates on the informer cache, that may have some delay.

Theoretically, ClusterIPs are inmutable, but we left a loophole when a
Service of Type ExternalName mutates to a Service that requires a
ClusterIP, or viceversa, a new ClusterIP is allocated or is deallocated
depending on the direction of the mutation.

This quick process seems to "confuse" sometimes the repair loop that may
not have the final state at the reconcile time. Since, we can clearly
identify this scenario, we just requeue the ipaddress after one second
to allow the informer to catch up.
2025-12-02 10:04:01 +00:00
Vikas
984879753e Fix context deadline exceeded in PodCertificate test 2025-12-02 12:37:21 +05:30
lucming
9c3167d3cc fix: Check Statfs_t type using unix package only 2025-12-02 12:28:40 +08:00
Davanum Srinivas
1240604ebf
Drop usages of archived dependency - github.com/grpc-ecosystem/go-grpc-prometheus
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2025-12-01 20:53:55 -05:00
Dan Winship
d6d3bc88a1 Add an interface type to prevent a future import loop 2025-12-01 18:40:12 -05:00
Aditi Gupta
23209fc098 refactor(apiextensions-apiserver): Make finalizingController controller context-aware 2025-12-01 09:25:57 -08:00
Dan Winship
905492223b Remove workaround for an old bug.
Kubernetes no longer supports containerd 1.7, and the workaround is
not needed with containerd 2.x (or cri-o).
2025-12-01 11:02:20 -05:00
xigang
8f1ff1d8ce Refactor PV controller to use rate-limiting queues and improve error handling
Signed-off-by: xigang <wangxigang2014@gmail.com>
2025-12-01 19:11:52 +08:00
Maciej Wyrzuc
9a8c2a4001 Fix example with profiling in README 2025-12-01 10:44:15 +00:00
Davanum Srinivas
2dd576e6cb
fix mounter issue
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2025-12-01 03:24:00 -05:00
Peter Nguyen
d06b805d81 Update instrumentation/documentation.md 2025-11-30 11:51:52 -08:00
Peter Nguyen
4525702095 Update documentation-list.yaml 2025-11-30 11:48:08 -08:00
Peter Nguyen
08c3b2807e Run ./hack/update-generated-stable-metrics.sh to update stable-metrics-list.yaml 2025-11-30 11:43:17 -08:00
Peter Nguyen
0095c0890c Graduate workqueue metrics from alpha to beta 2025-11-30 11:28:22 -08:00
Davanum Srinivas
594ed6392b
Add explicit type to feature gate const declarations
Two feature gate constants were missing the explicit `featuregate.Feature`
type annotation, making them inconsistent with the rest of the file:
- ChangeContainerStatusOnKubeletRestart
- StatefulSetSemanticRevisionComparison

Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2025-11-29 21:22:23 -05:00
Kirsten Laskoski
7022a62660
kubectl: remove context.TODO from daemonSetFilter
Replace the context.TODO with getContext to prefer the Helper's context
when it is set. This is consistent with the rest of the package now.

Since contextual logging or timeouts may be included as part of the
Helper's context, using context.TODO will silently ignore these
features, producing unexpected behaviors.

Signed-off-by: Kirsten Laskoski <klaskosk@redhat.com>
2025-11-29 17:05:12 -05:00
Davanum Srinivas
1569ebc5a6
Bump github.com/opencontainers/cgroups to v0.0.6
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2025-11-28 16:22:46 -05:00
Ania Borowiec
0cf3d0e20a
Update comment to reflect the current state of the code 2025-11-27 22:10:02 +00:00
Arda Güçlü
dd1d49d17c Filter out the nodes created by other tests 2025-11-27 09:26:56 +03:00
duanwei33
8b381028ed Fix volume expansion e2e tests to use actual allocated size 2025-11-27 12:57:04 +08:00
Mike Spreitzer
981b46e3ec
Relax the noise margin threshold in TestConcurrencyIsolation
This test is flaking hard now.
It seems to me now that the CV of both classes of traffic is
relevant to the noise margin to allow in the test,
so this commit changes the formula to take both into account.

Signed-off-by: Mike Spreitzer <mspreitz@us.ibm.com>
2025-11-26 13:15:40 -05:00
Mohammad Varmazyar
4c2fff1934 Address comments, log level, test assersion consistency and remove unnecessary locks in TestFlushUnschedulablePodsLeftoverSetsFlag 2025-11-26 14:08:05 +01:00
carlory
be6028b926
cleanup csiNodeIDMaxLength
Signed-off-by: carlory <baofa.fan@daocloud.io>
2025-11-26 17:56:56 +08:00
Mohammad Varmazyar
4f455c9c0d Refactor plugin clearing to use ClearRejectorPlugins method 2025-11-26 09:54:32 +01:00
Kai Wohlfahrt
2ba1b66b57 Fix kubelet certificate reload when connecting by IP
Currently, we set TLSConfig.Config.GetCertificate, but then also pass
certificate and key paths to http.Server.ListenAndServeTLS.

ListenAndServeTLS uses these paths to populate the TLS config Certificate
property. Then, when accepting connections, a non-nil Certificate is preferred
over GetCertificate if the ServerName is not set in ClientHelloInfo. Finally,
the Go TLS client doesn't set ServerName when connecting by IP. As a result,
when connecting to the kubelet by IP (e.g. to fetch pod logs), stale
certificates are served.

This patch passes empty certFile and keyFile arguments, to force the TLS
server to use the GetCertificate function.

This is done by clearing key/cert file config when setting GetCertificate as
suggested in PR review. This way, all downstream users of kubeDeps.TLSConfig
will do the right thing automatically.
2025-11-25 20:44:19 +01:00
xigang
01a69b68ea Fix incorrect Group for namespace kind in resourcequota admission
Signed-off-by: xigang <wangxigang2014@gmail.com>
2025-11-25 23:19:18 +08:00
Patrick Ohly
e47b186e6b client-go features: ignore contextual logging
The client-go feature gates implementation logs information about feature
states at V(1). Changing that would imply changing the Enabled method, which is
very intrusive because there are many callers which are not expected to log and
thus don't have access to a contextual logger.

The code is not active in Kubernetes components, those use the clientAdapter to
make client-go use the normal feature gate implementation, which doesn't log
anything. Therefore the code doesn't get changed and only annotated so that
logcheck won't complain.
2025-11-25 15:26:15 +01:00
Patrick Ohly
4f241c04af client-go auth: contextual logging
No API changes are needed. In one case, a context is passed in via the
http.Request. In others there is simply no need to change the calls.
2025-11-25 15:26:15 +01:00
Patrick Ohly
0690af4710 client-go remotecommand: structured, contextual logging
The API for the package already had a context, so all that was missing was to
extract and use the logger from that.
2025-11-25 15:26:15 +01:00
Patrick Ohly
1ec1248a65 client-go clientcmd: exclude from structured, contextual logging
The only log output is for error messages which should normally not occur. It's
also likely that users expect to see exactly those messages, so it's better to
not touch them.
2025-11-25 15:26:15 +01:00
Patrick Ohly
dfdf07bb53 client-go portforward + apiserver proxy: structured, contextual logging
When debugging, it helps to keep output from different connections
separate. This can be done with contextual logging and using different loggers
for each connection.

Cancellation is handled separately for requests. Therefore the new APIs only
add support for passing a logger instance.
2025-11-25 15:26:14 +01:00
Patrick Ohly
025b844bca restmapper + discovery: add context-aware APIs
The main purpose is to replace context.TODO with a context provided by the
caller. A secondary purpose is to enable contextual logging.

Modifying the existing interfaces and APIs would have a big impact on the
ecosystem. This is a no-go. Instead, the following approach was taken:

- All interfaces get duplicated in a *WithContext variant where the methods
  also have a *WithContext suffix and the ctx parameter. All methods are
  treated this way except for obvious local get methods (like RESTClient)
  because it cannot be ruled out entirely that some implementation may
  need a context.

- Implementations of these interfaces implement both method variants
  which is possible because the method names are different.
  The old methods are implemented as thin wrappers around the updated
  code which is now the body of the new methods or shared helpers.
  In some cases there is additional overhead (type checks, potentially
  additional allocations) when using the old methods.

- To*WithContext helpers bridge from the old to the new interfaces. They
  try a type cast first. Because the in-tree implementations implement
  both, they can be used directly. For other implementations wrappers
  are used.

- All old APIs and interfaces are marked as deprecated. There is no
  intent to ever remove them, but consumers should be made aware
  that there are now better alternatives. Implementations also
  get marked this way even if nothing ever calls them directly
  because it shows which code, at least theoretically, could get
  removed.

- Existing unit tests do not get updated to the new APIs. This gives
  us unit test coverage of the old and new API because the old
  APIs call the new ones.

- In-tree consumers will be updated in follow-up PRs. This is likely
  to be a longer process. Because of the deprecation comment,
  `hack/golangci-lint.sh -n` can be used to find code which needs
  to be updated.
2025-11-25 15:26:14 +01:00
Patrick Ohly
b21dcbcaa1 client-go watch: implement interface with pointer
I wasn't entirely sure whether this should return a value or a pointer to
satisfy the interface. Both works, so I benchmarked it elsewhere (REST
mapper). Mem allocs are the same (one alloc/call), but returning a value is 10%
slower when calling one method.

What I then benchmarked is whether pointer vs value receiver in the wrapper
makes a difference. Converting from value receiver (what I had before) to
pointer receiver reduced call overhead by 6%. That's because with a value
receiver, Go has to auto-generate a variant with pointer receiver and calls the
value receiver through that.

That can be seen in a debugger (call stack) and when setting breakpoints:

    (dlv) b restMapperWrapper.KindForWithContext
    Command failed: Location "restMapperWrapper.KindForWithContext" ambiguous: k8s.io/apimachinery/pkg/api/meta.restMapperWrapper.KindForWithContext, k8s.io/apimachinery/pkg/api/meta.(*restMapperWrapper).KindForWithContext…

Conventional wisdom is to define types with value receiver because those can be
called also on unmutable instances, making them more flexible.

But for types which will only ever be used via a pointer, I think pointer
receiver is better for the reasons above (small performance difference, easier
to debug).
2025-11-25 15:26:14 +01:00
Mohammad Varmazyar
d64e09c697 Clear plugins at handleSchedulingFailure and preserve both at Pop 2025-11-24 20:32:41 +01:00
Lubomir I. Ivanov
4c24a498fa kubeadm: do not sort extraArgs alpha-numerically
If the user has provided extraArgs with an order that has
significance (e.g. --service-account-issuer for kube-apiserver),
kubeadm will correctly override any base args, but will end up
sorting the entire resulting list, which is not desired.

Instead, only sort the base arguments and preserve the order
of overrides provided by the user.
2025-11-24 12:59:57 +01:00
carlory
34700d6605
add Workload permissions to view, edit and admin clusterroles
Signed-off-by: carlory <baofa.fan@daocloud.io>
2025-11-24 17:03:00 +08:00
Mohammad Varmazyar
ec05bcf186 test: simplify TestFlushUnschedulablePodsLeftoverSetsFlag
scheduler: add logging for pods scheduled after flush and preserve UnschedulablePlugins
2025-11-24 09:55:52 +01:00
Mohammad Varmazyar
e5e8ef993c Add unit test for WasFlushedFromUnschedulable flag 2025-11-24 09:38:41 +01:00
Mohammad Varmazyar
a12eb9a3c3 Update pkg/scheduler/metrics/metrics.go
Co-authored-by: Maciej Skoczeń <87243939+macsko@users.noreply.github.com>
2025-11-24 09:38:41 +01:00
Mohammad Varmazyar
6a1a71ddc5 Removing the reduntant WasFlushedFromUnschedulable 2025-11-24 09:38:41 +01:00
Mohammad Varmazyar
bc632c72d0 scheduler: add metric for pods scheduled after flush
Add counter metric to track pods that schedule immediately after
being flushed from unschedulablePods due to timeout. Uses a boolean
flag that is cleared when pods return to queue or move via events.
2025-11-24 09:38:41 +01:00
Mohammad Varmazyar
b2a399cf30 scheduler: add metric for pods scheduled after flush
This metric tracks pods that successfully schedule after being
flushed from unschedulablePods due to timeout. High values may
indicate missing queue hint optimizations or event handling issues.
2025-11-24 09:38:40 +01:00
Ricardo Maraschini
98276e88ea cbor: bump limits
with the current established limits we can see the following error:

```
failed to list <object>: unable to determine group/version/kind: cbor:
exceeded max number of elements 1024 for CBOR array.
```
2025-11-21 14:56:05 +01:00
Joe Betz
5129fa152b hack/pin-dependency.sh sigs.k8s.io/structured-merge-diff/v6 v6.3.1 2025-11-21 08:53:57 -05:00
Ania Borowiec
250a6d5fe9
Add ania-borowiec to SIG Scheduling reviewers 2025-11-21 09:52:06 +00:00
PatrickLaabs
7402fc23db Denying deprecated pointer package in golangci-linters config 2025-11-21 09:51:20 +01:00
Kevin Hannon
ba7637c194 Add integration test for MutablePodResourcesForSuspendedJobs with PodReplacementPolicy=Failed
This test verifies that when a job with PodReplacementPolicy=Failed is
suspended and pods are terminating, resource updates can be made to the
job but new pods are only created after terminating pods are removed.
The new pods should have the updated resources.
2025-11-20 22:43:53 -05:00
Benjamin Elder
bb2899fc4a apidiff: autodetect remote and default branch 2025-11-20 16:48:02 -08:00
Ed Bartosh
392bb8e777 Refactor API group validation and error reporting
Updated API group validation logic to improve error reporting.
The Validate method now provides more descriptive error messages
when unknown API groups are encountered.
Unit test cases are updated to match the new error messages.

Co-authored-by: Jordan Liggitt <jordan@liggitt.net>
2025-11-20 18:35:35 +02:00
Jan Chaloupka
cc5ec714c1 fix(SchedulerPreemption/Async): schedule all medium priority pods first so all low priority pods can be preempted
If not all medium priority pods are allowed to preempt low priority pods
first the high priority pods may occupy the low priority spot and
disallow medium priority pods to preempt all low priority pods. Thus
leaving some low priority pods without a DeletionTimestamp field set and
failing the "Check all low priority pods to be about to preempted."
check.
2025-11-20 17:03:23 +01:00
Nikateen
c5b64ebf2e Use contextual logging in leaderelection
Update leaderelection package to use contextual logging variants:
- Replace wait.JitterUntil with wait.JitterUntilWithContext
- Replace wait.Until with wait.UntilWithContext

This enables proper contextual logging support as part of the
structured logging migration.

Ref #126379
2025-11-20 21:30:05 +05:30
Maciej Borsz
71c25c3a55 Fix apiserver_watch_events_sizes metric.
This metric got broken by caching efforts -- the value is counted only once.
2025-11-20 15:34:59 +00:00
Karthik Bhat
0ffcac7fc7 Use test context instead of generic context 2025-11-20 12:06:03 +05:30
Ravi Sastry Kadali
9dc5683c56 scheduler: Fix memory leak in scheduler cache
The `removeSlice` function was leaving behind references to the
removed element, preventing it from being garbage-collected.
This commit ensures that removed entries are fully cleared,
eliminating the memory leak.

Co-authored-by: ravisastryk <ravisastryk@gmail.com>
Signed-off-by: Sujal Shah <sujalshah28092004@gmail.com>
2025-11-20 02:18:38 +05:30
Lalit Chauhan
79b414dc8f Add k8s:optional on Device.Basic 2025-11-19 19:51:32 +00:00
Itamar Holder
792f1643d4 Add e2e tests
Signed-off-by: Itamar Holder <iholder@redhat.com>
2025-11-18 14:14:42 +02:00
Itamar Holder
af66766bf5 Add auto-generated code and boilerplate
Signed-off-by: Itamar Holder <iholder@redhat.com>
2025-11-18 14:14:41 +02:00
Itamar Holder
a4d9ac7bb0 unit test: Set image volume digest as part of container statuses
Signed-off-by: Itamar Holder <iholder@redhat.com>
2025-11-18 14:14:41 +02:00
Itamar Holder
e299190b41 Set image volume digest as part of container statuses
Signed-off-by: Itamar Holder <iholder@redhat.com>
2025-11-18 14:14:41 +02:00
Itamar Holder
777d7ddc17 Add imageRef to testdata
by running:
UPDATE_COMPATIBILITY_FIXTURE_DATA=true make test WHAT=./staging/src/k8s.io/api

Signed-off-by: Itamar Holder <iholder@redhat.com>
2025-11-18 14:14:41 +02:00
Itamar Holder
2c15d3b8e1 Add field wiping and validation logic
Signed-off-by: Itamar Holder <iholder@redhat.com>
2025-11-18 14:14:41 +02:00
Itamar Holder
52b544e41d Add ImageRef field to VolumeMountStatus
Signed-off-by: Itamar Holder <iholder@redhat.com>
2025-11-18 14:14:41 +02:00
Itamar Holder
21830a160e refactor: expose imageSpec conversion functions
Signed-off-by: Itamar Holder <iholder@redhat.com>
2025-11-18 14:14:41 +02:00
Itamar Holder
c10cead493 cri-api: Add image_ref to the ImageSpec struct
Signed-off-by: Itamar Holder <iholder@redhat.com>
2025-11-18 14:14:41 +02:00
Itamar Holder
277de617bb add the ImageVolumeWithDigest feature gate
Signed-off-by: Itamar Holder <iholder@redhat.com>
2025-11-18 14:14:40 +02:00
Akihiro Suda
0c0bc0d533
hack/lib/util.sh: support uutils' date command
`make` was printing the following warning on Ubuntu 25.10,
which switched away from GNU coreutils to uutils:

```
!!! [1107 12:46:24] Failed to find GNU date as date or gdate. If you are on Mac: brew install coreutils.
<GOPATH>/src/k8s.io/kubernetes/hack/lib/version.sh: line 166: DATE: unbound variable
```

Fix issue 135210

Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
2025-11-18 17:27:50 +09:00
yashsingh74
ad78b40320
Bump etcd 3.6.6 sdk
Signed-off-by: yashsingh74 <yashsingh1774@gmail.com>
2025-11-18 11:45:22 +05:30
Lukasz Szaszkiewicz
f4c24b5ef5 client-go/reflector: Improve WatchListClient disabled log message for clarity 2025-11-17 09:25:33 +01:00
Adrian Moisey
002c85b218
Tweak the informer for Services
It no longer filters out Services with the v1.IsHeadlessService
label as that is left for EndpointSlices
2025-11-17 08:39:38 +02:00
liyuerich
a9085f7358 enable commentstart check on apidiscovery API group
Signed-off-by: liyuerich <yue.li@daocloud.io>
2025-11-14 15:10:30 +08:00
bwsalmon
a48b189025 Fix a bug in scheduler_perf. 2025-11-14 04:03:03 +00:00
xuzhenglun
9e3f192839
chore: fix case title in kubelet/server unit 2025-11-13 21:39:23 +08:00
Stephen Kitt
55c337637e
Enforce Golang a, b = b, a swaps
This eliminates the last two remaining three-step value swaps (t =
a; a = b; b = t instead of a, b = b, a) and enables linting to prevent
new ones being added in future.

Signed-off-by: Stephen Kitt <skitt@redhat.com>
2025-11-13 06:38:23 -05:00
Ed Bartosh
4822f77879 kubelet: migrate allocation to contextual logging 2025-11-12 21:50:24 +02:00
VijetaPriya47
4795edadee Fix goroutine leak in TestNodeSyncResync 2025-11-11 21:19:28 +05:30
Ed Bartosh
9521398859 kubelet: migrate container manager to contextual logging 2025-11-11 13:51:01 +02:00
Filip Křepinský
e6641cd290 rename scaleReplicaSetAndRecordEvent to scaleReplicaSetWithLazyAnnotationUpdate 2025-11-08 10:18:50 -05:00
jsut21
f157114fa9 kubelet: use wait.UntilWithContext for healthz server (issue #126379) 2025-11-08 16:26:46 +09:00
Konrad Kaim
7c9d625cd3 feat: unify pod describer 2025-11-07 16:34:42 +00:00
astraw99
8bf07d22c2 Add node arch in the kubectl get node output 2025-11-07 18:40:44 +08:00
shwetha-s-poojary
84baa7143e Enable notimestamp rule for Kube API Linter 2025-11-07 09:09:51 +05:30
Mo Khan
f184f40979
Add enj to k8s.io/client-go approvers 2025-11-06 09:16:21 -05:00
elmiko
74483e7384 update sig cloud provider owners
This change updates the feature-approvers alias and the staging
directory for cloud-provider to include the current technical leaders
for the sig. Previous approvers who are no longer actively reviewing
have been moved to emeritus status.
2025-11-05 15:46:41 -05:00
Lubomir I. Ivanov
e5665154f7 kubeadm: add --allow-deprecated-api to 'config validate'
The command can have this additional flag so that a warning
is printed or not printed when a deprecated API is validated.

Additionally, this commit fixes missing UpgradeConfiguration
validation and strict errors. By default we call:
  documentMapToUpgradeConfiguration(gvkmap, false, false, false)

so there is no change in behavior outside of
'config migrate/validate'.
2025-11-05 19:14:22 +02:00
Ed Bartosh
3156c2a2ef pluginmanager: fix handling registration failures
Updated the pluginmanager to handle registration failures better
by removing the plugin from the actual state of the world and
deregistering when registration or notification fails.
Added a new e2e test to verify that the kubelet plugin manager retries
plugin registration when NotifyRegistrationStatus call fails.
2025-11-03 11:18:36 +02:00
Aditi Gupta
6d23bc4b65 kube-aggregator: Refactor OpenAPI controllers to be context-aware 2025-11-02 20:56:45 -08:00
Humble Devassy Chirammal
902c652ccb Record proper orphaned pod cleanup error based on the system call
The code actually calls os.Remove(), not rmdir(). The error message
should accurately reflect the operation being performed.
os.Remove() can remove both files and directories, while rmdir()
only removes directories

Signed-off-by: Humble Devassy Chirammal <humble.devassy@gmail.com>
2025-11-01 11:35:27 +05:30
Peter Hunt
7547cfc78f kubelet: drop cpu load metrics from container metrics test
It seems to me the kubelet actually doesn't enable the
[load reader](5adb1c3bb3/manager/container.go (L49))
so these metrics are always 0. Also, according to https://github.com/google/cadvisor/issues/3430 there are issues
with the cpu load reader on cgroupv2.

I've checked on a local cluster and cannot see these metrics having any values other than 0, so I don't think they're worth reporting.

Signed-off-by: Peter Hunt <pehunt@redhat.com>
2025-10-30 13:09:41 -04:00
marco aeppli
ce828ccf28 Fix typo in iscsi.go comment: provideded -> provided 2025-10-28 12:32:18 +01:00
Zeqian Meng
3d33cb1dfe Update to use NPB3.4.3 2025-10-27 22:36:14 +01:00
Ondra Kupka
14cf86648f kubectl label: Add 'modified' output version
When labels are both added and removed, labels modified message is now
printed instead of labeled/unlabeled.
2025-10-27 10:38:45 +01:00
jaehanbyun
336ec22700 ingressclass: show (default) marker for default IngressClass
Signed-off-by: jaehanbyun <awbrg789@naver.com>
2025-10-26 20:53:56 +09:00
Ondra Kupka
de229210c1 kubectl label: Improve tests 2025-10-24 12:44:58 +02:00
Dawei Wei
a1ce392bb0 kubelet/windows: use CommitMemoryBytes for MemoryStats.UsageBytes in CRI stats provider 2025-10-21 10:15:01 -07:00
GrigoriyMikhalkin
4ba0891cf4 Fixing data race in etcd watcher 2025-10-18 15:42:51 +02:00
Adrian Moisey
7742bd0b07
Refactor 'Services should implement service.kubernetes.io/headless' test 2025-10-18 15:05:45 +02:00
bin
786f4e9c20 fix validateFunctionShape nil pointer if RequestedToCapacityRatio not set
Signed-off-by: bin <bin.pan@daocloud.io>
2025-10-18 07:59:26 +08:00
Varun Ramachandra Sekar
4d1ed68946 helper function to standardize the PCIBusID device attribute for DRA drivers
Signed-off-by: Varun Ramachandra Sekar <vsekar@nvidia.com>
2025-10-14 15:04:06 -07:00
carlory
1dd82ce2a4
Add port name and custom metric name to autoscaling utils
Signed-off-by: carlory <baofa.fan@daocloud.io>
2025-10-10 17:13:34 +08:00
Zeqian Meng
25653e7bfc Update to Debian Buster for npb-ep image 2025-10-08 11:31:53 +02:00
Nikita B
d98076bdc0 [apiserver] [126379]: replace call to HandleCrash with call to HandleCrashWithContext where ctx is available for caller: remove obsolete comment
Signed-off-by: Nikita B <n2h9z4@gmail.com>
2025-10-02 19:57:38 +02:00
Nikita B
4116c15c8f [apiserver] [126379]: replace call to HandleCrash with call to HandleCrashWithContext where ctx is available for caller
Signed-off-by: Nikita B <n2h9z4@gmail.com>
2025-10-02 19:57:33 +02:00
Zeqian Meng
5001fdc23e Upgrade Debian for npb-ep e2e test image 2025-09-19 15:56:09 +02:00
mcallzbl
92a32e6d88 Replace deprecated sets.String with sets.Set[string] in apiserver.pkg.admission 2025-09-17 23:04:33 +08:00
Richa Banker
a3dae490bf ensure KMS plugin socket is removed before starting mock in 'encrypt all resources' test 2025-09-16 10:54:26 -07:00
rbiamru
fbc9d1ae5f Sync generated OpenAPI after reverting types.go 2025-09-10 23:36:56 -04:00
ChengHao Yang
eb603fa4f3
Pass the Logger to CreateTestClient for support contextual logging
Signed-off-by: ChengHao Yang <17496418+tico88612@users.noreply.github.com>
2025-09-11 08:39:49 +08:00
ChengHao Yang
ef96d9cbd2
Replace NewFake with NewFakeWithOptions in pkg/controller
CreateTestClient add the argument logger for support contextual logging

Signed-off-by: ChengHao Yang <17496418+tico88612@users.noreply.github.com>
2025-09-11 08:39:49 +08:00
Amruthan Manjula Anandan
4a61726a60 Run go fmt on options.go 2025-09-10 10:54:52 -04:00
Amruthan Manjula Anandan
d2a51ba218 Revert wording change in types.go 2025-09-10 10:08:00 -04:00
Amruthan Manjula Anandan
a45b390fe9 Update cpuCFSQuotaPeriod comment in types.go per review feedback 2025-09-10 06:00:42 -04:00
Amruthan Manjula Anandan
b48cf4eb18 Remove line in kubelet options per review feedback 2025-09-10 05:21:20 -04:00
Amruthan Manjula Anandan
921d504832 Remove commented-out old code in kubelet options per review feedback 2025-09-10 05:18:48 -04:00
Rikiya Narita
e7a5f5288f apiserver/peerproxy: avoid shadowing math/rand with local variable\n\nThis change renames a local variable named 'rand' to 'endpointIndex' to avoid shadowing the imported math/rand package in peer proxy handler when selecting a random peer endpoint. Behavior is unchanged; this improves readability and prevents future confusion.\n\n/kind cleanup\n/area apiserver\n/sig api-machinery\n\n/release-note-none\n 2025-09-05 02:54:47 +09:00
Amruthan Manjula Anandan
60aee81561 Clarify CPUCFSQuotaPeriod config vs CustomCPUCFSQuotaPeriod feature gate 2025-09-02 09:51:56 -04:00
Benjamin Elder
65cdee5e68 Reapply "stop overriding max concurrency in CI, let automax procs handle it"
This reverts commit cf20c21ef8.
2025-08-28 12:02:43 -07:00
carlory
2f3e6778ff
clean up removeMaxAttachLimit 2025-08-27 10:58:47 +08:00
Leandro López (inkel)
92a0e422df
Concatenate string instead of using fmt.Sprintf
The call to `fmt.Sprintf` does virtually the same as concatenating the
strings, but incurs in minor overhead from having to call a function,
and performs an additional allocation.

I've made a small benchmark for this and when run against current
`master` and this branch, the results are significant for this
function:

    goos: darwin
    goarch: arm64
    pkg: k8s.io/client-go/transport
    cpu: Apple M1 Pro
                              │ bart.base.log │           bart.concat.log            │
                              │    sec/op     │    sec/op     vs base                │
    BearerAuthRoundTripper-10    361.3n ± 31%   295.5n ± 11%  -18.21% (p=0.000 n=20)

                              │ bart.base.log │          bart.concat.log          │
                              │     B/op      │    B/op     vs base               │
    BearerAuthRoundTripper-10      768.0 ± 0%   752.0 ± 0%  -2.08% (p=0.000 n=20)

                              │ bart.base.log │          bart.concat.log           │
                              │   allocs/op   │ allocs/op   vs base                │
    BearerAuthRoundTripper-10      6.000 ± 0%   5.000 ± 0%  -16.67% (p=0.000 n=20)

Considering this method is likely used in many installations, the
gains, while small, adds up to bigger savings
2025-06-06 08:27:49 -03:00
3344 changed files with 142647 additions and 102022 deletions

View file

@ -13,6 +13,7 @@ https://git.k8s.io/community/contributors/devel/sig-release/release.md#issuepr-k
<!--
Add one of the following kinds:
/kind bug
/kind dependency
/kind cleanup
/kind documentation
/kind feature

View file

@ -1 +1 @@
1.25.5
1.25.7

View file

@ -3718,7 +3718,7 @@ name | architectures
- Fixes spurious `field is immutable` errors validating updates to Event API objects via the `events.k8s.io/v1` API ([#112183](https://github.com/kubernetes/kubernetes/pull/112183), [@liggitt](https://github.com/liggitt)) [SIG Apps]
- Protobuf serialization of metav1.MicroTime timestamps (used in `Lease` and `Event` API objects) has been corrected to truncate to microsecond precision, to match the documented behavior and JSON/YAML serialization. Any existing persisted data is truncated to microsecond when read from etcd. ([#111936](https://github.com/kubernetes/kubernetes/pull/111936), [@haoruan](https://github.com/haoruan)) [SIG API Machinery]
- Revert regression that prevented client-go latency metrics to be reported with a template URL to avoid label cardinality. ([#111752](https://github.com/kubernetes/kubernetes/pull/111752), [@aanm](https://github.com/aanm)) [SIG API Machinery]
- [kubelet] Change default `cpuCFSQuotaPeriod` value with enabled `cpuCFSQuotaPeriod` flag from 100ms to 100µs to match the Linux CFS and k8s defaults. `cpuCFSQuotaPeriod` of 100ms now requires `customCPUCFSQuotaPeriod` flag to be set to work. ([#111520](https://github.com/kubernetes/kubernetes/pull/111520), [@paskal](https://github.com/paskal)) [SIG API Machinery and Node]
- [kubelet] Change default `cpuCFSQuotaPeriod` value with enabled `cpuCFSQuotaPeriod` flag from 100ms to 100µs to match the Linux CFS and k8s defaults. `cpuCFSQuotaPeriod` of 100ms now requires `CustomCPUCFSQuotaPeriod` feature gate to be enabled. ([#111520](https://github.com/kubernetes/kubernetes/pull/111520), [@paskal](https://github.com/paskal)) [SIG API Machinery and Node]
### Feature

View file

@ -1,13 +1,13 @@
<!-- BEGIN MUNGE: GENERATED_TOC -->
- [v1.32.10](#v13210)
- [Downloads for v1.32.10](#downloads-for-v13210)
- [v1.32.12](#v13212)
- [Downloads for v1.32.12](#downloads-for-v13212)
- [Source Code](#source-code)
- [Client Binaries](#client-binaries)
- [Server Binaries](#server-binaries)
- [Node Binaries](#node-binaries)
- [Container Images](#container-images)
- [Changelog since v1.32.9](#changelog-since-v1329)
- [Changelog since v1.32.11](#changelog-since-v13211)
- [Changes by Kind](#changes-by-kind)
- [Feature](#feature)
- [Bug or Regression](#bug-or-regression)
@ -16,295 +16,515 @@
- [Added](#added)
- [Changed](#changed)
- [Removed](#removed)
- [v1.32.9](#v1329)
- [Downloads for v1.32.9](#downloads-for-v1329)
- [v1.32.11](#v13211)
- [Downloads for v1.32.11](#downloads-for-v13211)
- [Source Code](#source-code-1)
- [Client Binaries](#client-binaries-1)
- [Server Binaries](#server-binaries-1)
- [Node Binaries](#node-binaries-1)
- [Container Images](#container-images-1)
- [Changelog since v1.32.8](#changelog-since-v1328)
- [Changelog since v1.32.10](#changelog-since-v13210)
- [Changes by Kind](#changes-by-kind-1)
- [Feature](#feature-1)
- [Bug or Regression](#bug-or-regression-1)
- [Other (Cleanup or Flake)](#other-cleanup-or-flake-1)
- [Dependencies](#dependencies-1)
- [Added](#added-1)
- [Changed](#changed-1)
- [Removed](#removed-1)
- [v1.32.8](#v1328)
- [Downloads for v1.32.8](#downloads-for-v1328)
- [v1.32.10](#v13210)
- [Downloads for v1.32.10](#downloads-for-v13210)
- [Source Code](#source-code-2)
- [Client Binaries](#client-binaries-2)
- [Server Binaries](#server-binaries-2)
- [Node Binaries](#node-binaries-2)
- [Container Images](#container-images-2)
- [Changelog since v1.32.7](#changelog-since-v1327)
- [Important Security Information](#important-security-information)
- [CVE-2025-5187: Nodes can delete themselves by adding an OwnerReference](#cve-2025-5187-nodes-can-delete-themselves-by-adding-an-ownerreference)
- [Changelog since v1.32.9](#changelog-since-v1329)
- [Changes by Kind](#changes-by-kind-2)
- [Feature](#feature-2)
- [Bug or Regression](#bug-or-regression-2)
- [Other (Cleanup or Flake)](#other-cleanup-or-flake-1)
- [Dependencies](#dependencies-2)
- [Added](#added-2)
- [Changed](#changed-2)
- [Removed](#removed-2)
- [v1.32.7](#v1327)
- [Downloads for v1.32.7](#downloads-for-v1327)
- [v1.32.9](#v1329)
- [Downloads for v1.32.9](#downloads-for-v1329)
- [Source Code](#source-code-3)
- [Client Binaries](#client-binaries-3)
- [Server Binaries](#server-binaries-3)
- [Node Binaries](#node-binaries-3)
- [Container Images](#container-images-3)
- [Changelog since v1.32.6](#changelog-since-v1326)
- [Changelog since v1.32.8](#changelog-since-v1328)
- [Changes by Kind](#changes-by-kind-3)
- [Feature](#feature-3)
- [Bug or Regression](#bug-or-regression-3)
- [Other (Cleanup or Flake)](#other-cleanup-or-flake-2)
- [Dependencies](#dependencies-3)
- [Added](#added-3)
- [Changed](#changed-3)
- [Removed](#removed-3)
- [v1.32.6](#v1326)
- [Downloads for v1.32.6](#downloads-for-v1326)
- [v1.32.8](#v1328)
- [Downloads for v1.32.8](#downloads-for-v1328)
- [Source Code](#source-code-4)
- [Client Binaries](#client-binaries-4)
- [Server Binaries](#server-binaries-4)
- [Node Binaries](#node-binaries-4)
- [Container Images](#container-images-4)
- [Changelog since v1.32.5](#changelog-since-v1325)
- [Important Security Information](#important-security-information-1)
- [CVE-2025-4563: Nodes can bypass dynamic resource allocation authorization checks](#cve-2025-4563-nodes-can-bypass-dynamic-resource-allocation-authorization-checks)
- [Changelog since v1.32.7](#changelog-since-v1327)
- [Important Security Information](#important-security-information)
- [CVE-2025-5187: Nodes can delete themselves by adding an OwnerReference](#cve-2025-5187-nodes-can-delete-themselves-by-adding-an-ownerreference)
- [Changes by Kind](#changes-by-kind-4)
- [Feature](#feature-3)
- [Feature](#feature-4)
- [Bug or Regression](#bug-or-regression-4)
- [Other (Cleanup or Flake)](#other-cleanup-or-flake-2)
- [Dependencies](#dependencies-4)
- [Added](#added-4)
- [Changed](#changed-4)
- [Removed](#removed-4)
- [v1.32.5](#v1325)
- [Downloads for v1.32.5](#downloads-for-v1325)
- [v1.32.7](#v1327)
- [Downloads for v1.32.7](#downloads-for-v1327)
- [Source Code](#source-code-5)
- [Client Binaries](#client-binaries-5)
- [Server Binaries](#server-binaries-5)
- [Node Binaries](#node-binaries-5)
- [Container Images](#container-images-5)
- [Changelog since v1.32.4](#changelog-since-v1324)
- [Changelog since v1.32.6](#changelog-since-v1326)
- [Changes by Kind](#changes-by-kind-5)
- [Feature](#feature-4)
- [Bug or Regression](#bug-or-regression-5)
- [Dependencies](#dependencies-5)
- [Added](#added-5)
- [Changed](#changed-5)
- [Removed](#removed-5)
- [v1.32.4](#v1324)
- [Downloads for v1.32.4](#downloads-for-v1324)
- [v1.32.6](#v1326)
- [Downloads for v1.32.6](#downloads-for-v1326)
- [Source Code](#source-code-6)
- [Client Binaries](#client-binaries-6)
- [Server Binaries](#server-binaries-6)
- [Node Binaries](#node-binaries-6)
- [Container Images](#container-images-6)
- [Changelog since v1.32.3](#changelog-since-v1323)
- [Changelog since v1.32.5](#changelog-since-v1325)
- [Important Security Information](#important-security-information-1)
- [CVE-2025-4563: Nodes can bypass dynamic resource allocation authorization checks](#cve-2025-4563-nodes-can-bypass-dynamic-resource-allocation-authorization-checks)
- [Changes by Kind](#changes-by-kind-6)
- [Feature](#feature-5)
- [Bug or Regression](#bug-or-regression-6)
- [Other (Cleanup or Flake)](#other-cleanup-or-flake-3)
- [Dependencies](#dependencies-6)
- [Added](#added-6)
- [Changed](#changed-6)
- [Removed](#removed-6)
- [v1.32.3](#v1323)
- [Downloads for v1.32.3](#downloads-for-v1323)
- [v1.32.5](#v1325)
- [Downloads for v1.32.5](#downloads-for-v1325)
- [Source Code](#source-code-7)
- [Client Binaries](#client-binaries-7)
- [Server Binaries](#server-binaries-7)
- [Node Binaries](#node-binaries-7)
- [Container Images](#container-images-7)
- [Changelog since v1.32.2](#changelog-since-v1322)
- [Changelog since v1.32.4](#changelog-since-v1324)
- [Changes by Kind](#changes-by-kind-7)
- [API Change](#api-change)
- [Feature](#feature-6)
- [Bug or Regression](#bug-or-regression-7)
- [Dependencies](#dependencies-7)
- [Added](#added-7)
- [Changed](#changed-7)
- [Removed](#removed-7)
- [v1.32.2](#v1322)
- [Downloads for v1.32.2](#downloads-for-v1322)
- [v1.32.4](#v1324)
- [Downloads for v1.32.4](#downloads-for-v1324)
- [Source Code](#source-code-8)
- [Client Binaries](#client-binaries-8)
- [Server Binaries](#server-binaries-8)
- [Node Binaries](#node-binaries-8)
- [Container Images](#container-images-8)
- [Changelog since v1.32.1](#changelog-since-v1321)
- [Important Security Information](#important-security-information-2)
- [CVE-2025-0426: Node Denial of Service via Kubelet Checkpoint API](#cve-2025-0426-node-denial-of-service-via-kubelet-checkpoint-api)
- [Changelog since v1.32.3](#changelog-since-v1323)
- [Changes by Kind](#changes-by-kind-8)
- [Feature](#feature-5)
- [Bug or Regression](#bug-or-regression-8)
- [Other (Cleanup or Flake)](#other-cleanup-or-flake-3)
- [Dependencies](#dependencies-8)
- [Added](#added-8)
- [Changed](#changed-8)
- [Removed](#removed-8)
- [v1.32.1](#v1321)
- [Downloads for v1.32.1](#downloads-for-v1321)
- [v1.32.3](#v1323)
- [Downloads for v1.32.3](#downloads-for-v1323)
- [Source Code](#source-code-9)
- [Client Binaries](#client-binaries-9)
- [Server Binaries](#server-binaries-9)
- [Node Binaries](#node-binaries-9)
- [Container Images](#container-images-9)
- [Changelog since v1.32.0](#changelog-since-v1320)
- [Important Security Information](#important-security-information-3)
- [CVE-2024-9042: Command Injection affecting Windows nodes via nodes/*/logs/query API](#cve-2024-9042-command-injection-affecting-windows-nodes-via-nodeslogsquery-api)
- [Changelog since v1.32.2](#changelog-since-v1322)
- [Changes by Kind](#changes-by-kind-9)
- [API Change](#api-change-1)
- [Feature](#feature-6)
- [API Change](#api-change)
- [Bug or Regression](#bug-or-regression-9)
- [Dependencies](#dependencies-9)
- [Added](#added-9)
- [Changed](#changed-9)
- [Removed](#removed-9)
- [v1.32.0](#v1320)
- [Downloads for v1.32.0](#downloads-for-v1320)
- [v1.32.2](#v1322)
- [Downloads for v1.32.2](#downloads-for-v1322)
- [Source Code](#source-code-10)
- [Client Binaries](#client-binaries-10)
- [Server Binaries](#server-binaries-10)
- [Node Binaries](#node-binaries-10)
- [Container Images](#container-images-10)
- [Changelog since v1.31.0](#changelog-since-v1310)
- [Urgent Upgrade Notes](#urgent-upgrade-notes)
- [Changelog since v1.32.1](#changelog-since-v1321)
- [Important Security Information](#important-security-information-2)
- [CVE-2025-0426: Node Denial of Service via Kubelet Checkpoint API](#cve-2025-0426-node-denial-of-service-via-kubelet-checkpoint-api)
- [Changes by Kind](#changes-by-kind-10)
- [Deprecation](#deprecation)
- [API Change](#api-change-2)
- [Feature](#feature-7)
- [Documentation](#documentation)
- [Failing Test](#failing-test)
- [Bug or Regression](#bug-or-regression-10)
- [Other (Cleanup or Flake)](#other-cleanup-or-flake-4)
- [Dependencies](#dependencies-10)
- [Added](#added-10)
- [Changed](#changed-10)
- [Removed](#removed-10)
- [v1.32.0-rc.2](#v1320-rc2)
- [Downloads for v1.32.0-rc.2](#downloads-for-v1320-rc2)
- [v1.32.1](#v1321)
- [Downloads for v1.32.1](#downloads-for-v1321)
- [Source Code](#source-code-11)
- [Client Binaries](#client-binaries-11)
- [Server Binaries](#server-binaries-11)
- [Node Binaries](#node-binaries-11)
- [Container Images](#container-images-11)
- [Changelog since v1.32.0-rc.1](#changelog-since-v1320-rc1)
- [Changelog since v1.32.0](#changelog-since-v1320)
- [Important Security Information](#important-security-information-3)
- [CVE-2024-9042: Command Injection affecting Windows nodes via nodes/*/logs/query API](#cve-2024-9042-command-injection-affecting-windows-nodes-via-nodeslogsquery-api)
- [Changes by Kind](#changes-by-kind-11)
- [API Change](#api-change-3)
- [API Change](#api-change-1)
- [Feature](#feature-8)
- [Bug or Regression](#bug-or-regression-11)
- [Dependencies](#dependencies-11)
- [Added](#added-11)
- [Changed](#changed-11)
- [Removed](#removed-11)
- [v1.32.0-rc.1](#v1320-rc1)
- [Downloads for v1.32.0-rc.1](#downloads-for-v1320-rc1)
- [v1.32.0](#v1320)
- [Downloads for v1.32.0](#downloads-for-v1320)
- [Source Code](#source-code-12)
- [Client Binaries](#client-binaries-12)
- [Server Binaries](#server-binaries-12)
- [Node Binaries](#node-binaries-12)
- [Container Images](#container-images-12)
- [Changelog since v1.32.0-rc.0](#changelog-since-v1320-rc0)
- [Changelog since v1.31.0](#changelog-since-v1310)
- [Urgent Upgrade Notes](#urgent-upgrade-notes)
- [Changes by Kind](#changes-by-kind-12)
- [Deprecation](#deprecation)
- [API Change](#api-change-2)
- [Feature](#feature-9)
- [Documentation](#documentation)
- [Failing Test](#failing-test)
- [Bug or Regression](#bug-or-regression-12)
- [Other (Cleanup or Flake)](#other-cleanup-or-flake-5)
- [Dependencies](#dependencies-12)
- [Added](#added-12)
- [Changed](#changed-12)
- [Removed](#removed-12)
- [v1.32.0-rc.0](#v1320-rc0)
- [Downloads for v1.32.0-rc.0](#downloads-for-v1320-rc0)
- [v1.32.0-rc.2](#v1320-rc2)
- [Downloads for v1.32.0-rc.2](#downloads-for-v1320-rc2)
- [Source Code](#source-code-13)
- [Client Binaries](#client-binaries-13)
- [Server Binaries](#server-binaries-13)
- [Node Binaries](#node-binaries-13)
- [Container Images](#container-images-13)
- [Changelog since v1.32.0-beta.0](#changelog-since-v1320-beta0)
- [Changes by Kind](#changes-by-kind-12)
- [API Change](#api-change-4)
- [Feature](#feature-8)
- [Bug or Regression](#bug-or-regression-12)
- [Other (Cleanup or Flake)](#other-cleanup-or-flake-5)
- [Changelog since v1.32.0-rc.1](#changelog-since-v1320-rc1)
- [Changes by Kind](#changes-by-kind-13)
- [API Change](#api-change-3)
- [Bug or Regression](#bug-or-regression-13)
- [Dependencies](#dependencies-13)
- [Added](#added-13)
- [Changed](#changed-13)
- [Removed](#removed-13)
- [v1.32.0-beta.0](#v1320-beta0)
- [Downloads for v1.32.0-beta.0](#downloads-for-v1320-beta0)
- [v1.32.0-rc.1](#v1320-rc1)
- [Downloads for v1.32.0-rc.1](#downloads-for-v1320-rc1)
- [Source Code](#source-code-14)
- [Client Binaries](#client-binaries-14)
- [Server Binaries](#server-binaries-14)
- [Node Binaries](#node-binaries-14)
- [Container Images](#container-images-14)
- [Changelog since v1.32.0-alpha.3](#changelog-since-v1320-alpha3)
- [Urgent Upgrade Notes](#urgent-upgrade-notes-1)
- [(No, really, you MUST read this before you upgrade)](#no-really-you-must-read-this-before-you-upgrade)
- [Changes by Kind](#changes-by-kind-13)
- [Deprecation](#deprecation-1)
- [API Change](#api-change-5)
- [Feature](#feature-9)
- [Bug or Regression](#bug-or-regression-13)
- [Other (Cleanup or Flake)](#other-cleanup-or-flake-6)
- [Changelog since v1.32.0-rc.0](#changelog-since-v1320-rc0)
- [Dependencies](#dependencies-14)
- [Added](#added-14)
- [Changed](#changed-14)
- [Removed](#removed-14)
- [v1.32.0-alpha.3](#v1320-alpha3)
- [Downloads for v1.32.0-alpha.3](#downloads-for-v1320-alpha3)
- [v1.32.0-rc.0](#v1320-rc0)
- [Downloads for v1.32.0-rc.0](#downloads-for-v1320-rc0)
- [Source Code](#source-code-15)
- [Client Binaries](#client-binaries-15)
- [Server Binaries](#server-binaries-15)
- [Node Binaries](#node-binaries-15)
- [Container Images](#container-images-15)
- [Changelog since v1.32.0-alpha.2](#changelog-since-v1320-alpha2)
- [Changelog since v1.32.0-beta.0](#changelog-since-v1320-beta0)
- [Changes by Kind](#changes-by-kind-14)
- [API Change](#api-change-6)
- [API Change](#api-change-4)
- [Feature](#feature-10)
- [Documentation](#documentation-1)
- [Bug or Regression](#bug-or-regression-14)
- [Other (Cleanup or Flake)](#other-cleanup-or-flake-7)
- [Other (Cleanup or Flake)](#other-cleanup-or-flake-6)
- [Dependencies](#dependencies-15)
- [Added](#added-15)
- [Changed](#changed-15)
- [Removed](#removed-15)
- [v1.32.0-alpha.2](#v1320-alpha2)
- [Downloads for v1.32.0-alpha.2](#downloads-for-v1320-alpha2)
- [v1.32.0-beta.0](#v1320-beta0)
- [Downloads for v1.32.0-beta.0](#downloads-for-v1320-beta0)
- [Source Code](#source-code-16)
- [Client Binaries](#client-binaries-16)
- [Server Binaries](#server-binaries-16)
- [Node Binaries](#node-binaries-16)
- [Container Images](#container-images-16)
- [Changelog since v1.32.0-alpha.1](#changelog-since-v1320-alpha1)
- [Changelog since v1.32.0-alpha.3](#changelog-since-v1320-alpha3)
- [Urgent Upgrade Notes](#urgent-upgrade-notes-1)
- [(No, really, you MUST read this before you upgrade)](#no-really-you-must-read-this-before-you-upgrade)
- [Changes by Kind](#changes-by-kind-15)
- [API Change](#api-change-7)
- [Deprecation](#deprecation-1)
- [API Change](#api-change-5)
- [Feature](#feature-11)
- [Documentation](#documentation-2)
- [Bug or Regression](#bug-or-regression-15)
- [Other (Cleanup or Flake)](#other-cleanup-or-flake-8)
- [Other (Cleanup or Flake)](#other-cleanup-or-flake-7)
- [Dependencies](#dependencies-16)
- [Added](#added-16)
- [Changed](#changed-16)
- [Removed](#removed-16)
- [v1.32.0-alpha.1](#v1320-alpha1)
- [Downloads for v1.32.0-alpha.1](#downloads-for-v1320-alpha1)
- [v1.32.0-alpha.3](#v1320-alpha3)
- [Downloads for v1.32.0-alpha.3](#downloads-for-v1320-alpha3)
- [Source Code](#source-code-17)
- [Client Binaries](#client-binaries-17)
- [Server Binaries](#server-binaries-17)
- [Node Binaries](#node-binaries-17)
- [Container Images](#container-images-17)
- [Changelog since v1.31.0](#changelog-since-v1310-1)
- [Changelog since v1.32.0-alpha.2](#changelog-since-v1320-alpha2)
- [Changes by Kind](#changes-by-kind-16)
- [Deprecation](#deprecation-2)
- [API Change](#api-change-8)
- [API Change](#api-change-6)
- [Feature](#feature-12)
- [Documentation](#documentation-3)
- [Failing Test](#failing-test-1)
- [Documentation](#documentation-1)
- [Bug or Regression](#bug-or-regression-16)
- [Other (Cleanup or Flake)](#other-cleanup-or-flake-9)
- [Other (Cleanup or Flake)](#other-cleanup-or-flake-8)
- [Dependencies](#dependencies-17)
- [Added](#added-17)
- [Changed](#changed-17)
- [Removed](#removed-17)
- [v1.32.0-alpha.2](#v1320-alpha2)
- [Downloads for v1.32.0-alpha.2](#downloads-for-v1320-alpha2)
- [Source Code](#source-code-18)
- [Client Binaries](#client-binaries-18)
- [Server Binaries](#server-binaries-18)
- [Node Binaries](#node-binaries-18)
- [Container Images](#container-images-18)
- [Changelog since v1.32.0-alpha.1](#changelog-since-v1320-alpha1)
- [Changes by Kind](#changes-by-kind-17)
- [API Change](#api-change-7)
- [Feature](#feature-13)
- [Documentation](#documentation-2)
- [Bug or Regression](#bug-or-regression-17)
- [Other (Cleanup or Flake)](#other-cleanup-or-flake-9)
- [Dependencies](#dependencies-18)
- [Added](#added-18)
- [Changed](#changed-18)
- [Removed](#removed-18)
- [v1.32.0-alpha.1](#v1320-alpha1)
- [Downloads for v1.32.0-alpha.1](#downloads-for-v1320-alpha1)
- [Source Code](#source-code-19)
- [Client Binaries](#client-binaries-19)
- [Server Binaries](#server-binaries-19)
- [Node Binaries](#node-binaries-19)
- [Container Images](#container-images-19)
- [Changelog since v1.31.0](#changelog-since-v1310-1)
- [Changes by Kind](#changes-by-kind-18)
- [Deprecation](#deprecation-2)
- [API Change](#api-change-8)
- [Feature](#feature-14)
- [Documentation](#documentation-3)
- [Failing Test](#failing-test-1)
- [Bug or Regression](#bug-or-regression-18)
- [Other (Cleanup or Flake)](#other-cleanup-or-flake-10)
- [Dependencies](#dependencies-19)
- [Added](#added-19)
- [Changed](#changed-19)
- [Removed](#removed-19)
<!-- END MUNGE: GENERATED_TOC -->
# v1.32.12
## Downloads for v1.32.12
### Source Code
filename | sha512 hash
-------- | -----------
[kubernetes.tar.gz](https://dl.k8s.io/v1.32.12/kubernetes.tar.gz) | ad704b7b7f6c59439ca4e1ae9695c61bf8b60fc87a97d8a96b3e7c8b99e75669cee1f65b98c4faa503050476c4f859885f7a1c77850699905ff98014da2c217f
[kubernetes-src.tar.gz](https://dl.k8s.io/v1.32.12/kubernetes-src.tar.gz) | aac32bc4c6b87c39439d48149673b1c974c9f7a98c06a667724345b7b91adf4da5571e7c65b1c7a27016ebbfdb1fe7079d051146544ea6da621818f21c58f492
### Client Binaries
filename | sha512 hash
-------- | -----------
[kubernetes-client-darwin-amd64.tar.gz](https://dl.k8s.io/v1.32.12/kubernetes-client-darwin-amd64.tar.gz) | a4754fd2b79fee1527d6ef20f9d86880cdc718b08aca4956173c4adedf1f24ca5c2b787eed8deb57255b442beb3ee15801d98c6334c54d8fca20dc3de0aa37af
[kubernetes-client-darwin-arm64.tar.gz](https://dl.k8s.io/v1.32.12/kubernetes-client-darwin-arm64.tar.gz) | 95139f897589a820ba7fa4e1de2bab53ba66dda10309a6e977c4cc98363d3b08aeef419adc02deaf2c71b3c1496740326a17f4d7d7723194ed9a3b255fa1dcae
[kubernetes-client-linux-386.tar.gz](https://dl.k8s.io/v1.32.12/kubernetes-client-linux-386.tar.gz) | d599dd8be9244d14439802c7b7741182d43ca582743610dd2f96498921346202dc796f3ca1db8c860d0df1a34a72f64b342b31faa699ab0d432dc3f7621b6cf7
[kubernetes-client-linux-amd64.tar.gz](https://dl.k8s.io/v1.32.12/kubernetes-client-linux-amd64.tar.gz) | fae8c578e3edaa65a5b0f162b96f4efd7e7356ed863ec9c5f9d922f91c2e6c456c25188704b7639d3240b9dc0416cfdb877df78b97b9ac32dc32c289a666a046
[kubernetes-client-linux-arm.tar.gz](https://dl.k8s.io/v1.32.12/kubernetes-client-linux-arm.tar.gz) | 4b75c3d9433ec6fbc0460ce51054d0f7b019824416facab80352829ea13e9380c1080e6807ab1de9603bac1aa4ea744ed3497a8b2bc5325bb94e36ab8823cc3d
[kubernetes-client-linux-arm64.tar.gz](https://dl.k8s.io/v1.32.12/kubernetes-client-linux-arm64.tar.gz) | b6d1be6dd3110bdf287dbd20d795faadccbebbef002194bf02d0429645b716606ba8fae225c9af6123689fa7731e9f747bad16b488daada96376c67fc0015c22
[kubernetes-client-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.32.12/kubernetes-client-linux-ppc64le.tar.gz) | dec602634c554abcba2cee1e70d2b9649ba975470890fbdd82cb81e42037246156602948c1b1b2610688f9e8fbe6682046d356fd6647137bdb7b128645132748
[kubernetes-client-linux-s390x.tar.gz](https://dl.k8s.io/v1.32.12/kubernetes-client-linux-s390x.tar.gz) | a9fbb1aad6da7c18286b180a4eb02657d7c2eaeecc09c4b9807d6828da8a804b34650e763a5a4f21d03d4091c6024ba0fb294f4646b68260609d72d344ab6889
[kubernetes-client-windows-386.tar.gz](https://dl.k8s.io/v1.32.12/kubernetes-client-windows-386.tar.gz) | 7996cd7ad83fe68ec579fcbc24aa1451e2abaae3dffc36d468299bcdb82b658fbfd96e17aa500fe90aac2eda0eb6103ba73d6c956972e0b1a1c95e0a2bdcf8af
[kubernetes-client-windows-amd64.tar.gz](https://dl.k8s.io/v1.32.12/kubernetes-client-windows-amd64.tar.gz) | 974101e64eedc9aa7be43092f8417a762f405f9fdf7f073bd32a3b17a4196b858d4ecd803ea17bdef074644837bb0c9c5da091f64d0d9a515735641faffb7cad
[kubernetes-client-windows-arm64.tar.gz](https://dl.k8s.io/v1.32.12/kubernetes-client-windows-arm64.tar.gz) | d4302f80309eb4828486e73be04a6698152b6eda51281bdb77059beffcf1e8b02799b530ea29cbded289b7ad7cb30f428cbbc9662614c85c0d57522865b74846
### Server Binaries
filename | sha512 hash
-------- | -----------
[kubernetes-server-linux-amd64.tar.gz](https://dl.k8s.io/v1.32.12/kubernetes-server-linux-amd64.tar.gz) | 17db87af8906199c10b7ff2e4844ba5374fada61aa5f63f3c677a2f66bf5207112ec6e9ba285baa79719820c4ab3f77fd75e69d8f704292fbd6a15df086a0d8e
[kubernetes-server-linux-arm64.tar.gz](https://dl.k8s.io/v1.32.12/kubernetes-server-linux-arm64.tar.gz) | e6a1c814f7c7878608677584fd340d9e9829a8832a6152c674b882e65a8b56b5c65d04b3f83589c153a384db78ca5a83c82e66db3e799fb4b6c52a19cc0a4b31
[kubernetes-server-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.32.12/kubernetes-server-linux-ppc64le.tar.gz) | e305148b6c54c6746765033c06f1fa9a6adf7c1bc06781685c01f104d2b0bd9252302c2e5f7bb24f902a6628e3cf2a16d28665c912939cbe5f59501318db24dd
[kubernetes-server-linux-s390x.tar.gz](https://dl.k8s.io/v1.32.12/kubernetes-server-linux-s390x.tar.gz) | 853dba43a5736926c37e0a8575d1f101a085b212a828fbeb3d80f03622d43eba2a58452a586da04d402378eb9f58bb8e8fdbb8730128ad70c040562816f979c6
### Node Binaries
filename | sha512 hash
-------- | -----------
[kubernetes-node-linux-amd64.tar.gz](https://dl.k8s.io/v1.32.12/kubernetes-node-linux-amd64.tar.gz) | 7a014ee222255fede95f06f7d04d4808bda2b59549f6969e98deecc8b839023f57127ccc17e1f593f41ecb5f51f62ca9a6e387c42a6e862dc22f4f5413b75895
[kubernetes-node-linux-arm64.tar.gz](https://dl.k8s.io/v1.32.12/kubernetes-node-linux-arm64.tar.gz) | 54d38b1e4ad6d4376269253a98394e7d41a0147687890ef210dbb0dcf59973a9fa3ce2ab874f507742f35706d4159b92644418eed5f4aa54143358a12cf74eca
[kubernetes-node-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.32.12/kubernetes-node-linux-ppc64le.tar.gz) | 844b4ab1ec250619cb89ebfbd266e72f23767cc4bf2e39cac5cc3ce437bee4e6fecfcc293828b345f8910a507299e50e5790117bcca4269610438f09a6350c77
[kubernetes-node-linux-s390x.tar.gz](https://dl.k8s.io/v1.32.12/kubernetes-node-linux-s390x.tar.gz) | 5d585e6ddeaf6045fd05ea50a6ee0ea1496cd69c2d8a51465eab15253c18c2cf03f149f8e175e4205f87777e02557ce7955d87ca327a27e4cd0fe2d2bfe569d4
[kubernetes-node-windows-amd64.tar.gz](https://dl.k8s.io/v1.32.12/kubernetes-node-windows-amd64.tar.gz) | 051f3ca3e09148db3938ca3373fcfc07e6491e286f7aeea3c680c4f39007f5b21a0afb5e861ce385ba28ef9ecd0bf38dd165ddfe27e61a7a391f467b3670b1a1
### Container Images
All container images are available as manifest lists and support the described
architectures. It is also possible to pull a specific architecture directly by
adding the "-$ARCH" suffix to the container image name.
name | architectures
---- | -------------
[registry.k8s.io/conformance:v1.32.12](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/conformance) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/conformance-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/conformance-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/conformance-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/conformance-s390x)
[registry.k8s.io/kube-apiserver:v1.32.12](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-apiserver) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-apiserver-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-apiserver-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-apiserver-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-apiserver-s390x)
[registry.k8s.io/kube-controller-manager:v1.32.12](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-controller-manager) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-controller-manager-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-controller-manager-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-controller-manager-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-controller-manager-s390x)
[registry.k8s.io/kube-proxy:v1.32.12](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-proxy) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-proxy-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-proxy-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-proxy-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-proxy-s390x)
[registry.k8s.io/kube-scheduler:v1.32.12](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-scheduler) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-scheduler-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-scheduler-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-scheduler-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-scheduler-s390x)
[registry.k8s.io/kubectl:v1.32.12](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kubectl) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kubectl-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kubectl-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kubectl-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kubectl-s390x)
## Changelog since v1.32.11
## Changes by Kind
### Feature
- Kubeadm: when patching a Node object do not exit early on unknown (non-allowlisted) API errors. Instead, always retry within the duration of the polling for getting and patching a Node object. ([#136069](https://github.com/kubernetes/kubernetes/pull/136069), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]
- Kubernetes is now built using Go 1.24.12 ([#136469](https://github.com/kubernetes/kubernetes/pull/136469), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing]
### Bug or Regression
- DRA: when scheduling many pods very rapidly, sometimes the same device was allocated twice for different ResourceClaims due races between data processing in different goroutines. Depending on whether DRA drivers check for this during NodePrepareResources (they should, but maybe not all implement this properly), the second pod using the same device then failed to start until the first one is done or (worse) ran in parallel. ([#136564](https://github.com/kubernetes/kubernetes/pull/136564), [@pohly](https://github.com/pohly)) [SIG Node and Scheduling]
- Kubeadm: waiting for etcd learner member to be started before promoting during 'kubeadm join' ([#136366](https://github.com/kubernetes/kubernetes/pull/136366), [@dlipovetsky](https://github.com/dlipovetsky)) [SIG Cluster Lifecycle]
- Kubeadm: when applying the overrides provided by the user using "extraArgs", do not sort the resulted list of arguments alpha-numerically. Instead, only sort the list of default arguments and keep the list of overrides unsorted. This allows finer control for flags which have an order that matters, such as, "--service-account-issuer" for kube-apiserver. ([#135850](https://github.com/kubernetes/kubernetes/pull/135850), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]
### Other (Cleanup or Flake)
- NONE
NONE ([#136637](https://github.com/kubernetes/kubernetes/pull/136637), [@dims](https://github.com/dims)) [SIG Network and Testing]
## Dependencies
### Added
_Nothing has changed._
### Changed
_Nothing has changed._
### Removed
_Nothing has changed._
# v1.32.11
## Downloads for v1.32.11
### Source Code
filename | sha512 hash
-------- | -----------
[kubernetes.tar.gz](https://dl.k8s.io/v1.32.11/kubernetes.tar.gz) | 4502c78853a2a36240ad66e7d8058c539f259381908371ae0bf0a4cca0796b63cad9e2bdbde80e09b3cd6e3a6150dbd9adcfe6490eb879350302980802115f07
[kubernetes-src.tar.gz](https://dl.k8s.io/v1.32.11/kubernetes-src.tar.gz) | eac1b724837d0696d8453beca3d8c616820c25563cd0616296868fda7fbe94212831c3d0babd52ad2968466bc68a8d2cf0daf5e639f4863b1c1bf67e5c187166
### Client Binaries
filename | sha512 hash
-------- | -----------
[kubernetes-client-darwin-amd64.tar.gz](https://dl.k8s.io/v1.32.11/kubernetes-client-darwin-amd64.tar.gz) | 30988c325e6a50d282b24c9580fa41002bfcc96760633c1640ee1c5ab22c55bf74e3f5f31ce188a8cdeaa0a1748a652de6358c16c41dcbb45168f7657f211fa8
[kubernetes-client-darwin-arm64.tar.gz](https://dl.k8s.io/v1.32.11/kubernetes-client-darwin-arm64.tar.gz) | ca18716ca9b910598335745d38ff84f88a68ac8160c684a0a3ce7e07c2a427a5812c80f7c4c56a28015c4ed899976ea88c462aefbc31ffbccb05c5772fd9561c
[kubernetes-client-linux-386.tar.gz](https://dl.k8s.io/v1.32.11/kubernetes-client-linux-386.tar.gz) | 562b8f95ef5e85f8042403b3afe35a54b390c9c7ed94568ab786e65396cff1793ceebb70e1cd35d2e5eec1c557a92d603abfd45da5d62bcf5190c49a6d01fc29
[kubernetes-client-linux-amd64.tar.gz](https://dl.k8s.io/v1.32.11/kubernetes-client-linux-amd64.tar.gz) | 3e2e4679e94889245ca61fa50b0c3e46278c523b4b78e6cecfb6d2f73d69b1a4264f58d855ec5d736ad008542d5be00bd67220038137f0cdce83d5a184d2046c
[kubernetes-client-linux-arm.tar.gz](https://dl.k8s.io/v1.32.11/kubernetes-client-linux-arm.tar.gz) | c023f766fae5323d3f88e26368214f3f9e4f2301c3ace07447cf4dfe79fcdfceb39c13e9ba7364eadf977dd79b35a89091259db3c4ab0f18f76d1975557e10b0
[kubernetes-client-linux-arm64.tar.gz](https://dl.k8s.io/v1.32.11/kubernetes-client-linux-arm64.tar.gz) | f12d59be4c00fecba8fdb976893397b77f5d90202299d26d6542211a95cac1d55778640ab92ee25cb03fdcda0c765c23f2436ea2cca7b6d3c4e297979d3f3ab4
[kubernetes-client-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.32.11/kubernetes-client-linux-ppc64le.tar.gz) | b39a18245dc7e65ce93cd83fb2b0c4018ea3a3728ce0edfeabf998b33f80aac9859cd5831da400d0b40ef57eedea921e4bc5e8e5f113bb556b4ea9695c300077
[kubernetes-client-linux-s390x.tar.gz](https://dl.k8s.io/v1.32.11/kubernetes-client-linux-s390x.tar.gz) | 846c5cefa5dd6052c096ad838a273c499d4e594991cca26f30cd513233e16f82bdeaf7f3a9c024d06ade82261184fb59058851a984ce99a3b228c9c5d39039da
[kubernetes-client-windows-386.tar.gz](https://dl.k8s.io/v1.32.11/kubernetes-client-windows-386.tar.gz) | d6c4b7dedbd11fd0a336e4e3133b0af34475b9e49b208b5176ce01c29d890fee28eb7b60dc7d71aada3743ec23099c640b71083f648594ad0d48fda09f36b228
[kubernetes-client-windows-amd64.tar.gz](https://dl.k8s.io/v1.32.11/kubernetes-client-windows-amd64.tar.gz) | e572c5c0e5265dfe882ad24d9f54146c8cf1173603ea634ccb73780814534a2b0cf616a7619dc9b7b660803f66ad5c4d9270bdd136328608e3a6094a2828d518
[kubernetes-client-windows-arm64.tar.gz](https://dl.k8s.io/v1.32.11/kubernetes-client-windows-arm64.tar.gz) | b15b9cd8f14231e2f3418e3db697318a9b2ed5f510c6e36073ae65b14b515a7c50a62574edad27b394359a8ce3f4353ffff02bca99c58c76fedf28d4ce86879c
### Server Binaries
filename | sha512 hash
-------- | -----------
[kubernetes-server-linux-amd64.tar.gz](https://dl.k8s.io/v1.32.11/kubernetes-server-linux-amd64.tar.gz) | 9a463f9383e5425c88c81ed55928bb289cdfe206ecd5dba99d13ab3ecdee675448e1c01ee4f9d073e4b992fd7345390ad936ba216fd7a941ca73b1ace0dea85e
[kubernetes-server-linux-arm64.tar.gz](https://dl.k8s.io/v1.32.11/kubernetes-server-linux-arm64.tar.gz) | 2f9a3959790b18e6adaf7a9dca5fea513e1a3fdc01206905320674e0c0e9fc75aea6e606e24dc84ae8459d656ba4e55cbdea09f784f3eba190a1fc20433006a0
[kubernetes-server-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.32.11/kubernetes-server-linux-ppc64le.tar.gz) | 04707206ae70c25d0c6b79f31c6c21d11da20bb243f3e8b15e0a49bce866077f5e8ca0bea035bf0ee7a1dbc6f293c7dfbb625fd912a29a885d1063d73b8f2cfe
[kubernetes-server-linux-s390x.tar.gz](https://dl.k8s.io/v1.32.11/kubernetes-server-linux-s390x.tar.gz) | d0056d6d09265a7cc7596c1439168605f0c51b2f97122ce68247017f5396bfa1869892b0cf636bef197660525832a7b8d9cffd16be6a5b378bac55ac14ea8de6
### Node Binaries
filename | sha512 hash
-------- | -----------
[kubernetes-node-linux-amd64.tar.gz](https://dl.k8s.io/v1.32.11/kubernetes-node-linux-amd64.tar.gz) | 3472194408158f36cbc48d9682359c0b6deb545bc0d35c55ab167665a7bfff01be4784ba38df7ed729c25b6e44d29ad83e4389d4c69dba76e2dac91fa63ee193
[kubernetes-node-linux-arm64.tar.gz](https://dl.k8s.io/v1.32.11/kubernetes-node-linux-arm64.tar.gz) | c173f6c297b7144fa460fdb808a18c14d3218959ace7fcd03e7e00899a06b69382b46a329305d1f53600eefe8b0a31c6541c4857d1f5d0b78ea223ae119311c3
[kubernetes-node-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.32.11/kubernetes-node-linux-ppc64le.tar.gz) | 9f3aaf6a690cab758fbbbf816b88a2c13cc61430b29c08e40185fb4e180d38511ef2ae7fb4578e1ddd910efa42a97bf56b7453180c502baae7e7608dbc669fbf
[kubernetes-node-linux-s390x.tar.gz](https://dl.k8s.io/v1.32.11/kubernetes-node-linux-s390x.tar.gz) | 028dab834fb9f6b7543b116b62df5c838446c1ba281e449ea7eec2921fea19a0fbd234a156557dfc14c831620c177db3abe8d00452889cf6c3e0160a2a36f72b
[kubernetes-node-windows-amd64.tar.gz](https://dl.k8s.io/v1.32.11/kubernetes-node-windows-amd64.tar.gz) | 07777166d8a17a736550a99133e6600769577d3f3e0234532216229740792fe31438a5ad60a8498c48c1cb1f5db11cc29876d19aea471cdda3dc564986249010
### Container Images
All container images are available as manifest lists and support the described
architectures. It is also possible to pull a specific architecture directly by
adding the "-$ARCH" suffix to the container image name.
name | architectures
---- | -------------
[registry.k8s.io/conformance:v1.32.11](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/conformance) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/conformance-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/conformance-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/conformance-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/conformance-s390x)
[registry.k8s.io/kube-apiserver:v1.32.11](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-apiserver) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-apiserver-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-apiserver-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-apiserver-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-apiserver-s390x)
[registry.k8s.io/kube-controller-manager:v1.32.11](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-controller-manager) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-controller-manager-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-controller-manager-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-controller-manager-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-controller-manager-s390x)
[registry.k8s.io/kube-proxy:v1.32.11](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-proxy) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-proxy-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-proxy-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-proxy-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-proxy-s390x)
[registry.k8s.io/kube-scheduler:v1.32.11](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-scheduler) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-scheduler-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-scheduler-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-scheduler-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-scheduler-s390x)
[registry.k8s.io/kubectl:v1.32.11](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kubectl) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kubectl-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kubectl-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kubectl-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kubectl-s390x)
## Changelog since v1.32.10
## Changes by Kind
### Feature
- Kubernetes is now built using Go 1.24.10 ([#135508](https://github.com/kubernetes/kubernetes/pull/135508), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing]
- Kubernetes is now built using Go 1.24.11 ([#135614](https://github.com/kubernetes/kubernetes/pull/135614), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing]
### Bug or Regression
- Fixes a spurious "namespace not found" error possible in default configurations in 1.30+ when using ValidatingAdmissionPolicy or MutatingAdmissionPolicy to intercept namespaced objects in newly-created namespaces ([#135444](https://github.com/kubernetes/kubernetes/pull/135444), [@lalitc375](https://github.com/lalitc375)) [SIG API Machinery]
- Make / build: fix docker IP address detection ([#135578](https://github.com/kubernetes/kubernetes/pull/135578), [@BenTheElder](https://github.com/BenTheElder)) [SIG Release and Testing]
- The slow initialization of container runtime will not cause System WatchDog to kill kubelet. Device Manager is not considered healthy before it attempted to start listening on the port. ([#135209](https://github.com/kubernetes/kubernetes/pull/135209), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) [SIG Node]
## Dependencies
### Added
_Nothing has changed._
### Changed
_Nothing has changed._
### Removed
_Nothing has changed._
# v1.32.10

View file

@ -1,13 +1,13 @@
<!-- BEGIN MUNGE: GENERATED_TOC -->
- [v1.33.6](#v1336)
- [Downloads for v1.33.6](#downloads-for-v1336)
- [v1.33.8](#v1338)
- [Downloads for v1.33.8](#downloads-for-v1338)
- [Source Code](#source-code)
- [Client Binaries](#client-binaries)
- [Server Binaries](#server-binaries)
- [Node Binaries](#node-binaries)
- [Container Images](#container-images)
- [Changelog since v1.33.5](#changelog-since-v1335)
- [Changelog since v1.33.7](#changelog-since-v1337)
- [Changes by Kind](#changes-by-kind)
- [Feature](#feature)
- [Bug or Regression](#bug-or-regression)
@ -16,220 +16,446 @@
- [Added](#added)
- [Changed](#changed)
- [Removed](#removed)
- [v1.33.5](#v1335)
- [Downloads for v1.33.5](#downloads-for-v1335)
- [v1.33.7](#v1337)
- [Downloads for v1.33.7](#downloads-for-v1337)
- [Source Code](#source-code-1)
- [Client Binaries](#client-binaries-1)
- [Server Binaries](#server-binaries-1)
- [Node Binaries](#node-binaries-1)
- [Container Images](#container-images-1)
- [Changelog since v1.33.4](#changelog-since-v1334)
- [Changelog since v1.33.6](#changelog-since-v1336)
- [Changes by Kind](#changes-by-kind-1)
- [Feature](#feature-1)
- [Bug or Regression](#bug-or-regression-1)
- [Other (Cleanup or Flake)](#other-cleanup-or-flake-1)
- [Dependencies](#dependencies-1)
- [Added](#added-1)
- [Changed](#changed-1)
- [Removed](#removed-1)
- [v1.33.4](#v1334)
- [Downloads for v1.33.4](#downloads-for-v1334)
- [v1.33.6](#v1336)
- [Downloads for v1.33.6](#downloads-for-v1336)
- [Source Code](#source-code-2)
- [Client Binaries](#client-binaries-2)
- [Server Binaries](#server-binaries-2)
- [Node Binaries](#node-binaries-2)
- [Container Images](#container-images-2)
- [Changelog since v1.33.3](#changelog-since-v1333)
- [Important Security Information](#important-security-information)
- [CVE-2025-5187: Nodes can delete themselves by adding an OwnerReference](#cve-2025-5187-nodes-can-delete-themselves-by-adding-an-ownerreference)
- [Changelog since v1.33.5](#changelog-since-v1335)
- [Changes by Kind](#changes-by-kind-2)
- [API Change](#api-change)
- [Feature](#feature-2)
- [Bug or Regression](#bug-or-regression-2)
- [Other (Cleanup or Flake)](#other-cleanup-or-flake-1)
- [Dependencies](#dependencies-2)
- [Added](#added-2)
- [Changed](#changed-2)
- [Removed](#removed-2)
- [v1.33.3](#v1333)
- [Downloads for v1.33.3](#downloads-for-v1333)
- [v1.33.5](#v1335)
- [Downloads for v1.33.5](#downloads-for-v1335)
- [Source Code](#source-code-3)
- [Client Binaries](#client-binaries-3)
- [Server Binaries](#server-binaries-3)
- [Node Binaries](#node-binaries-3)
- [Container Images](#container-images-3)
- [Changelog since v1.33.2](#changelog-since-v1332)
- [Changelog since v1.33.4](#changelog-since-v1334)
- [Changes by Kind](#changes-by-kind-3)
- [Feature](#feature-3)
- [Bug or Regression](#bug-or-regression-3)
- [Other (Cleanup or Flake)](#other-cleanup-or-flake-2)
- [Dependencies](#dependencies-3)
- [Added](#added-3)
- [Changed](#changed-3)
- [Removed](#removed-3)
- [v1.33.2](#v1332)
- [Downloads for v1.33.2](#downloads-for-v1332)
- [v1.33.4](#v1334)
- [Downloads for v1.33.4](#downloads-for-v1334)
- [Source Code](#source-code-4)
- [Client Binaries](#client-binaries-4)
- [Server Binaries](#server-binaries-4)
- [Node Binaries](#node-binaries-4)
- [Container Images](#container-images-4)
- [Changelog since v1.33.1](#changelog-since-v1331)
- [Important Security Information](#important-security-information-1)
- [CVE-2025-4563: Nodes can bypass dynamic resource allocation authorization checks](#cve-2025-4563-nodes-can-bypass-dynamic-resource-allocation-authorization-checks)
- [Changelog since v1.33.3](#changelog-since-v1333)
- [Important Security Information](#important-security-information)
- [CVE-2025-5187: Nodes can delete themselves by adding an OwnerReference](#cve-2025-5187-nodes-can-delete-themselves-by-adding-an-ownerreference)
- [Changes by Kind](#changes-by-kind-4)
- [Feature](#feature-3)
- [API Change](#api-change)
- [Feature](#feature-4)
- [Bug or Regression](#bug-or-regression-4)
- [Other (Cleanup or Flake)](#other-cleanup-or-flake-3)
- [Dependencies](#dependencies-4)
- [Added](#added-4)
- [Changed](#changed-4)
- [Removed](#removed-4)
- [v1.33.1](#v1331)
- [Downloads for v1.33.1](#downloads-for-v1331)
- [v1.33.3](#v1333)
- [Downloads for v1.33.3](#downloads-for-v1333)
- [Source Code](#source-code-5)
- [Client Binaries](#client-binaries-5)
- [Server Binaries](#server-binaries-5)
- [Node Binaries](#node-binaries-5)
- [Container Images](#container-images-5)
- [Changelog since v1.33.0](#changelog-since-v1330)
- [Changelog since v1.33.2](#changelog-since-v1332)
- [Changes by Kind](#changes-by-kind-5)
- [Bug or Regression](#bug-or-regression-5)
- [Other (Cleanup or Flake)](#other-cleanup-or-flake-3)
- [Dependencies](#dependencies-5)
- [Added](#added-5)
- [Changed](#changed-5)
- [Removed](#removed-5)
- [v1.33.0](#v1330)
- [Downloads for v1.33.0](#downloads-for-v1330)
- [v1.33.2](#v1332)
- [Downloads for v1.33.2](#downloads-for-v1332)
- [Source Code](#source-code-6)
- [Client Binaries](#client-binaries-6)
- [Server Binaries](#server-binaries-6)
- [Node Binaries](#node-binaries-6)
- [Container Images](#container-images-6)
- [Changelog since v1.32.0](#changelog-since-v1320)
- [Urgent Upgrade Notes](#urgent-upgrade-notes)
- [(No, really, you MUST read this before you upgrade)](#no-really-you-must-read-this-before-you-upgrade)
- [Changelog since v1.33.1](#changelog-since-v1331)
- [Important Security Information](#important-security-information-1)
- [CVE-2025-4563: Nodes can bypass dynamic resource allocation authorization checks](#cve-2025-4563-nodes-can-bypass-dynamic-resource-allocation-authorization-checks)
- [Changes by Kind](#changes-by-kind-6)
- [Deprecation](#deprecation)
- [API Change](#api-change-1)
- [Feature](#feature-4)
- [Documentation](#documentation)
- [Feature](#feature-5)
- [Bug or Regression](#bug-or-regression-6)
- [Other (Cleanup or Flake)](#other-cleanup-or-flake-4)
- [Dependencies](#dependencies-6)
- [Added](#added-6)
- [Changed](#changed-6)
- [Removed](#removed-6)
- [v1.33.0-rc.1](#v1330-rc1)
- [Downloads for v1.33.0-rc.1](#downloads-for-v1330-rc1)
- [v1.33.1](#v1331)
- [Downloads for v1.33.1](#downloads-for-v1331)
- [Source Code](#source-code-7)
- [Client Binaries](#client-binaries-7)
- [Server Binaries](#server-binaries-7)
- [Node Binaries](#node-binaries-7)
- [Container Images](#container-images-7)
- [Changelog since v1.33.0-rc.0](#changelog-since-v1330-rc0)
- [Changelog since v1.33.0](#changelog-since-v1330)
- [Changes by Kind](#changes-by-kind-7)
- [Bug or Regression](#bug-or-regression-7)
- [Dependencies](#dependencies-7)
- [Added](#added-7)
- [Changed](#changed-7)
- [Removed](#removed-7)
- [v1.33.0-rc.0](#v1330-rc0)
- [Downloads for v1.33.0-rc.0](#downloads-for-v1330-rc0)
- [v1.33.0](#v1330)
- [Downloads for v1.33.0](#downloads-for-v1330)
- [Source Code](#source-code-8)
- [Client Binaries](#client-binaries-8)
- [Server Binaries](#server-binaries-8)
- [Node Binaries](#node-binaries-8)
- [Container Images](#container-images-8)
- [Changelog since v1.33.0-beta.0](#changelog-since-v1330-beta0)
- [Urgent Upgrade Notes](#urgent-upgrade-notes-1)
- [(No, really, you MUST read this before you upgrade)](#no-really-you-must-read-this-before-you-upgrade-1)
- [Changelog since v1.32.0](#changelog-since-v1320)
- [Urgent Upgrade Notes](#urgent-upgrade-notes)
- [(No, really, you MUST read this before you upgrade)](#no-really-you-must-read-this-before-you-upgrade)
- [Changes by Kind](#changes-by-kind-8)
- [Deprecation](#deprecation-1)
- [API Change](#api-change-2)
- [Feature](#feature-5)
- [Deprecation](#deprecation)
- [API Change](#api-change-1)
- [Feature](#feature-6)
- [Documentation](#documentation)
- [Bug or Regression](#bug-or-regression-8)
- [Other (Cleanup or Flake)](#other-cleanup-or-flake-5)
- [Dependencies](#dependencies-8)
- [Added](#added-8)
- [Changed](#changed-8)
- [Removed](#removed-8)
- [v1.33.0-beta.0](#v1330-beta0)
- [Downloads for v1.33.0-beta.0](#downloads-for-v1330-beta0)
- [v1.33.0-rc.1](#v1330-rc1)
- [Downloads for v1.33.0-rc.1](#downloads-for-v1330-rc1)
- [Source Code](#source-code-9)
- [Client Binaries](#client-binaries-9)
- [Server Binaries](#server-binaries-9)
- [Node Binaries](#node-binaries-9)
- [Container Images](#container-images-9)
- [Changelog since v1.33.0-alpha.3](#changelog-since-v1330-alpha3)
- [Changelog since v1.33.0-rc.0](#changelog-since-v1330-rc0)
- [Changes by Kind](#changes-by-kind-9)
- [API Change](#api-change-3)
- [Feature](#feature-6)
- [Bug or Regression](#bug-or-regression-9)
- [Other (Cleanup or Flake)](#other-cleanup-or-flake-6)
- [Dependencies](#dependencies-9)
- [Added](#added-9)
- [Changed](#changed-9)
- [Removed](#removed-9)
- [v1.33.0-alpha.3](#v1330-alpha3)
- [Downloads for v1.33.0-alpha.3](#downloads-for-v1330-alpha3)
- [v1.33.0-rc.0](#v1330-rc0)
- [Downloads for v1.33.0-rc.0](#downloads-for-v1330-rc0)
- [Source Code](#source-code-10)
- [Client Binaries](#client-binaries-10)
- [Server Binaries](#server-binaries-10)
- [Node Binaries](#node-binaries-10)
- [Container Images](#container-images-10)
- [Changelog since v1.33.0-alpha.2](#changelog-since-v1330-alpha2)
- [Urgent Upgrade Notes](#urgent-upgrade-notes-2)
- [(No, really, you MUST read this before you upgrade)](#no-really-you-must-read-this-before-you-upgrade-2)
- [Changelog since v1.33.0-beta.0](#changelog-since-v1330-beta0)
- [Urgent Upgrade Notes](#urgent-upgrade-notes-1)
- [(No, really, you MUST read this before you upgrade)](#no-really-you-must-read-this-before-you-upgrade-1)
- [Changes by Kind](#changes-by-kind-10)
- [Deprecation](#deprecation-2)
- [API Change](#api-change-4)
- [Deprecation](#deprecation-1)
- [API Change](#api-change-2)
- [Feature](#feature-7)
- [Bug or Regression](#bug-or-regression-10)
- [Other (Cleanup or Flake)](#other-cleanup-or-flake-7)
- [Other (Cleanup or Flake)](#other-cleanup-or-flake-6)
- [Dependencies](#dependencies-10)
- [Added](#added-10)
- [Changed](#changed-10)
- [Removed](#removed-10)
- [v1.33.0-alpha.2](#v1330-alpha2)
- [Downloads for v1.33.0-alpha.2](#downloads-for-v1330-alpha2)
- [v1.33.0-beta.0](#v1330-beta0)
- [Downloads for v1.33.0-beta.0](#downloads-for-v1330-beta0)
- [Source Code](#source-code-11)
- [Client Binaries](#client-binaries-11)
- [Server Binaries](#server-binaries-11)
- [Node Binaries](#node-binaries-11)
- [Container Images](#container-images-11)
- [Changelog since v1.33.0-alpha.1](#changelog-since-v1330-alpha1)
- [Changelog since v1.33.0-alpha.3](#changelog-since-v1330-alpha3)
- [Changes by Kind](#changes-by-kind-11)
- [Deprecation](#deprecation-3)
- [API Change](#api-change-5)
- [API Change](#api-change-3)
- [Feature](#feature-8)
- [Bug or Regression](#bug-or-regression-11)
- [Other (Cleanup or Flake)](#other-cleanup-or-flake-8)
- [Other (Cleanup or Flake)](#other-cleanup-or-flake-7)
- [Dependencies](#dependencies-11)
- [Added](#added-11)
- [Changed](#changed-11)
- [Removed](#removed-11)
- [v1.33.0-alpha.1](#v1330-alpha1)
- [Downloads for v1.33.0-alpha.1](#downloads-for-v1330-alpha1)
- [v1.33.0-alpha.3](#v1330-alpha3)
- [Downloads for v1.33.0-alpha.3](#downloads-for-v1330-alpha3)
- [Source Code](#source-code-12)
- [Client Binaries](#client-binaries-12)
- [Server Binaries](#server-binaries-12)
- [Node Binaries](#node-binaries-12)
- [Container Images](#container-images-12)
- [Changelog since v1.32.0](#changelog-since-v1320-1)
- [Urgent Upgrade Notes](#urgent-upgrade-notes-3)
- [(No, really, you MUST read this before you upgrade)](#no-really-you-must-read-this-before-you-upgrade-3)
- [Changelog since v1.33.0-alpha.2](#changelog-since-v1330-alpha2)
- [Urgent Upgrade Notes](#urgent-upgrade-notes-2)
- [(No, really, you MUST read this before you upgrade)](#no-really-you-must-read-this-before-you-upgrade-2)
- [Changes by Kind](#changes-by-kind-12)
- [API Change](#api-change-6)
- [Deprecation](#deprecation-2)
- [API Change](#api-change-4)
- [Feature](#feature-9)
- [Documentation](#documentation-1)
- [Bug or Regression](#bug-or-regression-12)
- [Other (Cleanup or Flake)](#other-cleanup-or-flake-9)
- [Other (Cleanup or Flake)](#other-cleanup-or-flake-8)
- [Dependencies](#dependencies-12)
- [Added](#added-12)
- [Changed](#changed-12)
- [Removed](#removed-12)
- [v1.33.0-alpha.2](#v1330-alpha2)
- [Downloads for v1.33.0-alpha.2](#downloads-for-v1330-alpha2)
- [Source Code](#source-code-13)
- [Client Binaries](#client-binaries-13)
- [Server Binaries](#server-binaries-13)
- [Node Binaries](#node-binaries-13)
- [Container Images](#container-images-13)
- [Changelog since v1.33.0-alpha.1](#changelog-since-v1330-alpha1)
- [Changes by Kind](#changes-by-kind-13)
- [Deprecation](#deprecation-3)
- [API Change](#api-change-5)
- [Feature](#feature-10)
- [Bug or Regression](#bug-or-regression-13)
- [Other (Cleanup or Flake)](#other-cleanup-or-flake-9)
- [Dependencies](#dependencies-13)
- [Added](#added-13)
- [Changed](#changed-13)
- [Removed](#removed-13)
- [v1.33.0-alpha.1](#v1330-alpha1)
- [Downloads for v1.33.0-alpha.1](#downloads-for-v1330-alpha1)
- [Source Code](#source-code-14)
- [Client Binaries](#client-binaries-14)
- [Server Binaries](#server-binaries-14)
- [Node Binaries](#node-binaries-14)
- [Container Images](#container-images-14)
- [Changelog since v1.32.0](#changelog-since-v1320-1)
- [Urgent Upgrade Notes](#urgent-upgrade-notes-3)
- [(No, really, you MUST read this before you upgrade)](#no-really-you-must-read-this-before-you-upgrade-3)
- [Changes by Kind](#changes-by-kind-14)
- [API Change](#api-change-6)
- [Feature](#feature-11)
- [Documentation](#documentation-1)
- [Bug or Regression](#bug-or-regression-14)
- [Other (Cleanup or Flake)](#other-cleanup-or-flake-10)
- [Dependencies](#dependencies-14)
- [Added](#added-14)
- [Changed](#changed-14)
- [Removed](#removed-14)
<!-- END MUNGE: GENERATED_TOC -->
# v1.33.8
## Downloads for v1.33.8
### Source Code
filename | sha512 hash
-------- | -----------
[kubernetes.tar.gz](https://dl.k8s.io/v1.33.8/kubernetes.tar.gz) | f0478f2027b98e8e3e65d6ed0757d80f607aff0ccd4c8611a1e71769bbc2cf7241ce254819de5a340d94ae5d4d954d3e53e77d1d2f10b41ccce89155dbf5eb47
[kubernetes-src.tar.gz](https://dl.k8s.io/v1.33.8/kubernetes-src.tar.gz) | b2dc0fc53dc213e58e41114224eaa96436378c6cde75fba635c58e554a5bb8514e1199f8269d12daaf8324852830d253a2917aa8a1c6397602a50c9aef0fe52f
### Client Binaries
filename | sha512 hash
-------- | -----------
[kubernetes-client-darwin-amd64.tar.gz](https://dl.k8s.io/v1.33.8/kubernetes-client-darwin-amd64.tar.gz) | fb5a724f23bc713a8437eba3ae18c748de021816b48db9b66f6f8463073bd739cc792a119a37898160d1fac497fec0ea46f70ca744c22bb0b3b5fe1413ac3a1c
[kubernetes-client-darwin-arm64.tar.gz](https://dl.k8s.io/v1.33.8/kubernetes-client-darwin-arm64.tar.gz) | c920cb6ec01d1376b74484aa295b1b57344d79605fc46c0daaa2deb467354486907862284ea5839599f3c2484697e5413487714e74331fc303bd5a32bcb85870
[kubernetes-client-linux-386.tar.gz](https://dl.k8s.io/v1.33.8/kubernetes-client-linux-386.tar.gz) | 051d84d8d25d984e4dfc049a4d2fd539d95eaa919557490f0f30c1bb514ebf4e1c6cdfe4fd4fab5e7e03e212575d497a58064573036810e8efe024aadf23157b
[kubernetes-client-linux-amd64.tar.gz](https://dl.k8s.io/v1.33.8/kubernetes-client-linux-amd64.tar.gz) | 0dc7ccca28a4272147de370af7d429b86426faf3c2ded1241c33a57c12f13d728cc207b7c2a46f0dfd28b46bdfde7152bc15afc446dd5a41ce3b14f882614dbb
[kubernetes-client-linux-arm.tar.gz](https://dl.k8s.io/v1.33.8/kubernetes-client-linux-arm.tar.gz) | f553e54760d4ec31aea7da0ab06fcf6c4eb772bb979b2e514c9f58d09dc97e267f90770668cad981d726e9b8e8e3561f801681fb776f526733f21bf334f49e6c
[kubernetes-client-linux-arm64.tar.gz](https://dl.k8s.io/v1.33.8/kubernetes-client-linux-arm64.tar.gz) | 2fffc346e5d83347b75af3344751e5cec2cd97236afbb66d4b5b2fce00d56233b022c7cdeb067f01437541ac4cbb89e6d33ffa355a6a79a1c02a8641e714ff9f
[kubernetes-client-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.33.8/kubernetes-client-linux-ppc64le.tar.gz) | a3cd0152cb9455da5c09ae507475fba583daffa907a66eb075efdbc081589c4d91994ffce8c1e69125728f3d823f23ea117cdc955d3b2704cf42a92cb8981e1a
[kubernetes-client-linux-s390x.tar.gz](https://dl.k8s.io/v1.33.8/kubernetes-client-linux-s390x.tar.gz) | de2624c5bcfd11f30a2b1f556386b41e40a3914eef8de82a8987a4f1c4bd822101e1afde7e5ac9f02dbaf0ba3886b639b703ec783549a1b3cea07c21bd5306b2
[kubernetes-client-windows-386.tar.gz](https://dl.k8s.io/v1.33.8/kubernetes-client-windows-386.tar.gz) | 7c4b82275c9b24e05054d33ae62e2b94773b314ac0686f560b927f94fdae7f515d7c223bfd9d0c245a4d94b0295b8adcb8f31219beb6b3bd020548a7863ac56f
[kubernetes-client-windows-amd64.tar.gz](https://dl.k8s.io/v1.33.8/kubernetes-client-windows-amd64.tar.gz) | 920ab373c46e7294635340384f60522648d02c9331065ed247ad67f258db285bfc291d9ddf2eedb39b5e698d6960940f6a901e7f2c608bedb38febd3d4437fcb
[kubernetes-client-windows-arm64.tar.gz](https://dl.k8s.io/v1.33.8/kubernetes-client-windows-arm64.tar.gz) | 88746ad00405c0685f635e06978849d8d5c5481949c16f2b0bb1ef976ad5f6d153423c41e18b6f96cf64b885d6a5f46214aff2b0c5fd072301a8f5698a5b209e
### Server Binaries
filename | sha512 hash
-------- | -----------
[kubernetes-server-linux-amd64.tar.gz](https://dl.k8s.io/v1.33.8/kubernetes-server-linux-amd64.tar.gz) | d15bdcb12137d305f50b01239097517de55e2e035cb00c39f9d0f2654e2c7fbfb07b6b0eaf9d938d9466121dee07b5673ddb73fa4cd809b1724e6bad6e378d33
[kubernetes-server-linux-arm64.tar.gz](https://dl.k8s.io/v1.33.8/kubernetes-server-linux-arm64.tar.gz) | 6a9ddcb4e416599414c9810bba8f4aaad7e4e3ddc36ce28a4b6aa27645031264e44a8f2c0192c9660915edb3b73e574d1b0975ad4576b719069d75da18b4c622
[kubernetes-server-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.33.8/kubernetes-server-linux-ppc64le.tar.gz) | 255040e6ddebf29533cdf0bdb059db68ff4b1243b9e7f876e37850d737e90bb8105b903107c2515cab3bd4327c568a6c4755fe1c00be1b9dfe063b448e1c1c3e
[kubernetes-server-linux-s390x.tar.gz](https://dl.k8s.io/v1.33.8/kubernetes-server-linux-s390x.tar.gz) | 8d86c2f938bc71fac0959e05b93136f5f2b639ac2d127e71289752e18f9f3cb0fd3ad8d9b8e645f5caa2e4e9fec0b9aa6f53ca08180580a0c2a50c6b1324c46c
### Node Binaries
filename | sha512 hash
-------- | -----------
[kubernetes-node-linux-amd64.tar.gz](https://dl.k8s.io/v1.33.8/kubernetes-node-linux-amd64.tar.gz) | ddb65825ea82ed75149c1a1fdaf5fad041d76d893a5a9a5dcb0cac89b97c6836f152ebb26c83b0bb86044cc307074efe1479563bb3b3903de4071df69ed1a1d1
[kubernetes-node-linux-arm64.tar.gz](https://dl.k8s.io/v1.33.8/kubernetes-node-linux-arm64.tar.gz) | 67182b548eb067e662557dc31fef227c76dc4577c8b536609dfe60c5395e1e86a4b146eb5f4f7d1c7ed23bb5c1ccf682218fffdd1b5a4f82d4bbd7c5a7ef99fc
[kubernetes-node-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.33.8/kubernetes-node-linux-ppc64le.tar.gz) | f525f23c3cb2da09c5473ca322b9fe416a1a0fcf6bdf2a46486b626690a89f235e9e3e6700e3f5778e65eef4679b1036de48815f8803c37404f8c1baa88b4140
[kubernetes-node-linux-s390x.tar.gz](https://dl.k8s.io/v1.33.8/kubernetes-node-linux-s390x.tar.gz) | 5696e5cf4c83b47aae5aa18c2650befd1dd27cef2e0b5b01331d47282a1a950c1040edb9ed14c7f37cb48a4aac9d8764fef9eb01f877abfa207000e74bf874ee
[kubernetes-node-windows-amd64.tar.gz](https://dl.k8s.io/v1.33.8/kubernetes-node-windows-amd64.tar.gz) | 4a2feb1ccda1dce2112caa711ba188d5e5cc3691e8e440f2ee14f0a372472c3d0d799c1e8d0d62b7e5c1be7a8cb86b51a2792b197cdb6a9db7477690f5d15deb
### Container Images
All container images are available as manifest lists and support the described
architectures. It is also possible to pull a specific architecture directly by
adding the "-$ARCH" suffix to the container image name.
name | architectures
---- | -------------
[registry.k8s.io/conformance:v1.33.8](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/conformance) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/conformance-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/conformance-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/conformance-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/conformance-s390x)
[registry.k8s.io/kube-apiserver:v1.33.8](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-apiserver) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-apiserver-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-apiserver-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-apiserver-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-apiserver-s390x)
[registry.k8s.io/kube-controller-manager:v1.33.8](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-controller-manager) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-controller-manager-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-controller-manager-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-controller-manager-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-controller-manager-s390x)
[registry.k8s.io/kube-proxy:v1.33.8](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-proxy) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-proxy-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-proxy-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-proxy-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-proxy-s390x)
[registry.k8s.io/kube-scheduler:v1.33.8](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-scheduler) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-scheduler-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-scheduler-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-scheduler-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-scheduler-s390x)
[registry.k8s.io/kubectl:v1.33.8](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kubectl) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kubectl-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kubectl-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kubectl-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kubectl-s390x)
## Changelog since v1.33.7
## Changes by Kind
### Feature
- Kubeadm: when patching a Node object do not exit early on unknown (non-allowlisted) API errors. Instead, always retry within the duration of the polling for getting and patching a Node object. ([#136070](https://github.com/kubernetes/kubernetes/pull/136070), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]
- Kubernetes is now built using Go 1.24.12 ([#136468](https://github.com/kubernetes/kubernetes/pull/136468), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing]
### Bug or Regression
- DRA: when scheduling many pods very rapidly, sometimes the same device was allocated twice for different ResourceClaims due races between data processing in different goroutines. Depending on whether DRA drivers check for this during NodePrepareResources (they should, but maybe not all implement this properly), the second pod using the same device then failed to start until the first one is done or (worse) ran in parallel. ([#136565](https://github.com/kubernetes/kubernetes/pull/136565), [@pohly](https://github.com/pohly)) [SIG Node and Scheduling]
- Fixed SELinux warning controller not to emit events for completed pods. ([#136172](https://github.com/kubernetes/kubernetes/pull/136172), [@jsafrane](https://github.com/jsafrane)) [SIG Apps, Storage and Testing]
- Fixed an issue in the Windows kube-proxy (winkernel) where IPv4 and IPv6 Service load balancers could be incorrectly shared, causing broken dual-stack Service behavior. The kube-proxy now tracks load balancers per IP family, enabling correct support for PreferDualStack and RequireDualStack Services on Windows nodes. ([#136375](https://github.com/kubernetes/kubernetes/pull/136375), [@princepereira](https://github.com/princepereira)) [SIG Network and Windows]
- Fixed kubelet logging to properly respect verbosity levels. Previously, some debug/info messages using V().Error() would always be printed regardless of the configured log verbosity. ([#136434](https://github.com/kubernetes/kubernetes/pull/136434), [@thc1006](https://github.com/thc1006)) [SIG Node]
- Kubeadm: waiting for etcd learner member to be started before promoting during 'kubeadm join' ([#136365](https://github.com/kubernetes/kubernetes/pull/136365), [@dlipovetsky](https://github.com/dlipovetsky)) [SIG Cluster Lifecycle]
- Kubeadm: when applying the overrides provided by the user using "extraArgs", do not sort the resulted list of arguments alpha-numerically. Instead, only sort the list of default arguments and keep the list of overrides unsorted. This allows finer control for flags which have an order that matters, such as, "--service-account-issuer" for kube-apiserver. ([#135851](https://github.com/kubernetes/kubernetes/pull/135851), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]
### Other (Cleanup or Flake)
- NONE
NONE ([#136636](https://github.com/kubernetes/kubernetes/pull/136636), [@dims](https://github.com/dims)) [SIG Network and Testing]
## Dependencies
### Added
_Nothing has changed._
### Changed
- github.com/opencontainers/cgroups: [v0.0.1 → v0.0.3](https://github.com/opencontainers/cgroups/compare/v0.0.1...v0.0.3)
### Removed
_Nothing has changed._
# v1.33.7
## Downloads for v1.33.7
### Source Code
filename | sha512 hash
-------- | -----------
[kubernetes.tar.gz](https://dl.k8s.io/v1.33.7/kubernetes.tar.gz) | 5c68822dfb23a13aec2c704a6dcc96b479d781530e37e9f3faacfd5975156501ed054b1f7b26fc752c027de7c609a65c57857409b5a737a2098e509c41ac6d27
[kubernetes-src.tar.gz](https://dl.k8s.io/v1.33.7/kubernetes-src.tar.gz) | 4d33781e7ba1fca9b2f0399dd37e64f9b16bafb98602c851add476c511d014c0c9b222f1b08af601345226a75b2493bafb8391eb8b663bcb2af0ddf0f6a278e2
### Client Binaries
filename | sha512 hash
-------- | -----------
[kubernetes-client-darwin-amd64.tar.gz](https://dl.k8s.io/v1.33.7/kubernetes-client-darwin-amd64.tar.gz) | e995ba641b2b1922c17351d6a065d49f8020f368aaaa663f686fa4dd2b90e34110be2c7dc1a73ba96d5ac75e56f6a088fd9d50224b060d77d3eb9ec3ef9cf991
[kubernetes-client-darwin-arm64.tar.gz](https://dl.k8s.io/v1.33.7/kubernetes-client-darwin-arm64.tar.gz) | 4e266a290ce066577e66b8768b67c9de6e28a967d0006cf0b0a8dddc654a9d4176ffde3d79aafe7c3e96623a3f081ef9d1843fda2a98e19f76c03fe8b3539d53
[kubernetes-client-linux-386.tar.gz](https://dl.k8s.io/v1.33.7/kubernetes-client-linux-386.tar.gz) | d9c4418cc43815e296133e38e61e444a9fd46b2a28780111919771ef9daee31bdb0dc3e4c5a2ce441972abb37fa55186f4c4973f6cdcb0b835612e228cd634c7
[kubernetes-client-linux-amd64.tar.gz](https://dl.k8s.io/v1.33.7/kubernetes-client-linux-amd64.tar.gz) | 8d06330be0e85896328749af8abadb4a41c0abd9ff85a1b484b9d8cbb00e9c0ed6d1ff89940b6e3562a77f7bd0bdfd2c5caa90336750830133ae048be1db6acd
[kubernetes-client-linux-arm.tar.gz](https://dl.k8s.io/v1.33.7/kubernetes-client-linux-arm.tar.gz) | 94b88bda63ca16ab517c6c92f157d66fbe7a1481c9be57e3aa3da7688ac42adb8987c2e1254ad30e79e56c83fe8a3e35fa4aa3a43c7d36e8f5d5a0dc97c9b803
[kubernetes-client-linux-arm64.tar.gz](https://dl.k8s.io/v1.33.7/kubernetes-client-linux-arm64.tar.gz) | f738be00814bfcdd445fbba1473e1e9fc1844b4a07854962d112ade5df71b35a411f8cbf03cb86fecc73f814796246826790040e506156a55d63d786db6f612d
[kubernetes-client-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.33.7/kubernetes-client-linux-ppc64le.tar.gz) | faa32e9811485a1ff268c3fa218b5d27a135dea5356c38f19087a6753f6e7f3e54079475193c590439a8ebc2f8e3257627767682c29436fd93a92ce89ffc855a
[kubernetes-client-linux-s390x.tar.gz](https://dl.k8s.io/v1.33.7/kubernetes-client-linux-s390x.tar.gz) | 4976fda9300059efad045e341bcddfeccbfcc879c16364655911e62306c68052012d6697a524b08a446776e41f7410e5ac59fa7671e7cf4bb7b93e2dcfb1e09f
[kubernetes-client-windows-386.tar.gz](https://dl.k8s.io/v1.33.7/kubernetes-client-windows-386.tar.gz) | ed29632b1e6d98a97ad524c181090267308e0727eab20226eb6022c4281d98daa4a33419c1730999902155e1c50a3a451c84a5d0263482312152d93a8ac1bda0
[kubernetes-client-windows-amd64.tar.gz](https://dl.k8s.io/v1.33.7/kubernetes-client-windows-amd64.tar.gz) | 89c32a260d344c377fb7a3ddb44f560529b186f2f1f87ee4aa862770a27fe54f9e39f36f50ed3c8b83d45f202f14954066bfe99aa7fa65ebf9f03afaad3ed3a7
[kubernetes-client-windows-arm64.tar.gz](https://dl.k8s.io/v1.33.7/kubernetes-client-windows-arm64.tar.gz) | 5ee8eb198fec6f1f00aa36428e937197ec3c8770aef964660c705dcf4092e528ed7345bc706f14c4d8bda4d70df66790de1f6d327dce6e63bfc3e528120ab413
### Server Binaries
filename | sha512 hash
-------- | -----------
[kubernetes-server-linux-amd64.tar.gz](https://dl.k8s.io/v1.33.7/kubernetes-server-linux-amd64.tar.gz) | b18f53d407bac3b73aa31db65c05bc480a38e5f7ac66c45b5c10d261d47c33f2aef66e4f7d72387f6ff8b56bf019658f12b77758553817cc35acdb7f0b7990bb
[kubernetes-server-linux-arm64.tar.gz](https://dl.k8s.io/v1.33.7/kubernetes-server-linux-arm64.tar.gz) | 8a054111bf2cfc9e36e8122e33f81df69ac47169de368b8f11dca1b6502b9b55dc6e13997e9e6268b4c8a35e0457ca78635c73dbb32a8d754b3997a366896906
[kubernetes-server-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.33.7/kubernetes-server-linux-ppc64le.tar.gz) | 7d6ffc30a6afa5e56b1790dd160823135c7a87e1c1d4667357b524045f2590a2cdb319708348d36d909a43b38d28ac9ffae2f60dc40cff0f8f99ad971ea5d03c
[kubernetes-server-linux-s390x.tar.gz](https://dl.k8s.io/v1.33.7/kubernetes-server-linux-s390x.tar.gz) | b257783f51c8b426826ddd182b2fa62ed8ce9e5f23792c30225dc47215ef4045a29d22fcdccef6c3799341054fc599fb2e29350deb4d2b8c043663cae8289263
### Node Binaries
filename | sha512 hash
-------- | -----------
[kubernetes-node-linux-amd64.tar.gz](https://dl.k8s.io/v1.33.7/kubernetes-node-linux-amd64.tar.gz) | 5bfc96ebb21775e1eef5fc87a8cf14caef34772b827a312766d121bbeb9657b14bfd468070567f344ad243d481ab1ef26e34012588c024cfd9dacf9ffded8638
[kubernetes-node-linux-arm64.tar.gz](https://dl.k8s.io/v1.33.7/kubernetes-node-linux-arm64.tar.gz) | a53e6a9bcb398dc5f0212340b4bed7d644239cd05dd35da91ec39d38d82371425009ef26140632b7f01891721a102880cbf934feb6f06e8a1e573f874232c737
[kubernetes-node-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.33.7/kubernetes-node-linux-ppc64le.tar.gz) | ec89f4c0dedc5d1879855c3f3f1e06cfe9b68f18543d5a05145060d85c4b7da9bf0f4af9bf8c07fc3978bb14fc01ed9a284ec39d2268abc15ce2fe3d8c1b2230
[kubernetes-node-linux-s390x.tar.gz](https://dl.k8s.io/v1.33.7/kubernetes-node-linux-s390x.tar.gz) | 5e411feedbd32da7c3aed82713d140684cee81f64534d5faf6c9a2186b513ac063faf985cb237982bd1987c73f4a54cd294ef68413bc731b263b609c3a79f603
[kubernetes-node-windows-amd64.tar.gz](https://dl.k8s.io/v1.33.7/kubernetes-node-windows-amd64.tar.gz) | 78a8137b171138eaf1c25774b759fe5b6f2c8bde0f0c93303add48f653ee1d71be597e694ac5ebaa29bf7353c87dc29b9c897116971af7d5d61d658756a85182
### Container Images
All container images are available as manifest lists and support the described
architectures. It is also possible to pull a specific architecture directly by
adding the "-$ARCH" suffix to the container image name.
name | architectures
---- | -------------
[registry.k8s.io/conformance:v1.33.7](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/conformance) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/conformance-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/conformance-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/conformance-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/conformance-s390x)
[registry.k8s.io/kube-apiserver:v1.33.7](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-apiserver) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-apiserver-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-apiserver-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-apiserver-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-apiserver-s390x)
[registry.k8s.io/kube-controller-manager:v1.33.7](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-controller-manager) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-controller-manager-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-controller-manager-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-controller-manager-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-controller-manager-s390x)
[registry.k8s.io/kube-proxy:v1.33.7](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-proxy) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-proxy-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-proxy-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-proxy-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-proxy-s390x)
[registry.k8s.io/kube-scheduler:v1.33.7](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-scheduler) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-scheduler-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-scheduler-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-scheduler-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-scheduler-s390x)
[registry.k8s.io/kubectl:v1.33.7](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kubectl) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kubectl-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kubectl-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kubectl-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kubectl-s390x)
## Changelog since v1.33.6
## Changes by Kind
### Feature
- Kubernetes is now built using Go 1.24.10 ([#135507](https://github.com/kubernetes/kubernetes/pull/135507), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing]
- Kubernetes is now built using Go 1.24.11 ([#135613](https://github.com/kubernetes/kubernetes/pull/135613), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing]
### Bug or Regression
- Fixed a data race in the ResolverTypeProvider that caused indeterministic behavior in ValidatingAdmissionPolicy (VAP) and MutatingAdmissionPolicy (MAP). ([#135328](https://github.com/kubernetes/kubernetes/pull/135328), [@lalitc375](https://github.com/lalitc375)) [SIG API Machinery]
- Fixes a spurious "namespace not found" error possible in default configurations in 1.30+ when using ValidatingAdmissionPolicy or MutatingAdmissionPolicy to intercept namespaced objects in newly-created namespaces ([#135443](https://github.com/kubernetes/kubernetes/pull/135443), [@lalitc375](https://github.com/lalitc375)) [SIG API Machinery]
- Kube-apiserver: fix a possible panic validating a custom resource whose CustomResourceDefinition indicates a status subresource exists, but which does not define a `status` property in the `openAPIV3Schema` ([#135362](https://github.com/kubernetes/kubernetes/pull/135362), [@fusida](https://github.com/fusida)) [SIG API Machinery]
- Kubeadm: unhide the "etcd-join" phase of "kubeadm join" to allow on-demand execution of the phase if the ControlPlaneLocalMode feature gate is not enabled ([#135481](https://github.com/kubernetes/kubernetes/pull/135481), [@borovetsav](https://github.com/borovetsav)) [SIG Cluster Lifecycle]
- Make / build: fix docker IP address detection ([#135577](https://github.com/kubernetes/kubernetes/pull/135577), [@BenTheElder](https://github.com/BenTheElder)) [SIG Release and Testing]
- The slow initialization of container runtime will not cause System WatchDog to kill kubelet. Device Manager is not considered healthy before it attempted to start listening on the port. ([#135208](https://github.com/kubernetes/kubernetes/pull/135208), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) [SIG Node]
## Dependencies
### Added
_Nothing has changed._
### Changed
_Nothing has changed._
### Removed
_Nothing has changed._
# v1.33.6

View file

@ -1,13 +1,13 @@
<!-- BEGIN MUNGE: GENERATED_TOC -->
- [v1.34.2](#v1342)
- [Downloads for v1.34.2](#downloads-for-v1342)
- [v1.34.4](#v1344)
- [Downloads for v1.34.4](#downloads-for-v1344)
- [Source Code](#source-code)
- [Client Binaries](#client-binaries)
- [Server Binaries](#server-binaries)
- [Node Binaries](#node-binaries)
- [Container Images](#container-images)
- [Changelog since v1.34.1](#changelog-since-v1341)
- [Changelog since v1.34.3](#changelog-since-v1343)
- [Changes by Kind](#changes-by-kind)
- [Feature](#feature)
- [Bug or Regression](#bug-or-regression)
@ -16,167 +16,401 @@
- [Added](#added)
- [Changed](#changed)
- [Removed](#removed)
- [v1.34.1](#v1341)
- [Downloads for v1.34.1](#downloads-for-v1341)
- [v1.34.3](#v1343)
- [Downloads for v1.34.3](#downloads-for-v1343)
- [Source Code](#source-code-1)
- [Client Binaries](#client-binaries-1)
- [Server Binaries](#server-binaries-1)
- [Node Binaries](#node-binaries-1)
- [Container Images](#container-images-1)
- [Changelog since v1.34.0](#changelog-since-v1340)
- [Changelog since v1.34.2](#changelog-since-v1342)
- [Changes by Kind](#changes-by-kind-1)
- [Feature](#feature-1)
- [Bug or Regression](#bug-or-regression-1)
- [Dependencies](#dependencies-1)
- [Added](#added-1)
- [Changed](#changed-1)
- [Removed](#removed-1)
- [v1.34.0](#v1340)
- [Downloads for v1.34.0](#downloads-for-v1340)
- [v1.34.2](#v1342)
- [Downloads for v1.34.2](#downloads-for-v1342)
- [Source Code](#source-code-2)
- [Client Binaries](#client-binaries-2)
- [Server Binaries](#server-binaries-2)
- [Node Binaries](#node-binaries-2)
- [Container Images](#container-images-2)
- [Changelog since v1.33.0](#changelog-since-v1330)
- [Urgent Upgrade Notes](#urgent-upgrade-notes)
- [(No, really, you MUST read this before you upgrade)](#no-really-you-must-read-this-before-you-upgrade)
- [Changelog since v1.34.1](#changelog-since-v1341)
- [Changes by Kind](#changes-by-kind-2)
- [Deprecation](#deprecation)
- [API Change](#api-change)
- [Feature](#feature-1)
- [Failing Test](#failing-test)
- [Feature](#feature-2)
- [Bug or Regression](#bug-or-regression-2)
- [Other (Cleanup or Flake)](#other-cleanup-or-flake-1)
- [Dependencies](#dependencies-2)
- [Added](#added-2)
- [Changed](#changed-2)
- [Removed](#removed-2)
- [v1.34.0-rc.2](#v1340-rc2)
- [Downloads for v1.34.0-rc.2](#downloads-for-v1340-rc2)
- [v1.34.1](#v1341)
- [Downloads for v1.34.1](#downloads-for-v1341)
- [Source Code](#source-code-3)
- [Client Binaries](#client-binaries-3)
- [Server Binaries](#server-binaries-3)
- [Node Binaries](#node-binaries-3)
- [Container Images](#container-images-3)
- [Changelog since v1.34.0-rc.1](#changelog-since-v1340-rc1)
- [Changelog since v1.34.0](#changelog-since-v1340)
- [Changes by Kind](#changes-by-kind-3)
- [Feature](#feature-2)
- [Documentation](#documentation)
- [Bug or Regression](#bug-or-regression-3)
- [Dependencies](#dependencies-3)
- [Added](#added-3)
- [Changed](#changed-3)
- [Removed](#removed-3)
- [v1.34.0-rc.1](#v1340-rc1)
- [Downloads for v1.34.0-rc.1](#downloads-for-v1340-rc1)
- [v1.34.0](#v1340)
- [Downloads for v1.34.0](#downloads-for-v1340)
- [Source Code](#source-code-4)
- [Client Binaries](#client-binaries-4)
- [Server Binaries](#server-binaries-4)
- [Node Binaries](#node-binaries-4)
- [Container Images](#container-images-4)
- [Changelog since v1.34.0-rc.0](#changelog-since-v1340-rc0)
- [Changelog since v1.33.0](#changelog-since-v1330)
- [Urgent Upgrade Notes](#urgent-upgrade-notes)
- [(No, really, you MUST read this before you upgrade)](#no-really-you-must-read-this-before-you-upgrade)
- [Changes by Kind](#changes-by-kind-4)
- [Deprecation](#deprecation)
- [API Change](#api-change)
- [Feature](#feature-3)
- [Failing Test](#failing-test)
- [Bug or Regression](#bug-or-regression-4)
- [Other (Cleanup or Flake)](#other-cleanup-or-flake-2)
- [Dependencies](#dependencies-4)
- [Added](#added-4)
- [Changed](#changed-4)
- [Removed](#removed-4)
- [v1.34.0-rc.0](#v1340-rc0)
- [Downloads for v1.34.0-rc.0](#downloads-for-v1340-rc0)
- [v1.34.0-rc.2](#v1340-rc2)
- [Downloads for v1.34.0-rc.2](#downloads-for-v1340-rc2)
- [Source Code](#source-code-5)
- [Client Binaries](#client-binaries-5)
- [Server Binaries](#server-binaries-5)
- [Node Binaries](#node-binaries-5)
- [Container Images](#container-images-5)
- [Changelog since v1.34.0-beta.0](#changelog-since-v1340-beta0)
- [Changelog since v1.34.0-rc.1](#changelog-since-v1340-rc1)
- [Changes by Kind](#changes-by-kind-5)
- [Deprecation](#deprecation-1)
- [API Change](#api-change-1)
- [Feature](#feature-3)
- [Failing Test](#failing-test-1)
- [Feature](#feature-4)
- [Documentation](#documentation)
- [Bug or Regression](#bug-or-regression-5)
- [Other (Cleanup or Flake)](#other-cleanup-or-flake-2)
- [Dependencies](#dependencies-5)
- [Added](#added-5)
- [Changed](#changed-5)
- [Removed](#removed-5)
- [v1.34.0-beta.0](#v1340-beta0)
- [Downloads for v1.34.0-beta.0](#downloads-for-v1340-beta0)
- [v1.34.0-rc.1](#v1340-rc1)
- [Downloads for v1.34.0-rc.1](#downloads-for-v1340-rc1)
- [Source Code](#source-code-6)
- [Client Binaries](#client-binaries-6)
- [Server Binaries](#server-binaries-6)
- [Node Binaries](#node-binaries-6)
- [Container Images](#container-images-6)
- [Changelog since v1.34.0-alpha.3](#changelog-since-v1340-alpha3)
- [Changelog since v1.34.0-rc.0](#changelog-since-v1340-rc0)
- [Changes by Kind](#changes-by-kind-6)
- [API Change](#api-change-2)
- [Feature](#feature-4)
- [Bug or Regression](#bug-or-regression-6)
- [Other (Cleanup or Flake)](#other-cleanup-or-flake-3)
- [Dependencies](#dependencies-6)
- [Added](#added-6)
- [Changed](#changed-6)
- [Removed](#removed-6)
- [v1.34.0-alpha.3](#v1340-alpha3)
- [Downloads for v1.34.0-alpha.3](#downloads-for-v1340-alpha3)
- [v1.34.0-rc.0](#v1340-rc0)
- [Downloads for v1.34.0-rc.0](#downloads-for-v1340-rc0)
- [Source Code](#source-code-7)
- [Client Binaries](#client-binaries-7)
- [Server Binaries](#server-binaries-7)
- [Node Binaries](#node-binaries-7)
- [Container Images](#container-images-7)
- [Changelog since v1.34.0-alpha.2](#changelog-since-v1340-alpha2)
- [Changelog since v1.34.0-beta.0](#changelog-since-v1340-beta0)
- [Changes by Kind](#changes-by-kind-7)
- [API Change](#api-change-3)
- [Deprecation](#deprecation-1)
- [API Change](#api-change-1)
- [Feature](#feature-5)
- [Failing Test](#failing-test-2)
- [Failing Test](#failing-test-1)
- [Bug or Regression](#bug-or-regression-7)
- [Other (Cleanup or Flake)](#other-cleanup-or-flake-4)
- [Other (Cleanup or Flake)](#other-cleanup-or-flake-3)
- [Dependencies](#dependencies-7)
- [Added](#added-7)
- [Changed](#changed-7)
- [Removed](#removed-7)
- [v1.34.0-alpha.2](#v1340-alpha2)
- [Downloads for v1.34.0-alpha.2](#downloads-for-v1340-alpha2)
- [v1.34.0-beta.0](#v1340-beta0)
- [Downloads for v1.34.0-beta.0](#downloads-for-v1340-beta0)
- [Source Code](#source-code-8)
- [Client Binaries](#client-binaries-8)
- [Server Binaries](#server-binaries-8)
- [Node Binaries](#node-binaries-8)
- [Container Images](#container-images-8)
- [Changelog since v1.34.0-alpha.1](#changelog-since-v1340-alpha1)
- [Changelog since v1.34.0-alpha.3](#changelog-since-v1340-alpha3)
- [Changes by Kind](#changes-by-kind-8)
- [Deprecation](#deprecation-2)
- [API Change](#api-change-4)
- [API Change](#api-change-2)
- [Feature](#feature-6)
- [Bug or Regression](#bug-or-regression-8)
- [Other (Cleanup or Flake)](#other-cleanup-or-flake-5)
- [Other (Cleanup or Flake)](#other-cleanup-or-flake-4)
- [Dependencies](#dependencies-8)
- [Added](#added-8)
- [Changed](#changed-8)
- [Removed](#removed-8)
- [v1.34.0-alpha.1](#v1340-alpha1)
- [Downloads for v1.34.0-alpha.1](#downloads-for-v1340-alpha1)
- [v1.34.0-alpha.3](#v1340-alpha3)
- [Downloads for v1.34.0-alpha.3](#downloads-for-v1340-alpha3)
- [Source Code](#source-code-9)
- [Client Binaries](#client-binaries-9)
- [Server Binaries](#server-binaries-9)
- [Node Binaries](#node-binaries-9)
- [Container Images](#container-images-9)
- [Changelog since v1.33.0](#changelog-since-v1330-1)
- [Urgent Upgrade Notes](#urgent-upgrade-notes-1)
- [(No, really, you MUST read this before you upgrade)](#no-really-you-must-read-this-before-you-upgrade-1)
- [Changelog since v1.34.0-alpha.2](#changelog-since-v1340-alpha2)
- [Changes by Kind](#changes-by-kind-9)
- [Deprecation](#deprecation-3)
- [API Change](#api-change-5)
- [API Change](#api-change-3)
- [Feature](#feature-7)
- [Failing Test](#failing-test-3)
- [Failing Test](#failing-test-2)
- [Bug or Regression](#bug-or-regression-9)
- [Other (Cleanup or Flake)](#other-cleanup-or-flake-6)
- [Other (Cleanup or Flake)](#other-cleanup-or-flake-5)
- [Dependencies](#dependencies-9)
- [Added](#added-9)
- [Changed](#changed-9)
- [Removed](#removed-9)
- [v1.34.0-alpha.2](#v1340-alpha2)
- [Downloads for v1.34.0-alpha.2](#downloads-for-v1340-alpha2)
- [Source Code](#source-code-10)
- [Client Binaries](#client-binaries-10)
- [Server Binaries](#server-binaries-10)
- [Node Binaries](#node-binaries-10)
- [Container Images](#container-images-10)
- [Changelog since v1.34.0-alpha.1](#changelog-since-v1340-alpha1)
- [Changes by Kind](#changes-by-kind-10)
- [Deprecation](#deprecation-2)
- [API Change](#api-change-4)
- [Feature](#feature-8)
- [Bug or Regression](#bug-or-regression-10)
- [Other (Cleanup or Flake)](#other-cleanup-or-flake-6)
- [Dependencies](#dependencies-10)
- [Added](#added-10)
- [Changed](#changed-10)
- [Removed](#removed-10)
- [v1.34.0-alpha.1](#v1340-alpha1)
- [Downloads for v1.34.0-alpha.1](#downloads-for-v1340-alpha1)
- [Source Code](#source-code-11)
- [Client Binaries](#client-binaries-11)
- [Server Binaries](#server-binaries-11)
- [Node Binaries](#node-binaries-11)
- [Container Images](#container-images-11)
- [Changelog since v1.33.0](#changelog-since-v1330-1)
- [Urgent Upgrade Notes](#urgent-upgrade-notes-1)
- [(No, really, you MUST read this before you upgrade)](#no-really-you-must-read-this-before-you-upgrade-1)
- [Changes by Kind](#changes-by-kind-11)
- [Deprecation](#deprecation-3)
- [API Change](#api-change-5)
- [Feature](#feature-9)
- [Failing Test](#failing-test-3)
- [Bug or Regression](#bug-or-regression-11)
- [Other (Cleanup or Flake)](#other-cleanup-or-flake-7)
- [Dependencies](#dependencies-11)
- [Added](#added-11)
- [Changed](#changed-11)
- [Removed](#removed-11)
<!-- END MUNGE: GENERATED_TOC -->
# v1.34.4
## Downloads for v1.34.4
### Source Code
filename | sha512 hash
-------- | -----------
[kubernetes.tar.gz](https://dl.k8s.io/v1.34.4/kubernetes.tar.gz) | 9cfee27d587171a603fff8cdea1547f21121347837b9c69d7ad9b23267338d6e94f200605ac878db17fd5923ff6863be61f3b738a37a713c6db2cf5ba0679902
[kubernetes-src.tar.gz](https://dl.k8s.io/v1.34.4/kubernetes-src.tar.gz) | bb17785569083ad79d384994f960a4e2ceadfea8132ebfbd9cdf2251bdaff6d8f15f7708b6e3270bcfd68b35de190e66e0a4f692b3e9fdcb05ca9cea16437874
### Client Binaries
filename | sha512 hash
-------- | -----------
[kubernetes-client-darwin-amd64.tar.gz](https://dl.k8s.io/v1.34.4/kubernetes-client-darwin-amd64.tar.gz) | d54016baa54cf847d68b56bee5f73f8453e2f7ea2fade04fb0a2dd4dabb2ac343e604d2ceae48fb16338c6fb4d92a6eb46b4294dda54500fc93800992a6c1c1d
[kubernetes-client-darwin-arm64.tar.gz](https://dl.k8s.io/v1.34.4/kubernetes-client-darwin-arm64.tar.gz) | 7770047fb7040e9f8f59daea877cc6fa1c9c7444e397b5d6252389d35b766ea3efe52677048d9b6710e9f866994635b985d64f631e396ba36b2689a77c75f7a0
[kubernetes-client-linux-386.tar.gz](https://dl.k8s.io/v1.34.4/kubernetes-client-linux-386.tar.gz) | e039b5830c10a358ab9ffdbc3551a62aa64c30d7db41a2b60644fdbb0205028817235d239ec318e086fbae0615f8337e938524f813fcca93579dc1f91e395e27
[kubernetes-client-linux-amd64.tar.gz](https://dl.k8s.io/v1.34.4/kubernetes-client-linux-amd64.tar.gz) | 018d0a75b74b55942a0777afc7edf64ca98c004e6e12f9dc93ad75c26cb58089104ba0f9ceae2f0be5a6f6854948c705b0eb828f0960302a0ff84d57c464fc09
[kubernetes-client-linux-arm.tar.gz](https://dl.k8s.io/v1.34.4/kubernetes-client-linux-arm.tar.gz) | 051b2e99affa27a7c419d6d1bd3c9e37b3cc467720250890ee1c94188e3bca9d074a6c168ba0f13034690fb716d259797131f187d5a277b2215031f4f5588551
[kubernetes-client-linux-arm64.tar.gz](https://dl.k8s.io/v1.34.4/kubernetes-client-linux-arm64.tar.gz) | 7b26519145a69ca0a14497ae476b8061b2f07b69f0cf4669490ed36b9161507c2457018181c50ba6c86c55f6b68dcd6faeff832ad5e30f3845a11fc996db2146
[kubernetes-client-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.34.4/kubernetes-client-linux-ppc64le.tar.gz) | cc3101ac0ee9d86ee03f95eb7a95533aac6d5d11e1e80af66e0d7b899a86884dfd85a4c1b2796060b2424cfaea6ed30cee05864fd305df64e0f0e037e6514217
[kubernetes-client-linux-s390x.tar.gz](https://dl.k8s.io/v1.34.4/kubernetes-client-linux-s390x.tar.gz) | ddf4f06b81bcb453aa86d5a12dbed95ab08d88c9ea75b0b14ca1185a5f12c276f80867f0172dc51f45b75bd1dce2ab91d9c7c80b95cd32532da5b3da8affd373
[kubernetes-client-windows-386.tar.gz](https://dl.k8s.io/v1.34.4/kubernetes-client-windows-386.tar.gz) | 7595f1e24db62223d30ff9d255675e3c199dff61a0d201467202219e638cbbd3544cf8a094dd85db5fc5026f09ca6939f6b5fdc6876448af5d082f10fd60a8c0
[kubernetes-client-windows-amd64.tar.gz](https://dl.k8s.io/v1.34.4/kubernetes-client-windows-amd64.tar.gz) | 59b5232d9e586cddb4ecc4a40e9fe6341fdf2a6c402291f6765e4ea81c93e30534a118af8a89b19b4ac3c0b67f40dc7016d47698ee3183b3b108aa63c03b701e
[kubernetes-client-windows-arm64.tar.gz](https://dl.k8s.io/v1.34.4/kubernetes-client-windows-arm64.tar.gz) | cf39ef9668d6850bae2a618b2fe1705c5587682297bb14e447d081f3be71b07be16f8193c7e1c84c33070a16ecb250fa4604678ca988bd439d6ced4a8f119587
### Server Binaries
filename | sha512 hash
-------- | -----------
[kubernetes-server-linux-amd64.tar.gz](https://dl.k8s.io/v1.34.4/kubernetes-server-linux-amd64.tar.gz) | 65c75e81e3ea488f6d42b493cad64d7577ddfa1e5372037a1c841ac069039997d359b5b2f2d44e7665bf04c48ed0065cf9d4c9801b1e63bb6a1b099ef00d4863
[kubernetes-server-linux-arm64.tar.gz](https://dl.k8s.io/v1.34.4/kubernetes-server-linux-arm64.tar.gz) | a1fad7060ed67b5634f32f3256a295179dd887dab5c82b8550c2eb62c69df34cfbb311c8f93e7608d558eba32b9e2ddc23976db39e512fd747cc6bf9b4c1765f
[kubernetes-server-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.34.4/kubernetes-server-linux-ppc64le.tar.gz) | 35e174beff38bad364c15bada88884fb0dc212b16eb3640e1881f016eb0903fe37448f2cd241b0a1bce074ae4cb62a877ad5fec9d2848d1b6070ff4509093de8
[kubernetes-server-linux-s390x.tar.gz](https://dl.k8s.io/v1.34.4/kubernetes-server-linux-s390x.tar.gz) | 1b638410b0cd16b7c7a489d379017a05ef2c059cec4ea02e9405091c8e45c9c073a6369f0d2ec9a75073f4d6d549a6c2603d460d86916a9605591df241fb85a7
### Node Binaries
filename | sha512 hash
-------- | -----------
[kubernetes-node-linux-amd64.tar.gz](https://dl.k8s.io/v1.34.4/kubernetes-node-linux-amd64.tar.gz) | b51886e190080f47d0b2556c6aa431bfbe9e5aa7b1e90eada43e86065e4fbfc5db265adae00207fc5953c1ee13afc585c9db2701c8297c273b9b555aa0c068f1
[kubernetes-node-linux-arm64.tar.gz](https://dl.k8s.io/v1.34.4/kubernetes-node-linux-arm64.tar.gz) | b4bd87d1f7f923905e5b9577f1778a4a0da22ce62de477968016fee0dbc619a38e725768c9f5247c1cc50414a853fc43d7970cf704b0125f528d008ccd25ba71
[kubernetes-node-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.34.4/kubernetes-node-linux-ppc64le.tar.gz) | e06c3956395ec6b35715e619ec80c89f846478678893808cdc4e6c3e6fcc938bc7bcef2a0ce3bfc2a940a4ac31a2d4457f3f76ff1c1b9fc0e9b48f46a97cc72f
[kubernetes-node-linux-s390x.tar.gz](https://dl.k8s.io/v1.34.4/kubernetes-node-linux-s390x.tar.gz) | a47085861e4b87ef485d07172ced528f3fa3722d472c971c866582a9fed2241320023621d7da0a36b75913df6982c81f6b6388f6684e123ad481a6d7f89a8367
[kubernetes-node-windows-amd64.tar.gz](https://dl.k8s.io/v1.34.4/kubernetes-node-windows-amd64.tar.gz) | 9acbdb187c6e56872bb72372eea5a63ff17b7f485526e2907cae5a97d755d7a534ebb0f2fb893c00a343189e8f9ece184b36d30f03f0d89dc58a7c4355634d85
### Container Images
All container images are available as manifest lists and support the described
architectures. It is also possible to pull a specific architecture directly by
adding the "-$ARCH" suffix to the container image name.
name | architectures
---- | -------------
[registry.k8s.io/conformance:v1.34.4](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/conformance) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/conformance-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/conformance-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/conformance-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/conformance-s390x)
[registry.k8s.io/kube-apiserver:v1.34.4](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-apiserver) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-apiserver-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-apiserver-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-apiserver-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-apiserver-s390x)
[registry.k8s.io/kube-controller-manager:v1.34.4](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-controller-manager) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-controller-manager-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-controller-manager-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-controller-manager-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-controller-manager-s390x)
[registry.k8s.io/kube-proxy:v1.34.4](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-proxy) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-proxy-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-proxy-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-proxy-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-proxy-s390x)
[registry.k8s.io/kube-scheduler:v1.34.4](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-scheduler) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-scheduler-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-scheduler-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-scheduler-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-scheduler-s390x)
[registry.k8s.io/kubectl:v1.34.4](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kubectl) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kubectl-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kubectl-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kubectl-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kubectl-s390x)
## Changelog since v1.34.3
## Changes by Kind
### Feature
- Kubeadm: when patching a Node object do not exit early on unknown (non-allowlisted) API errors. Instead, always retry within the duration of the polling for getting and patching a Node object. ([#136071](https://github.com/kubernetes/kubernetes/pull/136071), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]
- Kubernetes is now built using Go 1.24.12 ([#136467](https://github.com/kubernetes/kubernetes/pull/136467), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing]
### Bug or Regression
- DRA: when scheduling many pods very rapidly, sometimes the same device was allocated twice for different ResourceClaims due races between data processing in different goroutines. Depending on whether DRA drivers check for this during NodePrepareResources (they should, but maybe not all implement this properly), the second pod using the same device then failed to start until the first one is done or (worse) ran in parallel. ([#136566](https://github.com/kubernetes/kubernetes/pull/136566), [@pohly](https://github.com/pohly)) [SIG Node and Scheduling]
- Fixed SELinux warning controller not to emit events for completed pods. ([#136099](https://github.com/kubernetes/kubernetes/pull/136099), [@jsafrane](https://github.com/jsafrane)) [SIG Apps, Storage and Testing]
- Fixed an issue in the Windows kube-proxy (winkernel) where IPv4 and IPv6 Service load balancers could be incorrectly shared, causing broken dual-stack Service behavior. The kube-proxy now tracks load balancers per IP family, enabling correct support for PreferDualStack and RequireDualStack Services on Windows nodes. ([#136374](https://github.com/kubernetes/kubernetes/pull/136374), [@princepereira](https://github.com/princepereira)) [SIG Network and Windows]
- Fixed kubelet logging to properly respect verbosity levels. Previously, some debug/info messages using V().Error() would always be printed regardless of the configured log verbosity. ([#136433](https://github.com/kubernetes/kubernetes/pull/136433), [@thc1006](https://github.com/thc1006)) [SIG Node]
- Fixes a 1.29 regression in the apiserver_watch_events_sizes metric to report total outgoing watch traffic again ([#135816](https://github.com/kubernetes/kubernetes/pull/135816), [@mborsz](https://github.com/mborsz)) [SIG API Machinery]
- Fixes a 1.34 regression starting pods with environment variables with a value containing `$` followed by a multi-byte character ([#136490](https://github.com/kubernetes/kubernetes/pull/136490), [@AutuSnow](https://github.com/AutuSnow)) [SIG Architecture and Node]
- Fixes a 1.34+ regression in ipvs and winkernel kube-proxy backends; these are now reverted back to their
pre-1.34 behavior of regularly rechecking all of their rules even when no
Services or EndpointSlices change. ([#136123](https://github.com/kubernetes/kubernetes/pull/136123), [@danwinship](https://github.com/danwinship)) [SIG Network and Windows]
- Kube-apiserver: fix a possible panic validating a custom resource whose CustomResourceDefinition indicates a status subresource exists, but which does not define a `status` property in the `openAPIV3Schema` ([#135363](https://github.com/kubernetes/kubernetes/pull/135363), [@fusida](https://github.com/fusida)) [SIG API Machinery]
- Kubeadm: waiting for etcd learner member to be started before promoting during 'kubeadm join' ([#136364](https://github.com/kubernetes/kubernetes/pull/136364), [@dlipovetsky](https://github.com/dlipovetsky)) [SIG Cluster Lifecycle]
- Kubeadm: when applying the overrides provided by the user using "extraArgs", do not sort the resulted list of arguments alpha-numerically. Instead, only sort the list of default arguments and keep the list of overrides unsorted. This allows finer control for flags which have an order that matters, such as, "--service-account-issuer" for kube-apiserver. ([#135852](https://github.com/kubernetes/kubernetes/pull/135852), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]
- Kubelet(dra): correctly handles multiple ResourceClaims even if one is already prepared ([#136480](https://github.com/kubernetes/kubernetes/pull/136480), [@rogowski-piotr](https://github.com/rogowski-piotr)) [SIG Node and Testing]
### Other (Cleanup or Flake)
- Kubernetes is now built with Go 1.24.12 ([#136440](https://github.com/kubernetes/kubernetes/pull/136440), [@BenTheElder](https://github.com/BenTheElder)) [SIG Release]
- NONE
NONE ([#136635](https://github.com/kubernetes/kubernetes/pull/136635), [@dims](https://github.com/dims)) [SIG Network and Testing]
## Dependencies
### Added
_Nothing has changed._
### Changed
_Nothing has changed._
### Removed
_Nothing has changed._
# v1.34.3
## Downloads for v1.34.3
### Source Code
filename | sha512 hash
-------- | -----------
[kubernetes.tar.gz](https://dl.k8s.io/v1.34.3/kubernetes.tar.gz) | 33627a4aaf07c7c24ab9f26ce0577a6bcb702a1d4dbe207fd133cbc0dd1777f11093ffb82105a33913ed80444253cd5589e5fc1e25844590f1ea3bc10cdb5966
[kubernetes-src.tar.gz](https://dl.k8s.io/v1.34.3/kubernetes-src.tar.gz) | 7105f135a374a6458bd16dfdac8a2c13341091f32462964c8d968d0c09c8e608730280174492f31f09099aacf39ac1191883fa1ba7bbb029b8e083cd225ced7f
### Client Binaries
filename | sha512 hash
-------- | -----------
[kubernetes-client-darwin-amd64.tar.gz](https://dl.k8s.io/v1.34.3/kubernetes-client-darwin-amd64.tar.gz) | 4a8980595de9271614cae688d232552b60ecfa2ab802ec939ae3ebbd71f55d92b66c3f785bcaf7b079bae3638f308969804d1972d4f026c102f653de9c59a647
[kubernetes-client-darwin-arm64.tar.gz](https://dl.k8s.io/v1.34.3/kubernetes-client-darwin-arm64.tar.gz) | 43ff65398af0a3c0e195b194aadc8dbd39722105948084c8238d7d5014f3e85acf4c3e03f8770242a1844352eb67724752f08b47e98efd320db98b187a9e859f
[kubernetes-client-linux-386.tar.gz](https://dl.k8s.io/v1.34.3/kubernetes-client-linux-386.tar.gz) | a203affe4ad63722bc568de35fab9defa0a71f79d1484bd1a74552503bc93803532e5a396894cc10355d238ef8d0457ea520bd11d0b261bb048bb79fddb29070
[kubernetes-client-linux-amd64.tar.gz](https://dl.k8s.io/v1.34.3/kubernetes-client-linux-amd64.tar.gz) | 7cbec147966596b1d07e42d4d2c2ca286fb135ab6352c55d1e0884c1a7f3bb5fc37ff98224fca1221d6a317835fef06c249f3aa57072f0d55b33fe68eb94b815
[kubernetes-client-linux-arm.tar.gz](https://dl.k8s.io/v1.34.3/kubernetes-client-linux-arm.tar.gz) | c3e9254149a45801f57a21de11f93e19784608679063a7bf0bd9e3bf5fc0524b6b451f834ec5c0fba8ff80244814ac69ac2c733cebaed474661b3e06ee9bb2ac
[kubernetes-client-linux-arm64.tar.gz](https://dl.k8s.io/v1.34.3/kubernetes-client-linux-arm64.tar.gz) | 02ebf150cfa3d69e0143e6efbe131c84c514de55c5baf3e0422fd6b24b9a8289f9fb1c1d409852ccca3105fcbb481a4717289535e95904449268a99773d2ead5
[kubernetes-client-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.34.3/kubernetes-client-linux-ppc64le.tar.gz) | 19d6c784509cfc3ada94c750c560b6253c569b3c316c908459adf3d3db685a75c6447f30943b30f1ea0b5c269914c510f2104755ad188882cb5be005d7cbea5c
[kubernetes-client-linux-s390x.tar.gz](https://dl.k8s.io/v1.34.3/kubernetes-client-linux-s390x.tar.gz) | b90be4990ee37bdb2ed94c2cccaec81a4a0e06cb3fa9007af7ca1e30fb33def2214055fd447cd9e68a150a17443b42482f0d05ef79cb142ea038efa3bb7214af
[kubernetes-client-windows-386.tar.gz](https://dl.k8s.io/v1.34.3/kubernetes-client-windows-386.tar.gz) | 0c59b6d2254c4f739a6ecb0d72908ed4ff278f6d025b09ff6e7fba118c2c4977e647258fa494973ea4269bfb51aaba0af09fb3b5cae4f69545168cd897a2c7c6
[kubernetes-client-windows-amd64.tar.gz](https://dl.k8s.io/v1.34.3/kubernetes-client-windows-amd64.tar.gz) | 5f20e21bbb36a3219def2217c44ebe9527f3f4ba2f299197006c389f759b44dbd10ea77755cc0dae3e198f32557591e830fbed92dc22d9457131c86e84ce235f
[kubernetes-client-windows-arm64.tar.gz](https://dl.k8s.io/v1.34.3/kubernetes-client-windows-arm64.tar.gz) | 7abac810edbe183b1f261c619b0b6c978b0656a89da1bf876dc9f24db33c73e82bdd3728486870ad66525ac84da1a975e840f12484a415b2159a9469a2cebd6c
### Server Binaries
filename | sha512 hash
-------- | -----------
[kubernetes-server-linux-amd64.tar.gz](https://dl.k8s.io/v1.34.3/kubernetes-server-linux-amd64.tar.gz) | 6dacc62cf3def4873c680bd308fa88eb0ee857e4ca4e19723921172f7e6d4f7f774ea7742d59fa051807856896affb4fe86e55fc2612e2c3f729e5e10cde3200
[kubernetes-server-linux-arm64.tar.gz](https://dl.k8s.io/v1.34.3/kubernetes-server-linux-arm64.tar.gz) | 788e89509219b22e08ec436bc4ba39ccf47237b78253bdb26b1d2287c22d2edabacb8f2102d657fd259e3c7d2d2b671ba33ca60383beabd480873bcc30773d7b
[kubernetes-server-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.34.3/kubernetes-server-linux-ppc64le.tar.gz) | f915c019937547fee93f28472a670b7fa94bd37df2d52d9a02ecb1b7a13242157f24d51661652a071109ae144721f09fd5b1ba4734239faed957cba5bf6eb8b9
[kubernetes-server-linux-s390x.tar.gz](https://dl.k8s.io/v1.34.3/kubernetes-server-linux-s390x.tar.gz) | 936005a894cef3a573af7d4b8f0605ede7ecae3418e20983e99cf1f8f8d8bcfa775007e49fcf5e05067fa667d25ec7df0862c4b97165f6c35997af8dbeef5878
### Node Binaries
filename | sha512 hash
-------- | -----------
[kubernetes-node-linux-amd64.tar.gz](https://dl.k8s.io/v1.34.3/kubernetes-node-linux-amd64.tar.gz) | 15e7c285b2a399c9d4587fba182e2ce302a93de20a283f76e5d5fa1ba81eb1f735a8f3f1b264071bb4154c9d51d884cf69240b8f1183763d3db73bacac699946
[kubernetes-node-linux-arm64.tar.gz](https://dl.k8s.io/v1.34.3/kubernetes-node-linux-arm64.tar.gz) | 7f8ce155ce2b6ac6997fbadf44ba11d1e5adc5dde54c6dc06933e0df25eafbd3d53c18e83674e4ea5fa061c7a7d136b58a58d99f6c9c69514f4f68541fd9f7a7
[kubernetes-node-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.34.3/kubernetes-node-linux-ppc64le.tar.gz) | 70699409281648cc44d602635cd4b7c5f096aea9b1a2a219743e519b10bbc218af77639494cade6ea7d85d89cb617f07e5a130b471e17f36710fa2b3c66ca07c
[kubernetes-node-linux-s390x.tar.gz](https://dl.k8s.io/v1.34.3/kubernetes-node-linux-s390x.tar.gz) | f9c19823231c26f9b17c5c8ff47839eeda595595ce02240ad33ef6c619c86d322e31231d642d9e4170ba73fdb6242a853b0709d815c3ed0e3d8db1678c4a8b8a
[kubernetes-node-windows-amd64.tar.gz](https://dl.k8s.io/v1.34.3/kubernetes-node-windows-amd64.tar.gz) | 54f77a6306b7fd3cf3a2f6b470086a3d24d6f36b614847844d3bf6e821bdfa67f1a79863f6a56e9e6952017543c76626b33dbec77f2735d35f020bd5db138a27
### Container Images
All container images are available as manifest lists and support the described
architectures. It is also possible to pull a specific architecture directly by
adding the "-$ARCH" suffix to the container image name.
name | architectures
---- | -------------
[registry.k8s.io/conformance:v1.34.3](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/conformance) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/conformance-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/conformance-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/conformance-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/conformance-s390x)
[registry.k8s.io/kube-apiserver:v1.34.3](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-apiserver) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-apiserver-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-apiserver-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-apiserver-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-apiserver-s390x)
[registry.k8s.io/kube-controller-manager:v1.34.3](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-controller-manager) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-controller-manager-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-controller-manager-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-controller-manager-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-controller-manager-s390x)
[registry.k8s.io/kube-proxy:v1.34.3](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-proxy) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-proxy-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-proxy-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-proxy-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-proxy-s390x)
[registry.k8s.io/kube-scheduler:v1.34.3](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-scheduler) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-scheduler-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-scheduler-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-scheduler-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-scheduler-s390x)
[registry.k8s.io/kubectl:v1.34.3](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kubectl) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kubectl-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kubectl-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kubectl-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kubectl-s390x)
## Changelog since v1.34.2
## Changes by Kind
### Feature
- Kubernetes is now built using Go 1.24.10 ([#135506](https://github.com/kubernetes/kubernetes/pull/135506), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing]
- Kubernetes is now built using Go 1.24.11 ([#135612](https://github.com/kubernetes/kubernetes/pull/135612), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing]
### Bug or Regression
- Fixes a spurious "namespace not found" error possible in default configurations in 1.30+ when using ValidatingAdmissionPolicy or MutatingAdmissionPolicy to intercept namespaced objects in newly-created namespaces ([#135442](https://github.com/kubernetes/kubernetes/pull/135442), [@lalitc375](https://github.com/lalitc375)) [SIG API Machinery]
- K8s.io/client-go: Fixes a regression in 1.34+ which prevented informers from using configured Transformer functions ([#135592](https://github.com/kubernetes/kubernetes/pull/135592), [@serathius](https://github.com/serathius)) [SIG API Machinery]
- Kube-apiserver: Fixes spurious warning log messages about enabled alpha APIs while starting API server ([#135343](https://github.com/kubernetes/kubernetes/pull/135343), [@michaelasp](https://github.com/michaelasp)) [SIG API Machinery]
- Kubeadm: unhide the "etcd-join" phase of "kubeadm join" to allow on-demand execution of the phase if the ControlPlaneLocalMode feature gate is not enabled ([#135482](https://github.com/kubernetes/kubernetes/pull/135482), [@borovetsav](https://github.com/borovetsav)) [SIG Cluster Lifecycle]
- Make / build: fix docker IP address detection ([#135576](https://github.com/kubernetes/kubernetes/pull/135576), [@BenTheElder](https://github.com/BenTheElder)) [SIG Release and Testing]
- The slow initialization of container runtime will not cause System WatchDog to kill kubelet. Device Manager is not considered healthy before it attempted to start listening on the port. ([#135207](https://github.com/kubernetes/kubernetes/pull/135207), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) [SIG Node]
## Dependencies
### Added
_Nothing has changed._
### Changed
_Nothing has changed._
### Removed
_Nothing has changed._
# v1.34.2

View file

@ -1,85 +1,83 @@
<!-- BEGIN MUNGE: GENERATED_TOC -->
- [v1.35.0-rc.0](#v1350-rc0)
- [Downloads for v1.35.0-rc.0](#downloads-for-v1350-rc0)
- [v1.35.1](#v1351)
- [Downloads for v1.35.1](#downloads-for-v1351)
- [Source Code](#source-code)
- [Client Binaries](#client-binaries)
- [Server Binaries](#server-binaries)
- [Node Binaries](#node-binaries)
- [Container Images](#container-images)
- [Changelog since v1.35.0-beta.0](#changelog-since-v1350-beta0)
- [Changelog since v1.35.0](#changelog-since-v1350)
- [Changes by Kind](#changes-by-kind)
- [Feature](#feature)
- [Bug or Regression](#bug-or-regression)
- [Other (Cleanup or Flake)](#other-cleanup-or-flake)
- [Dependencies](#dependencies)
- [Added](#added)
- [Changed](#changed)
- [Removed](#removed)
- [v1.35.0-beta.0](#v1350-beta0)
- [Downloads for v1.35.0-beta.0](#downloads-for-v1350-beta0)
- [v1.35.0](#v1350)
- [Downloads for v1.35.0](#downloads-for-v1350)
- [Source Code](#source-code-1)
- [Client Binaries](#client-binaries-1)
- [Server Binaries](#server-binaries-1)
- [Node Binaries](#node-binaries-1)
- [Container Images](#container-images-1)
- [Changelog since v1.35.0-alpha.3](#changelog-since-v1350-alpha3)
- [Changelog since v1.34.0](#changelog-since-v1340)
- [Urgent Upgrade Notes](#urgent-upgrade-notes)
- [(No, really, you MUST read this before you upgrade)](#no-really-you-must-read-this-before-you-upgrade)
- [Changes by Kind](#changes-by-kind-1)
- [Deprecation](#deprecation)
- [API Change](#api-change)
- [Feature](#feature-1)
- [Documentation](#documentation)
- [Bug or Regression](#bug-or-regression-1)
- [Other (Cleanup or Flake)](#other-cleanup-or-flake)
- [Other (Cleanup or Flake)](#other-cleanup-or-flake-1)
- [Dependencies](#dependencies-1)
- [Added](#added-1)
- [Changed](#changed-1)
- [Removed](#removed-1)
- [v1.35.0-alpha.3](#v1350-alpha3)
- [Downloads for v1.35.0-alpha.3](#downloads-for-v1350-alpha3)
- [v1.35.0-rc.1](#v1350-rc1)
- [Downloads for v1.35.0-rc.1](#downloads-for-v1350-rc1)
- [Source Code](#source-code-2)
- [Client Binaries](#client-binaries-2)
- [Server Binaries](#server-binaries-2)
- [Node Binaries](#node-binaries-2)
- [Container Images](#container-images-2)
- [Changelog since v1.35.0-alpha.2](#changelog-since-v1350-alpha2)
- [Urgent Upgrade Notes](#urgent-upgrade-notes)
- [(No, really, you MUST read this before you upgrade)](#no-really-you-must-read-this-before-you-upgrade)
- [Changelog since v1.35.0-rc.0](#changelog-since-v1350-rc0)
- [Changes by Kind](#changes-by-kind-2)
- [API Change](#api-change-1)
- [Feature](#feature-2)
- [Bug or Regression](#bug-or-regression-2)
- [Other (Cleanup or Flake)](#other-cleanup-or-flake-1)
- [Other (Cleanup or Flake)](#other-cleanup-or-flake-2)
- [Dependencies](#dependencies-2)
- [Added](#added-2)
- [Changed](#changed-2)
- [Removed](#removed-2)
- [v1.35.0-alpha.2](#v1350-alpha2)
- [Downloads for v1.35.0-alpha.2](#downloads-for-v1350-alpha2)
- [v1.35.0-rc.0](#v1350-rc0)
- [Downloads for v1.35.0-rc.0](#downloads-for-v1350-rc0)
- [Source Code](#source-code-3)
- [Client Binaries](#client-binaries-3)
- [Server Binaries](#server-binaries-3)
- [Node Binaries](#node-binaries-3)
- [Container Images](#container-images-3)
- [Changelog since v1.35.0-alpha.1](#changelog-since-v1350-alpha1)
- [Changelog since v1.35.0-beta.0](#changelog-since-v1350-beta0)
- [Changes by Kind](#changes-by-kind-3)
- [Deprecation](#deprecation)
- [API Change](#api-change-2)
- [Feature](#feature-3)
- [Documentation](#documentation)
- [Bug or Regression](#bug-or-regression-3)
- [Other (Cleanup or Flake)](#other-cleanup-or-flake-2)
- [Dependencies](#dependencies-3)
- [Added](#added-3)
- [Changed](#changed-3)
- [Removed](#removed-3)
- [v1.35.0-alpha.1](#v1350-alpha1)
- [Downloads for v1.35.0-alpha.1](#downloads-for-v1350-alpha1)
- [v1.35.0-beta.0](#v1350-beta0)
- [Downloads for v1.35.0-beta.0](#downloads-for-v1350-beta0)
- [Source Code](#source-code-4)
- [Client Binaries](#client-binaries-4)
- [Server Binaries](#server-binaries-4)
- [Node Binaries](#node-binaries-4)
- [Container Images](#container-images-4)
- [Changelog since v1.34.0](#changelog-since-v1340)
- [Changelog since v1.35.0-alpha.3](#changelog-since-v1350-alpha3)
- [Changes by Kind](#changes-by-kind-4)
- [API Change](#api-change-3)
- [API Change](#api-change-1)
- [Feature](#feature-4)
- [Bug or Regression](#bug-or-regression-4)
- [Other (Cleanup or Flake)](#other-cleanup-or-flake-3)
@ -87,9 +85,765 @@
- [Added](#added-4)
- [Changed](#changed-4)
- [Removed](#removed-4)
- [v1.35.0-alpha.3](#v1350-alpha3)
- [Downloads for v1.35.0-alpha.3](#downloads-for-v1350-alpha3)
- [Source Code](#source-code-5)
- [Client Binaries](#client-binaries-5)
- [Server Binaries](#server-binaries-5)
- [Node Binaries](#node-binaries-5)
- [Container Images](#container-images-5)
- [Changelog since v1.35.0-alpha.2](#changelog-since-v1350-alpha2)
- [Urgent Upgrade Notes](#urgent-upgrade-notes-1)
- [(No, really, you MUST read this before you upgrade)](#no-really-you-must-read-this-before-you-upgrade-1)
- [Changes by Kind](#changes-by-kind-5)
- [API Change](#api-change-2)
- [Feature](#feature-5)
- [Bug or Regression](#bug-or-regression-5)
- [Other (Cleanup or Flake)](#other-cleanup-or-flake-4)
- [Dependencies](#dependencies-5)
- [Added](#added-5)
- [Changed](#changed-5)
- [Removed](#removed-5)
- [v1.35.0-alpha.2](#v1350-alpha2)
- [Downloads for v1.35.0-alpha.2](#downloads-for-v1350-alpha2)
- [Source Code](#source-code-6)
- [Client Binaries](#client-binaries-6)
- [Server Binaries](#server-binaries-6)
- [Node Binaries](#node-binaries-6)
- [Container Images](#container-images-6)
- [Changelog since v1.35.0-alpha.1](#changelog-since-v1350-alpha1)
- [Changes by Kind](#changes-by-kind-6)
- [Deprecation](#deprecation-1)
- [API Change](#api-change-3)
- [Feature](#feature-6)
- [Documentation](#documentation-1)
- [Bug or Regression](#bug-or-regression-6)
- [Other (Cleanup or Flake)](#other-cleanup-or-flake-5)
- [Dependencies](#dependencies-6)
- [Added](#added-6)
- [Changed](#changed-6)
- [Removed](#removed-6)
- [v1.35.0-alpha.1](#v1350-alpha1)
- [Downloads for v1.35.0-alpha.1](#downloads-for-v1350-alpha1)
- [Source Code](#source-code-7)
- [Client Binaries](#client-binaries-7)
- [Server Binaries](#server-binaries-7)
- [Node Binaries](#node-binaries-7)
- [Container Images](#container-images-7)
- [Changelog since v1.34.0](#changelog-since-v1340-1)
- [Changes by Kind](#changes-by-kind-7)
- [API Change](#api-change-4)
- [Feature](#feature-7)
- [Bug or Regression](#bug-or-regression-7)
- [Other (Cleanup or Flake)](#other-cleanup-or-flake-6)
- [Dependencies](#dependencies-7)
- [Added](#added-7)
- [Changed](#changed-7)
- [Removed](#removed-7)
<!-- END MUNGE: GENERATED_TOC -->
# v1.35.1
## Downloads for v1.35.1
### Source Code
filename | sha512 hash
-------- | -----------
[kubernetes.tar.gz](https://dl.k8s.io/v1.35.1/kubernetes.tar.gz) | 4fa3904bfc29fd3a5d50398437ea7ce0169dfd5f72907e6ea93c33767f6b12aae47cecd714f4cf6897ce8424ec678d6d2dc7ce7ef67f6f098310006ecf799154
[kubernetes-src.tar.gz](https://dl.k8s.io/v1.35.1/kubernetes-src.tar.gz) | f85a71b78fdbf7e50b4d96c94122aaee551ecd9fabe75ee0a7e4a8ad775fbc90fcc739999712193bbfe6d6aa61e42651e4e8c4f267b612233987f7e582d3a14d
### Client Binaries
filename | sha512 hash
-------- | -----------
[kubernetes-client-darwin-amd64.tar.gz](https://dl.k8s.io/v1.35.1/kubernetes-client-darwin-amd64.tar.gz) | f396d10f94feb611b685296df716ca7abef39e7ae289f4974071b2dcf9d62b4419f86458f58c7c134e018831c2b78d8cfc6df4f890a1b2ec46a2401fef45e30d
[kubernetes-client-darwin-arm64.tar.gz](https://dl.k8s.io/v1.35.1/kubernetes-client-darwin-arm64.tar.gz) | 630c1354ef80e59bcd8a0189bc6d9d8a31393cf75734bb6c787f8441c658a0a65aab0c1149ac3220c060afead46eda6293853e944757865c8b7c8719dec2eb8c
[kubernetes-client-linux-386.tar.gz](https://dl.k8s.io/v1.35.1/kubernetes-client-linux-386.tar.gz) | 21d160042740086dc2ade136ceb31654946d8e9d4a6c6f4a1f6f31ebb75f911af2b3bfe5ffd869210cb03cffe72463d3399e6e6b8a5182ca2b6f5513f5a14e6d
[kubernetes-client-linux-amd64.tar.gz](https://dl.k8s.io/v1.35.1/kubernetes-client-linux-amd64.tar.gz) | 51a45687e5cc04620673d92cc31308ccfc60fa4fd4e0836369b32d98841d4617343dfb899e6c9dd4c665e85bf1fe55402ae234481a6d6bd9275fa1d89cfc676e
[kubernetes-client-linux-arm.tar.gz](https://dl.k8s.io/v1.35.1/kubernetes-client-linux-arm.tar.gz) | b65d81ed23ad19277946f514d73513b6a92b81b9c3eb459d8a2dda3c22216aef9bdb7fc76f3e95972d3e35a3737c9c5a5cf71e1f31021da39fb04731acc8b883
[kubernetes-client-linux-arm64.tar.gz](https://dl.k8s.io/v1.35.1/kubernetes-client-linux-arm64.tar.gz) | 5f29e3c44b5f6c98278664a3ee702fc17ad8f3347353030458aa065c5e19e4ce3ce5f826cdfc91b12dfa6b427877885a22516485dc135c880d7d42a781a8df7e
[kubernetes-client-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.35.1/kubernetes-client-linux-ppc64le.tar.gz) | 8993cc5d0a0d2efb55123e18f2e4eba461ef9eba985fe5ec10263f65400222eabc2ad604e96e4797920f936f476e12df076e46a23b1077cda31c1c63b31367e8
[kubernetes-client-linux-s390x.tar.gz](https://dl.k8s.io/v1.35.1/kubernetes-client-linux-s390x.tar.gz) | 00f37b0a1ffba386edce70f4fc1d5fa068b33599e4480e743ce1577755103c8aa128227056414d84ba4a9846daa53f49cbd11229b2ff415aafcf392edd751778
[kubernetes-client-windows-386.tar.gz](https://dl.k8s.io/v1.35.1/kubernetes-client-windows-386.tar.gz) | c41af6b553943db31a1a1369952f334fffe82aa842b5a8fe07ae9fb83194b99dec873296a28c011d66362a7b1ef327716862ea3dd76fdd54649bb3ad0d337a6a
[kubernetes-client-windows-amd64.tar.gz](https://dl.k8s.io/v1.35.1/kubernetes-client-windows-amd64.tar.gz) | bfa6898b9c700e4675d8a5a188a89eff054f0f9e006ed92cfa6a07e938a137f4e41214fc9aaea5098ca5a922418bfb6b51849cc78e6c4fe71be7d49314e8bee9
[kubernetes-client-windows-arm64.tar.gz](https://dl.k8s.io/v1.35.1/kubernetes-client-windows-arm64.tar.gz) | 54e1e880fd696bae8127272bec4e5516422c1ff51feffffbb20198b93016b9c01e6601760641493f4f2cb36c6df1430072623c10d1bd949ebde861bec12bf080
### Server Binaries
filename | sha512 hash
-------- | -----------
[kubernetes-server-linux-amd64.tar.gz](https://dl.k8s.io/v1.35.1/kubernetes-server-linux-amd64.tar.gz) | 9fb232137d1549e4df83f1e1b900dcf8fb52d1626ba271f418b35cddf9402ba54b2185abd31b0c475cc79cf4e17448b1eadfe81ced5b6dc7ef85af389702e923
[kubernetes-server-linux-arm64.tar.gz](https://dl.k8s.io/v1.35.1/kubernetes-server-linux-arm64.tar.gz) | 63f13123e24b5dca0d460a8d2601f4edfb334d0aa56e555acb43c201e5634cf2d6e721557df984a2eff77ce09061e97ff68d2f412be4fdfbbd9c99a6a7f7551c
[kubernetes-server-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.35.1/kubernetes-server-linux-ppc64le.tar.gz) | 101c329c3ece18b2cef49b778d820706ff13381a2320bd56ae4c330d758c9b8e624b2ac9cee1c6272f0d97c7db30e96ba0c5984bce4a48f5db497afe519179b1
[kubernetes-server-linux-s390x.tar.gz](https://dl.k8s.io/v1.35.1/kubernetes-server-linux-s390x.tar.gz) | e65916720eea5b128e074a18c52b514505ab3d058a7fe147832a5f40a857c15d713698bfd8abf41068559fad64977036a5eaceabbe486be649486ce8e070cc86
### Node Binaries
filename | sha512 hash
-------- | -----------
[kubernetes-node-linux-amd64.tar.gz](https://dl.k8s.io/v1.35.1/kubernetes-node-linux-amd64.tar.gz) | ac544535074180b9616d3a93b0e13ce8a3f5ea2ff287b605f3d7e0afc2a16ed3cb633ddf6bdb179782f44e9a07c7db14899a942f0ab23bcfea7bbf56e08c63d4
[kubernetes-node-linux-arm64.tar.gz](https://dl.k8s.io/v1.35.1/kubernetes-node-linux-arm64.tar.gz) | d12d660ed1669549fe676ce7d38159325864cc23a628ce3f6f9c83f09a05c91274fb64df007bdbf5d32d640107025b2732e22c019e4d08ccdf2231afeed4562d
[kubernetes-node-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.35.1/kubernetes-node-linux-ppc64le.tar.gz) | ab08fe52f40dda20e25a3bc58dc19b1061195bf25a9d5ff509e08fb3fa73d18e65d509265468feaa8848b25457524740aabf2afd15b8c5ae8027ce084bbfea94
[kubernetes-node-linux-s390x.tar.gz](https://dl.k8s.io/v1.35.1/kubernetes-node-linux-s390x.tar.gz) | d56401c8cfc3fa462f7502f7fe4d7010964d515b4843de8aed9a4c31ec797feff276a0b4abfaca44051a145d97ccb5c08d09e33465d6992df3da7fedfba2a1ea
[kubernetes-node-windows-amd64.tar.gz](https://dl.k8s.io/v1.35.1/kubernetes-node-windows-amd64.tar.gz) | 30f0096ad831149cef4fcad17bbe9bf4e4f2b1a610d1981ed9aee0c73f9b9f7cba4dfd89643d916464cf6f62294265c633ae32015f740bc4e5a194448ba3b6d2
### Container Images
All container images are available as manifest lists and support the described
architectures. It is also possible to pull a specific architecture directly by
adding the "-$ARCH" suffix to the container image name.
name | architectures
---- | -------------
[registry.k8s.io/conformance:v1.35.1](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/conformance) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/conformance-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/conformance-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/conformance-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/conformance-s390x)
[registry.k8s.io/kube-apiserver:v1.35.1](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-apiserver) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-apiserver-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-apiserver-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-apiserver-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-apiserver-s390x)
[registry.k8s.io/kube-controller-manager:v1.35.1](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-controller-manager) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-controller-manager-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-controller-manager-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-controller-manager-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-controller-manager-s390x)
[registry.k8s.io/kube-proxy:v1.35.1](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-proxy) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-proxy-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-proxy-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-proxy-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-proxy-s390x)
[registry.k8s.io/kube-scheduler:v1.35.1](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-scheduler) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-scheduler-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-scheduler-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-scheduler-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-scheduler-s390x)
[registry.k8s.io/kubectl:v1.35.1](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kubectl) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kubectl-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kubectl-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kubectl-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kubectl-s390x)
## Changelog since v1.35.0
## Changes by Kind
### Feature
- Kubeadm: when patching a Node object do not exit early on unknown (non-allowlisted) API errors. Instead, always retry within the duration of the polling for getting and patching a Node object. ([#136072](https://github.com/kubernetes/kubernetes/pull/136072), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]
- Kubernetes is now built using Go 1.25.6 ([#136466](https://github.com/kubernetes/kubernetes/pull/136466), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing]
- Kubernetes is now built with Go 1.25.6 ([#136258](https://github.com/kubernetes/kubernetes/pull/136258), [@BenTheElder](https://github.com/BenTheElder)) [SIG Release]
### Bug or Regression
- DRA: when scheduling many pods very rapidly, sometimes the same device was allocated twice for different ResourceClaims due races between data processing in different goroutines. Depending on whether DRA drivers check for this during NodePrepareResources (they should, but maybe not all implement this properly), the second pod using the same device then failed to start until the first one is done or (worse) ran in parallel. ([#136567](https://github.com/kubernetes/kubernetes/pull/136567), [@pohly](https://github.com/pohly)) [SIG Node, Scheduling and Testing]
- Dropped archived dependency: Removed the deprecated and archived dependency: github.com/pkg/errors in favor of standard Go error handling.
- Updated to latest HNS version: hnslib is updated to work with the latest HNS APIs, including support for ModifyLoadBalancerPolicy, which allows updating existing load balancer policies instead of delete-and-recreate flows. ([#135843](https://github.com/kubernetes/kubernetes/pull/135843), [@princepereira](https://github.com/princepereira)) [SIG Network and Windows]
- Fixed SELinux warning controller not to emit events for completed pods. ([#136098](https://github.com/kubernetes/kubernetes/pull/136098), [@jsafrane](https://github.com/jsafrane)) [SIG Apps, Storage and Testing]
- Fixed a 1.35.0 regression by disabling the `SchedulerAsyncAPICalls` feature gate. The regression was in scheduler performance, triggered by API client throttling. ([#135904](https://github.com/kubernetes/kubernetes/pull/135904), [@macsko](https://github.com/macsko)) [SIG Scheduling]
- Fixed a panic in `kubectl exec` when the terminal size queue delegate is uninitialized. ([#136280](https://github.com/kubernetes/kubernetes/pull/136280), [@seekskyworld](https://github.com/seekskyworld)) [SIG CLI]
- Fixed an issue in the Windows kube-proxy (winkernel) where IPv4 and IPv6 Service load balancers could be incorrectly shared, causing broken dual-stack Service behavior. The kube-proxy now tracks load balancers per IP family, enabling correct support for PreferDualStack and RequireDualStack Services on Windows nodes. ([#136373](https://github.com/kubernetes/kubernetes/pull/136373), [@princepereira](https://github.com/princepereira)) [SIG Network and Windows]
- Fixed kubelet logging to properly respect verbosity levels. Previously, some debug/info messages using V().Error() would always be printed regardless of the configured log verbosity. ([#136432](https://github.com/kubernetes/kubernetes/pull/136432), [@thc1006](https://github.com/thc1006)) [SIG Node]
- Fixes a 1.29 regression in the apiserver_watch_events_sizes metric to report total outgoing watch traffic again ([#135815](https://github.com/kubernetes/kubernetes/pull/135815), [@mborsz](https://github.com/mborsz)) [SIG API Machinery]
- Fixes a 1.34 regression starting pods with environment variables with a value containing `$` followed by a multi-byte character ([#136491](https://github.com/kubernetes/kubernetes/pull/136491), [@AutuSnow](https://github.com/AutuSnow)) [SIG Architecture and Node]
- Fixes a 1.34+ regression in ipvs and winkernel kube-proxy backends; these are now reverted back to their
pre-1.34 behavior of regularly rechecking all of their rules even when no
Services or EndpointSlices change. ([#136122](https://github.com/kubernetes/kubernetes/pull/136122), [@danwinship](https://github.com/danwinship)) [SIG Network, Testing and Windows]
- Kubeadm: fix a bug where kubeadm upgrade is failed if the content of the `kubeadm-flags.env` file is `KUBELET_KUBEADM_ARGS=""` ([#136131](https://github.com/kubernetes/kubernetes/pull/136131), [@carlory](https://github.com/carlory)) [SIG Cluster Lifecycle]
- Kubeadm: waiting for etcd learner member to be started before promoting during 'kubeadm join' ([#136348](https://github.com/kubernetes/kubernetes/pull/136348), [@dlipovetsky](https://github.com/dlipovetsky)) [SIG Cluster Lifecycle]
- Kubeadm: when applying the overrides provided by the user using "extraArgs", do not sort the resulted list of arguments alpha-numerically. Instead, only sort the list of default arguments and keep the list of overrides unsorted. This allows finer control for flags which have an order that matters, such as, "--service-account-issuer" for kube-apiserver. ([#135853](https://github.com/kubernetes/kubernetes/pull/135853), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]
- Kubelet(dra): correctly handles multiple ResourceClaims even if one is already prepared ([#136463](https://github.com/kubernetes/kubernetes/pull/136463), [@rogowski-piotr](https://github.com/rogowski-piotr)) [SIG Node and Testing]
- StatefulSets should always count `.status.availableReplicas` at the correct time without a delay. This results in faster progress of StatefulSet rollout. ([#136097](https://github.com/kubernetes/kubernetes/pull/136097), [@atiratree](https://github.com/atiratree)) [SIG Apps]
### Other (Cleanup or Flake)
- NONE
NONE ([#136634](https://github.com/kubernetes/kubernetes/pull/136634), [@dims](https://github.com/dims)) [SIG Network and Testing]
## Dependencies
### Added
_Nothing has changed._
### Changed
- github.com/Microsoft/hnslib: [v0.1.1 → v0.1.2](https://github.com/Microsoft/hnslib/compare/v0.1.1...v0.1.2)
### Removed
_Nothing has changed._
# v1.35.0
[Documentation](https://docs.k8s.io)
## Downloads for v1.35.0
### Source Code
filename | sha512 hash
-------- | -----------
[kubernetes.tar.gz](https://dl.k8s.io/v1.35.0/kubernetes.tar.gz) | `478ae8101675fa873a3ad84c81c91604e70bdb947e3379564907916c8a3a1d4a0b7d2077e1d2701f18f2509a6fce0997d93a441ef6d1a17a2e90fdffdd4c13ec`
[kubernetes-src.tar.gz](https://dl.k8s.io/v1.35.0/kubernetes-src.tar.gz) | `dc9fc72736999bc40fdf28a7668c8e183effe135893c98f0773b0a50fe018c2f49156026c490f201def57645bf6172c81e07c1c6cb2d80bfb6b246c94fb4c5aa`
### Client Binaries
filename | sha512 hash
-------- | -----------
[kubernetes-client-darwin-amd64.tar.gz](https://dl.k8s.io/v1.35.0/kubernetes-client-darwin-amd64.tar.gz) | `e7d510566442afd96dd3759764b573719469bb0ef00086d536bd7af0b8af29ddf150e6ece5ae95856daaaf7f2454f45755ac300648c692508e445aca7a8bd0de`
[kubernetes-client-darwin-arm64.tar.gz](https://dl.k8s.io/v1.35.0/kubernetes-client-darwin-arm64.tar.gz) | `cd3b216a5418ef2eb00aeb74bf0ebae34c41aa16419bd5bbe5cbb5d394570a38f54c88294aaa5bd7c27ef28c4f1aee2b5658beb4cd025258b6bbd522e8d499bc`
[kubernetes-client-linux-386.tar.gz](https://dl.k8s.io/v1.35.0/kubernetes-client-linux-386.tar.gz) | `50250aefecc03afe5a6b1be8dffbd58efb4814fed2aae299ac3bbd3b32a40b47697897bafcc36f31f226c5fd2b185cb970e64674aa9ee60412e122128487598d`
[kubernetes-client-linux-amd64.tar.gz](https://dl.k8s.io/v1.35.0/kubernetes-client-linux-amd64.tar.gz) | `a1469924896411ab3365628b301d2bbacaf235908cea47308498c9c351a17462ab4154928ef6f91cee849ff52600e394f2abe70f5165371ccfe6638446699d2c`
[kubernetes-client-linux-arm.tar.gz](https://dl.k8s.io/v1.35.0/kubernetes-client-linux-arm.tar.gz) | `df921ad2702a8bc90b8797d97e5ddba5d7d077d18f3b9e53a4594a432f628f52842ee5e26f70c16a82b4decf7c72cba1d04c43163c85026f9b0610fbde63e183`
[kubernetes-client-linux-arm64.tar.gz](https://dl.k8s.io/v1.35.0/kubernetes-client-linux-arm64.tar.gz) | `0b332e13c9bb52093f57c4f2ae4ab103bc7f51e4c5dad2859300e7ece09ef303a9345ed3aea4d050b287f52dd8ed8d7cf9185c9e40ea5cc900c8d34e63eec83d`
[kubernetes-client-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.35.0/kubernetes-client-linux-ppc64le.tar.gz) | `07789dc2ec7e8439774d88437f0b1ee35d6b60a8bd23055b93dcf1461de5ae69aba0e0e99a0202892f6c70217388646e1592b087f048bb57e5ab10b1b0dfa956`
[kubernetes-client-linux-s390x.tar.gz](https://dl.k8s.io/v1.35.0/kubernetes-client-linux-s390x.tar.gz) | `6563b8d452d29e7f155563294478e39dba7311dd086cf9fb0bc62c94a139b7f5d81a5716880d8072cd864948988e68f2dcd607a8ec79e339224ed5f4bcd48dc9`
[kubernetes-client-windows-386.tar.gz](https://dl.k8s.io/v1.35.0/kubernetes-client-windows-386.tar.gz) | `522f96799bdaacdd1d10ab4c3a58d8fd86e45e6326c3b6538cc079ca951c28916bd1c8c9bb1d98f6257be0ba1ed91e97614407fe11a1c4bbea2c2052ba0feca7`
[kubernetes-client-windows-amd64.tar.gz](https://dl.k8s.io/v1.35.0/kubernetes-client-windows-amd64.tar.gz) | `149145263071c8e1a4d73efe4d1c868286e7cea37629f1c076d2f2683e6b63fb3387d867f3283c9950a3b5b830f005019fa03874e4d53dfa9ad489aaaa9f535b`
[kubernetes-client-windows-arm64.tar.gz](https://dl.k8s.io/v1.35.0/kubernetes-client-windows-arm64.tar.gz) | `2cffd56e01eaf24ace819cf9f4ef94187185978c8fa1192fd9d47236824ccfe745fe649d38c4351a016e0406bcfd1944178cb93af67b5e69015c04ab2ca5bf7c`
### Server Binaries
filename | sha512 hash
-------- | -----------
[kubernetes-server-linux-amd64.tar.gz](https://dl.k8s.io/v1.35.0/kubernetes-server-linux-amd64.tar.gz) | `23af53c49de841a0d5c19d9525d820cecc9d55367c132296a5f381d051438bf06dcddff3d0236df8ba6011a6aa5d0ffc31960d277c7f53a0ad98e66d6f8d6a0a`
[kubernetes-server-linux-arm64.tar.gz](https://dl.k8s.io/v1.35.0/kubernetes-server-linux-arm64.tar.gz) | `fd245273c6ace20abc893f868d678c4a24c0dbe7d5340087f852d245e59329e66f79afce489dc1b396908d2f005b132eca8d15a7664508fe923627bb2eddee18`
[kubernetes-server-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.35.0/kubernetes-server-linux-ppc64le.tar.gz) | `68c48db8537c0470d2245740b8cdf3225efafc48a96646e369137e35931bd43324caf1394ee4b31774b0f43d44e6a4eaa5976186248a114d0e0feb2cb8953edc`
[kubernetes-server-linux-s390x.tar.gz](https://dl.k8s.io/v1.35.0/kubernetes-server-linux-s390x.tar.gz) | `dd71c4b5ab213452d41059772de3b0db2c71fc6f958280694b2c1b20151bded5b6beb1b03a40dc683ce2d587e9a8bbf3bf486b3965064945803af4f10557558e`
### Node Binaries
filename | sha512 hash
-------- | -----------
[kubernetes-node-linux-amd64.tar.gz](https://dl.k8s.io/v1.35.0/kubernetes-node-linux-amd64.tar.gz) | `179278fecb65d246443f58cef00ca2f2a9d0ac6fbdb310994f0ac7fca249f7bdc1c79ea7f3e5455c1e2d2460f5447d006bfa579f97b502ee7034b2a1927f934a`
[kubernetes-node-linux-arm64.tar.gz](https://dl.k8s.io/v1.35.0/kubernetes-node-linux-arm64.tar.gz) | `01178703c84e0f671770e53024e3cc53f540c0cf93b0804d35884a777c3e3bc44c44d62b6fd25204348986fa589969a9255c0ef04235a0bb9d5560b09867aa0b`
[kubernetes-node-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.35.0/kubernetes-node-linux-ppc64le.tar.gz) | `05d1ae963d5c4a382d380cb4f4cdfa924fa8a311953b5eaefe66b8696cebf14bffb13bda8ea784ca5fa1dd073c82ee148faa9a50911449cefad16fe2e800d7c1`
[kubernetes-node-linux-s390x.tar.gz](https://dl.k8s.io/v1.35.0/kubernetes-node-linux-s390x.tar.gz) | `b7501e91153d062c7c545ef9900faf9b29826b6ff5ec5320f6a799d3d3b479f6ae79092909a1905e055b72dd540a9c8fb02b2d0655f6957cd0b4b7b2e9c18909`
[kubernetes-node-windows-amd64.tar.gz](https://dl.k8s.io/v1.35.0/kubernetes-node-windows-amd64.tar.gz) | `f54c606e8ecc29b4ba4ef4570f679352f66cbae1f1bd4f49db5e18227b00ed0e6d8dd47422390fd2a3b87d837cf39dae58a260208096169a3aabef9e874c7586`
### Container Images
All container images are available as manifest lists and support the described
architectures. It is also possible to pull a specific architecture directly by
adding the "-$ARCH" suffix to the container image name.
name | architectures
---- | -------------
[registry.k8s.io/conformance:v1.35.0](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/conformance) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/conformance-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/conformance-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/conformance-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/conformance-s390x)
[registry.k8s.io/kube-apiserver:v1.35.0](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-apiserver) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-apiserver-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-apiserver-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-apiserver-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-apiserver-s390x)
[registry.k8s.io/kube-controller-manager:v1.35.0](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-controller-manager) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-controller-manager-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-controller-manager-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-controller-manager-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-controller-manager-s390x)
[registry.k8s.io/kube-proxy:v1.35.0](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-proxy) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-proxy-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-proxy-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-proxy-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-proxy-s390x)
[registry.k8s.io/kube-scheduler:v1.35.0](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-scheduler) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-scheduler-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-scheduler-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-scheduler-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-scheduler-s390x)
[registry.k8s.io/kubectl:v1.35.0](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kubectl) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kubectl-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kubectl-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kubectl-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kubectl-s390x)
## Changelog since v1.34.0
## Urgent Upgrade Notes
### (No, really, you MUST read this before you upgrade)
- ACTION REQUIRED:
Removed the `--pod-infra-container-image` flag from `kubelet` command line. For `non-kubeadm` clusters, users must manually remove this flag from their `kubelet` configuration to prevent startup failures before upgrading `kubelet`. For `kubeadm` clusters, if users pass extra arguments to the `kubelet` like `--pod-infra-container-image`, it will be written to the `kubelet` env file during the `init` phase. `kubeadm` does not remove it during the `init` or `join` phase, so users must manually remove it from `extraArgs` in the `kubelet` configuration file. ([#133779](https://github.com/kubernetes/kubernetes/pull/133779), [@carlory](https://github.com/carlory))
- ACTION REQUIRED:
vendor: Updated `k8s.io/system-validators` to `v1.12.1`. The cgroups validator now throws an error instead of a warning if cgroups v1 is detected on the host and the provided KubeletVersion is `v1.35` or newer.
kubeadm: Started using `k8s.io/system-validators` `v1.12.1` in `kubeadm` `v1.35`. During `kubeadm init`, `kubeadm join`, and `kubeadm upgrade`, the SystemVerification preflight check throws an error if cgroups v1 is detected and the detected `kubelet` version is `v1.35` or newer. For older versions of `kubelet`, a preflight warning is displayed.
To allow cgroups v1 with `kubeadm` and `kubelet` version `v1.35` or newer, you must:
- Ignore the error from the SystemVerification preflight check by `kubeadm`.
- Edit the `kube-system/kubelet-config` ConfigMap and add the `failCgroupV1: false` field before upgrading. ([#134744](https://github.com/kubernetes/kubernetes/pull/134744), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle and Node]
## Changes by Kind
### Deprecation
- ACTION REQUIRED: `failCgroupV1` will be set to true from 1.35.
This means that nodes will not start on a cgroup v1 by default. This puts cgroup v1 into a deprecated state. ([#134298](https://github.com/kubernetes/kubernetes/pull/134298), [@kannon92](https://github.com/kannon92))
- Marked `ipvs` mode in kube-proxy as deprecated, which will be removed in a future version of Kubernetes. Users are encouraged to migrate to `nftables`. ([#134539](https://github.com/kubernetes/kubernetes/pull/134539), [@adrianmoisey](https://github.com/adrianmoisey))
### API Change
- Added `ObservedGeneration` to CustomResourceDefinition conditions. ([#134984](https://github.com/kubernetes/kubernetes/pull/134984), [@michaelasp](https://github.com/michaelasp))
- Added `WithOrigin` within `apis/core/validation` with adjusted tests. ([#132825](https://github.com/kubernetes/kubernetes/pull/132825), [@PatrickLaabs](https://github.com/PatrickLaabs))
- Added scoring for the prioritized list feature so nodes that best satisfy the highest-ranked subrequests were chosen. ([#134711](https://github.com/kubernetes/kubernetes/pull/134711), [@mortent](https://github.com/mortent)) [SIG Node, Scheduling and Testing]
- Added the `--min-compatibility-version` flag to `kube-apiserver`, `kube-controller-manager`, and `kube-scheduler`. ([#133980](https://github.com/kubernetes/kubernetes/pull/133980), [@siyuanfoundation](https://github.com/siyuanfoundation)) [SIG API Machinery, Architecture, Cluster Lifecycle, Etcd, Scheduling and Testing]
- Added the `StorageVersionMigration` `v1beta1` API and removed the `v1alpha1` API.
ACTION REQUIRED: The `v1alpha1` API is no longer supported. Users must remove any `v1alpha1` resources before upgrading. ([#134784](https://github.com/kubernetes/kubernetes/pull/134784), [@michaelasp](https://github.com/michaelasp)) [SIG API Machinery, Apps, Auth, Etcd and Testing]
- Added validation to ensure `log-flush-frequency` is a positive value, returning an error instead of causing a panic. ([#133540](https://github.com/kubernetes/kubernetes/pull/133540), [@BenTheElder](https://github.com/BenTheElder)) [SIG Architecture, Instrumentation, Network and Node]
- All containers are restarted when a source container in a restart policy rule exits. This alpha feature is gated behind `RestartAllContainersOnContainerExit`. ([#134345](https://github.com/kubernetes/kubernetes/pull/134345), [@yuanwang04](https://github.com/yuanwang04)) [SIG Apps, Node and Testing]
- CSI drivers can now opt in to receive service account tokens via the secrets field instead of volume context by setting `spec.serviceAccountTokenInSecrets: true` in the CSIDriver object. This prevents tokens from being exposed in logs and other outputs. The feature is gated by the `CSIServiceAccountTokenSecrets` feature gate (beta in `v1.35`). ([#134826](https://github.com/kubernetes/kubernetes/pull/134826), [@aramase](https://github.com/aramase)) [SIG API Machinery, Auth, Storage and Testing]
- Changed kuberc configuration schema. Two new optional fields added to kuberc configuration, `credPluginPolicy` and `credPluginAllowlist`. This is documented in [KEP-3104](https://github.com/kubernetes/enhancements/blob/master/keps/sig-cli/3104-introduce-kuberc/README.md#allowlist-design-details) and documentation is added to the website by [kubernetes/website#52877](https://github.com/kubernetes/website/pull/52877) ([#134870](https://github.com/kubernetes/kubernetes/pull/134870), [@pmengelbert](https://github.com/pmengelbert)) [SIG API Machinery, Architecture, Auth, CLI, Instrumentation and Testing]
- DRA device taints: `DeviceTaintRule` status provides information about the rule, including whether Pods still need to be evicted (`EvictionInProgress` condition). The newly added `None` effect can be used to preview what a `DeviceTaintRule` would do if it used the `NoExecute` effect and to taint devices (`device health`) without immediately affecting scheduling or running Pods. ([#134152](https://github.com/kubernetes/kubernetes/pull/134152), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, Node, Release, Scheduling and Testing]
- DRA: The `DynamicResourceAllocation` feature gate for the core functionality (GA in `v1.34`) has now been locked to enabled-by-default and cannot be disabled anymore. ([#134452](https://github.com/kubernetes/kubernetes/pull/134452), [@pohly](https://github.com/pohly)) [SIG Auth, Node, Scheduling and Testing]
- Enabled `kubectl get -o kyaml` by default. To disable it, set `KUBECTL_KYAML=false`. ([#133327](https://github.com/kubernetes/kubernetes/pull/133327), [@thockin](https://github.com/thockin))
- Enabled in-place resizing of pod-level resources.
- Added `Resources` in `PodStatus` to capture resources set in the pod-level cgroup.
- Added `AllocatedResources` in `PodStatus` to capture resources requested in the `PodSpec`. ([#132919](https://github.com/kubernetes/kubernetes/pull/132919), [@ndixita](https://github.com/ndixita)) [SIG API Machinery, Apps, Architecture, Auth, CLI, Instrumentation, Node, Scheduling and Testing]
- Enabled the `NominatedNodeNameForExpectation` feature in kube-scheduler by default.
- Enabled the `ClearingNominatedNodeNameAfterBinding` feature in kube-apiserver by default. ([#135103](https://github.com/kubernetes/kubernetes/pull/135103), [@ania-borowiec](https://github.com/ania-borowiec)) [SIG API Machinery, Apps, Architecture, Auth, Autoscaling, CLI, Cloud Provider, Cluster Lifecycle, Etcd, Instrumentation, Network, Node, Scheduling, Storage and Testing]
- Enhanced discovery responses to merge API groups and resources from all peer apiservers when the `UnknownVersionInteroperabilityProxy` feature is enabled. ([#133648](https://github.com/kubernetes/kubernetes/pull/133648), [@richabanker](https://github.com/richabanker)) [SIG API Machinery, Auth, Cloud Provider, Node, Scheduling and Testing]
- Extended `core/v1` `Toleration` to support numeric comparison operators (`Gt`,`Lt`). ([#134665](https://github.com/kubernetes/kubernetes/pull/134665), [@helayoty](https://github.com/helayoty)) [SIG API Machinery, Apps, Node, Scheduling, Testing and Windows]
- Feature gate dependencies are now explicit, and validated at startup. A feature can no longer be enabled if it depends on a disabled feature. In particular, this means that `AllAlpha=true` will no longer work without enabling disabled-by-default beta features that are depended on (either with `AllBeta=true` or explicitly enumerating the disabled dependencies). ([#133697](https://github.com/kubernetes/kubernetes/pull/133697), [@tallclair](https://github.com/tallclair)) [SIG API Machinery, Architecture, Cluster Lifecycle and Node]
- Generated OpenAPI model packages for API types into `zz_generated.model_name.go` files, accessible via the `OpenAPIModelName()` function. This allows API authors to declare desired OpenAPI model packages instead of relying on the Go package path of API types. ([#131755](https://github.com/kubernetes/kubernetes/pull/131755), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery, Apps, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Scheduling, Storage and Testing]
- Implemented constrained impersonation as described in [KEP-5284](https://kep.k8s.io/5284). ([#134803](https://github.com/kubernetes/kubernetes/pull/134803), [@enj](https://github.com/enj)) [SIG API Machinery, Auth and Testing]
- Introduced a new declarative validation tag `+k8s:customUnique` to control listmap uniqueness. ([#134279](https://github.com/kubernetes/kubernetes/pull/134279), [@yongruilin](https://github.com/yongruilin)) [SIG API Machinery and Auth]
- Introduced a structured and versioned `v1alpha1` response for the `statusz` endpoint. ([#134313](https://github.com/kubernetes/kubernetes/pull/134313), [@richabanker](https://github.com/richabanker)) [SIG API Machinery, Architecture, Instrumentation, Network, Node, Scheduling and Testing]
- Introduced a structured and versioned `v1alpha1` response format for the `flagz` endpoint. ([#134995](https://github.com/kubernetes/kubernetes/pull/134995), [@yongruilin](https://github.com/yongruilin)) [SIG API Machinery, Architecture, Instrumentation, Network, Node, Scheduling and Testing]
- Introduced the GangScheduling kube-scheduler plugin to support "all-or-nothing" scheduling using the `scheduling.k8s.io/v1alpha1` Workload API. ([#134722](https://github.com/kubernetes/kubernetes/pull/134722), [@macsko](https://github.com/macsko)) [SIG API Machinery, Apps, Auth, CLI, Etcd, Scheduling and Testing]
- Introduced the Node Declared Features capability (alpha), which includes:
- A new `Node.Status.DeclaredFeatures` field for publishing node-specific features.
- A `component-helpers` library for feature registration and inference.
- A `NodeDeclaredFeatures` scheduler plugin to match pods with nodes that provide required features.
- A `NodeDeclaredFeatureValidator` admission plugin to validate pod updates against a node's declared features. ([#133389](https://github.com/kubernetes/kubernetes/pull/133389), [@pravk03](https://github.com/pravk03)) [SIG API Machinery, Apps, Node, Release, Scheduling and Testing]
- Introduced the `scheduling.k8s.io/v1alpha1` Workload API to express workload-level scheduling requirements and allow the kube-scheduler to act on them. ([#134564](https://github.com/kubernetes/kubernetes/pull/134564), [@macsko](https://github.com/macsko)) [SIG API Machinery, Apps, CLI, Etcd, Scheduling and Testing]
- Introduced the alpha `MutableSchedulingDirectivesForSuspendedJobs` feature gate (disabled by default), which allows mutating a Job's scheduling directives while the Job is suspended.
It also updates the Job controller to clears the `status.startTime` field for suspended Jobs. ([#135104](https://github.com/kubernetes/kubernetes/pull/135104), [@mimowo](https://github.com/mimowo)) [SIG Apps and Testing]
- Kube-apiserver: Fixed a `v1.34` regression in `CustomResourceDefinition` handling that incorrectly warned about unrecognized formats on number and integer properties. ([#133896](https://github.com/kubernetes/kubernetes/pull/133896), [@yongruilin](https://github.com/yongruilin)) [SIG API Machinery, Apps, Architecture, Auth, CLI, Cloud Provider, Contributor Experience, Network, Node and Scheduling]
- Kube-apiserver: Fixed a possible panic validating a custom resource whose `CustomResourceDefinition` indicates a status subresource exists, but which does not define a `status` property in the `openAPIV3Schema`. ([#133721](https://github.com/kubernetes/kubernetes/pull/133721), [@fusida](https://github.com/fusida)) [SIG API Machinery, Apps, Architecture, Auth, Autoscaling, CLI, Cloud Provider, Cluster Lifecycle, Etcd, Instrumentation, Network, Node, Release, Scheduling, Storage and Testing]
- Kubernetes API Go types removed runtime use of the `github.com/gogo/protobuf` library, and are no longer registered into the global gogo type registry. Kubernetes API Go types were not suitable for use with the `google.golang.org/protobuf` library, and no longer implement `ProtoMessage()` by default to avoid accidental incompatible use. If removal of these marker methods impacts your use, it can be re-enabled for one more release with a `kubernetes_protomessage_one_more_release` build tag, but will be removed in `v1.36`. ([#134256](https://github.com/kubernetes/kubernetes/pull/134256), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Apps, Architecture, Auth, CLI, Cluster Lifecycle, Instrumentation, Network, Node, Scheduling and Storage]
- Made node affinity in Persistent Volume mutable. ([#134339](https://github.com/kubernetes/kubernetes/pull/134339), [@huww98](https://github.com/huww98)) [SIG API Machinery, Apps and Node]
- Moved the `ImagePullIntent` and `ImagePulledRecord` objects used by the kubelet to track image pulls to the `v1beta1` API version. ([#132579](https://github.com/kubernetes/kubernetes/pull/132579), [@stlaz](https://github.com/stlaz)) [SIG Auth and Node]
- Pod resize now only allows CPU and memory resources; other resource types are forbidden. ([#135084](https://github.com/kubernetes/kubernetes/pull/135084), [@tallclair](https://github.com/tallclair)) [SIG Apps, Node and Testing]
- Prevented Pods from being scheduled onto nodes that lack the required CSI driver. ([#135012](https://github.com/kubernetes/kubernetes/pull/135012), [@gnufied](https://github.com/gnufied)) [SIG API Machinery, Scheduling, Storage and Testing]
- Promoted HPA configurable tolerance to beta. The `HPAConfigurableTolerance` feature gate has now been enabled by default. ([#133128](https://github.com/kubernetes/kubernetes/pull/133128), [@jm-franc](https://github.com/jm-franc)) [SIG API Machinery and Autoscaling]
- Promoted ReplicaSet and Deployment `.status.terminatingReplicas` tracking to beta. The `DeploymentReplicaSetTerminatingReplicas` feature gate is now enabled by default. ([#133087](https://github.com/kubernetes/kubernetes/pull/133087), [@atiratree](https://github.com/atiratree)) [SIG API Machinery, Apps and Testing]
- Promoted `PodObservedGenerationTracking` to GA. ([#134948](https://github.com/kubernetes/kubernetes/pull/134948), [@natasha41575](https://github.com/natasha41575)) [SIG API Machinery, Apps, Node, Scheduling and Testing]
- Promoted the `JobManagedBy` feature to general availability. The `JobManagedBy` feature gate was locked to `true` and will be removed in a future Kubernetes release. ([#135080](https://github.com/kubernetes/kubernetes/pull/135080), [@dejanzele](https://github.com/dejanzele)) [SIG API Machinery, Apps and Testing]
- Promoted the `MaxUnavailableStatefulSet` feature to beta and enabling it by default. ([#133153](https://github.com/kubernetes/kubernetes/pull/133153), [@helayoty](https://github.com/helayoty)) [SIG API Machinery and Apps]
- Removed the `StrictCostEnforcementForVAP` and `StrictCostEnforcementForWebhooks` feature gates, which were locked since `v1.32`. ([#134994](https://github.com/kubernetes/kubernetes/pull/134994), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Auth, Node and Testing]
- Scheduler: Added the `bindingTimeout` argument to the DynamicResources plugin configuration, allowing customization of the wait duration in `PreBind` for device binding conditions.
Defaults to 10 minutes when `DRADeviceBindingConditions` and `DRAResourceClaimDeviceStatus` are both enabled. ([#134905](https://github.com/kubernetes/kubernetes/pull/134905), [@fj-naji](https://github.com/fj-naji)) [SIG Node and Scheduling]
- The DRA device taints and toleration feature received a separate feature gate, `DRADeviceTaintRules`, which controlled support for `DeviceTaintRules`. This allowed disabling it while keeping `DRADeviceTaints` enabled so that tainting via `ResourceSlices` continued to work. ([#135068](https://github.com/kubernetes/kubernetes/pull/135068), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, Node, Scheduling and Testing]
- The Pod Certificates feature moved to beta. The `PodCertificateRequest` feature gate is set disabled by default. To use the feature, users must enable the certificates API groups in `v1beta1` and enable the `PodCertificateRequest` feature gate. The `UserAnnotations` field was added to the `PodCertificateProjection` API and the corresponding `UnverifiedUserAnnotations` field was added to the `PodCertificateRequest` API. ([#134624](https://github.com/kubernetes/kubernetes/pull/134624), [@yt2985](https://github.com/yt2985)) [SIG API Machinery, Apps, Auth, Etcd, Instrumentation, Node and Testing]
- The `KubeletEnsureSecretPulledImages` feature was promoted to Beta and enabled by default. ([#135228](https://github.com/kubernetes/kubernetes/pull/135228), [@aramase](https://github.com/aramase)) [SIG Auth, Node and Testing]
- The `PreferSameZone` and `PreferSameNode` values for the Service
`trafficDistribution` field graduated to general availability. The
`PreferClose` value is now deprecated in favor of the more explicit
`PreferSameZone`. ([#134457](https://github.com/kubernetes/kubernetes/pull/134457), [@danwinship](https://github.com/danwinship)) [SIG API Machinery, Apps, Network and Testing]
- Updated `ResourceQuota` to count device class requests within a `ResourceClaim` as two additional quotas when the `DRAExtendedResource` feature is enabled:
- `requests.deviceclass.resource.k8s.io/<deviceclass>` is charged based on the worst-case number of devices requested.
- Device classes mapping to an extended resource now consume `requests.<extended resource name>`. ([#134210](https://github.com/kubernetes/kubernetes/pull/134210), [@yliaog](https://github.com/yliaog)) [SIG API Machinery, Apps, Node, Scheduling and Testing]
- Updated storage version for `MutatingAdmissionPolicy` to `v1beta1`. ([#133715](https://github.com/kubernetes/kubernetes/pull/133715), [@cici37](https://github.com/cici37)) [SIG API Machinery, Etcd and Testing]
- Updated the Partitionable Devices feature to support referencing counter sets across ResourceSlices within the same resource pool. Devices from incomplete pools were no longer considered for allocation. This change introduced backwards-incompatible updates to the alpha feature, requiring any ResourceSlices using it to be removed before upgrading or downgrading between v1.34 and v1.35. ([#134189](https://github.com/kubernetes/kubernetes/pull/134189), [@mortent](https://github.com/mortent)) [SIG API Machinery, Node, Scheduling and Testing]
- Upgraded the `PodObservedGenerationTracking` feature to beta in `v1.34` and removed the alpha version description from the OpenAPI specification. ([#133883](https://github.com/kubernetes/kubernetes/pull/133883), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085))
### Feature
- Added `k8s-short-name` and `k8s-long-name` format validation tags to enforce DNS label and DNS subdomain compliance. ([#133894](https://github.com/kubernetes/kubernetes/pull/133894), [@lalitc375](https://github.com/lalitc375))
- Added `kubectl kuberc view` and `kubectl kuberc set` commands to perform operations against the `kuberc` file. ([#135003](https://github.com/kubernetes/kubernetes/pull/135003), [@ardaguclu](https://github.com/ardaguclu)) [SIG CLI and Testing]
- Added `kubelet` stress test for pod cleanup when rejection due to `VolumeAttachmentLimitExceeded`. ([#133357](https://github.com/kubernetes/kubernetes/pull/133357), [@torredil](https://github.com/torredil)) [SIG Node and Storage]
- Added `paths` section to kubelet `statusz` endpoint. ([#133239](https://github.com/kubernetes/kubernetes/pull/133239), [@Peac36](https://github.com/Peac36))
- Added a `source` label to the `resourceclaim_controller_resource_claims` metric.
Added the `scheduler_resourceclaim_creates_total` metric for `DRAExtendedResource`. ([#134523](https://github.com/kubernetes/kubernetes/pull/134523), [@bitoku](https://github.com/bitoku)) [SIG Apps, Instrumentation, Node and Scheduling]
- Added a counter metric `kubelet_image_manager_ensure_image_requests_total{present_locally, pull_policy, pull_required}` that exposes details about `kubelet` ensuring an image exists on the node. ([#132644](https://github.com/kubernetes/kubernetes/pull/132644), [@stlaz](https://github.com/stlaz)) [SIG Auth and Node]
- Added additional event emissions during Pod resizing to provide clearer visibility when a Pods resize status changes. ([#134825](https://github.com/kubernetes/kubernetes/pull/134825), [@natasha41575](https://github.com/natasha41575))
- Added configurable per-device health check timeouts to the DRA health monitoring API. ([#135147](https://github.com/kubernetes/kubernetes/pull/135147), [@harche](https://github.com/harche)) [SIG Node]
- Added metrics for the `MaxUnavailable` feature in `StatefulSet`. ([#130951](https://github.com/kubernetes/kubernetes/pull/130951), [@Edwinhr716](https://github.com/Edwinhr716)) [SIG Apps and Instrumentation]
- Added paths section to scheduler `statusz` endpoint. ([#132606](https://github.com/kubernetes/kubernetes/pull/132606), [@Peac36](https://github.com/Peac36)) [SIG API Machinery, Architecture, Instrumentation, Network, Node, Scheduling and Testing]
- Added remote runtime and image `Close()` method to be able to close the connection. ([#133211](https://github.com/kubernetes/kubernetes/pull/133211), [@saschagrunert](https://github.com/saschagrunert)) [SIG Node]
- Added support for tracing in `kubectl` with the `--profile=trace` flag. ([#134709](https://github.com/kubernetes/kubernetes/pull/134709), [@tchap](https://github.com/tchap))
- Added support for validating UUID format. ([#133948](https://github.com/kubernetes/kubernetes/pull/133948), [@lalitc375](https://github.com/lalitc375))
- Added the `-n` flag as a shorthand for `--namespace` in the `kubectl config set-context` command. ([#134384](https://github.com/kubernetes/kubernetes/pull/134384), [@tchap](https://github.com/tchap)) [SIG CLI and Testing]
- Added the `ChangeContainerStatusOnKubeletRestart` feature gate, which defaults to disabled. When the feature gate is disabled, `kubelet` does not change the Pod status upon restart, and Pods do not re-run startup probes after the `kubelet` restarts. ([#134746](https://github.com/kubernetes/kubernetes/pull/134746), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG Node and Testing]
- Added the `CloudControllerManagerWatchBasedRoutesReconciliation` feature gate. ([#131220](https://github.com/kubernetes/kubernetes/pull/131220), [@lukasmetzner](https://github.com/lukasmetzner)) [SIG API Machinery and Cloud Provider]
- Added the `UserNamespacesHostNetworkSupport` feature gate. This gate is disabled by default, and when enabled, allowed `hostNetwork` pods to use user namespaces. ([#134893](https://github.com/kubernetes/kubernetes/pull/134893), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG Apps, Node and Testing]
- After fixing regressions detected in `v1.34`, the `SchedulerAsyncAPICalls` feature gate was re-enabled by default. ([#135059](https://github.com/kubernetes/kubernetes/pull/135059), [@macsko](https://github.com/macsko))
- Changed `WaitForNamedCacheSync` to `WaitForNamedCacheSyncWithContext`. ([#133904](https://github.com/kubernetes/kubernetes/pull/133904), [@aditigupta96](https://github.com/aditigupta96)) [SIG API Machinery, Apps, Auth and Network]
- DRA: the resource.k8s.io API now uses the v1 API version (introduced in 1.34) as default storage version. Downgrading to 1.33 is not supported. ([#133876](https://github.com/kubernetes/kubernetes/pull/133876), [@kei01234kei](https://github.com/kei01234kei)) [SIG API Machinery, Etcd and Testing]
- Enabled the `MutableCSINodeAllocatableCount` feature gate by default in beta. ([#134647](https://github.com/kubernetes/kubernetes/pull/134647), [@torredil](https://github.com/torredil))
- Enabled the `WatchListClient` feature gate. ([#134180](https://github.com/kubernetes/kubernetes/pull/134180), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery, Apps, Auth, CLI, Instrumentation, Node and Testing]
- Enabled the feature gate `ContainerRestartRules` by default. The `ContainerRestartRules` feature has been promoted to beta. Fixed a bug in this feature that caused probes to continue to run even if the container has terminated and is not restartable. ([#134631](https://github.com/kubernetes/kubernetes/pull/134631), [@yuanwang04](https://github.com/yuanwang04))
- Graduated the `PodTopologyLabelsAdmission` feature gate to Beta and enabled it by default.
Pods now receive `topology.kubernetes.io/zone` and `topology.kubernetes.io/region` labels automatically when their assigned Node has these labels. ([#135158](https://github.com/kubernetes/kubernetes/pull/135158), [@andrewsykim](https://github.com/andrewsykim))
- Graduated the fine-grained supplemental groups policy (KEP-3619) to GA. ([#135088](https://github.com/kubernetes/kubernetes/pull/135088), [@everpeace](https://github.com/everpeace)) [SIG Node and Testing]
- Graduated the image volume source feature to Beta and enabled it by default. ([#135195](https://github.com/kubernetes/kubernetes/pull/135195), [@haircommander](https://github.com/haircommander)) [SIG Apps, Instrumentation, Node and Testing]
- Implemented opportunistic batching (KEP-5598) to optimize scheduling for pods with identical scheduling requirements. ([#135231](https://github.com/kubernetes/kubernetes/pull/135231), [@bwsalmon](https://github.com/bwsalmon)) [SIG Node, Scheduling, Storage and Testing]
- Implemented scoring for DRA-backed extended resources. ([#134058](https://github.com/kubernetes/kubernetes/pull/134058), [@bart0sh](https://github.com/bart0sh)) [SIG Node, Scheduling and Testing]
- Improved throughput in the `real-FIFO` queue used by `informers` and `controllers` by adding batch handling for processing watch events. ([#132240](https://github.com/kubernetes/kubernetes/pull/132240), [@yue9944882](https://github.com/yue9944882)) [SIG API Machinery, Scheduling and Storage]
- Introduced end-to-end tests to verify component invariant metrics across the entire test suite. ([#133394](https://github.com/kubernetes/kubernetes/pull/133394), [@BenTheElder](https://github.com/BenTheElder))
- Introduced new kubelet metrics for the Ensure Secret Pulled Images KEP, including:
- `kubelet_imagemanager_ondisk_pullintents` for tracking pull intent records on disk
- `kubelet_imagemanager_ondisk_pulledrecords` for tracking pulled image records on disk
- `kubelet_imagemanager_image_mustpull_checks_total{result}` for counting image must-pull verification checks. ([#132812](https://github.com/kubernetes/kubernetes/pull/132812), [@stlaz](https://github.com/stlaz)) [SIG Auth and Node]
- Introduced the `--as-user-extra` persistent flag in `kubectl`, which allows passing extra arguments during impersonation. ([#134378](https://github.com/kubernetes/kubernetes/pull/134378), [@ardaguclu](https://github.com/ardaguclu)) [SIG CLI and Testing]
- K8s.io/apimachinery: Introduced a helper function to compare `resourceVersion` strings between two objects of the same resource. ([#134330](https://github.com/kubernetes/kubernetes/pull/134330), [@michaelasp](https://github.com/michaelasp)) [SIG API Machinery, Apps, Auth, Instrumentation, Network, Node, Scheduling, Storage and Testing]
- KEP-5440: Enabled support for resizing resources while a Job is suspended. This feature is alpha. ([#132441](https://github.com/kubernetes/kubernetes/pull/132441), [@kannon92](https://github.com/kannon92)) [SIG Apps and Testing]
- Kube-apiserver: Made the subresources `pods/exec`, `pods/attach`, and `pods/portforward` require `create` permission for both SPDY and Websocket API requests. Previously, SPDY requests required `create` permission, but Websocket requests only required `get` permission. This change is gated by the `AuthorizePodWebsocketUpgradeCreatePermission` feature-gate, which is enabled by default.
Before upgrading to 1.35, ensure any custom ClusterRoles and Roles intended to grant `pods/exec`, `pods/attach`, or `pods/portforward` permission include the `create` verb. ([#134577](https://github.com/kubernetes/kubernetes/pull/134577), [@seans3](https://github.com/seans3)) [SIG API Machinery, Auth, Node and Testing]
- Kubeadm: Added error printing during retries related to the `WaitForAllControlPlaneComponents` functionality at verbosity level 5. ([#134433](https://github.com/kubernetes/kubernetes/pull/134433), [@neolit123](https://github.com/neolit123))
- Kubeadm: Added the `HTTPEndpoints` field to `ClusterConfiguration.Etcd.ExternalEtcd` to configure HTTP endpoints for etcd communication in v1beta4. This separates HTTP traffic (e.g., `/metrics`, `/health`) from gRPC traffic, improving access control. Mirrors etcds `--listen-client-http-urls` behavior; if not set, the `Endpoints` field handles both traffic types. ([#134890](https://github.com/kubernetes/kubernetes/pull/134890), [@SataQiu](https://github.com/SataQiu))
- Kubeadm: Graduated the kubeadm-specific feature gate `ControlPlaneKubeletLocalMode` to GA and locked it to enabled by default. To opt out, patch the `server` field in `/etc/kubernetes/kubelet.conf`. Deprecated the subphase of `kubeadm join phase control-plane-join` called `etcd`, which is now hidden and replaced by subphase with identical functionality `etcd-join`. The `etcd` subphase will be removed in a future release. The subphase `kubelet-wait-bootstrap` of `kubeadm join` is no longer experimental and will now always run. ([#134106](https://github.com/kubernetes/kubernetes/pull/134106), [@neolit123](https://github.com/neolit123))
- Kubernetes is now built using Go 1.25.1 ([#134095](https://github.com/kubernetes/kubernetes/pull/134095), [@dims](https://github.com/dims)) [SIG Release and Testing]
- Kubernetes is now built using Go 1.25.4 ([#135492](https://github.com/kubernetes/kubernetes/pull/135492), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing]
- Kubernetes now uses Go Language Version 1.25, including https://go.dev/blog/container-aware-gomaxprocs ([#134120](https://github.com/kubernetes/kubernetes/pull/134120), [@BenTheElder](https://github.com/BenTheElder)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Release, Scheduling and Storage]
- Locked down the `AllowOverwriteTerminationGracePeriodSeconds` feature gate. ([#133792](https://github.com/kubernetes/kubernetes/pull/133792), [@HirazawaUi](https://github.com/HirazawaUi))
- Locked the (generally available) feature gate `ExecProbeTimeout` to true. ([#134635](https://github.com/kubernetes/kubernetes/pull/134635), [@vivzbansal](https://github.com/vivzbansal)) [SIG Node and Testing]
- Metrics: Excluded `dryRun` requests from `apiserver_request_sli_duration_seconds`. ([#131092](https://github.com/kubernetes/kubernetes/pull/131092), [@aldudko](https://github.com/aldudko)) [SIG API Machinery and Instrumentation]
- Migrated validation in `resource.k8s.io` to declarative validation.
When the `DeclarativeValidation` feature gate is enabled, mismatches with existing validation are reported via metrics.
when `DeclarativeValidationTakeover` feature gate is enabled, declarative validation becomes the primary source of errors for migrated fields. ([#134072](https://github.com/kubernetes/kubernetes/pull/134072), [@yongruilin](https://github.com/yongruilin)) [SIG API Machinery, Apps and Auth]
- Moved the Pod Certificates feature to beta. Added `UserAnnotations` to the `PodCertificateProjection` API and `UnverifiedUserAnnotations` to the `PodCertificateRequest` API. The `PodCertificateRequest` feature gate remains disabled by default and requires enabling the v1beta1 certificates API groups. ([#134790](https://github.com/kubernetes/kubernetes/pull/134790), [@yt2985](https://github.com/yt2985)) [SIG Auth, Instrumentation and Testing]
- Promoted `ImageGCMaximumAge` to stable. ([#134736](https://github.com/kubernetes/kubernetes/pull/134736), [@haircommander](https://github.com/haircommander)) [SIG Node and Testing]
- Promoted `InPlacePodVerticalScaling` to GA. ([#134949](https://github.com/kubernetes/kubernetes/pull/134949), [@natasha41575](https://github.com/natasha41575)) [SIG API Machinery, Node and Scheduling]
- Promoted `kubectl` command headers to stable. ([#134777](https://github.com/kubernetes/kubernetes/pull/134777), [@soltysh](https://github.com/soltysh)) [SIG CLI and Testing]
- Promoted the `EnvFiles` feature gate to beta and is enabled by default. Additionally, the syntax specification for environment variables has been restricted to a subset of POSIX shell syntax (all variable values must be wrapped in single quotes). ([#134414](https://github.com/kubernetes/kubernetes/pull/134414), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG Node and Testing]
- Promoted the `HostnameOverride` feature gate to beta and enabled it by default. ([#134729](https://github.com/kubernetes/kubernetes/pull/134729), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG Network and Node]
- Promoted the `KubeletCrashLoopBackOffMax` feature gate to beta and enabled it by default. ([#135044](https://github.com/kubernetes/kubernetes/pull/135044), [@hankfreund](https://github.com/hankfreund))
- Selected a single device class deterministically when multiple device classes were available for an extended resource. ([#135037](https://github.com/kubernetes/kubernetes/pull/135037), [@yliaog](https://github.com/yliaog)) [SIG Node, Scheduling and Testing]
- The JWT authenticator in `kube-apiserver` now reports the following metrics when the `StructuredAuthenticationConfiguration` feature gate is enabled:
- `apiserver_authentication_jwt_authenticator_jwks_fetch_last_timestamp_seconds`
- `apiserver_authentication_jwt_authenticator_jwks_fetch_last_key_set_info`. ([#123642](https://github.com/kubernetes/kubernetes/pull/123642), [@aramase](https://github.com/aramase)) [SIG API Machinery, Auth and Testing]
- The scheduler now clears the `nominatedNodeName` field for Pods upon scheduling or binding failure. External components, such as Cluster Autoscaler and Karpenter, should not overwrite this field. ([#135007](https://github.com/kubernetes/kubernetes/pull/135007), [@ania-borowiec](https://github.com/ania-borowiec)) [SIG Scheduling and Testing]
- Updated `applyconfiguration-gen` to generate extract functions for all subresources. ([#132665](https://github.com/kubernetes/kubernetes/pull/132665), [@mrIncompetent](https://github.com/mrIncompetent))
- Updated `applyconfiguration-gen` to preserve struct and field comments from source types in the generated code. ([#132663](https://github.com/kubernetes/kubernetes/pull/132663), [@mrIncompetent](https://github.com/mrIncompetent))
- Updated `kubectl describe pods` to include the involved objects `fieldPath` (e.g., container name) in event messages, providing better context for debugging multi-container Pods. Note: This changes the previous message format for events that include a `fieldPath`. ([#133627](https://github.com/kubernetes/kubernetes/pull/133627), [@itzPranshul](https://github.com/itzPranshul))
- Updated sandbox ordering to use by attempt count or creation time. ([#130551](https://github.com/kubernetes/kubernetes/pull/130551), [@yylt](https://github.com/yylt))
- Updated the Kubernetes build to use Go `1.25.4`. ([#135187](https://github.com/kubernetes/kubernetes/pull/135187), [@BenTheElder](https://github.com/BenTheElder))
- Updated underlying images and dependencies to be compatible with Go version`1.25.3`. ([#134611](https://github.com/kubernetes/kubernetes/pull/134611), [@cpanato](https://github.com/cpanato)) [SIG Architecture, Cloud Provider, Etcd, Release, Storage and Testing]
- `kubeadm`: Added a preflight check `ContainerRuntimeVersion` to validate if the installed container runtime supports the `RuntimeConfig` gRPC method. If unsupported, `kubeadm` prints a warning message.
Starting with Kubernetes `v1.36`, `kubelet` might refuse to start if the CRI runtime does not support this feature. More information can be found at the [Kubernetes blog](https://kubernetes.io/blog/2025/09/12/kubernetes-v1-34-cri-cgroup-driver-lookup-now-ga/). ([#134906](https://github.com/kubernetes/kubernetes/pull/134906), [@carlory](https://github.com/carlory))
- Kubernetes is now built using Go `1.25.5`. ([#135609](https://github.com/kubernetes/kubernetes/pull/135609), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing]
### Documentation
- Promoted the `--chunk-size` flag to stable. The kubectl `describe`, `get`, `drain`, and `events` commands can use `--chunk-size` flag to set chunk size. ([#134481](https://github.com/kubernetes/kubernetes/pull/134481), [@soltysh](https://github.com/soltysh))
### Bug or Regression
- Added support for Pods to reference the same `PersistentVolumeClaim` across multiple volumes. ([#122140](https://github.com/kubernetes/kubernetes/pull/122140), [@huww98](https://github.com/huww98)) [SIG Node, Storage and Testing]
- Added support for the `ShareID` field of the `DRAConsumableCapacity` feature in the Kubelet Plugin API. ([#134520](https://github.com/kubernetes/kubernetes/pull/134520), [@sunya-ch](https://github.com/sunya-ch)) [SIG Node and Testing]
- Added the correct error when eviction is blocked due to the failSafe mechanism of the `DisruptionController`. ([#133097](https://github.com/kubernetes/kubernetes/pull/133097), [@kei01234kei](https://github.com/kei01234kei)) [SIG Apps and Node]
- Changed `kubectl exec` syntax to require `--` before the command. The form `kubectl exec [POD] [COMMAND]` is no longer supported; use `kubectl exec [POD] -- [COMMAND]` instead. ([#133841](https://github.com/kubernetes/kubernetes/pull/133841), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085))
- DRA API: Fixed the `tolerations` field in exact and sub requests to drop properly when the `DRADeviceTaints` API is disabled. ([#132927](https://github.com/kubernetes/kubernetes/pull/132927), [@pohly](https://github.com/pohly))
- DRA Device Taints: Fixed toleration of `NoExecute`. Prior to this enhancement, tolerating a `NoExecute` did not work because the scheduler did not inform the eviction controller about the toleration, so the scheduled pod got evicted almost immediately. ([#134479](https://github.com/kubernetes/kubernetes/pull/134479), [@pohly](https://github.com/pohly)) [SIG Apps, Node, Scheduling and Testing]
- Deprecated metrics will be hidden as per the metrics deprecation policy. https://kubernetes.io/docs/reference/using-api/deprecation-policy/#deprecating-a-metric . ([#133436](https://github.com/kubernetes/kubernetes/pull/133436), [@richabanker](https://github.com/richabanker)) [SIG Architecture, Instrumentation and Network]
- Disabled the `SchedulerAsyncAPICalls` feature gate to mitigate a bug where its interaction with asynchronous preemption could degrade `kube-scheduler` performance, especially under high `kube-apiserver` load. ([#134400](https://github.com/kubernetes/kubernetes/pull/134400), [@macsko](https://github.com/macsko))
- Dropped `DeviceBindingConditions` fields when the `DRADeviceBindingConditions` feature gate is not enabled and not in use. ([#134964](https://github.com/kubernetes/kubernetes/pull/134964), [@sunya-ch](https://github.com/sunya-ch))
- Extended resources requested by initContainers which are allocated using an automatic ResourceClaim now match the behavior of legacy device plugins, reusing the same resources requested by later sidecar initContainers or regular containers when possible, to minimize the total number of devices requested by the pod. ([#134882](https://github.com/kubernetes/kubernetes/pull/134882), [@yliaog](https://github.com/yliaog)) [SIG Apps, CLI, Node, Scheduling and Testing]
- Fixed SELinux warning controller not emitting events on some SELinux label conflicts. ([#133425](https://github.com/kubernetes/kubernetes/pull/133425), [@jsafrane](https://github.com/jsafrane)) [SIG Apps, Storage and Testing]
- Fixed `replicaCount` calculation exceeding max `int32`. ([#126979](https://github.com/kubernetes/kubernetes/pull/126979), [@omerap12](https://github.com/omerap12)) [SIG Apps and Autoscaling]
- Fixed a Windows kube-proxy (winkernel) issue where stale `RemoteEndpoints`
remained when a Deployment was referenced by multiple Services due to premature
clearing of the `terminatedEndpoints` map. ([#135146](https://github.com/kubernetes/kubernetes/pull/135146), [@princepereira](https://github.com/princepereira)) [SIG Network and Windows]
- Fixed a bug in `ValidatingAdmissionPolicy` where schemas with `additionalProperties: true` could cause the kube-controller-manager to crash with a nil pointer exception. ([#135155](https://github.com/kubernetes/kubernetes/pull/135155), [@jpbetz](https://github.com/jpbetz))
- Fixed a bug in `kube-proxy` `nftables` mode (GA as of `v1.33`) which fails to determine if traffic originates from a local source on the node. The issue was caused by using the wrong meta `iif` instead of `iifname` for name based matches. ([#134024](https://github.com/kubernetes/kubernetes/pull/134024), [@jack4it](https://github.com/jack4it))
- Fixed a bug in `kube-scheduler` where pending pod preemption caused preemptor pods to be retried more frequently. ([#134245](https://github.com/kubernetes/kubernetes/pull/134245), [@macsko](https://github.com/macsko)) [SIG Scheduling and Testing]
- Fixed a bug that caused apiservers to send an inappropriate Content-Type request header to authorization, token authentication, imagepolicy admission, and audit webhooks when the alpha client-go feature gate "ClientsPreferCBOR" is enabled. ([#132960](https://github.com/kubernetes/kubernetes/pull/132960), [@benluddy](https://github.com/benluddy)) [SIG API Machinery and Node]
- Fixed a bug that caused duplicate validation when updating `PersistentVolumeClaims`, `VolumeAttachments` and `VolumeAttributesClasses`. ([#132549](https://github.com/kubernetes/kubernetes/pull/132549), [@gavinkflam](https://github.com/gavinkflam))
- Fixed a bug that caused duplicate validation when updating `Role` and `RoleBinding` resources. ([#132550](https://github.com/kubernetes/kubernetes/pull/132550), [@gavinkflam](https://github.com/gavinkflam))
- Fixed a bug that prevented allocating the same device that was previously consuming the `CounterSet` when both `DRAConsumableCapacity` and `DRAPartitionableDevices` were enabled. ([#134103](https://github.com/kubernetes/kubernetes/pull/134103), [@sunya-ch](https://github.com/sunya-ch))
- Fixed a bug that prevents scheduling the next pod when using the `DRAConsumableCapacity` feature. ([#133706](https://github.com/kubernetes/kubernetes/pull/133706), [@sunya-ch](https://github.com/sunya-ch))
- Fixed a bug to prevent segmentation fault from occurring when updating deeply nested JSON fields. ([#134381](https://github.com/kubernetes/kubernetes/pull/134381), [@kon-angelo](https://github.com/kon-angelo)) [SIG API Machinery and CLI]
- Fixed a bug where 64-bit IPv6 `ServiceCIDRs` allocated addresses outside the subnet range. ([#134193](https://github.com/kubernetes/kubernetes/pull/134193), [@hoskeri](https://github.com/hoskeri))
- Fixed a bug where Job status updates fail after resuming a Job that was previously started and suspended.
The error message was: `status.startTime: Required value: startTime cannot be removed for unsuspended job`. ([#134769](https://github.com/kubernetes/kubernetes/pull/134769), [@dejanzele](https://github.com/dejanzele)) [SIG Apps and Testing]
- Fixed a bug where `AllocationMode: All` would not succeed if a resource pool contained `ResourceSlices` that were not targeting the current node. ([#134466](https://github.com/kubernetes/kubernetes/pull/134466), [@mortent](https://github.com/mortent))
- Fixed a bug where a deleted Pod in the binding phase continued to occupy space on the node in `kube-scheduler`. ([#134157](https://github.com/kubernetes/kubernetes/pull/134157), [@macsko](https://github.com/macsko)) [SIG Scheduling and Testing]
- Fixed a bug where high latency `kube-apiserver` caused scheduling throughput degradation. ([#134154](https://github.com/kubernetes/kubernetes/pull/134154), [@macsko](https://github.com/macsko))
- Fixed a bug where the health of a DRA resource was not reported in the Pod status if the resource claim was generated from a template or used a different local name in the Pod spec. ([#134875](https://github.com/kubernetes/kubernetes/pull/134875), [@Jpsassine](https://github.com/Jpsassine)) [SIG Node and Testing]
- Fixed a long-standing issue where `kubelet` rejected Pods with `NodeAffinityFailed` due to a stale informer cache. ([#134445](https://github.com/kubernetes/kubernetes/pull/134445), [@natasha41575](https://github.com/natasha41575))
- Fixed a panic in `kubectl api-resources` that occurred when the Discovery Client failed. ([#134833](https://github.com/kubernetes/kubernetes/pull/134833), [@rikatz](https://github.com/rikatz))
- Fixed a possible data race during metrics registration. ([#134390](https://github.com/kubernetes/kubernetes/pull/134390), [@liggitt](https://github.com/liggitt)) [SIG Architecture and Instrumentation]
- Fixed a spurious `namespace not found` error in default `v1.30+` configurations when using `ValidatingAdmissionPolicy` or `MutatingAdmissionPolicy` to intercept namespaced objects in newly-created namespaces. ([#135359](https://github.com/kubernetes/kubernetes/pull/135359), [@liggitt](https://github.com/liggitt))
- Fixed a startup probe race condition that caused main containers to remain stuck in "Initializing" state when sidecar containers with startup probes had failed initially but succeeded on restart in pods with `restartPolicy=Never`. ([#133072](https://github.com/kubernetes/kubernetes/pull/133072), [@AadiDev005](https://github.com/AadiDev005)) [SIG Node and Testing]
- Fixed an issue in asynchronous preemption: Scheduler now checks if preemption is ongoing for a Pod before initiating new preemption calls. ([#134730](https://github.com/kubernetes/kubernetes/pull/134730), [@ania-borowiec](https://github.com/ania-borowiec)) [SIG Scheduling and Testing]
- Fixed an issue that prevented restart policies and restart rules from being applied to static pods. ([#135031](https://github.com/kubernetes/kubernetes/pull/135031), [@yuanwang04](https://github.com/yuanwang04))
- Fixed an issue where requests for a config `FromClass` in the `ResourceClaim` status were not referenced. ([#134793](https://github.com/kubernetes/kubernetes/pull/134793), [@LionelJouin](https://github.com/LionelJouin))
- Fixed an issue where the `kubelet` `/configz` endpoint reported an incorrect value for `kubeletconfig.cgroupDriver` when the cgroup driver setting was received from the container runtime. ([#134743](https://github.com/kubernetes/kubernetes/pull/134743), [@marquiz](https://github.com/marquiz))
- Fixed an issue where the default `serviceCIDR` controller did not log events because the event broadcaster was shutdown during initialization. ([#133338](https://github.com/kubernetes/kubernetes/pull/133338), [@aojea](https://github.com/aojea))
- Fixed an issue with setting `distinctAttribute=nil` when the `DRAConsumableCapacity` feature gate is disabled. ([#134962](https://github.com/kubernetes/kubernetes/pull/134962), [@sunya-ch](https://github.com/sunya-ch))
- Fixed broken shell completion for API resources. ([#133771](https://github.com/kubernetes/kubernetes/pull/133771), [@marckhouzam](https://github.com/marckhouzam))
- Fixed incorrect behavior of preemptor pod when preemption of the victim takes long to complete. The preemptor pod should not be circling in scheduling cycles until preemption is finished. ([#134294](https://github.com/kubernetes/kubernetes/pull/134294), [@ania-borowiec](https://github.com/ania-borowiec)) [SIG Scheduling and Testing]
- Fixed missing `kubelet_volume_stats_*` metrics. ([#133890](https://github.com/kubernetes/kubernetes/pull/133890), [@huww98](https://github.com/huww98)) [SIG Instrumentation and Node]
- Fixed occasional schedule delays when a static `PersistentVolume` is created. ([#133929](https://github.com/kubernetes/kubernetes/pull/133929), [@huww98](https://github.com/huww98)) [SIG Scheduling and Storage]
- Fixed resource claims deallocation for extended resource when Pod completes. ([#134312](https://github.com/kubernetes/kubernetes/pull/134312), [@alaypatel07](https://github.com/alaypatel07)) [SIG Apps, Node and Testing]
- Fixed the kubelet to honor the `userNamespaces.idsPerPod` configuration, which was previously ignored. ([#133373](https://github.com/kubernetes/kubernetes/pull/133373), [@AkihiroSuda](https://github.com/AkihiroSuda)) [SIG Node and Testing]
- Fixed the replacement tag in APIs so it no longer acted as a selector for storage version. ([#135197](https://github.com/kubernetes/kubernetes/pull/135197), [@Jefftree](https://github.com/Jefftree))
- Fixed validation error when `ConfigFlags` includes `CertFile` and/or `KeyFile` while the original configuration also contains `CertFileData` and/or `KeyFileData`. ([#133917](https://github.com/kubernetes/kubernetes/pull/133917), [@n2h9](https://github.com/n2h9)) [SIG API Machinery and CLI]
- Improved performance of `Endpoint` and `EndpointSlice` controllers when there are a large number of services in a single namespace by making pod-to-service lookup asynchronous. ([#134739](https://github.com/kubernetes/kubernetes/pull/134739), [@shyamjvs](https://github.com/shyamjvs)) [SIG Apps and Network]
- Improved the `FreeDiskSpaceFailed` warning event to provide more actionable details when image garbage collection fails to free enough disk space. Example: `Insufficient free disk space on the node's image filesystem (95.0% of 10.0 GiB used). Failed to free sufficient space by deleting unused images. Consider resizing the disk or deleting unused files.`. ([#132578](https://github.com/kubernetes/kubernetes/pull/132578), [@drigz](https://github.com/drigz))
- Introduced support for using an implicit extended resource name derived from the device class (`deviceclass.resource.kubernetes.io/<device-class-name>`) to request DRA devices matching that class. ([#133363](https://github.com/kubernetes/kubernetes/pull/133363), [@yliaog](https://github.com/yliaog)) [SIG Node, Scheduling and Testing]
- Kube-apiserver: Fixed a `v1.34` regression with spurious "Error getting keys" log messages. ([#133817](https://github.com/kubernetes/kubernetes/pull/133817), [@serathius](https://github.com/serathius)) [SIG API Machinery and Etcd]
- Kube-apiserver: Fixed a possible `v1.34` performance regression calculating object size statistics for resources not served from the watch cache, typically only `Events`. ([#133873](https://github.com/kubernetes/kubernetes/pull/133873), [@serathius](https://github.com/serathius)) [SIG API Machinery and Etcd]
- Kube-apiserver: Improved validation error messages for custom resources with CEL validation rules to include the value that failed validation. ([#132798](https://github.com/kubernetes/kubernetes/pull/132798), [@cbandy](https://github.com/cbandy))
- Kube-apiserver: Made sure that when `--requestheader-client-ca-file` and `--client-ca-file` contain overlapping certificates, `--requestheader-allowed-names` must be specified so that regular client certificates cannot set authenticating proxy headers for arbitrary users. ([#131411](https://github.com/kubernetes/kubernetes/pull/131411), [@ballista01](https://github.com/ballista01)) [SIG API Machinery, Auth and Security]
- Kube-apiserver: Resolved an issue causing unnecessary warning log messages about enabled alpha APIs during API server startup. ([#135327](https://github.com/kubernetes/kubernetes/pull/135327), [@michaelasp](https://github.com/michaelasp))
- Kube-controller-manager: Fixed a possible data race in the garbage collection controller. ([#134379](https://github.com/kubernetes/kubernetes/pull/134379), [@liggitt](https://github.com/liggitt)) [SIG API Machinery and Apps]
- Kube-controller-manager: Resolved potential issues handling pods with incorrect uids in their `ownerReference`. ([#134654](https://github.com/kubernetes/kubernetes/pull/134654), [@liggitt](https://github.com/liggitt))
- Kubeadm: Added missing cluster-info context validation to prevent panics when the user has a malformed kubeconfig in the cluster-info ConfigMap that excludes a valid current context. ([#134715](https://github.com/kubernetes/kubernetes/pull/134715), [@neolit123](https://github.com/neolit123))
- Kubeadm: Ensured waiting for `apiserver` uses a local client that doesn't reach to the control plane endpoint and instead reaches directly to the local API server endpoint. ([#134265](https://github.com/kubernetes/kubernetes/pull/134265), [@neolit123](https://github.com/neolit123))
- Kubeadm: Fixed `KUBEADM_UPGRADE_DRYRUN_DIR` not honored in upgrade phase when writing kubelet config files. ([#134007](https://github.com/kubernetes/kubernetes/pull/134007), [@carlory](https://github.com/carlory))
- Kubeadm: Fixed a bug where `ClusterConfiguration.APIServer.TimeoutForControlPlane` from `v1beta3` was not respected in newer kubeadm versions where `v1beta4` is the default. ([#133513](https://github.com/kubernetes/kubernetes/pull/133513), [@tom1299](https://github.com/tom1299))
- Kubeadm: Fixed a bug where the node registration information for a given node was not fetched correctly during `kubeadm upgrade node` and the node name can end up being incorrect in cases where the node name is not the same as the host name. ([#134319](https://github.com/kubernetes/kubernetes/pull/134319), [@neolit123](https://github.com/neolit123))
- Kubeadm: Fixed a preflight check that could fail hostname construction in IPv6 setups. ([#134588](https://github.com/kubernetes/kubernetes/pull/134588), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Auth, Cloud Provider, Cluster Lifecycle and Testing]
- Kubelet: Fixed a concurrent map write error when creating a pod with an empty volume while the `LocalStorageCapacityIsolationFSQuotaMonitoring` feature gate is enabled. ([#135174](https://github.com/kubernetes/kubernetes/pull/135174), [@carlory](https://github.com/carlory))
- Kubelet: Fixed an internal deadlock that caused the connection to a DRA driver to become unusable after being idle for 30 minutes. ([#133926](https://github.com/kubernetes/kubernetes/pull/133926), [@pohly](https://github.com/pohly))
- Made legacy watch calls (`ResourceVersion` = 0 or unset) that generate init-events weigh higher in `API Priority and Fairness (APF)` seat usage. Properly accounting for their cost protects the API server from CPU overload. Users might see increased throttling of such calls as a result. ([#134601](https://github.com/kubernetes/kubernetes/pull/134601), [@shyamjvs](https://github.com/shyamjvs))
- Namespace is now included in the `--dry-run=client` output for `HorizontalPodAutoscaler (HPA)` objects. ([#134263](https://github.com/kubernetes/kubernetes/pull/134263), [@ardaguclu](https://github.com/ardaguclu)) [SIG CLI and Testing]
- Populated `involvedObject.apiVersion` on Events created for Nodes and Pods. ([#134545](https://github.com/kubernetes/kubernetes/pull/134545), [@novahe](https://github.com/novahe)) [SIG Cloud Provider, Network, Node, Scalability and Testing]
- Promoted VAC API test to conformance. ([#133615](https://github.com/kubernetes/kubernetes/pull/133615), [@carlory](https://github.com/carlory)) [SIG Architecture, Storage and Testing]
- Removed `BlockOwnerDeletion` from `ResourceClaim` created from `ResourceClaimTemplate` and from `extendedResourceClaim` created by the `scheduler`. ([#134956](https://github.com/kubernetes/kubernetes/pull/134956), [@yliaog](https://github.com/yliaog)) [SIG Apps, Node and Scheduling]
- Removed an incorrect `SessionAffinity` warning that appeared when a headless service was created or updated. ([#134054](https://github.com/kubernetes/kubernetes/pull/134054), [@Peac36](https://github.com/Peac36))
- Slow container runtime initialization no longer causes the System WatchDog to kill the kubelet. The Device Manager was treated as unhealthy until it began listening on its port. ([#135153](https://github.com/kubernetes/kubernetes/pull/135153), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev))
- Typed workqueue now cleans up goroutines before shutting down ([#135072](https://github.com/kubernetes/kubernetes/pull/135072), [@Jefftree](https://github.com/Jefftree)) [SIG API Machinery]
- Updated `kubectl scale` to return a consistent error message when a specified resource is not found. Previously, it returned: `error: no objects passed to scale <GroupResource> "<ResourceName>" not found`. It now matches the format used by other commands (e.g., `kubectl get`): `Error from server (NotFound): <GroupResource> "<ResourceName>" not found`. ([#134017](https://github.com/kubernetes/kubernetes/pull/134017), [@mochizuki875](https://github.com/mochizuki875))
- `kube-controller-manager`: Fixed a `v1.34` regression that triggered a spurious rollout of existing StatefulSets when upgrading the control plane from `v1.33` to `v1.34`. This fix is guarded by the `StatefulSetSemanticRevisionComparison` feature gate, which is enabled by default. ([#135017](https://github.com/kubernetes/kubernetes/pull/135017), [@liggitt](https://github.com/liggitt))
- `kube-scheduler`: Pod statuses no longer include specific taint keys or values when scheduling fails due to untolerated taints. ([#134740](https://github.com/kubernetes/kubernetes/pull/134740), [@hoskeri](https://github.com/hoskeri))
- Fixes a bug where `MutatingAdmissionPolicy` would fail to apply to objects with duplicate list items (like env vars). ([#135560](https://github.com/kubernetes/kubernetes/pull/135560), [@lalitc375](https://github.com/lalitc375) [SIG API Machinery]
- K8s.io/client-go: Fixes a regression in 1.34+ which prevented informers from using configured Transformer functions. ([#135580](https://github.com/kubernetes/kubernetes/pull/135580), [@serathius](https://github.com/serathius) [SIG API Machinery]
### Other (Cleanup or Flake)
- Added the `Step` field to the testing framework to allow volume expansion in configurable step sizes for tests. ([#134760](https://github.com/kubernetes/kubernetes/pull/134760), [@Rishita-Golla](https://github.com/Rishita-Golla)) [SIG Storage and Testing]
- Bumped addon manager to use `kubectl` version `v1.32.2`. ([#130548](https://github.com/kubernetes/kubernetes/pull/130548), [@Jefftree](https://github.com/Jefftree)) [SIG Cloud Provider, Scalability and Testing]
- Dropped support for `certificates/v1beta1` `CertificateSigningRequest` in `kubectl`. ([#134782](https://github.com/kubernetes/kubernetes/pull/134782), [@scaliby](https://github.com/scaliby))
- Dropped support for `discovery/v1beta1` `EndpointSlice` in `kubectl`. ([#134913](https://github.com/kubernetes/kubernetes/pull/134913), [@scaliby](https://github.com/scaliby))
- Dropped support for `networking/v1beta1` `Ingress` in `kubectl`. ([#135108](https://github.com/kubernetes/kubernetes/pull/135108), [@scaliby](https://github.com/scaliby))
- Dropped support for `networking/v1beta1` `Ingress` in `kubectl`. ([#135176](https://github.com/kubernetes/kubernetes/pull/135176), [@scaliby](https://github.com/scaliby))
- Dropped support for `policy/v1beta1` PodDisruptionBudget in kubectl. ([#134685](https://github.com/kubernetes/kubernetes/pull/134685), [@scaliby](https://github.com/scaliby))
- Eliminated and prevented future use of the `md5` algorithm in favor of more appropriate hashing algorithms. ([#133511](https://github.com/kubernetes/kubernetes/pull/133511), [@BenTheElder](https://github.com/BenTheElder)) [SIG Apps, Architecture, CLI, Cluster Lifecycle, Network, Node, Security, Storage and Testing]
- Fixed `nfacct` test cases on s390x. ([#133603](https://github.com/kubernetes/kubernetes/pull/133603), [@saisindhuri91](https://github.com/saisindhuri91))
- Fixed formatting of various Go API deprecations for `GoDoc` and `pkgsite`, and enabled a linter to detect misformatted deprecations. ([#133571](https://github.com/kubernetes/kubernetes/pull/133571), [@BenTheElder](https://github.com/BenTheElder)) [SIG API Machinery, Architecture, CLI, Instrumentation and Testing]
- Improved HPA performance when using container-specific resource metrics by optimizing container lookup logic to exit early once the target container is found, reducing unnecessary iterations through all containers in a pod. ([#133415](https://github.com/kubernetes/kubernetes/pull/133415), [@AadiDev005](https://github.com/AadiDev005)) [SIG Apps and Autoscaling]
- Increased the coverage to 89.8%. ([#132607](https://github.com/kubernetes/kubernetes/pull/132607), [@ylink-lfs](https://github.com/ylink-lfs))
- Kube-apiserver: Fixed an issue where passing invalid `DeleteOptions` incorrectly returned a 500 status instead of 400. ([#133358](https://github.com/kubernetes/kubernetes/pull/133358), [@ostrain](https://github.com/ostrain))
- Kubeadm: Updated the supported `etcd` version to `v3.5.23` for supported control plane versions `v1.31`, `v1.32`, and `v1.33`. ([#134692](https://github.com/kubernetes/kubernetes/pull/134692), [@joshjms](https://github.com/joshjms)) [SIG Cluster Lifecycle and Etcd]
- Kubeadm: stopped applying the `--pod-infra-container-image` flag for the kubelet. The flag has been deprecated and no longer served a purpose in the kubelet as the logic was migrated to CRI (Container Runtime Interface). During upgrade, kubeadm will attempt to remove the flag from the file `/var/lib/kubelet/kubeadm-flags.env`. ([#133778](https://github.com/kubernetes/kubernetes/pull/133778), [@carlory](https://github.com/carlory)) [SIG Cloud Provider and Cluster Lifecycle]
- Migrated the `CPUManager` to contextual logging. ([#125912](https://github.com/kubernetes/kubernetes/pull/125912), [@ffromani](https://github.com/ffromani))
- Moved Types in `k/k/pkg/scheduler/framework`:
`Handle`,
`Plugin`,
`PreEnqueuePlugin`, `QueueSortPlugin`, `EnqueueExtensions`, `PreFilterExtensions`, `PreFilterPlugin`, `FilterPlugin`, `PostFilterPlugin`, `PreScorePlugin`, `ScorePlugin`, `ReservePlugin`, `PreBindPlugin`, `PostBindPlugin`, `PermitPlugin`, `BindPlugin`,
`PodActivator`, `PodNominator`, `PluginsRunner`,
`LessFunc`, `ScoreExtensions`, `NodeToStatusReader`, `NodeScoreList`, `NodeScore`, `NodePluginScores`, `PluginScore`, `NominatingMode`, `NominatingInfo`, `WaitingPod`, `PreFilterResult`, `PostFilterResult`,
`Extender`,
`NodeInfoLister`, `StorageInfoLister`, `SharedLister`, `ResourceSliceLister`, `DeviceClassLister`, `ResourceClaimTracker`, `SharedDRAManager`
to package `k8s.io/kube-scheduler/framework`. Users should update import paths. The interfaces don't change.
Type `Parallelizer` in `k/k/pkg/scheduler/framework/parallelism` has been split into interface `Parallelizer` (in `k8s.io/kube-scheduler/framework`) and `struct Parallelizer` (location unchanged in k/k). Plugin developers should update the import path to staging repo. ([#133172](https://github.com/kubernetes/kubernetes/pull/133172), [@ania-borowiec](https://github.com/ania-borowiec)) [SIG Node, Release, Scheduling, Storage and Testing]
- Moved the CPU Manager static policy option `strict-cpu-reservation` to the GA version. ([#134388](https://github.com/kubernetes/kubernetes/pull/134388), [@psasnal](https://github.com/psasnal))
- Promoted the Topology Manager policy option `max-allowable-numa-nodes` to GA version. ([#134614](https://github.com/kubernetes/kubernetes/pull/134614), [@ffromani](https://github.com/ffromani))
- Reduced event spam during volume operation errors in the Portworx in-tree driver. ([#135081](https://github.com/kubernetes/kubernetes/pull/135081), [@gohilankit](https://github.com/gohilankit))
- Removed `rsync` as a dependency to build Kubernetes. ([#134656](https://github.com/kubernetes/kubernetes/pull/134656), [@BenTheElder](https://github.com/BenTheElder)) [SIG Release and Testing]
- Removed container name from messages for container created and started events. ([#134043](https://github.com/kubernetes/kubernetes/pull/134043), [@HirazawaUi](https://github.com/HirazawaUi))
- Removed deprecated gogo protocol definitions from `k8s.io/kubelet/pkg/apis/dra` in favor of `google.golang.org/protobuf`. ([#133026](https://github.com/kubernetes/kubernetes/pull/133026), [@saschagrunert](https://github.com/saschagrunert)) [SIG API Machinery and Node]
- Removed general available feature-gate `SizeMemoryBackedVolumes`. ([#133720](https://github.com/kubernetes/kubernetes/pull/133720), [@carlory](https://github.com/carlory)) [SIG Node, Storage and Testing]
- Removed the `ComponentSLIs` feature gate, as it was promoted to stable in the Kubernetes `v1.32` release. ([#133742](https://github.com/kubernetes/kubernetes/pull/133742), [@carlory](https://github.com/carlory)) [SIG Architecture and Instrumentation]
- Removed the `KUBECTL_OPENAPIV3_PATCH` environment variable, as aggregated discovery has been stable since `v1.30`. ([#134130](https://github.com/kubernetes/kubernetes/pull/134130), [@ardaguclu](https://github.com/ardaguclu))
- Removed the `UserNamespacesPodSecurityStandards` feature gate. The minimum supported Kubernetes version for `kubelet` is now `v1.31`, so the gate is no longer needed. ([#132157](https://github.com/kubernetes/kubernetes/pull/132157), [@haircommander](https://github.com/haircommander)) [SIG Auth, Node and Testing]
- Removed the `VolumeAttributesClass` resource from the `storage.k8s.io/v1alpha1` API in `v1.35`. ([#134625](https://github.com/kubernetes/kubernetes/pull/134625), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Etcd, Storage and Testing]
- Specified the deprecated version of `apiserver_storage_objects` metric in metrics docs. ([#134028](https://github.com/kubernetes/kubernetes/pull/134028), [@richabanker](https://github.com/richabanker)) [SIG API Machinery, Etcd and Instrumentation]
- Substantially simplified building Kubernetes by making the process run a pre-built container image directly without running `rsyncd`. ([#134510](https://github.com/kubernetes/kubernetes/pull/134510), [@BenTheElder](https://github.com/BenTheElder)) [SIG Release and Testing]
- Tests: Switched to https://go.dev/doc/go1.25#container-aware-gomaxprocs from `go.uber.org/automaxprocs`. ([#133492](https://github.com/kubernetes/kubernetes/pull/133492), [@BenTheElder](https://github.com/BenTheElder))
- The `AggregatedDiscoveryRemoveBetaType` feature gate was deprecated and locked to `true`. ([#134230](https://github.com/kubernetes/kubernetes/pull/134230), [@Jefftree](https://github.com/Jefftree))
- The `SystemdWatchdog` feature gate has been locked to default and will be removed in future release. The systemd watchdog functionality in `kubelet` can be enabled via systemd without any feature gate configuration. See the [systemd watchdog documentation](https://kubernetes.io/docs/reference/node/systemd-watchdog/) for more information. ([#134691](https://github.com/kubernetes/kubernetes/pull/134691), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev))
- Updated CNI plugins to v1.8.0. ([#133837](https://github.com/kubernetes/kubernetes/pull/133837), [@saschagrunert](https://github.com/saschagrunert)) [SIG Cloud Provider, Node and Testing]
- Updated `etcd` to `v3.6.5`. ([#134251](https://github.com/kubernetes/kubernetes/pull/134251), [@joshjms](https://github.com/joshjms)) [SIG API Machinery, Cloud Provider, Cluster Lifecycle, Etcd and Testing]
- Updated `kubectl auth reconcile` to retry reconciliation when a conflict error occurs. ([#133323](https://github.com/kubernetes/kubernetes/pull/133323), [@liggitt](https://github.com/liggitt)) [SIG Auth and CLI]
- Updated `kubectl get` and `kubectl describe` human-readable output to no longer show counts for referenced tokens and secrets. ([#117160](https://github.com/kubernetes/kubernetes/pull/117160), [@liggitt](https://github.com/liggitt)) [SIG CLI and Testing]
- Updated cri-tools to v1.34.0. ([#133636](https://github.com/kubernetes/kubernetes/pull/133636), [@saschagrunert](https://github.com/saschagrunert)) [SIG Cloud Provider]
- Updated the Go version of Kubernetes to `1.25.3`. ([#134598](https://github.com/kubernetes/kubernetes/pull/134598), [@BenTheElder](https://github.com/BenTheElder))
- Updated the `/statusz` page for `kube-proxy` to include a list of exposed endpoints, making debugging and introspection easier. ([#133190](https://github.com/kubernetes/kubernetes/pull/133190), [@aman4433](https://github.com/aman4433)) [SIG Network and Node]
- Updated the `kubectl wait` command description by removing the `Experimental` prefix, as the command has been stable for a long time. ([#133731](https://github.com/kubernetes/kubernetes/pull/133731), [@ardaguclu](https://github.com/ardaguclu))
- Updated the etcd client library to `v3.6.5`. ([#134780](https://github.com/kubernetes/kubernetes/pull/134780), [@joshjms](https://github.com/joshjms)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Scheduling and Storage]
- Updated the short description of the `kubectl wait` command by removing the `Experimental` prefix, as the command has been stable for a long time. ([#133907](https://github.com/kubernetes/kubernetes/pull/133907), [@ardaguclu](https://github.com/ardaguclu))
- Upgraded CoreDNS to v1.12.4. ([#133968](https://github.com/kubernetes/kubernetes/pull/133968), [@yashsingh74](https://github.com/yashsingh74)) [SIG Cloud Provider and Cluster Lifecycle]
- Upgraded `CoreDNS` to `v1.12.3`. ([#132288](https://github.com/kubernetes/kubernetes/pull/132288), [@thevilledev](https://github.com/thevilledev)) [SIG Cloud Provider and Cluster Lifecycle]
- `kubeadm`: Removed the `WaitForAllControlPlaneComponents` feature gate, which graduated to GA in `v1.34` and was locked to enabled by default. ([#134781](https://github.com/kubernetes/kubernetes/pull/134781), [@neolit123](https://github.com/neolit123))
- `kubeadm`: Updated the supported etcd version to `v3.5.24` for control plane versions `v1.32`, `v1.33`, and `v1.34`. ([#134779](https://github.com/kubernetes/kubernetes/pull/134779), [@joshjms](https://github.com/joshjms)) [SIG API Machinery, Cloud Provider, Cluster Lifecycle, Etcd and Testing]
- `etcd: Update etcd to `v3.6.6`. (#135271, @bzsuni) [SIG API Machinery, Cloud Provider, Cluster Lifecycle, Etcd and Testing]
- Fix a bug in the kube-apiserver where a malformed Service without name can cause high CPU usage. The bug is present on the new Cluster IP allocators enabled with the feature MultiCIDRServiceAllocator (enabled by default since 1.33)
## Dependencies
### Added
- cyphar.com/go-pathrs: v0.2.1
- github.com/Masterminds/semver/v3: [v3.4.0](https://github.com/Masterminds/semver/tree/v3.4.0)
- github.com/gkampitakis/ciinfo: [v0.3.2](https://github.com/gkampitakis/ciinfo/tree/v0.3.2)
- github.com/gkampitakis/go-diff: [v1.3.2](https://github.com/gkampitakis/go-diff/tree/v1.3.2)
- github.com/gkampitakis/go-snaps: [v0.5.15](https://github.com/gkampitakis/go-snaps/tree/v0.5.15)
- github.com/goccy/go-yaml: [v1.18.0](https://github.com/goccy/go-yaml/tree/v1.18.0)
- github.com/joshdk/go-junit: [v1.0.0](https://github.com/joshdk/go-junit/tree/v1.0.0)
- github.com/maruel/natural: [v1.1.1](https://github.com/maruel/natural/tree/v1.1.1)
- github.com/mfridman/tparse: [v0.18.0](https://github.com/mfridman/tparse/tree/v0.18.0)
- github.com/moby/sys/atomicwriter: [v0.1.0](https://github.com/moby/sys/tree/atomicwriter/v0.1.0)
- github.com/tidwall/gjson: [v1.18.0](https://github.com/tidwall/gjson/tree/v1.18.0)
- github.com/tidwall/match: [v1.1.1](https://github.com/tidwall/match/tree/v1.1.1)
- github.com/tidwall/pretty: [v1.2.1](https://github.com/tidwall/pretty/tree/v1.2.1)
- github.com/tidwall/sjson: [v1.2.5](https://github.com/tidwall/sjson/tree/v1.2.5)
- go.uber.org/automaxprocs: v1.6.0
- golang.org/x/tools/go/expect: v0.1.1-deprecated
- golang.org/x/tools/go/packages/packagestest: v0.1.1-deprecated
### Changed
- cloud.google.com/go/compute/metadata: v0.6.0 → v0.7.0
- github.com/aws/aws-sdk-go-v2/config: [v1.27.24 → v1.29.14](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.27.24...config/v1.29.14)
- github.com/aws/aws-sdk-go-v2/credentials: [v1.17.24 → v1.17.67](https://github.com/aws/aws-sdk-go-v2/compare/credentials/v1.17.24...credentials/v1.17.67)
- github.com/aws/aws-sdk-go-v2/feature/ec2/imds: [v1.16.9 → v1.16.30](https://github.com/aws/aws-sdk-go-v2/compare/feature/ec2/imds/v1.16.9...feature/ec2/imds/v1.16.30)
- github.com/aws/aws-sdk-go-v2/internal/configsources: [v1.3.13 → v1.3.34](https://github.com/aws/aws-sdk-go-v2/compare/internal/configsources/v1.3.13...internal/configsources/v1.3.34)
- github.com/aws/aws-sdk-go-v2/internal/endpoints/v2: [v2.6.13 → v2.6.34](https://github.com/aws/aws-sdk-go-v2/compare/internal/endpoints/v2/v2.6.13...internal/endpoints/v2/v2.6.34)
- github.com/aws/aws-sdk-go-v2/internal/ini: [v1.8.0 → v1.8.3](https://github.com/aws/aws-sdk-go-v2/compare/internal/ini/v1.8.0...internal/ini/v1.8.3)
- github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding: [v1.11.3 → v1.12.3](https://github.com/aws/aws-sdk-go-v2/compare/service/internal/accept-encoding/v1.11.3...service/internal/accept-encoding/v1.12.3)
- github.com/aws/aws-sdk-go-v2/service/internal/presigned-url: [v1.11.15 → v1.12.15](https://github.com/aws/aws-sdk-go-v2/compare/service/internal/presigned-url/v1.11.15...service/internal/presigned-url/v1.12.15)
- github.com/aws/aws-sdk-go-v2/service/sso: [v1.22.1 → v1.25.3](https://github.com/aws/aws-sdk-go-v2/compare/service/sso/v1.22.1...service/sso/v1.25.3)
- github.com/aws/aws-sdk-go-v2/service/ssooidc: [v1.26.2 → v1.30.1](https://github.com/aws/aws-sdk-go-v2/compare/service/ssooidc/v1.26.2...service/ssooidc/v1.30.1)
- github.com/aws/aws-sdk-go-v2/service/sts: [v1.30.1 → v1.33.19](https://github.com/aws/aws-sdk-go-v2/compare/service/sts/v1.30.1...service/sts/v1.33.19)
- github.com/aws/aws-sdk-go-v2: [v1.30.1 → v1.36.3](https://github.com/aws/aws-sdk-go-v2/compare/v1.30.1...v1.36.3)
- github.com/aws/smithy-go: [v1.20.3 → v1.22.3](https://github.com/aws/smithy-go/compare/v1.20.3...v1.22.3)
- github.com/containerd/containerd/api: [v1.8.0 → v1.9.0](https://github.com/containerd/containerd/compare/api/v1.8.0...api/v1.9.0)
- github.com/containerd/ttrpc: [v1.2.6 → v1.2.7](https://github.com/containerd/ttrpc/compare/v1.2.6...v1.2.7)
- github.com/containerd/typeurl/v2: [v2.2.2 → v2.2.3](https://github.com/containerd/typeurl/compare/v2.2.2...v2.2.3)
- github.com/coredns/corefile-migration: [v1.0.26 → v1.0.29](https://github.com/coredns/corefile-migration/compare/v1.0.26...v1.0.29)
- github.com/cyphar/filepath-securejoin: [v0.4.1 → v0.6.0](https://github.com/cyphar/filepath-securejoin/compare/v0.4.1...v0.6.0)
- github.com/docker/docker: [v26.1.4+incompatible → v28.2.2+incompatible](https://github.com/docker/docker/compare/v26.1.4...v28.2.2)
- github.com/go-logr/logr: [v1.4.2 → v1.4.3](https://github.com/go-logr/logr/compare/v1.4.2...v1.4.3)
- github.com/google/cadvisor: [v0.52.1 → v0.53.0](https://github.com/google/cadvisor/compare/v0.52.1...v0.53.0)
- github.com/google/pprof: [d1b30fe → 27863c8](https://github.com/google/pprof/compare/d1b30fe...27863c8)
- github.com/onsi/ginkgo/v2: [v2.21.0 → v2.27.2](https://github.com/onsi/ginkgo/compare/v2.21.0...v2.27.2)
- github.com/onsi/gomega: [v1.35.1 → v1.38.2](https://github.com/onsi/gomega/compare/v1.35.1...v1.38.2)
- github.com/opencontainers/cgroups: [v0.0.1 → v0.0.3](https://github.com/opencontainers/cgroups/compare/v0.0.1...v0.0.3)
- github.com/opencontainers/runc: [v1.2.5 → v1.3.0](https://github.com/opencontainers/runc/compare/v1.2.5...v1.3.0)
- github.com/opencontainers/runtime-spec: [v1.2.0 → v1.2.1](https://github.com/opencontainers/runtime-spec/compare/v1.2.0...v1.2.1)
- github.com/opencontainers/selinux: [v1.11.1 → v1.13.0](https://github.com/opencontainers/selinux/compare/v1.11.1...v1.13.0)
- github.com/prometheus/client_golang: [v1.22.0 → v1.23.2](https://github.com/prometheus/client_golang/compare/v1.22.0...v1.23.2)
- github.com/prometheus/client_model: [v0.6.1 → v0.6.2](https://github.com/prometheus/client_model/compare/v0.6.1...v0.6.2)
- github.com/prometheus/common: [v0.62.0 → v0.66.1](https://github.com/prometheus/common/compare/v0.62.0...v0.66.1)
- github.com/prometheus/procfs: [v0.15.1 → v0.16.1](https://github.com/prometheus/procfs/compare/v0.15.1...v0.16.1)
- github.com/rogpeppe/go-internal: [v1.13.1 → v1.14.1](https://github.com/rogpeppe/go-internal/compare/v1.13.1...v1.14.1)
- github.com/spf13/cobra: [v1.9.1 → v1.10.0](https://github.com/spf13/cobra/compare/v1.9.1...v1.10.0)
- github.com/spf13/pflag: [v1.0.6 → v1.0.9](https://github.com/spf13/pflag/compare/v1.0.6...v1.0.9)
- github.com/stretchr/testify: [v1.10.0 → v1.11.1](https://github.com/stretchr/testify/compare/v1.10.0...v1.11.1)
- go.etcd.io/bbolt: v1.4.2 → v1.4.3
- go.etcd.io/etcd/api/v3: v3.6.4 → v3.6.5
- go.etcd.io/etcd/client/pkg/v3: v3.6.4 → v3.6.5
- go.etcd.io/etcd/client/v3: v3.6.4 → v3.6.5
- go.etcd.io/etcd/pkg/v3: v3.6.4 → v3.6.5
- go.etcd.io/etcd/server/v3: v3.6.4 → v3.6.5
- go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp: v0.58.0 → v0.61.0
- go.opentelemetry.io/otel/metric: v1.35.0 → v1.36.0
- go.opentelemetry.io/otel/sdk/metric: v1.34.0 → v1.36.0
- go.opentelemetry.io/otel/sdk: v1.34.0 → v1.36.0
- go.opentelemetry.io/otel/trace: v1.35.0 → v1.36.0
- go.opentelemetry.io/otel: v1.35.0 → v1.36.0
- go.yaml.in/yaml/v2: v2.4.2 → v2.4.3
- golang.org/x/crypto: v0.36.0 → v0.45.0
- golang.org/x/mod: v0.21.0 → v0.29.0
- golang.org/x/net: v0.38.0 → v0.47.0
- golang.org/x/oauth2: v0.27.0 → v0.30.0
- golang.org/x/sync: v0.12.0 → v0.18.0
- golang.org/x/sys: v0.31.0 → v0.38.0
- golang.org/x/telemetry: bda5523 → 078029d
- golang.org/x/term: v0.30.0 → v0.37.0
- golang.org/x/text: v0.23.0 → v0.31.0
- golang.org/x/tools: v0.26.0 → v0.38.0
- google.golang.org/genproto/googleapis/rpc: a0af3ef → 200df99
- google.golang.org/grpc: v1.72.1 → v1.72.2
- google.golang.org/protobuf: v1.36.5 → v1.36.8
- gopkg.in/evanphx/json-patch.v4: v4.12.0 → v4.13.0
- k8s.io/gengo/v2: 85fd79d → ec3ebc5
- k8s.io/kube-openapi: f3f2b99 → 589584f
- k8s.io/system-validators: v1.10.1 → v1.12.1
- k8s.io/utils: 4c0f3b2 → bc988d5
- sigs.k8s.io/json: cfa47c3 → 2d32026
### Removed
- gopkg.in/yaml.v2: v2.4.0
# v1.35.0-rc.1
## Downloads for v1.35.0-rc.1
### Source Code
filename | sha512 hash
-------- | -----------
[kubernetes.tar.gz](https://dl.k8s.io/v1.35.0-rc.1/kubernetes.tar.gz) | 6b08badb1402c5a4d5e83e14bc64e464c7bd8bbdd9473ea1b501b7bf04ac9f53d2ac23a5f70761cc03024bd046c329253d2914af9225530755bcbc06d7459616
[kubernetes-src.tar.gz](https://dl.k8s.io/v1.35.0-rc.1/kubernetes-src.tar.gz) | 35d2827a2bb7b01162c506d7a15392c72c6537f9f1570ade160bc286ad9a409e0830d32e7ea5ae8191bb6435859826d2d5ec56255a29fe279aee3517239cb9a6
### Client Binaries
filename | sha512 hash
-------- | -----------
[kubernetes-client-darwin-amd64.tar.gz](https://dl.k8s.io/v1.35.0-rc.1/kubernetes-client-darwin-amd64.tar.gz) | 85f9f154296b0579444ee9ff43f74ad616ef52e453782da8dd10f5150d1fb6f1d71151b7525fe5784142f930fb9fe9bfbc395277b5a088d3bc892c9415e15611
[kubernetes-client-darwin-arm64.tar.gz](https://dl.k8s.io/v1.35.0-rc.1/kubernetes-client-darwin-arm64.tar.gz) | 2811a1b3901c9a82cb042e4b4c4bc4d75ea0d894b42e7f7c63b25b5df8d26b5ff2bfd0ee819b9cb8e946a2bac90ac4dfb649c692f054fb290e08516966384d0b
[kubernetes-client-linux-386.tar.gz](https://dl.k8s.io/v1.35.0-rc.1/kubernetes-client-linux-386.tar.gz) | aed99699ba9f635d1e073061ab89b7ee80744cb56a4aa078ad6afc5670483db456fcc6a544bf34b95a4a3c8f25938898b093d7d279120063688f0406efaf37f9
[kubernetes-client-linux-amd64.tar.gz](https://dl.k8s.io/v1.35.0-rc.1/kubernetes-client-linux-amd64.tar.gz) | 607724204e2b3265f25d12cda5397c4943e8df4ae66efe2f5cf2582b7aa1c9fc9a60c61a193aef8ae1ee5b3d261146f5cc9956de873d82864979ef19c70c48c7
[kubernetes-client-linux-arm.tar.gz](https://dl.k8s.io/v1.35.0-rc.1/kubernetes-client-linux-arm.tar.gz) | 378770b5529ce39fbdbb1d39c4a966ad96c03523411e5f830ac2e86e67e23518de534f148838903561de5a7db6f852f532ad7a0799514b72892fea0362f3c635
[kubernetes-client-linux-arm64.tar.gz](https://dl.k8s.io/v1.35.0-rc.1/kubernetes-client-linux-arm64.tar.gz) | 357f66e108d651d0a77d61f9f0da286f5c8d312d6f320174dab42cd6aae69ecdf24e081f5bdcbc6313d2688c2585009348766f7a0eed58f23f8eda898d3e7081
[kubernetes-client-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.35.0-rc.1/kubernetes-client-linux-ppc64le.tar.gz) | ac9d343138f01a1d6fa986ef684938686e7ac656f8b8b1b5c1a75894e2c98f7f36754eef15a95b20c0812c5a62d775a285c4e015b5eca9bc4e937b9f44b7a537
[kubernetes-client-linux-s390x.tar.gz](https://dl.k8s.io/v1.35.0-rc.1/kubernetes-client-linux-s390x.tar.gz) | b12631a0bb8c2f9e28ca855302a57ab4bffb2db4105668cf16635193cada26bd0aa63f80428835339f42eea13839d1990f171276697eb00f9cbe5d8edae434f0
[kubernetes-client-windows-386.tar.gz](https://dl.k8s.io/v1.35.0-rc.1/kubernetes-client-windows-386.tar.gz) | 5b1849523011be7f569f17f42250a98a2513caa7652c3055712bace9ba440ab4e38d4f5bceb6e89158f4f3008a836fcee765ef9af818ba6cb07296ef8467cf02
[kubernetes-client-windows-amd64.tar.gz](https://dl.k8s.io/v1.35.0-rc.1/kubernetes-client-windows-amd64.tar.gz) | fb95a54326565bcc3458fa0a876d5f457e5218eafa349f9cee3db93982c30482b8fe57d0f43a2be89e4816382a5efc97b95fae069bc2ed8f19b6ac253e46790a
[kubernetes-client-windows-arm64.tar.gz](https://dl.k8s.io/v1.35.0-rc.1/kubernetes-client-windows-arm64.tar.gz) | 465a7fe0e87dd3dc0b22d3881bbe4c33e706ca53a512a981afd49bccdd5d638a818cabb84dbc5796b54ce97d045bbaf466c0cbf46f809bb5a31d64117386a0c7
### Server Binaries
filename | sha512 hash
-------- | -----------
[kubernetes-server-linux-amd64.tar.gz](https://dl.k8s.io/v1.35.0-rc.1/kubernetes-server-linux-amd64.tar.gz) | c6728d534c85e11a58dea5ca830541efde07f390586ca77f7f59308179b677f3f3f28492e1c26314adf79e800b7690a1b0d5ac5670d18282064bc4fbb4093b05
[kubernetes-server-linux-arm64.tar.gz](https://dl.k8s.io/v1.35.0-rc.1/kubernetes-server-linux-arm64.tar.gz) | 6b9eb6d36179bef49b8f4f276f1ffe03552876e46c9477129b6e9a690c38e7343e0430e22fbbfaccab83c3879282e6994cdaca47a709267617a84e3143b4598e
[kubernetes-server-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.35.0-rc.1/kubernetes-server-linux-ppc64le.tar.gz) | 946b9b5d817437258a77e6b3fcf674c0c9adb0a5b4cc2aa3f68f8364c7916016d6811a9596221801f570018f3976ae456eb01a6ad871fb5461daebfd1c2ff589
[kubernetes-server-linux-s390x.tar.gz](https://dl.k8s.io/v1.35.0-rc.1/kubernetes-server-linux-s390x.tar.gz) | 5d5c22a1149d5c741b5c37710a97a84b2f9f45ccc9b8457408233a6a7c5fc20c3a2bbf92b68f135630308991cdc463559cdad6131fa6c9e0ad5cfdca7933cdc2
### Node Binaries
filename | sha512 hash
-------- | -----------
[kubernetes-node-linux-amd64.tar.gz](https://dl.k8s.io/v1.35.0-rc.1/kubernetes-node-linux-amd64.tar.gz) | 269725e2afd028e6eb8a3d12605789f6a5715a0bf9cf477df689bdc9f9b164f0fd32c3007b16ffee17c5234f6fff17ff9096396892e71155074a3499e9480088
[kubernetes-node-linux-arm64.tar.gz](https://dl.k8s.io/v1.35.0-rc.1/kubernetes-node-linux-arm64.tar.gz) | 37472ba5b63177bcb9430b761f1d4df459771cab2bf9448f69fa5abe0dc4f2e0a26bd6b9c8d747d37e05e8e0263736ca4150a624cecf03938aacd4e98929d03d
[kubernetes-node-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.35.0-rc.1/kubernetes-node-linux-ppc64le.tar.gz) | 25dce33f916a55d27f825902fc7776735a5ddfd0e86555b193d431eab54781d52fff9c41dafcf5a845e79f0153d515b014cb8a5c21179c82e96321851109195c
[kubernetes-node-linux-s390x.tar.gz](https://dl.k8s.io/v1.35.0-rc.1/kubernetes-node-linux-s390x.tar.gz) | 16e22350e2871ea0d42668bb9c1487b2c5a6e6b436c78d1f986f68bc0312d340ab0285aca7f619322e3238cf9ee90f5425e49dc018e53069e5b0cd092bdd28a2
[kubernetes-node-windows-amd64.tar.gz](https://dl.k8s.io/v1.35.0-rc.1/kubernetes-node-windows-amd64.tar.gz) | 1b4aab8eb20bd974c7585ba55a5caeb43174afbef738e1bb99fd51fd228b800c943c4a8f0204ef935c733b15cab52ae0ae2a9a7da9299387be272932b1c54c9e
### Container Images
All container images are available as manifest lists and support the described
architectures. It is also possible to pull a specific architecture directly by
adding the "-$ARCH" suffix to the container image name.
name | architectures
---- | -------------
[registry.k8s.io/conformance:v1.35.0-rc.1](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/conformance) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/conformance-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/conformance-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/conformance-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/conformance-s390x)
[registry.k8s.io/kube-apiserver:v1.35.0-rc.1](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-apiserver) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-apiserver-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-apiserver-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-apiserver-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-apiserver-s390x)
[registry.k8s.io/kube-controller-manager:v1.35.0-rc.1](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-controller-manager) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-controller-manager-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-controller-manager-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-controller-manager-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-controller-manager-s390x)
[registry.k8s.io/kube-proxy:v1.35.0-rc.1](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-proxy) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-proxy-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-proxy-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-proxy-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-proxy-s390x)
[registry.k8s.io/kube-scheduler:v1.35.0-rc.1](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-scheduler) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-scheduler-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-scheduler-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-scheduler-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-scheduler-s390x)
[registry.k8s.io/kubectl:v1.35.0-rc.1](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kubectl) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kubectl-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kubectl-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kubectl-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kubectl-s390x)
## Changelog since v1.35.0-rc.0
## Changes by Kind
### Feature
- Kubernetes is now built using Go 1.25.5 ([#135609](https://github.com/kubernetes/kubernetes/pull/135609), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing]
### Bug or Regression
- Fix a bug in the kube-apiserver where a malformed Service without name can cause high CPU usage. The bug is present on the new Cluster IP allocators enabled with the feature MultiCIDRServiceAllocator (enabled by default since 1.33) ([#135499](https://github.com/kubernetes/kubernetes/pull/135499), [@aojea](https://github.com/aojea)) [SIG Testing]
- Fixes a bug where MutatingAdmissionPolicy would fail to apply to objects with duplicate list items (like env vars). ([#135560](https://github.com/kubernetes/kubernetes/pull/135560), [@lalitc375](https://github.com/lalitc375)) [SIG API Machinery]
- K8s.io/client-go: Fixes a regression in 1.34+ which prevented informers from using configured Transformer functions ([#135580](https://github.com/kubernetes/kubernetes/pull/135580), [@serathius](https://github.com/serathius)) [SIG API Machinery]
### Other (Cleanup or Flake)
- Etcd: Update etcd to v3.6.6 ([#135271](https://github.com/kubernetes/kubernetes/pull/135271), [@bzsuni](https://github.com/bzsuni)) [SIG API Machinery, Cloud Provider, Cluster Lifecycle, Etcd and Testing]
## Dependencies
### Added
_Nothing has changed._
### Changed
- golang.org/x/crypto: v0.41.0 → v0.45.0
- golang.org/x/mod: v0.28.0 → v0.29.0
- golang.org/x/net: v0.43.0 → v0.47.0
- golang.org/x/sync: v0.17.0 → v0.18.0
- golang.org/x/sys: v0.37.0 → v0.38.0
- golang.org/x/telemetry: 1a19826 → 078029d
- golang.org/x/term: v0.36.0 → v0.37.0
- golang.org/x/text: v0.29.0 → v0.31.0
- golang.org/x/tools: v0.36.0 → v0.38.0
### Removed
_Nothing has changed._
# v1.35.0-rc.0

373
CHANGELOG/CHANGELOG-1.36.md Normal file
View file

@ -0,0 +1,373 @@
<!-- BEGIN MUNGE: GENERATED_TOC -->
- [v1.36.0-alpha.1](#v1360-alpha1)
- [Downloads for v1.36.0-alpha.1](#downloads-for-v1360-alpha1)
- [Source Code](#source-code)
- [Client Binaries](#client-binaries)
- [Server Binaries](#server-binaries)
- [Node Binaries](#node-binaries)
- [Container Images](#container-images)
- [Changelog since v1.35.0](#changelog-since-v1350)
- [Urgent Upgrade Notes](#urgent-upgrade-notes)
- [(No, really, you MUST read this before you upgrade)](#no-really-you-must-read-this-before-you-upgrade)
- [Changes by Kind](#changes-by-kind)
- [Dependency](#dependency)
- [API Change](#api-change)
- [Feature](#feature)
- [Failing Test](#failing-test)
- [Bug or Regression](#bug-or-regression)
- [Other (Cleanup or Flake)](#other-cleanup-or-flake)
- [Dependencies](#dependencies)
- [Added](#added)
- [Changed](#changed)
- [Removed](#removed)
<!-- END MUNGE: GENERATED_TOC -->
# v1.36.0-alpha.1
## Downloads for v1.36.0-alpha.1
### Source Code
filename | sha512 hash
-------- | -----------
[kubernetes.tar.gz](https://dl.k8s.io/v1.36.0-alpha.1/kubernetes.tar.gz) | 79ec354722859240b1d715c0da181e5a2a0fd354984ae9d511d58e7c09ec5cf7e54421db38a6d96b409b9a08b1c1b9dc13e7df20e7ab21299837d00cf72f162c
[kubernetes-src.tar.gz](https://dl.k8s.io/v1.36.0-alpha.1/kubernetes-src.tar.gz) | f274bff791b16bb4de10730aabbfc027220f45c44d2dc8d1a8b575cc86421ec01fb106bcb2f3cb137145e64396ca37f2ec689932395162dcae5d3b6b65fc97ec
### Client Binaries
filename | sha512 hash
-------- | -----------
[kubernetes-client-darwin-amd64.tar.gz](https://dl.k8s.io/v1.36.0-alpha.1/kubernetes-client-darwin-amd64.tar.gz) | 6fc2c7b184ee6435c0e7179dbe8ff63549631d9a5eb28262b10596a6f26e245ab2cf16402a6466e37b81a42760f811808796d1e83dd205125c0e64e1330772bd
[kubernetes-client-darwin-arm64.tar.gz](https://dl.k8s.io/v1.36.0-alpha.1/kubernetes-client-darwin-arm64.tar.gz) | e56eb183ba431d530b6cbd83ee94c1c398f3f4969cdee247092738a5cbe2b567d705788f95adec2f13cf17ebd791165903a0f1fcac9fcbf36ed65b9a00f38ac3
[kubernetes-client-linux-386.tar.gz](https://dl.k8s.io/v1.36.0-alpha.1/kubernetes-client-linux-386.tar.gz) | 1a65eb81a4cf1631fa6fb102f2dfcffd29732bb96479c0432c9780f2dcb4600f8c85991b0f68f038ae963348d39291c74a855a71705093ecc09218ee4ed5271c
[kubernetes-client-linux-amd64.tar.gz](https://dl.k8s.io/v1.36.0-alpha.1/kubernetes-client-linux-amd64.tar.gz) | a1824ed2091dac2289c99c67e504b01b0176657675496752136a630ecf57347e0a5578a21c3bd74d0baad995d1e99ba0c78b5dfc2a61316227171c25a216111b
[kubernetes-client-linux-arm.tar.gz](https://dl.k8s.io/v1.36.0-alpha.1/kubernetes-client-linux-arm.tar.gz) | 9e368482df69b6990c917d6df0f3589851d72bcd7304226970eae32898baeb76e5955e93bda577d72231ca2342562ab91dfecb19dd5479f91352a4577f8f7d92
[kubernetes-client-linux-arm64.tar.gz](https://dl.k8s.io/v1.36.0-alpha.1/kubernetes-client-linux-arm64.tar.gz) | 7894d5868aa7888a26648ea338fbe63031e2b3ce0919a337e69cba002c369a0bbe6971ed7add1fd5e2284ebc696f9bb9c0180c298fe349140482b2e93a51d72a
[kubernetes-client-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.36.0-alpha.1/kubernetes-client-linux-ppc64le.tar.gz) | ae379c93762b86b8ddd1f1076b2e37c2866991e5a5700eb08ff5b65aaeca552764c6bb0506376b502e67f1734f5655b59ca4aa751b572667a9522065822874f1
[kubernetes-client-linux-s390x.tar.gz](https://dl.k8s.io/v1.36.0-alpha.1/kubernetes-client-linux-s390x.tar.gz) | 316d1093cd109d91b55c5ca18a8aa2d0e04feb29bb688b3d52018818329519c8fa6b226de8505de3ced920c064b8f150dccb2829d2bb2a4bed594e4d663377cd
[kubernetes-client-windows-386.tar.gz](https://dl.k8s.io/v1.36.0-alpha.1/kubernetes-client-windows-386.tar.gz) | 48f7ca49e081393474c644c31a7bae8810dfc7673c2f1800207960ea14e73616e1b7717d312e4787e8b5179c5a46a256cdbaa80e01cdf37cf999f370a17060e1
[kubernetes-client-windows-amd64.tar.gz](https://dl.k8s.io/v1.36.0-alpha.1/kubernetes-client-windows-amd64.tar.gz) | d70670136a91a5f81f7b030f258881917371102e958382d3dfef425d5d76718cc242d7ee86dbaaaa5705e019b4178e323a29cc0d4ace6d803550ea8d412189e2
[kubernetes-client-windows-arm64.tar.gz](https://dl.k8s.io/v1.36.0-alpha.1/kubernetes-client-windows-arm64.tar.gz) | 99c08b44870989a9629573f110317215e4ec177a25298e28f497deb75867838085b987a100c8ee678ccf1345e4cef075d159c5cb9198a3a342a92733309820d5
### Server Binaries
filename | sha512 hash
-------- | -----------
[kubernetes-server-linux-amd64.tar.gz](https://dl.k8s.io/v1.36.0-alpha.1/kubernetes-server-linux-amd64.tar.gz) | 9208265b86d2d7ebf8dd8f771a586de571aa07ab54c1d7428deb8803dbf63f2e396e30b103cac4da8ddf791be8b66dfce90e428906ec2d59e485953a6b6e1b7b
[kubernetes-server-linux-arm64.tar.gz](https://dl.k8s.io/v1.36.0-alpha.1/kubernetes-server-linux-arm64.tar.gz) | 704ce893ee7b239194aae37b608b175940efbf60072622a661d866221f6fdba9c6b6c4ca11008bf2be1cf2c70cb9f6e5aece9052efa2468c1e3b73510c35d2f0
[kubernetes-server-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.36.0-alpha.1/kubernetes-server-linux-ppc64le.tar.gz) | 99cc1cf4169b4c8a00b7e7e4f49c98703e0191dd0aa0e4f641a0b35a92e7d5df14587d5b56f571fa4d00290d806bbf916cb3d934537883f9364a04d66d0ba958
[kubernetes-server-linux-s390x.tar.gz](https://dl.k8s.io/v1.36.0-alpha.1/kubernetes-server-linux-s390x.tar.gz) | ea9ac2489aa2b8d9a0bd8a8a12958b754edd0c9227aaee23dadf7fc7711cab5033edcb85dc545e6bd8cb78336e073b2cfb8ed8655932b91a4d8d22c3eb3dfb90
### Node Binaries
filename | sha512 hash
-------- | -----------
[kubernetes-node-linux-amd64.tar.gz](https://dl.k8s.io/v1.36.0-alpha.1/kubernetes-node-linux-amd64.tar.gz) | 1cff3dd843e8ffbe2728967c3520bb000a551573fc9049fb4d3e6734d76a9ea72a2e54a0eca18bf68b0f023106714a877fb01b2e942720b707f738df1709361d
[kubernetes-node-linux-arm64.tar.gz](https://dl.k8s.io/v1.36.0-alpha.1/kubernetes-node-linux-arm64.tar.gz) | 55a65f51bc9d25ca2993bf2d277e1ceadc585d8af90e3f92b9b6fd682b7fa78f8fd0bb4bba127143825c70227d8815b037159feb8a319c0b4fb406e3b4dfa913
[kubernetes-node-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.36.0-alpha.1/kubernetes-node-linux-ppc64le.tar.gz) | e67d17e2d38716e6d20a777d360454f0a0e04d8f5dc94f8888c823df55ddb96973e819229e043d0e9a7f25027f4f64583f13443d633f568b62237e1fcceae8b4
[kubernetes-node-linux-s390x.tar.gz](https://dl.k8s.io/v1.36.0-alpha.1/kubernetes-node-linux-s390x.tar.gz) | 807376145bb55d7b534523c18fac4f61ddb8d20e0646c2152de28cd547f1ef82787f01e8b43a7ea1128a9c76c7ee14183e28629032396ff124629c1a6c6c9ab4
[kubernetes-node-windows-amd64.tar.gz](https://dl.k8s.io/v1.36.0-alpha.1/kubernetes-node-windows-amd64.tar.gz) | 1f204db26af19933504f50292513ea3e238f57ac9bc8c4faad8a71271cd2c2920515ad0267ed87618ac4d6f510f111fe5a2feeebe084425b0f369905f577cac8
### Container Images
All container images are available as manifest lists and support the described
architectures. It is also possible to pull a specific architecture directly by
adding the "-$ARCH" suffix to the container image name.
name | architectures
---- | -------------
[registry.k8s.io/conformance:v1.36.0-alpha.1](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/conformance) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/conformance-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/conformance-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/conformance-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/conformance-s390x)
[registry.k8s.io/kube-apiserver:v1.36.0-alpha.1](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-apiserver) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-apiserver-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-apiserver-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-apiserver-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-apiserver-s390x)
[registry.k8s.io/kube-controller-manager:v1.36.0-alpha.1](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-controller-manager) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-controller-manager-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-controller-manager-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-controller-manager-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-controller-manager-s390x)
[registry.k8s.io/kube-proxy:v1.36.0-alpha.1](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-proxy) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-proxy-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-proxy-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-proxy-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-proxy-s390x)
[registry.k8s.io/kube-scheduler:v1.36.0-alpha.1](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-scheduler) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-scheduler-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-scheduler-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-scheduler-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kube-scheduler-s390x)
[registry.k8s.io/kubectl:v1.36.0-alpha.1](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kubectl) | [amd64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kubectl-amd64), [arm64](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kubectl-arm64), [ppc64le](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kubectl-ppc64le), [s390x](https://console.cloud.google.com/artifacts/docker/k8s-artifacts-prod/southamerica-east1/images/kubectl-s390x)
## Changelog since v1.35.0
## Urgent Upgrade Notes
### (No, really, you MUST read this before you upgrade)
- Added support for running PreBind plugins in parallel in the scheduler framework to improve the binding latency.
Plugins can now opt-in to parallel execution by returning `AllowParallel: true` from the PreBindPreFlight method. PreBind plugin implementations need to be updated to return the PreBindPreFlightResult from the PreBindPreFlight method; returning nil retains the existing sequential behavior. ([#135393](https://github.com/kubernetes/kubernetes/pull/135393), [@tosi3k](https://github.com/tosi3k)) [SIG Node, Scheduling, Storage and Testing]
## Changes by Kind
### Dependency
- Fix a bug where pod lifecycle hooks could run for their full duration when pods are terminated. ([#136598](https://github.com/kubernetes/kubernetes/pull/136598), [@dgrisonnet](https://github.com/dgrisonnet)) [SIG API Machinery, Auth, Cloud Provider, Node and Scheduling]
### API Change
- Add --concurrent-resourceclaim-syncs to configure kube-controller-manager resource claim reconcile concurrency ([#134701](https://github.com/kubernetes/kubernetes/pull/134701), [@anson627](https://github.com/anson627)) [SIG API Machinery, Apps, Node and Testing]
- Added negative duration validation for imageMinimumGCAge ([#135997](https://github.com/kubernetes/kubernetes/pull/135997), [@ngopalak-redhat](https://github.com/ngopalak-redhat)) [SIG API Machinery and Node]
- Clarified documentation and comments to indicate that the `cpuCFSQuotaPeriod` kubelet config field requires the `CustomCPUCFSQuotaPeriod` feature gate when using non-default values. No functional changes introduced. ([#133845](https://github.com/kubernetes/kubernetes/pull/133845), [@rbiamru](https://github.com/rbiamru)) [SIG Node and Release]
- Correct openapi schema union validation for the PodGroupPolicy struct in scheduling v1alpha1 ([#136424](https://github.com/kubernetes/kubernetes/pull/136424), [@JoelSpeed](https://github.com/JoelSpeed)) [SIG API Machinery and Scheduling]
- Fixed a potential nil pointer dereference in the scheduler's NodeResourcesFitArgs validation when using RequestedToCapacityRatio scoring strategy ([#132120](https://github.com/kubernetes/kubernetes/pull/132120), [@flpanbin](https://github.com/flpanbin)) [SIG Scheduling]
- Fixes `fake.NewClientset()` to work properly with correct schema. ([#131068](https://github.com/kubernetes/kubernetes/pull/131068), [@soltysh](https://github.com/soltysh)) [SIG API Machinery]
- Generate fake.NewClientset which replace the deprecated NewSimpleClientset, for kube-aggregator and sample-apiserver ([#136537](https://github.com/kubernetes/kubernetes/pull/136537), [@soltysh](https://github.com/soltysh)) [SIG API Machinery]
- Graduate watch_list_duration_seconds from ALPHA to BETA ([#136086](https://github.com/kubernetes/kubernetes/pull/136086), [@richabanker](https://github.com/richabanker)) [SIG API Machinery, Instrumentation, Node and Testing]
- Kube-apiserver: the `--audit-policy-file` config file now supports specifying `group: "*"` in resources rules to match all API groups ([#135262](https://github.com/kubernetes/kubernetes/pull/135262), [@cmuuss](https://github.com/cmuuss)) [SIG API Machinery, Auth and Testing]
- Kube-controller-manager: alpha gauge metrics for informer queue length are now published as `informer_queued_items{name=kube-controller-manager,group=<group>,resource=<resource>,version=<version>} <count>` ([#135782](https://github.com/kubernetes/kubernetes/pull/135782), [@richabanker](https://github.com/richabanker)) [SIG API Machinery, Architecture, Instrumentation and Testing]
- Locked the feature-gate VolumeAttributesClass to default (true) and bump VolumeAttributesClass preferred storage version to `storage.k8s.io/v1` ([#134556](https://github.com/kubernetes/kubernetes/pull/134556), [@carlory](https://github.com/carlory)) [SIG API Machinery, Apps, Etcd, Network, Node, Scheduling, Storage and Testing]
- Promote workqueue metrics from ALPHA to BETA ([#135522](https://github.com/kubernetes/kubernetes/pull/135522), [@petern48](https://github.com/petern48)) [SIG Architecture, Instrumentation and Testing]
- Removed the generally available feature gate `CSIMigrationPortworx`, which was locked and enabled since 1.33.
- Removed alpha feature gate `InTreePluginPortworxUnregister`
- Removed Portworx volume plugin from in-tree plugins because all operations are redirected to CSI. ([#135322](https://github.com/kubernetes/kubernetes/pull/135322), [@carlory](https://github.com/carlory)) [SIG API Machinery, Apps, Auth, Node, Scalability, Scheduling, Storage and Testing]
- The ImageVolumeWithDigest is added which adds the digest of image volumes to the container's status. ([#132807](https://github.com/kubernetes/kubernetes/pull/132807), [@iholder101](https://github.com/iholder101)) [SIG API Machinery, Apps, Node and Testing]
- The `endpoints` field in discovery.k8s.io/v1 EndpointSlice is now correctly defined as optional in the OpenAPI specification, matching the server's behavior. ([#136111](https://github.com/kubernetes/kubernetes/pull/136111), [@aojea](https://github.com/aojea)) [SIG Network]
- Update API comments to reflect that stable state of Dynamic Resource Allocation ([#136441](https://github.com/kubernetes/kubernetes/pull/136441), [@kannon92](https://github.com/kannon92)) [SIG API Machinery]
### Feature
- Add architecture to the kernel version column in the `kubectl get node -owide` output. ([#132402](https://github.com/kubernetes/kubernetes/pull/132402), [@astraw99](https://github.com/astraw99)) [SIG CLI]
- Add the `appProtocol` field to the service describe output. ([#135744](https://github.com/kubernetes/kubernetes/pull/135744), [@ali-a-a](https://github.com/ali-a-a)) [SIG CLI]
- Add write and read permissions for workloads to the admin cluster role. Add write permissions for workloads to the edit cluster role. Add read permissions for workloads to the view cluster role. ([#135418](https://github.com/kubernetes/kubernetes/pull/135418), [@carlory](https://github.com/carlory)) [SIG Auth]
- Added ALPHA metric `scheduler_pod_scheduled_after_flush_total` to count pods scheduled after being flushed from unschedulablePods due to timeout ([#135126](https://github.com/kubernetes/kubernetes/pull/135126), [@mrvarmazyar](https://github.com/mrvarmazyar)) [SIG Scheduling]
- Added kubectl explain -r flag as a shorthand for --recursive ([#135283](https://github.com/kubernetes/kubernetes/pull/135283), [@laervn](https://github.com/laervn)) [SIG CLI]
- Align the meaning of victim metrics between async preemption and sync preemption. The definition has been standardized to refer to the number of Pods chosen as victims. ([#135955](https://github.com/kubernetes/kubernetes/pull/135955), [@utam0k](https://github.com/utam0k)) [SIG Scheduling]
- CRD validation now strictly enforces ranges for numeric formats (int32, int64, float, double) when specified in the schema. Existing objects with out-of-range values are preserved via validation ratcheting ([#136582](https://github.com/kubernetes/kubernetes/pull/136582), [@yongruilin](https://github.com/yongruilin)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Scheduling and Storage]
- Change the default debug profile from `legacy` to `general`. `legacy` profile is planned to be removed in v1.39. ([#135874](https://github.com/kubernetes/kubernetes/pull/135874), [@mochizuki875](https://github.com/mochizuki875)) [SIG CLI and Testing]
- Client-go informers can now enqueue new watch events while already-queued events are being processed. This avoids dropping watches during a burst of incoming events due to contention on slow processing. This behavior is controlled by the UnlockWhileProcessing client-go feature gate, which is enabled by default. ([#136264](https://github.com/kubernetes/kubernetes/pull/136264), [@michaelasp](https://github.com/michaelasp)) [SIG API Machinery and Scheduling]
- Client-go: Informer resync processing improved handling of Resync handling. This reduces contention on store locks between incoming events and handler updates, which may result in observable timing differences of handler invocations. This behavior is guarded by an AtomicFIFO feature gate. This gate is enabled by default in 1.36, but can be disabled if needed to temporarily regain the previous behavior. ([#136008](https://github.com/kubernetes/kubernetes/pull/136008), [@michaelasp](https://github.com/michaelasp)) [SIG API Machinery]
- Client-go: default informer behavior now updates store state with all the objects in a list or relist, before calling handler OnDelete/OnAdd/OnUpdate methods for individual items which were deleted/added/removed. This ensures that the store state which can be inspected by handlers actually corresponds to a set of objects that existed at a particular resource version on the server. This behavior is guarded by an AtomicFIFO feature gate. This gate is enabled by default in 1.36, but can be disabled if needed to temporarily regain the previous behavior. ([#135462](https://github.com/kubernetes/kubernetes/pull/135462), [@michaelasp](https://github.com/michaelasp)) [SIG API Machinery]
- Cloud Controller Manager now exports the counter metric `route_controller_route_sync_total`, which increments each time routes are synced with the cloud provider. This metric is in alpha stage. ([#136539](https://github.com/kubernetes/kubernetes/pull/136539), [@lukasmetzner](https://github.com/lukasmetzner)) [SIG API Machinery, Cloud Provider and Instrumentation]
- Enable WatchCacheInitializationPostStartHook by default ([#135777](https://github.com/kubernetes/kubernetes/pull/135777), [@serathius](https://github.com/serathius)) [SIG API Machinery]
- Graduated fine-grained kubelet API authorization to stable. ([#136116](https://github.com/kubernetes/kubernetes/pull/136116), [@vinayakankugoyal](https://github.com/vinayakankugoyal)) [SIG Node]
- ImageLocality plugin: consider ImageVolume images when scoring nodes for pod scheduling. ([#130231](https://github.com/kubernetes/kubernetes/pull/130231), [@Barakmor1](https://github.com/Barakmor1)) [SIG Scheduling]
- Kube-apiserver: Promoted `ExternalServiceAccountTokenSigner` feature to GA. ([#136118](https://github.com/kubernetes/kubernetes/pull/136118), [@HarshalNeelkamal](https://github.com/HarshalNeelkamal)) [SIG API Machinery and Auth]
- Kubeadm: Upgraded the `NodeLocalCRISocket` feature gating to GA and locked it to be enabled. ([#135742](https://github.com/kubernetes/kubernetes/pull/135742), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG Cluster Lifecycle]
- Kubeadm: added the flag --allow-deprecated-api to 'kubeadm config validate'. By default the command will print a warning for a deprecated API unless the flag is passed. Additionally, added missing support for v1beta4 UpgradeConfiguration to 'kubeadm config migrate|validate' commands. ([#135148](https://github.com/kubernetes/kubernetes/pull/135148), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]
- Kubeadm: bumped the timeout of the `kubeadm upgrade` `CreateJob` preflight check to 1 minute. This allows Windows worker nodes to have more time to run the preflight check. It uses the `pause` image, so if you are experiencing slow pull times, you can either pre-pull the new pause on the work using `kubeadm config images pull --kubernetes-version TARGET` or skip the preflight check with `--ignore-preflight-errors`. ([#136273](https://github.com/kubernetes/kubernetes/pull/136273), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]
- Kubeadm: removed the kubeadm specific feature gate ControlPlaneKubeletLocalMode which became GA in 1.35 and was locked to enabled. ([#135773](https://github.com/kubernetes/kubernetes/pull/135773), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]
- Kubeadm: when patching a Node object do not exit early on unknown (non-allowlisted) API errors. Instead, always retry within the duration of the polling for getting and patching a Node object. ([#135776](https://github.com/kubernetes/kubernetes/pull/135776), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]
- Kubectl get ingressclass now displays (default) marker for default IngressClass ([#134422](https://github.com/kubernetes/kubernetes/pull/134422), [@jaehanbyun](https://github.com/jaehanbyun)) [SIG CLI and Network]
- Kubernetes is now built using Go 1.25.6 ([#136465](https://github.com/kubernetes/kubernetes/pull/136465), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing]
- Kubernetes is now built with Go 1.25.6 ([#136257](https://github.com/kubernetes/kubernetes/pull/136257), [@BenTheElder](https://github.com/BenTheElder)) [SIG Release]
- Kubernetes is now built with Go 1.25.7 ([#136750](https://github.com/kubernetes/kubernetes/pull/136750), [@BenTheElder](https://github.com/BenTheElder)) [SIG Release]
- Promote Relaxed validation for Services names to beta (enabled by default)
Promote `RelaxedServiceNameValidation` feature to beta (enabled by default)
The names of new Services names are validation with `NameIsDNSLabel()`,
relaxing the pre-existing validation. ([#136389](https://github.com/kubernetes/kubernetes/pull/136389), [@adrianmoisey](https://github.com/adrianmoisey)) [SIG Network]
- Promoted the `CSIServiceAccountTokenSecrets` feature gate to GA. ([#136596](https://github.com/kubernetes/kubernetes/pull/136596), [@aramase](https://github.com/aramase)) [SIG Auth and Storage]
- Promoting kubectl kuberc commands to beta ([#136643](https://github.com/kubernetes/kubernetes/pull/136643), [@ardaguclu](https://github.com/ardaguclu)) [SIG CLI and Testing]
- The ResourceClaim controller now correctly handles unknown (non-pod) references in the status.reservedFor field by skipping them instead of halting the sync process. ([#136450](https://github.com/kubernetes/kubernetes/pull/136450), [@MohammedSaalif](https://github.com/MohammedSaalif)) [SIG Apps and Node]
- Update to latest cAdvisor 0.55.0 in our vendor dependencies ([#135829](https://github.com/kubernetes/kubernetes/pull/135829), [@dims](https://github.com/dims)) [SIG Node]
- Using pytorch based e2e integration test instead of tensorflow in some node e2e CI tests. ([#136397](https://github.com/kubernetes/kubernetes/pull/136397), [@dims](https://github.com/dims)) [SIG Testing]
- Using pytorch based e2e integration test instead of tensorflow in some node e2e CI tests. ([#136398](https://github.com/kubernetes/kubernetes/pull/136398), [@dims](https://github.com/dims)) [SIG Node and Testing]
### Failing Test
- Fixed device plugin test failures after kubelet restart. ([#135485](https://github.com/kubernetes/kubernetes/pull/135485), [@saschagrunert](https://github.com/saschagrunert)) [SIG Node and Testing]
### Bug or Regression
- Added extra check to prevent users to work around DRA extended resource quota set by system admin ([#135434](https://github.com/kubernetes/kubernetes/pull/135434), [@yliaog](https://github.com/yliaog)) [SIG API Machinery, Apps, Node, Scheduling and Testing]
- Aligned `kubectl label` output message to include 'modified' when labels are both added and removed ([#134849](https://github.com/kubernetes/kubernetes/pull/134849), [@tchap](https://github.com/tchap)) [SIG CLI]
- Apiserver liveness probes will now fail when the loopback client certificate expires. ([#136477](https://github.com/kubernetes/kubernetes/pull/136477), [@everettraven](https://github.com/everettraven)) [SIG API Machinery and Testing]
- Changed the behavior of default scheduler preemption plugin when preempting pods that are in "WaitOnPermit" phase. They are now moved to the scheduler backoff queue instead of being marked as unschedulable. ([#135719](https://github.com/kubernetes/kubernetes/pull/135719), [@Argh4k](https://github.com/Argh4k)) [SIG Scheduling and Testing]
- Changes some instances of error logs to info logs with verbosity level inside of controller/resourcequota and controller/garbagecollector ([#136040](https://github.com/kubernetes/kubernetes/pull/136040), [@petern48](https://github.com/petern48)) [SIG API Machinery and Apps]
- Changes the nodeGetCapabilities method of csiDriverClient returning NewUncertainProgressError while received a non final GRPC error ([#135930](https://github.com/kubernetes/kubernetes/pull/135930), [@249043822](https://github.com/249043822)) [SIG Node and Storage]
- Client-go informers: fix an unlikely deadlock during informer startup. ([#136509](https://github.com/kubernetes/kubernetes/pull/136509), [@pohly](https://github.com/pohly)) [SIG API Machinery]
- DRA: when scheduling many pods very rapidly, sometimes the same device was allocated twice for different ResourceClaims due races between data processing in different goroutines. Depending on whether DRA drivers check for this during NodePrepareResources (they should, but maybe not all implement this properly), the second pod using the same device then failed to start until the first one is done or (worse) ran in parallel. ([#136269](https://github.com/kubernetes/kubernetes/pull/136269), [@pohly](https://github.com/pohly)) [SIG Node, Scheduling and Testing]
- Disabled `SchedulerAsyncAPICalls` feature gate due to performance issues caused by API client throttling. ([#135903](https://github.com/kubernetes/kubernetes/pull/135903), [@macsko](https://github.com/macsko)) [SIG Scheduling]
- Ensures a couple of feature gates - ChangeContainerStatusOnKubeletRestart and StatefulSetSemanticRevisionComparison are visible from the "--help" in different components ([#135515](https://github.com/kubernetes/kubernetes/pull/135515), [@dims](https://github.com/dims)) [SIG Architecture]
- Fix a nil pointer dereference in Kubelet when handling pod updates of mirror pods with the NodeDeclaredFeatures feature gate enabled. ([#136037](https://github.com/kubernetes/kubernetes/pull/136037), [@pravk03](https://github.com/pravk03)) [SIG Node]
- Fix apiserver request latency annotation in the audit log when request took more than 500ms ([#135685](https://github.com/kubernetes/kubernetes/pull/135685), [@chaochn47](https://github.com/chaochn47)) [SIG API Machinery]
- Fix data race in kubelet container manager. ([#136206](https://github.com/kubernetes/kubernetes/pull/136206), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG Node]
- Fix data race in kubelet pod allocated resources. ([#136226](https://github.com/kubernetes/kubernetes/pull/136226), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG Node]
- Fix data race in kubelet status manager. ([#136205](https://github.com/kubernetes/kubernetes/pull/136205), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG Node]
- Fix issues where server side apply patches operations incorrectly treat empty arrays and maps as absent.
Fix issue where client-go's `Extract{TypeName}()` and `Extract{TypeName}From() functions incorrectly treat empty arrays and maps as absent.
Fix issue where client-go's `Extract{TypeName}()` and `Extract{TypeName}From() functions would incorrectly duplicate atomic elements from associative lists. ([#135391](https://github.com/kubernetes/kubernetes/pull/135391), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Network, Node, Scheduling and Storage]
- Fix log verbosity level in apiserver's unsafe delete authorization check that was incorrectly using Error level instead of Info level ([#136229](https://github.com/kubernetes/kubernetes/pull/136229), [@thc1006](https://github.com/thc1006)) [SIG API Machinery]
- Fix queue hint for the interpodaffinity plugin in case target pod labels change ([#135394](https://github.com/kubernetes/kubernetes/pull/135394), [@brejman](https://github.com/brejman)) [SIG Scheduling]
- Fix static pod status is always Init:0/1 if unable to get init container status from container runtime. ([#131317](https://github.com/kubernetes/kubernetes/pull/131317), [@bitoku](https://github.com/bitoku)) [SIG Node and Testing]
- Fix the log verbosity level of some non-error logs that were incorrectly logged at error level ([#136046](https://github.com/kubernetes/kubernetes/pull/136046), [@Tanner-Gladson](https://github.com/Tanner-Gladson)) [SIG API Machinery and Apps]
- Fix the log verbosity level of some non-error logs that were incorrectly logged at error level ([#136050](https://github.com/kubernetes/kubernetes/pull/136050), [@ShaanveerS](https://github.com/ShaanveerS)) [SIG Apps and Storage]
- Fixed SELinux warning controller not to emit events for completed pods. ([#135629](https://github.com/kubernetes/kubernetes/pull/135629), [@jsafrane](https://github.com/jsafrane)) [SIG Apps, Storage and Testing]
- Fixed a bug causing clients to error out when decoding large CBOR encoded lists. ([#135340](https://github.com/kubernetes/kubernetes/pull/135340), [@ricardomaraschini](https://github.com/ricardomaraschini)) [SIG API Machinery]
- Fixed a bug in DeepEqualWithNilDifferentFromEmpty where empty slices/maps were incorrectly considered equal to non-empty ones due to using OR (||) instead of AND (&&) logic. This could cause managed fields timestamps to not update when the only change was adding or removing all elements from a list or map. ([#135636](https://github.com/kubernetes/kubernetes/pull/135636), [@mikecook](https://github.com/mikecook)) [SIG API Machinery]
- Fixed a bug in the `dra_operations_duration_seconds` metric where the `is_error` label was recording inverted values. Error operations now correctly report `is_error="true"`, and successful operations report `is_error="false"`. ([#135227](https://github.com/kubernetes/kubernetes/pull/135227), [@hime](https://github.com/hime)) [SIG Node]
- Fixed a bug that caused endpoint slice churn for headless services with no ports defined (#133474) ([#136502](https://github.com/kubernetes/kubernetes/pull/136502), [@tzneal](https://github.com/tzneal)) [SIG Network]
- Fixed a bug where `kubectl apply --dry-run=client` would only output server state instead of merged manifest values when the resource already exists. ([#135513](https://github.com/kubernetes/kubernetes/pull/135513), [@grandeit](https://github.com/grandeit)) [SIG CLI]
- Fixed a bug where the Gated pods metric was not updated when a Pod transitioned from Unschedulable to Gated during an update. ([#135368](https://github.com/kubernetes/kubernetes/pull/135368), [@vshkrabkov](https://github.com/vshkrabkov)) [SIG Scheduling]
- Fixed a bug where the `scheduler_unschedulable_pods` metric could be artificially inflated (leak) when a pod fails `PreEnqueue` plugins after being previously marked unschedulable. ([#135981](https://github.com/kubernetes/kubernetes/pull/135981), [@vshkrabkov](https://github.com/vshkrabkov)) [SIG Scheduling]
- Fixed a panic in `kubectl exec` when the terminal size queue delegate is uninitialized. ([#135918](https://github.com/kubernetes/kubernetes/pull/135918), [@MarcosDaNight](https://github.com/MarcosDaNight)) [SIG CLI]
- Fixed a panic in kubectl when processing pods with nil resource requests but populated container status resources. ([#136534](https://github.com/kubernetes/kubernetes/pull/136534), [@dmaizel](https://github.com/dmaizel)) [SIG CLI]
- Fixed a race condition in the CEL compiler that could occur when initializing composited policies concurrently.
### Description
Fixes a fatal crash (concurrent map read/write) in `NewCompositedCompilerFromTemplate`.
The `NewCompositedCompilerFromTemplate` function previously performed a shallow copy of `CompositionEnv`, sharing the `MapType` pointer across all compilers. Under high concurrency, this caused a race condition when `FindStructFieldType` (reader) and `AddField` (writer) accessed `MapType.Fields` simultaneously, leading to an APIServer panic.
This change implements a deep copy of the `Fields` map for each composition environment, ensuring thread safety.
### Issue
Fixes #135757 ([#135759](https://github.com/kubernetes/kubernetes/pull/135759), [@Abhigyan-Shekhar](https://github.com/Abhigyan-Shekhar)) [SIG API Machinery and CLI]
- Fixed an issue in the Windows kube-proxy (winkernel) where IPv4 and IPv6 Service load balancers could be incorrectly shared, causing broken dual-stack Service behavior. The kube-proxy now tracks load balancers per IP family, enabling correct support for PreferDualStack and RequireDualStack Services on Windows nodes. ([#136241](https://github.com/kubernetes/kubernetes/pull/136241), [@princepereira](https://github.com/princepereira)) [SIG Network and Windows]
- Fixed issue where `kubectl run -i/-it` would miss container output written before the attach connection was established. ([#136010](https://github.com/kubernetes/kubernetes/pull/136010), [@olamilekan000](https://github.com/olamilekan000)) [SIG CLI]
- Fixed kubelet logging to properly respect verbosity levels. Previously, some debug/info messages using V().Error() would always be printed regardless of the configured log verbosity. ([#136028](https://github.com/kubernetes/kubernetes/pull/136028), [@thc1006](https://github.com/thc1006)) [SIG Node]
- Fixed queue hint for certain plugins on change to pods with nominated nodes ([#135392](https://github.com/kubernetes/kubernetes/pull/135392), [@brejman](https://github.com/brejman)) [SIG Scheduling]
- Fixed queue hint for inter-pod anti-affinity in case deleted pod's anti-affinity matched the pending pod, which might have caused delays in scheduling. ([#135325](https://github.com/kubernetes/kubernetes/pull/135325), [@brejman](https://github.com/brejman)) [SIG Scheduling and Testing]
- Fixed volumeattachment cleanup in kube-controller-manager when CSI's attachRequired switches from true to false ([#129664](https://github.com/kubernetes/kubernetes/pull/129664), [@hkttty2009](https://github.com/hkttty2009)) [SIG Storage and Testing]
- Fixes a 1.29 regression in the apiserver_watch_events_sizes metric to report total outgoing watch traffic again ([#135367](https://github.com/kubernetes/kubernetes/pull/135367), [@mborsz](https://github.com/mborsz)) [SIG API Machinery]
- Fixes a 1.34 regression starting pods with environment variables with a value containing `$` followed by a multi-byte character ([#136325](https://github.com/kubernetes/kubernetes/pull/136325), [@AutuSnow](https://github.com/AutuSnow)) [SIG Architecture]
- Fixes a 1.34+ regression in ipvs and winkernel kube-proxy backends; these are now reverted back to their
pre-1.34 behavior of regularly rechecking all of their rules even when no
Services or EndpointSlices change. ([#135631](https://github.com/kubernetes/kubernetes/pull/135631), [@danwinship](https://github.com/danwinship)) [SIG Network and Windows]
- Fixes kube-proxy log spam when all of a Service's endpoints were unready. ([#136743](https://github.com/kubernetes/kubernetes/pull/136743), [@ansilh](https://github.com/ansilh)) [SIG Network]
- Kube-apiserver: setting `--audit-log-maxsize=0` now disables audit log rotation (the default remains `100` MB). In order to avoid outages due to filling disks with ever-growing audit logs, `--audit-log-maxage` now defaults to 366 (1 year) and `--audit-log-maxbackup` now defaults to 100. If retention of all rotated logs is desired, age and count-based pruning can be disabled by explicitly specifying `--audit-log-maxage=0` and `--audit-log-maxbackup=0`. ([#136478](https://github.com/kubernetes/kubernetes/pull/136478), [@kairosci](https://github.com/kairosci)) [SIG API Machinery]
- Kube-proxy now correctly handles the case where a pod IP gets assigned to
a newly-created pod when the pod that previously had that IP has been
terminated but is not yet fully deleted. ([#135593](https://github.com/kubernetes/kubernetes/pull/135593), [@danwinship](https://github.com/danwinship)) [SIG Network]
- Kubeadm: fix a bug where kubeadm upgrade is failed if the content of the `kubeadm-flags.env` file is `KUBELET_KUBEADM_ARGS=""` ([#136127](https://github.com/kubernetes/kubernetes/pull/136127), [@carlory](https://github.com/carlory)) [SIG Cluster Lifecycle]
- Kubeadm: waiting for etcd learner member to be started before promoting during 'kubeadm join' ([#136014](https://github.com/kubernetes/kubernetes/pull/136014), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle]
- Kubeadm: when applying the overrides provided by the user using "extraArgs", do not sort the resulted list of arguments alpha-numerically. Instead, only sort the list of default arguments and keep the list of overrides unsorted. This allows finer control for flags which have an order that matters, such as, "--service-account-issuer" for kube-apiserver. ([#135400](https://github.com/kubernetes/kubernetes/pull/135400), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]
- Kubectl: fixes kyaml output of `kubectl get ... --output-watch-events -o kyaml` ([#136110](https://github.com/kubernetes/kubernetes/pull/136110), [@liggitt](https://github.com/liggitt)) [SIG CLI]
- Kubelet(dra): correctly handles multiple ResourceClaims even if one is already prepared ([#135919](https://github.com/kubernetes/kubernetes/pull/135919), [@rogowski-piotr](https://github.com/rogowski-piotr)) [SIG Node and Testing]
- Kubelet: fix data race in volume manager's WaitForAllPodsUnmount that could cause errors to be lost during concurrent pod unmount operations. ([#135794](https://github.com/kubernetes/kubernetes/pull/135794), [@AutuSnow](https://github.com/AutuSnow)) [SIG Node and Storage]
- Kubelet: fixed reloading of kubelet server certificate files when they are changed on disk, and kubelet is dialed by IP address instead of DNS/hostname ([#133654](https://github.com/kubernetes/kubernetes/pull/133654), [@kwohlfahrt](https://github.com/kwohlfahrt)) [SIG API Machinery, Auth, Node and Testing]
- Optimized kube-proxy conntrack cleanup logic, reducing the time complexity of deleting stale UDP entries. This significantly improves performance when there are many stale connections to clean up. ([#135511](https://github.com/kubernetes/kubernetes/pull/135511), [@aojea](https://github.com/aojea)) [SIG Network]
- ReadWriteOncePod preemption e2e test no longer causes other random e2e tests to flake randomly. ([#135623](https://github.com/kubernetes/kubernetes/pull/135623), [@jsafrane](https://github.com/jsafrane)) [SIG Storage and Testing]
- Sort runtime handlers list coming from the CRI runtime ([#135358](https://github.com/kubernetes/kubernetes/pull/135358), [@harche](https://github.com/harche)) [SIG Node]
- StatefulSets should always count `.status.availableReplicas` at the correct time without a delay. This results in faster progress of StatefulSet rollout. ([#135428](https://github.com/kubernetes/kubernetes/pull/135428), [@atiratree](https://github.com/atiratree)) [SIG Apps]
- The kubelet plugin manager now properly handles plugin registration failures by removing failed plugins from the actual state and retrying with exponential backoff (initial delay 500ms, doubling each failure up to ~2 minutes maximum) to protect against broken plugins causing denial of service while still allowing recovery from transient failures. ([#133335](https://github.com/kubernetes/kubernetes/pull/133335), [@bart0sh](https://github.com/bart0sh)) [SIG Node, Storage and Testing]
- The nftables mode of kube-proxy now uses less CPU when loading
very large rulesets. ([#135800](https://github.com/kubernetes/kubernetes/pull/135800), [@danwinship](https://github.com/danwinship)) [SIG Network]
- Updated `NodeResourcesBalancedAllocation` scoring algorithm to align with the documentation. The score will now take into consideration both balance with and without the requested pod. Previous algorithm only considered balance with the requested pod. This can change the scheduling decisions in some cases. ([#135573](https://github.com/kubernetes/kubernetes/pull/135573), [@brejman](https://github.com/brejman)) [SIG Scheduling]
- When use kubectl command to delete multiple sts pods, the kubectl command deletes pods and exits normally. ([#135563](https://github.com/kubernetes/kubernetes/pull/135563), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) [SIG CLI, Network and Node]
### Other (Cleanup or Flake)
- Added missing tests for client-go metrics ([#136052](https://github.com/kubernetes/kubernetes/pull/136052), [@sreeram-venkitesh](https://github.com/sreeram-venkitesh)) [SIG Architecture and Instrumentation]
- Adds audit-id to 'Starting watch' log line ([#136084](https://github.com/kubernetes/kubernetes/pull/136084), [@richabanker](https://github.com/richabanker)) [SIG API Machinery]
- Adds explicit logging when WatchList requests complete their initial listing phase. ([#136085](https://github.com/kubernetes/kubernetes/pull/136085), [@richabanker](https://github.com/richabanker)) [SIG API Machinery]
- Client-go: Reflector no longer gets confused about the resource version it should use to restart a watch while receiving synthetic ADDED events at the beginning of a watch from resourceVersion "0" or "". ([#136583](https://github.com/kubernetes/kubernetes/pull/136583), [@michaelasp](https://github.com/michaelasp)) [SIG API Machinery]
- Client-go: fake client-go (i.e. anything using k8s.io/client-go/testing) now supports separate List+Watch calls with checking of ResourceVersion in the Watch call. This closes a race condition where creating an object directly after an informer cache has synced (= List call completed) and before the Watch call completed would cause that object to not be sent to the informer. A visible side-effect of adding that support is that List meta data contains a ResourceVersion (starting at "1" for the empty set, incremented by one for each add/update) and that Watch may return objects where it previously didn't.
Note that this List+Watch is not to be confused with the ListWatch feature, which uses a single call. That feature is still not supported by fake client-go. ([#136143](https://github.com/kubernetes/kubernetes/pull/136143), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth and CLI]
- DRA device taint eviction: the controller might have reported "1 pod needs to be evicted in 1 namespace. 1 pod evicted since starting the controller." when only a single pod is involved, depending on timing (pod evicted, informer cache not updated yet). It would eventually arrive at the correct "1 pod evicted since starting the controller.", but now it tries harder to avoid the confusing intermediate state by delaying the status update after eviction. ([#135611](https://github.com/kubernetes/kubernetes/pull/135611), [@Karthik-K-N](https://github.com/Karthik-K-N)) [SIG Apps and Scheduling]
- DRA: Fixed Kubelet admission to correctly handle DRA-backed extended resources, allowing pods to be admitted even when these resources are not present in the node's allocatable capacity. ([#135725](https://github.com/kubernetes/kubernetes/pull/135725), [@bart0sh](https://github.com/bart0sh)) [SIG Node, Scheduling and Testing]
- Enables YAML support for statusz and flagz. ([#135309](https://github.com/kubernetes/kubernetes/pull/135309), [@richabanker](https://github.com/richabanker)) [SIG API Machinery, Instrumentation and Testing]
- Kubeadm: removed the cleanup of the "--pod-infra-container-image" kubelet flag from the "/var/lib/kubelet/kubeadm-flags.env" on upgrade. This cleanup was necessary when upgrading to 1.35. ([#135807](https://github.com/kubernetes/kubernetes/pull/135807), [@carlory](https://github.com/carlory)) [SIG Cluster Lifecycle]
- Kubeadm: removed usage of the deprecated flags '--experimental-initial-corrupt-check' and '--experimental-watch-progress-notify-interval' if the etcd version is < 3.6.0. In this version of kubeadm, etcd < 3.6.0 is no longer supported in terms of the k8s / etcd version mapping. These deprecated flags have been replaced by '--feature-gates=InitialCorruptCheck=true' and '--watch-progress-notify-interval'. ([#135701](https://github.com/kubernetes/kubernetes/pull/135701), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]
- Lock the `DisableNodeKubeProxyVersion` feature gate to be enabled by default. ([#136673](https://github.com/kubernetes/kubernetes/pull/136673), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG CLI and Network]
- Remove WatchFromStorageWithoutResourceVersion feature gate ([#136066](https://github.com/kubernetes/kubernetes/pull/136066), [@serathius](https://github.com/serathius)) [SIG API Machinery]
- Remove event listing behavior when describing a removed pod from file. ([#135281](https://github.com/kubernetes/kubernetes/pull/135281), [@scaliby](https://github.com/scaliby)) [SIG CLI]
- Renamed PodGroupInfo to PodGroupState, which can break custom scheduler plugins that use Handle.WorkloadManager ([#136344](https://github.com/kubernetes/kubernetes/pull/136344), [@brejman](https://github.com/brejman)) [SIG Scheduling]
- Set InOrderInformers to GA via the usage of RealFIFO, this means that DeltaFIFO will gradually be deprecated in favor of RealFIFO in internal implementations. ([#136601](https://github.com/kubernetes/kubernetes/pull/136601), [@michaelasp](https://github.com/michaelasp)) [SIG API Machinery]
- Updated cri-tools to v1.35.0. ([#135694](https://github.com/kubernetes/kubernetes/pull/135694), [@saschagrunert](https://github.com/saschagrunert)) [SIG Cloud Provider and Node]
- Updates the etcd client library to v3.6.6 ([#135331](https://github.com/kubernetes/kubernetes/pull/135331), [@yashsingh74](https://github.com/yashsingh74)) [SIG API Machinery, Auth, Cloud Provider, Etcd, Node and Scheduling]
- Updates the etcd client library to v3.6.7 ([#136407](https://github.com/kubernetes/kubernetes/pull/136407), [@ivanvc](https://github.com/ivanvc)) [SIG API Machinery, Auth, Cloud Provider, Node and Scheduling]
## Dependencies
### Added
- buf.build/go/protovalidate: v0.12.0
- github.com/cenkalti/backoff/v5: [v5.0.3](https://github.com/cenkalti/backoff/tree/v5.0.3)
- github.com/moby/moby/api: [v1.52.0](https://github.com/moby/moby/tree/api/v1.52.0)
- github.com/moby/moby/client: [v0.2.1](https://github.com/moby/moby/tree/client/v0.2.1)
- go.opentelemetry.io/otel/exporters/stdout/stdouttrace: v1.39.0
- gonum.org/v1/gonum: v0.16.0
### Changed
- buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go: 63bb56e → 8976f5b
- cloud.google.com/go/compute/metadata: v0.7.0 → v0.9.0
- cyphar.com/go-pathrs: v0.2.1 → v0.2.2
- github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp: [v1.26.0 → v1.30.0](https://github.com/GoogleCloudPlatform/opentelemetry-operations-go/compare/detectors/gcp/v1.26.0...detectors/gcp/v1.30.0)
- github.com/Microsoft/hnslib: [v0.1.1 → v0.1.2](https://github.com/Microsoft/hnslib/compare/v0.1.1...v0.1.2)
- github.com/alecthomas/units: [b94a6e3 → 0f3dac3](https://github.com/alecthomas/units/compare/b94a6e3...0f3dac3)
- github.com/cncf/xds/go: [2f00578 → 0feb691](https://github.com/cncf/xds/compare/2f00578...0feb691)
- github.com/containerd/containerd/api: [v1.9.0 → v1.10.0](https://github.com/containerd/containerd/compare/api/v1.9.0...api/v1.10.0)
- github.com/coredns/corefile-migration: [v1.0.29 → v1.0.30](https://github.com/coredns/corefile-migration/compare/v1.0.29...v1.0.30)
- github.com/coreos/go-oidc: [v2.3.0+incompatible → v2.5.0+incompatible](https://github.com/coreos/go-oidc/compare/v2.3.0...v2.5.0)
- github.com/coreos/go-systemd/v22: [v22.5.0 → v22.7.0](https://github.com/coreos/go-systemd/compare/v22.5.0...v22.7.0)
- github.com/cyphar/filepath-securejoin: [v0.6.0 → v0.6.1](https://github.com/cyphar/filepath-securejoin/compare/v0.6.0...v0.6.1)
- github.com/davecgh/go-spew: [v1.1.1 → d8f796a](https://github.com/davecgh/go-spew/compare/v1.1.1...d8f796a)
- github.com/docker/go-connections: [v0.5.0 → v0.6.0](https://github.com/docker/go-connections/compare/v0.5.0...v0.6.0)
- github.com/emicklei/go-restful/v3: [v3.12.2 → v3.13.0](https://github.com/emicklei/go-restful/compare/v3.12.2...v3.13.0)
- github.com/envoyproxy/go-control-plane/envoy: [v1.32.4 → v1.35.0](https://github.com/envoyproxy/go-control-plane/compare/envoy/v1.32.4...envoy/v1.35.0)
- github.com/envoyproxy/go-control-plane: [v0.13.4 → 75eaa19](https://github.com/envoyproxy/go-control-plane/compare/v0.13.4...75eaa19)
- github.com/go-jose/go-jose/v4: [v4.0.4 → v4.1.3](https://github.com/go-jose/go-jose/compare/v4.0.4...v4.1.3)
- github.com/godbus/dbus/v5: [v5.1.0 → v5.2.2](https://github.com/godbus/dbus/compare/v5.1.0...v5.2.2)
- github.com/golang-jwt/jwt/v5: [v5.2.2 → v5.3.0](https://github.com/golang-jwt/jwt/compare/v5.2.2...v5.3.0)
- github.com/golang/glog: [v1.2.4 → v1.2.5](https://github.com/golang/glog/compare/v1.2.4...v1.2.5)
- github.com/google/cadvisor: [v0.53.0 → v0.56.0](https://github.com/google/cadvisor/compare/v0.53.0...v0.56.0)
- github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus: [v1.0.1 → v1.1.0](https://github.com/grpc-ecosystem/go-grpc-middleware/compare/providers/prometheus/v1.0.1...providers/prometheus/v1.1.0)
- github.com/grpc-ecosystem/go-grpc-middleware/v2: [v2.3.0 → v2.3.3](https://github.com/grpc-ecosystem/go-grpc-middleware/compare/v2.3.0...v2.3.3)
- github.com/grpc-ecosystem/grpc-gateway/v2: [v2.26.3 → v2.27.4](https://github.com/grpc-ecosystem/grpc-gateway/compare/v2.26.3...v2.27.4)
- github.com/onsi/ginkgo/v2: [v2.27.2 → v2.27.4](https://github.com/onsi/ginkgo/compare/v2.27.2...v2.27.4)
- github.com/onsi/gomega: [v1.38.2 → v1.39.0](https://github.com/onsi/gomega/compare/v1.38.2...v1.39.0)
- github.com/opencontainers/cgroups: [v0.0.3 → v0.0.6](https://github.com/opencontainers/cgroups/compare/v0.0.3...v0.0.6)
- github.com/opencontainers/runc: [v1.3.0 → v1.4.0](https://github.com/opencontainers/runc/compare/v1.3.0...v1.4.0)
- github.com/opencontainers/runtime-spec: [v1.2.1 → v1.3.0](https://github.com/opencontainers/runtime-spec/compare/v1.2.1...v1.3.0)
- github.com/opencontainers/selinux: [v1.13.0 → v1.13.1](https://github.com/opencontainers/selinux/compare/v1.13.0...v1.13.1)
- github.com/pmezard/go-difflib: [v1.0.0 → 5d4384e](https://github.com/pmezard/go-difflib/compare/v1.0.0...5d4384e)
- github.com/prometheus/common: [v0.66.1 → v0.67.5](https://github.com/prometheus/common/compare/v0.66.1...v0.67.5)
- github.com/prometheus/procfs: [v0.16.1 → v0.19.2](https://github.com/prometheus/procfs/compare/v0.16.1...v0.19.2)
- github.com/spiffe/go-spiffe/v2: [v2.5.0 → v2.6.0](https://github.com/spiffe/go-spiffe/compare/v2.5.0...v2.6.0)
- go.etcd.io/etcd/api/v3: v3.6.5 → v3.6.7
- go.etcd.io/etcd/client/pkg/v3: v3.6.5 → v3.6.7
- go.etcd.io/etcd/client/v3: v3.6.5 → v3.6.7
- go.etcd.io/etcd/pkg/v3: v3.6.5 → v3.6.7
- go.etcd.io/etcd/server/v3: v3.6.5 → v3.6.7
- go.opentelemetry.io/auto/sdk: v1.1.0 → v1.2.1
- go.opentelemetry.io/contrib/detectors/gcp: v1.34.0 → v1.38.0
- go.opentelemetry.io/contrib/instrumentation/github.com/emicklei/go-restful/otelrestful: v0.44.0 → v0.64.0
- go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc: v0.60.0 → v0.63.0
- go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp: v0.61.0 → v0.64.0
- go.opentelemetry.io/contrib/propagators/b3: v1.19.0 → v1.39.0
- go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc: v1.34.0 → v1.39.0
- go.opentelemetry.io/otel/exporters/otlp/otlptrace: v1.34.0 → v1.39.0
- go.opentelemetry.io/otel/metric: v1.36.0 → v1.39.0
- go.opentelemetry.io/otel/sdk/metric: v1.36.0 → v1.39.0
- go.opentelemetry.io/otel/sdk: v1.36.0 → v1.39.0
- go.opentelemetry.io/otel/trace: v1.36.0 → v1.39.0
- go.opentelemetry.io/otel: v1.36.0 → v1.39.0
- go.opentelemetry.io/proto/otlp: v1.5.0 → v1.9.0
- go.uber.org/zap: v1.27.0 → v1.27.1
- golang.org/x/crypto: v0.45.0 → v0.47.0
- golang.org/x/exp: 8a7402a → 944ab1f
- golang.org/x/mod: v0.29.0 → v0.32.0
- golang.org/x/net: v0.47.0 → v0.49.0
- golang.org/x/oauth2: v0.30.0 → v0.34.0
- golang.org/x/sync: v0.18.0 → v0.19.0
- golang.org/x/sys: v0.38.0 → v0.40.0
- golang.org/x/telemetry: 078029d → 8fff8a5
- golang.org/x/term: v0.37.0 → v0.39.0
- golang.org/x/text: v0.31.0 → v0.33.0
- golang.org/x/time: v0.9.0 → v0.14.0
- golang.org/x/tools: v0.38.0 → v0.40.0
- google.golang.org/genproto/googleapis/api: a0af3ef → 99fd39f
- google.golang.org/genproto/googleapis/rpc: 200df99 → 99fd39f
- google.golang.org/grpc: v1.72.2 → v1.78.0
- google.golang.org/protobuf: v1.36.8 → v1.36.11
- k8s.io/kube-openapi: 589584f → a19766b
- k8s.io/utils: bc988d5 → 914a6e7
- sigs.k8s.io/apiserver-network-proxy/konnectivity-client: v0.31.2 → v0.34.0
- sigs.k8s.io/structured-merge-diff/v6: v6.3.0 → v6.3.1
### Removed
- github.com/armon/circbuf: [5111143](https://github.com/armon/circbuf/tree/5111143)
- github.com/bufbuild/protovalidate-go: [v0.9.1](https://github.com/bufbuild/protovalidate-go/tree/v0.9.1)
- github.com/docker/docker: [v28.2.2+incompatible](https://github.com/docker/docker/tree/v28.2.2)
- github.com/gregjones/httpcache: [901d907](https://github.com/gregjones/httpcache/tree/901d907)
- github.com/grpc-ecosystem/go-grpc-prometheus: [v1.2.0](https://github.com/grpc-ecosystem/go-grpc-prometheus/tree/v1.2.0)
- github.com/karrick/godirwalk: [v1.17.0](https://github.com/karrick/godirwalk/tree/v1.17.0)
- github.com/libopenstorage/openstorage: [v1.0.0](https://github.com/libopenstorage/openstorage/tree/v1.0.0)
- github.com/moby/sys/atomicwriter: [v0.1.0](https://github.com/moby/sys/tree/atomicwriter/v0.1.0)
- github.com/mohae/deepcopy: [c48cc78](https://github.com/mohae/deepcopy/tree/c48cc78)
- github.com/morikuni/aec: [v1.0.0](https://github.com/morikuni/aec/tree/v1.0.0)
- github.com/mrunalp/fileutils: [v0.5.1](https://github.com/mrunalp/fileutils/tree/v0.5.1)
- github.com/zeebo/errs: [v1.4.0](https://github.com/zeebo/errs/tree/v1.4.0)
- go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp: v1.27.0
- gotest.tools/v3: v3.0.2

View file

@ -1,5 +1,6 @@
# CHANGELOGs
- [CHANGELOG-1.36.md](./CHANGELOG-1.36.md)
- [CHANGELOG-1.35.md](./CHANGELOG-1.35.md)
- [CHANGELOG-1.34.md](./CHANGELOG-1.34.md)
- [CHANGELOG-1.33.md](./CHANGELOG-1.33.md)

View file

@ -1,24 +0,0 @@
= vendor/github.com/armon/circbuf licensed under: =
The MIT License (MIT)
Copyright (c) 2013 Armon Dadgar
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
= vendor/github.com/armon/circbuf/LICENSE d2d77030c0183e3d1e66d26dc1f243be

View file

@ -1,4 +1,4 @@
= vendor/github.com/cenkalti/backoff/v4 licensed under: =
= vendor/github.com/cenkalti/backoff/v5 licensed under: =
The MIT License (MIT)
@ -21,4 +21,4 @@ COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
= vendor/github.com/cenkalti/backoff/v4/LICENSE 1571d94433e3f3aa05267efd4dbea68b
= vendor/github.com/cenkalti/backoff/v5/LICENSE 1571d94433e3f3aa05267efd4dbea68b

View file

@ -1,10 +0,0 @@
= vendor/github.com/gregjones/httpcache licensed under: =
Copyright © 2012 Greg Jones (greg.jones@gmail.com)
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
= vendor/github.com/gregjones/httpcache/LICENSE.txt 3cfef421226b2dacde78a4871380ac24

View file

@ -1,204 +0,0 @@
= vendor/github.com/grpc-ecosystem/go-grpc-prometheus licensed under: =
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
= vendor/github.com/grpc-ecosystem/go-grpc-prometheus/LICENSE 7ab5c73bb7e4679b16dd7c11b3559acf

View file

@ -1,29 +0,0 @@
= vendor/github.com/karrick/godirwalk licensed under: =
BSD 2-Clause License
Copyright (c) 2017, Karrick McDermott
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
= vendor/github.com/karrick/godirwalk/LICENSE 7bea66fc0a31c6329f9392034bee75d2

View file

@ -1,195 +0,0 @@
= vendor/github.com/libopenstorage/openstorage licensed under: =
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
Copyright 2015 Openstorage.org.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
= vendor/github.com/libopenstorage/openstorage/LICENSE 40c3e1c9eacda859a17048003909a2f8

View file

@ -1,204 +0,0 @@
= vendor/github.com/mistifyio/go-zfs licensed under: =
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "{}"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright (c) 2014, OmniTI Computer Consulting, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
= vendor/github.com/mistifyio/go-zfs/LICENSE cce9462224bfb44c1866ef7bd5eddf54

View file

@ -1,25 +0,0 @@
= vendor/github.com/mohae/deepcopy licensed under: =
The MIT License (MIT)
Copyright (c) 2014 Joel
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
= vendor/github.com/mohae/deepcopy/LICENSE 268dc9c546e3de67a93c1d12a039d702

View file

@ -1,195 +0,0 @@
= vendor/github.com/mrunalp/fileutils licensed under: =
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
Copyright 2014 Docker, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
= vendor/github.com/mrunalp/fileutils/LICENSE 435b266b3899aa8a959f17d41c56def8

View file

@ -1,27 +0,0 @@
= vendor/github.com/pkg/errors licensed under: =
Copyright (c) 2015, Dave Cheney <dave@cheney.net>
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
= vendor/github.com/pkg/errors/LICENSE 6fe682a02df52c6653f33bd0f7126b5a

View file

@ -202,4 +202,33 @@
See the License for the specific language governing permissions and
limitations under the License.
= vendor/go.opentelemetry.io/contrib/instrumentation/github.com/emicklei/go-restful/otelrestful/LICENSE 86d3f3a95c324c9479bd8986968f4327
--------------------------------------------------------------------------------
Copyright 2009 The Go Authors.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the
distribution.
* Neither the name of Google LLC nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
= vendor/go.opentelemetry.io/contrib/instrumentation/github.com/emicklei/go-restful/otelrestful/LICENSE 24dad3abbe7a8f390afc8ab967bfefa7

View file

@ -202,4 +202,33 @@
See the License for the specific language governing permissions and
limitations under the License.
= vendor/go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc/LICENSE 86d3f3a95c324c9479bd8986968f4327
--------------------------------------------------------------------------------
Copyright 2009 The Go Authors.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the
distribution.
* Neither the name of Google LLC nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
= vendor/go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc/LICENSE 24dad3abbe7a8f390afc8ab967bfefa7

View file

@ -202,4 +202,33 @@
See the License for the specific language governing permissions and
limitations under the License.
= vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/LICENSE 86d3f3a95c324c9479bd8986968f4327
--------------------------------------------------------------------------------
Copyright 2009 The Go Authors.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the
distribution.
* Neither the name of Google LLC nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
= vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/LICENSE 24dad3abbe7a8f390afc8ab967bfefa7

View file

@ -202,4 +202,33 @@
See the License for the specific language governing permissions and
limitations under the License.
= vendor/go.opentelemetry.io/otel/LICENSE 86d3f3a95c324c9479bd8986968f4327
--------------------------------------------------------------------------------
Copyright 2009 The Go Authors.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the
distribution.
* Neither the name of Google LLC nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
= vendor/go.opentelemetry.io/otel/LICENSE 24dad3abbe7a8f390afc8ab967bfefa7

View file

@ -202,4 +202,33 @@
See the License for the specific language governing permissions and
limitations under the License.
= vendor/go.opentelemetry.io/otel/LICENSE 86d3f3a95c324c9479bd8986968f4327
--------------------------------------------------------------------------------
Copyright 2009 The Go Authors.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the
distribution.
* Neither the name of Google LLC nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
= vendor/go.opentelemetry.io/otel/LICENSE 24dad3abbe7a8f390afc8ab967bfefa7

View file

@ -202,4 +202,33 @@
See the License for the specific language governing permissions and
limitations under the License.
= vendor/go.opentelemetry.io/otel/LICENSE 86d3f3a95c324c9479bd8986968f4327
--------------------------------------------------------------------------------
Copyright 2009 The Go Authors.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the
distribution.
* Neither the name of Google LLC nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
= vendor/go.opentelemetry.io/otel/LICENSE 24dad3abbe7a8f390afc8ab967bfefa7

View file

@ -202,4 +202,33 @@
See the License for the specific language governing permissions and
limitations under the License.
= vendor/go.opentelemetry.io/otel/LICENSE 86d3f3a95c324c9479bd8986968f4327
--------------------------------------------------------------------------------
Copyright 2009 The Go Authors.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the
distribution.
* Neither the name of Google LLC nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
= vendor/go.opentelemetry.io/otel/LICENSE 24dad3abbe7a8f390afc8ab967bfefa7

View file

@ -202,4 +202,33 @@
See the License for the specific language governing permissions and
limitations under the License.
= vendor/go.opentelemetry.io/otel/LICENSE 86d3f3a95c324c9479bd8986968f4327
--------------------------------------------------------------------------------
Copyright 2009 The Go Authors.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the
distribution.
* Neither the name of Google LLC nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
= vendor/go.opentelemetry.io/otel/LICENSE 24dad3abbe7a8f390afc8ab967bfefa7

View file

@ -202,4 +202,33 @@
See the License for the specific language governing permissions and
limitations under the License.
= vendor/go.opentelemetry.io/otel/LICENSE 86d3f3a95c324c9479bd8986968f4327
--------------------------------------------------------------------------------
Copyright 2009 The Go Authors.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the
distribution.
* Neither the name of Google LLC nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
= vendor/go.opentelemetry.io/otel/LICENSE 24dad3abbe7a8f390afc8ab967bfefa7

View file

@ -1,6 +1,6 @@
= vendor/go.uber.org/zap licensed under: =
Copyright (c) 2016-2017 Uber Technologies, Inc.
Copyright (c) 2016-2024 Uber Technologies, Inc.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@ -20,4 +20,4 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
= vendor/go.uber.org/zap/LICENSE 5e8153e456a82529ea845e0d511abb69
= vendor/go.uber.org/zap/LICENSE a48e22dd4170c1eb095a423a50302852

View file

@ -0,0 +1,27 @@
Copyright (c) 2012 The Go Authors. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the
distribution.
* Neither the name of Google Inc. nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

View file

@ -1,4 +1,5 @@
Apache License
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/

View file

@ -181,6 +181,7 @@ aliases:
# - ravisantoshgudimetla
# - wojtek-t
sig-scheduling:
- ania-borowiec
- AxeZhan
- damemi
- denkensk
@ -330,18 +331,21 @@ aliases:
# - mwielgus
# - raywainman
sig-instrumentation-approvers:
- logicalhan
- dashpole
- RainbowMango
- serathius
- dgrisonnet
- rexagod
- richabanker
# sig-instrumentation-emeritus
# - brancz
# - DirectXMan12
# - ehashman
# - logicalhan
sig-instrumentation-reviewers:
- dashpole
- s-urbaniak
- coffeepac
- logicalhan
- RainbowMango
- serathius
- dgrisonnet
@ -349,11 +353,6 @@ aliases:
- mengjiao-liu
- rexagod
- richabanker
# sig-instrumentation-emeritus
# - brancz
# - DirectXMan12
# - ehashman
api-approvers:
- deads2k
- msau42
@ -536,12 +535,18 @@ aliases:
- soltysh
- liggitt
dep-reviewers:
- logicalhan
- BenTheElder
- cblecker
- dims
- thockin
- sttts
- soltysh
- liggitt
feature-approvers:
- adrianmoisey # Autoscaling
- andrewsykim # Cloud Provider
- ardaguclu # CLI
- aojea # Network, Testing
- cheftako # Cloud Provider
- danwinship # Network
- dashpole # Instrumentation
- dchen1107 # Node
@ -551,18 +556,19 @@ aliases:
- dims # Architecture
- dom4ha # Scheduling
- eddiezane # CLI
- elmiko # Cloud Provider
- enj # Auth
- gjtempleton # Autoscaling
- jackfrancis # Autoscaling
- janetkuo # Apps
- jayunit100 # Windows
- joelspeed # Cloud Provider
- jpbetz # API Machinery
- jsafrane # Storage
- jsturtevant # Windows
- justinsb # Cluster Lifecycle
- kow3ns # Apps
- liggitt # Auth
- logicalhan # Instrumentation
- luxas # Cluster Lifecycle
- macsko # Scheduling
- marosset # Windows
@ -582,6 +588,8 @@ aliases:
- towca # Autoscaling
- xing-yang # Storage
- wojtek-t # Scalability
# feature-approvers-emeritus:
# - logicalhan # Instrumentation
# conformance aliases https://git.k8s.io/enhancements/keps/sig-architecture/20190412-conformance-behaviors.md
conformance-behavior-approvers:
- smarterclayton

View file

@ -0,0 +1,16 @@
API rule violation: names_match,k8s.io/apimachinery/pkg/api/resource,Quantity,Format
API rule violation: names_match,k8s.io/apimachinery/pkg/api/resource,Quantity,d
API rule violation: names_match,k8s.io/apimachinery/pkg/api/resource,Quantity,i
API rule violation: names_match,k8s.io/apimachinery/pkg/api/resource,Quantity,s
API rule violation: names_match,k8s.io/apimachinery/pkg/api/resource,int64Amount,scale
API rule violation: names_match,k8s.io/apimachinery/pkg/api/resource,int64Amount,value
API rule violation: names_match,k8s.io/apimachinery/pkg/apis/meta/v1,APIResourceList,APIResources
API rule violation: names_match,k8s.io/apimachinery/pkg/apis/meta/v1,Duration,Duration
API rule violation: names_match,k8s.io/apimachinery/pkg/apis/meta/v1,InternalEvent,Object
API rule violation: names_match,k8s.io/apimachinery/pkg/apis/meta/v1,InternalEvent,Type
API rule violation: names_match,k8s.io/apimachinery/pkg/apis/meta/v1,MicroTime,Time
API rule violation: names_match,k8s.io/apimachinery/pkg/apis/meta/v1,StatusCause,Type
API rule violation: names_match,k8s.io/apimachinery/pkg/apis/meta/v1,Time,Time
API rule violation: names_match,k8s.io/apimachinery/pkg/runtime,Unknown,ContentEncoding
API rule violation: names_match,k8s.io/apimachinery/pkg/runtime,Unknown,ContentType
API rule violation: streaming_list_type_json_tags,k8s.io/sample-controller/pkg/apis/samplecontroller/v1alpha1,FooList,ListMeta

View file

@ -146,6 +146,7 @@ API rule violation: names_match,k8s.io/cloud-provider/config/v1alpha1,KubeCloudS
API rule violation: names_match,k8s.io/cloud-provider/config/v1alpha1,KubeCloudSharedConfiguration,RouteReconciliationPeriod
API rule violation: names_match,k8s.io/cloud-provider/config/v1alpha1,KubeCloudSharedConfiguration,UseServiceAccountCredentials
API rule violation: names_match,k8s.io/cloud-provider/config/v1alpha1,WebhookConfiguration,Webhooks
API rule violation: names_match,k8s.io/cloud-provider/controllers/node/config/v1alpha1,NodeControllerConfiguration,ConcurrentNodeStatusUpdates
API rule violation: names_match,k8s.io/cloud-provider/controllers/node/config/v1alpha1,NodeControllerConfiguration,ConcurrentNodeSyncs
API rule violation: names_match,k8s.io/cloud-provider/controllers/service/config/v1alpha1,ServiceControllerConfiguration,ConcurrentServiceSyncs
API rule violation: names_match,k8s.io/controller-manager/config/v1alpha1,GenericControllerManagerConfiguration,Address
@ -218,6 +219,7 @@ API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,K
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeControllerManagerConfiguration,PodGCController
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeControllerManagerConfiguration,ReplicaSetController
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeControllerManagerConfiguration,ReplicationController
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeControllerManagerConfiguration,ResourceClaimController
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeControllerManagerConfiguration,ResourceQuotaController
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeControllerManagerConfiguration,SAController
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeControllerManagerConfiguration,ServiceController
@ -251,6 +253,7 @@ API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,P
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,PodGCControllerConfiguration,TerminatedPodGCThreshold
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,ReplicaSetControllerConfiguration,ConcurrentRSSyncs
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,ReplicationControllerConfiguration,ConcurrentRCSyncs
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,ResourceClaimControllerConfiguration,ConcurrentSyncs
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,ResourceQuotaControllerConfiguration,ConcurrentResourceQuotaSyncs
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,ResourceQuotaControllerConfiguration,ResourceQuotaSyncPeriod
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,SAControllerConfiguration,ConcurrentSATokenSyncs

View file

@ -110,7 +110,7 @@
"vac"
],
"singularName": "volumeattributesclass",
"storageVersionHash": "Bl3MtjZ/n/s=",
"storageVersionHash": "tIjydgKBC5w=",
"verbs": [
"create",
"delete",

View file

@ -11,7 +11,7 @@
"vac"
],
"singularName": "volumeattributesclass",
"storageVersionHash": "Bl3MtjZ/n/s=",
"storageVersionHash": "tIjydgKBC5w=",
"verbs": [
"create",
"delete",

View file

@ -54,6 +54,34 @@ For example:
}
```
### `x-kubernetes-list-map-keys`
Operations and Definitions may have `x-kubernetes-list-maps-keys` if they
are associated with a [kubernetes resource](https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources). `x-kubernetes-list-type` = `map` specifies field names inside each list element to serve as unique keys for the list-as-map.
**For example:**
```json
{
"type": "object",
"properties": {
"servers": {
"type": "array",
"x-kubernetes-list-type": "map",
"x-kubernetes-list-map-keys": ["name"],
"items": {
"type": "object",
"properties": {
"name": { "type": "string" },
"address": { "type": "string" }
},
"required": ["name"]
}
}
}
}
```
### `x-kubernetes-patch-strategy` and `x-kubernetes-patch-merge-key`
Some of the definitions may have these extensions. For more information about PatchStrategy and PatchMergeKey see

File diff suppressed because it is too large Load diff

View file

@ -5,19 +5,19 @@
"description": "BoundObjectReference is a reference to an object that a token is bound to.",
"properties": {
"apiVersion": {
"description": "API version of the referent.",
"description": "apiVersion is API version of the referent.",
"type": "string"
},
"kind": {
"description": "Kind of the referent. Valid kinds are 'Pod' and 'Secret'.",
"description": "kind of the referent. Valid kinds are 'Pod' and 'Secret'.",
"type": "string"
},
"name": {
"description": "Name of the referent.",
"description": "name of the referent.",
"type": "string"
},
"uid": {
"description": "UID of the referent.",
"description": "uid of the referent.",
"type": "string"
}
},
@ -41,7 +41,7 @@
}
],
"default": {},
"description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata"
"description": "metadata is the standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata"
},
"spec": {
"allOf": [
@ -50,7 +50,7 @@
}
],
"default": {},
"description": "Spec holds information about the request being evaluated"
"description": "spec holds information about the request being evaluated"
},
"status": {
"allOf": [
@ -59,7 +59,7 @@
}
],
"default": {},
"description": "Status is filled in by the server and indicates whether the token can be authenticated."
"description": "status is filled in by the server and indicates whether the token can be authenticated."
}
},
"required": [
@ -78,7 +78,7 @@
"description": "TokenRequestSpec contains client provided parameters of a token request.",
"properties": {
"audiences": {
"description": "Audiences are the intendend audiences of the token. A recipient of a token must identify themself with an identifier in the list of audiences of the token, and otherwise should reject the token. A token issued for multiple audiences may be used to authenticate against any of the audiences listed but implies a high degree of trust between the target audiences.",
"description": "audiences are the intendend audiences of the token. A recipient of a token must identify themself with an identifier in the list of audiences of the token, and otherwise should reject the token. A token issued for multiple audiences may be used to authenticate against any of the audiences listed but implies a high degree of trust between the target audiences.",
"items": {
"default": "",
"type": "string"
@ -92,10 +92,10 @@
"$ref": "#/components/schemas/io.k8s.api.authentication.v1.BoundObjectReference"
}
],
"description": "BoundObjectRef is a reference to an object that the token will be bound to. The token will only be valid for as long as the bound object exists. NOTE: The API server's TokenReview endpoint will validate the BoundObjectRef, but other audiences may not. Keep ExpirationSeconds small if you want prompt revocation."
"description": "boundObjectRef is a reference to an object that the token will be bound to. The token will only be valid for as long as the bound object exists. NOTE: The API server's TokenReview endpoint will validate the BoundObjectRef, but other audiences may not. Keep ExpirationSeconds small if you want prompt revocation."
},
"expirationSeconds": {
"description": "ExpirationSeconds is the requested duration of validity of the request. The token issuer may return a token with a different validity duration so a client needs to check the 'expiration' field in a response.",
"description": "expirationSeconds is the requested duration of validity of the request. The token issuer may return a token with a different validity duration so a client needs to check the 'expiration' field in a response.",
"format": "int64",
"type": "integer"
}
@ -114,11 +114,11 @@
"$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time"
}
],
"description": "ExpirationTimestamp is the time of expiration of the returned token."
"description": "expirationTimestamp is the time of expiration of the returned token."
},
"token": {
"default": "",
"description": "Token is the opaque bearer token.",
"description": "token is the opaque bearer token.",
"type": "string"
}
},
@ -3154,6 +3154,19 @@
},
"type": "object"
},
"io.k8s.api.core.v1.ImageVolumeStatus": {
"description": "ImageVolumeStatus represents the image-based volume status.",
"properties": {
"imageRef": {
"description": "ImageRef is the digest of the image used for this volume. It should have a value that's similar to the pod's status.containerStatuses[i].imageID. The ImageRef length should not exceed 256 characters.",
"type": "string"
}
},
"required": [
"imageRef"
],
"type": "object"
},
"io.k8s.api.core.v1.KeyToPath": {
"description": "Maps a string key to a path within a volume.",
"properties": {
@ -5038,7 +5051,7 @@
"$ref": "#/components/schemas/io.k8s.api.core.v1.PortworxVolumeSource"
}
],
"description": "portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on."
"description": "portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver."
},
"quobyte": {
"allOf": [
@ -5375,7 +5388,7 @@
"type": "string"
},
"observedGeneration": {
"description": "If set, this represents the .metadata.generation that the pod condition was set based upon. The PodObservedGenerationTracking feature gate must be enabled to use this field.",
"description": "If set, this represents the .metadata.generation that the pod condition was set based upon.",
"format": "int64",
"type": "integer"
},
@ -8582,7 +8595,7 @@
"$ref": "#/components/schemas/io.k8s.api.core.v1.PortworxVolumeSource"
}
],
"description": "portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on."
"description": "portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver."
},
"projected": {
"allOf": [
@ -8726,6 +8739,15 @@
"recursiveReadOnly": {
"description": "RecursiveReadOnly must be set to Disabled, Enabled, or unspecified (for non-readonly mounts). An IfPossible value in the original VolumeMount must be translated to Disabled or Enabled, depending on the mount result.",
"type": "string"
},
"volumeStatus": {
"allOf": [
{
"$ref": "#/components/schemas/io.k8s.api.core.v1.VolumeStatus"
}
],
"default": {},
"description": "volumeStatus represents volume-type-specific status about the mounted volume."
}
},
"required": [
@ -8822,6 +8844,20 @@
},
"type": "object"
},
"io.k8s.api.core.v1.VolumeStatus": {
"description": "VolumeStatus represents the status of a mounted volume. At most one of its members must be specified.",
"properties": {
"image": {
"allOf": [
{
"$ref": "#/components/schemas/io.k8s.api.core.v1.ImageVolumeStatus"
}
],
"description": "image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine."
}
},
"type": "object"
},
"io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource": {
"description": "Represents a vSphere volume resource.",
"properties": {
@ -9276,16 +9312,6 @@
"kind": "DeleteOptions",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "DeleteOptions",
@ -10031,16 +10057,6 @@
"kind": "WatchEvent",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "WatchEvent",

View file

@ -26,12 +26,12 @@
"properties": {
"fieldRef": {
"default": "",
"description": "The path to the field that refers the expression. For example, the reference to the expression of the first item of validations is \"spec.validations[0].expression\"",
"description": "fieldRef is the path to the field that refers to the expression. For example, the reference to the expression of the first item of validations is \"spec.validations[0].expression\"",
"type": "string"
},
"warning": {
"default": "",
"description": "The content of type checking information in a human-readable form. Each line of the warning contains the type that the expression is checked against, followed by the type check error from the compiler.",
"description": "warning contains the content of type checking information in a human-readable form. Each line of the warning contains the type that the expression is checked against, followed by the type check error from the compiler.",
"type": "string"
}
},
@ -46,12 +46,12 @@
"properties": {
"expression": {
"default": "",
"description": "Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables:\n\n'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest). 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n request resource.\nDocumentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/\n\nRequired.",
"description": "expression represents the expression which will be evaluated by CEL. Must evaluate to bool. CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables:\n\n'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest). 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n request resource.\nDocumentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/\n\nRequired.",
"type": "string"
},
"name": {
"default": "",
"description": "Name is an identifier for this match condition, used for strategic merging of MatchConditions, as well as providing an identifier for logging purposes. A good name should be descriptive of the associated expression. Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName')\n\nRequired.",
"description": "name is an identifier for this match condition, used for strategic merging of MatchConditions, as well as providing an identifier for logging purposes. A good name should be descriptive of the associated expression. Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName')\n\nRequired.",
"type": "string"
}
},
@ -65,7 +65,7 @@
"description": "MatchResources decides whether to run the admission control policy on an object based on whether it meets the match criteria. The exclude rules take precedence over include rules (if a resource matches both, it is excluded)",
"properties": {
"excludeResourceRules": {
"description": "ExcludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about. The exclude rules take precedence over include rules (if a resource matches both, it is excluded)",
"description": "excludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about. The exclude rules take precedence over include rules (if a resource matches both, it is excluded)",
"items": {
"allOf": [
{
@ -87,7 +87,7 @@
"$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector"
}
],
"description": "NamespaceSelector decides whether to run the admission control policy on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the policy.\n\nFor example, to run the webhook on any objects whose namespace is not associated with \"runlevel\" of \"0\" or \"1\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"runlevel\",\n \"operator\": \"NotIn\",\n \"values\": [\n \"0\",\n \"1\"\n ]\n }\n ]\n}\n\nIf instead you want to only run the policy on any objects whose namespace is associated with the \"environment\" of \"prod\" or \"staging\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"environment\",\n \"operator\": \"In\",\n \"values\": [\n \"prod\",\n \"staging\"\n ]\n }\n ]\n}\n\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors.\n\nDefault to the empty LabelSelector, which matches everything."
"description": "namespaceSelector decides whether to run the admission control policy on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the policy.\n\nFor example, to run the webhook on any objects whose namespace is not associated with \"runlevel\" of \"0\" or \"1\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"runlevel\",\n \"operator\": \"NotIn\",\n \"values\": [\n \"0\",\n \"1\"\n ]\n }\n ]\n}\n\nIf instead you want to only run the policy on any objects whose namespace is associated with the \"environment\" of \"prod\" or \"staging\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"environment\",\n \"operator\": \"In\",\n \"values\": [\n \"prod\",\n \"staging\"\n ]\n }\n ]\n}\n\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors.\n\nDefault to the empty LabelSelector, which matches everything."
},
"objectSelector": {
"allOf": [
@ -95,10 +95,10 @@
"$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector"
}
],
"description": "ObjectSelector decides whether to run the validation based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the cel validation, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything."
"description": "objectSelector decides whether to run the validation based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the cel validation, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything."
},
"resourceRules": {
"description": "ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule.",
"description": "resourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule.",
"items": {
"allOf": [
{
@ -118,7 +118,7 @@
"description": "MutatingWebhook describes an admission webhook and the resources and operations it applies to.",
"properties": {
"admissionReviewVersions": {
"description": "AdmissionReviewVersions is an ordered list of preferred `AdmissionReview` versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy.",
"description": "admissionReviewVersions is an ordered list of preferred `AdmissionReview` versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy.",
"items": {
"default": "",
"type": "string"
@ -133,14 +133,14 @@
}
],
"default": {},
"description": "ClientConfig defines how to communicate with the hook. Required"
"description": "clientConfig defines how to communicate with the hook. Required"
},
"failurePolicy": {
"description": "FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Fail.",
"description": "failurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Fail.",
"type": "string"
},
"matchConditions": {
"description": "MatchConditions is a list of conditions that must be met for a request to be sent to this webhook. Match conditions filter requests that have already been matched by the rules, namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed.\n\nThe exact matching logic is (in order):\n 1. If ANY matchCondition evaluates to FALSE, the webhook is skipped.\n 2. If ALL matchConditions evaluate to TRUE, the webhook is called.\n 3. If any matchCondition evaluates to an error (but none are FALSE):\n - If failurePolicy=Fail, reject the request\n - If failurePolicy=Ignore, the error is ignored and the webhook is skipped",
"description": "matchConditions is a list of conditions that must be met for a request to be sent to this webhook. Match conditions filter requests that have already been matched by the rules, namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed.\n\nThe exact matching logic is (in order):\n 1. If ANY matchCondition evaluates to FALSE, the webhook is skipped.\n 2. If ALL matchConditions evaluate to TRUE, the webhook is called.\n 3. If any matchCondition evaluates to an error (but none are FALSE):\n - If failurePolicy=Fail, reject the request\n - If failurePolicy=Ignore, the error is ignored and the webhook is skipped",
"items": {
"allOf": [
{
@ -163,7 +163,7 @@
},
"name": {
"default": "",
"description": "The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.",
"description": "name is the name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.",
"type": "string"
},
"namespaceSelector": {
@ -172,7 +172,7 @@
"$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector"
}
],
"description": "NamespaceSelector decides whether to run the webhook on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the webhook.\n\nFor example, to run the webhook on any objects whose namespace is not associated with \"runlevel\" of \"0\" or \"1\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"runlevel\",\n \"operator\": \"NotIn\",\n \"values\": [\n \"0\",\n \"1\"\n ]\n }\n ]\n}\n\nIf instead you want to only run the webhook on any objects whose namespace is associated with the \"environment\" of \"prod\" or \"staging\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"environment\",\n \"operator\": \"In\",\n \"values\": [\n \"prod\",\n \"staging\"\n ]\n }\n ]\n}\n\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors.\n\nDefault to the empty LabelSelector, which matches everything."
"description": "namespaceSelector decides whether to run the webhook on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the webhook.\n\nFor example, to run the webhook on any objects whose namespace is not associated with \"runlevel\" of \"0\" or \"1\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"runlevel\",\n \"operator\": \"NotIn\",\n \"values\": [\n \"0\",\n \"1\"\n ]\n }\n ]\n}\n\nIf instead you want to only run the webhook on any objects whose namespace is associated with the \"environment\" of \"prod\" or \"staging\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"environment\",\n \"operator\": \"In\",\n \"values\": [\n \"prod\",\n \"staging\"\n ]\n }\n ]\n}\n\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors.\n\nDefault to the empty LabelSelector, which matches everything."
},
"objectSelector": {
"allOf": [
@ -180,14 +180,14 @@
"$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector"
}
],
"description": "ObjectSelector decides whether to run the webhook based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the webhook, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything."
"description": "objectSelector decides whether to run the webhook based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the webhook, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything."
},
"reinvocationPolicy": {
"description": "reinvocationPolicy indicates whether this webhook should be called multiple times as part of a single admission evaluation. Allowed values are \"Never\" and \"IfNeeded\".\n\nNever: the webhook will not be called more than once in a single admission evaluation.\n\nIfNeeded: the webhook will be called at least one additional time as part of the admission evaluation if the object being admitted is modified by other admission plugins after the initial webhook call. Webhooks that specify this option *must* be idempotent, able to process objects they previously admitted. Note: * the number of additional invocations is not guaranteed to be exactly one. * if additional invocations result in further modifications to the object, webhooks are not guaranteed to be invoked again. * webhooks that use this option may be reordered to minimize the number of additional invocations. * to validate an object after all mutations are guaranteed complete, use a validating admission webhook instead.\n\nDefaults to \"Never\".",
"type": "string"
},
"rules": {
"description": "Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule. However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks from putting the cluster in a state which cannot be recovered from without completely disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.",
"description": "rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule. However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks from putting the cluster in a state which cannot be recovered from without completely disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.",
"items": {
"allOf": [
{
@ -200,11 +200,11 @@
"x-kubernetes-list-type": "atomic"
},
"sideEffects": {
"description": "SideEffects states whether this webhook has side effects. Acceptable values are: None, NoneOnDryRun (webhooks created via v1beta1 may also specify Some or Unknown). Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission chain and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some.",
"description": "sideEffects states whether this webhook has side effects. Acceptable values are: None, NoneOnDryRun (webhooks created via v1beta1 may also specify Some or Unknown). Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission chain and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some.",
"type": "string"
},
"timeoutSeconds": {
"description": "TimeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 10 seconds.",
"description": "timeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 10 seconds.",
"format": "int32",
"type": "integer"
}
@ -235,10 +235,10 @@
}
],
"default": {},
"description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata."
"description": "metadata is the standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata."
},
"webhooks": {
"description": "Webhooks is a list of webhooks and the affected resources and operations.",
"description": "webhooks is a list of webhooks and the affected resources and operations.",
"items": {
"allOf": [
{
@ -295,7 +295,7 @@
}
],
"default": {},
"description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds"
"description": "metadata is the standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds"
}
},
"required": [
@ -314,7 +314,7 @@
"description": "NamedRuleWithOperations is a tuple of Operations and Resources with ResourceNames.",
"properties": {
"apiGroups": {
"description": "APIGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required.",
"description": "apiGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required.",
"items": {
"default": "",
"type": "string"
@ -323,7 +323,7 @@
"x-kubernetes-list-type": "atomic"
},
"apiVersions": {
"description": "APIVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required.",
"description": "apiVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required.",
"items": {
"default": "",
"type": "string"
@ -332,7 +332,7 @@
"x-kubernetes-list-type": "atomic"
},
"operations": {
"description": "Operations is the operations the admission hook cares about - CREATE, UPDATE, DELETE, CONNECT or * for all of those operations and any future admission operations that are added. If '*' is present, the length of the slice must be one. Required.",
"description": "operations is the operations the admission hook cares about - CREATE, UPDATE, DELETE, CONNECT or * for all of those operations and any future admission operations that are added. If '*' is present, the length of the slice must be one. Required.",
"items": {
"default": "",
"type": "string"
@ -341,7 +341,7 @@
"x-kubernetes-list-type": "atomic"
},
"resourceNames": {
"description": "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed.",
"description": "resourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed.",
"items": {
"default": "",
"type": "string"
@ -350,7 +350,7 @@
"x-kubernetes-list-type": "atomic"
},
"resources": {
"description": "Resources is a list of resources this rule applies to.\n\nFor example: 'pods' means pods. 'pods/log' means the log subresource of pods. '*' means all resources, but not subresources. 'pods/*' means all subresources of pods. '*/scale' means all scale subresources. '*/*' means all resources and their subresources.\n\nIf wildcard is present, the validation rule will ensure resources do not overlap with each other.\n\nDepending on the enclosing object, subresources might not be allowed. Required.",
"description": "resources is a list of resources this rule applies to.\n\nFor example: 'pods' means pods. 'pods/log' means the log subresource of pods. '*' means all resources, but not subresources. 'pods/*' means all subresources of pods. '*/scale' means all scale subresources. '*/*' means all resources and their subresources.\n\nIf wildcard is present, the validation rule will ensure resources do not overlap with each other.\n\nDepending on the enclosing object, subresources might not be allowed. Required.",
"items": {
"default": "",
"type": "string"
@ -370,11 +370,11 @@
"description": "ParamKind is a tuple of Group Kind and Version.",
"properties": {
"apiVersion": {
"description": "APIVersion is the API group version the resources belong to. In format of \"group/version\". Required.",
"description": "apiVersion is the API group version the resources belong to. In format of \"group/version\". Required.",
"type": "string"
},
"kind": {
"description": "Kind is the API kind the resources belong to. Required.",
"description": "kind is the API kind the resources belong to. Required.",
"type": "string"
}
},
@ -393,7 +393,7 @@
"type": "string"
},
"parameterNotFoundAction": {
"description": "`parameterNotFoundAction` controls the behavior of the binding when the resource exists, and name or selector is valid, but there are no parameters matched by the binding. If the value is set to `Allow`, then no matched parameters will be treated as successful validation by the binding. If set to `Deny`, then no matched parameters will be subject to the `failurePolicy` of the policy.\n\nAllowed values are `Allow` or `Deny`\n\nRequired",
"description": "parameterNotFoundAction controls the behavior of the binding when the resource exists, and name or selector is valid, but there are no parameters matched by the binding. If the value is set to `Allow`, then no matched parameters will be treated as successful validation by the binding. If set to `Deny`, then no matched parameters will be subject to the `failurePolicy` of the policy.\n\nAllowed values are `Allow` or `Deny`\n\nRequired",
"type": "string"
},
"selector": {
@ -412,7 +412,7 @@
"description": "RuleWithOperations is a tuple of Operations and Resources. It is recommended to make sure that all the tuple expansions are valid.",
"properties": {
"apiGroups": {
"description": "APIGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required.",
"description": "apiGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required.",
"items": {
"default": "",
"type": "string"
@ -421,7 +421,7 @@
"x-kubernetes-list-type": "atomic"
},
"apiVersions": {
"description": "APIVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required.",
"description": "apiVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required.",
"items": {
"default": "",
"type": "string"
@ -430,7 +430,7 @@
"x-kubernetes-list-type": "atomic"
},
"operations": {
"description": "Operations is the operations the admission hook cares about - CREATE, UPDATE, DELETE, CONNECT or * for all of those operations and any future admission operations that are added. If '*' is present, the length of the slice must be one. Required.",
"description": "operations is the operations the admission hook cares about - CREATE, UPDATE, DELETE, CONNECT or * for all of those operations and any future admission operations that are added. If '*' is present, the length of the slice must be one. Required.",
"items": {
"default": "",
"type": "string"
@ -439,7 +439,7 @@
"x-kubernetes-list-type": "atomic"
},
"resources": {
"description": "Resources is a list of resources this rule applies to.\n\nFor example: 'pods' means pods. 'pods/log' means the log subresource of pods. '*' means all resources, but not subresources. 'pods/*' means all subresources of pods. '*/scale' means all scale subresources. '*/*' means all resources and their subresources.\n\nIf wildcard is present, the validation rule will ensure resources do not overlap with each other.\n\nDepending on the enclosing object, subresources might not be allowed. Required.",
"description": "resources is a list of resources this rule applies to.\n\nFor example: 'pods' means pods. 'pods/log' means the log subresource of pods. '*' means all resources, but not subresources. 'pods/*' means all subresources of pods. '*/scale' means all scale subresources. '*/*' means all resources and their subresources.\n\nIf wildcard is present, the validation rule will ensure resources do not overlap with each other.\n\nDepending on the enclosing object, subresources might not be allowed. Required.",
"items": {
"default": "",
"type": "string"
@ -459,20 +459,20 @@
"properties": {
"name": {
"default": "",
"description": "`name` is the name of the service. Required",
"description": "name is the name of the service. Required",
"type": "string"
},
"namespace": {
"default": "",
"description": "`namespace` is the namespace of the service. Required",
"description": "namespace is the namespace of the service. Required",
"type": "string"
},
"path": {
"description": "`path` is an optional URL path which will be sent in any request to this service.",
"description": "path is an optional URL path which will be sent in any request to this service.",
"type": "string"
},
"port": {
"description": "If specified, the port on the service that hosting webhook. Default to 443 for backward compatibility. `port` should be a valid port number (1-65535, inclusive).",
"description": "port is the port on the service that hosts the webhook. Default to 443 for backward compatibility. `port` should be a valid port number (1-65535, inclusive).",
"format": "int32",
"type": "integer"
}
@ -487,7 +487,7 @@
"description": "TypeChecking contains results of type checking the expressions in the ValidatingAdmissionPolicy",
"properties": {
"expressionWarnings": {
"description": "The type checking warnings for each expression.",
"description": "expressionWarnings contains the type checking warnings for each expression.",
"items": {
"allOf": [
{
@ -520,7 +520,7 @@
}
],
"default": {},
"description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata."
"description": "metadata is the standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata."
},
"spec": {
"allOf": [
@ -529,7 +529,7 @@
}
],
"default": {},
"description": "Specification of the desired behavior of the ValidatingAdmissionPolicy."
"description": "spec defines the desired behavior of the ValidatingAdmissionPolicy."
},
"status": {
"allOf": [
@ -538,7 +538,7 @@
}
],
"default": {},
"description": "The status of the ValidatingAdmissionPolicy, including warnings that are useful to determine if the policy behaves in the expected way. Populated by the system. Read-only."
"description": "status represents the current status of the ValidatingAdmissionPolicy, including warnings that are useful to determine if the policy behaves in the expected way. Populated by the system. Read-only."
}
},
"type": "object",
@ -568,7 +568,7 @@
}
],
"default": {},
"description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata."
"description": "metadata is the standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata."
},
"spec": {
"allOf": [
@ -577,9 +577,12 @@
}
],
"default": {},
"description": "Specification of the desired behavior of the ValidatingAdmissionPolicyBinding."
"description": "spec defines the desired behavior of the ValidatingAdmissionPolicyBinding."
}
},
"required": [
"spec"
],
"type": "object",
"x-kubernetes-group-version-kind": [
{
@ -619,7 +622,7 @@
}
],
"default": {},
"description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds"
"description": "metadata is the standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds"
}
},
"required": [
@ -643,7 +646,7 @@
"$ref": "#/components/schemas/io.k8s.api.admissionregistration.v1.MatchResources"
}
],
"description": "MatchResources declares what resources match this binding and will be validated by it. Note that this is intersected with the policy's matchConstraints, so only requests that are matched by the policy can be selected by this. If this is unset, all resources matched by the policy are validated by this binding When resourceRules is unset, it does not constrain resource matching. If a resource is matched by the other fields of this object, it will be validated. Note that this is differs from ValidatingAdmissionPolicy matchConstraints, where resourceRules are required."
"description": "matchResources declares what resources match this binding and will be validated by it. Note that this is intersected with the policy's matchConstraints, so only requests that are matched by the policy can be selected by this. If this is unset, all resources matched by the policy are validated by this binding When resourceRules is unset, it does not constrain resource matching. If a resource is matched by the other fields of this object, it will be validated. Note that this is differs from ValidatingAdmissionPolicy matchConstraints, where resourceRules are required."
},
"paramRef": {
"allOf": [
@ -654,7 +657,7 @@
"description": "paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param."
},
"policyName": {
"description": "PolicyName references a ValidatingAdmissionPolicy name which the ValidatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required.",
"description": "policyName references a ValidatingAdmissionPolicy name which the ValidatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required.",
"type": "string"
},
"validationActions": {
@ -667,6 +670,10 @@
"x-kubernetes-list-type": "set"
}
},
"required": [
"policyName",
"validationActions"
],
"type": "object"
},
"io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicyList": {
@ -699,7 +706,7 @@
}
],
"default": {},
"description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds"
"description": "metadata is the standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds"
}
},
"required": [
@ -735,7 +742,7 @@
"type": "string"
},
"matchConditions": {
"description": "MatchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the rules, namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed.\n\nIf a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions.\n\nThe exact matching logic is (in order):\n 1. If ANY matchCondition evaluates to FALSE, the policy is skipped.\n 2. If ALL matchConditions evaluate to TRUE, the policy is evaluated.\n 3. If any matchCondition evaluates to an error (but none are FALSE):\n - If failurePolicy=Fail, reject the request\n - If failurePolicy=Ignore, the policy is skipped",
"description": "matchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the rules, namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed.\n\nIf a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions.\n\nThe exact matching logic is (in order):\n 1. If ANY matchCondition evaluates to FALSE, the policy is skipped.\n 2. If ALL matchConditions evaluate to TRUE, the policy is evaluated.\n 3. If any matchCondition evaluates to an error (but none are FALSE):\n - If failurePolicy=Fail, reject the request\n - If failurePolicy=Ignore, the policy is skipped",
"items": {
"allOf": [
{
@ -758,7 +765,7 @@
"$ref": "#/components/schemas/io.k8s.api.admissionregistration.v1.MatchResources"
}
],
"description": "MatchConstraints specifies what resources this policy is designed to validate. The AdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API ValidatingAdmissionPolicy cannot match ValidatingAdmissionPolicy and ValidatingAdmissionPolicyBinding. Required."
"description": "matchConstraints specifies what resources this policy is designed to validate. The AdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API ValidatingAdmissionPolicy cannot match ValidatingAdmissionPolicy and ValidatingAdmissionPolicyBinding. Required."
},
"paramKind": {
"allOf": [
@ -766,10 +773,10 @@
"$ref": "#/components/schemas/io.k8s.api.admissionregistration.v1.ParamKind"
}
],
"description": "ParamKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If ParamKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in ValidatingAdmissionPolicyBinding, the params variable will be null."
"description": "paramKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If ParamKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in ValidatingAdmissionPolicyBinding, the params variable will be null."
},
"validations": {
"description": "Validations contain CEL expressions which is used to apply the validation. Validations and AuditAnnotations may not both be empty; a minimum of one Validations or AuditAnnotations is required.",
"description": "validations contain CEL expressions which is used to apply the validation. Validations and AuditAnnotations may not both be empty; a minimum of one Validations or AuditAnnotations is required.",
"items": {
"allOf": [
{
@ -782,7 +789,7 @@
"x-kubernetes-list-type": "atomic"
},
"variables": {
"description": "Variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except MatchConditions because MatchConditions are evaluated before the rest of the policy.\n\nThe expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, Variables must be sorted by the order of first appearance and acyclic.",
"description": "variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except MatchConditions because MatchConditions are evaluated before the rest of the policy.\n\nThe expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, Variables must be sorted by the order of first appearance and acyclic.",
"items": {
"allOf": [
{
@ -806,7 +813,7 @@
"description": "ValidatingAdmissionPolicyStatus represents the status of an admission validation policy.",
"properties": {
"conditions": {
"description": "The conditions represent the latest available observations of a policy's current state.",
"description": "conditions represent the latest available observations of a policy's current state.",
"items": {
"allOf": [
{
@ -822,7 +829,7 @@
"x-kubernetes-list-type": "map"
},
"observedGeneration": {
"description": "The generation observed by the controller.",
"description": "observedGeneration is the generation observed by the controller.",
"format": "int64",
"type": "integer"
},
@ -832,7 +839,7 @@
"$ref": "#/components/schemas/io.k8s.api.admissionregistration.v1.TypeChecking"
}
],
"description": "The results of type checking for each expression. Presence of this field indicates the completion of the type checking."
"description": "typeChecking contains the results of type checking for each expression. Presence of this field indicates the completion of the type checking."
}
},
"type": "object"
@ -841,7 +848,7 @@
"description": "ValidatingWebhook describes an admission webhook and the resources and operations it applies to.",
"properties": {
"admissionReviewVersions": {
"description": "AdmissionReviewVersions is an ordered list of preferred `AdmissionReview` versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy.",
"description": "admissionReviewVersions is an ordered list of preferred `AdmissionReview` versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy.",
"items": {
"default": "",
"type": "string"
@ -856,14 +863,14 @@
}
],
"default": {},
"description": "ClientConfig defines how to communicate with the hook. Required"
"description": "clientConfig defines how to communicate with the hook. Required"
},
"failurePolicy": {
"description": "FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Fail.",
"description": "failurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Fail.",
"type": "string"
},
"matchConditions": {
"description": "MatchConditions is a list of conditions that must be met for a request to be sent to this webhook. Match conditions filter requests that have already been matched by the rules, namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed.\n\nThe exact matching logic is (in order):\n 1. If ANY matchCondition evaluates to FALSE, the webhook is skipped.\n 2. If ALL matchConditions evaluate to TRUE, the webhook is called.\n 3. If any matchCondition evaluates to an error (but none are FALSE):\n - If failurePolicy=Fail, reject the request\n - If failurePolicy=Ignore, the error is ignored and the webhook is skipped",
"description": "matchConditions is a list of conditions that must be met for a request to be sent to this webhook. Match conditions filter requests that have already been matched by the rules, namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed.\n\nThe exact matching logic is (in order):\n 1. If ANY matchCondition evaluates to FALSE, the webhook is skipped.\n 2. If ALL matchConditions evaluate to TRUE, the webhook is called.\n 3. If any matchCondition evaluates to an error (but none are FALSE):\n - If failurePolicy=Fail, reject the request\n - If failurePolicy=Ignore, the error is ignored and the webhook is skipped",
"items": {
"allOf": [
{
@ -886,7 +893,7 @@
},
"name": {
"default": "",
"description": "The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.",
"description": "name is the name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.",
"type": "string"
},
"namespaceSelector": {
@ -895,7 +902,7 @@
"$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector"
}
],
"description": "NamespaceSelector decides whether to run the webhook on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the webhook.\n\nFor example, to run the webhook on any objects whose namespace is not associated with \"runlevel\" of \"0\" or \"1\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"runlevel\",\n \"operator\": \"NotIn\",\n \"values\": [\n \"0\",\n \"1\"\n ]\n }\n ]\n}\n\nIf instead you want to only run the webhook on any objects whose namespace is associated with the \"environment\" of \"prod\" or \"staging\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"environment\",\n \"operator\": \"In\",\n \"values\": [\n \"prod\",\n \"staging\"\n ]\n }\n ]\n}\n\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels for more examples of label selectors.\n\nDefault to the empty LabelSelector, which matches everything."
"description": "namespaceSelector decides whether to run the webhook on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the webhook.\n\nFor example, to run the webhook on any objects whose namespace is not associated with \"runlevel\" of \"0\" or \"1\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"runlevel\",\n \"operator\": \"NotIn\",\n \"values\": [\n \"0\",\n \"1\"\n ]\n }\n ]\n}\n\nIf instead you want to only run the webhook on any objects whose namespace is associated with the \"environment\" of \"prod\" or \"staging\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"environment\",\n \"operator\": \"In\",\n \"values\": [\n \"prod\",\n \"staging\"\n ]\n }\n ]\n}\n\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels for more examples of label selectors.\n\nDefault to the empty LabelSelector, which matches everything."
},
"objectSelector": {
"allOf": [
@ -903,10 +910,10 @@
"$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector"
}
],
"description": "ObjectSelector decides whether to run the webhook based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the webhook, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything."
"description": "objectSelector decides whether to run the webhook based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the webhook, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything."
},
"rules": {
"description": "Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule. However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks from putting the cluster in a state which cannot be recovered from without completely disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.",
"description": "rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule. However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks from putting the cluster in a state which cannot be recovered from without completely disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.",
"items": {
"allOf": [
{
@ -919,11 +926,11 @@
"x-kubernetes-list-type": "atomic"
},
"sideEffects": {
"description": "SideEffects states whether this webhook has side effects. Acceptable values are: None, NoneOnDryRun (webhooks created via v1beta1 may also specify Some or Unknown). Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission chain and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some.",
"description": "sideEffects states whether this webhook has side effects. Acceptable values are: None, NoneOnDryRun (webhooks created via v1beta1 may also specify Some or Unknown). Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission chain and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some.",
"type": "string"
},
"timeoutSeconds": {
"description": "TimeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 10 seconds.",
"description": "timeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 10 seconds.",
"format": "int32",
"type": "integer"
}
@ -954,10 +961,10 @@
}
],
"default": {},
"description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata."
"description": "metadata is the standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata."
},
"webhooks": {
"description": "Webhooks is a list of webhooks and the affected resources and operations.",
"description": "webhooks is a list of webhooks and the affected resources and operations.",
"items": {
"allOf": [
{
@ -1014,7 +1021,7 @@
}
],
"default": {},
"description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds"
"description": "metadata is the standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds"
}
},
"required": [
@ -1034,11 +1041,11 @@
"properties": {
"expression": {
"default": "",
"description": "Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables:\n\n- 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value.\n For example, a variable named 'foo' can be accessed as 'variables.foo'.\n- 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n- 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n request resource.\n\nThe `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible.\n\nOnly property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Accessible property names are escaped according to the following rules when accessed in the expression: - '__' escapes to '__underscores__' - '.' escapes to '__dot__' - '-' escapes to '__dash__' - '/' escapes to '__slash__' - Property names that exactly match a CEL RESERVED keyword escape to '__{keyword}__'. The keywords are:\n\t \"true\", \"false\", \"null\", \"in\", \"as\", \"break\", \"const\", \"continue\", \"else\", \"for\", \"function\", \"if\",\n\t \"import\", \"let\", \"loop\", \"package\", \"namespace\", \"return\".\nExamples:\n - Expression accessing a property named \"namespace\": {\"Expression\": \"object.__namespace__ > 0\"}\n - Expression accessing a property named \"x-prop\": {\"Expression\": \"object.x__dash__prop > 0\"}\n - Expression accessing a property named \"redact__d\": {\"Expression\": \"object.redact__underscores__d > 0\"}\n\nEquality on arrays with list type of 'set' or 'map' ignores element order, i.e. [1, 2] == [2, 1]. Concatenation on arrays with x-kubernetes-list-type use the semantics of the list type:\n - 'set': `X + Y` performs a union where the array positions of all elements in `X` are preserved and\n non-intersecting elements in `Y` are appended, retaining their partial order.\n - 'map': `X + Y` performs a merge where the array positions of all keys in `X` are preserved but the values\n are overwritten by values in `Y` when the key sets of `X` and `Y` intersect. Elements in `Y` with\n non-intersecting keys are appended, retaining their partial order.\nRequired.",
"description": "expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables:\n\n- 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value.\n For example, a variable named 'foo' can be accessed as 'variables.foo'.\n- 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n- 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n request resource.\n\nThe `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible.\n\nOnly property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Accessible property names are escaped according to the following rules when accessed in the expression: - '__' escapes to '__underscores__' - '.' escapes to '__dot__' - '-' escapes to '__dash__' - '/' escapes to '__slash__' - Property names that exactly match a CEL RESERVED keyword escape to '__{keyword}__'. The keywords are:\n\t \"true\", \"false\", \"null\", \"in\", \"as\", \"break\", \"const\", \"continue\", \"else\", \"for\", \"function\", \"if\",\n\t \"import\", \"let\", \"loop\", \"package\", \"namespace\", \"return\".\nExamples:\n - Expression accessing a property named \"namespace\": {\"Expression\": \"object.__namespace__ > 0\"}\n - Expression accessing a property named \"x-prop\": {\"Expression\": \"object.x__dash__prop > 0\"}\n - Expression accessing a property named \"redact__d\": {\"Expression\": \"object.redact__underscores__d > 0\"}\n\nEquality on arrays with list type of 'set' or 'map' ignores element order, i.e. [1, 2] == [2, 1]. Concatenation on arrays with x-kubernetes-list-type use the semantics of the list type:\n - 'set': `X + Y` performs a union where the array positions of all elements in `X` are preserved and\n non-intersecting elements in `Y` are appended, retaining their partial order.\n - 'map': `X + Y` performs a merge where the array positions of all keys in `X` are preserved but the values\n are overwritten by values in `Y` when the key sets of `X` and `Y` intersect. Elements in `Y` with\n non-intersecting keys are appended, retaining their partial order.\nRequired.",
"type": "string"
},
"message": {
"description": "Message represents the message displayed when validation fails. The message is required if the Expression contains line breaks. The message must not contain line breaks. If unset, the message is \"failed rule: {Rule}\". e.g. \"must be a URL with the host matching spec.host\" If the Expression contains line breaks. Message is required. The message must not contain line breaks. If unset, the message is \"failed Expression: {Expression}\".",
"description": "message represents the message displayed when validation fails. The message is required if the Expression contains line breaks. The message must not contain line breaks. If unset, the message is \"failed rule: {Rule}\". e.g. \"must be a URL with the host matching spec.host\" If the Expression contains line breaks. Message is required. The message must not contain line breaks. If unset, the message is \"failed Expression: {Expression}\".",
"type": "string"
},
"messageExpression": {
@ -1046,7 +1053,7 @@
"type": "string"
},
"reason": {
"description": "Reason represents a machine-readable description of why this validation failed. If this is the first validation in the list to fail, this reason, as well as the corresponding HTTP response code, are used in the HTTP response to the client. The currently supported reasons are: \"Unauthorized\", \"Forbidden\", \"Invalid\", \"RequestEntityTooLarge\". If not set, StatusReasonInvalid is used in the response to the client.",
"description": "reason represents a machine-readable description of why this validation failed. If this is the first validation in the list to fail, this reason, as well as the corresponding HTTP response code, are used in the HTTP response to the client. The currently supported reasons are: \"Unauthorized\", \"Forbidden\", \"Invalid\", \"RequestEntityTooLarge\". If not set, StatusReasonInvalid is used in the response to the client.",
"type": "string"
}
},
@ -1060,12 +1067,12 @@
"properties": {
"expression": {
"default": "",
"description": "Expression is the expression that will be evaluated as the value of the variable. The CEL expression has access to the same identifiers as the CEL expressions in Validation.",
"description": "expression is the expression that will be evaluated as the value of the variable. The CEL expression has access to the same identifiers as the CEL expressions in Validation.",
"type": "string"
},
"name": {
"default": "",
"description": "Name is the name of the variable. The name must be a valid CEL identifier and unique among all variables. The variable can be accessed in other expressions through `variables` For example, if name is \"foo\", the variable will be available as `variables.foo`",
"description": "name is the name of the variable. The name must be a valid CEL identifier and unique among all variables. The variable can be accessed in other expressions through `variables` For example, if name is \"foo\", the variable will be available as `variables.foo`",
"type": "string"
}
},
@ -1080,7 +1087,7 @@
"description": "WebhookClientConfig contains the information to make a TLS connection with the webhook",
"properties": {
"caBundle": {
"description": "`caBundle` is a PEM encoded CA bundle which will be used to validate the webhook's server certificate. If unspecified, system trust roots on the apiserver are used.",
"description": "caBundle is a PEM encoded CA bundle which will be used to validate the webhook's server certificate. If unspecified, system trust roots on the apiserver are used.",
"format": "byte",
"type": "string"
},
@ -1090,10 +1097,10 @@
"$ref": "#/components/schemas/io.k8s.api.admissionregistration.v1.ServiceReference"
}
],
"description": "`service` is a reference to the service for this webhook. Either `service` or `url` must be specified.\n\nIf the webhook is running within the cluster, then you should use `service`."
"description": "service is a reference to the service for this webhook. Either `service` or `url` must be specified.\n\nIf the webhook is running within the cluster, then you should use `service`."
},
"url": {
"description": "`url` gives the location of the webhook, in standard URL form (`scheme://host:port/path`). Exactly one of `url` or `service` must be specified.\n\nThe `host` should not refer to a service running in the cluster; use the `service` field instead. The host might be resolved via external DNS in some apiservers (e.g., `kube-apiserver` cannot resolve in-cluster DNS as that would be a layering violation). `host` may also be an IP address.\n\nPlease note that using `localhost` or `127.0.0.1` as a `host` is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster.\n\nThe scheme must be \"https\"; the URL must begin with \"https://\".\n\nA path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier.\n\nAttempting to use a user or basic auth e.g. \"user:password@\" is not allowed. Fragments (\"#...\") and query parameters (\"?...\") are not allowed, either.",
"description": "url gives the location of the webhook, in standard URL form (`scheme://host:port/path`). Exactly one of `url` or `service` must be specified.\n\nThe `host` should not refer to a service running in the cluster; use the `service` field instead. The host might be resolved via external DNS in some apiservers (e.g., `kube-apiserver` cannot resolve in-cluster DNS as that would be a layering violation). `host` may also be an IP address.\n\nPlease note that using `localhost` or `127.0.0.1` as a `host` is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster.\n\nThe scheme must be \"https\"; the URL must begin with \"https://\".\n\nA path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier.\n\nAttempting to use a user or basic auth e.g. \"user:password@\" is not allowed. Fragments (\"#...\") and query parameters (\"?...\") are not allowed, either.",
"type": "string"
}
},
@ -1407,16 +1414,6 @@
"kind": "DeleteOptions",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "DeleteOptions",
@ -2157,16 +2154,6 @@
"kind": "WatchEvent",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "WatchEvent",

View file

@ -25,12 +25,12 @@
"properties": {
"expression": {
"default": "",
"description": "Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables:\n\n'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest). 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n request resource.\nDocumentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/\n\nRequired.",
"description": "expression represents the expression which will be evaluated by CEL. Must evaluate to bool. CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables:\n\n'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest). 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n request resource.\nDocumentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/\n\nRequired.",
"type": "string"
},
"name": {
"default": "",
"description": "Name is an identifier for this match condition, used for strategic merging of MatchConditions, as well as providing an identifier for logging purposes. A good name should be descriptive of the associated expression. Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName')\n\nRequired.",
"description": "name is an identifier for this match condition, used for strategic merging of MatchConditions, as well as providing an identifier for logging purposes. A good name should be descriptive of the associated expression. Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName')\n\nRequired.",
"type": "string"
}
},
@ -44,7 +44,7 @@
"description": "MatchResources decides whether to run the admission control policy on an object based on whether it meets the match criteria. The exclude rules take precedence over include rules (if a resource matches both, it is excluded)",
"properties": {
"excludeResourceRules": {
"description": "ExcludeResourceRules describes what operations on what resources/subresources the policy should not care about. The exclude rules take precedence over include rules (if a resource matches both, it is excluded)",
"description": "excludeResourceRules describes what operations on what resources/subresources the policy should not care about. The exclude rules take precedence over include rules (if a resource matches both, it is excluded)",
"items": {
"allOf": [
{
@ -66,7 +66,7 @@
"$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector"
}
],
"description": "NamespaceSelector decides whether to run the admission control policy on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the policy.\n\nFor example, to run the webhook on any objects whose namespace is not associated with \"runlevel\" of \"0\" or \"1\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"runlevel\",\n \"operator\": \"NotIn\",\n \"values\": [\n \"0\",\n \"1\"\n ]\n }\n ]\n}\n\nIf instead you want to only run the policy on any objects whose namespace is associated with the \"environment\" of \"prod\" or \"staging\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"environment\",\n \"operator\": \"In\",\n \"values\": [\n \"prod\",\n \"staging\"\n ]\n }\n ]\n}\n\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors.\n\nDefault to the empty LabelSelector, which matches everything."
"description": "namespaceSelector decides whether to run the admission control policy on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the policy.\n\nFor example, to run the webhook on any objects whose namespace is not associated with \"runlevel\" of \"0\" or \"1\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"runlevel\",\n \"operator\": \"NotIn\",\n \"values\": [\n \"0\",\n \"1\"\n ]\n }\n ]\n}\n\nIf instead you want to only run the policy on any objects whose namespace is associated with the \"environment\" of \"prod\" or \"staging\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"environment\",\n \"operator\": \"In\",\n \"values\": [\n \"prod\",\n \"staging\"\n ]\n }\n ]\n}\n\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors.\n\nDefault to the empty LabelSelector, which matches everything."
},
"objectSelector": {
"allOf": [
@ -74,10 +74,10 @@
"$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector"
}
],
"description": "ObjectSelector decides whether to run the policy based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the policy's expression (CEL), and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything."
"description": "objectSelector decides whether to run the policy based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the policy's expression (CEL), and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything."
},
"resourceRules": {
"description": "ResourceRules describes what operations on what resources/subresources the admission policy matches. The policy cares about an operation if it matches _any_ Rule.",
"description": "resourceRules describes what operations on what resources/subresources the admission policy matches. The policy cares about an operation if it matches _any_ Rule.",
"items": {
"allOf": [
{
@ -111,7 +111,7 @@
}
],
"default": {},
"description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata."
"description": "metadata is the standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata."
},
"spec": {
"allOf": [
@ -120,7 +120,7 @@
}
],
"default": {},
"description": "Specification of the desired behavior of the MutatingAdmissionPolicy."
"description": "spec defines the desired behavior of the MutatingAdmissionPolicy."
}
},
"type": "object",
@ -150,7 +150,7 @@
}
],
"default": {},
"description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata."
"description": "metadata is the standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata."
},
"spec": {
"allOf": [
@ -159,7 +159,7 @@
}
],
"default": {},
"description": "Specification of the desired behavior of the MutatingAdmissionPolicyBinding."
"description": "spec defines the desired behavior of the MutatingAdmissionPolicyBinding."
}
},
"type": "object",
@ -201,7 +201,7 @@
}
],
"default": {},
"description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds"
"description": "metadata is the standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds"
}
},
"required": [
@ -272,7 +272,7 @@
}
],
"default": {},
"description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds"
"description": "metadata is the standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds"
}
},
"required": [
@ -395,7 +395,7 @@
"description": "NamedRuleWithOperations is a tuple of Operations and Resources with ResourceNames.",
"properties": {
"apiGroups": {
"description": "APIGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required.",
"description": "apiGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required.",
"items": {
"default": "",
"type": "string"
@ -404,7 +404,7 @@
"x-kubernetes-list-type": "atomic"
},
"apiVersions": {
"description": "APIVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required.",
"description": "apiVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required.",
"items": {
"default": "",
"type": "string"
@ -413,7 +413,7 @@
"x-kubernetes-list-type": "atomic"
},
"operations": {
"description": "Operations is the operations the admission hook cares about - CREATE, UPDATE, DELETE, CONNECT or * for all of those operations and any future admission operations that are added. If '*' is present, the length of the slice must be one. Required.",
"description": "operations is the operations the admission hook cares about - CREATE, UPDATE, DELETE, CONNECT or * for all of those operations and any future admission operations that are added. If '*' is present, the length of the slice must be one. Required.",
"items": {
"default": "",
"type": "string"
@ -422,7 +422,7 @@
"x-kubernetes-list-type": "atomic"
},
"resourceNames": {
"description": "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed.",
"description": "resourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed.",
"items": {
"default": "",
"type": "string"
@ -431,7 +431,7 @@
"x-kubernetes-list-type": "atomic"
},
"resources": {
"description": "Resources is a list of resources this rule applies to.\n\nFor example: 'pods' means pods. 'pods/log' means the log subresource of pods. '*' means all resources, but not subresources. 'pods/*' means all subresources of pods. '*/scale' means all scale subresources. '*/*' means all resources and their subresources.\n\nIf wildcard is present, the validation rule will ensure resources do not overlap with each other.\n\nDepending on the enclosing object, subresources might not be allowed. Required.",
"description": "resources is a list of resources this rule applies to.\n\nFor example: 'pods' means pods. 'pods/log' means the log subresource of pods. '*' means all resources, but not subresources. 'pods/*' means all subresources of pods. '*/scale' means all scale subresources. '*/*' means all resources and their subresources.\n\nIf wildcard is present, the validation rule will ensure resources do not overlap with each other.\n\nDepending on the enclosing object, subresources might not be allowed. Required.",
"items": {
"default": "",
"type": "string"
@ -451,11 +451,11 @@
"description": "ParamKind is a tuple of Group Kind and Version.",
"properties": {
"apiVersion": {
"description": "APIVersion is the API group version the resources belong to. In format of \"group/version\". Required.",
"description": "apiVersion is the API group version the resources belong to. In format of \"group/version\". Required.",
"type": "string"
},
"kind": {
"description": "Kind is the API kind the resources belong to. Required.",
"description": "kind is the API kind the resources belong to. Required.",
"type": "string"
}
},
@ -466,7 +466,7 @@
"description": "ParamRef describes how to locate the params to be used as input to expressions of rules applied by a policy binding.",
"properties": {
"name": {
"description": "`name` is the name of the resource being referenced.\n\n`name` and `selector` are mutually exclusive properties. If one is set, the other must be unset.",
"description": "name is the name of the resource being referenced.\n\n`name` and `selector` are mutually exclusive properties. If one is set, the other must be unset.",
"type": "string"
},
"namespace": {
@ -474,7 +474,7 @@
"type": "string"
},
"parameterNotFoundAction": {
"description": "`parameterNotFoundAction` controls the behavior of the binding when the resource exists, and name or selector is valid, but there are no parameters matched by the binding. If the value is set to `Allow`, then no matched parameters will be treated as successful validation by the binding. If set to `Deny`, then no matched parameters will be subject to the `failurePolicy` of the policy.\n\nAllowed values are `Allow` or `Deny` Default to `Deny`",
"description": "parameterNotFoundAction controls the behavior of the binding when the resource exists, and name or selector is valid, but there are no parameters matched by the binding. If the value is set to `Allow`, then no matched parameters will be treated as successful validation by the binding. If set to `Deny`, then no matched parameters will be subject to the `failurePolicy` of the policy.\n\nAllowed values are `Allow` or `Deny` Default to `Deny`",
"type": "string"
},
"selector": {
@ -494,12 +494,12 @@
"properties": {
"expression": {
"default": "",
"description": "Expression is the expression that will be evaluated as the value of the variable. The CEL expression has access to the same identifiers as the CEL expressions in Validation.",
"description": "expression is the expression that will be evaluated as the value of the variable. The CEL expression has access to the same identifiers as the CEL expressions in Validation.",
"type": "string"
},
"name": {
"default": "",
"description": "Name is the name of the variable. The name must be a valid CEL identifier and unique among all variables. The variable can be accessed in other expressions through `variables` For example, if name is \"foo\", the variable will be available as `variables.foo`",
"description": "name is the name of the variable. The name must be a valid CEL identifier and unique among all variables. The variable can be accessed in other expressions through `variables` For example, if name is \"foo\", the variable will be available as `variables.foo`",
"type": "string"
}
},
@ -771,16 +771,6 @@
"kind": "DeleteOptions",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "DeleteOptions",
@ -1521,16 +1511,6 @@
"kind": "WatchEvent",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "WatchEvent",

View file

@ -26,12 +26,12 @@
"properties": {
"expression": {
"default": "",
"description": "Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables:\n\n'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest). 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n request resource.\nDocumentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/\n\nRequired.",
"description": "expression represents the expression which will be evaluated by CEL. Must evaluate to bool. CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables:\n\n'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest). 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n request resource.\nDocumentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/\n\nRequired.",
"type": "string"
},
"name": {
"default": "",
"description": "Name is an identifier for this match condition, used for strategic merging of MatchConditions, as well as providing an identifier for logging purposes. A good name should be descriptive of the associated expression. Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName')\n\nRequired.",
"description": "name is an identifier for this match condition, used for strategic merging of MatchConditions, as well as providing an identifier for logging purposes. A good name should be descriptive of the associated expression. Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName')\n\nRequired.",
"type": "string"
}
},
@ -45,7 +45,7 @@
"description": "MatchResources decides whether to run the admission control policy on an object based on whether it meets the match criteria. The exclude rules take precedence over include rules (if a resource matches both, it is excluded)",
"properties": {
"excludeResourceRules": {
"description": "ExcludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about. The exclude rules take precedence over include rules (if a resource matches both, it is excluded)",
"description": "excludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about. The exclude rules take precedence over include rules (if a resource matches both, it is excluded)",
"items": {
"allOf": [
{
@ -67,7 +67,7 @@
"$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector"
}
],
"description": "NamespaceSelector decides whether to run the admission control policy on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the policy.\n\nFor example, to run the webhook on any objects whose namespace is not associated with \"runlevel\" of \"0\" or \"1\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"runlevel\",\n \"operator\": \"NotIn\",\n \"values\": [\n \"0\",\n \"1\"\n ]\n }\n ]\n}\n\nIf instead you want to only run the policy on any objects whose namespace is associated with the \"environment\" of \"prod\" or \"staging\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"environment\",\n \"operator\": \"In\",\n \"values\": [\n \"prod\",\n \"staging\"\n ]\n }\n ]\n}\n\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors.\n\nDefault to the empty LabelSelector, which matches everything."
"description": "namespaceSelector decides whether to run the admission control policy on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the policy.\n\nFor example, to run the webhook on any objects whose namespace is not associated with \"runlevel\" of \"0\" or \"1\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"runlevel\",\n \"operator\": \"NotIn\",\n \"values\": [\n \"0\",\n \"1\"\n ]\n }\n ]\n}\n\nIf instead you want to only run the policy on any objects whose namespace is associated with the \"environment\" of \"prod\" or \"staging\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"environment\",\n \"operator\": \"In\",\n \"values\": [\n \"prod\",\n \"staging\"\n ]\n }\n ]\n}\n\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors.\n\nDefault to the empty LabelSelector, which matches everything."
},
"objectSelector": {
"allOf": [
@ -75,10 +75,10 @@
"$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector"
}
],
"description": "ObjectSelector decides whether to run the validation based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the cel validation, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything."
"description": "objectSelector decides whether to run the validation based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the cel validation, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything."
},
"resourceRules": {
"description": "ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule.",
"description": "resourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule.",
"items": {
"allOf": [
{
@ -112,7 +112,7 @@
}
],
"default": {},
"description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata."
"description": "metadata is the standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata."
},
"spec": {
"allOf": [
@ -121,7 +121,7 @@
}
],
"default": {},
"description": "Specification of the desired behavior of the MutatingAdmissionPolicy."
"description": "spec defines the desired behavior of the MutatingAdmissionPolicy."
}
},
"type": "object",
@ -151,7 +151,7 @@
}
],
"default": {},
"description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata."
"description": "metadata is the standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata."
},
"spec": {
"allOf": [
@ -160,7 +160,7 @@
}
],
"default": {},
"description": "Specification of the desired behavior of the MutatingAdmissionPolicyBinding."
"description": "spec defines the desired behavior of the MutatingAdmissionPolicyBinding."
}
},
"type": "object",
@ -202,7 +202,7 @@
}
],
"default": {},
"description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds"
"description": "metadata is the standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds"
}
},
"required": [
@ -273,7 +273,7 @@
}
],
"default": {},
"description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds"
"description": "metadata is the standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds"
}
},
"required": [
@ -396,7 +396,7 @@
"description": "NamedRuleWithOperations is a tuple of Operations and Resources with ResourceNames.",
"properties": {
"apiGroups": {
"description": "APIGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required.",
"description": "apiGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required.",
"items": {
"default": "",
"type": "string"
@ -405,7 +405,7 @@
"x-kubernetes-list-type": "atomic"
},
"apiVersions": {
"description": "APIVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required.",
"description": "apiVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required.",
"items": {
"default": "",
"type": "string"
@ -414,7 +414,7 @@
"x-kubernetes-list-type": "atomic"
},
"operations": {
"description": "Operations is the operations the admission hook cares about - CREATE, UPDATE, DELETE, CONNECT or * for all of those operations and any future admission operations that are added. If '*' is present, the length of the slice must be one. Required.",
"description": "operations is the operations the admission hook cares about - CREATE, UPDATE, DELETE, CONNECT or * for all of those operations and any future admission operations that are added. If '*' is present, the length of the slice must be one. Required.",
"items": {
"default": "",
"type": "string"
@ -423,7 +423,7 @@
"x-kubernetes-list-type": "atomic"
},
"resourceNames": {
"description": "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed.",
"description": "resourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed.",
"items": {
"default": "",
"type": "string"
@ -432,7 +432,7 @@
"x-kubernetes-list-type": "atomic"
},
"resources": {
"description": "Resources is a list of resources this rule applies to.\n\nFor example: 'pods' means pods. 'pods/log' means the log subresource of pods. '*' means all resources, but not subresources. 'pods/*' means all subresources of pods. '*/scale' means all scale subresources. '*/*' means all resources and their subresources.\n\nIf wildcard is present, the validation rule will ensure resources do not overlap with each other.\n\nDepending on the enclosing object, subresources might not be allowed. Required.",
"description": "resources is a list of resources this rule applies to.\n\nFor example: 'pods' means pods. 'pods/log' means the log subresource of pods. '*' means all resources, but not subresources. 'pods/*' means all subresources of pods. '*/scale' means all scale subresources. '*/*' means all resources and their subresources.\n\nIf wildcard is present, the validation rule will ensure resources do not overlap with each other.\n\nDepending on the enclosing object, subresources might not be allowed. Required.",
"items": {
"default": "",
"type": "string"
@ -452,11 +452,11 @@
"description": "ParamKind is a tuple of Group Kind and Version.",
"properties": {
"apiVersion": {
"description": "APIVersion is the API group version the resources belong to. In format of \"group/version\". Required.",
"description": "apiVersion is the API group version the resources belong to. In format of \"group/version\". Required.",
"type": "string"
},
"kind": {
"description": "Kind is the API kind the resources belong to. Required.",
"description": "kind is the API kind the resources belong to. Required.",
"type": "string"
}
},
@ -475,7 +475,7 @@
"type": "string"
},
"parameterNotFoundAction": {
"description": "`parameterNotFoundAction` controls the behavior of the binding when the resource exists, and name or selector is valid, but there are no parameters matched by the binding. If the value is set to `Allow`, then no matched parameters will be treated as successful validation by the binding. If set to `Deny`, then no matched parameters will be subject to the `failurePolicy` of the policy.\n\nAllowed values are `Allow` or `Deny`\n\nRequired",
"description": "parameterNotFoundAction controls the behavior of the binding when the resource exists, and name or selector is valid, but there are no parameters matched by the binding. If the value is set to `Allow`, then no matched parameters will be treated as successful validation by the binding. If set to `Deny`, then no matched parameters will be subject to the `failurePolicy` of the policy.\n\nAllowed values are `Allow` or `Deny`\n\nRequired",
"type": "string"
},
"selector": {
@ -495,12 +495,12 @@
"properties": {
"expression": {
"default": "",
"description": "Expression is the expression that will be evaluated as the value of the variable. The CEL expression has access to the same identifiers as the CEL expressions in Validation.",
"description": "expression is the expression that will be evaluated as the value of the variable. The CEL expression has access to the same identifiers as the CEL expressions in Validation.",
"type": "string"
},
"name": {
"default": "",
"description": "Name is the name of the variable. The name must be a valid CEL identifier and unique among all variables. The variable can be accessed in other expressions through `variables` For example, if name is \"foo\", the variable will be available as `variables.foo`",
"description": "name is the name of the variable. The name must be a valid CEL identifier and unique among all variables. The variable can be accessed in other expressions through `variables` For example, if name is \"foo\", the variable will be available as `variables.foo`",
"type": "string"
}
},
@ -773,16 +773,6 @@
"kind": "DeleteOptions",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "DeleteOptions",
@ -1523,16 +1513,6 @@
"kind": "WatchEvent",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "WatchEvent",

View file

@ -1140,16 +1140,6 @@
"kind": "DeleteOptions",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "DeleteOptions",
@ -1833,16 +1823,6 @@
"kind": "WatchEvent",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "WatchEvent",

View file

@ -263,16 +263,6 @@
"kind": "DeleteOptions",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "DeleteOptions",
@ -956,16 +946,6 @@
"kind": "WatchEvent",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "WatchEvent",

View file

@ -5287,7 +5287,7 @@
"$ref": "#/components/schemas/io.k8s.api.core.v1.PortworxVolumeSource"
}
],
"description": "portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on."
"description": "portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver."
},
"projected": {
"allOf": [
@ -5855,16 +5855,6 @@
"kind": "DeleteOptions",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "DeleteOptions",
@ -6605,16 +6595,6 @@
"kind": "WatchEvent",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "WatchEvent",

View file

@ -19,7 +19,7 @@
}
],
"default": {},
"description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata"
"description": "metadata is standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata"
},
"status": {
"allOf": [
@ -28,7 +28,7 @@
}
],
"default": {},
"description": "Status is filled in by the server with the user attributes."
"description": "status is filled in by the server with the user attributes."
}
},
"type": "object",
@ -50,7 +50,7 @@
}
],
"default": {},
"description": "User attributes of the user making this request."
"description": "userInfo is a set of attributes belonging to the user making this request."
}
},
"type": "object"
@ -73,7 +73,7 @@
}
],
"default": {},
"description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata"
"description": "metadata is the standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata"
},
"spec": {
"allOf": [
@ -82,7 +82,7 @@
}
],
"default": {},
"description": "Spec holds information about the request being evaluated"
"description": "spec holds information about the request being evaluated"
},
"status": {
"allOf": [
@ -91,7 +91,7 @@
}
],
"default": {},
"description": "Status is filled in by the server and indicates whether the request can be authenticated."
"description": "status is filled in by the server and indicates whether the request can be authenticated."
}
},
"required": [
@ -110,7 +110,7 @@
"description": "TokenReviewSpec is a description of the token authentication request.",
"properties": {
"audiences": {
"description": "Audiences is a list of the identifiers that the resource server presented with the token identifies as. Audience-aware token authenticators will verify that the token was intended for at least one of the audiences in this list. If no audiences are provided, the audience will default to the audience of the Kubernetes apiserver.",
"description": "audiences is a list of the identifiers that the resource server presented with the token identifies as. Audience-aware token authenticators will verify that the token was intended for at least one of the audiences in this list. If no audiences are provided, the audience will default to the audience of the Kubernetes apiserver.",
"items": {
"default": "",
"type": "string"
@ -119,7 +119,7 @@
"x-kubernetes-list-type": "atomic"
},
"token": {
"description": "Token is the opaque bearer token.",
"description": "token is the opaque bearer token.",
"type": "string"
}
},
@ -129,7 +129,7 @@
"description": "TokenReviewStatus is the result of the token authentication request.",
"properties": {
"audiences": {
"description": "Audiences are audience identifiers chosen by the authenticator that are compatible with both the TokenReview and token. An identifier is any identifier in the intersection of the TokenReviewSpec audiences and the token's audiences. A client of the TokenReview API that sets the spec.audiences field should validate that a compatible audience identifier is returned in the status.audiences field to ensure that the TokenReview server is audience aware. If a TokenReview returns an empty status.audience field where status.authenticated is \"true\", the token is valid against the audience of the Kubernetes API server.",
"description": "audiences are audience identifiers chosen by the authenticator that are compatible with both the TokenReview and token. An identifier is any identifier in the intersection of the TokenReviewSpec audiences and the token's audiences. A client of the TokenReview API that sets the spec.audiences field should validate that a compatible audience identifier is returned in the status.audiences field to ensure that the TokenReview server is audience aware. If a TokenReview returns an empty status.audience field where status.authenticated is \"true\", the token is valid against the audience of the Kubernetes API server.",
"items": {
"default": "",
"type": "string"
@ -138,11 +138,11 @@
"x-kubernetes-list-type": "atomic"
},
"authenticated": {
"description": "Authenticated indicates that the token was associated with a known user.",
"description": "authenticated indicates that the token was associated with a known user.",
"type": "boolean"
},
"error": {
"description": "Error indicates that the token couldn't be checked",
"description": "error indicates that the token couldn't be checked",
"type": "string"
},
"user": {
@ -152,7 +152,7 @@
}
],
"default": {},
"description": "User is the UserInfo associated with the provided token."
"description": "user is the UserInfo associated with the provided token."
}
},
"type": "object"
@ -168,11 +168,11 @@
},
"type": "array"
},
"description": "Any additional information provided by the authenticator.",
"description": "extra is any additional information provided by the authenticator.",
"type": "object"
},
"groups": {
"description": "The names of groups this user is a part of.",
"description": "groups is the names of groups this user is a part of.",
"items": {
"default": "",
"type": "string"
@ -181,11 +181,11 @@
"x-kubernetes-list-type": "atomic"
},
"uid": {
"description": "A unique value that identifies this user across time. If this user is deleted and another user by the same name is added, they will have different UIDs.",
"description": "uid is a unique value that identifies this user across time. If this user is deleted and another user by the same name is added, they will have different UIDs.",
"type": "string"
},
"username": {
"description": "The name that uniquely identifies this user among all active users.",
"description": "username is the name that uniquely identifies this user among all active users.",
"type": "string"
}
},

View file

@ -65,7 +65,7 @@
}
],
"default": {},
"description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata"
"description": "metadata is the standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata"
},
"spec": {
"allOf": [
@ -74,7 +74,7 @@
}
],
"default": {},
"description": "Spec holds information about the request being evaluated. spec.namespace must be equal to the namespace you made the request against. If empty, it is defaulted."
"description": "spec holds information about the request being evaluated. spec.namespace must be equal to the namespace you made the request against. If empty, it is defaulted."
},
"status": {
"allOf": [
@ -83,7 +83,7 @@
}
],
"default": {},
"description": "Status is filled in by the server and indicates whether the request is allowed or not"
"description": "status is filled in by the server and indicates whether the request is allowed or not"
}
},
"required": [
@ -102,11 +102,11 @@
"description": "NonResourceAttributes includes the authorization attributes available for non-resource requests to the Authorizer interface",
"properties": {
"path": {
"description": "Path is the URL path of the request",
"description": "path is the URL path of the request",
"type": "string"
},
"verb": {
"description": "Verb is the standard HTTP verb",
"description": "verb is the standard HTTP verb",
"type": "string"
}
},
@ -116,7 +116,7 @@
"description": "NonResourceRule holds information that describes a rule for the non-resource",
"properties": {
"nonResourceURLs": {
"description": "NonResourceURLs is a set of partial urls that a user should have access to. *s are allowed, but only as the full, final step in the path. \"*\" means all.",
"description": "nonResourceURLs is a set of partial urls that a user should have access to. *s are allowed, but only as the full, final step in the path. \"*\" means all.",
"items": {
"default": "",
"type": "string"
@ -125,7 +125,7 @@
"x-kubernetes-list-type": "atomic"
},
"verbs": {
"description": "Verb is a list of kubernetes non-resource API verbs, like: get, post, put, delete, patch, head, options. \"*\" means all.",
"description": "verbs is a list of kubernetes non-resource API verbs, like: get, post, put, delete, patch, head, options. \"*\" means all.",
"items": {
"default": "",
"type": "string"
@ -151,7 +151,7 @@
"description": "fieldSelector describes the limitation on access based on field. It can only limit access, not broaden it."
},
"group": {
"description": "Group is the API Group of the Resource. \"*\" means all.",
"description": "group is the API Group of the Resource. \"*\" means all.",
"type": "string"
},
"labelSelector": {
@ -163,27 +163,27 @@
"description": "labelSelector describes the limitation on access based on labels. It can only limit access, not broaden it."
},
"name": {
"description": "Name is the name of the resource being requested for a \"get\" or deleted for a \"delete\". \"\" (empty) means all.",
"description": "name is the name of the resource being requested for a \"get\" or deleted for a \"delete\". \"\" (empty) means all.",
"type": "string"
},
"namespace": {
"description": "Namespace is the namespace of the action being requested. Currently, there is no distinction between no namespace and all namespaces \"\" (empty) is defaulted for LocalSubjectAccessReviews \"\" (empty) is empty for cluster-scoped resources \"\" (empty) means \"all\" for namespace scoped resources from a SubjectAccessReview or SelfSubjectAccessReview",
"description": "namespace is the namespace of the action being requested. Currently, there is no distinction between no namespace and all namespaces \"\" (empty) is defaulted for LocalSubjectAccessReviews \"\" (empty) is empty for cluster-scoped resources \"\" (empty) means \"all\" for namespace scoped resources from a SubjectAccessReview or SelfSubjectAccessReview",
"type": "string"
},
"resource": {
"description": "Resource is one of the existing resource types. \"*\" means all.",
"description": "resource is one of the existing resource types. \"*\" means all.",
"type": "string"
},
"subresource": {
"description": "Subresource is one of the existing resource types. \"\" means none.",
"description": "subresource is one of the existing resource types. \"\" means none.",
"type": "string"
},
"verb": {
"description": "Verb is a kubernetes resource API verb, like: get, list, watch, create, update, delete, proxy. \"*\" means all.",
"description": "verb is a kubernetes resource API verb, like: get, list, watch, create, update, delete, proxy. \"*\" means all.",
"type": "string"
},
"version": {
"description": "Version is the API Version of the Resource. \"*\" means all.",
"description": "version is the API Version of the Resource. \"*\" means all.",
"type": "string"
}
},
@ -193,7 +193,7 @@
"description": "ResourceRule is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.",
"properties": {
"apiGroups": {
"description": "APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed. \"*\" means all.",
"description": "apiGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed. \"*\" means all.",
"items": {
"default": "",
"type": "string"
@ -202,7 +202,7 @@
"x-kubernetes-list-type": "atomic"
},
"resourceNames": {
"description": "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed. \"*\" means all.",
"description": "resourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed. \"*\" means all.",
"items": {
"default": "",
"type": "string"
@ -211,7 +211,7 @@
"x-kubernetes-list-type": "atomic"
},
"resources": {
"description": "Resources is a list of resources this rule applies to. \"*\" means all in the specified apiGroups.\n \"*/foo\" represents the subresource 'foo' for all resources in the specified apiGroups.",
"description": "resources is a list of resources this rule applies to. \"*\" means all in the specified apiGroups.\n \"*/foo\" represents the subresource 'foo' for all resources in the specified apiGroups.",
"items": {
"default": "",
"type": "string"
@ -220,7 +220,7 @@
"x-kubernetes-list-type": "atomic"
},
"verbs": {
"description": "Verb is a list of kubernetes resource API verbs, like: get, list, watch, create, update, delete, proxy. \"*\" means all.",
"description": "verbs is a list of kubernetes resource API verbs, like: get, list, watch, create, update, delete, proxy. \"*\" means all.",
"items": {
"default": "",
"type": "string"
@ -252,7 +252,7 @@
}
],
"default": {},
"description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata"
"description": "metadata is the standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata"
},
"spec": {
"allOf": [
@ -261,7 +261,7 @@
}
],
"default": {},
"description": "Spec holds information about the request being evaluated. user and groups must be empty"
"description": "spec holds information about the request being evaluated. user and groups must be empty"
},
"status": {
"allOf": [
@ -270,7 +270,7 @@
}
],
"default": {},
"description": "Status is filled in by the server and indicates whether the request is allowed or not"
"description": "status is filled in by the server and indicates whether the request is allowed or not"
}
},
"required": [
@ -286,7 +286,7 @@
]
},
"io.k8s.api.authorization.v1.SelfSubjectAccessReviewSpec": {
"description": "SelfSubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set",
"description": "SelfSubjectAccessReviewSpec is a description of the access request. Exactly one of resourceAttributes and nonResourceAttributes must be set",
"properties": {
"nonResourceAttributes": {
"allOf": [
@ -294,7 +294,7 @@
"$ref": "#/components/schemas/io.k8s.api.authorization.v1.NonResourceAttributes"
}
],
"description": "NonResourceAttributes describes information for a non-resource access request"
"description": "nonResourceAttributes describes information for a non-resource access request"
},
"resourceAttributes": {
"allOf": [
@ -302,7 +302,7 @@
"$ref": "#/components/schemas/io.k8s.api.authorization.v1.ResourceAttributes"
}
],
"description": "ResourceAuthorizationAttributes describes information for a resource access request"
"description": "resourceAttributes describes information for a resource access request"
}
},
"type": "object"
@ -325,7 +325,7 @@
}
],
"default": {},
"description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata"
"description": "metadata is the standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata"
},
"spec": {
"allOf": [
@ -334,7 +334,7 @@
}
],
"default": {},
"description": "Spec holds information about the request being evaluated."
"description": "spec holds information about the request being evaluated."
},
"status": {
"allOf": [
@ -343,7 +343,7 @@
}
],
"default": {},
"description": "Status is filled in by the server and indicates the set of actions a user can perform."
"description": "status is filled in by the server and indicates the set of actions a user can perform."
}
},
"required": [
@ -362,7 +362,7 @@
"description": "SelfSubjectRulesReviewSpec defines the specification for SelfSubjectRulesReview.",
"properties": {
"namespace": {
"description": "Namespace to evaluate rules for. Required.",
"description": "namespace to evaluate rules for. Required.",
"type": "string"
}
},
@ -386,7 +386,7 @@
}
],
"default": {},
"description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata"
"description": "metadata is the standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata"
},
"spec": {
"allOf": [
@ -395,7 +395,7 @@
}
],
"default": {},
"description": "Spec holds information about the request being evaluated"
"description": "spec holds information about the request being evaluated"
},
"status": {
"allOf": [
@ -404,7 +404,7 @@
}
],
"default": {},
"description": "Status is filled in by the server and indicates whether the request is allowed or not"
"description": "status is filled in by the server and indicates whether the request is allowed or not"
}
},
"required": [
@ -420,7 +420,7 @@
]
},
"io.k8s.api.authorization.v1.SubjectAccessReviewSpec": {
"description": "SubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set",
"description": "SubjectAccessReviewSpec is a description of the access request. Exactly one of resourceAttributes and nonResourceAttributes must be set",
"properties": {
"extra": {
"additionalProperties": {
@ -430,11 +430,11 @@
},
"type": "array"
},
"description": "Extra corresponds to the user.Info.GetExtra() method from the authenticator. Since that is input to the authorizer it needs a reflection here.",
"description": "extra corresponds to the user.Info.GetExtra() method from the authenticator. Since that is input to the authorizer it needs a reflection here.",
"type": "object"
},
"groups": {
"description": "Groups is the groups you're testing for.",
"description": "groups is the groups you're testing for.",
"items": {
"default": "",
"type": "string"
@ -448,7 +448,7 @@
"$ref": "#/components/schemas/io.k8s.api.authorization.v1.NonResourceAttributes"
}
],
"description": "NonResourceAttributes describes information for a non-resource access request"
"description": "nonResourceAttributes describes information for a non-resource access request"
},
"resourceAttributes": {
"allOf": [
@ -456,14 +456,14 @@
"$ref": "#/components/schemas/io.k8s.api.authorization.v1.ResourceAttributes"
}
],
"description": "ResourceAuthorizationAttributes describes information for a resource access request"
"description": "resourceAttributes describes information for a resource access request"
},
"uid": {
"description": "UID information about the requesting user.",
"description": "uid information about the requesting user.",
"type": "string"
},
"user": {
"description": "User is the user you're testing for. If you specify \"User\" but not \"Groups\", then is it interpreted as \"What if User were not a member of any groups",
"description": "user is the user you're testing for. If you specify \"User\" but not \"Groups\", then is it interpreted as \"What if User were not a member of any groups",
"type": "string"
}
},
@ -474,19 +474,19 @@
"properties": {
"allowed": {
"default": false,
"description": "Allowed is required. True if the action would be allowed, false otherwise.",
"description": "allowed is required. True if the action would be allowed, false otherwise.",
"type": "boolean"
},
"denied": {
"description": "Denied is optional. True if the action would be denied, otherwise false. If both allowed is false and denied is false, then the authorizer has no opinion on whether to authorize the action. Denied may not be true if Allowed is true.",
"description": "denied is optional. True if the action would be denied, otherwise false. If both allowed is false and denied is false, then the authorizer has no opinion on whether to authorize the action. Denied may not be true if Allowed is true.",
"type": "boolean"
},
"evaluationError": {
"description": "EvaluationError is an indication that some error occurred during the authorization check. It is entirely possible to get an error and be able to continue determine authorization status in spite of it. For instance, RBAC can be missing a role, but enough roles are still present and bound to reason about the request.",
"description": "evaluationError is an indication that some error occurred during the authorization check. It is entirely possible to get an error and be able to continue determine authorization status in spite of it. For instance, RBAC can be missing a role, but enough roles are still present and bound to reason about the request.",
"type": "string"
},
"reason": {
"description": "Reason is optional. It indicates why a request was allowed or denied.",
"description": "reason is optional. It indicates why a request was allowed or denied.",
"type": "string"
}
},
@ -499,16 +499,16 @@
"description": "SubjectRulesReviewStatus contains the result of a rules check. This check can be incomplete depending on the set of authorizers the server is configured with and any errors experienced during evaluation. Because authorization rules are additive, if a rule appears in a list it's safe to assume the subject has that permission, even if that list is incomplete.",
"properties": {
"evaluationError": {
"description": "EvaluationError can appear in combination with Rules. It indicates an error occurred during rule evaluation, such as an authorizer that doesn't support rule evaluation, and that ResourceRules and/or NonResourceRules may be incomplete.",
"description": "evaluationError can appear in combination with Rules. It indicates an error occurred during rule evaluation, such as an authorizer that doesn't support rule evaluation, and that ResourceRules and/or NonResourceRules may be incomplete.",
"type": "string"
},
"incomplete": {
"default": false,
"description": "Incomplete is true when the rules returned by this call are incomplete. This is most commonly encountered when an authorizer, such as an external authorizer, doesn't support rules evaluation.",
"description": "incomplete is true when the rules returned by this call are incomplete. This is most commonly encountered when an authorizer, such as an external authorizer, doesn't support rules evaluation.",
"type": "boolean"
},
"nonResourceRules": {
"description": "NonResourceRules is the list of actions the subject is allowed to perform on non-resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.",
"description": "nonResourceRules is the list of actions the subject is allowed to perform on non-resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.",
"items": {
"allOf": [
{
@ -521,7 +521,7 @@
"x-kubernetes-list-type": "atomic"
},
"resourceRules": {
"description": "ResourceRules is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.",
"description": "resourceRules is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.",
"items": {
"allOf": [
{

View file

@ -65,6 +65,9 @@
"description": "status is the current information about the autoscaler."
}
},
"required": [
"spec"
],
"type": "object",
"x-kubernetes-group-version-kind": [
{
@ -456,16 +459,6 @@
"kind": "DeleteOptions",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "DeleteOptions",
@ -1149,16 +1142,6 @@
"kind": "WatchEvent",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "WatchEvent",

View file

@ -244,6 +244,9 @@
"description": "status is the current information about the autoscaler."
}
},
"required": [
"spec"
],
"type": "object",
"x-kubernetes-group-version-kind": [
{
@ -1116,16 +1119,6 @@
"kind": "DeleteOptions",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "DeleteOptions",
@ -1866,16 +1859,6 @@
"kind": "WatchEvent",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "WatchEvent",

View file

@ -40,6 +40,9 @@
"description": "Current status of a cron job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status"
}
},
"required": [
"spec"
],
"type": "object",
"x-kubernetes-group-version-kind": [
{
@ -4478,7 +4481,7 @@
"$ref": "#/components/schemas/io.k8s.api.core.v1.PortworxVolumeSource"
}
],
"description": "portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on."
"description": "portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver."
},
"projected": {
"allOf": [
@ -5046,16 +5049,6 @@
"kind": "DeleteOptions",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "DeleteOptions",
@ -5796,16 +5789,6 @@
"kind": "WatchEvent",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "WatchEvent",

View file

@ -490,16 +490,6 @@
"kind": "DeleteOptions",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "DeleteOptions",
@ -1183,16 +1173,6 @@
"kind": "WatchEvent",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "WatchEvent",

View file

@ -368,16 +368,6 @@
"kind": "DeleteOptions",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "DeleteOptions",
@ -1061,16 +1051,6 @@
"kind": "WatchEvent",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "WatchEvent",

View file

@ -222,7 +222,7 @@
"type": "string"
},
"pkixPublicKey": {
"description": "pkixPublicKey is the PKIX-serialized public key the signer will issue the certificate to.\n\nThe key must be one of RSA3072, RSA4096, ECDSAP256, ECDSAP384, ECDSAP521, or ED25519. Note that this list may be expanded in the future.\n\nSigner implementations do not need to support all key types supported by kube-apiserver and kubelet. If a signer does not support the key type used for a given PodCertificateRequest, it must deny the request by setting a status.conditions entry with a type of \"Denied\" and a reason of \"UnsupportedKeyType\". It may also suggest a key type that it does support in the message field.",
"description": "The PKIX-serialized public key the signer will issue the certificate to.\n\nThe key must be one of RSA3072, RSA4096, ECDSAP256, ECDSAP384, ECDSAP521, or ED25519. Note that this list may be expanded in the future.\n\nSigner implementations do not need to support all key types supported by kube-apiserver and kubelet. If a signer does not support the key type used for a given PodCertificateRequest, it must deny the request by setting a status.conditions entry with a type of \"Denied\" and a reason of \"UnsupportedKeyType\". It may also suggest a key type that it does support in the message field.\n\nDeprecated: This field is replaced by StubPKCS10Request. If StubPKCS10Request is set, this field must be empty. Signer implementations should extract the public key from the StubPKCS10Request field.",
"format": "byte",
"type": "string"
},
@ -237,7 +237,7 @@
"type": "string"
},
"proofOfPossession": {
"description": "proofOfPossession proves that the requesting kubelet holds the private key corresponding to pkixPublicKey.\n\nIt is contructed by signing the ASCII bytes of the pod's UID using `pkixPublicKey`.\n\nkube-apiserver validates the proof of possession during creation of the PodCertificateRequest.\n\nIf the key is an RSA key, then the signature is over the ASCII bytes of the pod UID, using RSASSA-PSS from RFC 8017 (as implemented by the golang function crypto/rsa.SignPSS with nil options).\n\nIf the key is an ECDSA key, then the signature is as described by [SEC 1, Version 2.0](https://www.secg.org/sec1-v2.pdf) (as implemented by the golang library function crypto/ecdsa.SignASN1)\n\nIf the key is an ED25519 key, the the signature is as described by the [ED25519 Specification](https://ed25519.cr.yp.to/) (as implemented by the golang library crypto/ed25519.Sign).",
"description": "A proof that the requesting kubelet holds the private key corresponding to pkixPublicKey.\n\nIt is contructed by signing the ASCII bytes of the pod's UID using `pkixPublicKey`.\n\nkube-apiserver validates the proof of possession during creation of the PodCertificateRequest.\n\nIf the key is an RSA key, then the signature is over the ASCII bytes of the pod UID, using RSASSA-PSS from RFC 8017 (as implemented by the golang function crypto/rsa.SignPSS with nil options).\n\nIf the key is an ECDSA key, then the signature is as described by [SEC 1, Version 2.0](https://www.secg.org/sec1-v2.pdf) (as implemented by the golang library function crypto/ecdsa.SignASN1)\n\nIf the key is an ED25519 key, the the signature is as described by the [ED25519 Specification](https://ed25519.cr.yp.to/) (as implemented by the golang library crypto/ed25519.Sign).\n\nDeprecated: This field is replaced by StubPKCS10Request. If StubPKCS10Request is set, this field must be empty.",
"format": "byte",
"type": "string"
},
@ -256,6 +256,11 @@
"description": "signerName indicates the requested signer.\n\nAll signer names beginning with `kubernetes.io` are reserved for use by the Kubernetes project. There is currently one well-known signer documented by the Kubernetes project, `kubernetes.io/kube-apiserver-client-pod`, which will issue client certificates understood by kube-apiserver. It is currently unimplemented.",
"type": "string"
},
"stubPKCS10Request": {
"description": "A PKCS#10 certificate signing request (DER-serialized) generated by Kubelet using the subject private key.\n\nMost signer implementations will ignore the contents of the CSR except to extract the subject public key. The API server automatically verifies the CSR signature during admission, so the signer does not need to repeat the verification. CSRs generated by kubelet are completely empty.\n\nThe subject public key must be one of RSA3072, RSA4096, ECDSAP256, ECDSAP384, ECDSAP521, or ED25519. Note that this list may be expanded in the future.\n\nSigner implementations do not need to support all key types supported by kube-apiserver and kubelet. If a signer does not support the key type used for a given PodCertificateRequest, it must deny the request by setting a status.conditions entry with a type of \"Denied\" and a reason of \"UnsupportedKeyType\". It may also suggest a key type that it does support in the message field.",
"format": "byte",
"type": "string"
},
"unverifiedUserAnnotations": {
"additionalProperties": {
"default": "",
@ -273,8 +278,7 @@
"serviceAccountUID",
"nodeName",
"nodeUID",
"pkixPublicKey",
"proofOfPossession"
"stubPKCS10Request"
],
"type": "object"
},
@ -638,16 +642,6 @@
"kind": "DeleteOptions",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "DeleteOptions",
@ -1331,16 +1325,6 @@
"kind": "WatchEvent",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "WatchEvent",

View file

@ -391,16 +391,6 @@
"kind": "DeleteOptions",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "DeleteOptions",
@ -1089,16 +1079,6 @@
"kind": "WatchEvent",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "WatchEvent",

View file

@ -31,6 +31,9 @@
"description": "spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status"
}
},
"required": [
"spec"
],
"type": "object",
"x-kubernetes-group-version-kind": [
{
@ -392,16 +395,6 @@
"kind": "DeleteOptions",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "DeleteOptions",
@ -1090,16 +1083,6 @@
"kind": "WatchEvent",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "WatchEvent",

View file

@ -31,6 +31,9 @@
"description": "spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status"
}
},
"required": [
"spec"
],
"type": "object",
"x-kubernetes-group-version-kind": [
{
@ -392,16 +395,6 @@
"kind": "DeleteOptions",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "DeleteOptions",
@ -1090,16 +1083,6 @@
"kind": "WatchEvent",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "WatchEvent",

View file

@ -226,8 +226,7 @@
}
},
"required": [
"addressType",
"endpoints"
"addressType"
],
"type": "object",
"x-kubernetes-group-version-kind": [
@ -573,16 +572,6 @@
"kind": "DeleteOptions",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "DeleteOptions",
@ -1266,16 +1255,6 @@
"kind": "WatchEvent",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "WatchEvent",

View file

@ -501,16 +501,6 @@
"kind": "DeleteOptions",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "DeleteOptions",
@ -1199,16 +1189,6 @@
"kind": "WatchEvent",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "WatchEvent",

View file

@ -992,16 +992,6 @@
"kind": "DeleteOptions",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "DeleteOptions",
@ -1685,16 +1675,6 @@
"kind": "WatchEvent",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "WatchEvent",

View file

@ -31,6 +31,11 @@
"x-kubernetes-list-type": "set"
}
},
"required": [
"apiServerID",
"encodingVersion",
"decodableVersions"
],
"type": "object"
},
"io.k8s.api.apiserverinternal.v1alpha1.StorageVersion": {
@ -73,8 +78,7 @@
}
},
"required": [
"spec",
"status"
"metadata"
],
"type": "object",
"x-kubernetes-group-version-kind": [
@ -482,16 +486,6 @@
"kind": "DeleteOptions",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "DeleteOptions",
@ -1175,16 +1169,6 @@
"kind": "WatchEvent",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "WatchEvent",

View file

@ -105,6 +105,9 @@
"description": "spec is the desired state of the IPAddress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status"
}
},
"required": [
"spec"
],
"type": "object",
"x-kubernetes-group-version-kind": [
{
@ -1366,16 +1369,6 @@
"kind": "DeleteOptions",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "DeleteOptions",
@ -2116,16 +2109,6 @@
"kind": "WatchEvent",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "WatchEvent",

View file

@ -31,6 +31,9 @@
"description": "spec is the desired state of the IPAddress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status"
}
},
"required": [
"spec"
],
"type": "object",
"x-kubernetes-group-version-kind": [
{
@ -568,16 +571,6 @@
"kind": "DeleteOptions",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "DeleteOptions",
@ -1261,16 +1254,6 @@
"kind": "WatchEvent",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "WatchEvent",

View file

@ -441,16 +441,6 @@
"kind": "DeleteOptions",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "DeleteOptions",
@ -1134,16 +1124,6 @@
"kind": "WatchEvent",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "WatchEvent",

View file

@ -187,12 +187,6 @@
"type": "integer"
}
},
"required": [
"disruptionsAllowed",
"currentHealthy",
"desiredHealthy",
"expectedPods"
],
"type": "object"
},
"io.k8s.apimachinery.pkg.apis.meta.v1.APIResource": {
@ -503,16 +497,6 @@
"kind": "DeleteOptions",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "DeleteOptions",
@ -1253,16 +1237,6 @@
"kind": "WatchEvent",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "WatchEvent",

View file

@ -776,16 +776,6 @@
"kind": "DeleteOptions",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "DeleteOptions",
@ -1526,16 +1516,6 @@
"kind": "WatchEvent",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "WatchEvent",

View file

@ -599,7 +599,7 @@
"type": "object"
},
"io.k8s.api.resource.v1.DeviceClass": {
"description": "DeviceClass is a vendor- or admin-provided resource that contains device configuration and selectors. It can be referenced in the device requests of a claim to apply these presets. Cluster scoped.\n\nThis is an alpha type and requires enabling the DynamicResourceAllocation feature gate.",
"description": "DeviceClass is a vendor- or admin-provided resource that contains device configuration and selectors. It can be referenced in the device requests of a claim to apply these presets. Cluster scoped.",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
@ -824,7 +824,7 @@
"description": "DeviceRequestAllocationResult contains the allocation result for one request.",
"properties": {
"adminAccess": {
"description": "AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode.\n\nThis is an alpha field and requires enabling the DRAAdminAccess feature gate. Admin access is disabled if this field is unset or set to false, otherwise it is enabled.",
"description": "AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode.\n\nThis is an beta field and requires enabling the DRAAdminAccess feature gate. Admin access is disabled if this field is unset or set to false, otherwise it is enabled.",
"type": "boolean"
},
"bindingConditions": {
@ -1039,7 +1039,7 @@
"description": "ExactDeviceRequest is a request for one or more identical devices.",
"properties": {
"adminAccess": {
"description": "AdminAccess indicates that this is a claim for administrative access to the device(s). Claims with AdminAccess are expected to be used for monitoring or other management services for a device. They ignore all ordinary claims to the device with respect to access modes and any resource allocations.\n\nThis is an alpha field and requires enabling the DRAAdminAccess feature gate. Admin access is disabled if this field is unset or set to false, otherwise it is enabled.",
"description": "AdminAccess indicates that this is a claim for administrative access to the device(s). Claims with AdminAccess are expected to be used for monitoring or other management services for a device. They ignore all ordinary claims to the device with respect to access modes and any resource allocations.\n\nThis is an beta field and requires enabling the DRAAdminAccess feature gate. Admin access is disabled if this field is unset or set to false, otherwise it is enabled.",
"type": "boolean"
},
"allocationMode": {
@ -1143,7 +1143,7 @@
"type": "object"
},
"io.k8s.api.resource.v1.ResourceClaim": {
"description": "ResourceClaim describes a request for access to resources in the cluster, for use by workloads. For example, if a workload needs an accelerator device with specific properties, this is how that request is expressed. The status stanza tracks whether this claim has been satisfied and what specific resources have been allocated.\n\nThis is an alpha type and requires enabling the DynamicResourceAllocation feature gate.",
"description": "ResourceClaim describes a request for access to resources in the cluster, for use by workloads. For example, if a workload needs an accelerator device with specific properties, this is how that request is expressed. The status stanza tracks whether this claim has been satisfied and what specific resources have been allocated.",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
@ -1335,7 +1335,7 @@
"type": "object"
},
"io.k8s.api.resource.v1.ResourceClaimTemplate": {
"description": "ResourceClaimTemplate is used to produce ResourceClaim objects.\n\nThis is an alpha type and requires enabling the DynamicResourceAllocation feature gate.",
"description": "ResourceClaimTemplate is used to produce ResourceClaim objects.",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
@ -1477,7 +1477,7 @@
"type": "object"
},
"io.k8s.api.resource.v1.ResourceSlice": {
"description": "ResourceSlice represents one or more resources in a pool of similar resources, managed by a common driver. A pool may span more than one ResourceSlice, and exactly how many ResourceSlices comprise a pool is determined by the driver.\n\nAt the moment, the only supported resources are devices with attributes and capacities. Each device in a given pool, regardless of how many ResourceSlices, must have a unique name. The ResourceSlice in which a device gets published may change over time. The unique identifier for a device is the tuple <driver name>, <pool name>, <device name>.\n\nWhenever a driver needs to update a pool, it increments the pool.Spec.Pool.Generation number and updates all ResourceSlices with that new number and new resource definitions. A consumer must only use ResourceSlices with the highest generation number and ignore all others.\n\nWhen allocating all resources in a pool matching certain criteria or when looking for the best solution among several different alternatives, a consumer should check the number of ResourceSlices in a pool (included in each ResourceSlice) to determine whether its view of a pool is complete and if not, should wait until the driver has completed updating the pool.\n\nFor resources that are not local to a node, the node name is not set. Instead, the driver may use a node selector to specify where the devices are available.\n\nThis is an alpha type and requires enabling the DynamicResourceAllocation feature gate.",
"description": "ResourceSlice represents one or more resources in a pool of similar resources, managed by a common driver. A pool may span more than one ResourceSlice, and exactly how many ResourceSlices comprise a pool is determined by the driver.\n\nAt the moment, the only supported resources are devices with attributes and capacities. Each device in a given pool, regardless of how many ResourceSlices, must have a unique name. The ResourceSlice in which a device gets published may change over time. The unique identifier for a device is the tuple <driver name>, <pool name>, <device name>.\n\nWhenever a driver needs to update a pool, it increments the pool.Spec.Pool.Generation number and updates all ResourceSlices with that new number and new resource definitions. A consumer must only use ResourceSlices with the highest generation number and ignore all others.\n\nWhen allocating all resources in a pool matching certain criteria or when looking for the best solution among several different alternatives, a consumer should check the number of ResourceSlices in a pool (included in each ResourceSlice) to determine whether its view of a pool is complete and if not, should wait until the driver has completed updating the pool.\n\nFor resources that are not local to a node, the node name is not set. Instead, the driver may use a node selector to specify where the devices are available.",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
@ -1952,16 +1952,6 @@
"kind": "DeleteOptions",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "DeleteOptions",
@ -2645,16 +2635,6 @@
"kind": "WatchEvent",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "WatchEvent",

View file

@ -505,16 +505,6 @@
"kind": "DeleteOptions",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "DeleteOptions",
@ -1198,16 +1188,6 @@
"kind": "WatchEvent",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "WatchEvent",

View file

@ -1949,16 +1949,6 @@
"kind": "DeleteOptions",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "DeleteOptions",
@ -2642,16 +2632,6 @@
"kind": "WatchEvent",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "WatchEvent",

View file

@ -1952,16 +1952,6 @@
"kind": "DeleteOptions",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "DeleteOptions",
@ -2645,16 +2635,6 @@
"kind": "WatchEvent",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "WatchEvent",

View file

@ -40,9 +40,6 @@
"type": "integer"
}
},
"required": [
"value"
],
"type": "object",
"x-kubernetes-group-version-kind": [
{
@ -359,16 +356,6 @@
"kind": "DeleteOptions",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "DeleteOptions",
@ -1052,16 +1039,6 @@
"kind": "WatchEvent",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "WatchEvent",

View file

@ -64,7 +64,15 @@
"description": "Gang specifies that the pods in this group should be scheduled using all-or-nothing semantics."
}
},
"type": "object"
"type": "object",
"x-kubernetes-unions": [
{
"fields-to-discriminateBy": {
"basic": "Basic",
"gang": "Gang"
}
}
]
},
"io.k8s.api.scheduling.v1alpha1.TypedLocalObjectReference": {
"description": "TypedLocalObjectReference allows to reference typed object inside the same namespace.",
@ -472,16 +480,6 @@
"kind": "DeleteOptions",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "DeleteOptions",
@ -1165,16 +1163,6 @@
"kind": "WatchEvent",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "WatchEvent",

View file

@ -820,7 +820,7 @@
"$ref": "#/components/schemas/io.k8s.api.core.v1.PortworxVolumeSource"
}
],
"description": "portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on."
"description": "portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver."
},
"quobyte": {
"allOf": [
@ -2326,16 +2326,6 @@
"kind": "DeleteOptions",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "DeleteOptions",
@ -3076,16 +3066,6 @@
"kind": "WatchEvent",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "WatchEvent",

View file

@ -354,16 +354,6 @@
"kind": "DeleteOptions",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "DeleteOptions",
@ -1047,16 +1037,6 @@
"kind": "WatchEvent",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "WatchEvent",

View file

@ -448,16 +448,6 @@
"kind": "DeleteOptions",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "DeleteOptions",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "DeleteOptions",
@ -1159,16 +1149,6 @@
"kind": "WatchEvent",
"version": "v2"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta1"
},
{
"group": "autoscaling",
"kind": "WatchEvent",
"version": "v2beta2"
},
{
"group": "batch",
"kind": "WatchEvent",

View file

@ -1 +1 @@
v1.35.0-go1.25.5-bullseye.0
v1.36.0-go1.25.7-bullseye.0

View file

@ -24,9 +24,6 @@ set -o pipefail
# Unset CDPATH, having it set messes up with script import paths
unset CDPATH
USER_ID=$(id -u)
GROUP_ID=$(id -g)
DOCKER_OPTS=${DOCKER_OPTS:-""}
IFS=" " read -r -a DOCKER <<< "docker ${DOCKER_OPTS}"
DOCKER_HOST=${DOCKER_HOST:-""}
@ -80,8 +77,8 @@ readonly REMOTE_OUTPUT_BINPATH="${REMOTE_OUTPUT_SUBPATH}/bin"
readonly REMOTE_OUTPUT_GOPATH="${REMOTE_OUTPUT_SUBPATH}/go"
# These are the default versions (image tags) for their respective base images.
readonly __default_distroless_iptables_version=v0.8.6
readonly __default_go_runner_version=v2.4.0-go1.25.5-bookworm.0
readonly __default_distroless_iptables_version=v0.8.8
readonly __default_go_runner_version=v2.4.0-go1.25.7-bookworm.0
readonly __default_setcap_version=bookworm-v1.0.6
# The default image for all binaries which are dynamically linked.
@ -348,6 +345,9 @@ function kube::build::clean() {
if [[ -d "${LOCAL_OUTPUT_ROOT}/local/go/cache" ]]; then
chmod -R +w "${LOCAL_OUTPUT_ROOT}/local/go/cache"
fi
if [[ -d "${LOCAL_OUTPUT_ROOT}/dockerized/go/cache" ]]; then
chmod -R +w "${LOCAL_OUTPUT_ROOT}/dockerized/go/cache"
fi
rm -rf "${LOCAL_OUTPUT_ROOT}"
fi
}

View file

@ -18,7 +18,7 @@ dependencies:
# CNI plugins
- name: "cni"
version: 1.8.0
version: 1.9.0
refPaths:
- path: cluster/gce/config-common.sh
match: WINDOWS_CNI_VERSION=
@ -31,7 +31,7 @@ dependencies:
# CoreDNS
- name: "coredns-kube-up"
version: 1.13.1
version: 1.14.1
refPaths:
- path: cluster/addons/dns/coredns/coredns.yaml.base
match: registry.k8s.io/coredns
@ -41,14 +41,14 @@ dependencies:
match: registry.k8s.io/coredns
- name: "coredns-kubeadm"
version: 1.13.1
version: 1.14.1
refPaths:
- path: cmd/kubeadm/app/constants/constants.go
match: CoreDNSVersion =
# CRI Tools
- name: "crictl"
version: 1.34.0
version: 1.35.0
refPaths:
- path: cluster/gce/windows/k8s-node-setup.psm1
match: CRICTL_VERSION =
@ -64,7 +64,7 @@ dependencies:
# etcd
- name: "etcd"
version: 3.6.6
version: 3.6.7
refPaths:
- path: cluster/gce/manifests/etcd.manifest
match: etcd_docker_tag|etcd_version
@ -78,13 +78,53 @@ dependencies:
match: registry.k8s.io/etcd
- path: test/utils/image/manifest.go
match: configs\[Etcd\] = Config{list\.GcEtcdRegistry, "etcd", "\d+\.\d+.\d+(-(alpha|beta|rc).\d+)?(-\d+)?"}
- path: test/e2e/testing-manifests/statefulset/etcd/statefulset.yaml
match: registry.k8s.io/etcd:\d+\.\d+\.\d+(-\d+)?
- name: "etcd-image"
version: 3.6.4
# agnhost - E2E test image
- name: "agnhost"
version: 2.63.0
refPaths:
- path: cluster/images/etcd/Makefile
match: BUNDLED_ETCD_VERSIONS\?|LATEST_ETCD_VERSION\?
- path: cluster/images/etcd/migrate/options.go
- path: test/utils/image/manifest.go
match: configs\[Agnhost\] = Config{list\.PromoterE2eRegistry, "agnhost", "\d+\.\d+\.\d+"}
- path: test/images/kitten/BASEIMAGE
match: agnhost:\d+\.\d+\.\d+-
- path: test/images/nautilus/BASEIMAGE
match: agnhost:\d+\.\d+\.\d+-
- path: test/e2e/testing-manifests/kubectl/agnhost-primary-pod.yaml
match: registry.k8s.io/e2e-test-images/agnhost:\d+\.\d+\.\d+
- path: test/e2e/testing-manifests/serviceloadbalancer/netexecrc.yaml
match: registry.k8s.io/e2e-test-images/agnhost:\d+\.\d+\.\d+
- path: test/e2e/testing-manifests/ingress/multiple-certs/rc.yaml
match: registry.k8s.io/e2e-test-images/agnhost:\d+\.\d+\.\d+
- path: test/e2e/testing-manifests/ingress/http/rc.yaml
match: registry.k8s.io/e2e-test-images/agnhost:\d+\.\d+\.\d+
- path: test/e2e/testing-manifests/ingress/http2/rc.yaml
match: registry.k8s.io/e2e-test-images/agnhost:\d+\.\d+\.\d+
- path: test/e2e/testing-manifests/ingress/pre-shared-cert/rc.yaml
match: registry.k8s.io/e2e-test-images/agnhost:\d+\.\d+\.\d+
- path: test/e2e/testing-manifests/ingress/gce/static-ip-2/rc.yaml
match: registry.k8s.io/e2e-test-images/agnhost:\d+\.\d+\.\d+
- path: test/e2e/testing-manifests/ingress/neg/rc.yaml
match: registry.k8s.io/e2e-test-images/agnhost:\d+\.\d+\.\d+
- path: test/e2e/testing-manifests/ingress/static-ip/rc.yaml
match: registry.k8s.io/e2e-test-images/agnhost:\d+\.\d+\.\d+
- path: test/e2e/testing-manifests/ingress/neg-exposed/rc.yaml
match: registry.k8s.io/e2e-test-images/agnhost:\d+\.\d+\.\d+
- path: test/e2e/testing-manifests/ingress/neg-clusterip/rc.yaml
match: registry.k8s.io/e2e-test-images/agnhost:\d+\.\d+\.\d+
- path: test/e2e/dra/test-driver/deploy/example/pod-inline.yaml
match: registry.k8s.io/e2e-test-images/agnhost:\d+\.\d+\.\d+
- path: test/e2e/dra/test-driver/deploy/example/pod-external.yaml
match: registry.k8s.io/e2e-test-images/agnhost:\d+\.\d+\.\d+
- path: test/e2e/dra/test-driver/deploy/example/pod-external-toleration.yaml
match: registry.k8s.io/e2e-test-images/agnhost:\d+\.\d+\.\d+
- path: test/fixtures/pkg/kubectl/cmd/auth/rbac-resource-plus.yaml
match: registry.k8s.io/e2e-test-images/agnhost:\d+\.\d+\.\d+
- path: test/fixtures/doc-yaml/user-guide/multi-pod.yaml
match: registry.k8s.io/e2e-test-images/agnhost:\d+\.\d+\.\d+
- path: hack/testdata/pod-with-large-name.yaml
match: registry.k8s.io/e2e-test-images/agnhost:\d+\.\d+\.\d+
- name: "node-problem-detector"
version: 1.34.0
@ -107,17 +147,10 @@ dependencies:
#- path: cluster/gce/windows/k8s-node-setup.psm1
# match: DEFAULT_NPD_VERSION
# From https://github.com/etcd-io/etcd/blob/main/Makefile
- name: "golang: etcd release version"
version: 1.23.11 # https://github.com/etcd-io/etcd/blob/main/CHANGELOG/CHANGELOG-3.6.md
refPaths:
- path: cluster/images/etcd/Makefile
match: 'GOLANG_VERSION := \d+.\d+(alpha|beta|rc)?\.?(\d+)?'
# Golang
# TODO: this should really be eliminated and controlled by .go-version
- name: "golang: upstream version"
version: 1.25.5
version: 1.25.7
refPaths:
- path: .go-version
- path: staging/publishing/rules.yaml
@ -131,7 +164,7 @@ dependencies:
# should also be updated, but go-runner is much harder to exploit and has
# far less relevancy to go updates for Kubernetes more generally.
- name: "registry.k8s.io/kube-cross: dependents"
version: v1.35.0-go1.25.5-bullseye.0
version: v1.36.0-go1.25.7-bullseye.0
refPaths:
- path: build/build-image/cross/VERSION
@ -151,16 +184,6 @@ dependencies:
- name: "registry.k8s.io/debian-base: dependents"
version: bookworm-v1.0.6
refPaths:
- path: cluster/images/etcd/Makefile
match: BASEIMAGE\?\=registry\.k8s\.io\/build-image\/debian-base:[a-zA-Z]+\-v((([0-9]+)\.([0-9]+)\.([0-9]+)(?:-([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)
- path: cluster/images/etcd/Makefile
match: BASEIMAGE\?\=registry\.k8s\.io\/build-image\/debian-base-arm:[a-zA-Z]+\-v((([0-9]+)\.([0-9]+)\.([0-9]+)(?:-([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)
- path: cluster/images/etcd/Makefile
match: BASEIMAGE\?\=registry\.k8s\.io\/build-image\/debian-base-arm64:[a-zA-Z]+\-v((([0-9]+)\.([0-9]+)\.([0-9]+)(?:-([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)
- path: cluster/images/etcd/Makefile
match: BASEIMAGE\?\=registry\.k8s\.io\/build-image\/debian-base-ppc64le:[a-zA-Z]+\-v((([0-9]+)\.([0-9]+)\.([0-9]+)(?:-([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)
- path: cluster/images/etcd/Makefile
match: BASEIMAGE\?\=registry\.k8s\.io\/build-image\/debian-base-s390x:[a-zA-Z]+\-v((([0-9]+)\.([0-9]+)\.([0-9]+)(?:-([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)
- path: test/conformance/image/Makefile
match: BASE_IMAGE_VERSION\?=
- path: test/images/pets/peer-finder/BASEIMAGE
@ -179,7 +202,7 @@ dependencies:
match: registry\.k8s\.io\/build-image\/debian-base:[a-zA-Z]+\-v((([0-9]+)\.([0-9]+)\.([0-9]+)(?:-([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)
- name: "registry.k8s.io/distroless-iptables: dependents"
version: v0.8.6
version: v0.8.8
refPaths:
- path: build/common.sh
match: __default_distroless_iptables_version=
@ -187,7 +210,7 @@ dependencies:
match: configs\[DistrolessIptables\] = Config{list\.BuildImageRegistry, "distroless-iptables", "v([0-9]+)\.([0-9]+)\.([0-9]+)"}
- name: "registry.k8s.io/go-runner: dependents"
version: v2.4.0-go1.25.5-bookworm.0
version: v2.4.0-go1.25.7-bookworm.0
refPaths:
- path: build/common.sh
match: __default_go_runner_version=
@ -267,7 +290,5 @@ dependencies:
refPaths:
- path: build/pause/cloudbuild.yaml
match: gcr.io/k8s-staging-test-infra/gcb-docker-gcloud
- path: cluster/images/etcd/cloudbuild.yaml
match: gcr.io/k8s-staging-test-infra/gcb-docker-gcloud
- path: test/images/cloudbuild.yaml
match: gcr.io/k8s-staging-test-infra/gcb-docker-gcloud

View file

@ -1,2 +0,0 @@
# ensure go's non-cgo resolver respects /etc/hosts
hosts: files dns

View file

@ -1,5 +1,4 @@
//go:build tools
// +build tools
/*
Copyright 2019 The Kubernetes Authors.

View file

@ -133,7 +133,7 @@ spec:
kubernetes.io/os: linux
containers:
- name: coredns
image: registry.k8s.io/coredns/coredns:v1.13.1
image: registry.k8s.io/coredns/coredns:v1.14.1
imagePullPolicy: IfNotPresent
resources:
limits:

View file

@ -133,7 +133,7 @@ spec:
kubernetes.io/os: linux
containers:
- name: coredns
image: registry.k8s.io/coredns/coredns:v1.13.1
image: registry.k8s.io/coredns/coredns:v1.14.1
imagePullPolicy: IfNotPresent
resources:
limits:

View file

@ -133,7 +133,7 @@ spec:
kubernetes.io/os: linux
containers:
- name: coredns
image: registry.k8s.io/coredns/coredns:v1.13.1
image: registry.k8s.io/coredns/coredns:v1.14.1
imagePullPolicy: IfNotPresent
resources:
limits:

View file

@ -114,7 +114,7 @@ spec:
kubernetes.io/os: linux
containers:
- name: kubedns
image: registry.k8s.io/dns/k8s-dns-kube-dns:1.26.4
image: registry.k8s.io/dns/k8s-dns-kube-dns:1.26.7
resources:
# TODO: Set memory limits when we've profiled the container for large
# clusters, then set request = limit to keep this container in
@ -170,7 +170,7 @@ spec:
runAsUser: 1001
runAsGroup: 1001
- name: dnsmasq
image: registry.k8s.io/dns/k8s-dns-dnsmasq-nanny:1.26.4
image: registry.k8s.io/dns/k8s-dns-dnsmasq-nanny:1.26.7
livenessProbe:
httpGet:
path: /healthcheck/dnsmasq
@ -216,7 +216,7 @@ spec:
- NET_BIND_SERVICE
- SETGID
- name: sidecar
image: registry.k8s.io/dns/k8s-dns-sidecar:1.26.4
image: registry.k8s.io/dns/k8s-dns-sidecar:1.26.7
livenessProbe:
httpGet:
path: /metrics

View file

@ -114,7 +114,7 @@ spec:
kubernetes.io/os: linux
containers:
- name: kubedns
image: registry.k8s.io/dns/k8s-dns-kube-dns:1.26.4
image: registry.k8s.io/dns/k8s-dns-kube-dns:1.26.7
resources:
# TODO: Set memory limits when we've profiled the container for large
# clusters, then set request = limit to keep this container in
@ -170,7 +170,7 @@ spec:
runAsUser: 1001
runAsGroup: 1001
- name: dnsmasq
image: registry.k8s.io/dns/k8s-dns-dnsmasq-nanny:1.26.4
image: registry.k8s.io/dns/k8s-dns-dnsmasq-nanny:1.26.7
livenessProbe:
httpGet:
path: /healthcheck/dnsmasq
@ -216,7 +216,7 @@ spec:
- NET_BIND_SERVICE
- SETGID
- name: sidecar
image: registry.k8s.io/dns/k8s-dns-sidecar:1.26.4
image: registry.k8s.io/dns/k8s-dns-sidecar:1.26.7
livenessProbe:
httpGet:
path: /metrics

View file

@ -114,7 +114,7 @@ spec:
kubernetes.io/os: linux
containers:
- name: kubedns
image: registry.k8s.io/dns/k8s-dns-kube-dns:1.26.4
image: registry.k8s.io/dns/k8s-dns-kube-dns:1.26.7
resources:
# TODO: Set memory limits when we've profiled the container for large
# clusters, then set request = limit to keep this container in
@ -170,7 +170,7 @@ spec:
runAsUser: 1001
runAsGroup: 1001
- name: dnsmasq
image: registry.k8s.io/dns/k8s-dns-dnsmasq-nanny:1.26.4
image: registry.k8s.io/dns/k8s-dns-dnsmasq-nanny:1.26.7
livenessProbe:
httpGet:
path: /healthcheck/dnsmasq
@ -216,7 +216,7 @@ spec:
- NET_BIND_SERVICE
- SETGID
- name: sidecar
image: registry.k8s.io/dns/k8s-dns-sidecar:1.26.4
image: registry.k8s.io/dns/k8s-dns-sidecar:1.26.7
livenessProbe:
httpGet:
path: /metrics

View file

@ -138,7 +138,7 @@ spec:
operator: "Exists"
containers:
- name: node-cache
image: registry.k8s.io/dns/k8s-dns-node-cache:1.26.4
image: registry.k8s.io/dns/k8s-dns-node-cache:1.26.7
resources:
requests:
cpu: 25m

View file

@ -1,12 +0,0 @@
# See the OWNERS docs at https://go.k8s.io/owners
approvers:
- bowei
- freehan
- mrhohn
reviewers:
- bowei
- freehan
- mrhohn
emeritus_approvers:
- jingax10

View file

@ -1,74 +0,0 @@
# Please keep kube-proxy configuration in-sync with:
# cluster/saltbase/salt/kube-proxy/kube-proxy.manifest
apiVersion: apps/v1
kind: DaemonSet
metadata:
labels:
k8s-app: kube-proxy
addonmanager.kubernetes.io/mode: Reconcile
name: kube-proxy
namespace: kube-system
spec:
selector:
matchLabels:
k8s-app: kube-proxy
updateStrategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 10%
template:
metadata:
labels:
k8s-app: kube-proxy
spec:
priorityClassName: system-node-critical
hostNetwork: true
nodeSelector:
kubernetes.io/os: linux
node.kubernetes.io/kube-proxy-ds-ready: "true"
tolerations:
- operator: "Exists"
effect: "NoExecute"
- operator: "Exists"
effect: "NoSchedule"
containers:
- name: kube-proxy
image: {{pillar['kube_docker_registry']}}/kube-proxy-{{pillar['host_arch']}}:{{pillar['kube-proxy_docker_tag']}}
resources:
requests:
cpu: {{ cpurequest }}
memory: {{ memoryrequest }}
command:
- /bin/sh
- -c
- kube-proxy {{cluster_cidr}} --oom-score-adj=-998 {{params}} 1>>/var/log/kube-proxy.log 2>&1
env:
- name: KUBERNETES_SERVICE_HOST
value: {{kubernetes_service_host_env_value}}
{{kube_cache_mutation_detector_env_name}}
{{kube_cache_mutation_detector_env_value}}
securityContext:
privileged: true
volumeMounts:
- mountPath: /var/log
name: varlog
readOnly: false
- mountPath: /run/xtables.lock
name: xtables-lock
readOnly: false
- mountPath: /lib/modules
name: lib-modules
readOnly: true
volumes:
- name: varlog
hostPath:
path: /var/log
- name: xtables-lock
hostPath:
path: /run/xtables.lock
type: FileOrCreate
- name: lib-modules
hostPath:
path: /lib/modules
serviceAccountName: kube-proxy

View file

@ -1,22 +0,0 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: kube-proxy
namespace: kube-system
labels:
addonmanager.kubernetes.io/mode: Reconcile
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: system:kube-proxy
labels:
addonmanager.kubernetes.io/mode: Reconcile
subjects:
- kind: ServiceAccount
name: kube-proxy
namespace: kube-system
roleRef:
kind: ClusterRole
name: system:node-proxier
apiGroup: rbac.authorization.k8s.io

View file

@ -27,7 +27,7 @@ spec:
nodeSelector:
kubernetes.io/os: linux
containers:
- image: registry.k8s.io/kas-network-proxy/proxy-agent:v0.31.2
- image: registry.k8s.io/kas-network-proxy/proxy-agent:v0.34.0
name: konnectivity-agent
command: ["/proxy-agent"]
args: [

View file

@ -136,7 +136,7 @@ export WINDOWS_CNI_CONFIG_DIR="${WINDOWS_K8S_DIR}\cni\config"
# CNI storage path for Windows nodes
export WINDOWS_CNI_STORAGE_PATH="https://github.com/containernetworking/plugins/releases/download"
# CNI version for Windows nodes
export WINDOWS_CNI_VERSION="v1.8.0"
export WINDOWS_CNI_VERSION="v1.9.0"
# Pod manifests directory for Windows nodes on Windows nodes.
export WINDOWS_MANIFESTS_DIR="${WINDOWS_K8S_DIR}\manifests"
# Directory where cert/key files will be stores on Windows nodes.
@ -162,11 +162,11 @@ export CSI_PROXY_VERSION="${CSI_PROXY_VERSION:-v1.2.1-gke.2}"
# csi-proxy additional flags, there are additional flags that cannot be unset in k8s-node-setup.psm1
export CSI_PROXY_FLAGS="${CSI_PROXY_FLAGS:-}"
# Storage path for auth-provider-gcp binaries
export AUTH_PROVIDER_GCP_STORAGE_PATH="${AUTH_PROVIDER_GCP_STORAGE_PATH:-https://storage.googleapis.com/gke-release/auth-provider-gcp}"
export AUTH_PROVIDER_GCP_STORAGE_PATH="${AUTH_PROVIDER_GCP_STORAGE_PATH:-https://artifacts.k8s.io/binaries/cloud-provider-gcp}"
# auth-provider-gcp version
export AUTH_PROVIDER_GCP_VERSION="${AUTH_PROVIDER_GCP_VERSION:-v0.0.2-gke.4}"
export AUTH_PROVIDER_GCP_VERSION="${AUTH_PROVIDER_GCP_VERSION:-v35.0.0}"
# Hash of auth-provider-gcp.exe binary
export AUTH_PROVIDER_GCP_HASH_WINDOWS_AMD64="${AUTH_PROVIDER_GCP_HASH_WINDOWS_AMD64:-348af2c189d938e1a4fa5ac5c640d21e003da1f000abcd6fd7eef2acd0678638286e40703618758d4fdfe2cc4b90e920f0422128ec777c74054af9dd4405de12}"
export AUTH_PROVIDER_GCP_HASH_WINDOWS_AMD64="${AUTH_PROVIDER_GCP_HASH_WINDOWS_AMD64:-a5e8c41369d7c49215dc2118185c5dcacc6e2f600dc1b8e28f3837a4191a18fdf0c8aed97b852bc8b273dd6c85dffba59471d60a86d126133789f83af79109b9}"
# Directory of kubelet image credential provider binary files on windows
export AUTH_PROVIDER_GCP_LINUX_BIN_DIR="${AUTH_PROVIDER_GCP_LINUX_BIN_DIR:-/home/kubernetes/bin}"
# Location of kubelet image credential provider config file on windows

View file

@ -88,7 +88,7 @@ fi
# By default, the latest image from the image family will be used unless an
# explicit image will be set.
GCI_VERSION=${KUBE_GCI_VERSION:-}
IMAGE_FAMILY=${KUBE_GCE_IMAGE_FAMILY:-cos-121-lts}
IMAGE_FAMILY=${KUBE_GCE_IMAGE_FAMILY:-cos-125-lts}
IMAGE_PROJECT=${KUBE_GCE_IMAGE_PROJECT:-cos-cloud}
export MASTER_IMAGE=${KUBE_GCE_MASTER_IMAGE:-}
export MASTER_IMAGE_FAMILY=${KUBE_GCE_MASTER_IMAGE_FAMILY:-${IMAGE_FAMILY}}
@ -469,17 +469,6 @@ PROMETHEUS_TO_SD_ENDPOINT="${PROMETHEUS_TO_SD_ENDPOINT:-https://monitoring.googl
PROMETHEUS_TO_SD_PREFIX="${PROMETHEUS_TO_SD_PREFIX:-custom.googleapis.com}"
ENABLE_PROMETHEUS_TO_SD="${ENABLE_PROMETHEUS_TO_SD:-false}"
# TODO(#51292): Make kube-proxy Daemonset default and remove the configuration here.
# Optional: [Experiment Only] Run kube-proxy as a DaemonSet if set to true, run as static pods otherwise.
KUBE_PROXY_DAEMONSET="${KUBE_PROXY_DAEMONSET:-false}" # true, false
# Control whether the startup scripts manage the lifecycle of kube-proxy
# When true, the startup scripts do not enable kube-proxy either as a daemonset addon or as a static pod
# regardless of the value of KUBE_PROXY_DAEMONSET.
# When false, the value of KUBE_PROXY_DAEMONSET controls whether kube-proxy comes up as a static pod or
# as an addon daemonset.
KUBE_PROXY_DISABLE="${KUBE_PROXY_DISABLE:-false}" # true, false
# Will be passed into the kube-proxy via `--detect-local-mode`
DETECT_LOCAL_MODE="${DETECT_LOCAL_MODE:-}"

View file

@ -101,7 +101,7 @@ ALLOWED_NOTREADY_NODES=${ALLOWED_NOTREADY_NODES:-$(($(get-num-nodes) / 100))}
# By default, the latest image from the image family will be used unless an
# explicit image will be set.
GCI_VERSION=${KUBE_GCI_VERSION:-}
IMAGE_FAMILY=${KUBE_GCE_IMAGE_FAMILY:-cos-121-lts}
IMAGE_FAMILY=${KUBE_GCE_IMAGE_FAMILY:-cos-125-lts}
IMAGE_PROJECT=${KUBE_GCE_IMAGE_PROJECT:-cos-cloud}
export MASTER_IMAGE=${KUBE_GCE_MASTER_IMAGE:-}
export MASTER_IMAGE_FAMILY=${KUBE_GCE_MASTER_IMAGE_FAMILY:-${IMAGE_FAMILY}}
@ -522,17 +522,6 @@ PROMETHEUS_TO_SD_ENDPOINT=${PROMETHEUS_TO_SD_ENDPOINT:-https://monitoring.google
PROMETHEUS_TO_SD_PREFIX=${PROMETHEUS_TO_SD_PREFIX:-custom.googleapis.com}
ENABLE_PROMETHEUS_TO_SD=${ENABLE_PROMETHEUS_TO_SD:-true}
# TODO(#51292): Make kube-proxy Daemonset default and remove the configuration here.
# Optional: [Experiment Only] Run kube-proxy as a DaemonSet if set to true, run as static pods otherwise.
KUBE_PROXY_DAEMONSET=${KUBE_PROXY_DAEMONSET:-false} # true, false
# Control whether the startup scripts manage the lifecycle of kube-proxy
# When true, the startup scripts do not enable kube-proxy either as a daemonset addon or as a static pod
# regardless of the value of KUBE_PROXY_DAEMONSET.
# When false, the value of KUBE_PROXY_DAEMONSET controls whether kube-proxy comes up as a static pod or
# as an addon daemonset.
KUBE_PROXY_DISABLE="${KUBE_PROXY_DISABLE:-false}" # true, false
# Optional: Change the kube-proxy implementation. Choices are [iptables, ipvs, nftables].
KUBE_PROXY_MODE=${KUBE_PROXY_MODE:-iptables}

View file

@ -2170,7 +2170,6 @@ function update-legacy-addon-node-labels() {
sleep 5
done
update-node-label "beta.kubernetes.io/metadata-proxy-ready=true,cloud.google.com/metadata-proxy-ready!=true" "cloud.google.com/metadata-proxy-ready=true"
update-node-label "beta.kubernetes.io/kube-proxy-ds-ready=true,node.kubernetes.io/kube-proxy-ds-ready!=true" "node.kubernetes.io/kube-proxy-ds-ready=true"
update-node-label "beta.kubernetes.io/masq-agent-ds-ready=true,node.kubernetes.io/masq-agent-ds-ready!=true" "node.kubernetes.io/masq-agent-ds-ready=true"
}
@ -2893,17 +2892,6 @@ function start-kube-addons {
fi
# Set up manifests of other addons.
if [[ "${KUBE_PROXY_DAEMONSET:-}" == "true" ]] && [[ "${KUBE_PROXY_DISABLE:-}" != "true" ]]; then
if [ -n "${CUSTOM_KUBE_PROXY_YAML:-}" ]; then
# Replace with custom GKE kube proxy.
cat > "$src_dir/kube-proxy/kube-proxy-ds.yaml" <<EOF
$CUSTOM_KUBE_PROXY_YAML
EOF
update-daemon-set-prometheus-to-sd-parameters "$src_dir/kube-proxy/kube-proxy-ds.yaml"
fi
prepare-kube-proxy-manifest-variables "$src_dir/kube-proxy/kube-proxy-ds.yaml"
setup-addon-manifests "addons" "kube-proxy"
fi
if [[ "${ENABLE_CLUSTER_LOGGING:-}" == "true" ]] &&
[[ "${LOGGING_DESTINATION:-}" == "gcp" ]]; then
if [[ "${ENABLE_METADATA_AGENT:-}" == "stackdriver" ]]; then
@ -3626,9 +3614,7 @@ function main() {
else
log-wrap 'CreateNodePKI' create-node-pki
log-wrap 'CreateKubeletKubeconfig' create-kubelet-kubeconfig "${KUBERNETES_MASTER_NAME}"
if [[ "${KUBE_PROXY_DAEMONSET:-}" != "true" ]] && [[ "${KUBE_PROXY_DISABLE:-}" != "true" ]]; then
log-wrap 'CreateKubeproxyUserKubeconfig' create-kubeproxy-user-kubeconfig
fi
log-wrap 'CreateKubeproxyUserKubeconfig' create-kubeproxy-user-kubeconfig
if [[ "${ENABLE_NODE_PROBLEM_DETECTOR:-}" == "standalone" ]]; then
if [[ -n "${NODE_PROBLEM_DETECTOR_TOKEN:-}" ]]; then
log-wrap 'CreateNodeProblemDetectorKubeconfig' create-node-problem-detector-kubeconfig "${KUBERNETES_MASTER_NAME}"
@ -3692,9 +3678,7 @@ function main() {
log-wrap 'StartLBController' start-lb-controller
log-wrap 'UpdateLegacyAddonNodeLabels' update-legacy-addon-node-labels &
else
if [[ "${KUBE_PROXY_DAEMONSET:-}" != "true" ]] && [[ "${KUBE_PROXY_DISABLE:-}" != "true" ]]; then
log-wrap 'StartKubeProxy' start-kube-proxy
fi
log-wrap 'StartKubeProxy' start-kube-proxy
if [[ "${ENABLE_NODE_PROBLEM_DETECTOR:-}" == "standalone" ]]; then
log-wrap 'StartNodeProblemDetector' start-node-problem-detector
fi

View file

@ -24,18 +24,18 @@ set -o nounset
set -o pipefail
### Hardcoded constants
DEFAULT_CNI_VERSION='v1.8.0'
DEFAULT_CNI_VERSION='v1.9.0'
# CNI HASH for amd64 sha512
DEFAULT_CNI_HASH='a2696f937b3433eee4a0de44a0994190166b108f2b29adf9f7005fa4fbfff56e78cbe8a2fe2607d99d4bcc0d4a8183e0c27fa748c2f8fb08ae40b62f198fd45b'
DEFAULT_CNI_HASH='fe6adcc7319f2d7f2307bb66a580789b24daf3e7856e41d0468324c40d5cf7a540dbecbc5ddb9ef5a12aac49ed94c63b36d926b332f2e2217475db1ab0b576b7'
DEFAULT_NPD_VERSION='v1.34.0'
DEFAULT_NPD_HASH_AMD64='3c55ff6ffadd77dbc3df3774d13164587103ca87c8b6914f5c71c87d8f498b78621e0c96538bb3c69f8f1b4194a6da553aa56b1b52001a7d9a67776ac24e80bd'
DEFAULT_NPD_HASH_ARM64='ca1d34e64b80f6b2bdf86cfde95154122d6e14c707a748ea6fc414a55f391b1bb572a96b6b2c285996af0232917fa87e14e037125aa03a62247383af3e48c095'
DEFAULT_CRICTL_VERSION='v1.34.0'
DEFAULT_CRICTL_AMD64_SHA512='6b5669fe6c0dbcb8d0e0910529a4559e22154ef7f524fa15f3e13dfced6bea2c90a531d99786ac8b24fb4cc9ead1ef294387b52a230ba6fdf83278ab9dbd6133'
DEFAULT_CRICTL_ARM64_SHA512='b2daa7f6b559cd32da6d3bcb82b356561c0bc2ffcf7dc5084547fbae6cb8570a96cf01c9bfaa6d868cf92d1c1fbbced2a32bf7e0328f62c420c180a86314278d'
DEFAULT_CRICTL_VERSION='v1.35.0'
DEFAULT_CRICTL_AMD64_SHA512='99c86c3d6fd63e6bdd6bac75ca16401517c59aa78ce30554e15bfca7bc775aef54066889aa9855c500772c1ff2a5efe35d543270966f27adbbb80fef2f037ba1'
DEFAULT_CRICTL_ARM64_SHA512='710a1455a926333731d817bde38b010dddbd5a338ccf209ee33625015ca3ce6f671d9bad8f4c918e0ad0332391b226b3d6e6834049c11e88dc0edb32a956f1a2'
DEFAULT_MOUNTER_TAR_SHA='7956fd42523de6b3107ddc3ce0e75233d2fcb78436ff07a1389b6eaac91fb2b1b72a08f7a219eaf96ba1ca4da8d45271002e0d60e0644e796c665f99bb356516'
AUTH_PROVIDER_GCP_HASH_LINUX_AMD64="${AUTH_PROVIDER_GCP_HASH_LINUX_AMD64:-156058e5b3994cba91c23831774033e0d505d6d8b80f43541ef6af91b320fd9dfaabe42ec8a8887b51d87104c2b57e1eb895649d681575ffc80dd9aee8e563db}"
AUTH_PROVIDER_GCP_HASH_LINUX_ARM64="${AUTH_PROVIDER_GCP_HASH_LINUX_ARM64:-1aa3b0bea10a9755231989ffc150cbfa770f1d96932db7535473f7bfeb1108bafdae80202ae738d59495982512e716ff7366d5f414d0e76dd50519f98611f9ab}"
AUTH_PROVIDER_GCP_HASH_LINUX_AMD64="${AUTH_PROVIDER_GCP_HASH_LINUX_AMD64:-a3d00131ddd427db2f99a3c355bf416f9872dbdf445992ae56fc51c28ff5e50f0d225f3cd76eab2e89cb9a179f30af00d8a04fc209e43be70cf00525a7daeeae}"
AUTH_PROVIDER_GCP_HASH_LINUX_ARM64="${AUTH_PROVIDER_GCP_HASH_LINUX_ARM64:-d0466ae554fef91165260b7ae3ef5c8bce3607015ec31461c3413de6a1257b7f305bd0ce30cddc112f6707420d5012600918f249e808d0c8ff262692a76ad30d}"
###
# Standard curl flags.
@ -510,70 +510,94 @@ function load-docker-images {
fi
}
# If we are on ubuntu we can try to install containerd
# Create containerd systemd service (needed when skipping apt install)
function ensure-containerd-systemd-service {
local -r svc="/etc/systemd/system/containerd.service"
[[ -f "${svc}" ]] && return 0
cat > "${svc}" <<'EOF'
[Unit]
Description=containerd container runtime
Documentation=https://containerd.io
After=network.target local-fs.target
[Service]
ExecStartPre=-/sbin/modprobe overlay
ExecStart=/usr/bin/containerd
Type=notify
Delegate=yes
KillMode=process
Restart=always
RestartSec=5
LimitNPROC=infinity
LimitCORE=infinity
LimitNOFILE=infinity
TasksMax=infinity
OOMScoreAdjust=-999
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload && systemctl enable containerd
}
# Download and install containerd binary from GitHub
function install-containerd-binary {
local -r version="$1" temp_dir="$(mktemp -d)"
local -r url="https://github.com/containerd/containerd/releases/download/${version}/containerd-${version#v}-${HOST_PLATFORM}-${HOST_ARCH}.tar.gz"
if download-robust "containerd ${version}" "${temp_dir}" "${url}"; then
tar --overwrite -xzf "${temp_dir}"/containerd-*.tar.gz -C /usr/
rm -rf "${temp_dir}"; return 0
fi
rm -rf "${temp_dir}"; return 1
}
# Download and install runc binary from GitHub
function install-runc-binary {
local -r version="$1" temp_dir="$(mktemp -d)"
local -r url="https://github.com/opencontainers/runc/releases/download/${version}/runc.${HOST_ARCH}"
if download-robust "runc ${version}" "${temp_dir}" "${url}"; then
cp "${temp_dir}/runc.${HOST_ARCH}" /usr/sbin/runc && chmod 755 /usr/sbin/runc
rm -rf "${temp_dir}"; return 0
fi
rm -rf "${temp_dir}"; return 1
}
# Install containerd on Ubuntu. When both UBUNTU_INSTALL_CONTAINERD_VERSION and
# UBUNTU_INSTALL_RUNC_VERSION are set, skips apt and downloads binaries directly.
function install-containerd-ubuntu {
# bailout if we are not on ubuntu
if [[ -z "$(command -v lsb_release)" || $(lsb_release -si) != "Ubuntu" ]]; then
echo "Unable to automatically install containerd in non-ubuntu image. Bailing out..."
exit 2
echo "Unable to automatically install containerd in non-ubuntu image. Bailing out..."; exit 2
fi
# Install dependencies, some of these are already installed in the image but
# that's fine since they won't re-install and we can reuse the code below
# for another image someday.
apt-get update
apt-get install -y --no-install-recommends \
apt-transport-https \
ca-certificates \
socat \
curl \
gnupg2 \
nfs-common \
software-properties-common \
lsb-release
local -r custom_containerd="${UBUNTU_INSTALL_CONTAINERD_VERSION:-}"
local -r custom_runc="${UBUNTU_INSTALL_RUNC_VERSION:-}"
release=$(lsb_release -cs)
# Both versions specified: skip apt, install binaries directly
if [[ -n "${custom_containerd}" && -n "${custom_runc}" ]]; then
echo "Installing containerd ${custom_containerd} and runc ${custom_runc} (skipping apt)"
ensure-containerd-systemd-service
install-containerd-binary "${custom_containerd}" || { echo "ERROR: containerd download failed"; exit 1; }
install-runc-binary "${custom_runc}" || { echo "ERROR: runc download failed"; exit 1; }
systemctl start containerd
return
fi
# Add the Docker apt-repository (as we install containerd from there)
# Install from Docker apt repo, optionally override binaries
local -r release="$(lsb_release -cs)"
local -r keyring="/etc/apt/keyrings/docker.gpg"
mkdir -p "$(dirname "${keyring}")"
# shellcheck disable=SC2086
curl ${CURL_FLAGS} \
--location \
"https://download.docker.com/${HOST_PLATFORM}/$(. /etc/os-release; echo "$ID")/gpg" \
| apt-key add -
add-apt-repository \
"deb [arch=${HOST_ARCH}] https://download.docker.com/${HOST_PLATFORM}/$(. /etc/os-release; echo "$ID") \
$release stable"
curl ${CURL_FLAGS} -fsSL "https://download.docker.com/${HOST_PLATFORM}/$(. /etc/os-release; echo "$ID")/gpg" \
| gpg --batch --dearmor -o "${keyring}"
chmod a+r "${keyring}"
echo "deb [arch=${HOST_ARCH} signed-by=${keyring}] https://download.docker.com/${HOST_PLATFORM}/$(. /etc/os-release; echo "$ID") ${release} stable" \
> /etc/apt/sources.list.d/docker.list
# Install containerd from Docker repo
apt-get update && \
apt-get install -y --no-install-recommends containerd
apt-get update && apt-get install -y --no-install-recommends containerd.io
rm -rf /var/lib/apt/lists/*
# Override to latest versions of containerd and runc
systemctl stop containerd
if [[ -n "${UBUNTU_INSTALL_CONTAINERD_VERSION:-}" ]]; then
local temp_dir
temp_dir=$(mktemp -d)
# Download containerd
if download-robust "containerd ${UBUNTU_INSTALL_CONTAINERD_VERSION}" "${temp_dir}" \
"https://github.com/containerd/containerd/releases/download/${UBUNTU_INSTALL_CONTAINERD_VERSION}/containerd-${UBUNTU_INSTALL_CONTAINERD_VERSION:1}-${HOST_PLATFORM}-${HOST_ARCH}.tar.gz"; then
tar --overwrite -xzv -C /usr/ -f "${temp_dir}"/containerd-*.tar.gz
fi
rm -rf "${temp_dir}"
fi
if [[ -n "${UBUNTU_INSTALL_RUNC_VERSION:-}" ]]; then
local temp_dir
temp_dir=$(mktemp -d)
# Download and install runc
if download-robust "runc ${UBUNTU_INSTALL_RUNC_VERSION}" "${temp_dir}" \
"https://github.com/opencontainers/runc/releases/download/${UBUNTU_INSTALL_RUNC_VERSION}/runc.${HOST_ARCH}"; then
cp "${temp_dir}/runc.${HOST_ARCH}" /usr/sbin/runc && chmod 755 /usr/sbin/runc
fi
rm -rf "${temp_dir}"
fi
sudo systemctl start containerd
[[ -n "${custom_containerd}" ]] && install-containerd-binary "${custom_containerd}"
[[ -n "${custom_runc}" ]] && install-runc-binary "${custom_runc}"
systemctl start containerd
}
# If we are on cos we can try to install containerd
@ -621,7 +645,7 @@ function install-containerd-cos {
function install-auth-provider-gcp {
local -r filename="auth-provider-gcp"
local -r auth_provider_storage_full_path="${AUTH_PROVIDER_GCP_STORAGE_PATH}/${AUTH_PROVIDER_GCP_VERSION}/${HOST_PLATFORM}_${HOST_ARCH}/${filename}"
local -r auth_provider_storage_full_path="${AUTH_PROVIDER_GCP_STORAGE_PATH}/${AUTH_PROVIDER_GCP_VERSION}/auth-provider-gcp/${HOST_PLATFORM}/${HOST_ARCH}/${filename}"
echo "Downloading auth-provider-gcp ${auth_provider_storage_full_path}" .
case "${HOST_ARCH}" in

View file

@ -129,6 +129,8 @@ write_files:
WantedBy=multi-user.target
runcmd:
- systemctl mask apt-news.service apt-news.timer esm-cache.service snapd.service snapd.socket lxd-installer.socket ubuntu-advantage.service unattended-upgrades.service motd-news.timer update-notifier-motd.timer update-notifier-download.timer || true
- systemctl stop unattended-upgrades.service || true
- systemctl daemon-reload
- systemctl enable kube-bootstrap-logs-forwarder.service
- systemctl enable kube-master-installation.service

View file

@ -28,6 +28,7 @@ const (
// Location of the mount file to use
chrootCmd = "chroot"
mountCmd = "mount"
mountBin = "/bin/mount"
rootfs = "rootfs"
nfsRPCBindErrMsg = "mount.nfs: rpc.statd is not running but is required for remote locking.\nmount.nfs: Either use '-o nolock' to keep locks local, or start statd.\nmount.nfs: an incorrect mount option was specified\n"
rpcBindCmd = "/sbin/rpcbind"
@ -60,12 +61,12 @@ func main() {
}
}
// MountInChroot is to run mount within chroot with the passing root directory
// mountInChroot runs mount within chroot with the passing root directory
func mountInChroot(rootfsPath string, args []string) error {
if _, err := os.Stat(rootfsPath); os.IsNotExist(err) {
return fmt.Errorf("path <%s> does not exist", rootfsPath)
}
args = append([]string{rootfsPath, mountCmd}, args...)
args = append([]string{rootfsPath, mountBin}, args...)
output, err := exec.Command(chrootCmd, args...).CombinedOutput()
if err == nil {
return nil

View file

@ -87,6 +87,8 @@ write_files:
options sunrpc max_resvport=986
runcmd:
- systemctl mask apt-news.service apt-news.timer esm-cache.service snapd.service snapd.socket lxd-installer.socket ubuntu-advantage.service unattended-upgrades.service motd-news.timer update-notifier-motd.timer update-notifier-download.timer || true
- systemctl stop unattended-upgrades.service || true
- systemctl daemon-reload
- systemctl enable kube-node-installation.service
- systemctl enable kube-node-configuration.service

View file

@ -23,7 +23,7 @@
"containers":[
{
"name": "cloud-controller-manager",
"image": "registry.k8s.io/cloud-provider-gcp/cloud-controller-manager:v33.1.1",
"image": "registry.k8s.io/cloud-provider-gcp/cloud-controller-manager:v35.0.2",
"command": ["/go-runner"],
"resources": {
"requests": {

View file

@ -18,7 +18,7 @@
{
"name": "etcd-container",
{{security_context}}
"image": "{{ pillar.get('etcd_docker_repository', 'registry.k8s.io/etcd') }}:{{ pillar.get('etcd_docker_tag', '3.6.6-0') }}",
"image": "{{ pillar.get('etcd_docker_repository', 'registry.k8s.io/etcd') }}:{{ pillar.get('etcd_docker_tag', '3.6.7-0') }}",
"resources": {
"requests": {
"cpu": {{ cpulimit }}
@ -43,7 +43,7 @@
"value": "{{ pillar.get('storage_backend', 'etcd3') }}"
},
{ "name": "TARGET_VERSION",
"value": "{{ pillar.get('etcd_version', '3.6.6') }}"
"value": "{{ pillar.get('etcd_version', '3.6.7') }}"
},
{
"name": "DO_NOT_MOVE_BINARIES",

Some files were not shown because too many files have changed in this diff Show more