diff --git a/script/test/cmd/tests.sh b/script/test/cmd/tests.sh index b7dddd26..f9286856 100755 --- a/script/test/cmd/tests.sh +++ b/script/test/cmd/tests.sh @@ -449,5 +449,87 @@ convert::expect_success_and_warning "kompose convert --stdout -j -f $KOMPOSE_ROO # Openshift convert::expect_success_and_warning "kompose convert --provider=openshift --stdout -j -f $KOMPOSE_ROOT/script/test/fixtures/v3/docker-compose-full-example.yaml" "$KOMPOSE_ROOT/script/test/fixtures/v3/output-os-full-example.json" +### Test for docker-compose files present in Examples Directory + +# docker compose + +# Kubernetes +cmd="kompose convert --stdout -j -f $KOMPOSE_ROOT/examples/docker-compose.yaml" +sed -e "s;%VERSION%;$version;g" -e "s;%CMD%;$cmd;g" $KOMPOSE_ROOT/script/test/fixtures/examples/output-v3-k8s.json > /tmp/output-k8s.json +convert::expect_success "kompose convert --stdout -j -f $KOMPOSE_ROOT/examples/docker-compose.yaml" "/tmp/output-k8s.json" + + +## OpenShift +cmd="kompose convert --provider=openshift --stdout -j -f $KOMPOSE_ROOT/examples/docker-compose.yaml" +sed -e "s;%VERSION%;$version;g" -e "s;%CMD%;$cmd;g" $KOMPOSE_ROOT/script/test/fixtures/examples/output-v3-os.json > /tmp/output-os.json +convert::expect_success "kompose convert --provider=openshift --stdout -j -f $KOMPOSE_ROOT/examples/docker-compose.yaml" "/tmp/output-os.json" + +# docker compose v3 + +# Kubernetes +cmd="kompose convert --stdout -j -f $KOMPOSE_ROOT/examples/docker-compose-v3.yaml" +sed -e "s;%VERSION%;$version;g" -e "s;%CMD%;$cmd;g" $KOMPOSE_ROOT/script/test/fixtures/examples/output-v3-k8s.json > /tmp/output-k8s.json +convert::expect_success "kompose convert --stdout -j -f $KOMPOSE_ROOT/examples/docker-compose-v3.yaml" "/tmp/output-k8s.json" + + +## OpenShift +cmd="kompose convert --provider=openshift --stdout -j -f $KOMPOSE_ROOT/examples/docker-compose-v3.yaml" +sed -e "s;%VERSION%;$version;g" -e "s;%CMD%;$cmd;g" $KOMPOSE_ROOT/script/test/fixtures/examples/output-v3-os.json > /tmp/output-os.json +convert::expect_success "kompose convert --provider=openshift --stdout -j -f $KOMPOSE_ROOT/examples/docker-compose-v3.yaml" "/tmp/output-os.json" + +# counter + +# Kubernetes +cmd="kompose convert --stdout -j -f $KOMPOSE_ROOT/examples/docker-compose-counter.yaml" +sed -e "s;%VERSION%;$version;g" -e "s;%CMD%;$cmd;g" $KOMPOSE_ROOT/script/test/fixtures/examples/output-counter-k8s.json > /tmp/output-k8s.json +convert::expect_success "kompose convert --stdout -j -f $KOMPOSE_ROOT/examples/docker-compose-counter.yaml" "/tmp/output-k8s.json" + + +## OpenShift +cmd="kompose convert --provider=openshift --stdout -j -f $KOMPOSE_ROOT/examples/docker-compose-counter.yaml" +sed -e "s;%VERSION%;$version;g" -e "s;%CMD%;$cmd;g" $KOMPOSE_ROOT/script/test/fixtures/examples/output-counter-os.json > /tmp/output-os.json +convert::expect_success "kompose convert --provider=openshift --stdout -j -f $KOMPOSE_ROOT/examples/docker-compose-counter.yaml" "/tmp/output-os.json" + + +# counter v3 + +# Kubernetes +cmd="kompose convert --stdout -j -f $KOMPOSE_ROOT/examples/docker-compose-counter-v3.yaml" +sed -e "s;%VERSION%;$version;g" -e "s;%CMD%;$cmd;g" $KOMPOSE_ROOT/script/test/fixtures/examples/output-counter-v3-k8s.json > /tmp/output-k8s.json +convert::expect_success "kompose convert --stdout -j -f $KOMPOSE_ROOT/examples/docker-compose-counter-v3.yaml" "/tmp/output-k8s.json" + + +## OpenShift +cmd="kompose convert --provider=openshift --stdout -j -f $KOMPOSE_ROOT/examples/docker-compose-counter-v3.yaml" +sed -e "s;%VERSION%;$version;g" -e "s;%CMD%;$cmd;g" $KOMPOSE_ROOT/script/test/fixtures/examples/output-counter-v3-os.json > /tmp/output-os.json +convert::expect_success "kompose convert --provider=openshift --stdout -j -f $KOMPOSE_ROOT/examples/docker-compose-counter-v3.yaml" "/tmp/output-os.json" + + +# voting + +# Kubernetes +cmd="kompose convert --stdout -j -f $KOMPOSE_ROOT/examples/docker-voting.yaml" +sed -e "s;%VERSION%;$version;g" -e "s;%CMD%;$cmd;g" $KOMPOSE_ROOT/script/test/fixtures/examples/output-voting-k8s.json > /tmp/output-k8s.json +convert::expect_success "kompose convert --stdout -j -f $KOMPOSE_ROOT/examples/docker-voting.yaml" "/tmp/output-k8s.json" + + +## OpenShift +cmd="kompose convert --provider=openshift --stdout -j -f $KOMPOSE_ROOT/examples/docker-voting.yaml" +sed -e "s;%VERSION%;$version;g" -e "s;%CMD%;$cmd;g" $KOMPOSE_ROOT/script/test/fixtures/examples/output-voting-os.json > /tmp/output-os.json +convert::expect_success "kompose convert --provider=openshift --stdout -j -f $KOMPOSE_ROOT/examples/docker-voting.yaml" "/tmp/output-os.json" + +# gitlab + +# Kubernetes +cmd="kompose convert --stdout -j -f $KOMPOSE_ROOT/examples/docker-gitlab.yaml" +sed -e "s;%VERSION%;$version;g" -e "s;%CMD%;$cmd;g" $KOMPOSE_ROOT/script/test/fixtures/examples/output-gitlab-k8s.json > /tmp/output-k8s.json +convert::expect_success_and_warning "kompose convert --stdout -j -f $KOMPOSE_ROOT/examples/docker-gitlab.yaml" "/tmp/output-k8s.json" + + +## OpenShift +cmd="kompose convert --provider=openshift --stdout -j -f $KOMPOSE_ROOT/examples/docker-gitlab.yaml" +sed -e "s;%VERSION%;$version;g" -e "s;%CMD%;$cmd;g" $KOMPOSE_ROOT/script/test/fixtures/examples/output-gitlab-os.json > /tmp/output-os.json +convert::expect_success_and_warning "kompose convert --provider=openshift --stdout -j -f $KOMPOSE_ROOT/examples/docker-gitlab.yaml" "/tmp/output-os.json" + rm /tmp/output-k8s.json /tmp/output-os.json exit $EXIT_STATUS diff --git a/script/test/fixtures/examples/output-counter-k8s.json b/script/test/fixtures/examples/output-counter-k8s.json new file mode 100644 index 00000000..25cdfce6 --- /dev/null +++ b/script/test/fixtures/examples/output-counter-k8s.json @@ -0,0 +1,153 @@ +{ + "kind": "List", + "apiVersion": "v1", + "metadata": {}, + "items": [ + { + "kind": "Service", + "apiVersion": "v1", + "metadata": { + "name": "redis", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "redis" + }, + "annotations": { + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "ports": [ + { + "name": "6379", + "port": 6379, + "targetPort": 6379 + } + ], + "selector": { + "io.kompose.service": "redis" + } + }, + "status": { + "loadBalancer": {} + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "metadata": { + "name": "web", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "web" + }, + "annotations": { + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "ports": [ + { + "name": "5000", + "port": 5000, + "targetPort": 5000 + } + ], + "selector": { + "io.kompose.service": "web" + } + }, + "status": { + "loadBalancer": {} + } + }, + { + "kind": "Deployment", + "apiVersion": "extensions/v1beta1", + "metadata": { + "name": "redis", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "redis" + }, + "annotations": { + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "replicas": 1, + "template": { + "metadata": { + "creationTimestamp": null, + "labels": { + "io.kompose.service": "redis" + } + }, + "spec": { + "containers": [ + { + "name": "redis", + "image": "redis:3.0", + "ports": [ + { + "containerPort": 6379 + } + ], + "resources": {} + } + ], + "restartPolicy": "Always" + } + }, + "strategy": {} + }, + "status": {} + }, + { + "kind": "Deployment", + "apiVersion": "extensions/v1beta1", + "metadata": { + "name": "web", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "web" + }, + "annotations": { + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "replicas": 1, + "template": { + "metadata": { + "creationTimestamp": null, + "labels": { + "io.kompose.service": "web" + } + }, + "spec": { + "containers": [ + { + "name": "web", + "image": "tuna/docker-counter23", + "ports": [ + { + "containerPort": 5000 + } + ], + "resources": {} + } + ], + "restartPolicy": "Always" + } + }, + "strategy": {} + }, + "status": {} + } + ] +} diff --git a/script/test/fixtures/examples/output-counter-os.json b/script/test/fixtures/examples/output-counter-os.json new file mode 100644 index 00000000..ab4946e0 --- /dev/null +++ b/script/test/fixtures/examples/output-counter-os.json @@ -0,0 +1,257 @@ +{ + "kind": "List", + "apiVersion": "v1", + "metadata": {}, + "items": [ + { + "kind": "Service", + "apiVersion": "v1", + "metadata": { + "name": "redis", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "redis" + }, + "annotations": { + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "ports": [ + { + "name": "6379", + "port": 6379, + "targetPort": 6379 + } + ], + "selector": { + "io.kompose.service": "redis" + } + }, + "status": { + "loadBalancer": {} + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "metadata": { + "name": "web", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "web" + }, + "annotations": { + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "ports": [ + { + "name": "5000", + "port": 5000, + "targetPort": 5000 + } + ], + "selector": { + "io.kompose.service": "web" + } + }, + "status": { + "loadBalancer": {} + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "redis", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "redis" + }, + "annotations": { + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "strategy": { + "resources": {} + }, + "triggers": [ + { + "type": "ConfigChange" + }, + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "redis" + ], + "from": { + "kind": "ImageStreamTag", + "name": "redis:3.0" + } + } + } + ], + "replicas": 1, + "test": false, + "selector": { + "io.kompose.service": "redis" + }, + "template": { + "metadata": { + "creationTimestamp": null, + "labels": { + "io.kompose.service": "redis" + } + }, + "spec": { + "containers": [ + { + "name": "redis", + "image": " ", + "ports": [ + { + "containerPort": 6379 + } + ], + "resources": {} + } + ], + "restartPolicy": "Always" + } + } + }, + "status": {} + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "redis", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "redis" + } + }, + "spec": { + "tags": [ + { + "name": "3.0", + "annotations": null, + "from": { + "kind": "DockerImage", + "name": "redis:3.0" + }, + "generation": null, + "importPolicy": {} + } + ] + }, + "status": { + "dockerImageRepository": "" + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "web", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "web" + }, + "annotations": { + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "strategy": { + "resources": {} + }, + "triggers": [ + { + "type": "ConfigChange" + }, + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "web" + ], + "from": { + "kind": "ImageStreamTag", + "name": "web:latest" + } + } + } + ], + "replicas": 1, + "test": false, + "selector": { + "io.kompose.service": "web" + }, + "template": { + "metadata": { + "creationTimestamp": null, + "labels": { + "io.kompose.service": "web" + } + }, + "spec": { + "containers": [ + { + "name": "web", + "image": " ", + "ports": [ + { + "containerPort": 5000 + } + ], + "resources": {} + } + ], + "restartPolicy": "Always" + } + } + }, + "status": {} + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "web", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "web" + } + }, + "spec": { + "tags": [ + { + "name": "latest", + "annotations": null, + "from": { + "kind": "DockerImage", + "name": "tuna/docker-counter23" + }, + "generation": null, + "importPolicy": {} + } + ] + }, + "status": { + "dockerImageRepository": "" + } + } + ] +} diff --git a/script/test/fixtures/examples/output-counter-v3-k8s.json b/script/test/fixtures/examples/output-counter-v3-k8s.json new file mode 100644 index 00000000..e97b58df --- /dev/null +++ b/script/test/fixtures/examples/output-counter-v3-k8s.json @@ -0,0 +1,156 @@ +{ + "kind": "List", + "apiVersion": "v1", + "metadata": {}, + "items": [ + { + "kind": "Service", + "apiVersion": "v1", + "metadata": { + "name": "redis", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "redis" + }, + "annotations": { + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "ports": [ + { + "name": "6379", + "port": 6379, + "targetPort": 6379 + } + ], + "selector": { + "io.kompose.service": "redis" + } + }, + "status": { + "loadBalancer": {} + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "metadata": { + "name": "web", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "web" + }, + "annotations": { + "kompose.service.type": "NodePort", + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "ports": [ + { + "name": "5000", + "port": 5000, + "targetPort": 5000 + } + ], + "selector": { + "io.kompose.service": "web" + }, + "type": "NodePort" + }, + "status": { + "loadBalancer": {} + } + }, + { + "kind": "Deployment", + "apiVersion": "extensions/v1beta1", + "metadata": { + "name": "redis", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "redis" + }, + "annotations": { + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "replicas": 1, + "template": { + "metadata": { + "creationTimestamp": null, + "labels": { + "io.kompose.service": "redis" + } + }, + "spec": { + "containers": [ + { + "name": "redis", + "image": "redis:3.0", + "ports": [ + { + "containerPort": 6379 + } + ], + "resources": {} + } + ], + "restartPolicy": "Always" + } + }, + "strategy": {} + }, + "status": {} + }, + { + "kind": "Deployment", + "apiVersion": "extensions/v1beta1", + "metadata": { + "name": "web", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "web" + }, + "annotations": { + "kompose.service.type": "NodePort", + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "replicas": 1, + "template": { + "metadata": { + "creationTimestamp": null, + "labels": { + "io.kompose.service": "web" + } + }, + "spec": { + "containers": [ + { + "name": "web", + "image": "tuna/docker-counter23", + "ports": [ + { + "containerPort": 5000 + } + ], + "resources": {} + } + ], + "restartPolicy": "Always" + } + }, + "strategy": {} + }, + "status": {} + } + ] +} diff --git a/script/test/fixtures/examples/output-counter-v3-os.json b/script/test/fixtures/examples/output-counter-v3-os.json new file mode 100644 index 00000000..f8d7e296 --- /dev/null +++ b/script/test/fixtures/examples/output-counter-v3-os.json @@ -0,0 +1,260 @@ +{ + "kind": "List", + "apiVersion": "v1", + "metadata": {}, + "items": [ + { + "kind": "Service", + "apiVersion": "v1", + "metadata": { + "name": "redis", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "redis" + }, + "annotations": { + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "ports": [ + { + "name": "6379", + "port": 6379, + "targetPort": 6379 + } + ], + "selector": { + "io.kompose.service": "redis" + } + }, + "status": { + "loadBalancer": {} + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "metadata": { + "name": "web", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "web" + }, + "annotations": { + "kompose.service.type": "NodePort", + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "ports": [ + { + "name": "5000", + "port": 5000, + "targetPort": 5000 + } + ], + "selector": { + "io.kompose.service": "web" + }, + "type": "NodePort" + }, + "status": { + "loadBalancer": {} + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "redis", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "redis" + }, + "annotations": { + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "strategy": { + "resources": {} + }, + "triggers": [ + { + "type": "ConfigChange" + }, + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "redis" + ], + "from": { + "kind": "ImageStreamTag", + "name": "redis:3.0" + } + } + } + ], + "replicas": 1, + "test": false, + "selector": { + "io.kompose.service": "redis" + }, + "template": { + "metadata": { + "creationTimestamp": null, + "labels": { + "io.kompose.service": "redis" + } + }, + "spec": { + "containers": [ + { + "name": "redis", + "image": " ", + "ports": [ + { + "containerPort": 6379 + } + ], + "resources": {} + } + ], + "restartPolicy": "Always" + } + } + }, + "status": {} + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "redis", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "redis" + } + }, + "spec": { + "tags": [ + { + "name": "3.0", + "annotations": null, + "from": { + "kind": "DockerImage", + "name": "redis:3.0" + }, + "generation": null, + "importPolicy": {} + } + ] + }, + "status": { + "dockerImageRepository": "" + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "web", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "web" + }, + "annotations": { + "kompose.service.type": "NodePort", + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "strategy": { + "resources": {} + }, + "triggers": [ + { + "type": "ConfigChange" + }, + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "web" + ], + "from": { + "kind": "ImageStreamTag", + "name": "web:latest" + } + } + } + ], + "replicas": 1, + "test": false, + "selector": { + "io.kompose.service": "web" + }, + "template": { + "metadata": { + "creationTimestamp": null, + "labels": { + "io.kompose.service": "web" + } + }, + "spec": { + "containers": [ + { + "name": "web", + "image": " ", + "ports": [ + { + "containerPort": 5000 + } + ], + "resources": {} + } + ], + "restartPolicy": "Always" + } + } + }, + "status": {} + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "web", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "web" + } + }, + "spec": { + "tags": [ + { + "name": "latest", + "annotations": null, + "from": { + "kind": "DockerImage", + "name": "tuna/docker-counter23" + }, + "generation": null, + "importPolicy": {} + } + ] + }, + "status": { + "dockerImageRepository": "" + } + } + ] +} diff --git a/script/test/fixtures/examples/output-gitlab-k8s.json b/script/test/fixtures/examples/output-gitlab-k8s.json new file mode 100644 index 00000000..f56ce4a9 --- /dev/null +++ b/script/test/fixtures/examples/output-gitlab-k8s.json @@ -0,0 +1,706 @@ +{ + "kind": "List", + "apiVersion": "v1", + "metadata": {}, + "items": [ + { + "kind": "Service", + "apiVersion": "v1", + "metadata": { + "name": "gitlab", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "gitlab" + }, + "annotations": { + "kompose.service.type": "NodePort", + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "ports": [ + { + "name": "10080", + "port": 10080, + "targetPort": 80 + }, + { + "name": "10022", + "port": 10022, + "targetPort": 22 + } + ], + "selector": { + "io.kompose.service": "gitlab" + }, + "type": "NodePort" + }, + "status": { + "loadBalancer": {} + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "metadata": { + "name": "postgresql", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "postgresql" + }, + "annotations": { + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "ports": [ + { + "name": "5432", + "port": 5432, + "targetPort": 5432 + } + ], + "selector": { + "io.kompose.service": "postgresql" + } + }, + "status": { + "loadBalancer": {} + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "metadata": { + "name": "redis", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "redis" + }, + "annotations": { + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "ports": [ + { + "name": "6379", + "port": 6379, + "targetPort": 6379 + } + ], + "selector": { + "io.kompose.service": "redis" + } + }, + "status": { + "loadBalancer": {} + } + }, + { + "kind": "Deployment", + "apiVersion": "extensions/v1beta1", + "metadata": { + "name": "gitlab", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "gitlab" + }, + "annotations": { + "kompose.service.type": "NodePort", + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + + } + }, + "spec": { + "replicas": 1, + "template": { + "metadata": { + "creationTimestamp": null, + "labels": { + "io.kompose.service": "gitlab" + } + }, + "spec": { + "volumes": [ + { + "name": "gitlab-claim0", + "persistentVolumeClaim": { + "claimName": "gitlab-claim0" + } + } + ], + "containers": [ + { + "name": "gitlab", + "image": "sameersbn/gitlab:8.13.3", + "ports": [ + { + "containerPort": 80 + }, + { + "containerPort": 22 + } + ], + "env": [ + { + "name": "DB_ADAPTER", + "value": "postgresql" + }, + { + "name": "DB_HOST", + "value": "postgresql" + }, + { + "name": "DB_NAME", + "value": "gitlabhq_production" + }, + { + "name": "DB_PASS", + "value": "password" + }, + { + "name": "DB_PORT", + "value": "5432" + }, + { + "name": "DB_USER", + "value": "gitlab" + }, + { + "name": "DEBUG", + "value": "false" + }, + { + "name": "GITLAB_BACKUP_SCHEDULE", + "value": "daily" + }, + { + "name": "GITLAB_BACKUP_TIME", + "value": "01:00" + }, + { + "name": "GITLAB_EMAIL", + "value": "notifications@example.com" + }, + { + "name": "GITLAB_EMAIL_REPLY_TO", + "value": "noreply@example.com" + }, + { + "name": "GITLAB_HOST", + "value": "localhost" + }, + { + "name": "GITLAB_HTTPS", + "value": "false" + }, + { + "name": "GITLAB_INCOMING_EMAIL_ADDRESS", + "value": "reply@example.com" + }, + { + "name": "GITLAB_NOTIFY_ON_BROKEN_BUILDS", + "value": "true" + }, + { + "name": "GITLAB_NOTIFY_PUSHER", + "value": "false" + }, + { + "name": "GITLAB_PORT", + "value": "10080" + }, + { + "name": "GITLAB_RELATIVE_URL_ROOT" + }, + { + "name": "GITLAB_ROOT_EMAIL" + }, + { + "name": "GITLAB_ROOT_PASSWORD" + }, + { + "name": "GITLAB_SECRETS_DB_KEY_BASE", + "value": "long-and-random-alphanumeric-string" + }, + { + "name": "GITLAB_SECRETS_OTP_KEY_BASE", + "value": "long-and-random-alphanumeric-string" + }, + { + "name": "GITLAB_SECRETS_SECRET_KEY_BASE", + "value": "long-and-random-alphanumeric-string" + }, + { + "name": "GITLAB_SSH_PORT", + "value": "10022" + }, + { + "name": "GITLAB_TIMEZONE", + "value": "Kolkata" + }, + { + "name": "IMAP_ENABLED", + "value": "false" + }, + { + "name": "IMAP_HOST", + "value": "imap.gmail.com" + }, + { + "name": "IMAP_PASS", + "value": "password" + }, + { + "name": "IMAP_PORT", + "value": "993" + }, + { + "name": "IMAP_SSL", + "value": "true" + }, + { + "name": "IMAP_STARTTLS", + "value": "false" + }, + { + "name": "IMAP_USER", + "value": "mailer@example.com" + }, + { + "name": "OAUTH_ALLOW_SSO" + }, + { + "name": "OAUTH_AUTH0_CLIENT_ID" + }, + { + "name": "OAUTH_AUTH0_CLIENT_SECRET" + }, + { + "name": "OAUTH_AUTH0_DOMAIN" + }, + { + "name": "OAUTH_AUTO_LINK_LDAP_USER", + "value": "false" + }, + { + "name": "OAUTH_AUTO_LINK_SAML_USER", + "value": "false" + }, + { + "name": "OAUTH_AUTO_SIGN_IN_WITH_PROVIDER" + }, + { + "name": "OAUTH_AZURE_API_KEY" + }, + { + "name": "OAUTH_AZURE_API_SECRET" + }, + { + "name": "OAUTH_AZURE_TENANT_ID" + }, + { + "name": "OAUTH_BITBUCKET_API_KEY" + }, + { + "name": "OAUTH_BITBUCKET_APP_SECRET" + }, + { + "name": "OAUTH_BLOCK_AUTO_CREATED_USERS", + "value": "true" + }, + { + "name": "OAUTH_CAS3_DISABLE_SSL_VERIFICATION", + "value": "false" + }, + { + "name": "OAUTH_CAS3_LABEL", + "value": "cas3" + }, + { + "name": "OAUTH_CAS3_LOGIN_URL", + "value": "/cas/login" + }, + { + "name": "OAUTH_CAS3_LOGOUT_URL", + "value": "/cas/logout" + }, + { + "name": "OAUTH_CAS3_SERVER" + }, + { + "name": "OAUTH_CAS3_VALIDATE_URL", + "value": "/cas/p3/serviceValidate" + }, + { + "name": "OAUTH_CROWD_APP_NAME" + }, + { + "name": "OAUTH_CROWD_APP_PASSWORD" + }, + { + "name": "OAUTH_CROWD_SERVER_URL" + }, + { + "name": "OAUTH_ENABLED", + "value": "false" + }, + { + "name": "OAUTH_EXTERNAL_PROVIDERS" + }, + { + "name": "OAUTH_FACEBOOK_API_KEY" + }, + { + "name": "OAUTH_FACEBOOK_APP_SECRET" + }, + { + "name": "OAUTH_GITHUB_API_KEY" + }, + { + "name": "OAUTH_GITHUB_APP_SECRET" + }, + { + "name": "OAUTH_GITHUB_URL" + }, + { + "name": "OAUTH_GITHUB_VERIFY_SSL" + }, + { + "name": "OAUTH_GITLAB_API_KEY" + }, + { + "name": "OAUTH_GITLAB_APP_SECRET" + }, + { + "name": "OAUTH_GOOGLE_API_KEY" + }, + { + "name": "OAUTH_GOOGLE_APP_SECRET" + }, + { + "name": "OAUTH_GOOGLE_RESTRICT_DOMAIN" + }, + { + "name": "OAUTH_SAML_ASSERTION_CONSUMER_SERVICE_URL" + }, + { + "name": "OAUTH_SAML_ATTRIBUTE_STATEMENTS_EMAIL" + }, + { + "name": "OAUTH_SAML_ATTRIBUTE_STATEMENTS_FIRST_NAME" + }, + { + "name": "OAUTH_SAML_ATTRIBUTE_STATEMENTS_LAST_NAME" + }, + { + "name": "OAUTH_SAML_ATTRIBUTE_STATEMENTS_NAME" + }, + { + "name": "OAUTH_SAML_EXTERNAL_GROUPS" + }, + { + "name": "OAUTH_SAML_GROUPS_ATTRIBUTE" + }, + { + "name": "OAUTH_SAML_IDP_CERT_FINGERPRINT" + }, + { + "name": "OAUTH_SAML_IDP_SSO_TARGET_URL" + }, + { + "name": "OAUTH_SAML_ISSUER" + }, + { + "name": "OAUTH_SAML_LABEL", + "value": "\"Our SAML Provider\"" + }, + { + "name": "OAUTH_SAML_NAME_IDENTIFIER_FORMAT", + "value": "urn:oasis:names:tc:SAML:2.0:nameid-format:transient" + }, + { + "name": "OAUTH_TWITTER_API_KEY" + }, + { + "name": "OAUTH_TWITTER_APP_SECRET" + }, + { + "name": "REDIS_HOST", + "value": "redis" + }, + { + "name": "REDIS_PORT", + "value": "6379" + }, + { + "name": "SMTP_AUTHENTICATION", + "value": "login" + }, + { + "name": "SMTP_DOMAIN", + "value": "www.example.com" + }, + { + "name": "SMTP_ENABLED", + "value": "false" + }, + { + "name": "SMTP_HOST", + "value": "smtp.gmail.com" + }, + { + "name": "SMTP_PASS", + "value": "password" + }, + { + "name": "SMTP_PORT", + "value": "587" + }, + { + "name": "SMTP_STARTTLS", + "value": "true" + }, + { + "name": "SMTP_USER", + "value": "mailer@example.com" + }, + { + "name": "SSL_SELF_SIGNED", + "value": "false" + }, + { + "name": "TZ", + "value": "Asia/Kolkata" + } + ], + "resources": {}, + "volumeMounts": [ + { + "name": "gitlab-claim0", + "mountPath": "/home/git/data" + } + ] + } + ], + "restartPolicy": "Always" + } + }, + "strategy": { + "type": "Recreate" + } + }, + "status": {} + }, + { + "kind": "PersistentVolumeClaim", + "apiVersion": "v1", + "metadata": { + "name": "gitlab-claim0", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "gitlab-claim0" + } + }, + "spec": { + "accessModes": [ + "ReadWriteOnce" + ], + "resources": { + "requests": { + "storage": "100Mi" + } + } + }, + "status": {} + }, + { + "kind": "Deployment", + "apiVersion": "extensions/v1beta1", + "metadata": { + "name": "postgresql", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "postgresql" + }, + "annotations": { + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "replicas": 1, + "template": { + "metadata": { + "creationTimestamp": null, + "labels": { + "io.kompose.service": "postgresql" + } + }, + "spec": { + "volumes": [ + { + "name": "postgresql-claim0", + "persistentVolumeClaim": { + "claimName": "postgresql-claim0" + } + } + ], + "containers": [ + { + "name": "postgresql", + "image": "sameersbn/postgresql:9.5-3", + "ports": [ + { + "containerPort": 5432 + } + ], + "env": [ + { + "name": "DB_EXTENSION", + "value": "pg_trgm" + }, + { + "name": "DB_NAME", + "value": "gitlabhq_production" + }, + { + "name": "DB_PASS", + "value": "password" + }, + { + "name": "DB_USER", + "value": "gitlab" + } + ], + "resources": {}, + "volumeMounts": [ + { + "name": "postgresql-claim0", + "mountPath": "/var/lib/postgresql" + } + ] + } + ], + "restartPolicy": "Always" + } + }, + "strategy": { + "type": "Recreate" + } + }, + "status": {} + }, + { + "kind": "PersistentVolumeClaim", + "apiVersion": "v1", + "metadata": { + "name": "postgresql-claim0", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "postgresql-claim0" + } + }, + "spec": { + "accessModes": [ + "ReadWriteOnce" + ], + "resources": { + "requests": { + "storage": "100Mi" + } + } + }, + "status": {} + }, + { + "kind": "Deployment", + "apiVersion": "extensions/v1beta1", + "metadata": { + "name": "redis", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "redis" + }, + "annotations": { + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "replicas": 1, + "template": { + "metadata": { + "creationTimestamp": null, + "labels": { + "io.kompose.service": "redis" + } + }, + "spec": { + "volumes": [ + { + "name": "redis-claim0", + "persistentVolumeClaim": { + "claimName": "redis-claim0" + } + } + ], + "containers": [ + { + "name": "redis", + "image": "sameersbn/redis:latest", + "args": [ + "--loglevel warning" + ], + "ports": [ + { + "containerPort": 6379 + } + ], + "resources": {}, + "volumeMounts": [ + { + "name": "redis-claim0", + "mountPath": "/var/lib/redis" + } + ] + } + ], + "restartPolicy": "Always" + } + }, + "strategy": { + "type": "Recreate" + } + }, + "status": {} + }, + { + "kind": "PersistentVolumeClaim", + "apiVersion": "v1", + "metadata": { + "name": "redis-claim0", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "redis-claim0" + } + }, + "spec": { + "accessModes": [ + "ReadWriteOnce" + ], + "resources": { + "requests": { + "storage": "100Mi" + } + } + }, + "status": {} + } + ] +} diff --git a/script/test/fixtures/examples/output-gitlab-os.json b/script/test/fixtures/examples/output-gitlab-os.json new file mode 100644 index 00000000..99698257 --- /dev/null +++ b/script/test/fixtures/examples/output-gitlab-os.json @@ -0,0 +1,858 @@ +{ + "kind": "List", + "apiVersion": "v1", + "metadata": {}, + "items": [ + { + "kind": "Service", + "apiVersion": "v1", + "metadata": { + "name": "gitlab", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "gitlab" + }, + "annotations": { + "kompose.service.type": "NodePort", + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "ports": [ + { + "name": "10080", + "port": 10080, + "targetPort": 80 + }, + { + "name": "10022", + "port": 10022, + "targetPort": 22 + } + ], + "selector": { + "io.kompose.service": "gitlab" + }, + "type": "NodePort" + }, + "status": { + "loadBalancer": {} + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "metadata": { + "name": "postgresql", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "postgresql" + }, + "annotations": { + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "ports": [ + { + "name": "5432", + "port": 5432, + "targetPort": 5432 + } + ], + "selector": { + "io.kompose.service": "postgresql" + } + }, + "status": { + "loadBalancer": {} + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "metadata": { + "name": "redis", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "redis" + }, + "annotations": { + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "ports": [ + { + "name": "6379", + "port": 6379, + "targetPort": 6379 + } + ], + "selector": { + "io.kompose.service": "redis" + } + }, + "status": { + "loadBalancer": {} + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "gitlab", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "gitlab" + }, + "annotations": { + "kompose.service.type": "NodePort", + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "strategy": { + "type": "Recreate", + "resources": {} + }, + "triggers": [ + { + "type": "ConfigChange" + }, + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "gitlab" + ], + "from": { + "kind": "ImageStreamTag", + "name": "gitlab:8.13.3" + } + } + } + ], + "replicas": 1, + "test": false, + "selector": { + "io.kompose.service": "gitlab" + }, + "template": { + "metadata": { + "creationTimestamp": null, + "labels": { + "io.kompose.service": "gitlab" + } + }, + "spec": { + "volumes": [ + { + "name": "gitlab-claim0", + "persistentVolumeClaim": { + "claimName": "gitlab-claim0" + } + } + ], + "containers": [ + { + "name": "gitlab", + "image": " ", + "ports": [ + { + "containerPort": 80 + }, + { + "containerPort": 22 + } + ], + "env": [ + { + "name": "DB_ADAPTER", + "value": "postgresql" + }, + { + "name": "DB_HOST", + "value": "postgresql" + }, + { + "name": "DB_NAME", + "value": "gitlabhq_production" + }, + { + "name": "DB_PASS", + "value": "password" + }, + { + "name": "DB_PORT", + "value": "5432" + }, + { + "name": "DB_USER", + "value": "gitlab" + }, + { + "name": "DEBUG", + "value": "false" + }, + { + "name": "GITLAB_BACKUP_SCHEDULE", + "value": "daily" + }, + { + "name": "GITLAB_BACKUP_TIME", + "value": "01:00" + }, + { + "name": "GITLAB_EMAIL", + "value": "notifications@example.com" + }, + { + "name": "GITLAB_EMAIL_REPLY_TO", + "value": "noreply@example.com" + }, + { + "name": "GITLAB_HOST", + "value": "localhost" + }, + { + "name": "GITLAB_HTTPS", + "value": "false" + }, + { + "name": "GITLAB_INCOMING_EMAIL_ADDRESS", + "value": "reply@example.com" + }, + { + "name": "GITLAB_NOTIFY_ON_BROKEN_BUILDS", + "value": "true" + }, + { + "name": "GITLAB_NOTIFY_PUSHER", + "value": "false" + }, + { + "name": "GITLAB_PORT", + "value": "10080" + }, + { + "name": "GITLAB_RELATIVE_URL_ROOT" + }, + { + "name": "GITLAB_ROOT_EMAIL" + }, + { + "name": "GITLAB_ROOT_PASSWORD" + }, + { + "name": "GITLAB_SECRETS_DB_KEY_BASE", + "value": "long-and-random-alphanumeric-string" + }, + { + "name": "GITLAB_SECRETS_OTP_KEY_BASE", + "value": "long-and-random-alphanumeric-string" + }, + { + "name": "GITLAB_SECRETS_SECRET_KEY_BASE", + "value": "long-and-random-alphanumeric-string" + }, + { + "name": "GITLAB_SSH_PORT", + "value": "10022" + }, + { + "name": "GITLAB_TIMEZONE", + "value": "Kolkata" + }, + { + "name": "IMAP_ENABLED", + "value": "false" + }, + { + "name": "IMAP_HOST", + "value": "imap.gmail.com" + }, + { + "name": "IMAP_PASS", + "value": "password" + }, + { + "name": "IMAP_PORT", + "value": "993" + }, + { + "name": "IMAP_SSL", + "value": "true" + }, + { + "name": "IMAP_STARTTLS", + "value": "false" + }, + { + "name": "IMAP_USER", + "value": "mailer@example.com" + }, + { + "name": "OAUTH_ALLOW_SSO" + }, + { + "name": "OAUTH_AUTH0_CLIENT_ID" + }, + { + "name": "OAUTH_AUTH0_CLIENT_SECRET" + }, + { + "name": "OAUTH_AUTH0_DOMAIN" + }, + { + "name": "OAUTH_AUTO_LINK_LDAP_USER", + "value": "false" + }, + { + "name": "OAUTH_AUTO_LINK_SAML_USER", + "value": "false" + }, + { + "name": "OAUTH_AUTO_SIGN_IN_WITH_PROVIDER" + }, + { + "name": "OAUTH_AZURE_API_KEY" + }, + { + "name": "OAUTH_AZURE_API_SECRET" + }, + { + "name": "OAUTH_AZURE_TENANT_ID" + }, + { + "name": "OAUTH_BITBUCKET_API_KEY" + }, + { + "name": "OAUTH_BITBUCKET_APP_SECRET" + }, + { + "name": "OAUTH_BLOCK_AUTO_CREATED_USERS", + "value": "true" + }, + { + "name": "OAUTH_CAS3_DISABLE_SSL_VERIFICATION", + "value": "false" + }, + { + "name": "OAUTH_CAS3_LABEL", + "value": "cas3" + }, + { + "name": "OAUTH_CAS3_LOGIN_URL", + "value": "/cas/login" + }, + { + "name": "OAUTH_CAS3_LOGOUT_URL", + "value": "/cas/logout" + }, + { + "name": "OAUTH_CAS3_SERVER" + }, + { + "name": "OAUTH_CAS3_VALIDATE_URL", + "value": "/cas/p3/serviceValidate" + }, + { + "name": "OAUTH_CROWD_APP_NAME" + }, + { + "name": "OAUTH_CROWD_APP_PASSWORD" + }, + { + "name": "OAUTH_CROWD_SERVER_URL" + }, + { + "name": "OAUTH_ENABLED", + "value": "false" + }, + { + "name": "OAUTH_EXTERNAL_PROVIDERS" + }, + { + "name": "OAUTH_FACEBOOK_API_KEY" + }, + { + "name": "OAUTH_FACEBOOK_APP_SECRET" + }, + { + "name": "OAUTH_GITHUB_API_KEY" + }, + { + "name": "OAUTH_GITHUB_APP_SECRET" + }, + { + "name": "OAUTH_GITHUB_URL" + }, + { + "name": "OAUTH_GITHUB_VERIFY_SSL" + }, + { + "name": "OAUTH_GITLAB_API_KEY" + }, + { + "name": "OAUTH_GITLAB_APP_SECRET" + }, + { + "name": "OAUTH_GOOGLE_API_KEY" + }, + { + "name": "OAUTH_GOOGLE_APP_SECRET" + }, + { + "name": "OAUTH_GOOGLE_RESTRICT_DOMAIN" + }, + { + "name": "OAUTH_SAML_ASSERTION_CONSUMER_SERVICE_URL" + }, + { + "name": "OAUTH_SAML_ATTRIBUTE_STATEMENTS_EMAIL" + }, + { + "name": "OAUTH_SAML_ATTRIBUTE_STATEMENTS_FIRST_NAME" + }, + { + "name": "OAUTH_SAML_ATTRIBUTE_STATEMENTS_LAST_NAME" + }, + { + "name": "OAUTH_SAML_ATTRIBUTE_STATEMENTS_NAME" + }, + { + "name": "OAUTH_SAML_EXTERNAL_GROUPS" + }, + { + "name": "OAUTH_SAML_GROUPS_ATTRIBUTE" + }, + { + "name": "OAUTH_SAML_IDP_CERT_FINGERPRINT" + }, + { + "name": "OAUTH_SAML_IDP_SSO_TARGET_URL" + }, + { + "name": "OAUTH_SAML_ISSUER" + }, + { + "name": "OAUTH_SAML_LABEL", + "value": "\"Our SAML Provider\"" + }, + { + "name": "OAUTH_SAML_NAME_IDENTIFIER_FORMAT", + "value": "urn:oasis:names:tc:SAML:2.0:nameid-format:transient" + }, + { + "name": "OAUTH_TWITTER_API_KEY" + }, + { + "name": "OAUTH_TWITTER_APP_SECRET" + }, + { + "name": "REDIS_HOST", + "value": "redis" + }, + { + "name": "REDIS_PORT", + "value": "6379" + }, + { + "name": "SMTP_AUTHENTICATION", + "value": "login" + }, + { + "name": "SMTP_DOMAIN", + "value": "www.example.com" + }, + { + "name": "SMTP_ENABLED", + "value": "false" + }, + { + "name": "SMTP_HOST", + "value": "smtp.gmail.com" + }, + { + "name": "SMTP_PASS", + "value": "password" + }, + { + "name": "SMTP_PORT", + "value": "587" + }, + { + "name": "SMTP_STARTTLS", + "value": "true" + }, + { + "name": "SMTP_USER", + "value": "mailer@example.com" + }, + { + "name": "SSL_SELF_SIGNED", + "value": "false" + }, + { + "name": "TZ", + "value": "Asia/Kolkata" + } + ], + "resources": {}, + "volumeMounts": [ + { + "name": "gitlab-claim0", + "mountPath": "/home/git/data" + } + ] + } + ], + "restartPolicy": "Always" + } + } + }, + "status": {} + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "gitlab", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "gitlab" + } + }, + "spec": { + "tags": [ + { + "name": "8.13.3", + "annotations": null, + "from": { + "kind": "DockerImage", + "name": "sameersbn/gitlab:8.13.3" + }, + "generation": null, + "importPolicy": {} + } + ] + }, + "status": { + "dockerImageRepository": "" + } + }, + { + "kind": "PersistentVolumeClaim", + "apiVersion": "v1", + "metadata": { + "name": "gitlab-claim0", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "gitlab-claim0" + } + }, + "spec": { + "accessModes": [ + "ReadWriteOnce" + ], + "resources": { + "requests": { + "storage": "100Mi" + } + } + }, + "status": {} + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "postgresql", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "postgresql" + }, + "annotations": { + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "strategy": { + "type": "Recreate", + "resources": {} + }, + "triggers": [ + { + "type": "ConfigChange" + }, + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "postgresql" + ], + "from": { + "kind": "ImageStreamTag", + "name": "postgresql:9.5-3" + } + } + } + ], + "replicas": 1, + "test": false, + "selector": { + "io.kompose.service": "postgresql" + }, + "template": { + "metadata": { + "creationTimestamp": null, + "labels": { + "io.kompose.service": "postgresql" + } + }, + "spec": { + "volumes": [ + { + "name": "postgresql-claim0", + "persistentVolumeClaim": { + "claimName": "postgresql-claim0" + } + } + ], + "containers": [ + { + "name": "postgresql", + "image": " ", + "ports": [ + { + "containerPort": 5432 + } + ], + "env": [ + { + "name": "DB_EXTENSION", + "value": "pg_trgm" + }, + { + "name": "DB_NAME", + "value": "gitlabhq_production" + }, + { + "name": "DB_PASS", + "value": "password" + }, + { + "name": "DB_USER", + "value": "gitlab" + } + ], + "resources": {}, + "volumeMounts": [ + { + "name": "postgresql-claim0", + "mountPath": "/var/lib/postgresql" + } + ] + } + ], + "restartPolicy": "Always" + } + } + }, + "status": {} + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "postgresql", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "postgresql" + } + }, + "spec": { + "tags": [ + { + "name": "9.5-3", + "annotations": null, + "from": { + "kind": "DockerImage", + "name": "sameersbn/postgresql:9.5-3" + }, + "generation": null, + "importPolicy": {} + } + ] + }, + "status": { + "dockerImageRepository": "" + } + }, + { + "kind": "PersistentVolumeClaim", + "apiVersion": "v1", + "metadata": { + "name": "postgresql-claim0", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "postgresql-claim0" + } + }, + "spec": { + "accessModes": [ + "ReadWriteOnce" + ], + "resources": { + "requests": { + "storage": "100Mi" + } + } + }, + "status": {} + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "redis", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "redis" + }, + "annotations": { + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "strategy": { + "type": "Recreate", + "resources": {} + }, + "triggers": [ + { + "type": "ConfigChange" + }, + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "redis" + ], + "from": { + "kind": "ImageStreamTag", + "name": "redis:latest" + } + } + } + ], + "replicas": 1, + "test": false, + "selector": { + "io.kompose.service": "redis" + }, + "template": { + "metadata": { + "creationTimestamp": null, + "labels": { + "io.kompose.service": "redis" + } + }, + "spec": { + "volumes": [ + { + "name": "redis-claim0", + "persistentVolumeClaim": { + "claimName": "redis-claim0" + } + } + ], + "containers": [ + { + "name": "redis", + "image": " ", + "args": [ + "--loglevel warning" + ], + "ports": [ + { + "containerPort": 6379 + } + ], + "resources": {}, + "volumeMounts": [ + { + "name": "redis-claim0", + "mountPath": "/var/lib/redis" + } + ] + } + ], + "restartPolicy": "Always" + } + } + }, + "status": {} + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "redis", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "redis" + } + }, + "spec": { + "tags": [ + { + "name": "latest", + "annotations": null, + "from": { + "kind": "DockerImage", + "name": "sameersbn/redis:latest" + }, + "generation": null, + "importPolicy": {} + } + ] + }, + "status": { + "dockerImageRepository": "" + } + }, + { + "kind": "PersistentVolumeClaim", + "apiVersion": "v1", + "metadata": { + "name": "redis-claim0", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "redis-claim0" + } + }, + "spec": { + "accessModes": [ + "ReadWriteOnce" + ], + "resources": { + "requests": { + "storage": "100Mi" + } + } + }, + "status": {} + } + ] +} diff --git a/script/test/fixtures/examples/output-k8s.json b/script/test/fixtures/examples/output-k8s.json new file mode 100644 index 00000000..5689b3ec --- /dev/null +++ b/script/test/fixtures/examples/output-k8s.json @@ -0,0 +1,241 @@ +{ + "kind": "List", + "apiVersion": "v1", + "metadata": {}, + "items": [ + { + "kind": "Service", + "apiVersion": "v1", + "metadata": { + "name": "frontend", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "frontend" + }, + "annotations": { + "kompose.service.type": "LoadBalancer", + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "ports": [ + { + "name": "80", + "port": 80, + "targetPort": 80 + } + ], + "selector": { + "io.kompose.service": "frontend" + }, + "type": "LoadBalancer" + }, + "status": { + "loadBalancer": {} + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "metadata": { + "name": "redis-master", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "redis-master" + }, + "annotations": { + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "ports": [ + { + "name": "6379", + "port": 6379, + "targetPort": 6379 + } + ], + "selector": { + "io.kompose.service": "redis-master" + } + }, + "status": { + "loadBalancer": {} + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "metadata": { + "name": "redis-slave", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "redis-slave" + }, + "annotations": { + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "ports": [ + { + "name": "6379", + "port": 6379, + "targetPort": 6379 + } + ], + "selector": { + "io.kompose.service": "redis-slave" + } + }, + "status": { + "loadBalancer": {} + } + }, + { + "kind": "Deployment", + "apiVersion": "extensions/v1beta1", + "metadata": { + "name": "frontend", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "frontend" + }, + "annotations": { + "kompose.service.type": "LoadBalancer", + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "replicas": 1, + "template": { + "metadata": { + "creationTimestamp": null, + "labels": { + "io.kompose.service": "frontend" + } + }, + "spec": { + "containers": [ + { + "name": "frontend", + "image": "gcr.io/google-samples/gb-frontend:v4", + "ports": [ + { + "containerPort": 80 + } + ], + "env": [ + { + "name": "GET_HOSTS_FROM", + "value": "dns" + } + ], + "resources": {} + } + ], + "restartPolicy": "Always" + } + }, + "strategy": {} + }, + "status": {} + }, + { + "kind": "Deployment", + "apiVersion": "extensions/v1beta1", + "metadata": { + "name": "redis-master", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "redis-master" + }, + "annotations": { + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "replicas": 1, + "template": { + "metadata": { + "creationTimestamp": null, + "labels": { + "io.kompose.service": "redis-master" + } + }, + "spec": { + "containers": [ + { + "name": "redis-master", + "image": "gcr.io/google_containers/redis:e2e", + "ports": [ + { + "containerPort": 6379 + } + ], + "resources": {} + } + ], + "restartPolicy": "Always" + } + }, + "strategy": {} + }, + "status": {} + }, + { + "kind": "Deployment", + "apiVersion": "extensions/v1beta1", + "metadata": { + "name": "redis-slave", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "redis-slave" + }, + "annotations": { + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "replicas": 1, + "template": { + "metadata": { + "creationTimestamp": null, + "labels": { + "io.kompose.service": "redis-slave" + } + }, + "spec": { + "containers": [ + { + "name": "redis-slave", + "image": "gcr.io/google_samples/gb-redisslave:v1", + "ports": [ + { + "containerPort": 6379 + } + ], + "env": [ + { + "name": "GET_HOSTS_FROM", + "value": "dns" + } + ], + "resources": {} + } + ], + "restartPolicy": "Always" + } + }, + "strategy": {} + }, + "status": {} + } + ] +} diff --git a/script/test/fixtures/examples/output-os.json b/script/test/fixtures/examples/output-os.json new file mode 100644 index 00000000..b25c8fed --- /dev/null +++ b/script/test/fixtures/examples/output-os.json @@ -0,0 +1,397 @@ +{ + "kind": "List", + "apiVersion": "v1", + "metadata": {}, + "items": [ + { + "kind": "Service", + "apiVersion": "v1", + "metadata": { + "name": "frontend", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "frontend" + }, + "annotations": { + "kompose.service.type": "LoadBalancer", + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "ports": [ + { + "name": "80", + "port": 80, + "targetPort": 80 + } + ], + "selector": { + "io.kompose.service": "frontend" + }, + "type": "LoadBalancer" + }, + "status": { + "loadBalancer": {} + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "metadata": { + "name": "redis-master", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "redis-master" + }, + "annotations": { + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "ports": [ + { + "name": "6379", + "port": 6379, + "targetPort": 6379 + } + ], + "selector": { + "io.kompose.service": "redis-master" + } + }, + "status": { + "loadBalancer": {} + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "metadata": { + "name": "redis-slave", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "redis-slave" + }, + "annotations": { + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "ports": [ + { + "name": "6379", + "port": 6379, + "targetPort": 6379 + } + ], + "selector": { + "io.kompose.service": "redis-slave" + } + }, + "status": { + "loadBalancer": {} + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "frontend", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "frontend" + }, + "annotations": { + "kompose.service.type": "LoadBalancer", + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "strategy": { + "resources": {} + }, + "triggers": [ + { + "type": "ConfigChange" + }, + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "frontend" + ], + "from": { + "kind": "ImageStreamTag", + "name": "frontend:v4" + } + } + } + ], + "replicas": 1, + "test": false, + "selector": { + "io.kompose.service": "frontend" + }, + "template": { + "metadata": { + "creationTimestamp": null, + "labels": { + "io.kompose.service": "frontend" + } + }, + "spec": { + "containers": [ + { + "name": "frontend", + "image": " ", + "ports": [ + { + "containerPort": 80 + } + ], + "env": [ + { + "name": "GET_HOSTS_FROM", + "value": "dns" + } + ], + "resources": {} + } + ], + "restartPolicy": "Always" + } + } + }, + "status": {} + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "frontend", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "frontend" + } + }, + "spec": { + "tags": [ + { + "name": "v4", + "annotations": null, + "from": { + "kind": "DockerImage", + "name": "gcr.io/google-samples/gb-frontend:v4" + }, + "generation": null, + "importPolicy": {} + } + ] + }, + "status": { + "dockerImageRepository": "" + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "redis-master", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "redis-master" + }, + "annotations": { + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "strategy": { + "resources": {} + }, + "triggers": [ + { + "type": "ConfigChange" + }, + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "redis-master" + ], + "from": { + "kind": "ImageStreamTag", + "name": "redis-master:e2e" + } + } + } + ], + "replicas": 1, + "test": false, + "selector": { + "io.kompose.service": "redis-master" + }, + "template": { + "metadata": { + "creationTimestamp": null, + "labels": { + "io.kompose.service": "redis-master" + } + }, + "spec": { + "containers": [ + { + "name": "redis-master", + "image": " ", + "ports": [ + { + "containerPort": 6379 + } + ], + "resources": {} + } + ], + "restartPolicy": "Always" + } + } + }, + "status": {} + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "redis-master", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "redis-master" + } + }, + "spec": { + "tags": [ + { + "name": "e2e", + "annotations": null, + "from": { + "kind": "DockerImage", + "name": "gcr.io/google_containers/redis:e2e" + }, + "generation": null, + "importPolicy": {} + } + ] + }, + "status": { + "dockerImageRepository": "" + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "redis-slave", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "redis-slave" + }, + "annotations": { + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "strategy": { + "resources": {} + }, + "triggers": [ + { + "type": "ConfigChange" + }, + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "redis-slave" + ], + "from": { + "kind": "ImageStreamTag", + "name": "redis-slave:v1" + } + } + } + ], + "replicas": 1, + "test": false, + "selector": { + "io.kompose.service": "redis-slave" + }, + "template": { + "metadata": { + "creationTimestamp": null, + "labels": { + "io.kompose.service": "redis-slave" + } + }, + "spec": { + "containers": [ + { + "name": "redis-slave", + "image": " ", + "ports": [ + { + "containerPort": 6379 + } + ], + "env": [ + { + "name": "GET_HOSTS_FROM", + "value": "dns" + } + ], + "resources": {} + } + ], + "restartPolicy": "Always" + } + } + }, + "status": {} + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "redis-slave", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "redis-slave" + } + }, + "spec": { + "tags": [ + { + "name": "v1", + "annotations": null, + "from": { + "kind": "DockerImage", + "name": "gcr.io/google_samples/gb-redisslave:v1" + }, + "generation": null, + "importPolicy": {} + } + ] + }, + "status": { + "dockerImageRepository": "" + } + } + ] +} diff --git a/script/test/fixtures/examples/output-v3-k8s.json b/script/test/fixtures/examples/output-v3-k8s.json new file mode 100644 index 00000000..5689b3ec --- /dev/null +++ b/script/test/fixtures/examples/output-v3-k8s.json @@ -0,0 +1,241 @@ +{ + "kind": "List", + "apiVersion": "v1", + "metadata": {}, + "items": [ + { + "kind": "Service", + "apiVersion": "v1", + "metadata": { + "name": "frontend", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "frontend" + }, + "annotations": { + "kompose.service.type": "LoadBalancer", + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "ports": [ + { + "name": "80", + "port": 80, + "targetPort": 80 + } + ], + "selector": { + "io.kompose.service": "frontend" + }, + "type": "LoadBalancer" + }, + "status": { + "loadBalancer": {} + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "metadata": { + "name": "redis-master", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "redis-master" + }, + "annotations": { + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "ports": [ + { + "name": "6379", + "port": 6379, + "targetPort": 6379 + } + ], + "selector": { + "io.kompose.service": "redis-master" + } + }, + "status": { + "loadBalancer": {} + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "metadata": { + "name": "redis-slave", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "redis-slave" + }, + "annotations": { + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "ports": [ + { + "name": "6379", + "port": 6379, + "targetPort": 6379 + } + ], + "selector": { + "io.kompose.service": "redis-slave" + } + }, + "status": { + "loadBalancer": {} + } + }, + { + "kind": "Deployment", + "apiVersion": "extensions/v1beta1", + "metadata": { + "name": "frontend", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "frontend" + }, + "annotations": { + "kompose.service.type": "LoadBalancer", + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "replicas": 1, + "template": { + "metadata": { + "creationTimestamp": null, + "labels": { + "io.kompose.service": "frontend" + } + }, + "spec": { + "containers": [ + { + "name": "frontend", + "image": "gcr.io/google-samples/gb-frontend:v4", + "ports": [ + { + "containerPort": 80 + } + ], + "env": [ + { + "name": "GET_HOSTS_FROM", + "value": "dns" + } + ], + "resources": {} + } + ], + "restartPolicy": "Always" + } + }, + "strategy": {} + }, + "status": {} + }, + { + "kind": "Deployment", + "apiVersion": "extensions/v1beta1", + "metadata": { + "name": "redis-master", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "redis-master" + }, + "annotations": { + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "replicas": 1, + "template": { + "metadata": { + "creationTimestamp": null, + "labels": { + "io.kompose.service": "redis-master" + } + }, + "spec": { + "containers": [ + { + "name": "redis-master", + "image": "gcr.io/google_containers/redis:e2e", + "ports": [ + { + "containerPort": 6379 + } + ], + "resources": {} + } + ], + "restartPolicy": "Always" + } + }, + "strategy": {} + }, + "status": {} + }, + { + "kind": "Deployment", + "apiVersion": "extensions/v1beta1", + "metadata": { + "name": "redis-slave", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "redis-slave" + }, + "annotations": { + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "replicas": 1, + "template": { + "metadata": { + "creationTimestamp": null, + "labels": { + "io.kompose.service": "redis-slave" + } + }, + "spec": { + "containers": [ + { + "name": "redis-slave", + "image": "gcr.io/google_samples/gb-redisslave:v1", + "ports": [ + { + "containerPort": 6379 + } + ], + "env": [ + { + "name": "GET_HOSTS_FROM", + "value": "dns" + } + ], + "resources": {} + } + ], + "restartPolicy": "Always" + } + }, + "strategy": {} + }, + "status": {} + } + ] +} diff --git a/script/test/fixtures/examples/output-v3-os.json b/script/test/fixtures/examples/output-v3-os.json new file mode 100644 index 00000000..b25c8fed --- /dev/null +++ b/script/test/fixtures/examples/output-v3-os.json @@ -0,0 +1,397 @@ +{ + "kind": "List", + "apiVersion": "v1", + "metadata": {}, + "items": [ + { + "kind": "Service", + "apiVersion": "v1", + "metadata": { + "name": "frontend", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "frontend" + }, + "annotations": { + "kompose.service.type": "LoadBalancer", + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "ports": [ + { + "name": "80", + "port": 80, + "targetPort": 80 + } + ], + "selector": { + "io.kompose.service": "frontend" + }, + "type": "LoadBalancer" + }, + "status": { + "loadBalancer": {} + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "metadata": { + "name": "redis-master", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "redis-master" + }, + "annotations": { + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "ports": [ + { + "name": "6379", + "port": 6379, + "targetPort": 6379 + } + ], + "selector": { + "io.kompose.service": "redis-master" + } + }, + "status": { + "loadBalancer": {} + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "metadata": { + "name": "redis-slave", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "redis-slave" + }, + "annotations": { + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "ports": [ + { + "name": "6379", + "port": 6379, + "targetPort": 6379 + } + ], + "selector": { + "io.kompose.service": "redis-slave" + } + }, + "status": { + "loadBalancer": {} + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "frontend", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "frontend" + }, + "annotations": { + "kompose.service.type": "LoadBalancer", + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "strategy": { + "resources": {} + }, + "triggers": [ + { + "type": "ConfigChange" + }, + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "frontend" + ], + "from": { + "kind": "ImageStreamTag", + "name": "frontend:v4" + } + } + } + ], + "replicas": 1, + "test": false, + "selector": { + "io.kompose.service": "frontend" + }, + "template": { + "metadata": { + "creationTimestamp": null, + "labels": { + "io.kompose.service": "frontend" + } + }, + "spec": { + "containers": [ + { + "name": "frontend", + "image": " ", + "ports": [ + { + "containerPort": 80 + } + ], + "env": [ + { + "name": "GET_HOSTS_FROM", + "value": "dns" + } + ], + "resources": {} + } + ], + "restartPolicy": "Always" + } + } + }, + "status": {} + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "frontend", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "frontend" + } + }, + "spec": { + "tags": [ + { + "name": "v4", + "annotations": null, + "from": { + "kind": "DockerImage", + "name": "gcr.io/google-samples/gb-frontend:v4" + }, + "generation": null, + "importPolicy": {} + } + ] + }, + "status": { + "dockerImageRepository": "" + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "redis-master", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "redis-master" + }, + "annotations": { + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "strategy": { + "resources": {} + }, + "triggers": [ + { + "type": "ConfigChange" + }, + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "redis-master" + ], + "from": { + "kind": "ImageStreamTag", + "name": "redis-master:e2e" + } + } + } + ], + "replicas": 1, + "test": false, + "selector": { + "io.kompose.service": "redis-master" + }, + "template": { + "metadata": { + "creationTimestamp": null, + "labels": { + "io.kompose.service": "redis-master" + } + }, + "spec": { + "containers": [ + { + "name": "redis-master", + "image": " ", + "ports": [ + { + "containerPort": 6379 + } + ], + "resources": {} + } + ], + "restartPolicy": "Always" + } + } + }, + "status": {} + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "redis-master", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "redis-master" + } + }, + "spec": { + "tags": [ + { + "name": "e2e", + "annotations": null, + "from": { + "kind": "DockerImage", + "name": "gcr.io/google_containers/redis:e2e" + }, + "generation": null, + "importPolicy": {} + } + ] + }, + "status": { + "dockerImageRepository": "" + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "redis-slave", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "redis-slave" + }, + "annotations": { + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "strategy": { + "resources": {} + }, + "triggers": [ + { + "type": "ConfigChange" + }, + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "redis-slave" + ], + "from": { + "kind": "ImageStreamTag", + "name": "redis-slave:v1" + } + } + } + ], + "replicas": 1, + "test": false, + "selector": { + "io.kompose.service": "redis-slave" + }, + "template": { + "metadata": { + "creationTimestamp": null, + "labels": { + "io.kompose.service": "redis-slave" + } + }, + "spec": { + "containers": [ + { + "name": "redis-slave", + "image": " ", + "ports": [ + { + "containerPort": 6379 + } + ], + "env": [ + { + "name": "GET_HOSTS_FROM", + "value": "dns" + } + ], + "resources": {} + } + ], + "restartPolicy": "Always" + } + } + }, + "status": {} + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "redis-slave", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "redis-slave" + } + }, + "spec": { + "tags": [ + { + "name": "v1", + "annotations": null, + "from": { + "kind": "DockerImage", + "name": "gcr.io/google_samples/gb-redisslave:v1" + }, + "generation": null, + "importPolicy": {} + } + ] + }, + "status": { + "dockerImageRepository": "" + } + } + ] +} diff --git a/script/test/fixtures/examples/output-voting-k8s.json b/script/test/fixtures/examples/output-voting-k8s.json new file mode 100644 index 00000000..163c99e9 --- /dev/null +++ b/script/test/fixtures/examples/output-voting-k8s.json @@ -0,0 +1,372 @@ +{ + "kind": "List", + "apiVersion": "v1", + "metadata": {}, + "items": [ + { + "kind": "Service", + "apiVersion": "v1", + "metadata": { + "name": "db", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "db" + }, + "annotations": { + "com.example.description": "Postgres Database", + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "ports": [ + { + "name": "5432", + "port": 5432, + "targetPort": 5432 + } + ], + "selector": { + "io.kompose.service": "db" + } + }, + "status": { + "loadBalancer": {} + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "metadata": { + "name": "redis", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "redis" + }, + "annotations": { + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "ports": [ + { + "name": "6379", + "port": 6379, + "targetPort": 6379 + } + ], + "selector": { + "io.kompose.service": "redis" + } + }, + "status": { + "loadBalancer": {} + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "metadata": { + "name": "result", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "result" + }, + "annotations": { + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "ports": [ + { + "name": "5001", + "port": 5001, + "targetPort": 80 + } + ], + "selector": { + "io.kompose.service": "result" + } + }, + "status": { + "loadBalancer": {} + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "metadata": { + "name": "vote", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "vote" + }, + "annotations": { + "com.example.description": "Vote", + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "ports": [ + { + "name": "5000", + "port": 5000, + "targetPort": 80 + } + ], + "selector": { + "io.kompose.service": "vote" + } + }, + "status": { + "loadBalancer": {} + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "metadata": { + "name": "worker", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "worker" + }, + "annotations": { + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "ports": [ + { + "name": "headless", + "port": 55555, + "targetPort": 0 + } + ], + "selector": { + "io.kompose.service": "worker" + }, + "clusterIP": "None" + }, + "status": { + "loadBalancer": {} + } + }, + { + "kind": "Deployment", + "apiVersion": "extensions/v1beta1", + "metadata": { + "name": "db", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "db" + }, + "annotations": { + "com.example.description": "Postgres Database", + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "replicas": 1, + "template": { + "metadata": { + "creationTimestamp": null, + "labels": { + "io.kompose.service": "db" + } + }, + "spec": { + "containers": [ + { + "name": "db", + "image": "postgres:9.4", + "ports": [ + { + "containerPort": 5432 + } + ], + "resources": {} + } + ], + "restartPolicy": "Always" + } + }, + "strategy": {} + }, + "status": {} + }, + { + "kind": "Deployment", + "apiVersion": "extensions/v1beta1", + "metadata": { + "name": "redis", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "redis" + }, + "annotations": { + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "replicas": 1, + "template": { + "metadata": { + "creationTimestamp": null, + "labels": { + "io.kompose.service": "redis" + } + }, + "spec": { + "containers": [ + { + "name": "redis", + "image": "redis:alpine", + "ports": [ + { + "containerPort": 6379 + } + ], + "resources": {} + } + ], + "restartPolicy": "Always" + } + }, + "strategy": {} + }, + "status": {} + }, + { + "kind": "Deployment", + "apiVersion": "extensions/v1beta1", + "metadata": { + "name": "result", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "result" + }, + "annotations": { + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "replicas": 1, + "template": { + "metadata": { + "creationTimestamp": null, + "labels": { + "io.kompose.service": "result" + } + }, + "spec": { + "containers": [ + { + "name": "result", + "image": "tmadams333/example-voting-app-result:latest", + "ports": [ + { + "containerPort": 80 + } + ], + "resources": {} + } + ], + "restartPolicy": "Always" + } + }, + "strategy": {} + }, + "status": {} + }, + { + "kind": "Deployment", + "apiVersion": "extensions/v1beta1", + "metadata": { + "name": "vote", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "vote" + }, + "annotations": { + "com.example.description": "Vote", + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "replicas": 1, + "template": { + "metadata": { + "creationTimestamp": null, + "labels": { + "io.kompose.service": "vote" + } + }, + "spec": { + "containers": [ + { + "name": "vote", + "image": "docker/example-voting-app-vote:latest", + "ports": [ + { + "containerPort": 80 + } + ], + "resources": {} + } + ], + "restartPolicy": "Always" + } + }, + "strategy": {} + }, + "status": {} + }, + { + "kind": "Deployment", + "apiVersion": "extensions/v1beta1", + "metadata": { + "name": "worker", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "worker" + }, + "annotations": { + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "replicas": 1, + "template": { + "metadata": { + "creationTimestamp": null, + "labels": { + "io.kompose.service": "worker" + } + }, + "spec": { + "containers": [ + { + "name": "worker", + "image": "docker/example-voting-app-worker:latest", + "resources": {} + } + ], + "restartPolicy": "Always" + } + }, + "strategy": {} + }, + "status": {} + } + ] +} diff --git a/script/test/fixtures/examples/output-voting-os.json b/script/test/fixtures/examples/output-voting-os.json new file mode 100644 index 00000000..227bee65 --- /dev/null +++ b/script/test/fixtures/examples/output-voting-os.json @@ -0,0 +1,632 @@ +{ + "kind": "List", + "apiVersion": "v1", + "metadata": {}, + "items": [ + { + "kind": "Service", + "apiVersion": "v1", + "metadata": { + "name": "db", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "db" + }, + "annotations": { + "com.example.description": "Postgres Database", + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "ports": [ + { + "name": "5432", + "port": 5432, + "targetPort": 5432 + } + ], + "selector": { + "io.kompose.service": "db" + } + }, + "status": { + "loadBalancer": {} + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "metadata": { + "name": "redis", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "redis" + }, + "annotations": { + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "ports": [ + { + "name": "6379", + "port": 6379, + "targetPort": 6379 + } + ], + "selector": { + "io.kompose.service": "redis" + } + }, + "status": { + "loadBalancer": {} + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "metadata": { + "name": "result", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "result" + }, + "annotations": { + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "ports": [ + { + "name": "5001", + "port": 5001, + "targetPort": 80 + } + ], + "selector": { + "io.kompose.service": "result" + } + }, + "status": { + "loadBalancer": {} + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "metadata": { + "name": "vote", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "vote" + }, + "annotations": { + "com.example.description": "Vote", + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "ports": [ + { + "name": "5000", + "port": 5000, + "targetPort": 80 + } + ], + "selector": { + "io.kompose.service": "vote" + } + }, + "status": { + "loadBalancer": {} + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "metadata": { + "name": "worker", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "worker" + }, + "annotations": { + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "ports": [ + { + "name": "headless", + "port": 55555, + "targetPort": 0 + } + ], + "selector": { + "io.kompose.service": "worker" + }, + "clusterIP": "None" + }, + "status": { + "loadBalancer": {} + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "db", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "db" + }, + "annotations": { + "com.example.description": "Postgres Database", + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "strategy": { + "resources": {} + }, + "triggers": [ + { + "type": "ConfigChange" + }, + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "db" + ], + "from": { + "kind": "ImageStreamTag", + "name": "db:9.4" + } + } + } + ], + "replicas": 1, + "test": false, + "selector": { + "io.kompose.service": "db" + }, + "template": { + "metadata": { + "creationTimestamp": null, + "labels": { + "io.kompose.service": "db" + } + }, + "spec": { + "containers": [ + { + "name": "db", + "image": " ", + "ports": [ + { + "containerPort": 5432 + } + ], + "resources": {} + } + ], + "restartPolicy": "Always" + } + } + }, + "status": {} + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "db", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "db" + } + }, + "spec": { + "tags": [ + { + "name": "9.4", + "annotations": null, + "from": { + "kind": "DockerImage", + "name": "postgres:9.4" + }, + "generation": null, + "importPolicy": {} + } + ] + }, + "status": { + "dockerImageRepository": "" + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "redis", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "redis" + }, + "annotations": { + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "strategy": { + "resources": {} + }, + "triggers": [ + { + "type": "ConfigChange" + }, + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "redis" + ], + "from": { + "kind": "ImageStreamTag", + "name": "redis:alpine" + } + } + } + ], + "replicas": 1, + "test": false, + "selector": { + "io.kompose.service": "redis" + }, + "template": { + "metadata": { + "creationTimestamp": null, + "labels": { + "io.kompose.service": "redis" + } + }, + "spec": { + "containers": [ + { + "name": "redis", + "image": " ", + "ports": [ + { + "containerPort": 6379 + } + ], + "resources": {} + } + ], + "restartPolicy": "Always" + } + } + }, + "status": {} + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "redis", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "redis" + } + }, + "spec": { + "tags": [ + { + "name": "alpine", + "annotations": null, + "from": { + "kind": "DockerImage", + "name": "redis:alpine" + }, + "generation": null, + "importPolicy": {} + } + ] + }, + "status": { + "dockerImageRepository": "" + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "result", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "result" + }, + "annotations": { + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "strategy": { + "resources": {} + }, + "triggers": [ + { + "type": "ConfigChange" + }, + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "result" + ], + "from": { + "kind": "ImageStreamTag", + "name": "result:latest" + } + } + } + ], + "replicas": 1, + "test": false, + "selector": { + "io.kompose.service": "result" + }, + "template": { + "metadata": { + "creationTimestamp": null, + "labels": { + "io.kompose.service": "result" + } + }, + "spec": { + "containers": [ + { + "name": "result", + "image": " ", + "ports": [ + { + "containerPort": 80 + } + ], + "resources": {} + } + ], + "restartPolicy": "Always" + } + } + }, + "status": {} + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "result", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "result" + } + }, + "spec": { + "tags": [ + { + "name": "latest", + "annotations": null, + "from": { + "kind": "DockerImage", + "name": "tmadams333/example-voting-app-result:latest" + }, + "generation": null, + "importPolicy": {} + } + ] + }, + "status": { + "dockerImageRepository": "" + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "vote", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "vote" + }, + "annotations": { + "com.example.description": "Vote", + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "strategy": { + "resources": {} + }, + "triggers": [ + { + "type": "ConfigChange" + }, + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "vote" + ], + "from": { + "kind": "ImageStreamTag", + "name": "vote:latest" + } + } + } + ], + "replicas": 1, + "test": false, + "selector": { + "io.kompose.service": "vote" + }, + "template": { + "metadata": { + "creationTimestamp": null, + "labels": { + "io.kompose.service": "vote" + } + }, + "spec": { + "containers": [ + { + "name": "vote", + "image": " ", + "ports": [ + { + "containerPort": 80 + } + ], + "resources": {} + } + ], + "restartPolicy": "Always" + } + } + }, + "status": {} + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "vote", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "vote" + } + }, + "spec": { + "tags": [ + { + "name": "latest", + "annotations": null, + "from": { + "kind": "DockerImage", + "name": "docker/example-voting-app-vote:latest" + }, + "generation": null, + "importPolicy": {} + } + ] + }, + "status": { + "dockerImageRepository": "" + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "worker", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "worker" + }, + "annotations": { + "kompose.cmd": "%CMD%", + "kompose.version": "%VERSION%" + } + }, + "spec": { + "strategy": { + "resources": {} + }, + "triggers": [ + { + "type": "ConfigChange" + }, + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "worker" + ], + "from": { + "kind": "ImageStreamTag", + "name": "worker:latest" + } + } + } + ], + "replicas": 1, + "test": false, + "selector": { + "io.kompose.service": "worker" + }, + "template": { + "metadata": { + "creationTimestamp": null, + "labels": { + "io.kompose.service": "worker" + } + }, + "spec": { + "containers": [ + { + "name": "worker", + "image": " ", + "resources": {} + } + ], + "restartPolicy": "Always" + } + } + }, + "status": {} + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "worker", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "worker" + } + }, + "spec": { + "tags": [ + { + "name": "latest", + "annotations": null, + "from": { + "kind": "DockerImage", + "name": "docker/example-voting-app-worker:latest" + }, + "generation": null, + "importPolicy": {} + } + ] + }, + "status": { + "dockerImageRepository": "" + } + } + ] +}