1490 Commits

Author SHA1 Message Date
Kubernetes Prow Robot
802198e2da Merge pull request #133113 from alaypatel07/resource-claim-concurrent-syncs
bump resource claim controller concurrent syncs to 50
2025-07-24 17:59:20 -07:00
Kubernetes Prow Robot
7912e5fd67 Merge pull request #131549 from carlory/KEP-3751-GA
[Kep-3751] Promote VolumeAttributesClass to GA
2025-07-24 16:44:27 -07:00
carlory
94bf8fc8a9 Promoted API VolumeAttributesClass and VolumeAttributesClassList to storage.k8s.io/v1.
Promoted feature-gate `VolumeAttributesClass` to GA (on by default)

Signed-off-by: carlory <baofa.fan@daocloud.io>
2025-07-25 01:53:59 +08:00
Patrick Ohly
5c4f81743c DRA: use v1 API
As before when adding v1beta2, DRA drivers built using the
k8s.io/dynamic-resource-allocation helper packages remain compatible with all
Kubernetes release >= 1.32. The helper code picks whatever API version is
enabled from v1beta1/v1beta2/v1.

However, the control plane now depends on v1, so a cluster configuration where
only v1beta1 or v1beta2 are enabled without the v1 won't work.
2025-07-24 08:33:45 +02:00
Kubernetes Prow Robot
cc674e7470 Merge pull request #128010 from ahmedtd/pod-certificates-types
Pod Certificates: Preliminary implementation of KEP-4317
2025-07-21 19:26:30 -07:00
Alay Patel
a5b9c7a798 bump resource claim controller concurrent syncs to 50
Signed-off-by: Alay Patel <alayp@nvidia.com>
2025-07-21 17:57:57 -04:00
Taahir Ahmed
4624cb9bb9 Pod Certificates: Basic implementation
* Define feature gate
* Define and serve PodCertificateRequest
* Implement Kubelet projected volume source
* kube-controller-manager GCs PodCertificateRequests
* Add agnhost subcommand that implements a toy signer for testing

Change-Id: Id7ed030d449806410a4fa28aab0f2ce4e01d3b10
2025-07-21 21:49:57 +00:00
Lukasz Szaszkiewicz
db342010f4 kube-controller-manager: enable WatchListClient 2025-07-17 12:08:03 +02:00
Kubernetes Prow Robot
b3e438aef9 Merge pull request #132220 from BenTheElder/a-little-owners-cleanup
emeritus spiffxp and backfill OWNERS
2025-06-25 19:16:28 -07:00
Kubernetes Prow Robot
5b1af0c8c2 Merge pull request #127655 from guozheng-shen/remove-usage
remove 'endpointsleases' and 'configmapsleases' from usage
2025-06-24 09:54:28 -07:00
carlory
901441c66e Promote SeparateTaintEvictionController to stable
Signed-off-by: carlory <baofa.fan@daocloud.io>
2025-06-13 11:15:35 +08:00
Benjamin Elder
ad68a4b4cd emeritus spiffxp
spiffxp moved on from the project years ago, he is still missed
2025-06-10 20:05:40 -07:00
Michael Aspinwall
a8ed33bc64 feat: add metrics for compatibility version
Add metrics for compatibility version for kube-apiserver, kube-scheduler, and kube-controller-manager.

Signed-off-by: Michael Aspinwall <maspinwall@google.com>
2025-05-20 08:41:01 +00:00
Kubernetes Prow Robot
c064ed8ed3 Merge pull request #130207 from carlory/cleanup-IncludeCloudLoops
remove outdate comment about pv controller
2025-04-30 06:37:56 -07:00
Kubernetes Prow Robot
d41e8bbc14 Merge pull request #128351 from mengjiao-liu/kube-controller-manager-support-context-for-NewBroadcaster
kube-controller-manager: also support context for record.NewBroadcaster
2025-04-23 19:30:29 -07:00
David Eads
660df229bf Stop exposing list-via-watch from the server
With StreamingCollectionEncodingToJSON and
StreamingCollectionEncodingToProtobuf, the WatchList must re-justify its
necessity.  To prevent an ecosystem from building around a feature that
may not be promoted, we will stop serving list-via-watch until
performance numbers can justify its inclusion.

This also stops the kube-controller-manager from using the
list-via-watch by default.  The fallback is a regular list, so during
the skew during an upgrade the "right" thing will happen and the new
StreamingCollectionEncoding will be used.
2025-04-18 09:21:23 -04:00
Patrick Ohly
ac6e47cb14 DRA taint eviction: improve error handling
There was one error path that led to a "controller has shut down" log
message. Other errors caused different log entries or are so unlikely (event
handler registration failure!) that they weren't checked at all.

