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:
Kamil Kieliszczyk
2019-02-07 09:50:53 -05:00
committed by Charlie Drage
parent 40c1b8cf87
commit 66ac4aff4f
18 changed files with 387 additions and 7 deletions
+19
View File
@@ -415,6 +415,25 @@ cmd="kompose --provider openshift -f $KOMPOSE_ROOT/script/test/fixtures/expose-s
sed -e "s;%VERSION%;$version;g" -e "s;%CMD%;$cmd;g" $KOMPOSE_ROOT/script/test/fixtures/expose-service/provider-files/openshift-expose-hostname-multiple-ports.json > /tmp/output-os.json
convert::expect_success "kompose --provider openshift -f $KOMPOSE_ROOT/script/test/fixtures/expose-service/compose-files/docker-compose-expose-hostname-multiple-ports.yml convert --stdout -j" "/tmp/output-os.json"
# Test related to kompose.image-pull-secret label in docker compose file to ensure imagePullSecrets are populated properly.
# Kubernetes Test
cmd="kompose -f $KOMPOSE_ROOT/script/test/fixtures/image-pull-secret/compose-files/docker-compose-image-pull-secret.yml convert --stdout -j"
sed -e "s;%VERSION%;$version;g" -e "s;%CMD%;$cmd;g" $KOMPOSE_ROOT/script/test/fixtures/image-pull-secret/provider-files/kubernetes-image-pull-secret.json > /tmp/output-k8s.json
convert::expect_success "$cmd" "/tmp/output-k8s.json"
# Test related to kompose.image-pull-secrets label in docker compose file.
# Kubernetes Tests
# when kompose.image-pull-secrets is invalid
convert::expect_failure "kompose -f $KOMPOSE_ROOT/script/test/fixtures/image-pull-policy/compose-files/v12-fail-image-pull-policy.yml convert --stdout"
# when kompose.image-pull-secrets in v1 and 2
cmd="kompose -f $KOMPOSE_ROOT/script/test/fixtures/image-pull-policy/compose-files/v12-image-pull-policy.yml convert --stdout -j"
sed -e "s;%VERSION%;$version;g" -e "s;%CMD%;$cmd;g" $KOMPOSE_ROOT/script/test/fixtures/image-pull-policy/provider-files/kubernetes-v12-image-pull-policy.json > /tmp/output-k8s.json
convert::expect_success "$cmd" "/tmp/output-k8s.json"
# when kompose.image-pull-secrets in v3
cmd="kompose -f $KOMPOSE_ROOT/script/test/fixtures/image-pull-policy/compose-files/v3-image-pull-policy.yml convert --stdout -j"
sed -e "s;%VERSION%;$version;g" -e "s;%CMD%;$cmd;g" $KOMPOSE_ROOT/script/test/fixtures/image-pull-policy/provider-files/kubernetes-v3-image-pull-policy.json > /tmp/output-k8s.json
convert::expect_success "$cmd" "/tmp/output-k8s.json"
# Test the change in the service name
# Kubernetes Test
@@ -0,0 +1,6 @@
version: "2"
services:
nginx0:
image: nginx
labels:
kompose.image-pull-policy: "Fail"
@@ -0,0 +1,7 @@
version: "2"
services:
nginx0:
image: nginx
labels:
kompose.image-pull-policy: "Always"
@@ -0,0 +1,14 @@
version: "3"
services:
nginx0:
image: nginx
labels:
kompose.image-pull-policy: "Always"
nginx1:
image: nginx
labels:
kompose.image-pull-policy: "IfNotPresent"
nginx2:
image: nginx
labels:
kompose.image-pull-policy: "Never"
@@ -0,0 +1,47 @@
{
"kind": "List",
"apiVersion": "v1",
"metadata": {},
"items": [
{
"kind": "Deployment",
"apiVersion": "extensions/v1beta1",
"metadata": {
"name": "nginx0",
"creationTimestamp": null,
"labels": {
"io.kompose.service": "nginx0"
},
"annotations": {
"kompose.cmd": "%CMD%",
"kompose.image-pull-policy": "Always",
"kompose.version": "%VERSION%"
}
},
"spec": {
"replicas": 1,
"template": {
"metadata": {
"creationTimestamp": null,
"labels": {
"io.kompose.service": "nginx0"
}
},
"spec": {
"containers": [
{
"name": "nginx0",
"image": "nginx",
"resources": {},
"imagePullPolicy": "Always"
}
],
"restartPolicy": "Always"
}
},
"strategy": {}
},
"status": {}
}
]
}
@@ -0,0 +1,127 @@
{
"kind": "List",
"apiVersion": "v1",
"metadata": {},
"items": [
{
"kind": "Deployment",
"apiVersion": "extensions/v1beta1",
"metadata": {
"name": "nginx0",
"creationTimestamp": null,
"labels": {
"io.kompose.service": "nginx0"
},
"annotations": {
"kompose.cmd": "%CMD%",
"kompose.image-pull-policy": "Always",
"kompose.version": "%VERSION%"
}
},
"spec": {
"replicas": 1,
"template": {
"metadata": {
"creationTimestamp": null,
"labels": {
"io.kompose.service": "nginx0"
}
},
"spec": {
"containers": [
{
"name": "nginx0",
"image": "nginx",
"resources": {},
"imagePullPolicy": "Always"
}
],
"restartPolicy": "Always"
}
},
"strategy": {}
},
"status": {}
},
{
"kind": "Deployment",
"apiVersion": "extensions/v1beta1",
"metadata": {
"name": "nginx1",
"creationTimestamp": null,
"labels": {
"io.kompose.service": "nginx1"
},
"annotations": {
"kompose.cmd": "%CMD%",
"kompose.image-pull-policy": "IfNotPresent",
"kompose.version": "%VERSION%"
}
},
"spec": {
"replicas": 1,
"template": {
"metadata": {
"creationTimestamp": null,
"labels": {
"io.kompose.service": "nginx1"
}
},
"spec": {
"containers": [
{
"name": "nginx1",
"image": "nginx",
"resources": {},
"imagePullPolicy": "IfNotPresent"
}
],
"restartPolicy": "Always"
}
},
"strategy": {}
},
"status": {}
},
{
"kind": "Deployment",
"apiVersion": "extensions/v1beta1",
"metadata": {
"name": "nginx2",
"creationTimestamp": null,
"labels": {
"io.kompose.service": "nginx2"
},
"annotations": {
"kompose.cmd": "%CMD%",
"kompose.image-pull-policy": "Never",
"kompose.version": "%VERSION%"
}
},
"spec": {
"replicas": 1,
"template": {
"metadata": {
"creationTimestamp": null,
"labels": {
"io.kompose.service": "nginx2"
}
},
"spec": {
"containers": [
{
"name": "nginx2",
"image": "nginx",
"resources": {},
"imagePullPolicy": "Never"
}
],
"restartPolicy": "Always"
}
},
"strategy": {}
},
"status": {}
}
]
}
@@ -0,0 +1,6 @@
tm-image-service:
image: premium/private-image
labels:
kompose.image-pull-secret: "sample-k8s-secret-name"
open-image-service:
image: nginx-alpine
@@ -0,0 +1,89 @@
{
"kind": "List",
"apiVersion": "v1",
"metadata": {},
"items": [
{
"kind": "Deployment",
"apiVersion": "extensions/v1beta1",
"metadata": {
"name": "open-image-service",
"creationTimestamp": null,
"labels": {
"io.kompose.service": "open-image-service"
},
"annotations": {
"kompose.cmd": "%CMD%",
"kompose.version": "%VERSION%"
}
},
"spec": {
"replicas": 1,
"template": {
"metadata": {
"creationTimestamp": null,
"labels": {
"io.kompose.service": "open-image-service"
}
},
"spec": {
"containers": [
{
"name": "open-image-service",
"image": "nginx-alpine",
"resources": {}
}
],
"restartPolicy": "Always"
}
},
"strategy": {}
},
"status": {}
},
{
"kind": "Deployment",
"apiVersion": "extensions/v1beta1",
"metadata": {
"name": "tm-image-service",
"creationTimestamp": null,
"labels": {
"io.kompose.service": "tm-image-service"
},
"annotations": {
"kompose.cmd": "%CMD%",
"kompose.image-pull-secret": "sample-k8s-secret-name",
"kompose.version": "%VERSION%"
}
},
"spec": {
"replicas": 1,
"template": {
"metadata": {
"creationTimestamp": null,
"labels": {
"io.kompose.service": "tm-image-service"
}
},
"spec": {
"containers": [
{
"name": "tm-image-service",
"image": "premium/private-image",
"resources": {}
}
],
"restartPolicy": "Always",
"imagePullSecrets": [
{
"name": "sample-k8s-secret-name"
}
]
}
},
"strategy": {}
},
"status": {}
}
]
}