From 082e2351a093ac6e399445cadc5c9d216d76fb8c Mon Sep 17 00:00:00 2001 From: Abhishek Date: Tue, 21 Feb 2017 13:27:38 +0530 Subject: [PATCH] abstract_out_api.PodSpec --- pkg/transformer/kubernetes/kubernetes.go | 49 +++++++------------ pkg/transformer/kubernetes/kubernetes_test.go | 9 ++++ pkg/transformer/openshift/openshift.go | 10 +--- 3 files changed, 27 insertions(+), 41 deletions(-) diff --git a/pkg/transformer/kubernetes/kubernetes.go b/pkg/transformer/kubernetes/kubernetes.go index 04d63d22..f22b75cb 100644 --- a/pkg/transformer/kubernetes/kubernetes.go +++ b/pkg/transformer/kubernetes/kubernetes.go @@ -104,6 +104,19 @@ func (k *Kubernetes) CheckUnsupportedKey(komposeObject *kobject.KomposeObject, u return keysFound } +// InitPodSpec creates the pod specification +func (k *Kubernetes) InitPodSpec(name string, image string) api.PodSpec { + pod := api.PodSpec{ + Containers: []api.Container{ + { + Name: name, + Image: image, + }, + }, + } + return pod +} + // InitRC initializes Kubernetes ReplicationController object func (k *Kubernetes) InitRC(name string, service kobject.ServiceConfig, replicas int) *api.ReplicationController { rc := &api.ReplicationController{ @@ -120,14 +133,7 @@ func (k *Kubernetes) InitRC(name string, service kobject.ServiceConfig, replicas ObjectMeta: api.ObjectMeta{ Labels: transformer.ConfigLabels(name), }, - Spec: api.PodSpec{ - Containers: []api.Container{ - { - Name: name, - Image: service.Image, - }, - }, - }, + Spec: k.InitPodSpec(name, service.Image), }, }, } @@ -165,14 +171,7 @@ func (k *Kubernetes) InitD(name string, service kobject.ServiceConfig, replicas Spec: extensions.DeploymentSpec{ Replicas: int32(replicas), Template: api.PodTemplateSpec{ - Spec: api.PodSpec{ - Containers: []api.Container{ - { - Name: name, - Image: service.Image, - }, - }, - }, + Spec: k.InitPodSpec(name, service.Image), }, }, } @@ -191,14 +190,7 @@ func (k *Kubernetes) InitDS(name string, service kobject.ServiceConfig) *extensi }, Spec: extensions.DaemonSetSpec{ Template: api.PodTemplateSpec{ - Spec: api.PodSpec{ - Containers: []api.Container{ - { - Name: name, - Image: service.Image, - }, - }, - }, + Spec: k.InitPodSpec(name, service.Image), }, }, } @@ -453,14 +445,7 @@ func (k *Kubernetes) InitPod(name string, service kobject.ServiceConfig) *api.Po ObjectMeta: api.ObjectMeta{ Name: name, }, - Spec: api.PodSpec{ - Containers: []api.Container{ - { - Name: name, - Image: service.Image, - }, - }, - }, + Spec: k.InitPodSpec(name, service.Image), } return &pod } diff --git a/pkg/transformer/kubernetes/kubernetes_test.go b/pkg/transformer/kubernetes/kubernetes_test.go index 9c920771..b84bff5d 100644 --- a/pkg/transformer/kubernetes/kubernetes_test.go +++ b/pkg/transformer/kubernetes/kubernetes_test.go @@ -502,3 +502,12 @@ func TestRestartOnFailure(t *testing.T) { } t.Fatalf("Process ran with err %v, want exit status 1", err) } + +func TestInitPodSpec(t *testing.T) { + name := "foo" + k := Kubernetes{} + result := k.InitPodSpec(name, newServiceConfig().Image) + if result.Containers[0].Name != "foo" && result.Containers[0].Image != "image" { + t.Fatalf("Pod object not found") + } +} diff --git a/pkg/transformer/openshift/openshift.go b/pkg/transformer/openshift/openshift.go index b3a4331d..e2307d8f 100644 --- a/pkg/transformer/openshift/openshift.go +++ b/pkg/transformer/openshift/openshift.go @@ -240,15 +240,7 @@ func (o *OpenShift) initDeploymentConfig(name string, service kobject.ServiceCon ObjectMeta: api.ObjectMeta{ Labels: map[string]string{"service": name}, }, - Spec: api.PodSpec{ - Containers: []api.Container{ - { - Name: name, - // Image will be set to ImageStream image by ImageChange trigger. - Image: " ", - }, - }, - }, + Spec: o.InitPodSpec(name, " "), }, Triggers: []deployapi.DeploymentTriggerPolicy{ // Trigger new deploy when DeploymentConfig is created (config change)