Merge pull request #515 from kubernetes-sigs/revert-500-namespace

Revert "create namespace resource if not found"
This commit is contained in:
k8s-ci-robot
2018-10-26 14:25:03 -07:00
committed by GitHub
3 changed files with 8 additions and 59 deletions

View File

@@ -275,7 +275,7 @@ func (kt *KustTarget) newTransformer(patches []*resource.Resource) (transformers
} }
r = append(r, t) r = append(r, t)
r = append(r, transformers.NewNamespaceTransformer( r = append(r, transformers.NewNamespaceTransformer(
string(kt.kustomization.Namespace), kt.tcfg.NameSpace, kt.rf.RF())) string(kt.kustomization.Namespace), kt.tcfg.NameSpace))
t, err = transformers.NewNamePrefixTransformer( t, err = transformers.NewNamePrefixTransformer(
string(kt.kustomization.NamePrefix), kt.tcfg.NamePrefix) string(kt.kustomization.NamePrefix), kt.tcfg.NamePrefix)
if err != nil { if err != nil {

View File

@@ -18,9 +18,7 @@ package transformers
import ( import (
"sigs.k8s.io/kustomize/pkg/gvk" "sigs.k8s.io/kustomize/pkg/gvk"
"sigs.k8s.io/kustomize/pkg/resid"
"sigs.k8s.io/kustomize/pkg/resmap" "sigs.k8s.io/kustomize/pkg/resmap"
"sigs.k8s.io/kustomize/pkg/resource"
"sigs.k8s.io/kustomize/pkg/transformers/config" "sigs.k8s.io/kustomize/pkg/transformers/config"
) )
@@ -28,13 +26,12 @@ type namespaceTransformer struct {
namespace string namespace string
fieldSpecsToUse []config.FieldSpec fieldSpecsToUse []config.FieldSpec
fieldSpecsToSkip []config.FieldSpec fieldSpecsToSkip []config.FieldSpec
factory *resource.Factory
} }
var _ Transformer = &namespaceTransformer{} var _ Transformer = &namespaceTransformer{}
// NewNamespaceTransformer construct a namespaceTransformer. // NewNamespaceTransformer construct a namespaceTransformer.
func NewNamespaceTransformer(ns string, cf []config.FieldSpec, f *resource.Factory) Transformer { func NewNamespaceTransformer(ns string, cf []config.FieldSpec) Transformer {
if len(ns) == 0 { if len(ns) == 0 {
return NewNoOpTransformer() return NewNoOpTransformer()
} }
@@ -46,13 +43,11 @@ func NewNamespaceTransformer(ns string, cf []config.FieldSpec, f *resource.Facto
namespace: ns, namespace: ns,
fieldSpecsToUse: cf, fieldSpecsToUse: cf,
fieldSpecsToSkip: skip, fieldSpecsToSkip: skip,
factory: f,
} }
} }
// Transform adds the namespace. // Transform adds the namespace.
func (o *namespaceTransformer) Transform(m resmap.ResMap) error { func (o *namespaceTransformer) Transform(m resmap.ResMap) error {
o.createNamespaceIfNotFound(m)
mf := resmap.ResMap{} mf := resmap.ResMap{}
for id := range m { for id := range m {
@@ -124,22 +119,3 @@ func (o *namespaceTransformer) updateClusterRoleBinding(m resmap.ResMap) {
objMap["subjects"] = subjects objMap["subjects"] = subjects
} }
} }
func (o *namespaceTransformer) createNamespaceIfNotFound(m resmap.ResMap) {
id := resid.NewResId(gvk.Gvk{
Version: "v1",
Kind: "Namespace",
}, o.namespace)
ids := m.FindByGVKN(id)
if len(ids) == 0 {
m[id] = o.factory.FromMap(
map[string]interface{}{
"apiVersion": "v1",
"kind": "Namespace",
"metadata": map[string]interface{}{
"name": o.namespace,
},
},
)
}
}

View File

@@ -47,12 +47,12 @@ func TestNamespaceRun(t *testing.T) {
"namespace": "foo", "namespace": "foo",
}, },
}), }),
resid.NewResId(ns, "test"): rf.FromMap( resid.NewResId(ns, "ns1"): rf.FromMap(
map[string]interface{}{ map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "Namespace", "kind": "Namespace",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
"name": "test", "name": "ns1",
}, },
}), }),
resid.NewResId(sa, "default"): rf.FromMap( resid.NewResId(sa, "default"): rf.FromMap(
@@ -108,12 +108,12 @@ func TestNamespaceRun(t *testing.T) {
}), }),
} }
expected := resmap.ResMap{ expected := resmap.ResMap{
resid.NewResIdWithPrefixNamespace(ns, "test", "", ""): rf.FromMap( resid.NewResIdWithPrefixNamespace(ns, "ns1", "", ""): rf.FromMap(
map[string]interface{}{ map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "Namespace", "kind": "Namespace",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
"name": "test", "name": "ns1",
}, },
}), }),
resid.NewResIdWithPrefixNamespace(cmap, "cm1", "", "test"): rf.FromMap( resid.NewResIdWithPrefixNamespace(cmap, "cm1", "", "test"): rf.FromMap(
@@ -187,7 +187,7 @@ func TestNamespaceRun(t *testing.T) {
}), }),
} }
nst := NewNamespaceTransformer("test", defaultTransformerConfig.NameSpace, rf) nst := NewNamespaceTransformer("test", defaultTransformerConfig.NameSpace)
err := nst.Transform(m) err := nst.Transform(m)
if err != nil { if err != nil {
t.Fatalf("unexpected error: %v", err) t.Fatalf("unexpected error: %v", err)
@@ -243,7 +243,7 @@ func TestNamespaceRunForClusterLevelKind(t *testing.T) {
expected := m.DeepCopy(rf) expected := m.DeepCopy(rf)
nst := NewNamespaceTransformer("ns1", defaultTransformerConfig.NameSpace, rf) nst := NewNamespaceTransformer("test", defaultTransformerConfig.NameSpace)
err := nst.Transform(m) err := nst.Transform(m)
if err != nil { if err != nil {
@@ -254,30 +254,3 @@ func TestNamespaceRunForClusterLevelKind(t *testing.T) {
t.Fatalf("actual doesn't match expected: %v", err) t.Fatalf("actual doesn't match expected: %v", err)
} }
} }
func TestNamespaceNotFound(t *testing.T) {
rf := resource.NewFactory(
kunstruct.NewKunstructuredFactoryImpl())
m := resmap.ResMap{}
expected := resmap.ResMap{
resid.NewResId(ns, "test"): rf.FromMap(
map[string]interface{}{
"apiVersion": "v1",
"kind": "Namespace",
"metadata": map[string]interface{}{
"name": "test",
},
}),
}
nst := NewNamespaceTransformer("test", defaultTransformerConfig.NameSpace, rf)
err := nst.Transform(m)
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
if !reflect.DeepEqual(m, expected) {
err = expected.ErrorIfNotEqual(m)
t.Fatalf("actual doesn't match expected: %v", err)
}
}