@@ -27,15 +27,17 @@ import (
2727 appsv1 "k8s.io/api/apps/v1"
2828 corev1 "k8s.io/api/core/v1"
2929 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
30+ "k8s.io/utils/ptr"
3031 operatorv1 "sigs.k8s.io/cluster-api-operator/api/v1alpha1"
32+ . "sigs.k8s.io/cluster-api-operator/test/framework"
33+ "sigs.k8s.io/cluster-api/test/framework"
3134 "sigs.k8s.io/controller-runtime/pkg/client"
3235 "sigs.k8s.io/yaml"
3336)
3437
3538var _ = Describe ("Install Core Provider in an air-gapped environment" , func () {
3639 It ("should successfully create config maps with Core Provider manifests" , func () {
37- k8sclient := bootstrapClusterProxy .GetClient ()
38-
40+ bootstrapCluster := bootstrapClusterProxy .GetClient ()
3941 configMaps := []corev1.ConfigMap {}
4042
4143 for _ , fileName := range []string {"core-cluster-api-v1.4.2.yaml" , "core-cluster-api-v1.4.3.yaml" } {
@@ -51,12 +53,12 @@ var _ = Describe("Install Core Provider in an air-gapped environment", func() {
5153
5254 By ("Applying core provider manifests to the cluster" )
5355 for _ , cm := range configMaps {
54- Expect (k8sclient .Create (ctx , & cm )).To (Succeed ())
56+ Expect (bootstrapCluster .Create (ctx , & cm )).To (Succeed ())
5557 }
5658 })
5759
5860 It ("should successfully create a CoreProvider from a config map" , func () {
59- k8sclient := bootstrapClusterProxy .GetClient ()
61+ bootstrapCluster := bootstrapClusterProxy .GetClient ()
6062 coreProvider := & operatorv1.CoreProvider {
6163 ObjectMeta : metav1.ObjectMeta {
6264 Name : coreProviderName ,
@@ -76,187 +78,102 @@ var _ = Describe("Install Core Provider in an air-gapped environment", func() {
7678 },
7779 }
7880
79- Expect (k8sclient .Create (ctx , coreProvider )).To (Succeed ())
81+ Expect (bootstrapCluster .Create (ctx , coreProvider )).To (Succeed ())
8082
8183 By ("Waiting for the core provider deployment to be ready" )
82- Eventually (func () bool {
83- isReady , err := waitForDeployment (k8sclient , ctx , coreProviderDeploymentName )
84- if err != nil {
85- return false
86- }
87- return isReady
88- }, timeout ).Should (Equal (true ))
84+ framework .WaitForDeploymentsAvailable (ctx , framework.WaitForDeploymentsAvailableInput {
85+ Getter : bootstrapClusterProxy .GetClient (),
86+ Deployment : & appsv1.Deployment {ObjectMeta : metav1.ObjectMeta {Name : coreProviderDeploymentName , Namespace : operatorNamespace }},
87+ }, e2eConfig .GetIntervals (bootstrapClusterProxy .GetName (), "wait-controllers" )... )
8988
9089 By ("Waiting for core provider to be ready" )
91- Eventually (func () bool {
92- coreProvider := & operatorv1.CoreProvider {}
93- key := client.ObjectKey {Namespace : operatorNamespace , Name : coreProviderName }
94- if err := k8sclient .Get (ctx , key , coreProvider ); err != nil {
95- return false
96- }
97-
98- for _ , c := range coreProvider .Status .Conditions {
99- if c .Type == operatorv1 .ProviderInstalledCondition && c .Status == corev1 .ConditionTrue {
100- return true
101- }
102- }
103- return false
104- }, timeout ).Should (Equal (true ))
90+ WaitFor (ctx , For (coreProvider ).In (bootstrapCluster ).ToSatisfy (
91+ HaveStatusCondition (& coreProvider .Status .Conditions , operatorv1 .ProviderInstalledCondition ),
92+ ), e2eConfig .GetIntervals (bootstrapClusterProxy .GetName (), "wait-controllers" )... )
10593
10694 By ("Waiting for status.IntalledVersion to be set" )
107- Eventually (func () bool {
108- coreProvider := & operatorv1.CoreProvider {}
109- key := client.ObjectKey {Namespace : operatorNamespace , Name : coreProviderName }
110- if err := k8sclient .Get (ctx , key , coreProvider ); err != nil {
111- return false
112- }
113-
114- if coreProvider .Status .InstalledVersion != nil && * coreProvider .Status .InstalledVersion == coreProvider .Spec .Version {
115- return true
116- }
117- return false
118- }, timeout ).Should (Equal (true ))
95+ WaitFor (ctx , For (coreProvider ).In (bootstrapCluster ).ToSatisfy (func () bool {
96+ return ptr .Equal (coreProvider .Status .InstalledVersion , ptr .To (coreProvider .Spec .Version ))
97+ }), e2eConfig .GetIntervals (bootstrapClusterProxy .GetName (), "wait-controllers" )... )
11998 })
12099
121100 It ("should successfully downgrade a CoreProvider (latest -> v1.4.2)" , func () {
122- k8sclient := bootstrapClusterProxy .GetClient ()
101+ bootstrapCluster := bootstrapClusterProxy .GetClient ()
123102 coreProvider := & operatorv1.CoreProvider {}
124103 key := client.ObjectKey {Namespace : operatorNamespace , Name : coreProviderName }
125- Expect (k8sclient .Get (ctx , key , coreProvider )).To (Succeed ())
104+ Expect (bootstrapCluster .Get (ctx , key , coreProvider )).To (Succeed ())
126105
127106 coreProvider .Spec .Version = previousCAPIVersion
128107
129- Expect (k8sclient .Update (ctx , coreProvider )).To (Succeed ())
108+ Expect (bootstrapCluster .Update (ctx , coreProvider )).To (Succeed ())
130109
131110 By ("Waiting for the core provider deployment to be ready" )
132- Eventually (func () bool {
133- isReady , err := waitForDeployment (k8sclient , ctx , coreProviderDeploymentName )
134- if err != nil {
135- return false
136- }
137- return isReady
138- }, timeout ).Should (Equal (true ))
111+ framework .WaitForDeploymentsAvailable (ctx , framework.WaitForDeploymentsAvailableInput {
112+ Getter : bootstrapClusterProxy .GetClient (),
113+ Deployment : & appsv1.Deployment {ObjectMeta : metav1.ObjectMeta {Name : coreProviderDeploymentName , Namespace : operatorNamespace }},
114+ }, e2eConfig .GetIntervals (bootstrapClusterProxy .GetName (), "wait-controllers" )... )
139115
140116 By ("Waiting for core provider to be ready" )
141- Eventually (func () bool {
142- coreProvider := & operatorv1.CoreProvider {}
143- key := client.ObjectKey {Namespace : operatorNamespace , Name : coreProviderName }
144- if err := k8sclient .Get (ctx , key , coreProvider ); err != nil {
145- return false
146- }
147-
148- for _ , c := range coreProvider .Status .Conditions {
149- if c .Type == operatorv1 .ProviderInstalledCondition && c .Status == corev1 .ConditionTrue {
150- return true
151- }
152- }
153- return false
154- }, timeout ).Should (Equal (true ))
117+ WaitFor (ctx , For (coreProvider ).In (bootstrapCluster ).ToSatisfy (
118+ HaveStatusCondition (& coreProvider .Status .Conditions , operatorv1 .ProviderInstalledCondition ),
119+ ), e2eConfig .GetIntervals (bootstrapClusterProxy .GetName (), "wait-controllers" )... )
155120
156121 By ("Waiting for status.IntalledVersion to be set" )
157- Eventually (func () bool {
158- coreProvider := & operatorv1.CoreProvider {}
159- key := client.ObjectKey {Namespace : operatorNamespace , Name : coreProviderName }
160- if err := k8sclient .Get (ctx , key , coreProvider ); err != nil {
161- return false
162- }
163-
164- if coreProvider .Status .InstalledVersion != nil && * coreProvider .Status .InstalledVersion == previousCAPIVersion {
165- return true
166- }
167- return false
168- }, timeout ).Should (Equal (true ))
122+ WaitFor (ctx , For (coreProvider ).In (bootstrapCluster ).ToSatisfy (func () bool {
123+ return ptr .Equal (coreProvider .Status .InstalledVersion , ptr .To (previousCAPIVersion ))
124+ }), e2eConfig .GetIntervals (bootstrapClusterProxy .GetName (), "wait-controllers" )... )
169125 })
170126
171127 It ("should successfully upgrade a CoreProvider (v1.4.2 -> latest)" , func () {
172- k8sclient := bootstrapClusterProxy .GetClient ()
128+ bootstrapCluster := bootstrapClusterProxy .GetClient ()
173129 coreProvider := & operatorv1.CoreProvider {}
174130 key := client.ObjectKey {Namespace : operatorNamespace , Name : coreProviderName }
175- Expect (k8sclient .Get (ctx , key , coreProvider )).To (Succeed ())
131+ Expect (bootstrapCluster .Get (ctx , key , coreProvider )).To (Succeed ())
176132
177133 coreProvider .Spec .Version = ""
178134
179- Expect (k8sclient .Update (ctx , coreProvider )).To (Succeed ())
135+ Expect (bootstrapCluster .Update (ctx , coreProvider )).To (Succeed ())
180136
181137 By ("Waiting for the core provider deployment to be ready" )
182- Eventually (func () bool {
183- isReady , err := waitForDeployment (k8sclient , ctx , coreProviderDeploymentName )
184- if err != nil {
185- return false
186- }
187- return isReady
188- }, timeout ).Should (Equal (true ))
138+ framework .WaitForDeploymentsAvailable (ctx , framework.WaitForDeploymentsAvailableInput {
139+ Getter : bootstrapClusterProxy .GetClient (),
140+ Deployment : & appsv1.Deployment {ObjectMeta : metav1.ObjectMeta {Name : coreProviderDeploymentName , Namespace : operatorNamespace }},
141+ }, e2eConfig .GetIntervals (bootstrapClusterProxy .GetName (), "wait-controllers" )... )
189142
190143 By ("Waiting for core provider to be ready" )
191- Eventually (func () bool {
192- coreProvider := & operatorv1.CoreProvider {}
193- key := client.ObjectKey {Namespace : operatorNamespace , Name : coreProviderName }
194- if err := k8sclient .Get (ctx , key , coreProvider ); err != nil {
195- return false
196- }
197-
198- for _ , c := range coreProvider .Status .Conditions {
199- if c .Type == operatorv1 .ProviderInstalledCondition && c .Status == corev1 .ConditionTrue {
200- return true
201- }
202- }
203- return false
204- }, timeout ).Should (Equal (true ))
144+ WaitFor (ctx , For (coreProvider ).In (bootstrapCluster ).ToSatisfy (
145+ HaveStatusCondition (& coreProvider .Status .Conditions , operatorv1 .ProviderInstalledCondition ),
146+ ), e2eConfig .GetIntervals (bootstrapClusterProxy .GetName (), "wait-controllers" )... )
205147
206148 By ("Waiting for status.IntalledVersion to be set" )
207- Eventually (func () bool {
208- coreProvider := & operatorv1.CoreProvider {}
209- key := client.ObjectKey {Namespace : operatorNamespace , Name : coreProviderName }
210- if err := k8sclient .Get (ctx , key , coreProvider ); err != nil {
211- return false
212- }
213-
214- if coreProvider .Status .InstalledVersion != nil && * coreProvider .Status .InstalledVersion == coreProvider .Spec .Version {
215- return true
216- }
217- return false
218- }, timeout ).Should (Equal (true ))
149+ WaitFor (ctx , For (coreProvider ).In (bootstrapCluster ).ToSatisfy (func () bool {
150+ return ptr .Equal (coreProvider .Status .InstalledVersion , ptr .To (coreProvider .Spec .Version ))
151+ }), e2eConfig .GetIntervals (bootstrapClusterProxy .GetName (), "wait-controllers" )... )
219152 })
220153
221154 It ("should successfully delete a CoreProvider" , func () {
222- k8sclient := bootstrapClusterProxy .GetClient ()
223- coreProvider := & operatorv1.CoreProvider {
224- ObjectMeta : metav1.ObjectMeta {
225- Name : coreProviderName ,
226- Namespace : operatorNamespace ,
227- },
228- Spec : operatorv1.CoreProviderSpec {
229- ProviderSpec : operatorv1.ProviderSpec {},
230- },
231- }
155+ bootstrapCluster := bootstrapClusterProxy .GetClient ()
156+ coreProvider := & operatorv1.CoreProvider {ObjectMeta : metav1.ObjectMeta {
157+ Name : coreProviderName ,
158+ Namespace : operatorNamespace ,
159+ }}
232160
233- Expect (k8sclient .Delete (ctx , coreProvider )).To (Succeed ())
161+ Expect (bootstrapCluster .Delete (ctx , coreProvider )).To (Succeed ())
234162
235163 By ("Waiting for the core provider deployment to be deleted" )
236- Eventually (func () bool {
237- deployment := & appsv1.Deployment {}
238- key := client.ObjectKey {Namespace : operatorNamespace , Name : coreProviderDeploymentName }
239- isReady , err := waitForObjectToBeDeleted (k8sclient , ctx , key , deployment )
240- if err != nil {
241- return false
242- }
243- return isReady
244- }, timeout ).Should (Equal (true ))
164+ WaitForDelete (ctx , For (& appsv1.Deployment {ObjectMeta : metav1.ObjectMeta {
165+ Name : coreProviderDeploymentName ,
166+ Namespace : operatorNamespace ,
167+ }}).In (bootstrapCluster ), e2eConfig .GetIntervals (bootstrapClusterProxy .GetName (), "wait-controllers" )... )
245168
246169 By ("Waiting for the core provider object to be deleted" )
247- Eventually (func () bool {
248- key := client.ObjectKey {Namespace : operatorNamespace , Name : coreProviderName }
249- isReady , err := waitForObjectToBeDeleted (k8sclient , ctx , key , coreProvider )
250- if err != nil {
251- return false
252- }
253- return isReady
254- }, timeout ).Should (Equal (true ))
170+ WaitForDelete (
171+ ctx , For (coreProvider ).In (bootstrapCluster ),
172+ e2eConfig .GetIntervals (bootstrapClusterProxy .GetName (), "wait-controllers" )... )
255173 })
256174
257175 It ("should successfully delete config maps with Core Provider manifests" , func () {
258- k8sclient := bootstrapClusterProxy .GetClient ()
259-
176+ bootstrapCluster := bootstrapClusterProxy .GetClient ()
260177 configMaps := []corev1.ConfigMap {}
261178
262179 for _ , fileName := range []string {"core-cluster-api-v1.4.2.yaml" , "core-cluster-api-v1.4.3.yaml" } {
@@ -272,7 +189,7 @@ var _ = Describe("Install Core Provider in an air-gapped environment", func() {
272189
273190 By ("Deleting config maps with core provider manifests" )
274191 for _ , cm := range configMaps {
275- Expect (k8sclient .Delete (ctx , & cm )).To (Succeed ())
192+ Expect (bootstrapCluster .Delete (ctx , & cm )).To (Succeed ())
276193 }
277194 })
278195})
0 commit comments