Skip to content

Commit deccbff

Browse files
committed
Attempt at fixing flakey tests
1 parent 0807ca9 commit deccbff

File tree

1 file changed

+34
-13
lines changed

1 file changed

+34
-13
lines changed

test/e2e/operator.go

Lines changed: 34 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -435,19 +435,34 @@ var _ = Describe("ARO Operator - MUO Deployment", func() {
435435
managedUpgradeOperatorDeployment = "managed-upgrade-operator"
436436
)
437437

438+
waitForMUODeploymentReady := func(ctx context.Context) {
439+
Eventually(func(g Gomega, ctx context.Context) {
440+
d, err := clients.Kubernetes.AppsV1().Deployments(managedUpgradeOperatorNamespace).Get(ctx, managedUpgradeOperatorDeployment, metav1.GetOptions{})
441+
g.Expect(err).NotTo(HaveOccurred())
442+
g.Expect(ready.DeploymentIsReady(d)).To(BeTrue(), "expected MUO deployment to be ready")
443+
}).WithContext(ctx).WithTimeout(DefaultEventuallyTimeout).Should(Succeed())
444+
}
445+
438446
It("must be restored if deleted", func(ctx context.Context) {
447+
instance, err := clients.AROClusters.AroV1alpha1().Clusters().Get(ctx, "cluster", metav1.GetOptions{})
448+
Expect(err).NotTo(HaveOccurred())
449+
450+
if !instance.Spec.OperatorFlags.GetSimpleBoolean(operator.MuoEnabled) ||
451+
!instance.Spec.OperatorFlags.GetSimpleBoolean(operator.MuoManaged) {
452+
Skip("Managed Upgrade Operator controller is not enabled and managed, skipping test")
453+
}
454+
439455
deleteFunc := clients.Kubernetes.AppsV1().Deployments(managedUpgradeOperatorNamespace).Delete
440-
getFunc := clients.Kubernetes.AppsV1().Deployments(managedUpgradeOperatorNamespace).Get
441456

442457
By("waiting for the MUO deployment to be ready")
443-
GetK8sObjectWithRetry(ctx, getFunc, managedUpgradeOperatorDeployment, metav1.GetOptions{})
458+
waitForMUODeploymentReady(ctx)
444459

445460
By("deleting the MUO deployment")
446461
DeleteK8sObjectWithRetry(ctx, deleteFunc, managedUpgradeOperatorDeployment, metav1.DeleteOptions{})
447462

448-
By("waiting for the MUO deployment to be reconciled")
449-
GetK8sObjectWithRetry(ctx, getFunc, managedUpgradeOperatorDeployment, metav1.GetOptions{})
450-
}, SpecTimeout(2*time.Minute))
463+
By("waiting for the MUO deployment to be reconciled and ready")
464+
waitForMUODeploymentReady(ctx)
465+
})
451466
})
452467

453468
var _ = Describe("ARO Operator - ImageConfig Reconciler", func() {
@@ -730,6 +745,14 @@ var _ = Describe("ARO Operator - Guardrails", func() {
730745
gkAuditDeployment = "gatekeeper-audit"
731746
)
732747

748+
waitForGatekeeperDeploymentReady := func(ctx context.Context, deploymentName string) {
749+
Eventually(func(g Gomega, ctx context.Context) {
750+
d, err := clients.Kubernetes.AppsV1().Deployments(guardrailsNamespace).Get(ctx, deploymentName, metav1.GetOptions{})
751+
g.Expect(err).NotTo(HaveOccurred())
752+
g.Expect(ready.DeploymentIsReady(d)).To(BeTrue(), "expected %q deployment to be ready", deploymentName)
753+
}).WithContext(ctx).WithTimeout(DefaultEventuallyTimeout).Should(Succeed())
754+
}
755+
733756
It("Controller Manager must be restored if deleted", func(ctx context.Context) {
734757
instance, err := clients.AROClusters.AroV1alpha1().Clusters().Get(ctx, "cluster", metav1.GetOptions{})
735758
Expect(err).NotTo(HaveOccurred())
@@ -739,17 +762,16 @@ var _ = Describe("ARO Operator - Guardrails", func() {
739762
Skip("Guardrails Controller is not enabled, skipping test")
740763
}
741764

742-
getFunc := clients.Kubernetes.AppsV1().Deployments(guardrailsNamespace).Get
743765
deleteFunc := clients.Kubernetes.AppsV1().Deployments(guardrailsNamespace).Delete
744766

745767
By("waiting for the gatekeeper Controller Manager deployment to be ready")
746-
GetK8sObjectWithRetry(ctx, getFunc, gkControllerManagerDeployment, metav1.GetOptions{})
768+
waitForGatekeeperDeploymentReady(ctx, gkControllerManagerDeployment)
747769

748770
By("deleting the gatekeeper Controller Manager deployment")
749771
DeleteK8sObjectWithRetry(ctx, deleteFunc, gkControllerManagerDeployment, metav1.DeleteOptions{})
750772

751-
By("waiting for the gatekeeper Controller Manager deployment to be reconciled")
752-
GetK8sObjectWithRetry(ctx, getFunc, gkControllerManagerDeployment, metav1.GetOptions{})
773+
By("waiting for the gatekeeper Controller Manager deployment to be reconciled and ready")
774+
waitForGatekeeperDeploymentReady(ctx, gkControllerManagerDeployment)
753775
})
754776

755777
It("Audit must be restored if deleted", func(ctx context.Context) {
@@ -761,17 +783,16 @@ var _ = Describe("ARO Operator - Guardrails", func() {
761783
Skip("Guardrails Controller is not enabled, skipping test")
762784
}
763785

764-
getFunc := clients.Kubernetes.AppsV1().Deployments(guardrailsNamespace).Get
765786
deleteFunc := clients.Kubernetes.AppsV1().Deployments(guardrailsNamespace).Delete
766787

767788
By("waiting for the gatekeeper Audit deployment to be ready")
768-
GetK8sObjectWithRetry(ctx, getFunc, gkAuditDeployment, metav1.GetOptions{})
789+
waitForGatekeeperDeploymentReady(ctx, gkAuditDeployment)
769790

770791
By("deleting the gatekeeper Audit deployment")
771792
DeleteK8sObjectWithRetry(ctx, deleteFunc, gkAuditDeployment, metav1.DeleteOptions{})
772793

773-
By("waiting for the gatekeeper Audit deployment to be reconciled")
774-
GetK8sObjectWithRetry(ctx, getFunc, gkAuditDeployment, metav1.GetOptions{})
794+
By("waiting for the gatekeeper Audit deployment to be reconciled and ready")
795+
waitForGatekeeperDeploymentReady(ctx, gkAuditDeployment)
775796
})
776797
})
777798

0 commit comments

Comments
 (0)