Handling Volume at early stage

It will resolve #544 as well as refactor volume handling part.
This commit is contained in:
Suraj Narwade
2017-07-26 19:59:05 +05:30
parent be17e101b9
commit d5a5f42d8b
15 changed files with 1161 additions and 140 deletions
+6
View File
@@ -106,6 +106,12 @@ convert::expect_success_and_warning "kompose -f $KOMPOSE_ROOT/script/test/fixtur
# openshift test
convert::expect_success_and_warning "kompose --provider=openshift -f $KOMPOSE_ROOT/script/test/fixtures/volume-mounts/volumes-from/docker-compose.yml convert --stdout -j" "$KOMPOSE_ROOT/script/test/fixtures/volume-mounts/volumes-from/output-os.json" "ignoring path on the host"
# Tests related to docker-compose file in /script/test/fixtures/volume-mounts/volumes-from corner cases
# kubernetes test
convert::expect_success "kompose -f $KOMPOSE_ROOT/script/test/fixtures/volume-mounts/volumes-from/docker-compose-case.yml convert --stdout -j" "$KOMPOSE_ROOT/script/test/fixtures/volume-mounts/volumes-from/output-k8s-case.json"
# openshift test
convert::expect_success "kompose --provider=openshift -f $KOMPOSE_ROOT/script/test/fixtures/volume-mounts/volumes-from/docker-compose-case.yml convert --stdout -j" "$KOMPOSE_ROOT/script/test/fixtures/volume-mounts/volumes-from/output-os-case.json"
######
# Tests related to docker-compose file in /script/test/fixtures/envvars-separators
+10 -10
View File
@@ -95,16 +95,16 @@
"image": "bitnami/mariadb:latest",
"env": [
{
"name": "MARIADB_USER",
"value": "bn_wordpress"
"name": "ALLOW_EMPTY_PASSWORD",
"value": "yes"
},
{
"name": "MARIADB_DATABASE",
"value": "bitnami_wordpress"
},
{
"name": "ALLOW_EMPTY_PASSWORD",
"value": "yes"
"name": "MARIADB_USER",
"value": "bn_wordpress"
}
],
"resources": {},
@@ -200,6 +200,10 @@
}
],
"env": [
{
"name": "ALLOW_EMPTY_PASSWORD",
"value": "yes"
},
{
"name": "MARIADB_HOST",
"value": "mariadb"
@@ -208,17 +212,13 @@
"name": "MARIADB_PORT",
"value": "3306"
},
{
"name": "WORDPRESS_DATABASE_USER",
"value": "bn_wordpress"
},
{
"name": "WORDPRESS_DATABASE_NAME",
"value": "bitnami_wordpress"
},
{
"name": "ALLOW_EMPTY_PASSWORD",
"value": "yes"
"name": "WORDPRESS_DATABASE_USER",
"value": "bn_wordpress"
}
],
"resources": {},
+10 -10
View File
@@ -121,16 +121,16 @@
"image": " ",
"env": [
{
"name": "MARIADB_USER",
"value": "bn_wordpress"
"name": "ALLOW_EMPTY_PASSWORD",
"value": "yes"
},
{
"name": "MARIADB_DATABASE",
"value": "bitnami_wordpress"
},
{
"name": "ALLOW_EMPTY_PASSWORD",
"value": "yes"
"name": "MARIADB_USER",
"value": "bn_wordpress"
}
],
"resources": {},
@@ -277,6 +277,10 @@
}
],
"env": [
{
"name": "ALLOW_EMPTY_PASSWORD",
"value": "yes"
},
{
"name": "MARIADB_HOST",
"value": "mariadb"
@@ -285,17 +289,13 @@
"name": "MARIADB_PORT",
"value": "3306"
},
{
"name": "WORDPRESS_DATABASE_USER",
"value": "bn_wordpress"
},
{
"name": "WORDPRESS_DATABASE_NAME",
"value": "bitnami_wordpress"
},
{
"name": "ALLOW_EMPTY_PASSWORD",
"value": "yes"
"name": "WORDPRESS_DATABASE_USER",
"value": "bn_wordpress"
}
],
"resources": {},
@@ -0,0 +1,29 @@
version: '2'
services:
foo:
image: busybox
command: sleep 3600
volumes:
- /foo1
- /foo2
volumes_from:
- cat
bar:
image: busybox
command: sleep 3600
volumes:
- /foo1
- /bar
volumes_from:
- foo
cat:
image: busybox
command: sleep 3600
volumes:
- /cat
@@ -0,0 +1,388 @@
{
"kind": "List",
"apiVersion": "v1",
"metadata": {},
"items": [
{
"kind": "Service",
"apiVersion": "v1",
"metadata": {
"name": "bar",
"creationTimestamp": null,
"labels": {
"io.kompose.service": "bar"
}
},
"spec": {
"ports": [
{
"name": "headless",
"port": 55555,
"targetPort": 0
}
],
"selector": {
"io.kompose.service": "bar"
},
"clusterIP": "None"
},
"status": {
"loadBalancer": {}
}
},
{
"kind": "Service",
"apiVersion": "v1",
"metadata": {
"name": "cat",
"creationTimestamp": null,
"labels": {
"io.kompose.service": "cat"
}
},
"spec": {
"ports": [
{
"name": "headless",
"port": 55555,
"targetPort": 0
}
],
"selector": {
"io.kompose.service": "cat"
},
"clusterIP": "None"
},
"status": {
"loadBalancer": {}
}
},
{
"kind": "Service",
"apiVersion": "v1",
"metadata": {
"name": "foo",
"creationTimestamp": null,
"labels": {
"io.kompose.service": "foo"
}
},
"spec": {
"ports": [
{
"name": "headless",
"port": 55555,
"targetPort": 0
}
],
"selector": {
"io.kompose.service": "foo"
},
"clusterIP": "None"
},
"status": {
"loadBalancer": {}
}
},
{
"kind": "Deployment",
"apiVersion": "extensions/v1beta1",
"metadata": {
"name": "bar",
"creationTimestamp": null,
"labels": {
"io.kompose.service": "bar"
}
},
"spec": {
"replicas": 1,
"template": {
"metadata": {
"creationTimestamp": null,
"labels": {
"io.kompose.service": "bar"
}
},
"spec": {
"volumes": [
{
"name": "bar-claim1",
"persistentVolumeClaim": {
"claimName": "bar-claim1"
}
},
{
"name": "foo-claim0",
"persistentVolumeClaim": {
"claimName": "foo-claim0"
}
},
{
"name": "foo-claim1",
"persistentVolumeClaim": {
"claimName": "foo-claim1"
}
},
{
"name": "cat-claim0",
"persistentVolumeClaim": {
"claimName": "cat-claim0"
}
}
],
"containers": [
{
"name": "bar",
"image": "busybox",
"args": [
"sleep",
"3600"
],
"resources": {},
"volumeMounts": [
{
"name": "bar-claim1",
"mountPath": "/bar"
},
{
"name": "foo-claim0",
"mountPath": "/foo1"
},
{
"name": "foo-claim1",
"mountPath": "/foo2"
},
{
"name": "cat-claim0",
"mountPath": "/cat"
}
]
}
],
"restartPolicy": "Always"
}
},
"strategy": {
"type": "Recreate"
}
},
"status": {}
},
{
"kind": "PersistentVolumeClaim",
"apiVersion": "v1",
"metadata": {
"name": "bar-claim1",
"creationTimestamp": null,
"labels": {
"io.kompose.service": "bar-claim1"
}
},
"spec": {
"accessModes": [
"ReadWriteOnce"
],
"resources": {
"requests": {
"storage": "100Mi"
}
}
},
"status": {}
},
{
"kind": "Deployment",
"apiVersion": "extensions/v1beta1",
"metadata": {
"name": "cat",
"creationTimestamp": null,
"labels": {
"io.kompose.service": "cat"
}
},
"spec": {
"replicas": 1,
"template": {
"metadata": {
"creationTimestamp": null,
"labels": {
"io.kompose.service": "cat"
}
},
"spec": {
"volumes": [
{
"name": "cat-claim0",
"persistentVolumeClaim": {
"claimName": "cat-claim0"
}
}
],
"containers": [
{
"name": "cat",
"image": "busybox",
"args": [
"sleep",
"3600"
],
"resources": {},
"volumeMounts": [
{
"name": "cat-claim0",
"mountPath": "/cat"
}
]
}
],
"restartPolicy": "Always"
}
},
"strategy": {
"type": "Recreate"
}
},
"status": {}
},
{
"kind": "PersistentVolumeClaim",
"apiVersion": "v1",
"metadata": {
"name": "cat-claim0",
"creationTimestamp": null,
"labels": {
"io.kompose.service": "cat-claim0"
}
},
"spec": {
"accessModes": [
"ReadWriteOnce"
],
"resources": {
"requests": {
"storage": "100Mi"
}
}
},
"status": {}
},
{
"kind": "Deployment",
"apiVersion": "extensions/v1beta1",
"metadata": {
"name": "foo",
"creationTimestamp": null,
"labels": {
"io.kompose.service": "foo"
}
},
"spec": {
"replicas": 1,
"template": {
"metadata": {
"creationTimestamp": null,
"labels": {
"io.kompose.service": "foo"
}
},
"spec": {
"volumes": [
{
"name": "foo-claim0",
"persistentVolumeClaim": {
"claimName": "foo-claim0"
}
},
{
"name": "foo-claim1",
"persistentVolumeClaim": {
"claimName": "foo-claim1"
}
},
{
"name": "cat-claim0",
"persistentVolumeClaim": {
"claimName": "cat-claim0"
}
}
],
"containers": [
{
"name": "foo",
"image": "busybox",
"args": [
"sleep",
"3600"
],
"resources": {},
"volumeMounts": [
{
"name": "foo-claim0",
"mountPath": "/foo1"
},
{
"name": "foo-claim1",
"mountPath": "/foo2"
},
{
"name": "cat-claim0",
"mountPath": "/cat"
}
]
}
],
"restartPolicy": "Always"
}
},
"strategy": {
"type": "Recreate"
}
},
"status": {}
},
{
"kind": "PersistentVolumeClaim",
"apiVersion": "v1",
"metadata": {
"name": "foo-claim0",
"creationTimestamp": null,
"labels": {
"io.kompose.service": "foo-claim0"
}
},
"spec": {
"accessModes": [
"ReadWriteOnce"
],
"resources": {
"requests": {
"storage": "100Mi"
}
}
},
"status": {}
},
{
"kind": "PersistentVolumeClaim",
"apiVersion": "v1",
"metadata": {
"name": "foo-claim1",
"creationTimestamp": null,
"labels": {
"io.kompose.service": "foo-claim1"
}
},
"spec": {
"accessModes": [
"ReadWriteOnce"
],
"resources": {
"requests": {
"storage": "100Mi"
}
}
},
"status": {}
}
]
}
@@ -0,0 +1,541 @@
{
"kind": "List",
"apiVersion": "v1",
"metadata": {},
"items": [
{
"kind": "Service",
"apiVersion": "v1",
"metadata": {
"name": "bar",
"creationTimestamp": null,
"labels": {
"io.kompose.service": "bar"
}
},
"spec": {
"ports": [
{
"name": "headless",
"port": 55555,
"targetPort": 0
}
],
"selector": {
"io.kompose.service": "bar"
},
"clusterIP": "None"
},
"status": {
"loadBalancer": {}
}
},
{
"kind": "Service",
"apiVersion": "v1",
"metadata": {
"name": "cat",
"creationTimestamp": null,
"labels": {
"io.kompose.service": "cat"
}
},
"spec": {
"ports": [
{
"name": "headless",
"port": 55555,
"targetPort": 0
}
],
"selector": {
"io.kompose.service": "cat"
},
"clusterIP": "None"
},
"status": {
"loadBalancer": {}
}
},
{
"kind": "Service",
"apiVersion": "v1",
"metadata": {
"name": "foo",
"creationTimestamp": null,
"labels": {
"io.kompose.service": "foo"
}
},
"spec": {
"ports": [
{
"name": "headless",
"port": 55555,
"targetPort": 0
}
],
"selector": {
"io.kompose.service": "foo"
},
"clusterIP": "None"
},
"status": {
"loadBalancer": {}
}
},
{
"kind": "DeploymentConfig",
"apiVersion": "v1",
"metadata": {
"name": "bar",
"creationTimestamp": null,
"labels": {
"io.kompose.service": "bar"
}
},
"spec": {
"strategy": {
"type": "Recreate",
"resources": {}
},
"triggers": [
{
"type": "ConfigChange"
},
{
"type": "ImageChange",
"imageChangeParams": {
"automatic": true,
"containerNames": [
"bar"
],
"from": {
"kind": "ImageStreamTag",
"name": "bar:latest"
}
}
}
],
"replicas": 1,
"test": false,
"selector": {
"io.kompose.service": "bar"
},
"template": {
"metadata": {
"creationTimestamp": null,
"labels": {
"io.kompose.service": "bar"
}
},
"spec": {
"volumes": [
{
"name": "bar-claim1",
"persistentVolumeClaim": {
"claimName": "bar-claim1"
}
},
{
"name": "foo-claim0",
"persistentVolumeClaim": {
"claimName": "foo-claim0"
}
},
{
"name": "foo-claim1",
"persistentVolumeClaim": {
"claimName": "foo-claim1"
}
},
{
"name": "cat-claim0",
"persistentVolumeClaim": {
"claimName": "cat-claim0"
}
}
],
"containers": [
{
"name": "bar",
"image": " ",
"args": [
"sleep",
"3600"
],
"resources": {},
"volumeMounts": [
{
"name": "bar-claim1",
"mountPath": "/bar"
},
{
"name": "foo-claim0",
"mountPath": "/foo1"
},
{
"name": "foo-claim1",
"mountPath": "/foo2"
},
{
"name": "cat-claim0",
"mountPath": "/cat"
}
]
}
],
"restartPolicy": "Always"
}
}
},
"status": {}
},
{
"kind": "ImageStream",
"apiVersion": "v1",
"metadata": {
"name": "bar",
"creationTimestamp": null,
"labels": {
"io.kompose.service": "bar"
}
},
"spec": {
"tags": [
{
"name": "latest",
"annotations": null,
"from": {
"kind": "DockerImage",
"name": "busybox"
},
"generation": null,
"importPolicy": {}
}
]
},
"status": {
"dockerImageRepository": ""
}
},
{
"kind": "PersistentVolumeClaim",
"apiVersion": "v1",
"metadata": {
"name": "bar-claim1",
"creationTimestamp": null,
"labels": {
"io.kompose.service": "bar-claim1"
}
},
"spec": {
"accessModes": [
"ReadWriteOnce"
],
"resources": {
"requests": {
"storage": "100Mi"
}
}
},
"status": {}
},
{
"kind": "DeploymentConfig",
"apiVersion": "v1",
"metadata": {
"name": "cat",
"creationTimestamp": null,
"labels": {
"io.kompose.service": "cat"
}
},
"spec": {
"strategy": {
"type": "Recreate",
"resources": {}
},
"triggers": [
{
"type": "ConfigChange"
},
{
"type": "ImageChange",
"imageChangeParams": {
"automatic": true,
"containerNames": [
"cat"
],
"from": {
"kind": "ImageStreamTag",
"name": "cat:latest"
}
}
}
],
"replicas": 1,
"test": false,
"selector": {
"io.kompose.service": "cat"
},
"template": {
"metadata": {
"creationTimestamp": null,
"labels": {
"io.kompose.service": "cat"
}
},
"spec": {
"volumes": [
{
"name": "cat-claim0",
"persistentVolumeClaim": {
"claimName": "cat-claim0"
}
}
],
"containers": [
{
"name": "cat",
"image": " ",
"args": [
"sleep",
"3600"
],
"resources": {},
"volumeMounts": [
{
"name": "cat-claim0",
"mountPath": "/cat"
}
]
}
],
"restartPolicy": "Always"
}
}
},
"status": {}
},
{
"kind": "ImageStream",
"apiVersion": "v1",
"metadata": {
"name": "cat",
"creationTimestamp": null,
"labels": {
"io.kompose.service": "cat"
}
},
"spec": {
"tags": [
{
"name": "latest",
"annotations": null,
"from": {
"kind": "DockerImage",
"name": "busybox"
},
"generation": null,
"importPolicy": {}
}
]
},
"status": {
"dockerImageRepository": ""
}
},
{
"kind": "PersistentVolumeClaim",
"apiVersion": "v1",
"metadata": {
"name": "cat-claim0",
"creationTimestamp": null,
"labels": {
"io.kompose.service": "cat-claim0"
}
},
"spec": {
"accessModes": [
"ReadWriteOnce"
],
"resources": {
"requests": {
"storage": "100Mi"
}
}
},
"status": {}
},
{
"kind": "DeploymentConfig",
"apiVersion": "v1",
"metadata": {
"name": "foo",
"creationTimestamp": null,
"labels": {
"io.kompose.service": "foo"
}
},
"spec": {
"strategy": {
"type": "Recreate",
"resources": {}
},
"triggers": [
{
"type": "ConfigChange"
},
{
"type": "ImageChange",
"imageChangeParams": {
"automatic": true,
"containerNames": [
"foo"
],
"from": {
"kind": "ImageStreamTag",
"name": "foo:latest"
}
}
}
],
"replicas": 1,
"test": false,
"selector": {
"io.kompose.service": "foo"
},
"template": {
"metadata": {
"creationTimestamp": null,
"labels": {
"io.kompose.service": "foo"
}
},
"spec": {
"volumes": [
{
"name": "foo-claim0",
"persistentVolumeClaim": {
"claimName": "foo-claim0"
}
},
{
"name": "foo-claim1",
"persistentVolumeClaim": {
"claimName": "foo-claim1"
}
},
{
"name": "cat-claim0",
"persistentVolumeClaim": {
"claimName": "cat-claim0"
}
}
],
"containers": [
{
"name": "foo",
"image": " ",
"args": [
"sleep",
"3600"
],
"resources": {},
"volumeMounts": [
{
"name": "foo-claim0",
"mountPath": "/foo1"
},
{
"name": "foo-claim1",
"mountPath": "/foo2"
},
{
"name": "cat-claim0",
"mountPath": "/cat"
}
]
}
],
"restartPolicy": "Always"
}
}
},
"status": {}
},
{
"kind": "ImageStream",
"apiVersion": "v1",
"metadata": {
"name": "foo",
"creationTimestamp": null,
"labels": {
"io.kompose.service": "foo"
}
},
"spec": {
"tags": [
{
"name": "latest",
"annotations": null,
"from": {
"kind": "DockerImage",
"name": "busybox"
},
"generation": null,
"importPolicy": {}
}
]
},
"status": {
"dockerImageRepository": ""
}
},
{
"kind": "PersistentVolumeClaim",
"apiVersion": "v1",
"metadata": {
"name": "foo-claim0",
"creationTimestamp": null,
"labels": {
"io.kompose.service": "foo-claim0"
}
},
"spec": {
"accessModes": [
"ReadWriteOnce"
],
"resources": {
"requests": {
"storage": "100Mi"
}
}
},
"status": {}
},
{
"kind": "PersistentVolumeClaim",
"apiVersion": "v1",
"metadata": {
"name": "foo-claim1",
"creationTimestamp": null,
"labels": {
"io.kompose.service": "foo-claim1"
}
},
"spec": {
"accessModes": [
"ReadWriteOnce"
],
"resources": {
"requests": {
"storage": "100Mi"
}
}
},
"status": {}
}
]
}