Skip to content

Commit f59008e

Browse files
committed
Reuse cluster generator in configmap tests
1 parent 91c0d40 commit f59008e

File tree

1 file changed

+29
-91
lines changed

1 file changed

+29
-91
lines changed

Diff for: 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
@@ -280,23 +259,11 @@ management.ssl.port = 15671
280259

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

301268
expectedRabbitmqConf := iniString(defaultRabbitmqConf(builder.Instance.Name) + `
302269
ssl_options.certfile = /etc/rabbitmq-tls/tls.crt
@@ -320,17 +287,9 @@ stomp.listeners.ssl.1 = 61614
320287

321288
Context("Mutual TLS", func() {
322289
It("adds TLS config when TLS is enabled", func() {
323-
instance = rabbitmqv1beta1.RabbitmqCluster{
324-
ObjectMeta: metav1.ObjectMeta{
325-
Name: "rabbit-tls",
326-
},
327-
Spec: rabbitmqv1beta1.RabbitmqClusterSpec{
328-
TLS: rabbitmqv1beta1.TLSSpec{
329-
SecretName: "tls-secret",
330-
CaSecretName: "tls-mutual-secret",
331-
},
332-
},
333-
}
290+
instance.ObjectMeta.Name = "rabbit-tls"
291+
instance.Spec.TLS.SecretName = "tls-secret"
292+
instance.Spec.TLS.CaSecretName = "tls-mutual-secret"
334293

335294
expectedRabbitmqConf := iniString(defaultRabbitmqConf(builder.Instance.Name) + `
336295
ssl_options.certfile = /etc/rabbitmq-tls/tls.crt
@@ -352,23 +311,12 @@ management.ssl.cacertfile = /etc/rabbitmq-tls/ca.crt
352311

353312
When("Web MQTT and Web STOMP are enabled", func() {
354313
It("adds TLS config for the additional plugins", func() {
355-
instance = rabbitmqv1beta1.RabbitmqCluster{
356-
ObjectMeta: metav1.ObjectMeta{
357-
Name: "rabbit-tls",
358-
},
359-
Spec: rabbitmqv1beta1.RabbitmqClusterSpec{
360-
TLS: rabbitmqv1beta1.TLSSpec{
361-
SecretName: "tls-secret",
362-
CaSecretName: "tls-mutual-secret",
363-
},
364-
Rabbitmq: rabbitmqv1beta1.RabbitmqClusterConfigurationSpec{
365-
AdditionalPlugins: []rabbitmqv1beta1.Plugin{
366-
"rabbitmq_web_mqtt",
367-
"rabbitmq_web_stomp",
368-
},
369-
},
370-
},
371-
}
314+
additionalPlugins := []rabbitmqv1beta1.Plugin{"rabbitmq_web_mqtt", "rabbitmq_web_stomp"}
315+
316+
instance.ObjectMeta.Name = "rabbit-tls"
317+
instance.Spec.TLS.SecretName = "tls-secret"
318+
instance.Spec.TLS.CaSecretName = "tls-mutual-secret"
319+
instance.Spec.Rabbitmq.AdditionalPlugins = additionalPlugins
372320

373321
expectedRabbitmqConf := iniString(defaultRabbitmqConf(builder.Instance.Name) + `
374322
ssl_options.certfile = /etc/rabbitmq-tls/tls.crt
@@ -404,18 +352,8 @@ management.ssl.cacertfile = /etc/rabbitmq-tls/ca.crt
404352
Context("Memory Limits", func() {
405353
It("sets a RabbitMQ memory limit with headroom when memory limits are specified", func() {
406354
const GiB int64 = 1073741824
407-
instance = rabbitmqv1beta1.RabbitmqCluster{
408-
ObjectMeta: metav1.ObjectMeta{
409-
Name: "rabbit-mem-limit",
410-
},
411-
Spec: rabbitmqv1beta1.RabbitmqClusterSpec{
412-
Resources: &corev1.ResourceRequirements{
413-
Limits: map[corev1.ResourceName]k8sresource.Quantity{
414-
corev1.ResourceMemory: k8sresource.MustParse("10Gi"),
415-
},
416-
},
417-
},
418-
}
355+
instance.ObjectMeta.Name = "rabbit-mem-limit"
356+
instance.Spec.Resources.Limits = map[corev1.ResourceName]k8sresource.Quantity{corev1.ResourceMemory: k8sresource.MustParse("10Gi")}
419357

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

0 commit comments

Comments
 (0)