kubernetes/pkg/scheduler/framework/plugins
Patrick Ohly 444d23bd2f dra: generated name for ResourceClaim from template
Generating the name avoids all potential name collisions. It's not clear how
much of a problem that was because users can avoid them and the deterministic
names for generic ephemeral volumes have not led to reports from users. But
using generated names is not too hard either.

What makes it relatively easy is that the new pod.status.resourceClaimStatus
map stores the generated name for kubelet and node authorizer, i.e. the
information in the pod is sufficient to determine the name of the
ResourceClaim.

The resource claim controller becomes a bit more complex and now needs
permission to modify the pod status. The new failure scenario of "ResourceClaim
created, updating pod status fails" is handled with the help of a new special
"resource.kubernetes.io/pod-claim-name" annotation that together with the owner
reference identifies exactly for what a ResourceClaim was generated, so
updating the pod status can be retried for existing ResourceClaims.

The transition from deterministic names is handled with a special case for that
recovery code path: a ResourceClaim with no annotation and a name that follows
the Kubernetes <= 1.27 naming pattern is assumed to be generated for that pod
claim and gets added to the pod status.

There's no immediate need for it, but just in case that it may become relevant,
the name of the generated ResourceClaim may also be left unset to record that
no claim was needed. Components processing such a pod can skip whatever they
normally would do for the claim. To ensure that they do and also cover other
cases properly ("no known field is set", "must check ownership"),
resourceclaim.Name gets extended.
2023-07-11 14:23:48 +02:00
..
defaultbinder kube-scheduler: NewFramework function to pass the context parameter 2023-05-23 10:17:34 +08:00
defaultpreemption scheduler: update the scheduler interface and cache methods to use contextual logging 2023-05-29 13:26:32 +08:00
dynamicresources dra: generated name for ResourceClaim from template 2023-07-11 14:23:48 +02:00
examples migrated preemption.go, stateful.go, resource_allocation.go to structured logging 2021-11-08 22:52:47 +05:30
feature Mark pods with restartable init containers as UnschedulableAndUnresolvable 2023-07-08 07:26:13 +09:00
helper kube-scheduler: add taints filtering logic consistent with TaintToleration plugin for PodTopologySpread plugin 2022-09-10 09:04:30 +08:00
imagelocality kube-scheduler: NewFramework function to pass the context parameter 2023-05-23 10:17:34 +08:00
interpodaffinity feature(scheduler): implement ClusterEventWithHint to filter out useless events 2023-06-22 13:36:19 +00:00
names Merge pull request #111023 from pohly/dynamic-resource-allocation 2022-11-11 16:21:56 -08:00
nodeaffinity feature(scheduler): implement ClusterEventWithHint to filter out useless events 2023-06-22 13:36:19 +00:00
nodename feature(scheduler): implement ClusterEventWithHint to filter out useless events 2023-06-22 13:36:19 +00:00
nodeports feature(scheduler): implement ClusterEventWithHint to filter out useless events 2023-06-22 13:36:19 +00:00
noderesources Mark pods with restartable init containers as UnschedulableAndUnresolvable 2023-07-08 07:26:13 +09:00
nodeunschedulable feature(scheduler): implement ClusterEventWithHint to filter out useless events 2023-06-22 13:36:19 +00:00
nodevolumelimits Merge pull request #117055 from cyclinder/csi_migration 2023-06-28 04:28:31 -07:00
podtopologyspread feature(scheduler): implement ClusterEventWithHint to filter out useless events 2023-06-22 13:36:19 +00:00
queuesort changes in test files 2022-10-12 22:11:04 +08:00
schedulinggates feature(scheduler): implement ClusterEventWithHint to filter out useless events 2023-06-22 13:36:19 +00:00
selectorspread kube-scheduler: NewFramework function to pass the context parameter 2023-05-23 10:17:34 +08:00
tainttoleration feature(scheduler): implement ClusterEventWithHint to filter out useless events 2023-06-22 13:36:19 +00:00
testing kube-scheduler: NewFramework function to pass the context parameter 2023-05-23 10:17:34 +08:00
volumebinding Merge pull request #117055 from cyclinder/csi_migration 2023-06-28 04:28:31 -07:00
volumerestrictions feature(scheduler): implement ClusterEventWithHint to filter out useless events 2023-06-22 13:36:19 +00:00
volumezone feature(scheduler): implement ClusterEventWithHint to filter out useless events 2023-06-22 13:36:19 +00:00
README.md scheduler/framework/plugins: delete moved docs 2021-02-16 13:26:27 +00:00
registry.go Mark pods with restartable init containers as UnschedulableAndUnresolvable 2023-07-08 07:26:13 +09:00

Scheduler Framework Plugins

Moved here.