Commit Graph
3331 Commits
Author SHA1 Message Date
Michael Aspinwall acbede86cb Promote SVM to GA 2026-07-07 17:22:30 +00:00
Patrick Ohly 3d36421bb7 DRA Device Taints: use V1 API, enabled by default 2026-07-06 20:20:56 +02:00
kubernetes-prow[bot] bbdae911b8 Merge pull request #140080 from dom4ha/api-workload-ref
rename PodGroupTemplateRef to WorkloadRef
2026-07-01 16:26:27 +00:00
kubernetes-prow[bot] f8c9f76821 Merge pull request #140006 from ahmedtd/pcr-fix
Pod Certificates: Node-restriction support for signer names
2026-07-01 16:26:19 +00:00
dom4ha 24ac5b2bd7 api: rename PodGroupTemplateRef to WorkloadRef 2026-07-01 12:18:43 +00:00
Taahir Ahmed 3a77181b21 Pod Certificates: Node-restriction support for signer names
Kubelet's ability to generate service account tokens is restricted by
the noderestriction admission plugin, which checks to make sure that the
relevant pod actually mounts a token volume with the requested audience.

This commit adds an analogous mechanism for Pod Certificates,
restricting the signer names that Kubelet can request.

The feature includes a similar authorizer-based override, where granting
the "request-podcertificate-signer" verb for a given signer name allows
bypassing the restriction.

Prepared with Claude Code.
2026-06-30 15:04:53 -07:00
Joe Betz e89ecc6af0 generate 2026-06-30 18:02:28 -04:00
kubernetes-prow[bot] d6bd294106 Merge pull request #139763 from pravk03/ndf-ga
Promote Node Declared Features to GA
2026-06-30 20:52:24 +00:00
Ania Borowiec d2842d8f03 Add PreemptionPolicy field to PodGroup 2026-06-30 16:48:10 +00:00
Praveen Krishna e81c394d30 Fix unit tests 2026-06-25 20:50:08 +00:00
Joe Betz 0850ee4a1e Add DeprecatedServiceAccount to core.PodSpec to match core/v1 2026-06-18 22:40:58 -04:00
Joe Betz 4dde9c9311 Make ServiceAccountTokenProjection.ExpirationSeconds a *int64 to match v1 2026-06-18 20:50:59 -04:00
Maciej Skoczeń 54ca619d4b Merge GangScheduling and WorkloadAwarePreemption feature gates into GenericWorkload 2026-06-15 11:42:10 +00:00
Kubernetes Prow Robot 6664e2957f Merge pull request #139326 from faganihajizada/cleanup/noderestriction-node-allocatable-claim-statuses
noderestriction: prevent kubelet updates to NodeAllocatableResourceClaimStatuses
2026-06-12 22:36:42 +05:30
Fagani HajizadaandPatrick Ohly 5c67990933 Update plugin/pkg/admission/noderestriction/admission_test.go
Co-authored-by: Patrick Ohly <patrick.ohly@intel.com>
2026-06-02 13:16:01 +02:00
Fagani Hajizada b676903b42 noderestriction: hand-roll NodeAllocatableResourceClaimStatuses equality
Signed-off-by: Fagani Hajizada <fhajizada@nvidia.com>
2026-05-27 17:38:13 +02:00
Fagani Hajizada 8e9dc98405 noderestriction: prevent kubelet updates to NodeAllocatableResourceClaimStatuses
The NodeRestriction admission plugin forbids the kubelet from mutating
pod.status.ResourceClaimStatuses and pod.status.ExtendedResourceClaimStatus
but not the sibling pod.status.NodeAllocatableResourceClaimStatuses field
added for DRANodeAllocatableResources.

