@@ -13,6 +13,7 @@ import (
1313 . "github.com/onsi/ginkgo"
1414 . "github.com/onsi/ginkgo/extensions/table"
1515 . "github.com/onsi/gomega"
16+ . "github.com/onsi/gomega/gstruct"
1617 rabbitmqv1beta1 "github.com/rabbitmq/cluster-operator/api/v1beta1"
1718 "github.com/rabbitmq/cluster-operator/internal/resource"
1819 appsv1 "k8s.io/api/apps/v1"
@@ -22,6 +23,7 @@ import (
2223 v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2324 "k8s.io/apimachinery/pkg/runtime"
2425 defaultscheme "k8s.io/client-go/kubernetes/scheme"
26+ "k8s.io/utils/pointer"
2527)
2628
2729var _ = Describe ("StatefulSet" , func () {
@@ -95,7 +97,6 @@ var _ = Describe("StatefulSet", func() {
9597 })
9698 Context ("PVC template" , func () {
9799 It ("creates the required PersistentVolumeClaim" , func () {
98- truth := true
99100 q , _ := k8sresource .ParseQuantity ("10Gi" )
100101
101102 obj , err := stsBuilder .Build ()
@@ -117,8 +118,8 @@ var _ = Describe("StatefulSet", func() {
117118 Kind : "RabbitmqCluster" ,
118119 Name : instance .Name ,
119120 UID : "" ,
120- Controller : & truth ,
121- BlockOwnerDeletion : & truth ,
121+ Controller : pointer . BoolPtr ( true ) ,
122+ BlockOwnerDeletion : pointer . BoolPtr ( false ) ,
122123 },
123124 },
124125 Annotations : map [string ]string {},
@@ -170,7 +171,6 @@ var _ = Describe("StatefulSet", func() {
170171
171172 It ("overrides the PVC list" , func () {
172173 storageClass := "my-storage-class"
173- truth := true
174174 builder .Instance .Spec .Override .StatefulSet = & rabbitmqv1beta1.StatefulSet {
175175 Spec : & rabbitmqv1beta1.StatefulSetSpec {
176176 VolumeClaimTemplates : []rabbitmqv1beta1.PersistentVolumeClaim {
@@ -221,8 +221,8 @@ var _ = Describe("StatefulSet", func() {
221221 Kind : "RabbitmqCluster" ,
222222 Name : instance .Name ,
223223 UID : "" ,
224- Controller : & truth ,
225- BlockOwnerDeletion : & truth ,
224+ Controller : pointer . BoolPtr ( true ) ,
225+ BlockOwnerDeletion : pointer . BoolPtr ( false ) ,
226226 },
227227 },
228228 },
@@ -245,8 +245,8 @@ var _ = Describe("StatefulSet", func() {
245245 Kind : "RabbitmqCluster" ,
246246 Name : instance .Name ,
247247 UID : "" ,
248- Controller : & truth ,
249- BlockOwnerDeletion : & truth ,
248+ Controller : pointer . BoolPtr ( true ) ,
249+ BlockOwnerDeletion : pointer . BoolPtr ( false ) ,
250250 },
251251 },
252252 },
@@ -942,45 +942,59 @@ var _ = Describe("StatefulSet", func() {
942942 Expect (stsBuilder .Update (statefulSet )).To (Succeed ())
943943
944944 initContainers := statefulSet .Spec .Template .Spec .InitContainers
945- Expect (len (initContainers )).To (Equal (1 ))
946-
947- container := extractContainer (initContainers , "copy-config" )
948- Expect (container .Command ).To (Equal ([]string {
949- "sh" , "-c" , "cp /tmp/rabbitmq/rabbitmq.conf /etc/rabbitmq/rabbitmq.conf && echo '' >> /etc/rabbitmq/rabbitmq.conf ; " +
950- "cp /tmp/rabbitmq/advanced.config /etc/rabbitmq/advanced.config ; " +
951- "cp /tmp/rabbitmq/rabbitmq-env.conf /etc/rabbitmq/rabbitmq-env.conf ; " +
952- "cp /tmp/erlang-cookie-secret/.erlang.cookie /var/lib/rabbitmq/.erlang.cookie " +
953- "&& chown 999:999 /var/lib/rabbitmq/.erlang.cookie " +
954- "&& chmod 600 /var/lib/rabbitmq/.erlang.cookie ; " +
955- "cp /tmp/rabbitmq-plugins/enabled_plugins /etc/rabbitmq/enabled_plugins " +
956- "&& chown 999:999 /etc/rabbitmq/enabled_plugins" ,
945+ Expect (initContainers ).To (HaveLen (1 ))
946+
947+ initContainer := extractContainer (initContainers , "setup-container" )
948+ Expect (initContainer ).To (MatchFields (IgnoreExtras , Fields {
949+ "Image" : Equal ("rabbitmq-image-from-cr" ),
950+ "SecurityContext" : PointTo (MatchFields (IgnoreExtras , Fields {
951+ "Capabilities" : PointTo (MatchAllFields (Fields {
952+ "Drop" : ConsistOf ([]corev1.Capability {"ALL" }),
953+ "Add" : ConsistOf ([]corev1.Capability {"CHOWN" , "FOWNER" }),
954+ })),
955+ })),
956+ "Command" : ConsistOf (
957+ "sh" , "-c" , "cp /tmp/rabbitmq/rabbitmq.conf /etc/rabbitmq/rabbitmq.conf " +
958+ "&& chown 999:999 /etc/rabbitmq/rabbitmq.conf " +
959+ "&& echo '' >> /etc/rabbitmq/rabbitmq.conf ; " +
960+ "cp /tmp/rabbitmq/advanced.config /etc/rabbitmq/advanced.config " +
961+ "&& chown 999:999 /etc/rabbitmq/advanced.config ; " +
962+ "cp /tmp/rabbitmq/rabbitmq-env.conf /etc/rabbitmq/rabbitmq-env.conf " +
963+ "&& chown 999:999 /etc/rabbitmq/rabbitmq-env.conf ; " +
964+ "cp /tmp/erlang-cookie-secret/.erlang.cookie /var/lib/rabbitmq/.erlang.cookie " +
965+ "&& chown 999:999 /var/lib/rabbitmq/.erlang.cookie " +
966+ "&& chmod 600 /var/lib/rabbitmq/.erlang.cookie ; " +
967+ "cp /tmp/rabbitmq-plugins/enabled_plugins /etc/rabbitmq/enabled_plugins " +
968+ "&& chown 999:999 /etc/rabbitmq/enabled_plugins ; " +
969+ "chgrp 999 /var/lib/rabbitmq/mnesia/" ,
970+ ),
971+ "VolumeMounts" : ConsistOf (
972+ corev1.VolumeMount {
973+ Name : "server-conf" ,
974+ MountPath : "/tmp/rabbitmq/" ,
975+ },
976+ corev1.VolumeMount {
977+ Name : "plugins-conf" ,
978+ MountPath : "/tmp/rabbitmq-plugins/" ,
979+ },
980+ corev1.VolumeMount {
981+ Name : "rabbitmq-etc" ,
982+ MountPath : "/etc/rabbitmq/" ,
983+ },
984+ corev1.VolumeMount {
985+ Name : "rabbitmq-erlang-cookie" ,
986+ MountPath : "/var/lib/rabbitmq/" ,
987+ },
988+ corev1.VolumeMount {
989+ Name : "erlang-cookie-secret" ,
990+ MountPath : "/tmp/erlang-cookie-secret/" ,
991+ },
992+ corev1.VolumeMount {
993+ Name : "persistence" ,
994+ MountPath : "/var/lib/rabbitmq/mnesia/" ,
995+ },
996+ ),
957997 }))
958-
959- Expect (container .VolumeMounts ).To (ConsistOf (
960- corev1.VolumeMount {
961- Name : "server-conf" ,
962- MountPath : "/tmp/rabbitmq/" ,
963- },
964- corev1.VolumeMount {
965- Name : "plugins-conf" ,
966- MountPath : "/tmp/rabbitmq-plugins/" ,
967- },
968-
969- corev1.VolumeMount {
970- Name : "rabbitmq-etc" ,
971- MountPath : "/etc/rabbitmq/" ,
972- },
973- corev1.VolumeMount {
974- Name : "rabbitmq-erlang-cookie" ,
975- MountPath : "/var/lib/rabbitmq/" ,
976- },
977- corev1.VolumeMount {
978- Name : "erlang-cookie-secret" ,
979- MountPath : "/tmp/erlang-cookie-secret/" ,
980- },
981- ))
982-
983- Expect (container .Image ).To (Equal ("rabbitmq-image-from-cr" ))
984998 })
985999
9861000 It ("adds the required terminationGracePeriodSeconds" , func () {
0 commit comments