forked from LaconicNetwork/kompose
Feat add ns generation (#1667)
* feat: add ns generation for k8s Signed-off-by: AhmedGrati <ahmedgrati1999@gmail.com> * feat: add ns generation for openshift Signed-off-by: AhmedGrati <ahmedgrati1999@gmail.com> * test: add functional tests Signed-off-by: AhmedGrati <ahmedgrati1999@gmail.com> * fix: remove some code nits Signed-off-by: AhmedGrati <ahmedgrati1999@gmail.com> --------- Signed-off-by: AhmedGrati <ahmedgrati1999@gmail.com>
This commit is contained in:
@@ -259,6 +259,12 @@ func (o *OpenShift) Transform(komposeObject kobject.KomposeObject, opt kobject.C
|
||||
}
|
||||
// this will hold all the converted data
|
||||
var allobjects []runtime.Object
|
||||
|
||||
if komposeObject.Namespace != "" {
|
||||
ns := transformer.CreateNamespace(komposeObject.Namespace)
|
||||
allobjects = append(allobjects, ns)
|
||||
}
|
||||
|
||||
var err error
|
||||
var composeFileDir string
|
||||
buildRepo := opt.BuildRepo
|
||||
@@ -422,6 +428,7 @@ func (o *OpenShift) Transform(komposeObject kobject.KomposeObject, opt kobject.C
|
||||
// sort all object so Services are first
|
||||
o.SortServicesFirst(&allobjects)
|
||||
o.RemoveDupObjects(&allobjects)
|
||||
transformer.AssignNamespaceToObjects(&allobjects, komposeObject.Namespace)
|
||||
// o.FixWorkloadVersion(&allobjects)
|
||||
|
||||
return allobjects, nil
|
||||
|
||||
@@ -29,6 +29,7 @@ import (
|
||||
"github.com/kubernetes/kompose/pkg/transformer/kubernetes"
|
||||
deployapi "github.com/openshift/api/apps/v1"
|
||||
"github.com/pkg/errors"
|
||||
api "k8s.io/api/core/v1"
|
||||
corev1 "k8s.io/api/core/v1"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
)
|
||||
@@ -465,3 +466,28 @@ func TestServiceExternalTrafficPolicy(t *testing.T) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestNamespaceGeneration(t *testing.T) {
|
||||
ns := "app"
|
||||
komposeObject := kobject.KomposeObject{
|
||||
ServiceConfigs: map[string]kobject.ServiceConfig{"app": newServiceConfig()},
|
||||
Namespace: ns,
|
||||
}
|
||||
o := OpenShift{}
|
||||
objs, err := o.Transform(komposeObject, kobject.ConvertOptions{})
|
||||
if err != nil {
|
||||
t.Error(errors.Wrap(err, "k.Transform failed"))
|
||||
}
|
||||
for _, obj := range objs {
|
||||
if namespace, ok := obj.(*api.Namespace); ok {
|
||||
if strings.ToLower(ns) != strings.ToLower(namespace.ObjectMeta.Name) {
|
||||
t.Errorf("Expected namespace name %v, got %v", ns, namespace.ObjectMeta.Name)
|
||||
}
|
||||
}
|
||||
if dep, ok := obj.(*deployapi.DeploymentConfig); ok {
|
||||
if dep.ObjectMeta.Namespace != ns {
|
||||
t.Errorf("Expected deployment namespace %v, got %v", ns, dep.ObjectMeta.Namespace)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user