Merge pull request #5226 from mohamedawnallah/unifyAccessToClusterMembersinE2E

test/e2e: unify access to cluster members utilizing `framework.ClusterMembers()[i]`
This commit is contained in:
karmada-bot 2024-07-19 15:31:12 +08:00 committed by GitHub
commit 0cd96b4266
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
11 changed files with 146 additions and 114 deletions

View File

@ -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())

View File

@ -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

View File

@ -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

View File

@ -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{

View File

@ -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)
})

View File

@ -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 {

View File

@ -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() {

View File

@ -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() {

View File

@ -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())
})

View File

@ -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)
})

View File

@ -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{