diff --git a/test/e2e/coredns_helpers.go b/test/e2e/coredns_helpers.go new file mode 100644 index 000000000..c2ff1c6cc --- /dev/null +++ b/test/e2e/coredns_helpers.go @@ -0,0 +1,40 @@ +//go:build e2e + +// Copyright 2024 Nutanix. All rights reserved. +// SPDX-License-Identifier: Apache-2.0 + +package e2e + +import ( + "context" + + appsv1 "k8s.io/api/apps/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1" + "sigs.k8s.io/cluster-api/test/framework" +) + +type WaitForCoreDNSToBeReadyInWorkloadClusterInput struct { + WorkloadCluster *clusterv1.Cluster + ClusterProxy framework.ClusterProxy + DeploymentIntervals []interface{} +} + +func WaitForCoreDNSToBeReadyInWorkloadCluster( + ctx context.Context, + input WaitForCoreDNSToBeReadyInWorkloadClusterInput, +) { + workloadClusterClient := input.ClusterProxy.GetWorkloadCluster( + ctx, input.WorkloadCluster.Namespace, input.WorkloadCluster.Name, + ).GetClient() + + WaitForDeploymentsAvailable(ctx, framework.WaitForDeploymentsAvailableInput{ + Getter: workloadClusterClient, + Deployment: &appsv1.Deployment{ + ObjectMeta: metav1.ObjectMeta{ + Name: "coredns", + Namespace: metav1.NamespaceSystem, + }, + }, + }, input.DeploymentIntervals...) +} diff --git a/test/e2e/quick_start_test.go b/test/e2e/quick_start_test.go index 50533b4fe..b10db3ad3 100644 --- a/test/e2e/quick_start_test.go +++ b/test/e2e/quick_start_test.go @@ -165,6 +165,18 @@ var _ = Describe("Quick start", Serial, func() { ), }, ) + + WaitForCoreDNSToBeReadyInWorkloadCluster( + ctx, + WaitForCoreDNSToBeReadyInWorkloadClusterInput{ + WorkloadCluster: workloadCluster, + ClusterProxy: proxy, + DeploymentIntervals: testE2EConfig.GetIntervals( + flavour, + "wait-deployment", + ), + }, + ) }, } }) diff --git a/test/e2e/self_hosted_test.go b/test/e2e/self_hosted_test.go index e5571fd0f..bd7a1732a 100644 --- a/test/e2e/self_hosted_test.go +++ b/test/e2e/self_hosted_test.go @@ -100,6 +100,18 @@ var _ = Describe("Self-hosted", Serial, func() { ), }, ) + + WaitForCoreDNSToBeReadyInWorkloadCluster( + ctx, + WaitForCoreDNSToBeReadyInWorkloadClusterInput{ + WorkloadCluster: workloadCluster, + ClusterProxy: proxy, + DeploymentIntervals: e2eConfig.GetIntervals( + flavour, + "wait-deployment", + ), + }, + ) }, } })