@@ -11,6 +11,7 @@ package v1beta1
1111import (
1212 . "github.com/onsi/ginkgo"
1313 . "github.com/onsi/gomega"
14+ . "github.com/onsi/gomega/gstruct"
1415 "github.com/rabbitmq/cluster-operator/internal/status"
1516 appsv1 "k8s.io/api/apps/v1"
1617 corev1 "k8s.io/api/core/v1"
@@ -31,39 +32,39 @@ var _ = Describe("RabbitmqCluster", func() {
3132 It ("can be created with a single replica" , func () {
3233 created := generateRabbitmqClusterObject ("rabbit1" )
3334 created .Spec .Replicas = pointer .Int32Ptr (1 )
34- Expect (k8sClient .Create (context .TODO (), created )).To (Succeed ())
35+ Expect (k8sClient .Create (context .Background (), created )).To (Succeed ())
3536
3637 fetched := & RabbitmqCluster {}
37- Expect (k8sClient .Get (context .TODO (), getKey (created ), fetched )).To (Succeed ())
38+ Expect (k8sClient .Get (context .Background (), getKey (created ), fetched )).To (Succeed ())
3839 Expect (fetched ).To (Equal (created ))
3940 })
4041
4142 It ("can be created with three replicas" , func () {
4243 created := generateRabbitmqClusterObject ("rabbit2" )
4344 created .Spec .Replicas = pointer .Int32Ptr (3 )
44- Expect (k8sClient .Create (context .TODO (), created )).To (Succeed ())
45+ Expect (k8sClient .Create (context .Background (), created )).To (Succeed ())
4546
4647 fetched := & RabbitmqCluster {}
47- Expect (k8sClient .Get (context .TODO (), getKey (created ), fetched )).To (Succeed ())
48+ Expect (k8sClient .Get (context .Background (), getKey (created ), fetched )).To (Succeed ())
4849 Expect (fetched ).To (Equal (created ))
4950 })
5051
5152 It ("can be created with five replicas" , func () {
5253 created := generateRabbitmqClusterObject ("rabbit3" )
5354 created .Spec .Replicas = pointer .Int32Ptr (5 )
54- Expect (k8sClient .Create (context .TODO (), created )).To (Succeed ())
55+ Expect (k8sClient .Create (context .Background (), created )).To (Succeed ())
5556
5657 fetched := & RabbitmqCluster {}
57- Expect (k8sClient .Get (context .TODO (), getKey (created ), fetched )).To (Succeed ())
58+ Expect (k8sClient .Get (context .Background (), getKey (created ), fetched )).To (Succeed ())
5859 Expect (fetched ).To (Equal (created ))
5960 })
6061
6162 It ("can be deleted" , func () {
6263 created := generateRabbitmqClusterObject ("rabbit4" )
63- Expect (k8sClient .Create (context .TODO (), created )).To (Succeed ())
64+ Expect (k8sClient .Create (context .Background (), created )).To (Succeed ())
6465
65- Expect (k8sClient .Delete (context .TODO (), created )).To (Succeed ())
66- Expect (k8sClient .Get (context .TODO (), getKey (created ), created )).ToNot (Succeed ())
66+ Expect (k8sClient .Delete (context .Background (), created )).To (Succeed ())
67+ Expect (k8sClient .Get (context .Background (), getKey (created ), created )).ToNot (Succeed ())
6768 })
6869
6970 It ("can be created with resource requests" , func () {
@@ -78,13 +79,13 @@ var _ = Describe("RabbitmqCluster", func() {
7879 corev1 .ResourceMemory : k8sresource .MustParse ("100Mi" ),
7980 },
8081 }
81- Expect (k8sClient .Create (context .TODO (), created )).To (Succeed ())
82+ Expect (k8sClient .Create (context .Background (), created )).To (Succeed ())
8283 })
8384
8485 It ("can be created with server side TLS" , func () {
8586 created := generateRabbitmqClusterObject ("rabbit-tls" )
8687 created .Spec .TLS .SecretName = "tls-secret-name"
87- Expect (k8sClient .Create (context .TODO (), created )).To (Succeed ())
88+ Expect (k8sClient .Create (context .Background (), created )).To (Succeed ())
8889 })
8990
9091 It ("can be queried if TLS is enabled" , func () {
@@ -125,15 +126,15 @@ var _ = Describe("RabbitmqCluster", func() {
125126 By ("checking the replica count" , func () {
126127 invalidReplica := generateRabbitmqClusterObject ("rabbit4" )
127128 invalidReplica .Spec .Replicas = pointer .Int32Ptr (- 1 )
128- Expect (apierrors .IsInvalid (k8sClient .Create (context .TODO (), invalidReplica ))).To (BeTrue ())
129- Expect (k8sClient .Create (context .TODO (), invalidReplica )).To (MatchError (ContainSubstring ("spec.replicas in body should be greater than or equal to 0" )))
129+ Expect (apierrors .IsInvalid (k8sClient .Create (context .Background (), invalidReplica ))).To (BeTrue ())
130+ Expect (k8sClient .Create (context .Background (), invalidReplica )).To (MatchError (ContainSubstring ("spec.replicas in body should be greater than or equal to 0" )))
130131 })
131132
132133 By ("checking the service type" , func () {
133134 invalidService := generateRabbitmqClusterObject ("rabbit5" )
134135 invalidService .Spec .Service .Type = "ihateservices"
135- Expect (apierrors .IsInvalid (k8sClient .Create (context .TODO (), invalidService ))).To (BeTrue ())
136- Expect (k8sClient .Create (context .TODO (), invalidService )).To (MatchError (ContainSubstring ("supported values: \" ClusterIP\" , \" LoadBalancer\" , \" NodePort\" " )))
136+ Expect (apierrors .IsInvalid (k8sClient .Create (context .Background (), invalidService ))).To (BeTrue ())
137+ Expect (k8sClient .Create (context .Background (), invalidService )).To (MatchError (ContainSubstring ("supported values: \" ClusterIP\" , \" LoadBalancer\" , \" NodePort\" " )))
137138 })
138139 })
139140
@@ -163,12 +164,9 @@ var _ = Describe("RabbitmqCluster", func() {
163164 },
164165 }
165166
166- Expect (k8sClient .Create (context .TODO (), & rmqClusterInstance )).To (Succeed ())
167+ Expect (k8sClient .Create (context .Background (), & rmqClusterInstance )).To (Succeed ())
167168 fetchedRabbit := & RabbitmqCluster {}
168- Expect (k8sClient .Get (context .TODO (), types.NamespacedName {
169- Name : "rabbitmq-defaults" ,
170- Namespace : "default" ,
171- }, fetchedRabbit )).To (Succeed ())
169+ Expect (k8sClient .Get (context .Background (), getKey (& rmqClusterInstance ), fetchedRabbit )).To (Succeed ())
172170 Expect (fetchedRabbit .Spec ).To (Equal (expectedClusterInstance .Spec ))
173171 })
174172 })
@@ -241,12 +239,9 @@ var _ = Describe("RabbitmqCluster", func() {
241239 },
242240 }
243241
244- Expect (k8sClient .Create (context .TODO (), & rmqClusterInstance )).To (Succeed ())
242+ Expect (k8sClient .Create (context .Background (), & rmqClusterInstance )).To (Succeed ())
245243 fetchedRabbit := & RabbitmqCluster {}
246- Expect (k8sClient .Get (context .TODO (), types.NamespacedName {
247- Name : "rabbitmq-full-manifest" ,
248- Namespace : "default" ,
249- }, fetchedRabbit )).To (Succeed ())
244+ Expect (k8sClient .Get (context .Background (), getKey (& rmqClusterInstance ), fetchedRabbit )).To (Succeed ())
250245 Expect (fetchedRabbit .Spec ).To (Equal (rmqClusterInstance .Spec ))
251246 })
252247 })
@@ -266,12 +261,9 @@ var _ = Describe("RabbitmqCluster", func() {
266261
267262 expectedClusterInstance .Spec .Image = "test-image"
268263
269- Expect (k8sClient .Create (context .TODO (), & rmqClusterInstance )).To (Succeed ())
264+ Expect (k8sClient .Create (context .Background (), & rmqClusterInstance )).To (Succeed ())
270265 fetchedRabbit := & RabbitmqCluster {}
271- Expect (k8sClient .Get (context .TODO (), types.NamespacedName {
272- Name : "rabbitmq-image" ,
273- Namespace : "default" ,
274- }, fetchedRabbit )).To (Succeed ())
266+ Expect (k8sClient .Get (context .Background (), getKey (& rmqClusterInstance ), fetchedRabbit )).To (Succeed ())
275267 Expect (fetchedRabbit .Spec ).To (Equal (expectedClusterInstance .Spec ))
276268 })
277269
@@ -289,12 +281,9 @@ var _ = Describe("RabbitmqCluster", func() {
289281
290282 expectedClusterInstance .Spec .Resources = expectedResources
291283
292- Expect (k8sClient .Create (context .TODO (), & rmqClusterInstance )).To (Succeed ())
284+ Expect (k8sClient .Create (context .Background (), & rmqClusterInstance )).To (Succeed ())
293285 fetchedRabbit := & RabbitmqCluster {}
294- Expect (k8sClient .Get (context .TODO (), types.NamespacedName {
295- Name : "rabbitmq-empty-resource" ,
296- Namespace : "default" ,
297- }, fetchedRabbit )).To (Succeed ())
286+ Expect (k8sClient .Get (context .Background (), getKey (& rmqClusterInstance ), fetchedRabbit )).To (Succeed ())
298287 Expect (fetchedRabbit .Spec ).To (Equal (expectedClusterInstance .Spec ))
299288 })
300289
@@ -316,12 +305,9 @@ var _ = Describe("RabbitmqCluster", func() {
316305
317306 expectedClusterInstance .Spec .Resources = expectedResources
318307
319- Expect (k8sClient .Create (context .TODO (), & rmqClusterInstance )).To (Succeed ())
308+ Expect (k8sClient .Create (context .Background (), & rmqClusterInstance )).To (Succeed ())
320309 fetchedRabbit := & RabbitmqCluster {}
321- Expect (k8sClient .Get (context .TODO (), types.NamespacedName {
322- Name : "rabbitmq-partial-resource" ,
323- Namespace : "default" ,
324- }, fetchedRabbit )).To (Succeed ())
310+ Expect (k8sClient .Get (context .Background (), getKey (& rmqClusterInstance ), fetchedRabbit )).To (Succeed ())
325311 Expect (fetchedRabbit .Spec ).To (Equal (expectedClusterInstance .Spec ))
326312 })
327313
@@ -343,12 +329,9 @@ var _ = Describe("RabbitmqCluster", func() {
343329 Type : "ClusterIP" ,
344330 }
345331
346- Expect (k8sClient .Create (context .TODO (), & rmqClusterInstance )).To (Succeed ())
332+ Expect (k8sClient .Create (context .Background (), & rmqClusterInstance )).To (Succeed ())
347333 fetchedRabbit := & RabbitmqCluster {}
348- Expect (k8sClient .Get (context .TODO (), types.NamespacedName {
349- Name : "rabbit-service-type" ,
350- Namespace : "default" ,
351- }, fetchedRabbit )).To (Succeed ())
334+ Expect (k8sClient .Get (context .Background (), getKey (& rmqClusterInstance ), fetchedRabbit )).To (Succeed ())
352335 Expect (fetchedRabbit .Spec ).To (Equal (expectedClusterInstance .Spec ))
353336 })
354337
@@ -372,16 +355,69 @@ var _ = Describe("RabbitmqCluster", func() {
372355 Storage : & tenGi ,
373356 }
374357
375- Expect (k8sClient .Create (context .TODO (), & rmqClusterInstance )).To (Succeed ())
358+ Expect (k8sClient .Create (context .Background (), & rmqClusterInstance )).To (Succeed ())
376359 fetchedRabbit := & RabbitmqCluster {}
377- Expect (k8sClient .Get (context .TODO (), types.NamespacedName {
378- Name : "rabbit-storage" ,
379- Namespace : "default" ,
380- }, fetchedRabbit )).To (Succeed ())
360+ Expect (k8sClient .Get (context .Background (), getKey (& rmqClusterInstance ), fetchedRabbit )).To (Succeed ())
381361 Expect (fetchedRabbit .Spec ).To (Equal (expectedClusterInstance .Spec ))
382362 })
383363 })
384364 })
365+ Context ("Vault" , func () {
366+ It ("is disabled by default" , func () {
367+ rabbit := generateRabbitmqClusterObject ("rabbit-without-vault" )
368+ Expect (k8sClient .Create (context .Background (), rabbit )).To (Succeed ())
369+ fetchedRabbit := & RabbitmqCluster {}
370+ Expect (k8sClient .Get (context .Background (), getKey (rabbit ), fetchedRabbit )).To (Succeed ())
371+
372+ Expect (fetchedRabbit .VaultEnabled ()).To (BeFalse ())
373+ })
374+ When ("only default user is configured" , func () {
375+ It ("sets vault configuration correctly" , func () {
376+ rabbit := generateRabbitmqClusterObject ("rabbit-vault-default-user" )
377+ rabbit .Spec .SecretBackend .Vault = & VaultSpec {
378+ Role : "test-role" ,
379+ DefaultUserPath : "test-path" ,
380+ }
381+ Expect (k8sClient .Create (context .Background (), rabbit )).To (Succeed ())
382+ fetchedRabbit := & RabbitmqCluster {}
383+ Expect (k8sClient .Get (context .Background (), getKey (rabbit ), fetchedRabbit )).To (Succeed ())
384+
385+ Expect (fetchedRabbit .Spec .SecretBackend .Vault .Role ).To (Equal ("test-role" ))
386+ Expect (fetchedRabbit .Spec .SecretBackend .Vault .DefaultUserPath ).To (Equal ("test-path" ))
387+ Expect (fetchedRabbit .VaultEnabled ()).To (BeTrue ())
388+ Expect (fetchedRabbit .VaultDefaultUserSecretEnabled ()).To (BeTrue ())
389+ Expect (fetchedRabbit .Spec .SecretBackend .Vault .DefaultUserSecretEnabled ()).To (BeTrue ())
390+ Expect (fetchedRabbit .VaultTLSEnabled ()).To (BeFalse ())
391+ Expect (fetchedRabbit .Spec .SecretBackend .Vault .TLSEnabled ()).To (BeFalse ())
392+
393+ By ("setting the default-user-credential-updater image by default" )
394+ Expect (fetchedRabbit .Spec .SecretBackend .Vault .DefaultUserUpdaterImage ).To (
395+ PointTo (HavePrefix ("rabbitmqoperator/default-user-credential-updater:" )))
396+ })
397+ })
398+ When ("only TLS is configured" , func () {
399+ It ("sets vault configuration correctly" , func () {
400+ rabbit := generateRabbitmqClusterObject ("rabbit-vault-tls" )
401+ rabbit .Spec .SecretBackend .Vault = & VaultSpec {
402+ Role : "test-role" ,
403+ TLS : VaultTLSSpec {
404+ PKIIssuerPath : "pki/issue/hashicorp-com" ,
405+ },
406+ }
407+ Expect (k8sClient .Create (context .Background (), rabbit )).To (Succeed ())
408+ fetchedRabbit := & RabbitmqCluster {}
409+ Expect (k8sClient .Get (context .Background (), getKey (rabbit ), fetchedRabbit )).To (Succeed ())
410+
411+ Expect (fetchedRabbit .Spec .SecretBackend .Vault .Role ).To (Equal ("test-role" ))
412+ Expect (fetchedRabbit .Spec .SecretBackend .Vault .TLS .PKIIssuerPath ).To (Equal ("pki/issue/hashicorp-com" ))
413+ Expect (fetchedRabbit .VaultEnabled ()).To (BeTrue ())
414+ Expect (fetchedRabbit .VaultDefaultUserSecretEnabled ()).To (BeFalse ())
415+ Expect (fetchedRabbit .Spec .SecretBackend .Vault .DefaultUserSecretEnabled ()).To (BeFalse ())
416+ Expect (fetchedRabbit .VaultTLSEnabled ()).To (BeTrue ())
417+ Expect (fetchedRabbit .Spec .SecretBackend .Vault .TLSEnabled ()).To (BeTrue ())
418+ })
419+ })
420+ })
385421 })
386422 Context ("RabbitmqClusterStatus" , func () {
387423 It ("sets conditions based on inputs" , func () {
0 commit comments