diff --git a/pkg/resmap/factory_test.go b/pkg/resmap/factory_test.go index 1e13613ed..586955b35 100644 --- a/pkg/resmap/factory_test.go +++ b/pkg/resmap/factory_test.go @@ -45,6 +45,11 @@ metadata: --- # some comment --- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: dply2 + namespace: test --- ` @@ -68,12 +73,21 @@ metadata: "name": "dply2", }, }), + resid.NewResIdWithPrefixNamespace(deploy, "dply2", "", "test"): rf.FromMap( + map[string]interface{}{ + "apiVersion": "apps/v1", + "kind": "Deployment", + "metadata": map[string]interface{}{ + "name": "dply2", + "namespace": "test", + }, + }), } m, _ := rmF.FromFiles( l, []string{"/home/seans/project/deployment.yaml"}) - if len(m) != 2 { - t.Fatalf("%#v should contain 2 appResource, but got %d", m, len(m)) + if len(m) != 3 { + t.Fatalf("%#v should contain 3 appResource, but got %d", m, len(m)) } if err := expected.ErrorIfNotEqual(m); err != nil { diff --git a/pkg/resource/factory_test.go b/pkg/resource/factory_test.go index 786a6440b..b30a08f6d 100644 --- a/pkg/resource/factory_test.go +++ b/pkg/resource/factory_test.go @@ -39,6 +39,7 @@ apiVersion: v1 kind: ConfigMap metadata: name: winnie + namespace: hundred-acre-wood --- # some comment --- diff --git a/pkg/resource/resource.go b/pkg/resource/resource.go index 9bea6f2fc..e952312b8 100644 --- a/pkg/resource/resource.go +++ b/pkg/resource/resource.go @@ -58,7 +58,8 @@ func (r *Resource) IsGenerated() bool { // Id returns the ResId for the resource. func (r *Resource) Id() resid.ResId { - return resid.NewResId(r.GetGvk(), r.GetName()) + namespace, _ := r.GetFieldValue("metadata.namespace") + return resid.NewResIdWithPrefixNamespace(r.GetGvk(), r.GetName(), "", namespace) } // Merge performs merge with other resource. diff --git a/pkg/resource/resource_test.go b/pkg/resource/resource_test.go index cc22bb094..bb4697d92 100644 --- a/pkg/resource/resource_test.go +++ b/pkg/resource/resource_test.go @@ -20,6 +20,8 @@ import ( "testing" "sigs.k8s.io/kustomize/internal/k8sdeps/kunstruct" + "sigs.k8s.io/kustomize/pkg/gvk" + "sigs.k8s.io/kustomize/pkg/resid" ) var factory = NewFactory( @@ -30,11 +32,12 @@ var testConfigMap = factory.FromMap( "apiVersion": "v1", "kind": "ConfigMap", "metadata": map[string]interface{}{ - "name": "winnie", + "name": "winnie", + "namespace": "hundred-acre-wood", }, }) -const testConfigMapString = `unspecified:{"apiVersion":"v1","kind":"ConfigMap","metadata":{"name":"winnie"}}` +const testConfigMapString = `unspecified:{"apiVersion":"v1","kind":"ConfigMap","metadata":{"name":"winnie","namespace":"hundred-acre-wood"}}` var testDeployment = factory.FromMap( map[string]interface{}{ @@ -67,3 +70,24 @@ func TestResourceString(t *testing.T) { } } } + +func TestResourceId(t *testing.T) { + tests := []struct { + in *Resource + id resid.ResId + }{ + { + in: testConfigMap, + id: resid.NewResIdWithPrefixNamespace(gvk.Gvk{Version: "v1", Kind: "ConfigMap"}, "winnie", "", "hundred-acre-wood"), + }, + { + in: testDeployment, + id: resid.NewResId(gvk.Gvk{Group: "apps", Version: "v1", Kind: "Deployment"}, "pooh"), + }, + } + for _, test := range tests { + if test.in.Id() != test.id { + t.Fatalf("Expected %v, but got %v\n", test.id, test.in.Id()) + } + } +}