It's clearer to let Run return an error in all cases and then log the
"controller has shut down" error at the call site. This also enables tests to
mark themselves as failed, should that ever happen.
2025-03-20 17:59:06 +01:00
Patrick Ohly
a027b439e5 DRA: add device taint eviction controller
The controller is derived from the node taint eviction controller.
In contrast to that controller it tracks the UID of pods to prevent
deleting the wrong pod when it got replaced.
2025-03-19 09:18:38 +01:00
Kubernetes Prow Robot
9693eea5c3 Merge pull request #128824 from yongruilin/flagz-controller-manager
feat: Add flagz endpoint for kube-controller-manager
2025-03-12 13:35:47 -07:00
Stanislav Láznička
c36b1c901f KCM: CTB publisher: tolerate NotFound during discovery 2025-03-11 18:07:33 +01:00
Stanislav Láznička
5b3b68a3a1 KCM: CTBPublisher: use generics to handle both alpha/beta APIs 2025-03-11 18:07:29 +01:00
Stanislav Láznička
e0f536bf1f use the ClusterTrustBundles beta API 2025-03-11 18:07:24 +01:00
yongruilin
97db9a7843 feat: Add flagz endpoint for kube-controller-manager 2025-03-05 22:35:03 +00:00
Morten Torkildsen
36d8a44b9c DRA: Update controller for Prioritized Alternatives in Device Requests 2025-02-28 19:32:59 +00:00
Monokaix
e5becd01c8 correct ResyncPeriod comments
Signed-off-by: Monokaix <changxuzheng@huawei.com>
2025-02-27 15:04:07 +08:00
carlory
6df869347b remove outdate comment about pv controller 2025-02-17 14:13:48 +08:00
Siyuan Zhang
8fc3a33454 Refactor compatibility version code
Replace DefaultComponentGlobalsRegistry with new instance of componentGlobalsRegistry in test api server.

Signed-off-by: Siyuan Zhang <sizhang@google.com>

move kube effective version validation out of component base.

Signed-off-by: Siyuan Zhang <sizhang@google.com>

move DefaultComponentGlobalsRegistry out of component base.

Signed-off-by: Siyuan Zhang <sizhang@google.com>

move ComponentGlobalsRegistry out of featuregate pkg.

Signed-off-by: Siyuan Zhang <sizhang@google.com>

remove usage of DefaultComponentGlobalsRegistry in test files.

Signed-off-by: Siyuan Zhang <sizhang@google.com>

change non-test DefaultKubeEffectiveVersion to use DefaultBuildEffectiveVersion.

Signed-off-by: Siyuan Zhang <sizhang@google.com>

Restore useDefaultBuildBinaryVersion in effective version.

Signed-off-by: Siyuan Zhang <sizhang@google.com>

rename DefaultKubeEffectiveVersion to DefaultKubeEffectiveVersionForTest.

Signed-off-by: Siyuan Zhang <sizhang@google.com>

pass options.ComponentGlobalsRegistry into config for controller manager and scheduler.

Signed-off-by: Siyuan Zhang <sizhang@google.com>

Pass apiserver effective version to DefaultResourceEncodingConfig.

Signed-off-by: Siyuan Zhang <sizhang@google.com>

change statusz registry to take effective version from the components.

Signed-off-by: Siyuan Zhang <sizhang@google.com>

Address review comments

Signed-off-by: Siyuan Zhang <sizhang@google.com>

update vendor

Signed-off-by: Siyuan Zhang <sizhang@google.com>
2025-02-05 16:10:53 -08:00
Kubernetes Prow Robot
22f25efc2c Merge pull request #128991 from Henrywu573/cm-statuz
Add statusz endpoint for kube-controller-manager
2025-02-05 15:54:15 -08:00
Antonio Ojea
7721590b9e update controller manager 2025-01-20 13:01:53 +00:00
Kubernetes Prow Robot
e305c33988 Merge pull request #126387 from pohly/log-client-go-tools-cache-apis
client-go/tools/cache: add APIs with context parameter
2024-12-18 20:00:09 +01:00
Patrick Ohly
4638ba9716 client-go/tools/cache: add APIs with context parameter
The context is used for cancellation and to support contextual logging.

In most cases, alternative *WithContext APIs get added, except for
NewIntegerResourceVersionMutationCache where code searches indicate that the
API is not used downstream.

