* Drop WorkloadRef field and introduce SchedulingGroup field in Pod API
* Introduce v1alpha2 Workload and PodGroup APIs, drop v1alpha1 Workload API
Co-authored-by: yongruilin <yongrlin@outlook.com>
* Run hack/update-codegen.sh
* Adjust kube-scheduler code and integration tests to v1alpha2 API
* Drop v1alpha1 scheduling API group and run make update
---------
Co-authored-by: yongruilin <yongrlin@outlook.com>
When DRAExtendedResource is enabled, the dynamicresources test setup
registers an event handler for DeviceClasses but was not waiting for it
to sync. This can lead to flaky tests where the cache is not fully
populated when the test starts.
This change captures the event handler registration and includes its
DoneChecker in a WaitFor call.
This prevents the DRA extended resource tests from running against
kubelets older than 1.36 in n-x version skew jobs, avoiding failures
when deploying device plugins on downgraded kubelets.
* issue: setcap build image shouldn't require a shell
* Apply review comment to rename intermediate binary
* Use plain `exec` rather than path to setcap executable.
* Remove deprecated PodRequestsAndLimits from kubectl/pkg/util/resource
The PodRequestsAndLimits function was deprecated in favor of
k8s.io/component-helpers/resource.PodRequests and PodLimits,
which also support pod-level resources. There are no remaining
consumers in kubectl.
This removal includes the unexported helpers: podRequests,
podLimits, determineContainerReqs, max, addResourceList, and
maxResourceList.
* Remove test for deleted max helper function
During cluster upgrade and downgrade, nodes are temporarily restarted.
A pod can be reported as Running by the API server while the kubelet's
container runtime is still initializing, causing transient exec failures:
Internal error occurred: unable to upgrade connection: pod does not exist
Wrapped b.TestPod in tCtx.Eventually so that assertion failures are treated
as temporary and retried.
If it failed to find an IP for every node, it returned a partial list
along with an error. However, (a) this should never happen since every
scheduleable node should have at least one usable IP, and (b) it
didn't matter since all of its callers just treat any error as being
fatal anyway. So just remove the special case.
This returned a randomly-selected IP from across all nodes, preferring
ExternalIP but falling back to an InternalIP. But it was only called
from one place, which was connecting from inside the cluster and thus
wanted an InternalIP anyway.
jig.GetEndpointNodesWithIP was only used by one test, and that test
didn't even want the data in the form jig.GetEndpointNodesWithIP
provided it in. So just inline the code and generate the data
correctly the first time, and remove GetEndpointNodesWithIP (along
with GetEndpointNodes, which was already unused).