Merge pull request #434 from procrypt/abstract_out_api.PodSpec

Abstract out api.pod spec
This commit is contained in:
Charlie Drage 2017-02-22 10:47:30 -05:00 committed by GitHub
commit 082bd17dce
3 changed files with 27 additions and 41 deletions

View File

@ -104,6 +104,19 @@ func (k *Kubernetes) CheckUnsupportedKey(komposeObject *kobject.KomposeObject, u
return keysFound 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 // InitRC initializes Kubernetes ReplicationController object
func (k *Kubernetes) InitRC(name string, service kobject.ServiceConfig, replicas int) *api.ReplicationController { func (k *Kubernetes) InitRC(name string, service kobject.ServiceConfig, replicas int) *api.ReplicationController {
rc := &api.ReplicationController{ rc := &api.ReplicationController{
@ -120,14 +133,7 @@ func (k *Kubernetes) InitRC(name string, service kobject.ServiceConfig, replicas
ObjectMeta: api.ObjectMeta{ ObjectMeta: api.ObjectMeta{
Labels: transformer.ConfigLabels(name), Labels: transformer.ConfigLabels(name),
}, },
Spec: api.PodSpec{ Spec: k.InitPodSpec(name, service.Image),
Containers: []api.Container{
{
Name: name,
Image: service.Image,
},
},
},
}, },
}, },
} }
@ -165,14 +171,7 @@ func (k *Kubernetes) InitD(name string, service kobject.ServiceConfig, replicas
Spec: extensions.DeploymentSpec{ Spec: extensions.DeploymentSpec{
Replicas: int32(replicas), Replicas: int32(replicas),
Template: api.PodTemplateSpec{ Template: api.PodTemplateSpec{
Spec: api.PodSpec{ Spec: k.InitPodSpec(name, service.Image),
Containers: []api.Container{
{
Name: name,
Image: service.Image,
},
},
},
}, },
}, },
} }
@ -191,14 +190,7 @@ func (k *Kubernetes) InitDS(name string, service kobject.ServiceConfig) *extensi
}, },
Spec: extensions.DaemonSetSpec{ Spec: extensions.DaemonSetSpec{
Template: api.PodTemplateSpec{ Template: api.PodTemplateSpec{
Spec: api.PodSpec{ Spec: k.InitPodSpec(name, service.Image),
Containers: []api.Container{
{
Name: name,
Image: service.Image,
},
},
},
}, },
}, },
} }
@ -453,14 +445,7 @@ func (k *Kubernetes) InitPod(name string, service kobject.ServiceConfig) *api.Po
ObjectMeta: api.ObjectMeta{ ObjectMeta: api.ObjectMeta{
Name: name, Name: name,
}, },
Spec: api.PodSpec{ Spec: k.InitPodSpec(name, service.Image),
Containers: []api.Container{
{
Name: name,
Image: service.Image,
},
},
},
} }
return &pod return &pod
} }

View File

@ -502,3 +502,12 @@ func TestRestartOnFailure(t *testing.T) {
} }
t.Fatalf("Process ran with err %v, want exit status 1", err) 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")
}
}

View File

@ -240,15 +240,7 @@ func (o *OpenShift) initDeploymentConfig(name string, service kobject.ServiceCon
ObjectMeta: api.ObjectMeta{ ObjectMeta: api.ObjectMeta{
Labels: map[string]string{"service": name}, Labels: map[string]string{"service": name},
}, },
Spec: api.PodSpec{ Spec: o.InitPodSpec(name, " "),
Containers: []api.Container{
{
Name: name,
// Image will be set to ImageStream image by ImageChange trigger.
Image: " ",
},
},
},
}, },
Triggers: []deployapi.DeploymentTriggerPolicy{ Triggers: []deployapi.DeploymentTriggerPolicy{
// Trigger new deploy when DeploymentConfig is created (config change) // Trigger new deploy when DeploymentConfig is created (config change)