Skip to content

Commit 594dbc2

Browse files
authored
Merge pull request #478 from rabbitmq/reuse-cluster-generator-in-tests
Reuse cluster generator in configmap tests
2 parents 9f18c0f + f59008e commit 594dbc2

File tree

1 file changed

+29
-91
lines changed

1 file changed

+29
-91
lines changed

internal/resource/configmap_test.go

+29-91
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ import (
2121
corev1 "k8s.io/api/core/v1"
2222
k8sresource "k8s.io/apimachinery/pkg/api/resource"
2323
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
24-
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2524
"k8s.io/apimachinery/pkg/runtime"
2625
defaultscheme "k8s.io/client-go/kubernetes/scheme"
2726
)
@@ -46,15 +45,12 @@ var _ = Describe("GenerateServerConfigMap", func() {
4645
)
4746

4847
BeforeEach(func() {
48+
instance = generateRabbitmqCluster()
49+
instance.Spec.Resources.Limits = corev1.ResourceList{}
50+
4951
scheme = runtime.NewScheme()
5052
Expect(rabbitmqv1beta1.AddToScheme(scheme)).To(Succeed())
5153
Expect(defaultscheme.AddToScheme(scheme)).To(Succeed())
52-
instance = rabbitmqv1beta1.RabbitmqCluster{
53-
ObjectMeta: v1.ObjectMeta{
54-
Name: "a name",
55-
Namespace: "a namespace",
56-
},
57-
}
5854
builder = &resource.RabbitmqResourceBuilder{
5955
Instance: &instance,
6056
Scheme: scheme,
@@ -132,11 +128,8 @@ var _ = Describe("GenerateServerConfigMap", func() {
132128
})
133129

134130
It("sets owner reference", func() {
135-
instance = rabbitmqv1beta1.RabbitmqCluster{
136-
ObjectMeta: metav1.ObjectMeta{
137-
Name: "rabbit1",
138-
},
139-
}
131+
instance.ObjectMeta.Name = "rabbit1"
132+
140133
Expect(configMapBuilder.Update(configMap)).To(Succeed())
141134
Expect(configMap.OwnerReferences[0].Name).To(Equal(instance.Name))
142135
})
@@ -153,31 +146,25 @@ var _ = Describe("GenerateServerConfigMap", func() {
153146
})
154147

155148
When("valid additionalConfig is provided", func() {
156-
BeforeEach(func() {
157-
instance.Spec.Rabbitmq.AdditionalConfig = `
149+
It("appends configurations to the default rabbitmq.conf and overwrites duplicate keys", func() {
150+
additionalConfig := `
158151
cluster_formation.peer_discovery_backend = my-backend
159152
my-config-property-0 = great-value
160153
my-config-property-1 = better-value`
161-
})
162154

163-
It("appends configurations to the default rabbitmq.conf and overwrites duplicate keys", func() {
164-
expectedRabbitmqConf := iniString(defaultRabbitmqConf(builder.Instance.Name) + `
165-
cluster_formation.peer_discovery_backend = my-backend
166-
my-config-property-0 = great-value
167-
my-config-property-1 = better-value
168-
`)
155+
instance.Spec.Rabbitmq.AdditionalConfig = additionalConfig
156+
157+
expectedRabbitmqConf := iniString(defaultRabbitmqConf(builder.Instance.Name) + additionalConfig)
169158

170159
Expect(configMapBuilder.Update(configMap)).To(Succeed())
171160
Expect(configMap.Data).To(HaveKeyWithValue("rabbitmq.conf", expectedRabbitmqConf))
172161
})
173162
})
174163

175164
When("invalid additionalConfig is provided", func() {
176-
BeforeEach(func() {
165+
It("errors", func() {
177166
instance.Spec.Rabbitmq.AdditionalConfig = " = invalid"
178-
})
179167

180-
It("errors", func() {
181168
Expect(configMapBuilder.Update(configMap)).To(MatchError(
182169
"failed to append spec.rabbitmq.additionalConfig: error creating new key: empty key name"))
183170
})
@@ -253,16 +240,8 @@ CONSOLE_LOG=new`
253240

254241
Context("TLS", func() {
255242
It("adds TLS config when TLS is enabled", func() {
256-
instance = rabbitmqv1beta1.RabbitmqCluster{
257-
ObjectMeta: metav1.ObjectMeta{
258-
Name: "rabbit-tls",
259-
},
260-
Spec: rabbitmqv1beta1.RabbitmqClusterSpec{
261-
TLS: rabbitmqv1beta1.TLSSpec{
262-
SecretName: "tls-secret",
263-
},
264-
},
265-
}
243+
instance.ObjectMeta.Name = "rabbit-tls"
244+
instance.Spec.TLS.SecretName = "tls-secret"
266245

267246
expectedRabbitmqConf := iniString(defaultRabbitmqConf(builder.Instance.Name) + `
268247
ssl_options.certfile = /etc/rabbitmq-tls/tls.crt
@@ -281,23 +260,11 @@ management.tcp.port = 15672
281260

282261
When("MQTT, STOMP and AMQP 1.0 plugins are enabled", func() {
283262
It("adds TLS config for the additional plugins", func() {
284-
instance = rabbitmqv1beta1.RabbitmqCluster{
285-
ObjectMeta: metav1.ObjectMeta{
286-
Name: "rabbit-tls",
287-
},
288-
Spec: rabbitmqv1beta1.RabbitmqClusterSpec{
289-
TLS: rabbitmqv1beta1.TLSSpec{
290-
SecretName: "tls-secret",
291-
},
292-
Rabbitmq: rabbitmqv1beta1.RabbitmqClusterConfigurationSpec{
293-
AdditionalPlugins: []rabbitmqv1beta1.Plugin{
294-
"rabbitmq_mqtt",
295-
"rabbitmq_stomp",
296-
"rabbitmq_amqp_1_0",
297-
},
298-
},
299-
},
300-
}
263+
additionalPlugins := []rabbitmqv1beta1.Plugin{"rabbitmq_mqtt", "rabbitmq_stomp", "rabbitmq_amqp_1_0"}
264+
265+
instance.ObjectMeta.Name = "rabbit-tls"
266+
instance.Spec.TLS.SecretName = "tls-secret"
267+
instance.Spec.Rabbitmq.AdditionalPlugins = additionalPlugins
301268

302269
expectedRabbitmqConf := iniString(defaultRabbitmqConf(builder.Instance.Name) + `
303270
ssl_options.certfile = /etc/rabbitmq-tls/tls.crt
@@ -322,17 +289,9 @@ stomp.listeners.ssl.1 = 61614
322289

323290
Context("Mutual TLS", func() {
324291
It("adds TLS config when TLS is enabled", func() {
325-
instance = rabbitmqv1beta1.RabbitmqCluster{
326-
ObjectMeta: metav1.ObjectMeta{
327-
Name: "rabbit-tls",
328-
},
329-
Spec: rabbitmqv1beta1.RabbitmqClusterSpec{
330-
TLS: rabbitmqv1beta1.TLSSpec{
331-
SecretName: "tls-secret",
332-
CaSecretName: "tls-mutual-secret",
333-
},
334-
},
335-
}
292+
instance.ObjectMeta.Name = "rabbit-tls"
293+
instance.Spec.TLS.SecretName = "tls-secret"
294+
instance.Spec.TLS.CaSecretName = "tls-mutual-secret"
336295

337296
expectedRabbitmqConf := iniString(defaultRabbitmqConf(builder.Instance.Name) + `
338297
ssl_options.certfile = /etc/rabbitmq-tls/tls.crt
@@ -355,23 +314,12 @@ management.ssl.cacertfile = /etc/rabbitmq-tls/ca.crt
355314

356315
When("Web MQTT and Web STOMP are enabled", func() {
357316
It("adds TLS config for the additional plugins", func() {
358-
instance = rabbitmqv1beta1.RabbitmqCluster{
359-
ObjectMeta: metav1.ObjectMeta{
360-
Name: "rabbit-tls",
361-
},
362-
Spec: rabbitmqv1beta1.RabbitmqClusterSpec{
363-
TLS: rabbitmqv1beta1.TLSSpec{
364-
SecretName: "tls-secret",
365-
CaSecretName: "tls-mutual-secret",
366-
},
367-
Rabbitmq: rabbitmqv1beta1.RabbitmqClusterConfigurationSpec{
368-
AdditionalPlugins: []rabbitmqv1beta1.Plugin{
369-
"rabbitmq_web_mqtt",
370-
"rabbitmq_web_stomp",
371-
},
372-
},
373-
},
374-
}
317+
additionalPlugins := []rabbitmqv1beta1.Plugin{"rabbitmq_web_mqtt", "rabbitmq_web_stomp"}
318+
319+
instance.ObjectMeta.Name = "rabbit-tls"
320+
instance.Spec.TLS.SecretName = "tls-secret"
321+
instance.Spec.TLS.CaSecretName = "tls-mutual-secret"
322+
instance.Spec.Rabbitmq.AdditionalPlugins = additionalPlugins
375323

376324
expectedRabbitmqConf := iniString(defaultRabbitmqConf(builder.Instance.Name) + `
377325
ssl_options.certfile = /etc/rabbitmq-tls/tls.crt
@@ -530,18 +478,8 @@ web_stomp.tcp.listener = none
530478
Context("Memory Limits", func() {
531479
It("sets a RabbitMQ memory limit with headroom when memory limits are specified", func() {
532480
const GiB int64 = 1073741824
533-
instance = rabbitmqv1beta1.RabbitmqCluster{
534-
ObjectMeta: metav1.ObjectMeta{
535-
Name: "rabbit-mem-limit",
536-
},
537-
Spec: rabbitmqv1beta1.RabbitmqClusterSpec{
538-
Resources: &corev1.ResourceRequirements{
539-
Limits: map[corev1.ResourceName]k8sresource.Quantity{
540-
corev1.ResourceMemory: k8sresource.MustParse("10Gi"),
541-
},
542-
},
543-
},
544-
}
481+
instance.ObjectMeta.Name = "rabbit-mem-limit"
482+
instance.Spec.Resources.Limits = map[corev1.ResourceName]k8sresource.Quantity{corev1.ResourceMemory: k8sresource.MustParse("10Gi")}
545483

546484
expectedRabbitmqConf := iniString(defaultRabbitmqConf(builder.Instance.Name) + fmt.Sprintf("total_memory_available_override_value = %d", 8*GiB))
547485

0 commit comments

Comments
 (0)