Skip to content

Commit

Permalink
resolve the issue with lease operations in e2e_leaderelection_test
Browse files Browse the repository at this point in the history
  • Loading branch information
fanhaouu committed Aug 22, 2024
1 parent 20fcb33 commit 9ba1c55
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 2 deletions.
5 changes: 4 additions & 1 deletion kubernetes/base/rbac.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,13 @@ rules:
- apiGroups: ["scheduling.k8s.io"]
resources: ["priorityclasses"]
verbs: ["get", "watch", "list"]
- apiGroups: ["coordination.k8s.io"]
resources: ["leases"]
verbs: ["create"]
- apiGroups: ["coordination.k8s.io"]
resources: ["leases"]
resourceNames: ["descheduler"]
verbs: ["get", "patch", "delete","create", "update"]
verbs: ["get", "patch", "delete"]
---
apiVersion: v1
kind: ServiceAccount
Expand Down
14 changes: 13 additions & 1 deletion test/e2e/e2e_leaderelection_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ import (

appsv1 "k8s.io/api/apps/v1"
v1 "k8s.io/api/core/v1"
apierrors "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/labels"
"k8s.io/apimachinery/pkg/runtime"
Expand Down Expand Up @@ -124,6 +125,15 @@ func TestLeaderElection(t *testing.T) {
waitForPodsRunning(ctx, t, clientSet, deployment2.Labels, 5, deployment2.Namespace)
podListBOrg := getCurrentPodNames(t, ctx, clientSet, ns2)

// Delete the descheduler lease
err = clientSet.CoordinationV1().Leases("kube-system").Delete(ctx, "descheduler", metav1.DeleteOptions{})
if err != nil {
if !apierrors.IsNotFound(err) {
t.Fatalf("Unable to remove kube-system/descheduler lease: %v", err)
}
}
t.Logf("Removed kube-system/descheduler lease")

t.Log("Starting deschedulers")
pod1Name, deploy1, cm1 := startDeschedulerServer(t, ctx, clientSet, ns1)
time.Sleep(1 * time.Second)
Expand All @@ -150,6 +160,8 @@ func TestLeaderElection(t *testing.T) {
t.Fatalf("Unable to delete %q CM: %v", cm.Name, err)
}
}

clientSet.CoordinationV1().Leases("kube-system").Delete(ctx, "descheduler", metav1.DeleteOptions{})
}()

// wait for a while so all the pods are 5 seconds older
Expand Down Expand Up @@ -226,7 +238,7 @@ func startDeschedulerServer(t *testing.T, ctx context.Context, clientSet clients
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.Containers[0].Args = append(args, "--leader-elect", "--leader-elect-retry-period", "1s")
deployment.Spec.Template.Spec.Volumes = []v1.Volume{
{
Name: "policy-volume",
Expand Down

0 comments on commit 9ba1c55

Please sign in to comment.