forked from LaconicNetwork/kompose
Add kompose.image-pull-secret and kompose.image-pull-policy (#1091)
* Add kompose.image-pull-secret * Add kompose.image-pull-secret tests * Add kompose.image-pull-policy * Add kompose.image-pull-policy tests * ignore .coverprofile * Fix typo
This commit is contained in:
committed by
Charlie Drage
parent
40c1b8cf87
commit
66ac4aff4f
@@ -503,6 +503,19 @@ func (k *Kubernetes) UpdateKubernetesObjects(name string, service kobject.Servic
|
||||
template.Spec.Containers[0].Ports = ports
|
||||
template.ObjectMeta.Labels = transformer.ConfigLabels(name)
|
||||
|
||||
// Configure the image pull policy
|
||||
switch service.ImagePullPolicy {
|
||||
case "":
|
||||
case "Always":
|
||||
template.Spec.Containers[0].ImagePullPolicy = api.PullAlways
|
||||
case "Never":
|
||||
template.Spec.Containers[0].ImagePullPolicy = api.PullNever
|
||||
case "IfNotPresent":
|
||||
template.Spec.Containers[0].ImagePullPolicy = api.PullIfNotPresent
|
||||
default:
|
||||
return errors.New("Unknown image-pull-policy " + service.ImagePullPolicy + " for service " + name)
|
||||
}
|
||||
|
||||
// Configure the container restart policy.
|
||||
switch service.Restart {
|
||||
case "", "always", "any":
|
||||
|
||||
@@ -116,7 +116,7 @@ func (k *Kubernetes) CheckUnsupportedKey(komposeObject *kobject.KomposeObject, u
|
||||
}
|
||||
|
||||
// InitPodSpec creates the pod specification
|
||||
func (k *Kubernetes) InitPodSpec(name string, image string) api.PodSpec {
|
||||
func (k *Kubernetes) InitPodSpec(name string, image string, pullSecret string) api.PodSpec {
|
||||
pod := api.PodSpec{
|
||||
Containers: []api.Container{
|
||||
{
|
||||
@@ -125,6 +125,13 @@ func (k *Kubernetes) InitPodSpec(name string, image string) api.PodSpec {
|
||||
},
|
||||
},
|
||||
}
|
||||
if pullSecret != "" {
|
||||
pod.ImagePullSecrets = []api.LocalObjectReference{
|
||||
{
|
||||
Name: pullSecret,
|
||||
},
|
||||
}
|
||||
}
|
||||
return pod
|
||||
}
|
||||
|
||||
@@ -191,7 +198,7 @@ func (k *Kubernetes) InitRC(name string, service kobject.ServiceConfig, replicas
|
||||
ObjectMeta: api.ObjectMeta{
|
||||
Labels: transformer.ConfigLabels(name),
|
||||
},
|
||||
Spec: k.InitPodSpec(name, service.Image),
|
||||
Spec: k.InitPodSpec(name, service.Image, service.ImagePullSecret),
|
||||
},
|
||||
},
|
||||
}
|
||||
@@ -281,7 +288,7 @@ func (k *Kubernetes) InitD(name string, service kobject.ServiceConfig, replicas
|
||||
if len(service.Configs) > 0 {
|
||||
podSpec = k.InitPodSpecWithConfigMap(name, service.Image, service)
|
||||
} else {
|
||||
podSpec = k.InitPodSpec(name, service.Image)
|
||||
podSpec = k.InitPodSpec(name, service.Image, service.ImagePullSecret)
|
||||
}
|
||||
|
||||
dc := &extensions.Deployment{
|
||||
@@ -316,7 +323,7 @@ func (k *Kubernetes) InitDS(name string, service kobject.ServiceConfig) *extensi
|
||||
},
|
||||
Spec: extensions.DaemonSetSpec{
|
||||
Template: api.PodTemplateSpec{
|
||||
Spec: k.InitPodSpec(name, service.Image),
|
||||
Spec: k.InitPodSpec(name, service.Image, service.ImagePullSecret),
|
||||
},
|
||||
},
|
||||
}
|
||||
@@ -807,7 +814,7 @@ func (k *Kubernetes) InitPod(name string, service kobject.ServiceConfig) *api.Po
|
||||
Name: name,
|
||||
Labels: transformer.ConfigLabels(name),
|
||||
},
|
||||
Spec: k.InitPodSpec(name, service.Image),
|
||||
Spec: k.InitPodSpec(name, service.Image, service.ImagePullSecret),
|
||||
}
|
||||
return &pod
|
||||
}
|
||||
|
||||
@@ -489,7 +489,7 @@ func TestRestartOnFailure(t *testing.T) {
|
||||
func TestInitPodSpec(t *testing.T) {
|
||||
name := "foo"
|
||||
k := Kubernetes{}
|
||||
result := k.InitPodSpec(name, newServiceConfig().Image)
|
||||
result := k.InitPodSpec(name, newServiceConfig().Image, "")
|
||||
if result.Containers[0].Name != "foo" && result.Containers[0].Image != "image" {
|
||||
t.Fatalf("Pod object not found")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user