@@ -75,11 +75,11 @@ var defContainerResources = core_v1.ResourceRequirements{
7575}
7676
7777// EnsureDataPlane ensures an Envoy data plane (daemonset or deployment) exists for the given contour.
78- func EnsureDataPlane (ctx context.Context , cli client.Client , contour * model.Contour , contourImage , envoyImage string ) error {
78+ func EnsureDataPlane (ctx context.Context , cli client.Client , contour * model.Contour , contourImage , envoyImage , imagePullSecret string ) error {
7979 switch contour .Spec .EnvoyWorkloadType {
8080 // If a Deployment was specified, provision a Deployment.
8181 case model .WorkloadTypeDeployment :
82- desired := desiredDeployment (contour , contourImage , envoyImage )
82+ desired := desiredDeployment (contour , contourImage , envoyImage , imagePullSecret )
8383
8484 updater := func (ctx context.Context , cli client.Client , current , desired * apps_v1.Deployment ) error {
8585 differ := equality .DeploymentSelectorsDiffer (current , desired )
@@ -94,7 +94,7 @@ func EnsureDataPlane(ctx context.Context, cli client.Client, contour *model.Cont
9494
9595 // The default workload type is a DaemonSet.
9696 default :
97- desired := DesiredDaemonSet (contour , contourImage , envoyImage )
97+ desired := DesiredDaemonSet (contour , contourImage , envoyImage , imagePullSecret )
9898
9999 updater := func (ctx context.Context , cli client.Client , current , desired * apps_v1.DaemonSet ) error {
100100 differ := equality .DaemonSetSelectorsDiffer (current , desired )
@@ -335,7 +335,7 @@ func desiredContainers(contour *model.Contour, contourImage, envoyImage string)
335335// DesiredDaemonSet returns the desired DaemonSet for the provided contour using
336336// contourImage as the shutdown-manager/envoy-initconfig container images and
337337// envoyImage as Envoy's container image.
338- func DesiredDaemonSet (contour * model.Contour , contourImage , envoyImage string ) * apps_v1.DaemonSet {
338+ func DesiredDaemonSet (contour * model.Contour , contourImage , envoyImage , imagePullSecret string ) * apps_v1.DaemonSet {
339339 initContainers , containers := desiredContainers (contour , contourImage , envoyImage )
340340
341341 ds := & apps_v1.DaemonSet {
@@ -403,10 +403,18 @@ func DesiredDaemonSet(contour *model.Contour, contourImage, envoyImage string) *
403403 ds .Spec .Template .Spec .Tolerations = contour .Spec .NodePlacement .Envoy .Tolerations
404404 }
405405
406+ if imagePullSecret != "" {
407+ ds .Spec .Template .Spec .ImagePullSecrets = []core_v1.LocalObjectReference {
408+ {
409+ Name : imagePullSecret ,
410+ },
411+ }
412+ }
413+
406414 return ds
407415}
408416
409- func desiredDeployment (contour * model.Contour , contourImage , envoyImage string ) * apps_v1.Deployment {
417+ func desiredDeployment (contour * model.Contour , contourImage , envoyImage , imagePullSecret string ) * apps_v1.Deployment {
410418 initContainers , containers := desiredContainers (contour , contourImage , envoyImage )
411419
412420 deployment := & apps_v1.Deployment {
@@ -488,6 +496,14 @@ func desiredDeployment(contour *model.Contour, contourImage, envoyImage string)
488496 deployment .Spec .Template .Spec .Tolerations = contour .Spec .NodePlacement .Envoy .Tolerations
489497 }
490498
499+ if imagePullSecret != "" {
500+ deployment .Spec .Template .Spec .ImagePullSecrets = []core_v1.LocalObjectReference {
501+ {
502+ Name : imagePullSecret ,
503+ },
504+ }
505+ }
506+
491507 return deployment
492508}
493509
0 commit comments