From fa255d2c78b5e00c4d997ca39dbb43f599b519d3 Mon Sep 17 00:00:00 2001 From: Suraj Deshmukh Date: Wed, 3 May 2017 18:37:07 +0530 Subject: [PATCH 1/3] Fix link to fedora setup in docs --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 51e4d24a..ba08b1ca 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,7 @@ Installation methods: - [Binary (Prefered method)](README.md) - [Go](/docs/setup.md#go) - [CentOS](/docs/setup.md#centos) - - [Fedora](/docs/setup.mdfedora) + - [Fedora](/docs/setup.md#fedora) - [macOS (Homebrew)](/docs/setup.md#macos) #### Binary installation @@ -49,7 +49,7 @@ Installation methods: Kompose is released via GitHub on a three-week cycle, you can see all current releases on the [GitHub release page](https://github.com/kubernetes-incubator/kompose/releases). ```sh -# Linux +# Linux curl -L https://github.com/kubernetes-incubator/kompose/releases/download/v0.6.0/kompose-linux-amd64 -o kompose # macOS From aacde86eb94535fce2bd957dd78ad43c9f8708e9 Mon Sep 17 00:00:00 2001 From: Suraj Narwade Date: Thu, 27 Apr 2017 15:13:22 +0530 Subject: [PATCH 2/3] Fixes fixture test for build context Resolves #576 This PR includes `output-os-template.json` in `nginx-node-redis` example, which is basically output template contains `%URI%` and `%REF%` variables which will be filled while initializing test cases and new will be stored as `/tmp/output-os.json` This will remove the problem of git uri and ref. --- .travis.yml | 2 + script/test/cmd/fix_detached_head.sh | 23 + script/test/cmd/tests.sh | 25 +- ...output-os.json => output-os-template.json} | 778 +++++++++--------- 4 files changed, 434 insertions(+), 394 deletions(-) create mode 100755 script/test/cmd/fix_detached_head.sh rename script/test/fixtures/nginx-node-redis/{output-os.json => output-os-template.json} (97%) diff --git a/.travis.yml b/.travis.yml index b2bdd482..7b722f8e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,6 +17,8 @@ matrix: install: - true + # This is required because sometimes Travis ends up in a detached HEAD state after git clone + - script/test/cmd/fix_detached_head.sh script: - make test diff --git a/script/test/cmd/fix_detached_head.sh b/script/test/cmd/fix_detached_head.sh new file mode 100755 index 00000000..912246a2 --- /dev/null +++ b/script/test/cmd/fix_detached_head.sh @@ -0,0 +1,23 @@ +#!/usr/bin/env bash + +# Copyright 2017 The Kubernetes Authors All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Reference Link: https://github.com/theochem/horton/blob/master/tools/qa/fix_detached_head.sh + +# Only do something if the HEAD is detached. +if [ $(git rev-parse --abbrev-ref HEAD) == 'HEAD' ]; then + # Give the some random name that no serious person would use. + git checkout -b build_branch +fi diff --git a/script/test/cmd/tests.sh b/script/test/cmd/tests.sh index b3f7a7c5..07aed44c 100755 --- a/script/test/cmd/tests.sh +++ b/script/test/cmd/tests.sh @@ -17,6 +17,19 @@ KOMPOSE_ROOT=$(readlink -f $(dirname "${BASH_SOURCE}")/../../..) source $KOMPOSE_ROOT/script/test/cmd/lib.sh +# Get current branch and remote url of git repository +branch=$(git branch | grep \* | cut -d ' ' -f2-) + +uri=$(git remote get-url origin) +if [[ $uri != *".git"* ]]; then + uri="${uri}.git" +fi + +# Warning Template +warning="Buildconfig using $uri::$branch as source." +# Replacing variables with current branch and uri +sed -e "s;%URI%;$uri;g" -e "s;%REF%;$branch;g" $KOMPOSE_ROOT/script/test/fixtures/nginx-node-redis/output-os-template.json > /tmp/output-os.json + ####### # Tests related to docker-compose file in /script/test/fixtures/etherpad convert::expect_failure "kompose -f $KOMPOSE_ROOT/script/test/fixtures/etherpad/docker-compose.yml convert --stdout" @@ -45,8 +58,7 @@ unset $(cat $KOMPOSE_ROOT/script/test/fixtures/gitlab/envs | cut -d'=' -f1) # kubernetes test convert::expect_success_and_warning "kompose -f $KOMPOSE_ROOT/script/test/fixtures/nginx-node-redis/docker-compose.yml convert --stdout -j" "$KOMPOSE_ROOT/script/test/fixtures/nginx-node-redis/output-k8s.json" "Kubernetes provider doesn't support build key - ignoring" # openshift test -convert::expect_success_and_warning "kompose --provider=openshift -f $KOMPOSE_ROOT/script/test/fixtures/nginx-node-redis/docker-compose.yml convert --stdout -j" "$KOMPOSE_ROOT/script/test/fixtures/nginx-node-redis/output-os.json" "Buildconfig using https://github.com/kubernetes-incubator/kompose.git::HEAD as source." - +convert::expect_success_and_warning "kompose --provider=openshift -f $KOMPOSE_ROOT/script/test/fixtures/nginx-node-redis/docker-compose.yml convert --stdout -j" "/tmp/output-os.json" "$warning" ###### # Tests related to docker-compose file in /script/test/fixtures/entrypoint-command # kubernetes test @@ -199,11 +211,11 @@ convert::check_artifacts_generated "kompose -f $KOMPOSE_ROOT/script/test/fixture # Test regarding build context (running kompose from various directories) CURRENT_DIR=$(pwd) cd "$KOMPOSE_ROOT/script/test/fixtures/nginx-node-redis/" -convert::expect_success_and_warning "kompose convert --provider openshift --stdout -j" "$KOMPOSE_ROOT/script/test/fixtures/nginx-node-redis/output-os.json" "Buildconfig using https://github.com/kubernetes-incubator/kompose.git::HEAD as source." +convert::expect_success_and_warning "kompose convert --provider openshift --stdout -j" "/tmp/output-os.json" "$warning" cd "$KOMPOSE_ROOT/script/test/fixtures/" -convert::expect_success_and_warning "kompose convert --provider openshift --stdout -j -f nginx-node-redis/docker-compose.yml" "$KOMPOSE_ROOT/script/test/fixtures/nginx-node-redis/output-os.json" "Buildconfig using https://github.com/kubernetes-incubator/kompose.git::HEAD as source." +convert::expect_success_and_warning "kompose convert --provider openshift --stdout -j -f nginx-node-redis/docker-compose.yml" "/tmp/output-os.json" "$warning" cd "$KOMPOSE_ROOT/script/test/fixtures/nginx-node-redis/node" -convert::expect_success_and_warning "kompose convert --provider openshift --stdout -j -f ../docker-compose.yml" "$KOMPOSE_ROOT/script/test/fixtures/nginx-node-redis/output-os.json" "Buildconfig using https://github.com/kubernetes-incubator/kompose.git::HEAD as source." +convert::expect_success_and_warning "kompose convert --provider openshift --stdout -j -f ../docker-compose.yml" "/tmp/output-os.json" "$warning" cd $CURRENT_DIR # Test related to support docker-compose.yaml beside docker-compose.yml @@ -222,4 +234,7 @@ convert::expect_success "kompose --provider=openshift convert --stdout -j" "$KOM # Return back to the original path cd $CURRENT_DIR +# Removes generated output +rm -rf /tmp/output-os.json + exit $EXIT_STATUS diff --git a/script/test/fixtures/nginx-node-redis/output-os.json b/script/test/fixtures/nginx-node-redis/output-os-template.json similarity index 97% rename from script/test/fixtures/nginx-node-redis/output-os.json rename to script/test/fixtures/nginx-node-redis/output-os-template.json index 764f1478..202cbb81 100644 --- a/script/test/fixtures/nginx-node-redis/output-os.json +++ b/script/test/fixtures/nginx-node-redis/output-os-template.json @@ -3,6 +3,58 @@ "apiVersion": "v1", "metadata": {}, "items": [ + { + "kind": "Service", + "apiVersion": "v1", + "metadata": { + "name": "nginx", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "nginx" + } + }, + "spec": { + "ports": [ + { + "name": "80", + "port": 80, + "targetPort": 80 + } + ], + "selector": { + "io.kompose.service": "nginx" + } + }, + "status": { + "loadBalancer": {} + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "metadata": { + "name": "node1", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "node1" + } + }, + "spec": { + "ports": [ + { + "name": "8080", + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "io.kompose.service": "node1" + } + }, + "status": { + "loadBalancer": {} + } + }, { "kind": "Service", "apiVersion": "v1", @@ -81,391 +133,6 @@ "loadBalancer": {} } }, - { - "kind": "Service", - "apiVersion": "v1", - "metadata": { - "name": "nginx", - "creationTimestamp": null, - "labels": { - "io.kompose.service": "nginx" - } - }, - "spec": { - "ports": [ - { - "name": "80", - "port": 80, - "targetPort": 80 - } - ], - "selector": { - "io.kompose.service": "nginx" - } - }, - "status": { - "loadBalancer": {} - } - }, - { - "kind": "Service", - "apiVersion": "v1", - "metadata": { - "name": "node1", - "creationTimestamp": null, - "labels": { - "io.kompose.service": "node1" - } - }, - "spec": { - "ports": [ - { - "name": "8080", - "port": 8080, - "targetPort": 8080 - } - ], - "selector": { - "io.kompose.service": "node1" - } - }, - "status": { - "loadBalancer": {} - } - }, - { - "kind": "DeploymentConfig", - "apiVersion": "v1", - "metadata": { - "name": "node2", - "creationTimestamp": null, - "labels": { - "io.kompose.service": "node2" - } - }, - "spec": { - "strategy": { - "resources": {} - }, - "triggers": [ - { - "type": "ConfigChange" - }, - { - "type": "ImageChange", - "imageChangeParams": { - "automatic": true, - "containerNames": [ - "node2" - ], - "from": { - "kind": "ImageStreamTag", - "name": "node2:latest" - } - } - } - ], - "replicas": 1, - "test": false, - "selector": { - "io.kompose.service": "node2" - }, - "template": { - "metadata": { - "creationTimestamp": null, - "labels": { - "io.kompose.service": "node2" - } - }, - "spec": { - "containers": [ - { - "name": "node2", - "image": " ", - "ports": [ - { - "containerPort": 8080 - } - ], - "resources": {} - } - ], - "restartPolicy": "Always" - } - } - }, - "status": {} - }, - { - "kind": "ImageStream", - "apiVersion": "v1", - "metadata": { - "name": "node2", - "creationTimestamp": null, - "labels": { - "io.kompose.service": "node2" - } - }, - "spec": {}, - "status": { - "dockerImageRepository": "" - } - }, - { - "kind": "BuildConfig", - "apiVersion": "v1", - "metadata": { - "name": "node2", - "creationTimestamp": null - }, - "spec": { - "triggers": [ - { - "type": "ConfigChange" - }, - { - "type": "ImageChange" - } - ], - "runPolicy": "Serial", - "source": { - "type": "Git", - "git": { - "uri": "https://github.com/kubernetes-incubator/kompose.git", - "ref": "HEAD" - }, - "contextDir": "script/test/fixtures/nginx-node-redis/node/" - }, - "strategy": { - "type": "Docker", - "dockerStrategy": {} - }, - "output": { - "to": { - "kind": "ImageStreamTag", - "name": "node2:latest" - } - }, - "resources": {}, - "postCommit": {}, - "nodeSelector": null - }, - "status": { - "lastVersion": 0 - } - }, - { - "kind": "DeploymentConfig", - "apiVersion": "v1", - "metadata": { - "name": "node3", - "creationTimestamp": null, - "labels": { - "io.kompose.service": "node3" - } - }, - "spec": { - "strategy": { - "resources": {} - }, - "triggers": [ - { - "type": "ConfigChange" - }, - { - "type": "ImageChange", - "imageChangeParams": { - "automatic": true, - "containerNames": [ - "node3" - ], - "from": { - "kind": "ImageStreamTag", - "name": "node3:latest" - } - } - } - ], - "replicas": 1, - "test": false, - "selector": { - "io.kompose.service": "node3" - }, - "template": { - "metadata": { - "creationTimestamp": null, - "labels": { - "io.kompose.service": "node3" - } - }, - "spec": { - "containers": [ - { - "name": "node3", - "image": " ", - "ports": [ - { - "containerPort": 8080 - } - ], - "resources": {} - } - ], - "restartPolicy": "Always" - } - } - }, - "status": {} - }, - { - "kind": "ImageStream", - "apiVersion": "v1", - "metadata": { - "name": "node3", - "creationTimestamp": null, - "labels": { - "io.kompose.service": "node3" - } - }, - "spec": {}, - "status": { - "dockerImageRepository": "" - } - }, - { - "kind": "BuildConfig", - "apiVersion": "v1", - "metadata": { - "name": "node3", - "creationTimestamp": null - }, - "spec": { - "triggers": [ - { - "type": "ConfigChange" - }, - { - "type": "ImageChange" - } - ], - "runPolicy": "Serial", - "source": { - "type": "Git", - "git": { - "uri": "https://github.com/kubernetes-incubator/kompose.git", - "ref": "HEAD" - }, - "contextDir": "script/test/fixtures/nginx-node-redis/node/" - }, - "strategy": { - "type": "Docker", - "dockerStrategy": {} - }, - "output": { - "to": { - "kind": "ImageStreamTag", - "name": "node3:latest" - } - }, - "resources": {}, - "postCommit": {}, - "nodeSelector": null - }, - "status": { - "lastVersion": 0 - } - }, - { - "kind": "DeploymentConfig", - "apiVersion": "v1", - "metadata": { - "name": "redis", - "creationTimestamp": null, - "labels": { - "io.kompose.service": "redis" - } - }, - "spec": { - "strategy": { - "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": { - "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": "latest", - "annotations": null, - "from": { - "kind": "DockerImage", - "name": "redis" - }, - "generation": null, - "importPolicy": {} - } - ] - }, - "status": { - "dockerImageRepository": "" - } - }, { "kind": "DeploymentConfig", "apiVersion": "v1", @@ -564,8 +231,8 @@ "source": { "type": "Git", "git": { - "uri": "https://github.com/kubernetes-incubator/kompose.git", - "ref": "HEAD" + "uri": "%URI%", + "ref": "%REF%" }, "contextDir": "script/test/fixtures/nginx-node-redis/nginx/" }, @@ -685,8 +352,8 @@ "source": { "type": "Git", "git": { - "uri": "https://github.com/kubernetes-incubator/kompose.git", - "ref": "HEAD" + "uri": "%URI%", + "ref": "%REF%" }, "contextDir": "script/test/fixtures/nginx-node-redis/node/" }, @@ -707,6 +374,339 @@ "status": { "lastVersion": 0 } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "node2", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "node2" + } + }, + "spec": { + "strategy": { + "resources": {} + }, + "triggers": [ + { + "type": "ConfigChange" + }, + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "node2" + ], + "from": { + "kind": "ImageStreamTag", + "name": "node2:latest" + } + } + } + ], + "replicas": 1, + "test": false, + "selector": { + "io.kompose.service": "node2" + }, + "template": { + "metadata": { + "creationTimestamp": null, + "labels": { + "io.kompose.service": "node2" + } + }, + "spec": { + "containers": [ + { + "name": "node2", + "image": " ", + "ports": [ + { + "containerPort": 8080 + } + ], + "resources": {} + } + ], + "restartPolicy": "Always" + } + } + }, + "status": {} + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "node2", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "node2" + } + }, + "spec": {}, + "status": { + "dockerImageRepository": "" + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "node2", + "creationTimestamp": null + }, + "spec": { + "triggers": [ + { + "type": "ConfigChange" + }, + { + "type": "ImageChange" + } + ], + "runPolicy": "Serial", + "source": { + "type": "Git", + "git": { + "uri": "%URI%", + "ref": "%REF%" + }, + "contextDir": "script/test/fixtures/nginx-node-redis/node/" + }, + "strategy": { + "type": "Docker", + "dockerStrategy": {} + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "node2:latest" + } + }, + "resources": {}, + "postCommit": {}, + "nodeSelector": null + }, + "status": { + "lastVersion": 0 + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "node3", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "node3" + } + }, + "spec": { + "strategy": { + "resources": {} + }, + "triggers": [ + { + "type": "ConfigChange" + }, + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "node3" + ], + "from": { + "kind": "ImageStreamTag", + "name": "node3:latest" + } + } + } + ], + "replicas": 1, + "test": false, + "selector": { + "io.kompose.service": "node3" + }, + "template": { + "metadata": { + "creationTimestamp": null, + "labels": { + "io.kompose.service": "node3" + } + }, + "spec": { + "containers": [ + { + "name": "node3", + "image": " ", + "ports": [ + { + "containerPort": 8080 + } + ], + "resources": {} + } + ], + "restartPolicy": "Always" + } + } + }, + "status": {} + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "node3", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "node3" + } + }, + "spec": {}, + "status": { + "dockerImageRepository": "" + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "node3", + "creationTimestamp": null + }, + "spec": { + "triggers": [ + { + "type": "ConfigChange" + }, + { + "type": "ImageChange" + } + ], + "runPolicy": "Serial", + "source": { + "type": "Git", + "git": { + "uri": "%URI%", + "ref": "%REF%" + }, + "contextDir": "script/test/fixtures/nginx-node-redis/node/" + }, + "strategy": { + "type": "Docker", + "dockerStrategy": {} + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "node3:latest" + } + }, + "resources": {}, + "postCommit": {}, + "nodeSelector": null + }, + "status": { + "lastVersion": 0 + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "redis", + "creationTimestamp": null, + "labels": { + "io.kompose.service": "redis" + } + }, + "spec": { + "strategy": { + "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": { + "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": "latest", + "annotations": null, + "from": { + "kind": "DockerImage", + "name": "redis" + }, + "generation": null, + "importPolicy": {} + } + ] + }, + "status": { + "dockerImageRepository": "" + } } ] } From 529e6c674f84a7c5ea82908c805a3be31739137c Mon Sep 17 00:00:00 2001 From: Abhishek Date: Fri, 21 Apr 2017 17:57:28 +0530 Subject: [PATCH 3/3] sort output when creating kubernetes/openshift objects --- pkg/transformer/kubernetes/k8sutils.go | 11 +++++++++++ pkg/transformer/kubernetes/k8sutils_test.go | 21 +++++++++++++++++++++ pkg/transformer/kubernetes/kubernetes.go | 9 +-------- pkg/transformer/openshift/openshift.go | 4 +++- 4 files changed, 36 insertions(+), 9 deletions(-) diff --git a/pkg/transformer/kubernetes/k8sutils.go b/pkg/transformer/kubernetes/k8sutils.go index 2cb001bb..01a67b47 100644 --- a/pkg/transformer/kubernetes/k8sutils.go +++ b/pkg/transformer/kubernetes/k8sutils.go @@ -41,6 +41,7 @@ import ( deployapi "github.com/openshift/origin/pkg/deploy/api" "github.com/pkg/errors" "k8s.io/kubernetes/pkg/api/resource" + "sort" ) /** @@ -542,3 +543,13 @@ func (k *Kubernetes) VolumesFrom(objects *[]runtime.Object, komposeObject kobjec } return nil } + +//Ensure the kubernetes objects are in a consistent order +func SortedKeys(komposeObject kobject.KomposeObject) []string { + var sortedKeys []string + for name := range komposeObject.ServiceConfigs { + sortedKeys = append(sortedKeys, name) + } + sort.Strings(sortedKeys) + return sortedKeys +} diff --git a/pkg/transformer/kubernetes/k8sutils_test.go b/pkg/transformer/kubernetes/k8sutils_test.go index 290a8d84..34d6aa45 100644 --- a/pkg/transformer/kubernetes/k8sutils_test.go +++ b/pkg/transformer/kubernetes/k8sutils_test.go @@ -29,6 +29,7 @@ import ( "github.com/pkg/errors" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/extensions" + "reflect" ) /* @@ -275,3 +276,23 @@ func TestRecreateStrategyWithVolumesPresent(t *testing.T) { } } } + +func TestSortedKeys(t *testing.T) { + service := kobject.ServiceConfig{ + ContainerName: "name", + Image: "image", + } + service1 := kobject.ServiceConfig{ + ContainerName: "name", + Image: "image", + } + c := []string{"a", "b"} + + komposeObject := kobject.KomposeObject{ + ServiceConfigs: map[string]kobject.ServiceConfig{"b": service, "a": service1}, + } + a := SortedKeys(komposeObject) + if !reflect.DeepEqual(a, c) { + t.Logf("Test Fail output should be %s", c) + } +} diff --git a/pkg/transformer/kubernetes/kubernetes.go b/pkg/transformer/kubernetes/kubernetes.go index 04a76eda..e1b55ae6 100644 --- a/pkg/transformer/kubernetes/kubernetes.go +++ b/pkg/transformer/kubernetes/kubernetes.go @@ -19,7 +19,6 @@ package kubernetes import ( "fmt" "reflect" - "sort" "strconv" "time" @@ -533,13 +532,7 @@ func (k *Kubernetes) Transform(komposeObject kobject.KomposeObject, opt kobject. // this will hold all the converted data var allobjects []runtime.Object - // Need to ensure the kubernetes objects are in a consistent order - var sortedKeys []string - for name := range komposeObject.ServiceConfigs { - sortedKeys = append(sortedKeys, name) - } - sort.Strings(sortedKeys) - + sortedKeys := SortedKeys(komposeObject) for _, name := range sortedKeys { service := komposeObject.ServiceConfigs[name] var objects []runtime.Object diff --git a/pkg/transformer/openshift/openshift.go b/pkg/transformer/openshift/openshift.go index 7820d662..1d5e3a69 100644 --- a/pkg/transformer/openshift/openshift.go +++ b/pkg/transformer/openshift/openshift.go @@ -339,7 +339,9 @@ func (o *OpenShift) Transform(komposeObject kobject.KomposeObject, opt kobject.C buildRepo := opt.BuildRepo buildBranch := opt.BuildBranch - for name, service := range komposeObject.ServiceConfigs { + sortedKeys := kubernetes.SortedKeys(komposeObject) + for _, name := range sortedKeys { + service := komposeObject.ServiceConfigs[name] var objects []runtime.Object // Generate pod only and nothing more