11package controllers_test
22
33import (
4+ "fmt"
45 rabbitmqv1beta1 "github.com/rabbitmq/cluster-operator/api/v1beta1"
56 "github.com/rabbitmq/cluster-operator/internal/resource"
67 corev1 "k8s.io/api/core/v1"
8+ apierrors "k8s.io/apimachinery/pkg/api/errors"
79 "k8s.io/apimachinery/pkg/types"
810
911 . "github.com/onsi/ginkgo/v2"
@@ -18,19 +20,25 @@ var _ = Describe("Reconcile status", func() {
1820 defaultNamespace = "default"
1921 )
2022
21- BeforeEach (func () {
23+ AfterEach (func () {
24+ Expect (client .Delete (ctx , cluster )).To (Succeed ())
25+ Eventually (func () bool {
26+ rmq := & rabbitmqv1beta1.RabbitmqCluster {}
27+ err := client .Get (ctx , types.NamespacedName {Name : cluster .Name , Namespace : cluster .Namespace }, rmq )
28+ return apierrors .IsNotFound (err )
29+ }, 5 ).Should (BeTrue ())
30+ })
31+
32+ It ("reconciles the custom resource status" , func () {
2233 cluster = & rabbitmqv1beta1.RabbitmqCluster {
2334 ObjectMeta : metav1.ObjectMeta {
2435 Name : "rabbitmq-status" ,
2536 Namespace : defaultNamespace ,
2637 },
2738 }
28-
2939 Expect (client .Create (ctx , cluster )).To (Succeed ())
3040 waitForClusterCreation (ctx , cluster , client )
31- })
3241
33- It ("reconciles the custom resource status" , func () {
3442 By ("setting the default-user secret details" )
3543 rmq := & rabbitmqv1beta1.RabbitmqCluster {}
3644 secretRef := & rabbitmqv1beta1.RabbitmqClusterSecretReference {}
@@ -87,4 +95,56 @@ var _ = Describe("Reconcile status", func() {
8795
8896 Expect (binding .Name ).To (Equal (rmq .ChildResourceName (resource .DefaultUserSecretName )))
8997 })
98+
99+ When ("secret backend vault is enabled" , func () {
100+ It ("sets service reference status correctly" , func () {
101+ cluster = & rabbitmqv1beta1.RabbitmqCluster {
102+ ObjectMeta : metav1.ObjectMeta {
103+ Name : "rabbitmq-vault-status" ,
104+ Namespace : defaultNamespace ,
105+ },
106+ Spec : rabbitmqv1beta1.RabbitmqClusterSpec {
107+ SecretBackend : rabbitmqv1beta1.SecretBackend {
108+ Vault : & rabbitmqv1beta1.VaultSpec {
109+ Role : "rabbit" ,
110+ DefaultUserPath : "test-test" ,
111+ },
112+ },
113+ },
114+ }
115+ Expect (client .Create (ctx , cluster )).To (Succeed ())
116+ waitForClusterCreation (ctx , cluster , client )
117+
118+ By ("setting the service details" )
119+ rmq := & rabbitmqv1beta1.RabbitmqCluster {}
120+ serviceRef := & rabbitmqv1beta1.RabbitmqClusterServiceReference {}
121+ Eventually (func () * rabbitmqv1beta1.RabbitmqClusterServiceReference {
122+ err := client .Get (ctx , types.NamespacedName {Name : cluster .Name , Namespace : cluster .Namespace }, rmq )
123+ if err != nil {
124+ return nil
125+ }
126+ if rmq .Status .DefaultUser != nil && rmq .Status .DefaultUser .ServiceReference != nil {
127+ serviceRef = rmq .Status .DefaultUser .ServiceReference
128+ return serviceRef
129+ }
130+ return nil
131+ }, 5 ).ShouldNot (BeNil ())
132+
133+ Expect (serviceRef .Name ).To (Equal (rmq .ChildResourceName ("" )))
134+ Expect (serviceRef .Namespace ).To (Equal (rmq .Namespace ))
135+
136+ By ("leaving status.binding and secret reference empty" )
137+ rmq = & rabbitmqv1beta1.RabbitmqCluster {}
138+ Consistently (func () * corev1.LocalObjectReference {
139+ Expect (client .Get (ctx , types.NamespacedName {Name : cluster .Name , Namespace : cluster .Namespace }, rmq )).To (Succeed ())
140+ return rmq .Status .Binding
141+ }).Should (BeNil ())
142+
143+ Consistently (func () * rabbitmqv1beta1.RabbitmqClusterSecretReference {
144+ Expect (client .Get (ctx , types.NamespacedName {Name : cluster .Name , Namespace : cluster .Namespace }, rmq )).To (Succeed ())
145+ return rmq .Status .DefaultUser .SecretReference
146+ }).Should (BeNil ())
147+ })
148+ })
149+
90150})
0 commit comments