From 7255eb59233f49376d4b8271d5daa17065abdcab Mon Sep 17 00:00:00 2001 From: AhmedGrati Date: Thu, 13 Jul 2023 12:22:02 +0100 Subject: [PATCH] fix missing image pull secrets Signed-off-by: AhmedGrati --- pkg/transformer/kubernetes/kubernetes_test.go | 22 +++++++++++++++++++ pkg/transformer/kubernetes/podspec.go | 6 ++++- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/pkg/transformer/kubernetes/kubernetes_test.go b/pkg/transformer/kubernetes/kubernetes_test.go index 712d45db..a1426a2b 100644 --- a/pkg/transformer/kubernetes/kubernetes_test.go +++ b/pkg/transformer/kubernetes/kubernetes_test.go @@ -1072,3 +1072,25 @@ func TestNetworkPoliciesGeneration(t *testing.T) { } } } + +func TestServiceGroupModeImagePullSecrets(t *testing.T) { + groupName := "pod_group" + serviceConfig := newServiceConfig() + komposeObject := kobject.KomposeObject{ + ServiceConfigs: map[string]kobject.ServiceConfig{"app": serviceConfig}, + } + k := Kubernetes{} + objs, err := k.Transform(komposeObject, kobject.ConvertOptions{ServiceGroupMode: groupName, GenerateNetworkPolicies: true}) + if err != nil { + t.Error(errors.Wrap(err, "k.Transform failed")) + } + expectedSecretsLen := len(serviceConfig.ImagePullSecret) + for _, obj := range objs { + if deployment, ok := obj.(*appsv1.Deployment); ok { + secretsLen := len(deployment.Spec.Template.Spec.ImagePullSecrets) + if secretsLen != expectedSecretsLen { + t.Errorf("Expected length of Deployment ImagePullSecrets to be equal to %v, got %v", expectedSecretsLen, secretsLen) + } + } + } +} diff --git a/pkg/transformer/kubernetes/podspec.go b/pkg/transformer/kubernetes/podspec.go index 80aa5a78..65ab1d8f 100644 --- a/pkg/transformer/kubernetes/podspec.go +++ b/pkg/transformer/kubernetes/podspec.go @@ -48,7 +48,11 @@ func AddContainer(service kobject.ServiceConfig, opt kobject.ConvertOptions) Pod LivenessProbe: configProbe(service.HealthChecks.Liveness), ReadinessProbe: configProbe(service.HealthChecks.Readiness), }) - + if service.ImagePullSecret != "" { + podSpec.ImagePullSecrets = append(podSpec.ImagePullSecrets, api.LocalObjectReference{ + Name: service.ImagePullSecret, + }) + } podSpec.Affinity = ConfigAffinity(service) } }