Skip to content

Commit 3d22a7f

Browse files
committed
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.
1 parent 8d48942 commit 3d22a7f

File tree

2 files changed

+72
-0
lines changed

2 files changed

+72
-0
lines changed

pkg/scheduler/framework/autoscaler_contract/framework_contract_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ import (
3636
type frameworkContract interface {
3737
RunPreFilterPlugins(ctx context.Context, state *framework.CycleState, pod *v1.Pod) (*framework.PreFilterResult, *framework.Status, sets.Set[string])
3838
RunFilterPlugins(context.Context, *framework.CycleState, *v1.Pod, *framework.NodeInfo) *framework.Status
39+
RunReservePluginsReserve(ctx context.Context, state *framework.CycleState, pod *v1.Pod, nodeName string) *framework.Status
3940
}
4041

4142
func TestFrameworkContract(t *testing.T) {

pkg/scheduler/framework/autoscaler_contract/lister_contract_test.go

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,20 @@ limitations under the License.
2121
package contract
2222

2323
import (
24+
resourceapi "k8s.io/api/resource/v1alpha3"
25+
"k8s.io/apimachinery/pkg/types"
26+
"k8s.io/apimachinery/pkg/util/sets"
27+
"k8s.io/dynamic-resource-allocation/structured"
2428
"k8s.io/kubernetes/pkg/scheduler/framework"
2529
)
2630

2731
var _ framework.NodeInfoLister = &nodeInfoListerContract{}
2832
var _ framework.StorageInfoLister = &storageInfoListerContract{}
2933
var _ framework.SharedLister = &shareListerContract{}
34+
var _ framework.ResourceSliceLister = &resourceSliceListerContract{}
35+
var _ framework.DeviceClassLister = &deviceClassListerContract{}
36+
var _ framework.ResourceClaimTracker = &resourceClaimTrackerContract{}
37+
var _ framework.SharedDRAManager = &sharedDRAManagerContract{}
3038

3139
type nodeInfoListerContract struct{}
3240

@@ -61,3 +69,66 @@ func (c *shareListerContract) NodeInfos() framework.NodeInfoLister {
6169
func (c *shareListerContract) StorageInfos() framework.StorageInfoLister {
6270
return nil
6371
}
72+
73+
type resourceSliceListerContract struct{}
74+
75+
func (c *resourceSliceListerContract) List() ([]*resourceapi.ResourceSlice, error) {
76+
return nil, nil
77+
}
78+
79+
type deviceClassListerContract struct{}
80+
81+
func (c *deviceClassListerContract) List() ([]*resourceapi.DeviceClass, error) {
82+
return nil, nil
83+
}
84+
85+
func (c *deviceClassListerContract) Get(_ string) (*resourceapi.DeviceClass, error) {
86+
return nil, nil
87+
}
88+
89+
type resourceClaimTrackerContract struct{}
90+
91+
func (r *resourceClaimTrackerContract) List() ([]*resourceapi.ResourceClaim, error) {
92+
return nil, nil
93+
}
94+
95+
func (r *resourceClaimTrackerContract) Get(_, _ string) (*resourceapi.ResourceClaim, error) {
96+
return nil, nil
97+
}
98+
99+
func (r *resourceClaimTrackerContract) ListAllAllocatedDevices() (sets.Set[structured.DeviceID], error) {
100+
return nil, nil
101+
}
102+
103+
func (r *resourceClaimTrackerContract) SignalClaimPendingAllocation(_ types.UID, _ *resourceapi.ResourceClaim) error {
104+
return nil
105+
}
106+
107+
func (r *resourceClaimTrackerContract) ClaimHasPendingAllocation(_ types.UID) bool {
108+
return false
109+
}
110+
111+
func (r *resourceClaimTrackerContract) RemoveClaimPendingAllocation(_ types.UID) (deleted bool) {
112+
return false
113+
}
114+
115+
func (r *resourceClaimTrackerContract) AssumeClaimAfterAPICall(_ *resourceapi.ResourceClaim) error {
116+
return nil
117+
}
118+
119+
func (r *resourceClaimTrackerContract) AssumedClaimRestore(_, _ string) {
120+
}
121+
122+
type sharedDRAManagerContract struct{}
123+
124+
func (s *sharedDRAManagerContract) ResourceClaims() framework.ResourceClaimTracker {
125+
return nil
126+
}
127+
128+
func (s *sharedDRAManagerContract) ResourceSlices() framework.ResourceSliceLister {
129+
return nil
130+
}
131+
132+
func (s *sharedDRAManagerContract) DeviceClasses() framework.DeviceClassLister {
133+
return nil
134+
}

0 commit comments

Comments
 (0)