Make sure that Services are first in the List

Sorts objects in Transform function, this should
make sure that Services are first everywhere as
long as we keep order in the slice that Transform returns.

fixes #130
This commit is contained in:
Tomas Kral
2016-09-02 10:09:00 +02:00
parent b24556e9d5
commit e2da0f089a
4 changed files with 28 additions and 24 deletions
-20
View File
@@ -27,7 +27,6 @@ import (
_ "k8s.io/kubernetes/pkg/apis/extensions/install"
client "k8s.io/kubernetes/pkg/client/unversioned"
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
"k8s.io/kubernetes/pkg/runtime"
// install kubernetes api
_ "github.com/openshift/origin/pkg/deploy/api/install"
@@ -207,7 +206,6 @@ func Up(c *cli.Context) {
//Convert komposeObject to K8S controllers
objects := t.Transform(komposeObject, opt)
sortServicesFirst(&objects)
//Submit objects to K8s endpoint
kubernetes.CreateObjects(client, objects)
@@ -256,24 +254,6 @@ func Down(c *cli.Context) {
}
}
// the objects that we get can be in any order this keeps services first
// according to best practice kubernetes services should be created first
// http://kubernetes.io/docs/user-guide/config-best-practices/
func sortServicesFirst(objs *[]runtime.Object) {
var svc, others, ret []runtime.Object
for _, obj := range *objs {
if obj.GetObjectKind().GroupVersionKind().Kind == "Service" {
svc = append(svc, obj)
} else {
others = append(others, obj)
}
}
ret = append(ret, svc...)
ret = append(ret, others...)
*objs = ret
}
func askForConfirmation() bool {
var response string
_, err := fmt.Scanln(&response)