You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Admin-access ResourceClaim requests (KEP-5018) can bind to devices that are already allocated and do not consume them. This wires that behavior into the device allocator:
Admin-access requests treat already-allocated devices as eligible placement options, instead of skipping them.
Admin-access allocations no longer count as consuming a device, so other claims can still use it.
Existing admin-access allocations read from the cluster are ignored the same way.
As a result, Karpenter does not provision extra nodes for admin-access pods that fit hardware already in use.
How was this change tested?
Allocator unit tests: bind to allocated devices, ignore counters and capacity, and keep device distinctness and selector matching.
deviceallocation controller unit tests: skip admin-access results.
Provisioning integration tests: an admin-access pod binds to a held device on an existing node with no new NodeClaim, while an equivalent normal claim launches one.
go test ./pkg/scheduling/dynamicresources/... ./pkg/controllers/dynamicresources/... ./pkg/controllers/provisioning/... on envtest 1.35. Pre-existing Consumable Capacity failures are unrelated; they need the DRAConsumableCapacity apiserver feature gate.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
This pull-request has been approved by: yindia Once this PR has been reviewed and has the lgtm label, please assign gjtempleton for approval. For more information see the Code Review Process.
The full list of commands accepted by this bot can be found here.
Details
Needs approval from an approver in each of these files:
You will be prompted by a bot to use commands during the review process. Do not be afraid to follow the prompts! It is okay to experiment. Here is the bot commands documentation.
You may want to refer to our testing guide if you run into trouble with your tests not passing.
If you are having difficulty getting your pull request seen, please follow the recommended escalation practices. Also, for tips and tricks in the contribution process you may want to read the Kubernetes contributor cheat sheet. We want to make sure your contribution gets all the attention it needs!
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
cncf-cla: yesIndicates the PR's author has signed the CNCF CLA.size/LDenotes a PR that changes 100-499 lines, ignoring generated files.
1 participant
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #3230
Description
Admin-access
ResourceClaimrequests (KEP-5018) can bind to devices that are already allocated and do not consume them. This wires that behavior into the device allocator:As a result, Karpenter does not provision extra nodes for admin-access pods that fit hardware already in use.
How was this change tested?
NodeClaim, while an equivalent normal claim launches one.go test ./pkg/scheduling/dynamicresources/... ./pkg/controllers/dynamicresources/... ./pkg/controllers/provisioning/...on envtest 1.35. Pre-existing Consumable Capacity failures are unrelated; they need theDRAConsumableCapacityapiserver feature gate.By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.