Commit Graph

126819 Commits

Author SHA1 Message Date
Kubernetes Prow Robot
fa0979c15f
Merge pull request #124074 from carlory/clean-100001
fix description for PersistentVolumeSource and VolumeSource
2024-11-06 22:07:29 +00:00
Kevin Hannon
350b0d2b93
Revert "Graduate PodLifecycleSleepAction to GA" 2024-11-06 16:29:19 -05:00
Anish Shah
207842d3e0 drop InPlacePodVerticalScaling support in windows 2024-11-06 12:57:55 -08:00
Joe Betz
dc5e2f3fa2 Wrap unversioned CEL library initializer calls with guard 2024-11-06 15:53:27 -05:00
Joe Betz
3d4a5dac4e Add cost testing for two variable comprehensions 2024-11-06 15:53:27 -05:00
Joe Betz
b0180a9a37 hack/pin-dependency.sh github.com/google/cel-go v0.22.0 2024-11-06 15:53:17 -05:00
Ben Luddy
f37b41e79c
Regenerate OpenAPI specs. 2024-11-06 15:42:49 -05:00
Ben Luddy
439d2f7b40
Wire serving codecs to CBOR feature gate.
Integration testing has to this point relied on patching serving codecs for built-in APIs. The
test-only patching is removed and replaced by feature gated checks at runtime.
2024-11-06 15:41:39 -05:00
Kubernetes Prow Robot
e2bf630940
Merge pull request #128598 from AnishShah/fix-ippr-test
[FG:InPlacePodVerticalScaling] fix InPlacePodVerticalScaling e2e tests
2024-11-06 20:10:48 +00:00
Kubernetes Prow Robot
48c65d1870
Merge pull request #128576 from bart0sh/PR166-refactor-kubelet-stop-and-restart
e2e_node: refactor Kubelet stopping and restarting
2024-11-06 20:10:40 +00:00
Kubernetes Prow Robot
099449954e
Merge pull request #128556 from AnishShah/kubelet-reject-metric
Introduce a metric to track kubelet admission failure.
2024-11-06 20:10:33 +00:00
Kubernetes Prow Robot
7a1f8aaa52
Merge pull request #128554 from ritazh/webhookmatchcondition-doc-comment
Add WebhookMatchCondition doc comment
2024-11-06 20:10:25 +00:00
Kubernetes Prow Robot
a885e446d6
Merge pull request #128501 from benluddy/watch-cbor-seq
KEP-4222: Use cbor-seq content-type for CBOR watch responses.
2024-11-06 20:10:17 +00:00
Kubernetes Prow Robot
0edef5aa91
Merge pull request #128447 from bart0sh/PR164-migrate-cadvisor-to-contextual-logging
kubelet: Migrate CAdvisor to contextual logging
2024-11-06 20:10:10 +00:00
Kubernetes Prow Robot
198ec57f86
Merge pull request #128394 from mengqiy/spreadkubeletlaod
add randomness to nodeStatusReportFrequency for kubelet
2024-11-06 20:10:02 +00:00
Kubernetes Prow Robot
432a9af0fb
Merge pull request #128380 from pohly/log-TODO-logcheck
apiserver: avoid TODO in public docs
2024-11-06 20:09:53 +00:00
Kubernetes Prow Robot
dfba334a33
Merge pull request #128242 from jsafrane/selinux-controller
1710: Add SELinux warning controller
2024-11-06 20:09:44 +00:00
Kubernetes Prow Robot
983dd07760
Merge pull request #128031 from HirazawaUi/kep-4656
[Kubeadm] KEP-4656: Add kubelet instance configuration to configure CRI socket for each node
2024-11-06 20:09:37 +00:00
Kubernetes Prow Robot
96250d4411
Merge pull request #124918 from SergeyKanzhelev/commentIgnoringBadStatuses
added a comment that statuses lists are not being validated
2024-11-06 20:09:29 +00:00
Kubernetes Prow Robot
2caf4eddd8
Merge pull request #128615 from pacoxu/update-openapi-spec-v1.32.0-beta
update openapi spec after v1.32 beta release
2024-11-06 18:59:29 +00:00
Anish Ramasekar
e93d5d5425
Enforce sa token node audience restriction when ServiceAccountNodeAudienceRestriction=true
Signed-off-by: Anish Ramasekar <anish.ramasekar@gmail.com>
2024-11-06 09:51:40 -08:00
Anish Ramasekar
51f7475b6a
Add ServiceAccountNodeAudienceRestriction feature gate
Signed-off-by: Anish Ramasekar <anish.ramasekar@gmail.com>
2024-11-06 09:51:36 -08:00
Paco Xu
cef3930337 update openapi spec after v1.32 beta release 2024-11-07 00:36:55 +08:00
Patrick Ohly
446f20aa3e DRA API: add maximum length of opaque parameters
This had been left out unintentionally earlier. Because theoretically there
might now be existing objects with parameters that are larger than whatever
limit gets enforced now, the limit only gets checked when parameters get
created or modified.

