Skip to content

Commit 4ff3e8b

Browse files
authored
Removed PDBs from snapshot (#329)
Removed PDBs from snapshot
1 parent 3b79b9b commit 4ff3e8b

File tree

10 files changed

+29
-189
lines changed

10 files changed

+29
-189
lines changed

cmd/snapshot-tool/main.go

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -168,13 +168,6 @@ func loadClientsWithSnapshot(rawObjects *snapshot.RawKubernetesObjects) (*fake.C
168168
}
169169
}
170170

171-
for _, podDisruptionBudget := range rawObjects.PodDisruptionBudgets {
172-
_, err := kubeClient.PolicyV1().PodDisruptionBudgets(podDisruptionBudget.Namespace).Create(context.TODO(), podDisruptionBudget, v1.CreateOptions{})
173-
if err != nil {
174-
log.InfraLogger.Errorf("Failed to create pod disruption budget: %v", err)
175-
}
176-
}
177-
178171
for _, priorityClass := range rawObjects.PriorityClasses {
179172
_, err := kubeClient.SchedulingV1().PriorityClasses().Create(context.TODO(), priorityClass, v1.CreateOptions{})
180173
if err != nil {

deployments/kai-scheduler/templates/rbac/scheduler.yaml

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -61,14 +61,6 @@ rules:
6161
- get
6262
- list
6363
- watch
64-
- apiGroups:
65-
- policy
66-
resources:
67-
- poddisruptionbudgets
68-
verbs:
69-
- get
70-
- list
71-
- watch
7264
- apiGroups:
7365
- resource.k8s.io
7466
resources:

docs/plugins/snapshot.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ The snapshot plugin is a framework plugin that provides an HTTP endpoint to capt
1717
- Queues
1818
- PodGroups
1919
- BindRequests
20-
- PodDisruptionBudgets
2120
- PriorityClasses
2221
- ConfigMaps
2322
- PersistentVolumeClaims

pkg/scheduler/api/podgroup_info/job_info.go

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ import (
2727
"golang.org/x/exp/maps"
2828
"golang.org/x/exp/slices"
2929
v1 "k8s.io/api/core/v1"
30-
policyv1 "k8s.io/api/policy/v1"
3130
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
3231
"k8s.io/apimachinery/pkg/types"
3332
"k8s.io/utils/ptr"
@@ -88,9 +87,6 @@ type PodGroupInfo struct {
8887
PodGroup *enginev2alpha2.PodGroup
8988
PodGroupUID types.UID
9089

91-
// TODO(k82cn): keep backward compatibility, removed it when v1alpha1 finalized.
92-
PDB *policyv1.PodDisruptionBudget
93-
9490
StalenessInfo
9591

9692
schedulingConstraintsSignature common_info.SchedulingConstraintsSignature
@@ -176,17 +172,6 @@ func (podGroupInfo *PodGroupInfo) SetPodGroup(pg *enginev2alpha2.PodGroup) {
176172
podGroupInfo.Name, podGroupInfo.PodGroupUID)
177173
}
178174

179-
func (podGroupInfo *PodGroupInfo) SetPDB(pdb *policyv1.PodDisruptionBudget) {
180-
podGroupInfo.Name = pdb.Name
181-
if pdb.Spec.MinAvailable != nil {
182-
podGroupInfo.MinAvailable = pdb.Spec.MinAvailable.IntVal
183-
}
184-
podGroupInfo.Namespace = pdb.Namespace
185-
186-
podGroupInfo.CreationTimestamp = pdb.GetCreationTimestamp()
187-
podGroupInfo.PDB = pdb
188-
}
189-
190175
func (podGroupInfo *PodGroupInfo) addTaskIndex(ti *pod_info.PodInfo) {
191176
if _, found := podGroupInfo.PodStatusIndex[ti.Status]; !found {
192177
podGroupInfo.PodStatusIndex[ti.Status] = pod_info.PodsMap{}
@@ -408,7 +393,6 @@ func (podGroupInfo *PodGroupInfo) CloneWithTasks(tasks []*pod_info.PodInfo) *Pod
408393
JobFitErrors: make(enginev2alpha2.UnschedulableExplanations, 0),
409394
NodesFitErrors: make(map[common_info.PodID]*common_info.FitErrors),
410395

411-
PDB: podGroupInfo.PDB,
412396
PodGroup: podGroupInfo.PodGroup,
413397
PodGroupUID: podGroupInfo.PodGroupUID,
414398

pkg/scheduler/cache/cluster_info/cluster_info.go

Lines changed: 0 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,7 @@ import (
2424

2525
"github.com/pkg/errors"
2626
v1 "k8s.io/api/core/v1"
27-
"k8s.io/apimachinery/pkg/api/meta"
28-
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2927
"k8s.io/apimachinery/pkg/labels"
30-
"k8s.io/apimachinery/pkg/types"
3128
"k8s.io/client-go/informers"
3229
"k8s.io/client-go/tools/cache"
3330

@@ -335,11 +332,6 @@ func (c *ClusterInfo) snapshotPodGroups(
335332
result[common_info.PodGroupID(podGroup.Name)] = podGroupInfo
336333
}
337334

338-
err = c.updatePodDisruptionBudgets(result)
339-
if err != nil {
340-
return nil, err
341-
}
342-
343335
return result, nil
344336
}
345337

@@ -360,23 +352,6 @@ func (c *ClusterInfo) getPodInfo(
360352
return podInfo
361353
}
362354

363-
func (c *ClusterInfo) updatePodDisruptionBudgets(podGroups map[common_info.PodGroupID]*podgroup_info.PodGroupInfo) error {
364-
pdbs, err := c.dataLister.ListPodDisruptionBudgets()
365-
if err != nil {
366-
return err
367-
}
368-
for _, pdb := range pdbs {
369-
podGroupId := common_info.PodGroupID(getController(pdb))
370-
podGroup, found := podGroups[podGroupId]
371-
if !found {
372-
continue
373-
}
374-
podGroup.SetPDB(pdb)
375-
}
376-
377-
return nil
378-
}
379-
380355
func (c *ClusterInfo) setPodGroupWithIndex(podGroup *enginev2alpha2.PodGroup, podGroupInfo *podgroup_info.PodGroupInfo) {
381356
podGroupInfo.SetPodGroup(podGroup)
382357
}
@@ -509,17 +484,3 @@ func (c *ClusterInfo) isPodGroupUpForScheduler(podGroup *enginev2alpha2.PodGroup
509484

510485
return false
511486
}
512-
513-
func getController(obj interface{}) types.UID {
514-
accessor, err := meta.Accessor(obj)
515-
if err != nil {
516-
return ""
517-
}
518-
519-
controllerRef := metav1.GetControllerOf(accessor)
520-
if controllerRef != nil {
521-
return controllerRef.UID
522-
}
523-
524-
return ""
525-
}

pkg/scheduler/cache/cluster_info/cluster_info_test.go

Lines changed: 0 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import (
1212
"github.com/stretchr/testify/assert"
1313
"go.uber.org/mock/gomock"
1414
v1core "k8s.io/api/core/v1"
15-
policyv1 "k8s.io/api/policy/v1"
1615
v12 "k8s.io/api/scheduling/v1"
1716
storage "k8s.io/api/storage/v1"
1817
"k8s.io/apimachinery/pkg/api/resource"
@@ -827,43 +826,6 @@ func TestSnapshotPodGroups(t *testing.T) {
827826
},
828827
},
829828
},
830-
&policyv1.PodDisruptionBudget{
831-
ObjectMeta: v1.ObjectMeta{
832-
Name: "pdb-0",
833-
},
834-
},
835-
},
836-
results: []*podgroup_info.PodGroupInfo{
837-
{
838-
Name: "podGroup-0",
839-
},
840-
},
841-
},
842-
"WithPDB": {
843-
objs: []runtime.Object{
844-
&enginev2alpha2.PodGroup{
845-
ObjectMeta: v1.ObjectMeta{
846-
Name: "",
847-
UID: "ABC",
848-
},
849-
Spec: enginev2alpha2.PodGroupSpec{
850-
Queue: "queue-0",
851-
},
852-
},
853-
},
854-
kubeObjs: []runtime.Object{
855-
&v1core.Pod{
856-
ObjectMeta: v1.ObjectMeta{
857-
Annotations: map[string]string{
858-
commonconstants.PodGroupAnnotationForPod: "podGroup-0",
859-
},
860-
},
861-
},
862-
&policyv1.PodDisruptionBudget{
863-
ObjectMeta: v1.ObjectMeta{
864-
Name: "pdb-0",
865-
},
866-
},
867829
},
868830
results: []*podgroup_info.PodGroupInfo{
869831
{
@@ -891,11 +853,6 @@ func TestSnapshotPodGroups(t *testing.T) {
891853
},
892854
},
893855
},
894-
&policyv1.PodDisruptionBudget{
895-
ObjectMeta: v1.ObjectMeta{
896-
Name: "pdb-0",
897-
},
898-
},
899856
},
900857
results: []*podgroup_info.PodGroupInfo{},
901858
},
@@ -1755,17 +1712,6 @@ func TestSnapshotWithListerErrors(t *testing.T) {
17551712
mdl.EXPECT().ListPodByIndex(gomock.Any(), gomock.Any()).Return(nil, fmt.Errorf(successErrorMsg))
17561713
},
17571714
},
1758-
"listPodDisruptionBudgets": {
1759-
func(mdl *data_lister.MockDataLister) {
1760-
mdl.EXPECT().ListPods().Return([]*v1core.Pod{}, nil)
1761-
mdl.EXPECT().ListBindRequests().Return([]*schedulingv1alpha2.BindRequest{}, nil)
1762-
mdl.EXPECT().ListNodes().Return([]*v1core.Node{}, nil)
1763-
mdl.EXPECT().ListQueues().Return([]*enginev2.Queue{}, nil)
1764-
mdl.EXPECT().ListPriorityClasses().Return([]*v12.PriorityClass{}, nil)
1765-
mdl.EXPECT().ListPodGroups().Return([]*enginev2alpha2.PodGroup{}, nil)
1766-
mdl.EXPECT().ListPodDisruptionBudgets().Return(nil, fmt.Errorf(successErrorMsg))
1767-
},
1768-
},
17691715
"ListBindRequests": {
17701716
func(mdl *data_lister.MockDataLister) {
17711717
mdl.EXPECT().ListPods().Return([]*v1core.Pod{}, nil)

pkg/scheduler/cache/cluster_info/data_lister/data_lister_mock.go

Lines changed: 12 additions & 28 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/scheduler/cache/cluster_info/data_lister/interface.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ package data_lister
55

66
import (
77
v1 "k8s.io/api/core/v1"
8-
policyv1 "k8s.io/api/policy/v1"
98
scheduling "k8s.io/api/scheduling/v1"
109
storage "k8s.io/api/storage/v1"
1110
"sigs.k8s.io/kueue/apis/kueue/v1alpha1"
@@ -20,7 +19,6 @@ type DataLister interface {
2019
ListPodGroups() ([]*schedulingv2alpha2.PodGroup, error)
2120
ListNodes() ([]*v1.Node, error)
2221
ListQueues() ([]*schedulingv2.Queue, error)
23-
ListPodDisruptionBudgets() ([]*policyv1.PodDisruptionBudget, error)
2422
ListPriorityClasses() ([]*scheduling.PriorityClass, error)
2523
GetPriorityClassByName(name string) (*scheduling.PriorityClass, error)
2624
ListPodByIndex(index, value string) ([]interface{}, error)

pkg/scheduler/cache/cluster_info/data_lister/kubernetes_lister.go

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,11 @@ package data_lister
55

66
import (
77
v1 "k8s.io/api/core/v1"
8-
k8spolicyv1 "k8s.io/api/policy/v1"
98
v14 "k8s.io/api/scheduling/v1"
109
storage "k8s.io/api/storage/v1"
1110
"k8s.io/apimachinery/pkg/labels"
1211
"k8s.io/client-go/informers"
1312
listv1 "k8s.io/client-go/listers/core/v1"
14-
policyv1 "k8s.io/client-go/listers/policy/v1"
1513
schedv1 "k8s.io/client-go/listers/scheduling/v1"
1614
v12 "k8s.io/client-go/listers/storage/v1"
1715
"k8s.io/client-go/tools/cache"
@@ -35,7 +33,6 @@ type k8sLister struct {
3533
podLister listv1.PodLister
3634
nodeLister listv1.NodeLister
3735
queueLister schedlistv2.QueueLister
38-
pdbLister policyv1.PodDisruptionBudgetLister
3936
pcLister schedv1.PriorityClassLister
4037
cmLister listv1.ConfigMapLister
4138

@@ -64,7 +61,6 @@ func New(
6461
podLister: informerFactory.Core().V1().Pods().Lister(),
6562
nodeLister: informerFactory.Core().V1().Nodes().Lister(),
6663
queueLister: kubeAiSchedulerInformerFactory.Scheduling().V2().Queues().Lister(),
67-
pdbLister: informerFactory.Policy().V1().PodDisruptionBudgets().Lister(),
6864
pcLister: informerFactory.Scheduling().V1().PriorityClasses().Lister(),
6965
cmLister: informerFactory.Core().V1().ConfigMaps().Lister(),
7066

@@ -105,12 +101,6 @@ func (k *k8sLister) ListQueues() ([]*enginev2.Queue, error) {
105101
return k.queueLister.List(k.partitionSelector)
106102
}
107103

108-
// +kubebuilder:rbac:groups=policy,resources=poddisruptionbudgets,verbs=get;list;watch
109-
110-
func (k *k8sLister) ListPodDisruptionBudgets() ([]*k8spolicyv1.PodDisruptionBudget, error) {
111-
return k.pdbLister.List(labels.Everything())
112-
}
113-
114104
// +kubebuilder:rbac:groups="scheduling.k8s.io",resources=priorityclasses,verbs=get;list;watch
115105

116106
func (k *k8sLister) ListPriorityClasses() ([]*v14.PriorityClass, error) {

0 commit comments

Comments
 (0)