Skip to content

Commit 58fe8ea

Browse files
committed
wait clustermanager is applied
Signed-off-by: Zhiwei Yin <[email protected]>
1 parent 6cf0f79 commit 58fe8ea

8 files changed

+45
-10
lines changed

test/e2e/clusteradm/addon_create_test.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ package clusteradme2e
44
import (
55
"context"
66
"fmt"
7+
"open-cluster-management.io/clusteradm/test/e2e/util"
78
"time"
89

910
"github.com/onsi/ginkgo/v2"
@@ -35,6 +36,8 @@ var _ = ginkgo.Describe("test clusteradm with addon create", func() {
3536
)
3637
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "clusteradm init error")
3738

39+
util.WaitClusterManagerApplied(operatorClient)
40+
3841
ginkgo.By("managedcluster1 join hub")
3942
err = e2e.Clusteradm().Join(
4043
"--context", e2e.Cluster().ManagedCluster1().Context(),

test/e2e/clusteradm/init_test.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ var _ = ginkgo.Describe("test clusteradm with bootstrap token in singleton mode"
3333
cm, err := operatorClient.OperatorV1().ClusterManagers().Get(context.TODO(), "cluster-manager", metav1.GetOptions{})
3434
gomega.Expect(err).NotTo(gomega.HaveOccurred())
3535

36+
util.WaitClusterManagerApplied(operatorClient)
37+
3638
// 2 featureGates: DefaultClusterSet and ResourceCleanup
3739
gomega.Expect(len(cm.Spec.RegistrationConfiguration.FeatureGates)).Should(gomega.Equal(2))
3840

test/e2e/clusteradm/joinhubscenario_annotate_test.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ var _ = ginkgo.Describe("test clusteradm join with annotations", func() {
3030
)
3131
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "clusteradm init error")
3232

33+
util.WaitClusterManagerApplied(operatorClient)
34+
3335
ginkgo.By("managedcluster1 join hub with annotations")
3436
err = e2e.Clusteradm().Join(
3537
"--context", e2e.Cluster().ManagedCluster1().Context(),

test/e2e/clusteradm/joinhubscenario_bootstraptoken_singleton_test.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ var _ = ginkgo.Describe("test clusteradm with bootstrap token in singleton mode"
2828
)
2929
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "clusteradm init error")
3030

31+
util.WaitClusterManagerApplied(operatorClient)
32+
3133
ginkgo.By("managedcluster1 join hub")
3234
err = e2e.Clusteradm().Join(
3335
"--context", e2e.Cluster().ManagedCluster1().Context(),

test/e2e/clusteradm/joinhubscenario_bootstrsptoken_test.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ package clusteradme2e
44
import (
55
"github.com/onsi/ginkgo/v2"
66
"github.com/onsi/gomega"
7+
"open-cluster-management.io/clusteradm/test/e2e/util"
78
)
89

910
var _ = ginkgo.Describe("test clusteradm with bootstrap token", func() {
@@ -26,6 +27,8 @@ var _ = ginkgo.Describe("test clusteradm with bootstrap token", func() {
2627
)
2728
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "clusteradm init error")
2829

30+
util.WaitClusterManagerApplied(operatorClient)
31+
2932
ginkgo.By("managedcluster1 join hub")
3033
err = e2e.Clusteradm().Join(
3134
"--context", e2e.Cluster().ManagedCluster1().Context(),

test/e2e/clusteradm/joinhubscenario_sa_test.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ package clusteradme2e
44
import (
55
"github.com/onsi/ginkgo/v2"
66
"github.com/onsi/gomega"
7+
"open-cluster-management.io/clusteradm/test/e2e/util"
78
)
89

910
var _ = ginkgo.Describe("test clusteradm with service account", func() {
@@ -25,6 +26,8 @@ var _ = ginkgo.Describe("test clusteradm with service account", func() {
2526
)
2627
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "clusteradm init error")
2728

29+
util.WaitClusterManagerApplied(operatorClient)
30+
2831
ginkgo.By("managedcluster1 join hub")
2932
err = e2e.Clusteradm().Join(
3033
"--context", e2e.Cluster().ManagedCluster1().Context(),

test/e2e/clusteradm/joinhubscenario_timeout_test.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ package clusteradme2e
44
import (
55
"github.com/onsi/ginkgo/v2"
66
"github.com/onsi/gomega"
7+
"open-cluster-management.io/clusteradm/test/e2e/util"
78
)
89

910
var _ = ginkgo.Describe("test clusteradm with timeout", func() {
@@ -25,6 +26,8 @@ var _ = ginkgo.Describe("test clusteradm with timeout", func() {
2526
)
2627
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "clusteradm init error")
2728

29+
util.WaitClusterManagerApplied(operatorClient)
30+
2831
ginkgo.By("managedcluster1 join hub")
2932
err = e2e.Clusteradm().Join(
3033
"--context", e2e.Cluster().ManagedCluster1().Context(),

test/e2e/util/helper.go

Lines changed: 27 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,19 @@ import (
88
"os"
99
"time"
1010

11-
"k8s.io/apimachinery/pkg/api/meta"
12-
clusterapiv1 "open-cluster-management.io/api/cluster/v1"
13-
"open-cluster-management.io/clusteradm/pkg/config"
14-
11+
"github.com/onsi/gomega"
1512
"k8s.io/apimachinery/pkg/api/errors"
13+
"k8s.io/apimachinery/pkg/api/meta"
1614
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1715
"k8s.io/apimachinery/pkg/util/wait"
1816
"k8s.io/client-go/kubernetes"
1917
"k8s.io/client-go/rest"
2018
"k8s.io/client-go/tools/clientcmd"
2119
clusterclient "open-cluster-management.io/api/client/cluster/clientset/versioned"
20+
operatorclient "open-cluster-management.io/api/client/operator/clientset/versioned"
21+
clusterapiv1 "open-cluster-management.io/api/cluster/v1"
22+
operatorv1 "open-cluster-management.io/api/operator/v1"
23+
"open-cluster-management.io/clusteradm/pkg/config"
2224
)
2325

2426
// WaitNamespaceDeleted receive a kubeconfigpath, a context name and a namespace name,
@@ -104,22 +106,24 @@ func WaitClustersDeleted(restcfg *rest.Config) error {
104106
return err
105107
}
106108

107-
return wait.PollUntilContextCancel(context.TODO(), 1*time.Second, true, func(ctx context.Context) (bool, error) {
109+
gomega.Eventually(func() error {
108110
clusterList, err := clientset.ClusterV1().ManagedClusters().List(context.TODO(), metav1.ListOptions{})
109111
if errors.IsNotFound(err) || len(clusterList.Items) == 0 {
110-
return true, nil
112+
return nil
111113
}
112114
if err != nil {
113-
return false, err
115+
return err
114116
}
115117
for _, mcl := range clusterList.Items {
116118
err = clientset.ClusterV1().ManagedClusters().Delete(context.TODO(), mcl.Name, metav1.DeleteOptions{})
117119
if err != nil {
118-
return false, err
120+
return err
119121
}
120122
}
121-
return false, nil
122-
})
123+
return fmt.Errorf("wait all clusters are deleted")
124+
}, time.Second*120, time.Second*2).Should(gomega.Succeed())
125+
126+
return nil
123127
}
124128

125129
// buildConfigFromFlags build rest config for specified context in the kubeconfigfile.
@@ -153,3 +157,16 @@ func NewTestImagePullCredentialFile(fileName string) string {
153157
func CleanupTestImagePullCredentialFile(fileName string) {
154158
_ = os.Remove(fileName)
155159
}
160+
161+
func WaitClusterManagerApplied(operatorClient operatorclient.Interface) {
162+
gomega.Eventually(func() error {
163+
cm, err := operatorClient.OperatorV1().ClusterManagers().Get(context.TODO(), "cluster-manager", metav1.GetOptions{})
164+
if err != nil {
165+
return err
166+
}
167+
if meta.IsStatusConditionTrue(cm.Status.Conditions, operatorv1.ConditionClusterManagerApplied) {
168+
return nil
169+
}
170+
return fmt.Errorf("wait the cluster manager applied condition to be true")
171+
}, time.Second*60, time.Second*2).Should(gomega.Succeed())
172+
}

0 commit comments

Comments
 (0)