Skip to content

Commit

Permalink
abstract deschedulerPolicyConfigMap and deschedulerDeployment methods
Browse files Browse the repository at this point in the history
  • Loading branch information
fanhaouu committed Aug 22, 2024
1 parent b8ae339 commit 45e0968
Show file tree
Hide file tree
Showing 7 changed files with 45 additions and 21 deletions.
5 changes: 2 additions & 3 deletions test/e2e/e2e_duplicatepods_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -189,8 +189,7 @@ func TestRemoveDuplicates(t *testing.T) {
tc.removeDuplicatesArgs.Namespaces = &api.Namespaces{
Include: []string{testNamespace.Name},
}
tc.evictorArgs.MinPodAge = &metav1.Duration{Duration: 1 * time.Second}
deschedulerPolicyConfigMapObj, err := deschedulerPolicyConfigMap(removeDuplicatesPolicy(tc.removeDuplicatesArgs, tc.evictorArgs))
deschedulerPolicyConfigMapObj, err := deschedulerPolicyConfigMap(removeDuplicatesPolicy(tc.removeDuplicatesArgs, tc.evictorArgs), nil)
if err != nil {
t.Fatalf("Error creating %q CM: %v", deschedulerPolicyConfigMapObj.Name, err)
}
Expand All @@ -209,7 +208,7 @@ func TestRemoveDuplicates(t *testing.T) {
}
}()

deschedulerDeploymentObj := deschedulerDeployment(testNamespace.Name)
deschedulerDeploymentObj := deschedulerDeployment(testNamespace.Name, nil)
t.Logf("Creating descheduler deployment %v", deschedulerDeploymentObj.Name)
_, err = clientSet.AppsV1().Deployments(deschedulerDeploymentObj.Namespace).Create(ctx, deschedulerDeploymentObj, metav1.CreateOptions{})
if err != nil {
Expand Down
4 changes: 2 additions & 2 deletions test/e2e/e2e_failedpods_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ func TestFailedPods(t *testing.T) {
Include: []string{testNamespace.Name},
}

deschedulerPolicyConfigMapObj, err := deschedulerPolicyConfigMap(removeFailedPodsPolicy(tc.removeFailedPodsArgs, evictorArgs))
deschedulerPolicyConfigMapObj, err := deschedulerPolicyConfigMap(removeFailedPodsPolicy(tc.removeFailedPodsArgs, evictorArgs), nil)
if err != nil {
t.Fatalf("Error creating %q CM: %v", deschedulerPolicyConfigMapObj.Name, err)
}
Expand All @@ -164,7 +164,7 @@ func TestFailedPods(t *testing.T) {
}
}()

