44 rabbitmqv1beta1 "github.com/rabbitmq/cluster-operator/api/v1beta1"
55 "github.com/rabbitmq/cluster-operator/internal/resource"
66 corev1 "k8s.io/api/core/v1"
7+ apierrors "k8s.io/apimachinery/pkg/api/errors"
78 "k8s.io/apimachinery/pkg/types"
89
910 . "github.com/onsi/ginkgo/v2"
@@ -18,19 +19,25 @@ var _ = Describe("Reconcile status", func() {
1819 defaultNamespace = "default"
1920 )
2021
21- BeforeEach (func () {
22+ AfterEach (func () {
23+ Expect (client .Delete (ctx , cluster )).To (Succeed ())
24+ Eventually (func () bool {
25+ rmq := & rabbitmqv1beta1.RabbitmqCluster {}
26+ err := client .Get (ctx , types.NamespacedName {Name : cluster .Name , Namespace : cluster .Namespace }, rmq )
27+ return apierrors .IsNotFound (err )
28+ }, 5 ).Should (BeTrue ())
29+ })
30+
31+ It ("reconciles the custom resource status" , func () {
2232 cluster = & rabbitmqv1beta1.RabbitmqCluster {
2333 ObjectMeta : metav1.ObjectMeta {
2434 Name : "rabbitmq-status" ,
2535 Namespace : defaultNamespace ,
2636 },
2737 }
28-
2938 Expect (client .Create (ctx , cluster )).To (Succeed ())
3039 waitForClusterCreation (ctx , cluster , client )
31- })
3240
33- It ("reconciles the custom resource status" , func () {
3441 By ("setting the default-user secret details" )
3542 rmq := & rabbitmqv1beta1.RabbitmqCluster {}
3643 secretRef := & rabbitmqv1beta1.RabbitmqClusterSecretReference {}
@@ -87,4 +94,56 @@ var _ = Describe("Reconcile status", func() {
8794
8895 Expect (binding .Name ).To (Equal (rmq .ChildResourceName (resource .DefaultUserSecretName )))
8996 })
97+
98+ When ("secret backend vault is enabled" , func () {
99+ It ("sets service reference status correctly" , func () {
100+ cluster = & rabbitmqv1beta1.RabbitmqCluster {
101+ ObjectMeta : metav1.ObjectMeta {
102+ Name : "rabbitmq-vault-status" ,
103+ Namespace : defaultNamespace ,
104+ },
105+ Spec : rabbitmqv1beta1.RabbitmqClusterSpec {
106+ SecretBackend : rabbitmqv1beta1.SecretBackend {
107+ Vault : & rabbitmqv1beta1.VaultSpec {
108+ Role : "rabbit" ,
109+ DefaultUserPath : "test-test" ,
110+ },
111+ },
112+ },
113+ }
114+ Expect (client .Create (ctx , cluster )).To (Succeed ())
115+ waitForClusterCreation (ctx , cluster , client )
116+
117+ By ("setting the service details" )
118+ rmq := & rabbitmqv1beta1.RabbitmqCluster {}
119+ serviceRef := & rabbitmqv1beta1.RabbitmqClusterServiceReference {}
120+ Eventually (func () * rabbitmqv1beta1.RabbitmqClusterServiceReference {
121+ err := client .Get (ctx , types.NamespacedName {Name : cluster .Name , Namespace : cluster .Namespace }, rmq )
122+ if err != nil {
123+ return nil
124+ }
125+ if rmq .Status .DefaultUser != nil && rmq .Status .DefaultUser .ServiceReference != nil {
126+ serviceRef = rmq .Status .DefaultUser .ServiceReference
127+ return serviceRef
128+ }
129+ return nil
130+ }, 5 ).ShouldNot (BeNil ())
131+
132+ Expect (serviceRef .Name ).To (Equal (rmq .ChildResourceName ("" )))
133+ Expect (serviceRef .Namespace ).To (Equal (rmq .Namespace ))
134+
135+ By ("leaving status.binding and secret reference empty" )
136+ rmq = & rabbitmqv1beta1.RabbitmqCluster {}
137+ Consistently (func () * corev1.LocalObjectReference {
138+ Expect (client .Get (ctx , types.NamespacedName {Name : cluster .Name , Namespace : cluster .Namespace }, rmq )).To (Succeed ())
139+ return rmq .Status .Binding
140+ }).Should (BeNil ())
141+
142+ Consistently (func () * rabbitmqv1beta1.RabbitmqClusterSecretReference {
143+ Expect (client .Get (ctx , types.NamespacedName {Name : cluster .Name , Namespace : cluster .Namespace }, rmq )).To (Succeed ())
144+ return rmq .Status .DefaultUser .SecretReference
145+ }).Should (BeNil ())
146+ })
147+ })
148+
90149})
0 commit comments