This is similar to the validation of CEL expressions and for consistency, the
same 10 Ki limit as for those is chosen.

Because the limit is not enforced for stored parameters, it can be increased in
the future, with the caveat that users who need larger parameters then depend
on the newer Kubernetes release with a higher limit. Lowering the limit is
harder because creating deployments that worked in older Kubernetes will not
work anymore with newer Kubernetes.
2024-11-06 17:29:51 +01:00
Lubomir I. Ivanov
ae910f3621 remove myself from test/OWNERS 2024-11-06 17:16:40 +02:00
Kubernetes Release Robot
62bdf5d87c CHANGELOG: Update directory for v1.32.0-beta.0 release 2024-11-06 14:51:32 +00:00
HirazawaUi
d3ea4d3d9a Implement kubeadm reset 2024-11-06 21:43:09 +08:00
HirazawaUi
c47eaa88b1 Implement kubeadm upgrade 2024-11-06 21:43:05 +08:00
Ben Luddy
504f14998e
Use application/cbor-seq media type in streaming CBOR responses.
The media type application/cbor describes exactly one encoded item. As a new (to Kubernetes) format
with no existing clients, streaming/watch responses will use the application/cbor-seq media
type. CBOR watch responses conform to the specification of CBOR Sequences and are encoded as the
concatenation of zero or more items with no additional framing.
2024-11-06 08:23:18 -05:00
Kubernetes Prow Robot
e273349f3a
Merge pull request #127511 from pohly/dra-1.32-api
DRA 1.32 API: promotion to beta
2024-11-06 13:13:29 +00:00
Jan Safranek
df88b1a771 Add all RBAC rules for the SELinux controller
The SELinuxWarningController does not necessarily need permissions to read
the objects, because it gets them through a shared informer instantiated by
KCM itself, but let's list the permissions for completeness.
2024-11-06 13:06:52 +01:00
Patrick Ohly
d6bad27b7d DRA apiserver: allow DRAAdminAccess feature without DynamicResourceAllocation
This makes a configuration with --feature-gates=AllAlpha=true valid
again. Without this change, that flag enabled DRAAdminAccess without
DynamicResourceAllocation being enabled (default off!) and the kube-apiserver
refused to start.

While DRAAdminAccess isn't usable without DynamicResourceAllocation, it's also
not really wrong to allow it - it simply won't matter.
2024-11-06 13:03:20 +01:00
Patrick Ohly
a1b8e9d3a7 DRA kubelet: increase plugin test coverage
Deleting slices was not covered to begin with and the recent registration
changes also could have been covered better. Now coverage is at 91%.
2024-11-06 13:03:20 +01:00
Patrick Ohly
1193ff1271 DRA driver: optionally support kubelet 1.31
Supporting the alpha gRPC interface isn't enough anymore to be compatible
with kubelet 1.31: the "supported versions" must contain version numbers,
otherwise the older kubelet refuses to register the driver.

With this change, a DRA driver can decide to support both kubelet 1.31 and
kubelet 1.32 by registering *only* the alpha gRPC interface (NodeV1alpha4(true)
and NodeV1beta1(false) as options for Start).

The default is to provide both interfaces and using the registration mechanism
for 1.32, which makes DRA drivers compatible only with Kubernetes >= 1.32.
2024-11-06 13:03:20 +01:00
Patrick Ohly
2c23fe1b82 DRA kubelet: list supported gRPC services during registration
Listing supported gRPC services (e.g. drav1alpha3.Node, drav1beta1.DRAPlugin)
during registration enables the kubelet to determine in advance which methods
it can call.

Versioning by Kubernetes release makes less sense because it doesn't say
anything about which gRPC service is supported. New ones might get added and
obsolete ones removed. Some services might be optional.

