@@ -29,6 +29,7 @@ var _ = Describe("ParseRabbitmqClusterReference", func() {
2929 ctx = context .Background ()
3030 namespace = "rabbitmq-system"
3131 )
32+
3233 JustBeforeEach (func () {
3334 s := scheme .Scheme
3435 s .AddKnownTypes (rabbitmqv1beta1 .SchemeBuilder .GroupVersion , & rabbitmqv1beta1.RabbitmqCluster {})
@@ -89,8 +90,10 @@ var _ = Describe("ParseRabbitmqClusterReference", func() {
8990 Expect (tlsEnabled ).To (BeFalse ())
9091 usernameBytes , _ := credsProvider .Data ("username" )
9192 passwordBytes , _ := credsProvider .Data ("password" )
93+ uriBytes , _ := credsProvider .Data ("uri" )
9294 Expect (usernameBytes ).To (Equal ([]byte (existingRabbitMQUsername )))
9395 Expect (passwordBytes ).To (Equal ([]byte (existingRabbitMQPassword )))
96+ Expect (uriBytes ).To (Equal ([]byte ("http://rmq.rabbitmq-system.svc:15672" )))
9497 })
9598
9699 When ("RabbitmqCluster does not have status.defaultUser set" , func () {
@@ -172,44 +175,188 @@ var _ = Describe("ParseRabbitmqClusterReference", func() {
172175 It ("should return the expected credentials" , func () {
173176 usernameBytes , _ := credsProv .Data ("username" )
174177 passwordBytes , _ := credsProv .Data ("password" )
178+ uriBytes , _ := credsProv .Data ("uri" )
175179 Expect (usernameBytes ).To (Equal ([]byte (existingRabbitMQUsername )))
176180 Expect (passwordBytes ).To (Equal ([]byte (existingRabbitMQPassword )))
181+ Expect (uriBytes ).To (Equal ([]byte ("http://rmq.rabbitmq-system.svc:15672" )))
177182 })
178183 })
179184 })
180- When ("spec.rabbitmqClusterReference.connectionSecret is set instead of cluster name" , func () {
185+
186+ When ("the RabbitmqCluster is configured with TLS" , func () {
181187 BeforeEach (func () {
182- connectionSecret := & corev1.Secret {
188+ existingRabbitMQCluster = & rabbitmqv1beta1.RabbitmqCluster {
189+ ObjectMeta : metav1.ObjectMeta {
190+ Name : "rmq" ,
191+ Namespace : namespace ,
192+ },
193+ Spec : rabbitmqv1beta1.RabbitmqClusterSpec {
194+ TLS : rabbitmqv1beta1.TLSSpec {
195+ SecretName : "a-tls-secret" ,
196+ DisableNonTLSListeners : true ,
197+ },
198+ },
199+ Status : rabbitmqv1beta1.RabbitmqClusterStatus {
200+ Binding : & corev1.LocalObjectReference {
201+ Name : "rmq-default-user-credentials" ,
202+ },
203+ DefaultUser : & rabbitmqv1beta1.RabbitmqClusterDefaultUser {
204+ ServiceReference : & rabbitmqv1beta1.RabbitmqClusterServiceReference {
205+ Name : "rmq" ,
206+ Namespace : namespace ,
207+ },
208+ },
209+ },
210+ }
211+ existingCredentialSecret = & corev1.Secret {
183212 ObjectMeta : metav1.ObjectMeta {
184- Name : "rmq-connection-info " ,
213+ Name : "rmq-default-user-credentials " ,
185214 Namespace : namespace ,
186215 },
187216 Data : map [string ][]byte {
188- "uri" : []byte ("10.0.0.0:15671" ),
189- "username" : []byte ("test-user" ),
190- "password" : []byte ("test-password" ),
217+ "username" : []byte (existingRabbitMQUsername ),
218+ "password" : []byte (existingRabbitMQPassword ),
191219 },
192220 }
193- objs = []runtime.Object {connectionSecret }
194- })
195-
196- It ("returns the expected connection information" , func () {
197- credsProvider , tlsEnabled , err := internal .ParseRabbitmqClusterReference (ctx , fakeClient ,
198- topology.RabbitmqClusterReference {
199- ConnectionSecret : & corev1.LocalObjectReference {
200- Name : "rmq-connection-info" ,
221+ existingService = & corev1.Service {
222+ ObjectMeta : metav1.ObjectMeta {
223+ Name : "rmq" ,
224+ Namespace : namespace ,
225+ },
226+ Spec : corev1.ServiceSpec {
227+ ClusterIP : "1.2.3.4" ,
228+ Ports : []corev1.ServicePort {
229+ {
230+ Name : "management-tls" ,
231+ Port : int32 (15671 ),
232+ },
201233 },
202234 },
203- namespace )
235+ }
236+ objs = []runtime.Object {existingRabbitMQCluster , existingCredentialSecret , existingService }
237+ })
238+
239+ It ("returns correct creds in connectionCredentials" , func () {
240+ credsProvider , tlsEnabled , err := internal .ParseRabbitmqClusterReference (ctx , fakeClient , topology.RabbitmqClusterReference {Name : existingRabbitMQCluster .Name }, existingRabbitMQCluster .Namespace )
204241 Expect (err ).NotTo (HaveOccurred ())
205242
206- Expect (tlsEnabled ).To (BeFalse ())
207- returnedUser , _ := credsProvider .Data ("username" )
208- returnedPass , _ := credsProvider .Data ("password" )
209- returnedURI , _ := credsProvider .Data ("uri" )
210- Expect (string (returnedUser )).To (Equal ("test-user" ))
211- Expect (string (returnedPass )).To (Equal ("test-password" ))
212- Expect (string (returnedURI )).To (Equal ("10.0.0.0:15671" ))
243+ Expect (tlsEnabled ).To (BeTrue ())
244+ usernameBytes , _ := credsProvider .Data ("username" )
245+ passwordBytes , _ := credsProvider .Data ("password" )
246+ uriBytes , _ := credsProvider .Data ("uri" )
247+ Expect (usernameBytes ).To (Equal ([]byte (existingRabbitMQUsername )))
248+ Expect (passwordBytes ).To (Equal ([]byte (existingRabbitMQPassword )))
249+ Expect (uriBytes ).To (Equal ([]byte ("https://rmq.rabbitmq-system.svc:15671" )))
250+ })
251+ })
252+
253+ Context ("spec.rabbitmqClusterReference.connectionSecret is set" , func () {
254+ When ("uri has no scheme defined" , func () {
255+ BeforeEach (func () {
256+ noSchemeSecret := & corev1.Secret {
257+ ObjectMeta : metav1.ObjectMeta {
258+ Name : "rmq-connection-info" ,
259+ Namespace : namespace ,
260+ },
261+ Data : map [string ][]byte {
262+ "uri" : []byte ("10.0.0.0:15672" ),
263+ "username" : []byte ("test-user" ),
264+ "password" : []byte ("test-password" ),
265+ },
266+ }
267+ objs = []runtime.Object {noSchemeSecret }
268+ })
269+
270+ It ("returns the expected connection information" , func () {
271+ credsProvider , tlsEnabled , err := internal .ParseRabbitmqClusterReference (ctx , fakeClient ,
272+ topology.RabbitmqClusterReference {
273+ ConnectionSecret : & corev1.LocalObjectReference {
274+ Name : "rmq-connection-info" ,
275+ },
276+ },
277+ namespace )
278+ Expect (err ).NotTo (HaveOccurred ())
279+
280+ Expect (tlsEnabled ).To (BeFalse ())
281+ returnedUser , _ := credsProvider .Data ("username" )
282+ returnedPass , _ := credsProvider .Data ("password" )
283+ returnedURI , _ := credsProvider .Data ("uri" )
284+ Expect (string (returnedUser )).To (Equal ("test-user" ))
285+ Expect (string (returnedPass )).To (Equal ("test-password" ))
286+ Expect (string (returnedURI )).To (Equal ("http://10.0.0.0:15672" ))
287+ })
288+ })
289+
290+ When ("uri sets http as the scheme" , func () {
291+ BeforeEach (func () {
292+ httpSchemeSecret := & corev1.Secret {
293+ ObjectMeta : metav1.ObjectMeta {
294+ Name : "rmq-connection-info" ,
295+ Namespace : namespace ,
296+ },
297+ Data : map [string ][]byte {
298+ "uri" : []byte ("http://10.0.0.0:15672" ),
299+ "username" : []byte ("test-user" ),
300+ "password" : []byte ("test-password" ),
301+ },
302+ }
303+ objs = []runtime.Object {httpSchemeSecret }
304+ })
305+
306+ It ("returns the expected connection information" , func () {
307+ credsProvider , tlsEnabled , err := internal .ParseRabbitmqClusterReference (ctx , fakeClient ,
308+ topology.RabbitmqClusterReference {
309+ ConnectionSecret : & corev1.LocalObjectReference {
310+ Name : "rmq-connection-info" ,
311+ },
312+ },
313+ namespace )
314+ Expect (err ).NotTo (HaveOccurred ())
315+
316+ Expect (tlsEnabled ).To (BeFalse ())
317+ returnedUser , _ := credsProvider .Data ("username" )
318+ returnedPass , _ := credsProvider .Data ("password" )
319+ returnedURI , _ := credsProvider .Data ("uri" )
320+ Expect (string (returnedUser )).To (Equal ("test-user" ))
321+ Expect (string (returnedPass )).To (Equal ("test-password" ))
322+ Expect (string (returnedURI )).To (Equal ("http://10.0.0.0:15672" ))
323+ })
324+ })
325+
326+ When ("uri sets https as the scheme" , func () {
327+ BeforeEach (func () {
328+ httpsSchemeSecret := & corev1.Secret {
329+ ObjectMeta : metav1.ObjectMeta {
330+ Name : "rmq-connection-info" ,
331+ Namespace : namespace ,
332+ },
333+ Data : map [string ][]byte {
334+ "uri" : []byte ("https://10.0.0.0:15671" ),
335+ "username" : []byte ("test-user" ),
336+ "password" : []byte ("test-password" ),
337+ },
338+ }
339+ objs = []runtime.Object {httpsSchemeSecret }
340+ })
341+
342+ It ("returns the expected connection information" , func () {
343+ credsProvider , tlsEnabled , err := internal .ParseRabbitmqClusterReference (ctx , fakeClient ,
344+ topology.RabbitmqClusterReference {
345+ ConnectionSecret : & corev1.LocalObjectReference {
346+ Name : "rmq-connection-info" ,
347+ },
348+ },
349+ namespace )
350+ Expect (err ).NotTo (HaveOccurred ())
351+
352+ Expect (tlsEnabled ).To (BeTrue ())
353+ returnedUser , _ := credsProvider .Data ("username" )
354+ returnedPass , _ := credsProvider .Data ("password" )
355+ returnedURI , _ := credsProvider .Data ("uri" )
356+ Expect (string (returnedUser )).To (Equal ("test-user" ))
357+ Expect (string (returnedPass )).To (Equal ("test-password" ))
358+ Expect (string (returnedURI )).To (Equal ("https://10.0.0.0:15671" ))
359+ })
213360 })
214361 })
215362})
@@ -271,5 +418,4 @@ var _ = Describe("AllowedNamespace", func() {
271418 Expect (internal .AllowedNamespace (ref , "whatever" , cluster )).To (BeTrue ())
272419 })
273420 })
274-
275421})
0 commit comments