From 9e9d4420b69c9061770f7ca4367139fbd3ec4e11 Mon Sep 17 00:00:00 2001 From: Garron Moore Date: Wed, 20 Nov 2019 10:53:07 -0800 Subject: [PATCH] Propagating configured imagePullSecrets to the Image This fixes #220 --- .../knativeserving/common/images.go | 12 +++++----- .../knativeserving/common/images_test.go | 23 ++++++++++++++++--- 2 files changed, 26 insertions(+), 9 deletions(-) diff --git a/pkg/reconciler/knativeserving/common/images.go b/pkg/reconciler/knativeserving/common/images.go index b24024df..cc330a42 100644 --- a/pkg/reconciler/knativeserving/common/images.go +++ b/pkg/reconciler/knativeserving/common/images.go @@ -69,7 +69,8 @@ func updateDeployment(instance *servingv1alpha1.KnativeServing, u *unstructured. log.Debugw("Updating Deployment", "name", u.GetName(), "registry", registry) updateDeploymentImage(deployment, ®istry, log) - updatePodImagePullSecrets(deployment, ®istry, log) + deployment.Spec.Template.Spec.ImagePullSecrets = addImagePullSecrets( + deployment.Spec.Template.Spec.ImagePullSecrets, ®istry, log) err = scheme.Scheme.Convert(deployment, u, nil) if err != nil { return err @@ -119,6 +120,7 @@ func updateImageSpec(image *caching.Image, registry *servingv1alpha1.Registry, l log.Debugf("Updating image from: %v, to: %v", image.Spec.Image, newImage) image.Spec.Image = newImage } + image.Spec.ImagePullSecrets = addImagePullSecrets(image.Spec.ImagePullSecrets, registry, log) log.Debugw("Finished updating image", "image", image.GetName()) } @@ -139,12 +141,10 @@ func replaceName(imageTemplate string, name string) string { return strings.ReplaceAll(imageTemplate, containerNameVariable, name) } -func updatePodImagePullSecrets(deployment *appsv1.Deployment, registry *servingv1alpha1.Registry, log *zap.SugaredLogger) { +func addImagePullSecrets(imagePullSecrets []corev1.LocalObjectReference, registry *servingv1alpha1.Registry, log *zap.SugaredLogger) []corev1.LocalObjectReference { if len(registry.ImagePullSecrets) > 0 { log.Debugf("Adding ImagePullSecrets: %v", registry.ImagePullSecrets) - deployment.Spec.Template.Spec.ImagePullSecrets = append( - deployment.Spec.Template.Spec.ImagePullSecrets, - registry.ImagePullSecrets..., - ) + imagePullSecrets = append(imagePullSecrets, registry.ImagePullSecrets...) } + return imagePullSecrets } diff --git a/pkg/reconciler/knativeserving/common/images_test.go b/pkg/reconciler/knativeserving/common/images_test.go index 74ea1843..f30cfd7a 100644 --- a/pkg/reconciler/knativeserving/common/images_test.go +++ b/pkg/reconciler/knativeserving/common/images_test.go @@ -167,7 +167,7 @@ type updateImageSpecTest struct { name string in string registry servingv1alpha1.Registry - expected string + expected caching.ImageSpec } var updateImageSpecTests = []updateImageSpecTest{ @@ -177,7 +177,24 @@ var updateImageSpecTests = []updateImageSpecTest{ registry: servingv1alpha1.Registry{ Default: "new-registry.io/test/path/${NAME}:new-tag", }, - expected: "new-registry.io/test/path/UsesNameFromDefault:new-tag", + expected: caching.ImageSpec{ + Image: "new-registry.io/test/path/UsesNameFromDefault:new-tag", + }, + }, + { + name: "AddsImagePullSecrets", + in: "gcr.io/knative-releases/github.com/knative/serving/cmd/queue@sha256:1e40c99ff5977daa2d69873fff604c6d09651af1f9ff15aadf8849b3ee77ab45", + registry: servingv1alpha1.Registry{ + ImagePullSecrets: []corev1.LocalObjectReference{ + {Name: "new-secret"}, + }, + }, + expected: caching.ImageSpec{ + Image: "gcr.io/knative-releases/github.com/knative/serving/cmd/queue@sha256:1e40c99ff5977daa2d69873fff604c6d09651af1f9ff15aadf8849b3ee77ab45", + ImagePullSecrets: []corev1.LocalObjectReference{ + {Name: "new-secret"}, + }, + }, }, } @@ -204,7 +221,7 @@ func validateUnstructedImageChanged(t *testing.T, tt *updateImageSpecTest, u *un var image = &caching.Image{} err := scheme.Scheme.Convert(u, image, nil) assertEqual(t, err, nil) - assertEqual(t, image.Spec.Image, tt.expected) + assertDeepEqual(t, image.Spec, tt.expected) } func makeImage(t *testing.T, tt *updateImageSpecTest) *caching.Image {