e2e: Fix the occasional failure of mcs e2e

Signed-off-by: jwcesign <jwcesign@gmail.com>
This commit is contained in:
jwcesign 2023-12-04 11:23:48 +08:00
parent 5b391e7535
commit 0beb460387
1 changed files with 192 additions and 182 deletions

View File

@ -74,17 +74,6 @@ var _ = ginkgo.Describe("[karmada-search] karmada search testing", ginkgo.Ordere
var pathNSDeploymentsFmt = pathPrefix + "apis/apps/v1/namespaces/%s/deployments" var pathNSDeploymentsFmt = pathPrefix + "apis/apps/v1/namespaces/%s/deployments"
// var pathWithLabel = pathPrefix + "apis/apps/v1/namespaces/kube-system/deployments?labelSelector=k8s-app=kube-dns" // var pathWithLabel = pathPrefix + "apis/apps/v1/namespaces/kube-system/deployments?labelSelector=k8s-app=kube-dns"
// var pollTimeout = 30 * time.Second
var searchObject = func(path, target string, exists bool) {
gomega.Eventually(func(g gomega.Gomega) (bool, error) {
res := karmadaClient.SearchV1alpha1().RESTClient().Get().AbsPath(path).Do(context.TODO())
g.Expect(res.Error()).ShouldNot(gomega.HaveOccurred())
raw, err := res.Raw()
g.Expect(err).ShouldNot(gomega.HaveOccurred())
return strings.Contains(string(raw), target), nil
}, pollTimeout, pollInterval).Should(gomega.Equal(exists))
}
ginkgo.BeforeAll(func() { ginkgo.BeforeAll(func() {
// get clusters' name // get clusters' name
pushModeClusters := framework.ClusterNamesWithSyncMode(clusterv1alpha1.Push) pushModeClusters := framework.ClusterNamesWithSyncMode(clusterv1alpha1.Push)
@ -733,9 +722,21 @@ 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/"
var pathAllPods = pathPrefix + "api/v1/pods"
var pathAllDeployments = pathPrefix + "apis/apps/v1/deployments"
// test when cluster joined, updated, karmada will reconcile search cache
ginkgo.Describe("reconcile ResourceRegistry when clusters joined, updated", ginkgo.Ordered, func() {
ginkgo.Context("when cluster joined", func() { ginkgo.Context("when cluster joined", func() {
var ( var (
clusterName string clusterName string
@ -750,7 +751,7 @@ var _ = ginkgo.Describe("[karmada-search] karmada search testing", ginkgo.Ordere
resourceSelector searchv1alpha1.ResourceSelector resourceSelector searchv1alpha1.ResourceSelector
) )
ginkgo.BeforeAll(func() { ginkgo.BeforeEach(func() {
clusterName = "member-e2e-" + rand.String(RandomStrLength) clusterName = "member-e2e-" + rand.String(RandomStrLength)
homeDir = os.Getenv("HOME") homeDir = os.Getenv("HOME")
kubeConfigPath = fmt.Sprintf("%s/.kube/%s.config", homeDir, clusterName) kubeConfigPath = fmt.Sprintf("%s/.kube/%s.config", homeDir, clusterName)
@ -791,7 +792,7 @@ var _ = ginkgo.Describe("[karmada-search] karmada search testing", ginkgo.Ordere
}) })
}) })
ginkgo.AfterAll(func() { ginkgo.AfterEach(func() {
framework.RemoveResourceRegistry(karmadaClient, rrName) framework.RemoveResourceRegistry(karmadaClient, rrName)
ginkgo.By(fmt.Sprintf("Deleting clusters: %s", clusterName), func() { ginkgo.By(fmt.Sprintf("Deleting clusters: %s", clusterName), func() {
@ -844,7 +845,7 @@ var _ = ginkgo.Describe("[karmada-search] karmada search testing", ginkgo.Ordere
resourceSelector searchv1alpha1.ResourceSelector resourceSelector searchv1alpha1.ResourceSelector
) )
ginkgo.BeforeAll(func() { ginkgo.BeforeEach(func() {
// create a ResourceRegistry with label selector // create a ResourceRegistry with label selector
rrName = resourceRegistryPrefix + rand.String(RandomStrLength) rrName = resourceRegistryPrefix + rand.String(RandomStrLength)
labelKey = "karmada-cluster.k8s.some.com/managed" labelKey = "karmada-cluster.k8s.some.com/managed"
@ -879,7 +880,7 @@ var _ = ginkgo.Describe("[karmada-search] karmada search testing", ginkgo.Ordere
}) })
}) })
ginkgo.AfterAll(func() { ginkgo.AfterEach(func() {
framework.RemoveResourceRegistry(karmadaClient, rrName) framework.RemoveResourceRegistry(karmadaClient, rrName)
}) })
@ -921,5 +922,14 @@ var _ = ginkgo.Describe("[karmada-search] karmada search testing", ginkgo.Ordere
searchObject(pathAllPods, member1PodName, false) searchObject(pathAllPods, member1PodName, false)
}) })
}) })
})
}) })
func searchObject(path, target string, exists bool) {
gomega.Eventually(func(g gomega.Gomega) (bool, error) {
res := karmadaClient.SearchV1alpha1().RESTClient().Get().AbsPath(path).Do(context.TODO())
g.Expect(res.Error()).ShouldNot(gomega.HaveOccurred())
raw, err := res.Raw()
g.Expect(err).ShouldNot(gomega.HaveOccurred())
return strings.Contains(string(raw), target), nil
}, pollTimeout, pollInterval).Should(gomega.Equal(exists))
}