From 3d22a7f41484ba545bb62d0571212821b545e920 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kuba=20Tu=C5=BCnik?= Date: Thu, 10 Oct 2024 15:22:54 +0200 Subject: [PATCH] scheduler/autoscaler_contract: expand the Cluster Autoscaler contract SharedDRAManager is added to the contract, as well as RunReservePluginsReserve that will be run by Cluster Autoscaler to obtain claim allocations. --- .../framework_contract_test.go | 1 + .../lister_contract_test.go | 71 +++++++++++++++++++ 2 files changed, 72 insertions(+) diff --git a/pkg/scheduler/framework/autoscaler_contract/framework_contract_test.go b/pkg/scheduler/framework/autoscaler_contract/framework_contract_test.go index 5322f036d8a..5bc1aa7e81a 100644 --- a/pkg/scheduler/framework/autoscaler_contract/framework_contract_test.go +++ b/pkg/scheduler/framework/autoscaler_contract/framework_contract_test.go @@ -36,6 +36,7 @@ import ( type frameworkContract interface { RunPreFilterPlugins(ctx context.Context, state *framework.CycleState, pod *v1.Pod) (*framework.PreFilterResult, *framework.Status, sets.Set[string]) RunFilterPlugins(context.Context, *framework.CycleState, *v1.Pod, *framework.NodeInfo) *framework.Status + RunReservePluginsReserve(ctx context.Context, state *framework.CycleState, pod *v1.Pod, nodeName string) *framework.Status } func TestFrameworkContract(t *testing.T) { diff --git a/pkg/scheduler/framework/autoscaler_contract/lister_contract_test.go b/pkg/scheduler/framework/autoscaler_contract/lister_contract_test.go index 28fa206b508..9026ae73d28 100644 --- a/pkg/scheduler/framework/autoscaler_contract/lister_contract_test.go +++ b/pkg/scheduler/framework/autoscaler_contract/lister_contract_test.go @@ -21,12 +21,20 @@ limitations under the License. package contract import ( + resourceapi "k8s.io/api/resource/v1alpha3" + "k8s.io/apimachinery/pkg/types" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/dynamic-resource-allocation/structured" "k8s.io/kubernetes/pkg/scheduler/framework" ) var _ framework.NodeInfoLister = &nodeInfoListerContract{} var _ framework.StorageInfoLister = &storageInfoListerContract{} var _ framework.SharedLister = &shareListerContract{} +var _ framework.ResourceSliceLister = &resourceSliceListerContract{} +var _ framework.DeviceClassLister = &deviceClassListerContract{} +var _ framework.ResourceClaimTracker = &resourceClaimTrackerContract{} +var _ framework.SharedDRAManager = &sharedDRAManagerContract{} type nodeInfoListerContract struct{} @@ -61,3 +69,66 @@ func (c *shareListerContract) NodeInfos() framework.NodeInfoLister { func (c *shareListerContract) StorageInfos() framework.StorageInfoLister { return nil } + +type resourceSliceListerContract struct{} + +func (c *resourceSliceListerContract) List() ([]*resourceapi.ResourceSlice, error) { + return nil, nil +} + +type deviceClassListerContract struct{} + +func (c *deviceClassListerContract) List() ([]*resourceapi.DeviceClass, error) { + return nil, nil +} + +func (c *deviceClassListerContract) Get(_ string) (*resourceapi.DeviceClass, error) { + return nil, nil +} + +type resourceClaimTrackerContract struct{} + +func (r *resourceClaimTrackerContract) List() ([]*resourceapi.ResourceClaim, error) { + return nil, nil +} + +func (r *resourceClaimTrackerContract) Get(_, _ string) (*resourceapi.ResourceClaim, error) { + return nil, nil +} + +func (r *resourceClaimTrackerContract) ListAllAllocatedDevices() (sets.Set[structured.DeviceID], error) { + return nil, nil +} + +func (r *resourceClaimTrackerContract) SignalClaimPendingAllocation(_ types.UID, _ *resourceapi.ResourceClaim) error { + return nil +} + +func (r *resourceClaimTrackerContract) ClaimHasPendingAllocation(_ types.UID) bool { + return false +} + +func (r *resourceClaimTrackerContract) RemoveClaimPendingAllocation(_ types.UID) (deleted bool) { + return false +} + +func (r *resourceClaimTrackerContract) AssumeClaimAfterAPICall(_ *resourceapi.ResourceClaim) error { + return nil +} + +func (r *resourceClaimTrackerContract) AssumedClaimRestore(_, _ string) { +} + +type sharedDRAManagerContract struct{} + +func (s *sharedDRAManagerContract) ResourceClaims() framework.ResourceClaimTracker { + return nil +} + +func (s *sharedDRAManagerContract) ResourceSlices() framework.ResourceSliceLister { + return nil +} + +func (s *sharedDRAManagerContract) DeviceClasses() framework.DeviceClassLister { + return nil +}