In the past, this versioning support wasn't really used. At least one version
had to be provided and kubelet tried to use the plugin with the highest
version. This version comparison gets dropped. In the unlikely situation
that different plugins register under the same name, the most recent one is
used.

Because advertising gRPC services is a new convention, plugins only reporting
some version are treated as providing the old alpha gRPC service.
2024-11-06 13:03:20 +01:00
Patrick Ohly
437be1e651 DRA kubelet: rename gRPC server from Node to DRAPlugin in v1beta1
The version bump is an opportunity to pick a name that is a bit more
descriptive. It matches the "DevicePlugin" service name.
2024-11-06 13:03:20 +01:00
Patrick Ohly
63a7865736 DRA CEL: properly define IntroducedVersion
Using 1.0 was a workaround to grant Kubernetes 1.31 access to things introduce
in that same release. In Kubernetes 1.32 we don't need that workaround anymore
because everything is still available after a downgrade and thus usable.
2024-11-06 13:03:20 +01:00
Patrick Ohly
ea51d975fc DRA: promote feature gate to beta 2024-11-06 13:03:20 +01:00
Patrick Ohly
30f5282656 DRA API: rename DeviceCapacity.Quantity to DeviceCapacity.Value
Based on review
feedback (https://github.com/kubernetes/kubernetes/pull/127511#discussion_r1823521172).
2024-11-06 13:03:20 +01:00
Patrick Ohly
0b8a85c54a update-openapi-spec.sh: enable all alpha and beta APIs
This becomes relevant once DynamicResourceAllocation becomes beta with
"disabled" as default. Otherwise AllAlpha=true enables DRAAdminAccess which
depends on DynamicResourceAllocation, which is disabled.
2024-11-06 13:03:19 +01:00
Patrick Ohly
33ea278c51 DRA: use v1beta1 API
No code is left which depends on the v1alpha3, except of course the code
implementing that version.
2024-11-06 13:03:19 +01:00
Patrick Ohly
81fd64256c DRA API: use DeviceCapacity struct instead of plain Quantity
This enables a future extension where capacity of a single device gets consumed
by different claims. The semantic without any additional fields is the same as
before: a capacity cannot be split up and is only an attribute of a device.

Because its semantically the same as before, two-way conversion to v1alpha3 is
possible.
2024-11-06 13:03:19 +01:00
Patrick Ohly
142319bd92 DRA API: use v1beta1 as storage version
This is meant to make it easier to remove the v1alpha3 because it won't be used
in clusters that started with DRA as beta in Kubernetes 1.32 when all clients
support v1beta1.
2024-11-06 13:03:19 +01:00
Patrick Ohly
0ee52b23cd DRA API: generated files 2024-11-06 13:03:19 +01:00
Patrick Ohly
2e64c72249 DRA API: register v1beta1
This is the minimal set of changes that are needed to make the new version
usable. The storage version is still v1alpha3. More changes will follow.
2024-11-06 13:03:18 +01:00
Patrick Ohly
584fdc9d1c DRA API: update lifecyle meta data
The tag is about the version/type combination, not just the type. The v1beta1
types will become deprecated automatically after three releases, starting in
1.32.

The v1alpha3 types get marked as replaced to ensure that the compatibility
version code doesn't force using v1alpha3 as storage
version (https://github.com/kubernetes/kubernetes/issues/128448).
2024-11-06 13:03:18 +01:00
Patrick Ohly
d685064ff7 DRA API: search/replace v1alpha3 -> v1beta1 2024-11-06 13:03:18 +01:00
Patrick Ohly
f1e5616f05 DRA API: verbatim copy of v1alpha3 -> v1beta1 2024-11-06 13:03:18 +01:00
Patrick Ohly
99acb67c68 DRA API: enhance validation testing
The line coverage is now at 98.5% and several more corner cases are
covered. The remaining lines are hard or impossible to reach.

The actual validation is the same as before, with some small tweaks to the
generated errors.

When failures are not as expected, it is useful to show what the expected and
actual failures look like to a user. Perhaps even better would be to put the
expected texts into the test files instead of the error structs. That would
be easier to review and shorter.
2024-11-06 13:03:18 +01:00
Jan Safranek
52b47ea4de Don't create a new controller context 2024-11-06 12:29:56 +01:00