@@ -759,6 +759,10 @@ var _ = Describe("StatefulSet", func() {
759
759
},
760
760
},
761
761
},
762
+ {
763
+ Name : "RABBITMQ_ENABLED_PLUGINS_FILE" ,
764
+ Value : "/operator/enabled_plugins" ,
765
+ },
762
766
{
763
767
Name : "K8S_SERVICE_NAME" ,
764
768
Value : instance .ChildResourceName ("headless" ),
@@ -781,33 +785,41 @@ var _ = Describe("StatefulSet", func() {
781
785
Expect (container .Env ).To (ConsistOf (requiredEnvVariables ))
782
786
})
783
787
784
- It ("creates required Volume Mounts for the rabbitmq container" , func () {
785
- stsBuilder := builder .StatefulSet ()
786
- Expect (stsBuilder .Update (statefulSet )).To (Succeed ())
788
+ Context ("Rabbitmq container volume mounts" , func () {
789
+ DescribeTable ("Volume mounts depending on spec configuration" ,
790
+ func (rabbitmqEnv , advancedConfig string ) {
791
+ stsBuilder := builder .StatefulSet ()
792
+ stsBuilder .Instance .Spec .Rabbitmq .EnvConfig = rabbitmqEnv
793
+ stsBuilder .Instance .Spec .Rabbitmq .AdvancedConfig = advancedConfig
794
+ Expect (stsBuilder .Update (statefulSet )).To (Succeed ())
787
795
788
- container := extractContainer ( statefulSet . Spec . Template . Spec . Containers , "rabbitmq" )
789
- Expect ( container . VolumeMounts ). To ( ConsistOf (
790
- corev1. VolumeMount {
791
- Name : "persistence" ,
792
- MountPath : "/var/lib/ rabbitmq/mnesia/" ,
793
- },
794
- corev1. VolumeMount {
795
- Name : "rabbitmq-etc" ,
796
- MountPath : "/etc/rabbitmq/" ,
797
- },
798
- corev1.VolumeMount {
799
- Name : "rabbitmq-confd" ,
800
- MountPath : "/etc/rabbitmq/conf.d/" ,
801
- },
802
- corev1. VolumeMount {
803
- Name : "rabbitmq-erlang-cookie" ,
804
- MountPath : "/var/lib/ rabbitmq/" ,
805
- },
806
- corev1. VolumeMount {
807
- Name : "pod-info" ,
808
- MountPath : "/etc/pod-info/" ,
796
+ expectedVolumeMounts := []corev1. VolumeMount {
797
+ { Name : "persistence" , MountPath : "/var/lib/rabbitmq/mnesia/" },
798
+ { Name : "rabbitmq-erlang-cookie" , MountPath : "/var/lib/rabbitmq/" },
799
+ { Name : "pod-info" , MountPath : "/etc/pod-info/" } ,
800
+ { Name : "rabbitmq-confd" , MountPath : "/etc/ rabbitmq/conf.d/default_user.conf" , SubPath : "default_user.conf" } ,
801
+ { Name : "server-conf" , MountPath : "/etc/rabbitmq/rabbitmq.conf" , SubPath : "rabbitmq.conf" },
802
+ { Name : "rabbitmq-plugins" , MountPath : "/operator" },
803
+ }
804
+
805
+ if rabbitmqEnv != "" {
806
+ expectedVolumeMounts = append ( expectedVolumeMounts , corev1.VolumeMount {
807
+ Name : "server-conf" , MountPath : "/etc/rabbitmq/rabbitmq-env.conf" , SubPath : "rabbitmq-env.conf" })
808
+ }
809
+
810
+ if advancedConfig != "" {
811
+ expectedVolumeMounts = append ( expectedVolumeMounts , corev1. VolumeMount {
812
+ Name : "server-conf" , MountPath : "/etc/ rabbitmq/advanced.config" , SubPath : "advanced.config" })
813
+ }
814
+
815
+ container := extractContainer ( statefulSet . Spec . Template . Spec . Containers , "rabbitmq" )
816
+ Expect ( container . VolumeMounts ). To ( ConsistOf ( expectedVolumeMounts ))
809
817
},
810
- ))
818
+ Entry ("Both env and advanced configs are set" , "rabbitmq-env-is-set" , "advanced-config-is-set" ),
819
+ Entry ("Only env config is set" , "rabbitmq-env-is-set" , "" ),
820
+ Entry ("Only advanced config is set" , "" , "advanced-config-is-set" ),
821
+ Entry ("No configs are set" , "" , "" ),
822
+ )
811
823
})
812
824
813
825
It ("defines the expected volumes" , func () {
@@ -835,12 +847,6 @@ var _ = Describe("StatefulSet", func() {
835
847
},
836
848
},
837
849
},
838
- corev1.Volume {
839
- Name : "rabbitmq-etc" ,
840
- VolumeSource : corev1.VolumeSource {
841
- EmptyDir : & corev1.EmptyDirVolumeSource {},
842
- },
843
- },
844
850
corev1.Volume {
845
851
Name : "rabbitmq-confd" ,
846
852
VolumeSource : corev1.VolumeSource {
@@ -877,6 +883,12 @@ var _ = Describe("StatefulSet", func() {
877
883
},
878
884
},
879
885
},
886
+ corev1.Volume {
887
+ Name : "rabbitmq-plugins" ,
888
+ VolumeSource : corev1.VolumeSource {
889
+ EmptyDir : & corev1.EmptyDirVolumeSource {},
890
+ },
891
+ },
880
892
corev1.Volume {
881
893
Name : "pod-info" ,
882
894
VolumeSource : corev1.VolumeSource {
@@ -950,33 +962,18 @@ var _ = Describe("StatefulSet", func() {
950
962
})),
951
963
})),
952
964
"Command" : ConsistOf (
953
- "sh" , "-c" , "cp /tmp/rabbitmq/rabbitmq.conf /etc/rabbitmq/rabbitmq.conf " +
954
- "&& chown 999:999 /etc/rabbitmq/rabbitmq.conf " +
955
- "&& echo '' >> /etc/rabbitmq/rabbitmq.conf ; " +
956
- "cp /tmp/rabbitmq/advanced.config /etc/rabbitmq/advanced.config " +
957
- "&& chown 999:999 /etc/rabbitmq/advanced.config ; " +
958
- "cp /tmp/rabbitmq/rabbitmq-env.conf /etc/rabbitmq/rabbitmq-env.conf " +
959
- "&& chown 999:999 /etc/rabbitmq/rabbitmq-env.conf ; " +
960
- "cp /tmp/erlang-cookie-secret/.erlang.cookie /var/lib/rabbitmq/.erlang.cookie " +
965
+ "sh" , "-c" , "cp /tmp/erlang-cookie-secret/.erlang.cookie /var/lib/rabbitmq/.erlang.cookie " +
961
966
"&& chown 999:999 /var/lib/rabbitmq/.erlang.cookie " +
962
967
"&& chmod 600 /var/lib/rabbitmq/.erlang.cookie ; " +
963
- "cp /tmp/rabbitmq-plugins/enabled_plugins /etc/rabbitmq /enabled_plugins " +
964
- "&& chown 999:999 /etc/rabbitmq /enabled_plugins ; " +
968
+ "cp /tmp/rabbitmq-plugins/enabled_plugins /operator /enabled_plugins " +
969
+ "&& chown 999:999 /operator /enabled_plugins ; " +
965
970
"chgrp 999 /var/lib/rabbitmq/mnesia/" ,
966
971
),
967
972
"VolumeMounts" : ConsistOf (
968
- corev1.VolumeMount {
969
- Name : "server-conf" ,
970
- MountPath : "/tmp/rabbitmq/" ,
971
- },
972
973
corev1.VolumeMount {
973
974
Name : "plugins-conf" ,
974
975
MountPath : "/tmp/rabbitmq-plugins/" ,
975
976
},
976
- corev1.VolumeMount {
977
- Name : "rabbitmq-etc" ,
978
- MountPath : "/etc/rabbitmq/" ,
979
- },
980
977
corev1.VolumeMount {
981
978
Name : "rabbitmq-erlang-cookie" ,
982
979
MountPath : "/var/lib/rabbitmq/" ,
@@ -985,6 +982,10 @@ var _ = Describe("StatefulSet", func() {
985
982
Name : "erlang-cookie-secret" ,
986
983
MountPath : "/tmp/erlang-cookie-secret/" ,
987
984
},
985
+ corev1.VolumeMount {
986
+ Name : "rabbitmq-plugins" ,
987
+ MountPath : "/operator" ,
988
+ },
988
989
corev1.VolumeMount {
989
990
Name : "persistence" ,
990
991
MountPath : "/var/lib/rabbitmq/mnesia/" ,
@@ -1012,7 +1013,6 @@ var _ = Describe("StatefulSet", func() {
1012
1013
})
1013
1014
1014
1015
Context ("resources requirements" , func () {
1015
-
1016
1016
It ("sets StatefulSet resource requirements" , func () {
1017
1017
instance .Spec .Resources = & corev1.ResourceRequirements {
1018
1018
Requests : corev1.ResourceList {
@@ -1304,6 +1304,10 @@ var _ = Describe("StatefulSet", func() {
1304
1304
Name : "RABBITMQ_USE_LONGNAME" ,
1305
1305
Value : "true" ,
1306
1306
},
1307
+ corev1.EnvVar {
1308
+ Name : "RABBITMQ_ENABLED_PLUGINS_FILE" ,
1309
+ Value : "/operator/enabled_plugins" ,
1310
+ },
1307
1311
corev1.EnvVar {
1308
1312
Name : "RABBITMQ_NODENAME" ,
1309
1313
Value : "rabbit@$(MY_POD_NAME).$(K8S_SERVICE_NAME).$(MY_POD_NAMESPACE)" ,
@@ -1325,13 +1329,10 @@ var _ = Describe("StatefulSet", func() {
1325
1329
Name : "persistence" ,
1326
1330
MountPath : "/var/lib/rabbitmq/mnesia/" ,
1327
1331
},
1328
- corev1.VolumeMount {
1329
- Name : "rabbitmq-etc" ,
1330
- MountPath : "/etc/rabbitmq/" ,
1331
- },
1332
1332
corev1.VolumeMount {
1333
1333
Name : "rabbitmq-confd" ,
1334
- MountPath : "/etc/rabbitmq/conf.d/" ,
1334
+ MountPath : "/etc/rabbitmq/conf.d/default_user.conf" ,
1335
+ SubPath : "default_user.conf" ,
1335
1336
},
1336
1337
corev1.VolumeMount {
1337
1338
Name : "rabbitmq-erlang-cookie" ,
@@ -1341,10 +1342,17 @@ var _ = Describe("StatefulSet", func() {
1341
1342
Name : "pod-info" ,
1342
1343
MountPath : "/etc/pod-info/" ,
1343
1344
},
1345
+ corev1.VolumeMount {
1346
+ Name : "server-conf" ,
1347
+ MountPath : "/etc/rabbitmq/rabbitmq.conf" ,
1348
+ SubPath : "rabbitmq.conf" ,
1349
+ },
1350
+ corev1.VolumeMount {
1351
+ Name : "rabbitmq-plugins" ,
1352
+ MountPath : "/operator" ,
1353
+ },
1344
1354
))
1345
-
1346
1355
})
1347
-
1348
1356
})
1349
1357
1350
1358
It ("ensures override takes precedence when same property is set both at the top level and at the override level" , func () {
@@ -1379,7 +1387,6 @@ var _ = Describe("StatefulSet", func() {
1379
1387
Expect (* statefulSet .Spec .Replicas ).To (Equal (int32 (4 )))
1380
1388
Expect (extractContainer (statefulSet .Spec .Template .Spec .Containers , "rabbitmq" ).Image ).To (Equal ("override-image" ))
1381
1389
})
1382
-
1383
1390
})
1384
1391
})
1385
1392
})
0 commit comments