deschedulerDeploymentObj := deschedulerDeployment(testNamespace.Name)
deschedulerDeploymentObj := deschedulerDeployment(testNamespace.Name, nil)
t.Logf("Creating descheduler deployment %v", deschedulerDeploymentObj.Name)
_, err = clientSet.AppsV1().Deployments(deschedulerDeploymentObj.Namespace).Create(ctx, deschedulerDeploymentObj, metav1.CreateOptions{})
if err != nil {
Expand Down
28 changes: 21 additions & 7 deletions test/e2e/e2e_leaderelection_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -209,10 +209,10 @@ func startDeschedulerServer(t *testing.T, ctx context.Context, clientSet clients
EvictSystemCriticalPods: false,
IgnorePvcPods: false,
EvictFailedBarePods: false,
MinPodAge: &metav1.Duration{Duration: 1 * time.Second},
}
deschedulerPolicyConfigMapObj, err := deschedulerPolicyConfigMap(podlifetimePolicy(podLifeTimeArgs, evictorArgs))
deschedulerPolicyConfigMapObj.Name = fmt.Sprintf("%s-%s", deschedulerPolicyConfigMapObj.Name, testName)
deschedulerPolicyConfigMapObj, err := deschedulerPolicyConfigMap(podlifetimePolicy(podLifeTimeArgs, evictorArgs), func(cm *v1.ConfigMap) {
cm.Name = fmt.Sprintf("%s-%s", cm.Name, testName)
})
if err != nil {
t.Fatalf("Error creating %q CM: %v", deschedulerPolicyConfigMapObj.Name, err)
}
Expand All @@ -223,10 +223,24 @@ func startDeschedulerServer(t *testing.T, ctx context.Context, clientSet clients
t.Fatalf("Error creating %q CM: %v", deschedulerPolicyConfigMapObj.Name, err)
}

deschedulerDeploymentObj := deschedulerDeployment(testName)
deschedulerDeploymentObj.Name = fmt.Sprintf("%s-%s", deschedulerDeploymentObj.Name, testName)
args := deschedulerDeploymentObj.Spec.Template.Spec.Containers[0].Args
deschedulerDeploymentObj.Spec.Template.Spec.Containers[0].Args = append(args, "--leader-elect")
deschedulerDeploymentObj := deschedulerDeployment(testName, func(deployment *appsv1.Deployment) {
deployment.Name = fmt.Sprintf("%s-%s", deployment.Name, testName)
args := deployment.Spec.Template.Spec.Containers[0].Args
deployment.Spec.Template.Spec.Containers[0].Args = append(args, "--leader-elect")
deployment.Spec.Template.Spec.Volumes = []v1.Volume{
{
Name: "policy-volume",
VolumeSource: v1.VolumeSource{
ConfigMap: &v1.ConfigMapVolumeSource{
LocalObjectReference: v1.LocalObjectReference{
Name: deschedulerPolicyConfigMapObj.Name,
},
},
},
},
}
})

t.Logf("Creating descheduler deployment %v", deschedulerDeploymentObj.Name)
_, err = clientSet.AppsV1().Deployments(deschedulerDeploymentObj.Namespace).Create(ctx, deschedulerDeploymentObj, metav1.CreateOptions{})
if err != nil {
Expand Down
17 changes: 14 additions & 3 deletions test/e2e/e2e_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ func isClientRateLimiterError(err error) bool {
return strings.Contains(err.Error(), "client rate limiter")
}

func deschedulerPolicyConfigMap(policy *deschedulerapiv1alpha2.DeschedulerPolicy) (*v1.ConfigMap, error) {
func deschedulerPolicyConfigMap(policy *deschedulerapiv1alpha2.DeschedulerPolicy, apply func(cm *v1.ConfigMap)) (*v1.ConfigMap, error) {
cm := &v1.ConfigMap{
ObjectMeta: metav1.ObjectMeta{
Name: "descheduler-policy-configmap",
Expand All @@ -83,11 +83,16 @@ func deschedulerPolicyConfigMap(policy *deschedulerapiv1alpha2.DeschedulerPolicy
return nil, err
}
cm.Data = map[string]string{"policy.yaml": string(policyBytes)}

if apply != nil {
apply(cm)
}

return cm, nil
}

func deschedulerDeployment(testName string) *appsv1.Deployment {
return &appsv1.Deployment{
func deschedulerDeployment(testName string, apply func(deployment *appsv1.Deployment)) *appsv1.Deployment {
deployment := &appsv1.Deployment{
ObjectMeta: metav1.ObjectMeta{
Name: "descheduler",
Namespace: "kube-system",
Expand Down Expand Up @@ -174,6 +179,12 @@ func deschedulerDeployment(testName string) *appsv1.Deployment {
},
},
}

if apply != nil {
apply(deployment)
}

return deployment
}

func printPodLogs(ctx context.Context, t *testing.T, kubeClient clientset.Interface, podName string) {
Expand Down
4 changes: 2 additions & 2 deletions test/e2e/e2e_toomanyrestarts_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@ func TestTooManyRestarts(t *testing.T) {
Include: []string{testNamespace.Name},
}

deschedulerPolicyConfigMapObj, err := deschedulerPolicyConfigMap(tooManyRestartsPolicy(tc.restartsArgs, evictorArgs))
deschedulerPolicyConfigMapObj, err := deschedulerPolicyConfigMap(tooManyRestartsPolicy(tc.restartsArgs, evictorArgs), nil)
if err != nil {
t.Fatalf("Error creating %q CM: %v", deschedulerPolicyConfigMapObj.Name, err)
}
Expand All @@ -175,7 +175,7 @@ func TestTooManyRestarts(t *testing.T) {
}
}()

deschedulerDeploymentObj := deschedulerDeployment(testNamespace.Name)
deschedulerDeploymentObj := deschedulerDeployment(testNamespace.Name, nil)
t.Logf("Creating descheduler deployment %v", deschedulerDeploymentObj.Name)
_, err = clientSet.AppsV1().Deployments(deschedulerDeploymentObj.Namespace).Create(ctx, deschedulerDeploymentObj, metav1.CreateOptions{})
if err != nil {
Expand Down
4 changes: 2 additions & 2 deletions test/e2e/e2e_topologyspreadconstraint_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -220,7 +220,7 @@ func TestTopologySpreadConstraint(t *testing.T) {
Include: []string{testNamespace.Name},
},
}
deschedulerPolicyConfigMapObj, err := deschedulerPolicyConfigMap(topologySpreadConstraintPolicy(constraintArgs, evictorArgs))
deschedulerPolicyConfigMapObj, err := deschedulerPolicyConfigMap(topologySpreadConstraintPolicy(constraintArgs, evictorArgs), nil)
if err != nil {
t.Fatalf("Error creating %q CM: %v", deschedulerPolicyConfigMapObj.Name, err)
}
Expand All @@ -238,7 +238,7 @@ func TestTopologySpreadConstraint(t *testing.T) {
t.Fatalf("Unable to delete %q CM: %v", deschedulerPolicyConfigMapObj.Name, err)
}
}()
deschedulerDeploymentObj := deschedulerDeployment(testNamespace.Name)
deschedulerDeploymentObj := deschedulerDeployment(testNamespace.Name, nil)
t.Logf("Creating descheduler deployment %v", deschedulerDeploymentObj.Name)
_, err = clientSet.AppsV1().Deployments(deschedulerDeploymentObj.Namespace).Create(ctx, deschedulerDeploymentObj, metav1.CreateOptions{})
if err != nil {
Expand Down
4 changes: 2 additions & 2 deletions test/e2e/test_clientconnection_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ func TestClientConnectionConfiguration(t *testing.T) {
t.Errorf("Error during kubernetes client creation with %v", err)
}

deschedulerPolicyConfigMapObj, err := deschedulerPolicyConfigMap(&apiv1alpha2.DeschedulerPolicy{})
deschedulerPolicyConfigMapObj, err := deschedulerPolicyConfigMap(&apiv1alpha2.DeschedulerPolicy{}, nil)
if err != nil {
t.Fatalf("Error creating %q CM: %v", deschedulerPolicyConfigMapObj.Name, err)
}
Expand All @@ -43,7 +43,7 @@ func TestClientConnectionConfiguration(t *testing.T) {
}
}()

deschedulerDeploymentObj := deschedulerDeployment(testName)
deschedulerDeploymentObj := deschedulerDeployment(testName, nil)
t.Logf("Creating descheduler deployment %v", deschedulerDeploymentObj.Name)
_, err = clientSet.AppsV1().Deployments(deschedulerDeploymentObj.Namespace).Create(ctx, deschedulerDeploymentObj, metav1.CreateOptions{})
if err != nil {
Expand Down

0 comments on commit 45e0968

Please sign in to comment.