diff --git a/pkg/transformer/kubernetes/kubernetes_test.go b/pkg/transformer/kubernetes/kubernetes_test.go index 712d45dbb..a1426a2bc 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 80aa5a78e..65ab1d8f1 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) } }