Skip to content

Commit 480ece6

Browse files
committed
Add IPAM provider to e2e suite
1 parent b808867 commit 480ece6

File tree

2 files changed

+48
-0
lines changed

2 files changed

+48
-0
lines changed

test/e2e/helpers_test.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,5 +47,9 @@ const (
4747
addonProviderName = "helm"
4848
addonProviderDeploymentName = "caaph-controller-manager"
4949

50+
ipamProviderName = "in-cluster"
51+
ipamProviderURL = "https://github.com/kubernetes-sigs/cluster-api-ipam-provider-in-cluster/releases/latest/ipam-components.yaml"
52+
ipamProviderDeploymentName = "caip-in-cluster-controller-manager"
53+
5054
customManifestsFolder = "resources/"
5155
)

test/e2e/minimal_configuration_test.go

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -267,6 +267,50 @@ metadata:
267267
e2eConfig.GetIntervals(bootstrapClusterProxy.GetName(), "wait-controllers")...)
268268
})
269269

270+
It("should successfully create and delete an IPAMProvider", func() {
271+
bootstrapCluster := bootstrapClusterProxy.GetClient()
272+
ipamProvider := &operatorv1.IPAMProvider{
273+
ObjectMeta: metav1.ObjectMeta{
274+
Name: ipamProviderName,
275+
Namespace: operatorNamespace,
276+
},
277+
Spec: operatorv1.IPAMProviderSpec{
278+
ProviderSpec: operatorv1.ProviderSpec{
279+
FetchConfig: &operatorv1.FetchConfiguration{
280+
URL: ipamProviderURL,
281+
},
282+
},
283+
},
284+
}
285+
deployment := &appsv1.Deployment{ObjectMeta: metav1.ObjectMeta{
286+
Name: ipamProviderDeploymentName,
287+
Namespace: operatorNamespace,
288+
}}
289+
Expect(bootstrapCluster.Create(ctx, ipamProvider)).To(Succeed())
290+
291+
By("Waiting for the ipam provider deployment to be ready")
292+
framework.WaitForDeploymentsAvailable(ctx, framework.WaitForDeploymentsAvailableInput{
293+
Getter: bootstrapCluster,
294+
Deployment: deployment,
295+
}, e2eConfig.GetIntervals(bootstrapClusterProxy.GetName(), "wait-controllers")...)
296+
297+
By("Waiting for the ipam provider to be ready")
298+
WaitFor(ctx, For(ipamProvider).In(bootstrapCluster).ToSatisfy(
299+
HaveStatusCondition(&ipamProvider.Status.Conditions, operatorv1.ProviderInstalledCondition)),
300+
e2eConfig.GetIntervals(bootstrapClusterProxy.GetName(), "wait-controllers")...)
301+
302+
By("Waiting for status.IntalledVersion to be set")
303+
WaitFor(ctx, For(ipamProvider).In(bootstrapCluster).ToSatisfy(func() bool {
304+
return ptr.Equal(ipamProvider.Status.InstalledVersion, &ipamProvider.Spec.Version)
305+
}), e2eConfig.GetIntervals(bootstrapClusterProxy.GetName(), "wait-controllers")...)
306+
307+
Expect(bootstrapCluster.Delete(ctx, ipamProvider)).To(Succeed())
308+
309+
By("Waiting for the ipam provider deployment to be deleted")
310+
WaitForDelete(ctx, For(deployment).In(bootstrapCluster),
311+
e2eConfig.GetIntervals(bootstrapClusterProxy.GetName(), "wait-controllers")...)
312+
})
313+
270314
It("should successfully upgrade a CoreProvider (v1.5.4 -> latest)", func() {
271315
bootstrapCluster := bootstrapClusterProxy.GetClient()
272316
coreProvider := &operatorv1.CoreProvider{ObjectMeta: metav1.ObjectMeta{

0 commit comments

Comments
 (0)