An API break around SharedInformer couldn't be avoided because the
alternative (keeping the interface unchanged and adding a second one with
the new method) would have been worse. controller-runtime needs to be updated
because it implements that interface in a test package. Downstream consumers of
controller-runtime will work unless they use those test package.

Converting Kubernetes to use the other new alternatives will follow. In the
meantime, usage of the new alternatives cannot be enforced via logcheck
yet (see https://github.com/kubernetes/kubernetes/issues/126379 for the
process).

Passing context through and checking it for cancellation is tricky for event
handlers. A better approach is to map the context cancellation to the normal
removal of an event handler via a helper goroutine. Thanks to the new
HandleErrorWithLogr and HandleCrashWithLogr, remembering the logger is
sufficient for handling problems at runtime.
2024-12-18 18:45:02 +01:00
Siyuan Zhang
00dab9dffa Add Validation to versioned feature specs.
Co-authored-by: Jordan Liggitt <liggitt@google.com>
Co-authored-by: Siyuan Zhang <sizhang@google.com>

Signed-off-by: Siyuan Zhang <sizhang@google.com>
2024-12-17 15:59:02 -08:00
Henry Wu
5a8d77a2ae Add statusz endpoint for kube-controller-manager 2024-12-05 23:48:51 +00:00
Jefftree
0ce7b688a6 v1alpha2 LeaseCandidate API 2024-11-08 02:27:19 +00:00
Stanislav Láznička
a4b83e77d9 trustbundles: add a new kube-apiserver-serving signer 2024-11-07 18:07:06 +01: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
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
Jan Safranek
52b47ea4de Don't create a new controller context 2024-11-06 12:29:56 +01:00
Jan Safranek
4b99a342f4 Move feature gate to ControllerDescriptor 2024-11-06 12:29:56 +01:00
Jan Safranek
da2d9fa16e Fix golint errors
Revealed by the new SELinux warning controller, but not related to it.
2024-11-06 11:16:05 +01:00
Jan Safranek
aa8872d7a3 Add SELinux warning controller 2024-11-06 11:16:02 +01:00
Kubernetes Prow Robot
08391b3d27 Merge pull request #123549 from carlory/kep-3751-finalizer
A new controller adds/removes finalizer to VAC for protection
2024-11-05 21:45:30 +00:00
Kubernetes Prow Robot
d34c181465 Merge pull request #128444 from tosi3k/ds-syncs
Add --concurrent-daemonset-syncs argument to kube-controller-manager
2024-10-31 19:21:34 +00:00
Jan Safranek
9e29f95618 Refactor controller-manager volume plugins
Most of the volume plugins were removed from k/k. Refactor how KCM
controllers initialize the few leftovers.
2024-10-31 09:08:30 +01:00
Jan Safranek
cba5a93468 Remove portworx from attachable volume plugins
The volume plugin does not implement AttachableVolumePlugin interface.
2024-10-31 09:08:21 +01:00
Jan Safranek
0ecbdf3622 Remove fc from expandable plugins
FibreChannel volume plugin does not implement ExpandableVolumePlugin.
2024-10-31 09:08:21 +01:00
Jan Safranek
1fa8877c33 Add unit tests for KCM volume plugin probers 2024-10-31 09:08:19 +01:00
Antoni Zawodny
4afa554f65 Add --concurrent-daemonset-syncs flag to kube-controller-manager 2024-10-30 15:03:26 +01:00
Patrick Ohly
9a7e4ccab2 DRA admin access: add feature gate
The new DRAAdminAccess feature gate has the following effects:
- If disabled in the apiserver, the spec.devices.requests[*].adminAccess
  field gets cleared. Same in the status. In both cases the scenario
  that it was already set and a claim or claim template get updated
  is special: in those cases, the field is not cleared.

  Also, allocating a claim with admin access is allowed regardless of the
  feature gate and the field is not cleared. In practice, the scheduler
  will not do that.
- If disabled in the resource claim controller, creating ResourceClaims
  with the field set gets rejected. This prevents running workloads
  which depend on admin access.
- If disabled in the scheduler, claims with admin access don't get
  allocated. The effect is the same.

The alternative would have been to ignore the fields in claim controller and
scheduler. This is bad because a monitoring workload then runs, blocking
resources that probably were meant for production workloads.
2024-10-29 09:50:11 +01:00
Mengjiao Liu
6fd8954fe8 kube-controller-manager: also support context for record.NewBroadcaster
27a68ae introduced context support. In order to use that
also with NewBroadcaster, a variant of the call is needed to allow
the caller to specify the context.
2024-10-29 15:34:58 +08:00