diff --git a/test/e2e/aggregatedapi_test.go b/test/e2e/aggregatedapi_test.go index ddab012fe..010810b10 100644 --- a/test/e2e/aggregatedapi_test.go +++ b/test/e2e/aggregatedapi_test.go @@ -122,7 +122,7 @@ var _ = framework.SerialDescribe("Aggregated Kubernetes API Endpoint testing", f }) ginkgo.BeforeEach(func() { - member1, member2 = "member1", "member2" + member1, member2 = framework.ClusterNames()[0], framework.ClusterNames()[1] saName = fmt.Sprintf("tom-%s", rand.String(RandomStrLength)) saNamespace = testNamespace @@ -207,7 +207,7 @@ var _ = framework.SerialDescribe("Aggregated Kubernetes API Endpoint testing", f framework.RemoveClusterRoleBinding(clusterClient, tomClusterRoleBindingOnMember.Name) }) - ginkgo.It("tom access the member1 cluster api with and without right", func() { + ginkgo.It(fmt.Sprintf("tom access the %s cluster api with and without right", member1), func() { ginkgo.By(fmt.Sprintf("access the %s cluster `/api` path with right", member1), func() { gomega.Eventually(func(g gomega.Gomega) (int, error) { code, err := helper.DoRequest(fmt.Sprintf(karmadaHost+clusterProxy+"api", member1), tomToken) @@ -238,7 +238,7 @@ var _ = framework.SerialDescribe("Aggregated Kubernetes API Endpoint testing", f }) ginkgo.When(fmt.Sprintf("Serviceaccount(tom) access the %s cluster", member2), func() { - ginkgo.It("tom access the member2 cluster without right", func() { + ginkgo.It(fmt.Sprintf("tom access the %s cluster without right", member2), func() { ginkgo.By(fmt.Sprintf("access the %s cluster `/api` path without right", member2), func() { code, err := helper.DoRequest(fmt.Sprintf(karmadaHost+clusterProxy, member2), tomToken) gomega.Expect(err).ShouldNot(gomega.HaveOccurred()) diff --git a/test/e2e/clusteraffinities_test.go b/test/e2e/clusteraffinities_test.go index 9efb3729b..10d321d61 100644 --- a/test/e2e/clusteraffinities_test.go +++ b/test/e2e/clusteraffinities_test.go @@ -44,10 +44,13 @@ var _ = ginkgo.Describe("[ClusterAffinities] propagation testing", func() { var deployment *appsv1.Deployment var policy *policyv1alpha1.PropagationPolicy var member1LabelKey, member2LabelKey string + var member1, member2 string ginkgo.BeforeEach(func() { - member1LabelKey = "member1-" + rand.String(RandomStrLength) - member2LabelKey = "member2-" + rand.String(RandomStrLength) + member1 = framework.ClusterNames()[0] + member2 = framework.ClusterNames()[1] + member1LabelKey = fmt.Sprintf("%s-%s", member1, rand.String(RandomStrLength)) + member2LabelKey = fmt.Sprintf("%s-%s", member2, rand.String(RandomStrLength)) deployment = testhelper.NewDeployment(testNamespace, deploymentNamePrefix+rand.String(RandomStrLength)) policy = testhelper.NewPropagationPolicy(deployment.Namespace, deployment.Name, []policyv1alpha1.ResourceSelector{ @@ -72,17 +75,17 @@ var _ = ginkgo.Describe("[ClusterAffinities] propagation testing", func() { }, { AffinityName: "group4", - ClusterAffinity: policyv1alpha1.ClusterAffinity{ClusterNames: []string{"member1"}}, + ClusterAffinity: policyv1alpha1.ClusterAffinity{ClusterNames: []string{member1}}, }, }}) }) ginkgo.BeforeEach(func() { - framework.UpdateClusterLabels(karmadaClient, "member1", map[string]string{member1LabelKey: "ok"}) - framework.UpdateClusterLabels(karmadaClient, "member2", map[string]string{member2LabelKey: "ok"}) + framework.UpdateClusterLabels(karmadaClient, member1, map[string]string{member1LabelKey: "ok"}) + framework.UpdateClusterLabels(karmadaClient, member2, map[string]string{member2LabelKey: "ok"}) ginkgo.DeferCleanup(func() { - framework.DeleteClusterLabels(karmadaClient, "member1", map[string]string{member1LabelKey: ""}) - framework.DeleteClusterLabels(karmadaClient, "member2", map[string]string{member2LabelKey: ""}) + framework.DeleteClusterLabels(karmadaClient, member1, map[string]string{member1LabelKey: ""}) + framework.DeleteClusterLabels(karmadaClient, member2, map[string]string{member2LabelKey: ""}) }) }) @@ -97,29 +100,32 @@ var _ = ginkgo.Describe("[ClusterAffinities] propagation testing", func() { ginkgo.It("propagate deployment and then update the cluster label", func() { // 1. wait for deployment present on member1 cluster - framework.WaitDeploymentPresentOnClusterFitWith("member1", deployment.Namespace, deployment.Name, func(*appsv1.Deployment) bool { return true }) + framework.WaitDeploymentPresentOnClusterFitWith(member1, deployment.Namespace, deployment.Name, func(*appsv1.Deployment) bool { return true }) // 2. update member1 cluster label to make it's unmatched with the policy - framework.UpdateClusterLabels(karmadaClient, "member1", map[string]string{member1LabelKey: "not-ok"}) - framework.WaitDeploymentDisappearOnCluster("member1", deployment.Namespace, deployment.Name) + framework.UpdateClusterLabels(karmadaClient, member1, map[string]string{member1LabelKey: "not-ok"}) + framework.WaitDeploymentDisappearOnCluster(member1, deployment.Namespace, deployment.Name) // 3. wait for deployment present on member2 cluster - framework.WaitDeploymentPresentOnClusterFitWith("member2", deployment.Namespace, deployment.Name, func(*appsv1.Deployment) bool { return true }) + framework.WaitDeploymentPresentOnClusterFitWith(member2, deployment.Namespace, deployment.Name, func(*appsv1.Deployment) bool { return true }) // 4. update member2 cluster label to make it's unmatched with the policy - framework.UpdateClusterLabels(karmadaClient, "member2", map[string]string{member2LabelKey: "not-ok"}) - framework.WaitDeploymentDisappearOnCluster("member2", deployment.Namespace, deployment.Name) + framework.UpdateClusterLabels(karmadaClient, member2, map[string]string{member2LabelKey: "not-ok"}) + framework.WaitDeploymentDisappearOnCluster(member2, deployment.Namespace, deployment.Name) // 5. wait for deployment present on member1 cluster - framework.WaitDeploymentPresentOnClusterFitWith("member1", deployment.Namespace, deployment.Name, func(*appsv1.Deployment) bool { return true }) + framework.WaitDeploymentPresentOnClusterFitWith(member1, deployment.Namespace, deployment.Name, func(*appsv1.Deployment) bool { return true }) }) }) ginkgo.Context("schedule change from clusterAffinity to clusterAffinities", func() { var deployment *appsv1.Deployment var policy *policyv1alpha1.PropagationPolicy + var member1, member2 string ginkgo.BeforeEach(func() { + member1 = framework.ClusterNames()[0] + member2 = framework.ClusterNames()[1] deployment = testhelper.NewDeployment(testNamespace, deploymentNamePrefix+rand.String(RandomStrLength)) policy = testhelper.NewPropagationPolicy(deployment.Namespace, deployment.Name, []policyv1alpha1.ResourceSelector{ { @@ -128,7 +134,7 @@ var _ = ginkgo.Describe("[ClusterAffinities] propagation testing", func() { Name: deployment.Name, }, }, policyv1alpha1.Placement{ - ClusterAffinity: &policyv1alpha1.ClusterAffinity{ClusterNames: []string{"member1"}}, + ClusterAffinity: &policyv1alpha1.ClusterAffinity{ClusterNames: []string{member1}}, }) }) @@ -143,26 +149,29 @@ var _ = ginkgo.Describe("[ClusterAffinities] propagation testing", func() { ginkgo.It("propagate deployment and then update the cluster label", func() { // 1. wait for deployment present on member1 cluster - framework.WaitDeploymentPresentOnClusterFitWith("member1", deployment.Namespace, deployment.Name, func(*appsv1.Deployment) bool { return true }) + framework.WaitDeploymentPresentOnClusterFitWith(member1, deployment.Namespace, deployment.Name, func(*appsv1.Deployment) bool { return true }) // 2. update policy placement with clusterAffinities policy.Spec.Placement.ClusterAffinity = nil policy.Spec.Placement.ClusterAffinities = []policyv1alpha1.ClusterAffinityTerm{{ AffinityName: "group1", - ClusterAffinity: policyv1alpha1.ClusterAffinity{ClusterNames: []string{"member2"}}, + ClusterAffinity: policyv1alpha1.ClusterAffinity{ClusterNames: []string{member2}}, }} framework.UpdatePropagationPolicyWithSpec(karmadaClient, policy.Namespace, policy.Name, policy.Spec) // 3. wait for deployment present on member2 cluster - framework.WaitDeploymentPresentOnClusterFitWith("member2", deployment.Namespace, deployment.Name, func(*appsv1.Deployment) bool { return true }) + framework.WaitDeploymentPresentOnClusterFitWith(member2, deployment.Namespace, deployment.Name, func(*appsv1.Deployment) bool { return true }) }) }) ginkgo.Context("schedule change from clusterAffinities to clusterAffinity", func() { var deployment *appsv1.Deployment var policy *policyv1alpha1.PropagationPolicy + var member1, member2 string ginkgo.BeforeEach(func() { + member1 = framework.ClusterNames()[0] + member2 = framework.ClusterNames()[1] deployment = testhelper.NewDeployment(testNamespace, deploymentNamePrefix+rand.String(RandomStrLength)) policy = testhelper.NewPropagationPolicy(deployment.Namespace, deployment.Name, []policyv1alpha1.ResourceSelector{ { @@ -173,7 +182,7 @@ var _ = ginkgo.Describe("[ClusterAffinities] propagation testing", func() { }, policyv1alpha1.Placement{ ClusterAffinities: []policyv1alpha1.ClusterAffinityTerm{{ AffinityName: "group1", - ClusterAffinity: policyv1alpha1.ClusterAffinity{ClusterNames: []string{"member1"}}, + ClusterAffinity: policyv1alpha1.ClusterAffinity{ClusterNames: []string{member1}}, }}, }) }) @@ -189,15 +198,15 @@ var _ = ginkgo.Describe("[ClusterAffinities] propagation testing", func() { ginkgo.It("propagate deployment and then update the cluster label", func() { // 1. wait for deployment present on member1 cluster - framework.WaitDeploymentPresentOnClusterFitWith("member1", deployment.Namespace, deployment.Name, func(*appsv1.Deployment) bool { return true }) + framework.WaitDeploymentPresentOnClusterFitWith(member1, deployment.Namespace, deployment.Name, func(*appsv1.Deployment) bool { return true }) // 2. update policy placement with clusterAffinities - policy.Spec.Placement.ClusterAffinity = &policyv1alpha1.ClusterAffinity{ClusterNames: []string{"member2"}} + policy.Spec.Placement.ClusterAffinity = &policyv1alpha1.ClusterAffinity{ClusterNames: []string{member2}} policy.Spec.Placement.ClusterAffinities = nil framework.UpdatePropagationPolicyWithSpec(karmadaClient, policy.Namespace, policy.Name, policy.Spec) // 3. wait for deployment present on member2 cluster - framework.WaitDeploymentPresentOnClusterFitWith("member2", deployment.Namespace, deployment.Name, func(*appsv1.Deployment) bool { return true }) + framework.WaitDeploymentPresentOnClusterFitWith(member2, deployment.Namespace, deployment.Name, func(*appsv1.Deployment) bool { return true }) }) }) }) @@ -207,10 +216,13 @@ var _ = ginkgo.Describe("[ClusterAffinities] propagation testing", func() { var policy *policyv1alpha1.ClusterPropagationPolicy var clusterRole *rbacv1.ClusterRole var member1LabelKey, member2LabelKey string + var member1, member2 string ginkgo.BeforeEach(func() { - member1LabelKey = "member1-" + rand.String(RandomStrLength) - member2LabelKey = "member2-" + rand.String(RandomStrLength) + member1 = framework.ClusterNames()[0] + member2 = framework.ClusterNames()[1] + member1LabelKey = fmt.Sprintf("%s-%s", member1, rand.String(RandomStrLength)) + member2LabelKey = fmt.Sprintf("%s-%s", member2, rand.String(RandomStrLength)) clusterRole = testhelper.NewClusterRole(clusterRoleNamePrefix+rand.String(RandomStrLength), nil) policy = testhelper.NewClusterPropagationPolicy(clusterRole.Name, []policyv1alpha1.ResourceSelector{ @@ -235,17 +247,17 @@ var _ = ginkgo.Describe("[ClusterAffinities] propagation testing", func() { }, { AffinityName: "group4", - ClusterAffinity: policyv1alpha1.ClusterAffinity{ClusterNames: []string{"member1"}}, + ClusterAffinity: policyv1alpha1.ClusterAffinity{ClusterNames: []string{member1}}, }, }}) }) ginkgo.BeforeEach(func() { - framework.UpdateClusterLabels(karmadaClient, "member1", map[string]string{member1LabelKey: "ok"}) - framework.UpdateClusterLabels(karmadaClient, "member2", map[string]string{member2LabelKey: "ok"}) + framework.UpdateClusterLabels(karmadaClient, member1, map[string]string{member1LabelKey: "ok"}) + framework.UpdateClusterLabels(karmadaClient, member2, map[string]string{member2LabelKey: "ok"}) ginkgo.DeferCleanup(func() { - framework.DeleteClusterLabels(karmadaClient, "member1", map[string]string{member1LabelKey: ""}) - framework.DeleteClusterLabels(karmadaClient, "member2", map[string]string{member2LabelKey: ""}) + framework.DeleteClusterLabels(karmadaClient, member1, map[string]string{member1LabelKey: ""}) + framework.DeleteClusterLabels(karmadaClient, member2, map[string]string{member2LabelKey: ""}) }) }) @@ -260,29 +272,32 @@ var _ = ginkgo.Describe("[ClusterAffinities] propagation testing", func() { ginkgo.It("propagate clusterRole and then update the cluster label", func() { // 1. wait for clusterRole present on member1 cluster - framework.WaitClusterRolePresentOnClusterFitWith("member1", clusterRole.Name, func(*rbacv1.ClusterRole) bool { return true }) + framework.WaitClusterRolePresentOnClusterFitWith(member1, clusterRole.Name, func(*rbacv1.ClusterRole) bool { return true }) // 2. update member1 cluster label to make it's unmatched with the policy - framework.UpdateClusterLabels(karmadaClient, "member1", map[string]string{member1LabelKey: "not-ok"}) - framework.WaitClusterRoleDisappearOnCluster("member1", clusterRole.Name) + framework.UpdateClusterLabels(karmadaClient, member1, map[string]string{member1LabelKey: "not-ok"}) + framework.WaitClusterRoleDisappearOnCluster(member1, clusterRole.Name) // 3. wait for clusterRole present on member2 cluster - framework.WaitClusterRolePresentOnClusterFitWith("member2", clusterRole.Name, func(*rbacv1.ClusterRole) bool { return true }) + framework.WaitClusterRolePresentOnClusterFitWith(member2, clusterRole.Name, func(*rbacv1.ClusterRole) bool { return true }) // 4. update member2 cluster label to make it's unmatched with the policy - framework.UpdateClusterLabels(karmadaClient, "member2", map[string]string{member2LabelKey: "not-ok"}) - framework.WaitClusterRoleDisappearOnCluster("member2", clusterRole.Name) + framework.UpdateClusterLabels(karmadaClient, member2, map[string]string{member2LabelKey: "not-ok"}) + framework.WaitClusterRoleDisappearOnCluster(member2, clusterRole.Name) // 5. wait for deployment present on member1 cluster - framework.WaitClusterRolePresentOnClusterFitWith("member1", clusterRole.Name, func(*rbacv1.ClusterRole) bool { return true }) + framework.WaitClusterRolePresentOnClusterFitWith(member1, clusterRole.Name, func(*rbacv1.ClusterRole) bool { return true }) }) }) ginkgo.Context("schedule change from clusterAffinity to clusterAffinities", func() { var policy *policyv1alpha1.ClusterPropagationPolicy var clusterRole *rbacv1.ClusterRole + var member1, member2 string ginkgo.BeforeEach(func() { + member1 = framework.ClusterNames()[0] + member2 = framework.ClusterNames()[1] clusterRole = testhelper.NewClusterRole(clusterRoleNamePrefix+rand.String(RandomStrLength), nil) policy = testhelper.NewClusterPropagationPolicy(clusterRole.Name, []policyv1alpha1.ResourceSelector{ { @@ -291,7 +306,7 @@ var _ = ginkgo.Describe("[ClusterAffinities] propagation testing", func() { Name: clusterRole.Name, }, }, policyv1alpha1.Placement{ - ClusterAffinity: &policyv1alpha1.ClusterAffinity{ClusterNames: []string{"member1"}}, + ClusterAffinity: &policyv1alpha1.ClusterAffinity{ClusterNames: []string{member1}}, }) }) @@ -306,26 +321,29 @@ var _ = ginkgo.Describe("[ClusterAffinities] propagation testing", func() { ginkgo.It("propagate clusterRole and then update the cluster label", func() { // 1. wait for clusterRole present on member1 cluster - framework.WaitClusterRolePresentOnClusterFitWith("member1", clusterRole.Name, func(*rbacv1.ClusterRole) bool { return true }) + framework.WaitClusterRolePresentOnClusterFitWith(member1, clusterRole.Name, func(*rbacv1.ClusterRole) bool { return true }) // 2. update policy placement with clusterAffinities policy.Spec.Placement.ClusterAffinity = nil policy.Spec.Placement.ClusterAffinities = []policyv1alpha1.ClusterAffinityTerm{{ AffinityName: "group1", - ClusterAffinity: policyv1alpha1.ClusterAffinity{ClusterNames: []string{"member2"}}, + ClusterAffinity: policyv1alpha1.ClusterAffinity{ClusterNames: []string{member2}}, }} framework.UpdateClusterPropagationPolicyWithSpec(karmadaClient, policy.Name, policy.Spec) // 3. wait for clusterRole present on member2 cluster - framework.WaitClusterRolePresentOnClusterFitWith("member2", clusterRole.Name, func(*rbacv1.ClusterRole) bool { return true }) + framework.WaitClusterRolePresentOnClusterFitWith(member2, clusterRole.Name, func(*rbacv1.ClusterRole) bool { return true }) }) }) ginkgo.Context("schedule change from clusterAffinities to clusterAffinity", func() { var policy *policyv1alpha1.ClusterPropagationPolicy var clusterRole *rbacv1.ClusterRole + var member1, member2 string ginkgo.BeforeEach(func() { + member1 = framework.ClusterNames()[0] + member2 = framework.ClusterNames()[1] clusterRole = testhelper.NewClusterRole(clusterRoleNamePrefix+rand.String(RandomStrLength), nil) policy = testhelper.NewClusterPropagationPolicy(clusterRole.Name, []policyv1alpha1.ResourceSelector{ { @@ -336,7 +354,7 @@ var _ = ginkgo.Describe("[ClusterAffinities] propagation testing", func() { }, policyv1alpha1.Placement{ ClusterAffinities: []policyv1alpha1.ClusterAffinityTerm{{ AffinityName: "group1", - ClusterAffinity: policyv1alpha1.ClusterAffinity{ClusterNames: []string{"member1"}}, + ClusterAffinity: policyv1alpha1.ClusterAffinity{ClusterNames: []string{member1}}, }}, }) }) @@ -352,15 +370,15 @@ var _ = ginkgo.Describe("[ClusterAffinities] propagation testing", func() { ginkgo.It("propagate clusterRole and then update the cluster label", func() { // 1. wait for clusterRole present on member1 cluster - framework.WaitClusterRolePresentOnClusterFitWith("member1", clusterRole.Name, func(*rbacv1.ClusterRole) bool { return true }) + framework.WaitClusterRolePresentOnClusterFitWith(member1, clusterRole.Name, func(*rbacv1.ClusterRole) bool { return true }) // 2. update policy placement with clusterAffinities - policy.Spec.Placement.ClusterAffinity = &policyv1alpha1.ClusterAffinity{ClusterNames: []string{"member2"}} + policy.Spec.Placement.ClusterAffinity = &policyv1alpha1.ClusterAffinity{ClusterNames: []string{member2}} policy.Spec.Placement.ClusterAffinities = nil framework.UpdateClusterPropagationPolicyWithSpec(karmadaClient, policy.Name, policy.Spec) // 3. wait for clusterRole present on member2 cluster - framework.WaitClusterRolePresentOnClusterFitWith("member2", clusterRole.Name, func(*rbacv1.ClusterRole) bool { return true }) + framework.WaitClusterRolePresentOnClusterFitWith(member2, clusterRole.Name, func(*rbacv1.ClusterRole) bool { return true }) }) }) }) @@ -368,8 +386,11 @@ var _ = ginkgo.Describe("[ClusterAffinities] propagation testing", func() { framework.SerialWhen("[Failover] member cluster become unReachable", func() { var deployment *appsv1.Deployment var policy *policyv1alpha1.PropagationPolicy + var member1, member2 string ginkgo.BeforeEach(func() { + member1 = framework.ClusterNames()[0] + member2 = framework.ClusterNames()[1] deployment = testhelper.NewDeployment(testNamespace, deploymentNamePrefix+rand.String(RandomStrLength)) policy = testhelper.NewPropagationPolicy(deployment.Namespace, deployment.Name, []policyv1alpha1.ResourceSelector{ @@ -386,11 +407,11 @@ var _ = ginkgo.Describe("[ClusterAffinities] propagation testing", func() { ClusterAffinities: []policyv1alpha1.ClusterAffinityTerm{ { AffinityName: "group1", - ClusterAffinity: policyv1alpha1.ClusterAffinity{ClusterNames: []string{"member1"}}, + ClusterAffinity: policyv1alpha1.ClusterAffinity{ClusterNames: []string{member1}}, }, { AffinityName: "group2", - ClusterAffinity: policyv1alpha1.ClusterAffinity{ClusterNames: []string{"member2"}}, + ClusterAffinity: policyv1alpha1.ClusterAffinity{ClusterNames: []string{member2}}, }}}) }) @@ -406,30 +427,30 @@ var _ = ginkgo.Describe("[ClusterAffinities] propagation testing", func() { ginkgo.It("deployment failover testing", func() { // 1. set cluster member1 condition status to false ginkgo.By("set cluster member1 condition status to false", func() { - err := disableCluster(controlPlaneClient, "member1") + err := disableCluster(controlPlaneClient, member1) gomega.Expect(err).ShouldNot(gomega.HaveOccurred()) - framework.WaitClusterFitWith(controlPlaneClient, "member1", func(cluster *clusterv1alpha1.Cluster) bool { + framework.WaitClusterFitWith(controlPlaneClient, member1, func(cluster *clusterv1alpha1.Cluster) bool { return helper.TaintExists(cluster.Spec.Taints, controllercluster.NotReadyTaintTemplate) }) }) // 2. wait for deployment present on member2 cluster - framework.WaitDeploymentPresentOnClusterFitWith("member2", deployment.Namespace, deployment.Name, func(*appsv1.Deployment) bool { return true }) + framework.WaitDeploymentPresentOnClusterFitWith(member2, deployment.Namespace, deployment.Name, func(*appsv1.Deployment) bool { return true }) // 3. recover not ready cluster ginkgo.By("recover not ready cluster", func() { - originalAPIEndpoint := getClusterAPIEndpoint("member1") - err := recoverCluster(controlPlaneClient, "member1", originalAPIEndpoint) + originalAPIEndpoint := getClusterAPIEndpoint(member1) + err := recoverCluster(controlPlaneClient, member1, originalAPIEndpoint) gomega.Expect(err).ShouldNot(gomega.HaveOccurred()) err = wait.PollUntilContextTimeout(context.TODO(), pollInterval, pollTimeout, true, func(_ context.Context) (done bool, err error) { - currentCluster, err := util.GetCluster(controlPlaneClient, "member1") + currentCluster, err := util.GetCluster(controlPlaneClient, member1) if err != nil { return false, err } if !helper.TaintExists(currentCluster.Spec.Taints, controllercluster.NotReadyTaintTemplate) { - fmt.Printf("cluster %s recovered\n", "member1") + fmt.Printf("cluster %s recovered\n", member1) return true, nil } return false, nil diff --git a/test/e2e/dependenciesdistributor_test.go b/test/e2e/dependenciesdistributor_test.go index 48b088dad..55ee5d62a 100644 --- a/test/e2e/dependenciesdistributor_test.go +++ b/test/e2e/dependenciesdistributor_test.go @@ -38,8 +38,8 @@ var _ = ginkgo.Describe("[DependenciesDistributor] automatically propagate relev var policy *policyv1alpha1.PropagationPolicy ginkgo.BeforeEach(func() { - initClusterNames = []string{"member1"} - updateClusterNames = []string{"member2"} + initClusterNames = []string{framework.ClusterNames()[0]} + updateClusterNames = []string{framework.ClusterNames()[1]} policyName = deploymentNamePrefix + rand.String(RandomStrLength) deploymentName = policyName @@ -351,8 +351,8 @@ var _ = ginkgo.Describe("[DependenciesDistributor] automatically propagate relev var policy *policyv1alpha1.ClusterPropagationPolicy ginkgo.BeforeEach(func() { - initClusterNames = []string{"member1"} - updateClusterNames = []string{"member2"} + initClusterNames = []string{framework.ClusterNames()[0]} + updateClusterNames = []string{framework.ClusterNames()[1]} policyName = deploymentNamePrefix + rand.String(RandomStrLength) deploymentName = policyName diff --git a/test/e2e/fieldselector_test.go b/test/e2e/fieldselector_test.go index 7546cefac..7667a8a48 100644 --- a/test/e2e/fieldselector_test.go +++ b/test/e2e/fieldselector_test.go @@ -56,7 +56,7 @@ var _ = ginkgo.Describe("propagation with fieldSelector testing", func() { originalClusterRegionInfo = make(map[string]string) desiredProvider = []string{"huaweicloud"} undesiredRegion = []string{"cn-north-1"} - desiredScheduleResult = "member1" + desiredScheduleResult = framework.ClusterNames()[0] // desire to schedule to clusters of huaweicloud but not in cn-north-1 region filedSelector = &policyv1alpha1.FieldSelector{ diff --git a/test/e2e/karmadactl_test.go b/test/e2e/karmadactl_test.go index 08192663d..a4b2c4d8e 100644 --- a/test/e2e/karmadactl_test.go +++ b/test/e2e/karmadactl_test.go @@ -60,7 +60,7 @@ var _ = ginkgo.Describe("Karmadactl promote testing", func() { var member1Client kubernetes.Interface ginkgo.BeforeEach(func() { - member1 = "member1" + member1 = framework.ClusterNames()[0] member1Client = framework.GetClusterClient(member1) defaultConfigFlags := genericclioptions.NewConfigFlags(true).WithDeprecatedPasswordFlag().WithDiscoveryBurst(300).WithDiscoveryQPS(50.0) defaultConfigFlags.Context = &karmadaContext @@ -616,7 +616,7 @@ var _ = ginkgo.Describe("Karmadactl logs testing", func() { var member1Client kubernetes.Interface ginkgo.BeforeEach(func() { - member1 = "member1" + member1 = framework.ClusterNames()[0] member1Client = framework.GetClusterClient(member1) }) @@ -794,7 +794,7 @@ var _ = ginkgo.Describe("Karmadactl get testing", func() { var member1Client kubernetes.Interface ginkgo.BeforeEach(func() { - member1 = "member1" + member1 = framework.ClusterNames()[0] member1Client = framework.GetClusterClient(member1) }) @@ -898,7 +898,7 @@ var _ = ginkgo.Describe("Karmadactl describe testing", func() { var member1Client kubernetes.Interface ginkgo.BeforeEach(func() { - member1 = "member1" + member1 = framework.ClusterNames()[0] member1Client = framework.GetClusterClient(member1) }) diff --git a/test/e2e/lazy_activation_policy_test.go b/test/e2e/lazy_activation_policy_test.go index 78faff647..439ea5832 100644 --- a/test/e2e/lazy_activation_policy_test.go +++ b/test/e2e/lazy_activation_policy_test.go @@ -17,6 +17,7 @@ limitations under the License. package e2e import ( + "fmt" "time" "github.com/onsi/ginkgo/v2" @@ -113,7 +114,7 @@ var _ = ginkgo.Describe("Lazy activation policy testing", func() { waitDeploymentPresentOnCluster(originalCluster, namespace, deploymentName) }) - ginkgo.By("step 2: after policy updated (cluster=member2, remove lazy activationPreference field), the propagation of deployment changed", func() { + ginkgo.By(fmt.Sprintf("step 2: after policy updated (cluster=%s, remove lazy activationPreference field), the propagation of deployment changed", modifiedCluster), func() { // 1. remove lazy activationPreference field policy.Spec.ActivationPreference = "" // 2. update policy placement with clusterAffinities @@ -137,7 +138,7 @@ var _ = ginkgo.Describe("Lazy activation policy testing", func() { waitDeploymentPresentOnCluster(originalCluster, namespace, deploymentName) }) - ginkgo.By("step 2: after policy updated (cluster=member2, activationPreference=lazy), the propagation of deployment unchanged", func() { + ginkgo.By(fmt.Sprintf("step 2: after policy updated (cluster=%s, activationPreference=lazy), the propagation of deployment unchanged", modifiedCluster), func() { // 1. activationPreference=lazy policy.Spec.ActivationPreference = policyv1alpha1.LazyActivation // 2. update policy placement with clusterAffinities @@ -166,7 +167,7 @@ var _ = ginkgo.Describe("Lazy activation policy testing", func() { waitDeploymentPresentOnCluster(originalCluster, namespace, deploymentName) }) - ginkgo.By("step 2: create PP2 (match nginx, cluster=member2, not lazy, priority=2, preemption=true)", func() { + ginkgo.By(fmt.Sprintf("step 2: create PP2 (match nginx, cluster=%s, not lazy, priority=2, preemption=true)", modifiedCluster), func() { policyHigherPriority.Spec.ActivationPreference = "" // remove lazy activationPreference field framework.CreatePropagationPolicy(karmadaClient, policyHigherPriority) waitDeploymentPresentOnCluster(modifiedCluster, namespace, deploymentName) @@ -184,7 +185,7 @@ var _ = ginkgo.Describe("Lazy activation policy testing", func() { waitDeploymentPresentOnCluster(originalCluster, namespace, deploymentName) }) - ginkgo.By("step 2: create PP2 (match nginx, cluster=member2, lazy, priority=2, preemption=true)", func() { + ginkgo.By(fmt.Sprintf("step 2: create PP2 (match nginx, cluster=%s, lazy, priority=2, preemption=true)", modifiedCluster), func() { framework.CreatePropagationPolicy(karmadaClient, policyHigherPriority) // 1. annotation of policy name changed framework.WaitDeploymentFitWith(kubeClient, namespace, deploymentName, func(deployment *appsv1.Deployment) bool { diff --git a/test/e2e/mcs_test.go b/test/e2e/mcs_test.go index ee9e0c233..219dc9dbb 100644 --- a/test/e2e/mcs_test.go +++ b/test/e2e/mcs_test.go @@ -46,8 +46,7 @@ import ( ) var ( - serviceExportClusterName = "member1" - serviceImportClusterName = "member2" + serviceExportClusterName, serviceImportClusterName string serviceExportResource = "serviceexports" serviceImportResource = "serviceimports" @@ -205,6 +204,8 @@ var _ = ginkgo.Describe("Multi-Cluster Service testing", func() { var demoService corev1.Service ginkgo.BeforeEach(func() { + serviceExportClusterName = framework.ClusterNames()[0] + serviceImportClusterName = framework.ClusterNames()[1] serviceExportPolicyName = fmt.Sprintf("%s-%s-policy", serviceExportResource, rand.String(RandomStrLength)) serviceImportPolicyName = fmt.Sprintf("%s-%s-policy", serviceImportResource, rand.String(RandomStrLength)) @@ -529,7 +530,7 @@ var _ = ginkgo.Describe("CrossCluster MultiClusterService testing", func() { }) // case 1: ProviderClusters field is [member1], ConsumerClusters field is [member2] - ginkgo.Context("ProviderClusters field is [member1], ConsumerClusters field is [member2]", func() { + ginkgo.Context(fmt.Sprintf("ProviderClusters field is [%s], ConsumerClusters field is [%s]", member1Name, member2Name), func() { var mcs *networkingv1alpha1.MultiClusterService ginkgo.BeforeEach(func() { @@ -562,7 +563,7 @@ var _ = ginkgo.Describe("CrossCluster MultiClusterService testing", func() { }) // case 2: ProviderClusters field is [member1,member2], ConsumerClusters field is [member2] - ginkgo.Context("ProviderClusters field is [member1,member2], ConsumerClusters field is [member2]", func() { + ginkgo.Context(fmt.Sprintf("ProviderClusters field is [%s,%s], ConsumerClusters field is [%s]", member1Name, member2Name, member2Name), func() { var mcs *networkingv1alpha1.MultiClusterService ginkgo.BeforeEach(func() { @@ -642,7 +643,7 @@ var _ = ginkgo.Describe("CrossCluster MultiClusterService testing", func() { }) // case 4: ProviderClusters field is empty, ConsumerClusters field is [member2] - ginkgo.Context("ProviderClusters field is empty, ConsumerClusters field is [member2]", func() { + ginkgo.Context(fmt.Sprintf("ProviderClusters field is empty, ConsumerClusters field is [%s]", member2Name), func() { var mcs *networkingv1alpha1.MultiClusterService ginkgo.BeforeEach(func() { @@ -675,7 +676,7 @@ var _ = ginkgo.Describe("CrossCluster MultiClusterService testing", func() { }) // case 5: ProviderClusters field is [member1], ConsumerClusters field is empty - ginkgo.Context("ProviderClusters field is [member1], ConsumerClusters field is empty", func() { + ginkgo.Context(fmt.Sprintf("ProviderClusters field is [%s], ConsumerClusters field is empty", member1Name), func() { var mcs *networkingv1alpha1.MultiClusterService ginkgo.BeforeEach(func() { diff --git a/test/e2e/preemption_test.go b/test/e2e/preemption_test.go index 0f7837691..93c193fc0 100755 --- a/test/e2e/preemption_test.go +++ b/test/e2e/preemption_test.go @@ -29,8 +29,12 @@ import ( ) var _ = ginkgo.Describe("[Preemption] propagation policy preemption testing", func() { - preemptingClusterName := "member2" - preemptedClusterName := "member1" + var preemptingClusterName, preemptedClusterName string + + ginkgo.BeforeEach(func() { + preemptingClusterName = framework.ClusterNames()[1] + preemptedClusterName = framework.ClusterNames()[0] + }) ginkgo.When("[PropagationPolicy Preemption] PropagationPolicy preempts another (Cluster)PropagationPolicy", func() { ginkgo.Context("High-priority PropagationPolicy preempts low-priority PropagationPolicy", func() { diff --git a/test/e2e/rescheduling_test.go b/test/e2e/rescheduling_test.go index ed965adcc..3002b9e09 100644 --- a/test/e2e/rescheduling_test.go +++ b/test/e2e/rescheduling_test.go @@ -269,7 +269,7 @@ var _ = ginkgo.Describe("[cluster joined] reschedule testing", func() { ginkgo.Context("testing clusterAffinity of the policy", func() { ginkgo.BeforeEach(func() { - initClusterNames = []string{"member1", "member2", newClusterName} + initClusterNames = []string{framework.ClusterNames()[0], framework.ClusterNames()[1], newClusterName} policyNamespace = testNamespace policyName = deploymentNamePrefix + rand.String(RandomStrLength) deploymentNamespace = testNamespace @@ -329,7 +329,7 @@ var _ = ginkgo.Describe("[cluster joined] reschedule testing", func() { gomega.Eventually(func(gomega.Gomega) bool { targetClusterNames := framework.ExtractTargetClustersFrom(controlPlaneClient, deployment) - return testhelper.IsExclude("member3", targetClusterNames) + return testhelper.IsExclude(framework.ClusterNames()[2], targetClusterNames) }, pollTimeout, pollInterval).Should(gomega.BeTrue()) }) diff --git a/test/e2e/search_test.go b/test/e2e/search_test.go index 37c05a53f..68d8f6d7c 100644 --- a/test/e2e/search_test.go +++ b/test/e2e/search_test.go @@ -50,13 +50,9 @@ import ( ) var _ = ginkgo.Describe("[karmada-search] karmada search testing", ginkgo.Ordered, func() { - var member1 = "member1" - var member2 = "member2" - - var member1NodeName = "member1-control-plane" - var member2NodeName = "member2-control-plane" - var member1PodName = "etcd-member1-control-plane" - var member2PodName = "etcd-member2-control-plane" + var member1, member2 string + var member1NodeName, member2NodeName string + var member1PodName, member2PodName string var existsDeploymentName = "coredns" var existsServiceName = "kubernetes" var existsDaemonsetName = "kube-proxy" @@ -84,6 +80,11 @@ var _ = ginkgo.Describe("[karmada-search] karmada search testing", ginkgo.Ordere member1, member2 = pushModeClusters[0], pushModeClusters[1] ginkgo.By(fmt.Sprintf("test on %v and %v", member1, member2)) + member1NodeName = fmt.Sprintf("%s-control-plane", member1) + member2NodeName = fmt.Sprintf("%s-control-plane", member2) + member1PodName = fmt.Sprintf("etcd-%s-control-plane", member1) + member2PodName = fmt.Sprintf("etcd-%s-control-plane", member2) + // clean ResourceRegistries before test gomega.Expect(karmadaClient.SearchV1alpha1().ResourceRegistries().DeleteCollection(context.TODO(), metav1.DeleteOptions{}, metav1.ListOptions{})).Should(gomega.Succeed()) }) @@ -98,7 +99,7 @@ var _ = ginkgo.Describe("[karmada-search] karmada search testing", ginkgo.Ordere // use deployment, node, pod as search object ginkgo.Describe("create ResourceRegistry testings", func() { // use deployment as search object - ginkgo.Context("caching cluster member1", ginkgo.Ordered, func() { + ginkgo.Context(fmt.Sprintf("caching cluster %s", member1), ginkgo.Ordered, func() { var rrName string var rr *searchv1alpha1.ResourceRegistry var m1DmName, m2DmName string @@ -108,13 +109,13 @@ var _ = ginkgo.Describe("[karmada-search] karmada search testing", ginkgo.Ordere ginkgo.BeforeAll(func() { member1Client = framework.GetClusterClient(member1) gomega.Expect(member1Client).ShouldNot(gomega.BeNil()) - m1DmName = "rr-member1-deployment-" + rand.String(RandomStrLength) + m1DmName = fmt.Sprintf("rr-%s-deployment-%s", member1, rand.String(RandomStrLength)) m1Dm = testhelper.NewDeployment(testNamespace, m1DmName) framework.CreateDeployment(member1Client, m1Dm) member2Client = framework.GetClusterClient(member2) gomega.Expect(member2Client).ShouldNot(gomega.BeNil()) - m2DmName = "rr-member2-deployment-" + rand.String(RandomStrLength) + m2DmName = fmt.Sprintf("rr-%s-deployment-%s", member2, rand.String(RandomStrLength)) m2Dm = testhelper.NewDeployment(testNamespace, m2DmName) framework.CreateDeployment(member2Client, m2Dm) @@ -144,19 +145,19 @@ var _ = ginkgo.Describe("[karmada-search] karmada search testing", ginkgo.Ordere framework.RemoveResourceRegistry(karmadaClient, rrName) }) - ginkgo.It("[member1 deployments] should be searchable", func() { + ginkgo.It(fmt.Sprintf("[%s deployments] should be searchable", member1), func() { searchObject(pathAllDeployments, existsDeploymentName, true) }) - ginkgo.It("[member2 deployments] should be not searchable", func() { + ginkgo.It(fmt.Sprintf("[%s deployments] should be not searchable", member2), func() { searchObject(pathAllDeployments, m2DmName, false) }) - ginkgo.It("[member1 deployments namespace] should be searchable", func() { + ginkgo.It(fmt.Sprintf("[%s deployments namespace] should be searchable", member1), func() { searchObject(fmt.Sprintf(pathNSDeploymentsFmt, testNamespace), m1DmName, true) }) - ginkgo.It("[member2 deployments namespace] should be not searchable", func() { + ginkgo.It(fmt.Sprintf("[%s deployments namespace] should be not searchable", member2), func() { searchObject(fmt.Sprintf(pathNSDeploymentsFmt, testNamespace), m2DmName, false) }) @@ -166,7 +167,7 @@ var _ = ginkgo.Describe("[karmada-search] karmada search testing", ginkgo.Ordere }) // use node as search object - ginkgo.Context("caching cluster member1 & member2", ginkgo.Ordered, func() { + ginkgo.Context(fmt.Sprintf("caching cluster %s & %s", member1, member2), ginkgo.Ordered, func() { var rrName string var rr *searchv1alpha1.ResourceRegistry @@ -195,11 +196,11 @@ var _ = ginkgo.Describe("[karmada-search] karmada search testing", ginkgo.Ordere framework.RemoveResourceRegistry(karmadaClient, rrName) }) - ginkgo.It("[member1 nodes] should be searchable", func() { + ginkgo.It(fmt.Sprintf("[%s nodes] should be searchable", member1), func() { searchObject(pathAllNodes, member1NodeName, true) }) - ginkgo.It("[member2 nodes] should be searchable", func() { + ginkgo.It(fmt.Sprintf("[%s nodes] should be searchable", member2), func() { searchObject(pathAllNodes, member2NodeName, true) }) }) @@ -256,11 +257,11 @@ var _ = ginkgo.Describe("[karmada-search] karmada search testing", ginkgo.Ordere framework.RemoveResourceRegistry(karmadaClient, rr2Name) }) - ginkgo.It("[member1 pods] should be searchable", func() { + ginkgo.It(fmt.Sprintf("[%s pods] should be searchable", member1), func() { searchObject(pathAllPods, member1PodName, true) }) - ginkgo.It("[member2 pods] should be searchable", func() { + ginkgo.It(fmt.Sprintf("[%s pods] should be searchable", member2), func() { searchObject(pathAllPods, member2PodName, true) }) }) @@ -576,9 +577,9 @@ var _ = ginkgo.Describe("[karmada-search] karmada search testing", ginkgo.Ordere ginkgo.It("could list nodes", func() { fromM1 := framework.GetResourceNames(m1Dynamic.Resource(nodeGVR)) - ginkgo.By("list nodes from member1: " + strings.Join(sets.List(fromM1), ",")) + ginkgo.By(fmt.Sprintf("list nodes from %s: %s", member1, strings.Join(sets.List(fromM1), ","))) fromM2 := framework.GetResourceNames(m2Dynamic.Resource(nodeGVR)) - ginkgo.By("list nodes from member2: " + strings.Join(sets.List(fromM2), ",")) + ginkgo.By(fmt.Sprintf("list nodes from %s: %s", member2, strings.Join(sets.List(fromM2), ","))) fromMembers := sets.New[string]().Union(fromM1).Union(fromM2) var proxyList *corev1.NodeList @@ -612,11 +613,11 @@ var _ = ginkgo.Describe("[karmada-search] karmada search testing", ginkgo.Ordere ginkgo.It("could chunk list nodes", func() { fromM1, err := m1Client.CoreV1().Nodes().List(context.TODO(), metav1.ListOptions{}) gomega.Expect(err).ShouldNot(gomega.HaveOccurred()) - ginkgo.By(fmt.Sprintf("list %v nodes from member1", len(fromM1.Items))) + ginkgo.By(fmt.Sprintf("list %v nodes from %s", len(fromM1.Items), member1)) fromM2, err := m2Client.CoreV1().Nodes().List(context.TODO(), metav1.ListOptions{}) gomega.Expect(err).ShouldNot(gomega.HaveOccurred()) - ginkgo.By(fmt.Sprintf("list %v nodes from member2", len(fromM2.Items))) + ginkgo.By(fmt.Sprintf("list %v nodes from %s", len(fromM2.Items), member2)) total := len(fromM1.Items) + len(fromM2.Items) if total < 2 { @@ -726,11 +727,6 @@ var _ = ginkgo.Describe("[karmada-search] karmada search testing", ginkgo.Ordere // test when cluster joined, updated, karmada will reconcile search cache var _ = framework.SerialDescribe("reconcile ResourceRegistry when clusters joined, updated", func() { - var member1 = "member1" - var member2 = "member2" - - var member1PodName = "etcd-member1-control-plane" - var member2PodName = "etcd-member2-control-plane" var existsDeploymentName = "coredns" var pathPrefix = "/apis/search.karmada.io/v1alpha1/search/cache/" @@ -786,6 +782,7 @@ var _ = framework.SerialDescribe("reconcile ResourceRegistry when clusters joine }, }, } + // create a ResourceRegistry with a non joined cluster name ginkgo.By(fmt.Sprintf("create ResourceRegistry %s with a non joined cluster name %v and resource selector %v", rrName, clusterName, resourceSelector), func() { framework.CreateResourceRegistry(karmadaClient, rr) @@ -837,12 +834,14 @@ var _ = framework.SerialDescribe("reconcile ResourceRegistry when clusters joine ginkgo.Context("when cluster updated", func() { var ( - rrName string - rr *searchv1alpha1.ResourceRegistry - labelKey string - labelValue string - labelSelector *metav1.LabelSelector - resourceSelector searchv1alpha1.ResourceSelector + rrName string + rr *searchv1alpha1.ResourceRegistry + labelKey string + labelValue string + labelSelector *metav1.LabelSelector + resourceSelector searchv1alpha1.ResourceSelector + member1, member2 string + member1PodName, member2PodName string ) ginkgo.BeforeEach(func() { @@ -875,6 +874,12 @@ var _ = framework.SerialDescribe("reconcile ResourceRegistry when clusters joine }, }, } + + member1 = framework.ClusterNames()[0] + member2 = framework.ClusterNames()[1] + member1PodName = fmt.Sprintf("etcd-%s-control-plane", member1) + member2PodName = fmt.Sprintf("etcd-%s-control-plane", member2) + ginkgo.By(fmt.Sprintf("create ResourceRegistry %s with label selector %v and resource selector %v", rrName, labelSelector, resourceSelector), func() { framework.CreateResourceRegistry(karmadaClient, rr) }) diff --git a/test/e2e/tainttoleration_test.go b/test/e2e/tainttoleration_test.go index e8ca940a3..0190ada2b 100644 --- a/test/e2e/tainttoleration_test.go +++ b/test/e2e/tainttoleration_test.go @@ -51,7 +51,7 @@ var _ = framework.SerialDescribe("propagation with taint and toleration testing" deploymentName = policyName deployment = helper.NewDeployment(deploymentNamespace, deploymentName) tolerationKey = "cluster-toleration.karmada.io" - tolerationValue = "member1" + tolerationValue = framework.ClusterNames()[0] // set clusterTolerations to tolerate taints in member1. clusterTolerations = []corev1.Toleration{