Skip to content

Commit da5974e

Browse files
authored
fix: test race condition in secret controller (Arize-ai#1072)
**Description** we should trigger a reconciler after bsps are observed by the secret controller. **Related Issues/PRs (if applicable)** Fixes Arize-ai#1025 Signed-off-by: carlory <[email protected]>
1 parent ba79bfa commit da5974e

File tree

1 file changed

+17
-17
lines changed

1 file changed

+17
-17
lines changed

tests/controller/controller_test.go

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -224,11 +224,6 @@ func TestAIGatewayRouteController(t *testing.T) {
224224
err = controller.TypedControllerBuilderForCRD(mgr, &aigv1a1.AIGatewayRoute{}).Complete(rc)
225225
require.NoError(t, err)
226226

227-
go func() {
228-
err = mgr.Start(t.Context())
229-
require.NoError(t, err)
230-
}()
231-
232227
resourceReq := &corev1.ResourceRequirements{
233228
Limits: corev1.ResourceList{
234229
corev1.ResourceCPU: resource.MustParse("200m"),
@@ -294,6 +289,11 @@ func TestAIGatewayRouteController(t *testing.T) {
294289
})
295290
require.NoError(t, err)
296291
}
292+
293+
// Start the manager and wait for resources to be cached before trigger a reconciler.
294+
go func() { require.NoError(t, mgr.Start(t.Context())) }()
295+
require.True(t, mgr.GetCache().WaitForCacheSync(t.Context()))
296+
297297
t.Run("create route", func(t *testing.T) {
298298
err := c.Create(t.Context(), origin)
299299
require.NoError(t, err)
@@ -404,11 +404,6 @@ func TestBackendSecurityPolicyController(t *testing.T) {
404404
err = controller.TypedControllerBuilderForCRD(mgr, &aigv1a1.BackendSecurityPolicy{}).Complete(pc)
405405
require.NoError(t, err)
406406

407-
go func() {
408-
err = mgr.Start(t.Context())
409-
require.NoError(t, err)
410-
}()
411-
412407
const backendSecurityPolicyName, backendSecurityPolicyNamespace = "bsp", "default"
413408

414409
originals := []*aigv1a1.AIServiceBackend{
@@ -447,6 +442,10 @@ func TestBackendSecurityPolicyController(t *testing.T) {
447442
require.NoError(t, c.Create(t.Context(), backend))
448443
}
449444

445+
// Start the manager and wait for banckends to be cached before trigger a reconciler.
446+
go func() { require.NoError(t, mgr.Start(t.Context())) }()
447+
require.True(t, mgr.GetCache().WaitForCacheSync(t.Context()))
448+
450449
t.Run("create security policy", func(t *testing.T) {
451450
origin := &aigv1a1.BackendSecurityPolicy{
452451
ObjectMeta: metav1.ObjectMeta{
@@ -563,11 +562,6 @@ func TestAIServiceBackendController(t *testing.T) {
563562
err = controller.TypedControllerBuilderForCRD(mgr, &aigv1a1.AIServiceBackend{}).Complete(bc)
564563
require.NoError(t, err)
565564

566-
go func() {
567-
err = mgr.Start(t.Context())
568-
require.NoError(t, err)
569-
}()
570-
571565
const aiServiceBackendName, aiServiceBackendNamespace = "mybackend", "default"
572566
// Create an AIGatewayRoute to be referenced by the AIServiceBackend.
573567
originals := []*aigv1a1.AIGatewayRoute{
@@ -612,6 +606,10 @@ func TestAIServiceBackendController(t *testing.T) {
612606
require.NoError(t, c.Create(t.Context(), route))
613607
}
614608

609+
// Start the manager and wait for routes to be cached before trigger a reconciler.
610+
go func() { require.NoError(t, mgr.Start(t.Context())) }()
611+
require.True(t, mgr.GetCache().WaitForCacheSync(t.Context()))
612+
615613
t.Run("create backend", func(t *testing.T) {
616614
origin := &aigv1a1.AIServiceBackend{
617615
ObjectMeta: metav1.ObjectMeta{Name: aiServiceBackendName, Namespace: aiServiceBackendNamespace},
@@ -717,8 +715,6 @@ func TestSecretController(t *testing.T) {
717715
require.NoError(t, err)
718716
require.NoError(t, controller.ApplyIndexing(t.Context(), mgr.GetFieldIndexer().IndexField))
719717

720-
go func() { require.NoError(t, mgr.Start(t.Context())) }()
721-
722718
// Create a bsp that references the secret.
723719
originals := []*aigv1a1.BackendSecurityPolicy{
724720
{
@@ -744,6 +740,10 @@ func TestSecretController(t *testing.T) {
744740
}
745741
sort.Slice(originals, func(i, j int) bool { return originals[i].Name < originals[j].Name })
746742

743+
// Start the manager and wait for bsps to be cached before trigger a reconciler.
744+
go func() { require.NoError(t, mgr.Start(t.Context())) }()
745+
require.True(t, mgr.GetCache().WaitForCacheSync(t.Context()))
746+
747747
t.Run("create secret", func(t *testing.T) {
748748
err = c.Create(t.Context(), &corev1.Secret{
749749
ObjectMeta: metav1.ObjectMeta{Name: secretName, Namespace: secretNamespace},

0 commit comments

Comments
 (0)