@@ -497,7 +497,7 @@ func initLifecycleContainer(image string) (v1.Container, error) {
497497}
498498
499499// newPod creates a basic Pod for given settings.
500- func newPod (deploymentName , ns , role , id , podName string , finalizers []string , tolerations []v1.Toleration , serviceAccountName string , nodeSelector map [string ]string ) v1.Pod {
500+ func newPod (deploymentName , ns , role , id , podName string , imagePullSecrets [] string , finalizers []string , tolerations []v1.Toleration , serviceAccountName string , nodeSelector map [string ]string ) v1.Pod {
501501 hostname := CreatePodHostName (deploymentName , role , id )
502502 p := v1.Pod {
503503 ObjectMeta : metav1.ObjectMeta {
@@ -514,6 +514,18 @@ func newPod(deploymentName, ns, role, id, podName string, finalizers []string, t
514514 NodeSelector : nodeSelector ,
515515 },
516516 }
517+
518+ // Add ImagePullSecrets
519+ if imagePullSecrets != nil {
520+ imagePullSecretsReference := make ([]v1.LocalObjectReference , len (imagePullSecrets ))
521+ for id := range imagePullSecrets {
522+ imagePullSecretsReference [id ] = v1.LocalObjectReference {
523+ Name : imagePullSecrets [id ],
524+ }
525+ }
526+ p .Spec .ImagePullSecrets = imagePullSecretsReference
527+ }
528+
517529 return p
518530}
519531
@@ -530,15 +542,16 @@ type ArangodbExporterContainerConf struct {
530542// If the pod already exists, nil is returned.
531543// If another error occurs, that error is returned.
532544func CreateArangodPod (kubecli kubernetes.Interface , developmentMode bool , deployment APIObject ,
533- role , id , podName , pvcName , image , lifecycleImage , alpineImage string , imagePullPolicy v1.PullPolicy ,
545+ role , id , podName , pvcName , image , lifecycleImage , alpineImage string ,
546+ imagePullPolicy v1.PullPolicy , imagePullSecrets []string ,
534547 engine string , requireUUID bool , terminationGracePeriod time.Duration ,
535548 args []string , env map [string ]EnvValue , finalizers []string ,
536549 livenessProbe * HTTPProbeConfig , readinessProbe * HTTPProbeConfig , tolerations []v1.Toleration , serviceAccountName string ,
537550 tlsKeyfileSecretName , rocksdbEncryptionSecretName string , clusterJWTSecretName string , nodeSelector map [string ]string ,
538551 podPriorityClassName string , resources v1.ResourceRequirements , exporter * ArangodbExporterContainerConf , sidecars []v1.Container , vct * v1.PersistentVolumeClaim ) error {
539552
540553 // Prepare basic pod
541- p := newPod (deployment .GetName (), deployment .GetNamespace (), role , id , podName , finalizers , tolerations , serviceAccountName , nodeSelector )
554+ p := newPod (deployment .GetName (), deployment .GetNamespace (), role , id , podName , imagePullSecrets , finalizers , tolerations , serviceAccountName , nodeSelector )
542555 terminationGracePeriodSeconds := int64 (math .Ceil (terminationGracePeriod .Seconds ()))
543556 p .Spec .TerminationGracePeriodSeconds = & terminationGracePeriodSeconds
544557
@@ -688,12 +701,13 @@ func CreateArangodPod(kubecli kubernetes.Interface, developmentMode bool, deploy
688701// CreateArangoSyncPod creates a Pod that runs `arangosync`.
689702// If the pod already exists, nil is returned.
690703// If another error occurs, that error is returned.
691- func CreateArangoSyncPod (kubecli kubernetes.Interface , developmentMode bool , deployment APIObject , role , id , podName , image , lifecycleImage string , imagePullPolicy v1.PullPolicy ,
704+ func CreateArangoSyncPod (kubecli kubernetes.Interface , developmentMode bool , deployment APIObject , role , id , podName , image , lifecycleImage string ,
705+ imagePullPolicy v1.PullPolicy , imagePullSecrets []string ,
692706 terminationGracePeriod time.Duration , args []string , env map [string ]EnvValue , livenessProbe * HTTPProbeConfig , tolerations []v1.Toleration , serviceAccountName string ,
693707 tlsKeyfileSecretName , clientAuthCASecretName , masterJWTSecretName , clusterJWTSecretName , affinityWithRole string , nodeSelector map [string ]string ,
694708 podPriorityClassName string , resources v1.ResourceRequirements , sidecars []v1.Container ) error {
695709 // Prepare basic pod
696- p := newPod (deployment .GetName (), deployment .GetNamespace (), role , id , podName , nil , tolerations , serviceAccountName , nodeSelector )
710+ p := newPod (deployment .GetName (), deployment .GetNamespace (), role , id , podName , imagePullSecrets , nil , tolerations , serviceAccountName , nodeSelector )
697711 terminationGracePeriodSeconds := int64 (math .Ceil (terminationGracePeriod .Seconds ()))
698712 p .Spec .TerminationGracePeriodSeconds = & terminationGracePeriodSeconds
699713
0 commit comments