The kubelet status manager already treats the field as not-kubelet-owned
and preserves it across status syncs (see "kubelet: do not destroy
nodeAllocatableResourceClaimStatuses"). Mirror that boundary in admission
so a kubelet cannot stomp on a value the scheduler is responsible for.

Use apiequality.Semantic.DeepEqual inline rather than introducing a third
hand-rolled helper next to resourceClaimStatusesEqual and
extendedResourceClaimStatusEqual: NodeAllocatableResourceClaimStatus.Resources
is a map[ResourceName]resource.Quantity, and Semantic.DeepEqual already
canonicalises resource.Quantity comparisons.

DRANodeAllocatableResources is alpha and default-off, so this is
future-proofing rather than a fix for an observed bug.

Signed-off-by: Fagani Hajizada <fhajizada@nvidia.com>
2026-05-27 15:29:23 +02:00
Kubernetes Prow Robot 48ba469549 Merge pull request #137204 from luxas/authorizer-decision-to-struct
Conditional Authz [1/n]: Add conditional capabilities to the authorizer interface
2026-05-27 02:32:00 +05:30
dom4ha 88948acc38 Remove v1alpha2 API definitions
Update client-go lister and informer imports to v1alpha3
2026-05-22 12:50:19 +00:00
dom4ha 8a52fb2ea9 Migrate references to v1alpha3 in tests, controllers, and remaining files 2026-05-22 12:50:19 +00:00
dom4ha 43ebd00b66 Migrate internal references from v1alpha2 to v1alpha3 in scheduler and admission plugins 2026-05-22 12:50:19 +00:00
Anish Ramasekar 7262edeb59 fix(admission): reword NodeRestriction audience authorization error
The previous error message said the audience was "not found in pod
spec volume", which led users to mount a spurious projected service
account token volume in the pod spec to satisfy the check. That is
not the intended remedy: kubelets should be authorized via RBAC to
request tokens for the configured audience.

Reword the error to a generic "is not authorized to request tokens
for audience %q" so users are not pushed toward modifying pod specs.
The valid authorization paths (pod spec volume, CSIDriver tokenRequests,
or the request-serviceaccounts-token-audience verb) are documented
in the kubelet credential provider task page.

Update the unit and integration test expectations to match.
2026-05-13 16:30:51 -07:00
Lucas Käldström 69a8b4dd7a Adapt the codebase to the Authorizer interface change 2026-05-13 18:34:51 +03:00
Jordan Liggitt bed4a34ad8 Drop meaningless ,inline from json tags 2026-05-13 11:24:04 -04:00
Kubernetes Prow Robot cc9fd614c4 Merge pull request #139008 from wojtek-t/revert_pod_group_admission
Revert "KEP-5832: Implement PodGroup admission (#137464)
2026-05-13 19:01:48 +05:30
Kubernetes Prow Robot f01363b491 Merge pull request #138792 from dims/fix/graph-populator-extended-resource-claim
node: future proof graph populator fast-path to check ExtendedResourceClaimStatus
2026-05-13 12:40:28 +05:30
Wojciech Tyczyński 17460de7bd Revert "KEP-5832: Implement PodGroup admission (#137464) 2026-05-12 21:00:23 +02:00
Davanum Srinivas a26aef9d0e node: address yliaog test review comments
- Refine doc comment to note ExtendedResourceClaimStatus may change under
  rare condition after a pod is bound to a node.
- Seed the initial pod with ExtendedResourceClaimStatus{extended-claim-0}
  and RequestMappings so the test exercises the change scenario yliaog
  described rather than nil-to-set.
- Update the inline comment and assertion messages to reflect the swap
  from extended-claim-0 to extended-claim-1.
2026-05-12 08:20:12 -04:00
Joe Betz f79a4d72f2 Generate model names 2026-05-11 12:27:55 -04:00
Kubernetes Prow Robot d9fb718434 Merge pull request #138874 from michaelasp/svmPatch
Switch to regular merge patch for SVM
2026-05-08 09:21:16 +05:30
Michael Aspinwall 7847ab6b00 Switch to regular merge patch for SVM 2026-05-08 00:31:26 +00:00
Lucas Käldström 7e3c734947 Add the Unconditional prefix to Authorizer and WantsAuthorizer interfaces 2026-05-07 22:22:14 +03:00
Kubernetes Prow Robot 74f4ad5e38 Merge pull request #138698 from michaelasp/circuitBreaker
Ensure leases are not stale in node controller before marking unhealthy
2026-05-05 23:34:21 +05:30
Davanum Srinivas 2490cfa4f5 node: fix graph populator fast-path to check ExtendedResourceClaimStatus
Pods using DRAExtendedResource (e.g. nvidia.com/gpu) have no
Spec.ResourceClaims, so ResourceClaimStatuses stays nil. The updatePod
fast-path skipped AddPod when only ExtendedResourceClaimStatus changed,
leaving the synthesized claim→pod→node edge out of the authorization graph.

Add PodExtendedStatusEqual to the fast-path guard, matching what the
scheduler event handler already does in events.go.
2026-05-05 11:50:20 -04:00
Michael Aspinwall 9991d72c6b Add circuit breaker approach to ensure leases are not stale in node controller 2026-05-04 22:14:10 +00:00
Anish Ramasekar b2e27e8986 Drop AuthorizeWithSelectors feature gate
Signed-off-by: Anish Ramasekar <anish.ramasekar@gmail.com>
2026-04-28 13:32:29 -07:00
Anish Ramasekar b1c8bf1e32 Drop AuthorizeNodeWithSelectors feature gate
Signed-off-by: Anish Ramasekar <anish.ramasekar@gmail.com>
2026-04-28 10:10:52 -07:00
Mujib Ahasan b9b0ff440d remove accidently commited file
Signed-off-by: Mujib Ahasan <ahasanmujib8@gmail.com>
2026-04-04 12:53:30 +05:30
Antonio Ojea adbf3b5aa5 Add granular authorization for DRA ResourceClaim status updates
This commit introduces the DRAResourceClaimGranularStatusAuthorization
feature gate (Beta in 1.36) to enforce fine-grained authorization checks
on ResourceClaim status updates.

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

- 'resourceclaims/binding': Required to update 'status.allocation' and
  'status.reservedFor'.
- 'resourceclaims/driver': Required to update 'status.devices'. Evaluated
  on a per-driver basis using 'associated-node:<verb>' (for node-local
  ServiceAccounts) or 'arbitrary-node:<verb>' (for cluster-wide controllers).
2026-03-26 13:22:09 +00:00
Antoni ZawodnyandOmar Sayed 59c9f75133 Add Workload-Aware Preemption fields to Workload and PodGroup APIs
Co-authored-by: Omar Sayed <omarsayed@google.com>
2026-03-24 09:03:50 +01:00
Jon Huhn d80f384b70 Workload API: PodGroup ResourceClaims (KEP-5729) 2026-03-22 14:52:45 -05:00
Kubernetes Prow Robot 15eaed180f Merge pull request #137028 from nmn3m/feature/dra-resource-pool-status
KEP-5677: Add ResourcePoolStatusRequest API for DRA resource availability visibility
2026-03-21 08:16:13 +05:30
Heba cf5ba01d13 KEP-5832: Implement PodGroup admission (#137464)
* Add admission for podGroup

Signed-off-by: helayoty <heelayot@microsoft.com>

* Create workload object before podgroup

Signed-off-by: helayoty <heelayot@microsoft.com>

---------

Signed-off-by: helayoty <heelayot@microsoft.com>
2026-03-19 21:32:34 +05:30
Nour 30fe79df21 Add ResourcePoolStatusRequest controller, registry, and RBAC
Implement the RPSR controller that watches ResourcePoolStatusRequest
objects and aggregates pool status from DRA drivers. Add the API server
registry (strategy, storage), handwritten validation, RBAC bootstrap
policy for the controller, kube-controller-manager wiring, table
printer columns, and storage factory registration.
2026-03-19 16:50:02 +02:00
Kubernetes Prow Robot 9d02f5f918 Merge pull request #137032 from helayoty/helayoty/5547-workload-job-integration
KEP-5547: Implement Workload APIs integration with Job controller
2026-03-19 17:10:31 +05:30
helayoty 981a333927 Add admission plugin for update parallelism
Signed-off-by: helayoty <heelayot@microsoft.com>
2026-03-18 22:32:57 +00:00
Roman Bednar 6c087b2724 add unused condition to persistent volume claims 2026-03-18 17:08:08 -04:00
helayoty 68e30095de Implement Workload and PodGroup integration with Job controller
Signed-off-by: helayoty <heelayot@microsoft.com>
2026-03-18 20:32:37 +00:00
helayoty fc88e37288 Add admission plugin for PodGroup to add finalizer to every new object
Signed-off-by: helayoty <heelayot@microsoft.com>
2026-03-18 15:28:14 +00:00
helayoty 0ef8d78d1d Add new protection controller for PodGroup
Signed-off-by: helayoty <heelayot@microsoft.com>
2026-03-18 15:27:17 +00:00