Skip to content

Commit eee6aba

Browse files
authored
Merge pull request #400 from rabbitmq/imagePullSecrets
Change spec.imagePullSecrets to spec.imagePullSecrets
2 parents 25d2528 + 0bcfb64 commit eee6aba

7 files changed

+42
-41
lines changed

Diff for: api/v1beta1/rabbitmqcluster_types.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@ type RabbitmqClusterSpec struct {
4545
// Image is the name of the RabbitMQ docker image to use for RabbitMQ nodes in the RabbitmqCluster.
4646
// +kubebuilder:default:="rabbitmq:3.8.9"
4747
Image string `json:"image,omitempty"`
48-
// Name of the Secret resource containing access credentials to the registry for the RabbitMQ image. Required if the docker registry is private.
49-
ImagePullSecret string `json:"imagePullSecret,omitempty"`
48+
// List of Secret resource containing access credentials to the registry for the RabbitMQ image. Required if the docker registry is private.
49+
ImagePullSecrets []corev1.LocalObjectReference `json:"imagePullSecrets,omitempty"`
5050
// +kubebuilder:default:={type: "ClusterIP"}
5151
Service RabbitmqClusterServiceSpec `json:"service,omitempty"`
5252
// +kubebuilder:default:={storage: "10Gi"}

Diff for: api/v1beta1/rabbitmqcluster_types_test.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -179,9 +179,9 @@ var _ = Describe("RabbitmqCluster", func() {
179179
Namespace: "default",
180180
},
181181
Spec: RabbitmqClusterSpec{
182-
Replicas: &three,
183-
Image: "rabbitmq-image-from-cr",
184-
ImagePullSecret: "my-super-secret",
182+
Replicas: &three,
183+
Image: "rabbitmq-image-from-cr",
184+
ImagePullSecrets: []corev1.LocalObjectReference{{Name: "my-super-secret"}},
185185
Service: RabbitmqClusterServiceSpec{
186186
Type: "NodePort",
187187
Annotations: map[string]string{

Diff for: api/v1beta1/zz_generated.deepcopy.go

+5
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: config/crd/bases/rabbitmq.com_rabbitmqclusters.yaml

+12-3
Original file line numberDiff line numberDiff line change
@@ -647,11 +647,20 @@ spec:
647647
description: Image is the name of the RabbitMQ docker image to use
648648
for RabbitMQ nodes in the RabbitmqCluster.
649649
type: string
650-
imagePullSecret:
651-
description: Name of the Secret resource containing access credentials
650+
imagePullSecrets:
651+
description: List of Secret resource containing access credentials
652652
to the registry for the RabbitMQ image. Required if the docker registry
653653
is private.
654-
type: string
654+
items:
655+
description: LocalObjectReference contains enough information to
656+
let you locate the referenced object inside the same namespace.
657+
properties:
658+
name:
659+
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
660+
TODO: Add other useful fields. apiVersion, kind, uid?'
661+
type: string
662+
type: object
663+
type: array
655664
override:
656665
properties:
657666
clientService:

Diff for: controllers/rabbitmqcluster_controller_test.go

+11-18
Original file line numberDiff line numberDiff line change
@@ -428,8 +428,7 @@ var _ = Describe("RabbitmqClusterController", func() {
428428
},
429429
},
430430
Spec: rabbitmqv1beta1.RabbitmqClusterSpec{
431-
Replicas: &one,
432-
ImagePullSecret: "rabbit-two-secret",
431+
Replicas: &one,
433432
},
434433
}
435434

@@ -459,8 +458,8 @@ var _ = Describe("RabbitmqClusterController", func() {
459458
Namespace: defaultNamespace,
460459
},
461460
Spec: rabbitmqv1beta1.RabbitmqClusterSpec{
462-
Replicas: &one,
463-
ImagePullSecret: "rabbit-two-secret",
461+
Replicas: &one,
462+
ImagePullSecrets: []corev1.LocalObjectReference{{Name: "rabbit-two-secret"}},
464463
},
465464
}
466465

@@ -502,9 +501,8 @@ var _ = Describe("RabbitmqClusterController", func() {
502501
Namespace: defaultNamespace,
503502
},
504503
Spec: rabbitmqv1beta1.RabbitmqClusterSpec{
505-
Replicas: &one,
506-
Affinity: affinity,
507-
ImagePullSecret: "rabbit-two-secret",
504+
Replicas: &one,
505+
Affinity: affinity,
508506
},
509507
}
510508
Expect(client.Create(ctx, cluster)).To(Succeed())
@@ -534,8 +532,7 @@ var _ = Describe("RabbitmqClusterController", func() {
534532
Namespace: defaultNamespace,
535533
},
536534
Spec: rabbitmqv1beta1.RabbitmqClusterSpec{
537-
Replicas: &one,
538-
ImagePullSecret: "rabbit-service-secret",
535+
Replicas: &one,
539536
},
540537
}
541538
cluster.Spec.Service.Type = "LoadBalancer"
@@ -561,8 +558,7 @@ var _ = Describe("RabbitmqClusterController", func() {
561558
Namespace: defaultNamespace,
562559
},
563560
Spec: rabbitmqv1beta1.RabbitmqClusterSpec{
564-
Replicas: &one,
565-
ImagePullSecret: "rabbit-resource-secret",
561+
Replicas: &one,
566562
},
567563
}
568564
cluster.Spec.Resources = &corev1.ResourceRequirements{
@@ -605,8 +601,7 @@ var _ = Describe("RabbitmqClusterController", func() {
605601
Namespace: defaultNamespace,
606602
},
607603
Spec: rabbitmqv1beta1.RabbitmqClusterSpec{
608-
Replicas: &one,
609-
ImagePullSecret: "rabbit-resource-secret",
604+
Replicas: &one,
610605
},
611606
}
612607
storageClassName := "my-storage-class"
@@ -636,8 +631,7 @@ var _ = Describe("RabbitmqClusterController", func() {
636631
Namespace: defaultNamespace,
637632
},
638633
Spec: rabbitmqv1beta1.RabbitmqClusterSpec{
639-
Replicas: &one,
640-
ImagePullSecret: "rabbit-two-secret",
634+
Replicas: &one,
641635
},
642636
}
643637
clientServiceName = cluster.ChildResourceName("client")
@@ -716,7 +710,7 @@ var _ = Describe("RabbitmqClusterController", func() {
716710

717711
It("the rabbitmq ImagePullSecret is updated", func() {
718712
Expect(updateWithRetry(cluster, func(r *rabbitmqv1beta1.RabbitmqCluster) {
719-
r.Spec.ImagePullSecret = "my-new-secret"
713+
r.Spec.ImagePullSecrets = []corev1.LocalObjectReference{{Name: "my-new-secret"}}
720714
})).To(Succeed())
721715

722716
Eventually(func() []corev1.LocalObjectReference {
@@ -917,8 +911,7 @@ var _ = Describe("RabbitmqClusterController", func() {
917911
Namespace: defaultNamespace,
918912
},
919913
Spec: rabbitmqv1beta1.RabbitmqClusterSpec{
920-
Replicas: &one,
921-
ImagePullSecret: "rabbit-two-secret",
914+
Replicas: &one,
922915
},
923916
}
924917
clientServiceName = cluster.ChildResourceName("client")

Diff for: internal/resource/statefulset.go

+1-7
Original file line numberDiff line numberDiff line change
@@ -245,12 +245,6 @@ func (builder *StatefulSetBuilder) podTemplateSpec(annotations, labels map[strin
245245
cpuRequest := k8sresource.MustParse(initContainerCPU)
246246
memoryRequest := k8sresource.MustParse(initContainerMemory)
247247

248-
//Image Pull Secret
249-
var imagePullSecrets []corev1.LocalObjectReference
250-
if builder.Instance.Spec.ImagePullSecret != "" {
251-
imagePullSecrets = append(imagePullSecrets, corev1.LocalObjectReference{Name: builder.Instance.Spec.ImagePullSecret})
252-
}
253-
254248
automountServiceAccountToken := true
255249
rabbitmqGID := int64(999)
256250
rabbitmqUID := int64(999)
@@ -506,7 +500,7 @@ func (builder *StatefulSetBuilder) podTemplateSpec(annotations, labels map[strin
506500
RunAsGroup: &rabbitmqGID,
507501
RunAsUser: &rabbitmqUID,
508502
},
509-
ImagePullSecrets: imagePullSecrets,
503+
ImagePullSecrets: builder.Instance.Spec.ImagePullSecrets,
510504
TerminationGracePeriodSeconds: &terminationGracePeriod,
511505
ServiceAccountName: builder.Instance.ChildResourceName(serviceAccountName),
512506
AutomountServiceAccountToken: &automountServiceAccountToken,

Diff for: internal/resource/statefulset_test.go

+8-8
Original file line numberDiff line numberDiff line change
@@ -675,12 +675,12 @@ var _ = Describe("StatefulSet", func() {
675675
})
676676
})
677677

678-
It("updates the image pull secret; sets it back to default after deleting the configuration", func() {
679-
stsBuilder.Instance.Spec.ImagePullSecret = "my-shiny-new-secret"
678+
It("updates the imagePullSecrets list; sets it back to empty list after deleting the configuration", func() {
679+
stsBuilder.Instance.Spec.ImagePullSecrets = []corev1.LocalObjectReference{{Name: "my-shiny-new-secret"}}
680680
Expect(stsBuilder.Update(statefulSet)).To(Succeed())
681681
Expect(statefulSet.Spec.Template.Spec.ImagePullSecrets).To(ConsistOf(corev1.LocalObjectReference{Name: "my-shiny-new-secret"}))
682682

683-
stsBuilder.Instance.Spec.ImagePullSecret = ""
683+
stsBuilder.Instance.Spec.ImagePullSecrets = nil
684684
Expect(stsBuilder.Update(statefulSet)).To(Succeed())
685685
Expect(statefulSet.Spec.Template.Spec.ImagePullSecrets).To(BeEmpty())
686686
})
@@ -1065,9 +1065,9 @@ var _ = Describe("StatefulSet", func() {
10651065
})
10661066

10671067
When("configures private image", func() {
1068-
It("uses the instance ImagePullSecret and image reference when provided", func() {
1068+
It("uses the instance ImagePullSecrets and image reference when provided", func() {
10691069
instance.Spec.Image = "my-private-repo/rabbitmq:latest"
1070-
instance.Spec.ImagePullSecret = "my-great-secret"
1070+
instance.Spec.ImagePullSecrets = []corev1.LocalObjectReference{{Name: "my-great-secret"}}
10711071
builder = &resource.RabbitmqResourceBuilder{
10721072
Instance: &instance,
10731073
Scheme: scheme,
@@ -1410,9 +1410,9 @@ func generateRabbitmqCluster() rabbitmqv1beta1.RabbitmqCluster {
14101410
Namespace: "foo-namespace",
14111411
},
14121412
Spec: rabbitmqv1beta1.RabbitmqClusterSpec{
1413-
Replicas: &one,
1414-
Image: "rabbitmq-image-from-cr",
1415-
ImagePullSecret: "my-super-secret",
1413+
Replicas: &one,
1414+
Image: "rabbitmq-image-from-cr",
1415+
ImagePullSecrets: []corev1.LocalObjectReference{{Name: "my-super-secret"}},
14161416
Service: rabbitmqv1beta1.RabbitmqClusterServiceSpec{
14171417
Type: "this-is-a-service",
14181418
Annotations: map[string]string{},

0 commit comments

Comments
 (0)