Merge pull request #76 from monopole/reduceUnstructNoise

Reduce unstruct notation noise in Resource construction.
This commit is contained in:
Jeff Regan
2018-06-10 09:46:53 -07:00
committed by GitHub
13 changed files with 908 additions and 1146 deletions

View File

@@ -27,7 +27,6 @@ import (
"github.com/kubernetes-sigs/kustomize/pkg/resmap" "github.com/kubernetes-sigs/kustomize/pkg/resmap"
"github.com/kubernetes-sigs/kustomize/pkg/resource" "github.com/kubernetes-sigs/kustomize/pkg/resource"
corev1 "k8s.io/api/core/v1" corev1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
"k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/runtime/schema"
) )
@@ -88,9 +87,8 @@ var ns = schema.GroupVersionKind{Version: "v1", Kind: "Namespace"}
func TestResources(t *testing.T) { func TestResources(t *testing.T) {
expected := resmap.ResMap{ expected := resmap.ResMap{
resource.NewResId(deploy, "dply1"): resource.NewBehaviorlessResource( resource.NewResId(deploy, "dply1"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "apps/v1", "apiVersion": "apps/v1",
"kind": "Deployment", "kind": "Deployment",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
@@ -120,11 +118,9 @@ func TestResources(t *testing.T) {
}, },
}, },
}, },
},
}), }),
resource.NewResId(cmap, "literalConfigMap"): resource.NewBehaviorlessResource( resource.NewResId(cmap, "literalConfigMap"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "ConfigMap", "kind": "ConfigMap",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
@@ -142,11 +138,9 @@ func TestResources(t *testing.T) {
"DB_USERNAME": "admin", "DB_USERNAME": "admin",
"DB_PASSWORD": "somepw", "DB_PASSWORD": "somepw",
}, },
},
}), }),
resource.NewResId(secret, "secret"): resource.NewBehaviorlessResource( resource.NewResId(secret, "secret"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "Secret", "kind": "Secret",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
@@ -165,11 +159,9 @@ func TestResources(t *testing.T) {
"DB_USERNAME": base64.StdEncoding.EncodeToString([]byte("admin")), "DB_USERNAME": base64.StdEncoding.EncodeToString([]byte("admin")),
"DB_PASSWORD": base64.StdEncoding.EncodeToString([]byte("somepw")), "DB_PASSWORD": base64.StdEncoding.EncodeToString([]byte("somepw")),
}, },
},
}), }),
resource.NewResId(ns, "ns1"): resource.NewBehaviorlessResource( resource.NewResId(ns, "ns1"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "Namespace", "kind": "Namespace",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
@@ -182,7 +174,6 @@ func TestResources(t *testing.T) {
"note": "This is a test annotation", "note": "This is a test annotation",
}, },
}, },
},
}), }),
} }
l := setupTest(t) l := setupTest(t)
@@ -203,25 +194,21 @@ func TestResources(t *testing.T) {
func TestRawResources(t *testing.T) { func TestRawResources(t *testing.T) {
expected := resmap.ResMap{ expected := resmap.ResMap{
resource.NewResId(deploy, "dply1"): resource.NewBehaviorlessResource( resource.NewResId(deploy, "dply1"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "apps/v1", "apiVersion": "apps/v1",
"kind": "Deployment", "kind": "Deployment",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
"name": "dply1", "name": "dply1",
}, },
},
}), }),
resource.NewResId(ns, "ns1"): resource.NewBehaviorlessResource( resource.NewResId(ns, "ns1"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "Namespace", "kind": "Namespace",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
"name": "ns1", "name": "ns1",
}, },
},
}), }),
} }
l := setupTest(t) l := setupTest(t)

View File

@@ -23,7 +23,6 @@ import (
"github.com/kubernetes-sigs/kustomize/pkg/internal/loadertest" "github.com/kubernetes-sigs/kustomize/pkg/internal/loadertest"
"github.com/kubernetes-sigs/kustomize/pkg/resource" "github.com/kubernetes-sigs/kustomize/pkg/resource"
"github.com/kubernetes-sigs/kustomize/pkg/types" "github.com/kubernetes-sigs/kustomize/pkg/types"
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
"k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/runtime/schema"
) )
@@ -53,9 +52,8 @@ func TestNewFromConfigMaps(t *testing.T) {
filepath: "/home/seans/project/app.env", filepath: "/home/seans/project/app.env",
content: "DB_USERNAME=admin\nDB_PASSWORD=somepw", content: "DB_USERNAME=admin\nDB_PASSWORD=somepw",
expected: ResMap{ expected: ResMap{
resource.NewResId(cmap, "envConfigMap"): resource.NewBehaviorlessResource( resource.NewResId(cmap, "envConfigMap"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "ConfigMap", "kind": "ConfigMap",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
@@ -66,7 +64,6 @@ func TestNewFromConfigMaps(t *testing.T) {
"DB_USERNAME": "admin", "DB_USERNAME": "admin",
"DB_PASSWORD": "somepw", "DB_PASSWORD": "somepw",
}, },
},
}), }),
}, },
}, },
@@ -82,9 +79,8 @@ func TestNewFromConfigMaps(t *testing.T) {
filepath: "/home/seans/project/app-init.ini", filepath: "/home/seans/project/app-init.ini",
content: "FOO=bar\nBAR=baz\n", content: "FOO=bar\nBAR=baz\n",
expected: ResMap{ expected: ResMap{
resource.NewResId(cmap, "fileConfigMap"): resource.NewBehaviorlessResource( resource.NewResId(cmap, "fileConfigMap"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "ConfigMap", "kind": "ConfigMap",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
@@ -96,7 +92,6 @@ func TestNewFromConfigMaps(t *testing.T) {
BAR=baz BAR=baz
`, `,
}, },
},
}), }),
}, },
}, },
@@ -111,9 +106,8 @@ BAR=baz
}, },
}, },
expected: ResMap{ expected: ResMap{
resource.NewResId(cmap, "literalConfigMap"): resource.NewBehaviorlessResource( resource.NewResId(cmap, "literalConfigMap"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "ConfigMap", "kind": "ConfigMap",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
@@ -124,7 +118,6 @@ BAR=baz
"a": "x", "a": "x",
"b": "y", "b": "y",
}, },
},
}), }),
}, },
}, },

View File

@@ -101,7 +101,7 @@ func (m ResMap) insert(newName string, obj *unstructured.Unstructured) error {
return fmt.Errorf("The <name: %q, GroupVersionKind: %v> already exists in the map", oldName, gvk) return fmt.Errorf("The <name: %q, GroupVersionKind: %v> already exists in the map", oldName, gvk)
} }
obj.SetName(newName) obj.SetName(newName)
m[id] = resource.NewBehaviorlessResource(obj) m[id] = resource.NewResourceFromUnstruct(*obj)
return nil return nil
} }
@@ -183,7 +183,7 @@ func newResourceSliceFromBytes(in []byte) ([]*resource.Resource, error) {
if err != nil { if err != nil {
break break
} }
result = append(result, resource.NewBehaviorlessResource(&out)) result = append(result, resource.NewResourceFromUnstruct(out))
} }
if err != io.EOF { if err != io.EOF {
return nil, err return nil, err

View File

@@ -23,7 +23,6 @@ import (
"github.com/kubernetes-sigs/kustomize/pkg/internal/loadertest" "github.com/kubernetes-sigs/kustomize/pkg/internal/loadertest"
"github.com/kubernetes-sigs/kustomize/pkg/resource" "github.com/kubernetes-sigs/kustomize/pkg/resource"
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
"k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/runtime/schema"
) )
@@ -42,25 +41,21 @@ metadata:
name: cm2 name: cm2
`) `)
input := ResMap{ input := ResMap{
resource.NewResId(cmap, "cm1"): resource.NewBehaviorlessResource( resource.NewResId(cmap, "cm1"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "ConfigMap", "kind": "ConfigMap",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
"name": "cm1", "name": "cm1",
}, },
},
}), }),
resource.NewResId(cmap, "cm2"): resource.NewBehaviorlessResource( resource.NewResId(cmap, "cm2"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "ConfigMap", "kind": "ConfigMap",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
"name": "cm2", "name": "cm2",
}, },
},
}), }),
} }
out, err := input.EncodeAsYaml() out, err := input.EncodeAsYaml()
@@ -89,25 +84,21 @@ metadata:
if ferr := l.AddFile("/home/seans/project/deployment.yaml", []byte(resourceStr)); ferr != nil { if ferr := l.AddFile("/home/seans/project/deployment.yaml", []byte(resourceStr)); ferr != nil {
t.Fatalf("Error adding fake file: %v\n", ferr) t.Fatalf("Error adding fake file: %v\n", ferr)
} }
expected := ResMap{resource.NewResId(deploy, "dply1"): resource.NewBehaviorlessResource( expected := ResMap{resource.NewResId(deploy, "dply1"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "apps/v1", "apiVersion": "apps/v1",
"kind": "Deployment", "kind": "Deployment",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
"name": "dply1", "name": "dply1",
}, },
},
}), }),
resource.NewResId(deploy, "dply2"): resource.NewBehaviorlessResource( resource.NewResId(deploy, "dply2"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "apps/v1", "apiVersion": "apps/v1",
"kind": "Deployment", "kind": "Deployment",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
"name": "dply2", "name": "dply2",
}, },
},
}), }),
} }
@@ -133,25 +124,21 @@ metadata:
name: cm2 name: cm2
`) `)
expected := ResMap{ expected := ResMap{
resource.NewResId(cmap, "cm1"): resource.NewBehaviorlessResource( resource.NewResId(cmap, "cm1"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "ConfigMap", "kind": "ConfigMap",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
"name": "cm1", "name": "cm1",
}, },
},
}), }),
resource.NewResId(cmap, "cm2"): resource.NewBehaviorlessResource( resource.NewResId(cmap, "cm2"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "ConfigMap", "kind": "ConfigMap",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
"name": "cm2", "name": "cm2",
}, },
},
}), }),
} }
m, err := newResMapFromBytes(encoded) m, err := newResMapFromBytes(encoded)
@@ -166,50 +153,42 @@ metadata:
func TestMerge(t *testing.T) { func TestMerge(t *testing.T) {
input1 := ResMap{ input1 := ResMap{
resource.NewResId(deploy, "deploy1"): resource.NewBehaviorlessResource( resource.NewResId(deploy, "deploy1"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "apps/v1", "apiVersion": "apps/v1",
"kind": "Deployment", "kind": "Deployment",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
"name": "foo-deploy1", "name": "foo-deploy1",
}, },
},
}), }),
} }
input2 := ResMap{ input2 := ResMap{
resource.NewResId(statefulset, "stateful1"): resource.NewBehaviorlessResource( resource.NewResId(statefulset, "stateful1"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "apps/v1", "apiVersion": "apps/v1",
"kind": "StatefulSet", "kind": "StatefulSet",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
"name": "bar-stateful", "name": "bar-stateful",
}, },
},
}), }),
} }
input := []ResMap{input1, input2} input := []ResMap{input1, input2}
expected := ResMap{ expected := ResMap{
resource.NewResId(deploy, "deploy1"): resource.NewBehaviorlessResource( resource.NewResId(deploy, "deploy1"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "apps/v1", "apiVersion": "apps/v1",
"kind": "Deployment", "kind": "Deployment",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
"name": "foo-deploy1", "name": "foo-deploy1",
}, },
},
}), }),
resource.NewResId(statefulset, "stateful1"): resource.NewBehaviorlessResource( resource.NewResId(statefulset, "stateful1"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "apps/v1", "apiVersion": "apps/v1",
"kind": "StatefulSet", "kind": "StatefulSet",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
"name": "bar-stateful", "name": "bar-stateful",
}, },
},
}), }),
} }
merged, err := Merge(input...) merged, err := Merge(input...)

View File

@@ -24,7 +24,6 @@ import (
"github.com/kubernetes-sigs/kustomize/pkg/resource" "github.com/kubernetes-sigs/kustomize/pkg/resource"
"github.com/kubernetes-sigs/kustomize/pkg/types" "github.com/kubernetes-sigs/kustomize/pkg/types"
corev1 "k8s.io/api/core/v1" corev1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
"k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/runtime/schema"
) )
@@ -48,9 +47,8 @@ func TestNewResMapFromSecretArgs(t *testing.T) {
} }
expected := ResMap{ expected := ResMap{
resource.NewResId(secret, "apple"): resource.NewBehaviorlessResource( resource.NewResId(secret, "apple"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "Secret", "kind": "Secret",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
@@ -62,7 +60,6 @@ func TestNewResMapFromSecretArgs(t *testing.T) {
"DB_USERNAME": base64.StdEncoding.EncodeToString([]byte("admin")), "DB_USERNAME": base64.StdEncoding.EncodeToString([]byte("admin")),
"DB_PASSWORD": base64.StdEncoding.EncodeToString([]byte("somepw")), "DB_PASSWORD": base64.StdEncoding.EncodeToString([]byte("somepw")),
}, },
},
}), }),
} }
if !reflect.DeepEqual(actual, expected) { if !reflect.DeepEqual(actual, expected) {

View File

@@ -46,16 +46,14 @@ func NewResourceWithBehavior(obj runtime.Object, b GenerationBehavior) (*Resourc
return &Resource{Unstructured: u, b: b}, nil return &Resource{Unstructured: u, b: b}, nil
} }
// NewBehaviorlessResource returns a new instance of Resource. // NewResourceFromMap returns a new instance of Resource.
func NewBehaviorlessResource(u *unstructured.Unstructured) *Resource { func NewResourceFromMap(m map[string]interface{}) *Resource {
return &Resource{Unstructured: *u, b: BehaviorUnspecified} return NewResourceFromUnstruct(unstructured.Unstructured{Object: m})
} }
// NewResource returns a new instance of Resource. // NewResourceFromUnstruct returns a new instance of Resource.
func NewResource(m map[string]interface{}) *Resource { func NewResourceFromUnstruct(u unstructured.Unstructured) *Resource {
return &Resource{ return &Resource{Unstructured: u, b: BehaviorUnspecified}
Unstructured: unstructured.Unstructured{Object: m},
b: BehaviorUnspecified}
} }
// Behavior returns the behavior for the resource. // Behavior returns the behavior for the resource.

View File

@@ -21,7 +21,7 @@ import (
) )
func TestGetFieldValue(t *testing.T) { func TestGetFieldValue(t *testing.T) {
res := NewResource(map[string]interface{}{ res := NewResourceFromMap(map[string]interface{}{
"Kind": "Service", "Kind": "Service",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
"labels": map[string]string{ "labels": map[string]string{

View File

@@ -22,7 +22,6 @@ import (
"github.com/kubernetes-sigs/kustomize/pkg/resmap" "github.com/kubernetes-sigs/kustomize/pkg/resmap"
"github.com/kubernetes-sigs/kustomize/pkg/resource" "github.com/kubernetes-sigs/kustomize/pkg/resource"
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
"k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/runtime/schema"
) )
@@ -35,19 +34,16 @@ var foo = schema.GroupVersionKind{Group: "example.com", Version: "v1", Kind: "Fo
func TestLabelsRun(t *testing.T) { func TestLabelsRun(t *testing.T) {
m := resmap.ResMap{ m := resmap.ResMap{
resource.NewResId(cmap, "cm1"): resource.NewBehaviorlessResource( resource.NewResId(cmap, "cm1"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "ConfigMap", "kind": "ConfigMap",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
"name": "cm1", "name": "cm1",
}, },
},
}), }),
resource.NewResId(deploy, "deploy1"): resource.NewBehaviorlessResource( resource.NewResId(deploy, "deploy1"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"group": "apps", "group": "apps",
"apiVersion": "v1", "apiVersion": "v1",
"kind": "Deployment", "kind": "Deployment",
@@ -71,11 +67,9 @@ func TestLabelsRun(t *testing.T) {
}, },
}, },
}, },
},
}), }),
resource.NewResId(service, "svc1"): resource.NewBehaviorlessResource( resource.NewResId(service, "svc1"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "Service", "kind": "Service",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
@@ -89,13 +83,11 @@ func TestLabelsRun(t *testing.T) {
}, },
}, },
}, },
},
}), }),
} }
expected := resmap.ResMap{ expected := resmap.ResMap{
resource.NewResId(cmap, "cm1"): resource.NewBehaviorlessResource( resource.NewResId(cmap, "cm1"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "ConfigMap", "kind": "ConfigMap",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
@@ -105,11 +97,9 @@ func TestLabelsRun(t *testing.T) {
"label-key2": "label-value2", "label-key2": "label-value2",
}, },
}, },
},
}), }),
resource.NewResId(deploy, "deploy1"): resource.NewBehaviorlessResource( resource.NewResId(deploy, "deploy1"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"group": "apps", "group": "apps",
"apiVersion": "v1", "apiVersion": "v1",
"kind": "Deployment", "kind": "Deployment",
@@ -145,11 +135,9 @@ func TestLabelsRun(t *testing.T) {
}, },
}, },
}, },
},
}), }),
resource.NewResId(service, "svc1"): resource.NewBehaviorlessResource( resource.NewResId(service, "svc1"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "Service", "kind": "Service",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
@@ -171,7 +159,6 @@ func TestLabelsRun(t *testing.T) {
"label-key2": "label-value2", "label-key2": "label-value2",
}, },
}, },
},
}), }),
} }
@@ -189,99 +176,18 @@ func TestLabelsRun(t *testing.T) {
} }
} }
func makeAnnotatededConfigMap() *unstructured.Unstructured {
return &unstructured.Unstructured{
Object: map[string]interface{}{
"apiVersion": "v1",
"kind": "ConfigMap",
"metadata": map[string]interface{}{
"name": "cm1",
"annotations": map[string]interface{}{
"anno-key1": "anno-value1",
"anno-key2": "anno-value2",
},
},
},
}
}
func makeAnnotatededDeployment() *unstructured.Unstructured {
return &unstructured.Unstructured{
Object: map[string]interface{}{
"group": "apps",
"apiVersion": "v1",
"kind": "Deployment",
"metadata": map[string]interface{}{
"name": "deploy1",
"annotations": map[string]interface{}{
"anno-key1": "anno-value1",
"anno-key2": "anno-value2",
},
},
"spec": map[string]interface{}{
"template": map[string]interface{}{
"metadata": map[string]interface{}{
"annotations": map[string]interface{}{
"anno-key1": "anno-value1",
"anno-key2": "anno-value2",
},
"labels": map[string]interface{}{
"old-label": "old-value",
},
},
"spec": map[string]interface{}{
"containers": []interface{}{
map[string]interface{}{
"name": "nginx",
"image": "nginx:1.7.9",
},
},
},
},
},
},
}
}
func makeAnnotatededService() *unstructured.Unstructured {
return &unstructured.Unstructured{
Object: map[string]interface{}{
"apiVersion": "v1",
"kind": "Service",
"metadata": map[string]interface{}{
"name": "svc1",
"annotations": map[string]interface{}{
"anno-key1": "anno-value1",
"anno-key2": "anno-value2",
},
},
"spec": map[string]interface{}{
"ports": []interface{}{
map[string]interface{}{
"name": "port1",
"port": "12345",
},
},
},
},
}
}
func TestAnnotationsRun(t *testing.T) { func TestAnnotationsRun(t *testing.T) {
m := resmap.ResMap{ m := resmap.ResMap{
resource.NewResId(cmap, "cm1"): resource.NewBehaviorlessResource( resource.NewResId(cmap, "cm1"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "ConfigMap", "kind": "ConfigMap",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
"name": "cm1", "name": "cm1",
}, },
},
}), }),
resource.NewResId(deploy, "deploy1"): resource.NewBehaviorlessResource( resource.NewResId(deploy, "deploy1"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"group": "apps", "group": "apps",
"apiVersion": "v1", "apiVersion": "v1",
"kind": "Deployment", "kind": "Deployment",
@@ -305,11 +211,9 @@ func TestAnnotationsRun(t *testing.T) {
}, },
}, },
}, },
},
}), }),
resource.NewResId(service, "svc1"): resource.NewBehaviorlessResource( resource.NewResId(service, "svc1"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "Service", "kind": "Service",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
@@ -323,13 +227,11 @@ func TestAnnotationsRun(t *testing.T) {
}, },
}, },
}, },
},
}), }),
} }
expected := resmap.ResMap{ expected := resmap.ResMap{
resource.NewResId(cmap, "cm1"): resource.NewBehaviorlessResource( resource.NewResId(cmap, "cm1"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "ConfigMap", "kind": "ConfigMap",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
@@ -339,11 +241,9 @@ func TestAnnotationsRun(t *testing.T) {
"anno-key2": "anno-value2", "anno-key2": "anno-value2",
}, },
}, },
},
}), }),
resource.NewResId(deploy, "deploy1"): resource.NewBehaviorlessResource( resource.NewResId(deploy, "deploy1"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"group": "apps", "group": "apps",
"apiVersion": "v1", "apiVersion": "v1",
"kind": "Deployment", "kind": "Deployment",
@@ -375,11 +275,9 @@ func TestAnnotationsRun(t *testing.T) {
}, },
}, },
}, },
},
}), }),
resource.NewResId(service, "svc1"): resource.NewBehaviorlessResource( resource.NewResId(service, "svc1"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "Service", "kind": "Service",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
@@ -397,7 +295,6 @@ func TestAnnotationsRun(t *testing.T) {
}, },
}, },
}, },
},
}), }),
} }
at, err := NewDefaultingAnnotationsMapTransformer(map[string]string{"anno-key1": "anno-value1", "anno-key2": "anno-value2"}) at, err := NewDefaultingAnnotationsMapTransformer(map[string]string{"anno-key1": "anno-value1", "anno-key2": "anno-value2"})

View File

@@ -22,24 +22,20 @@ import (
"github.com/kubernetes-sigs/kustomize/pkg/resmap" "github.com/kubernetes-sigs/kustomize/pkg/resmap"
"github.com/kubernetes-sigs/kustomize/pkg/resource" "github.com/kubernetes-sigs/kustomize/pkg/resource"
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
) )
func TestNameHashTransformer(t *testing.T) { func TestNameHashTransformer(t *testing.T) {
objs := resmap.ResMap{ objs := resmap.ResMap{
resource.NewResId(cmap, "cm1"): resource.NewBehaviorlessResource( resource.NewResId(cmap, "cm1"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "ConfigMap", "kind": "ConfigMap",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
"name": "cm1", "name": "cm1",
}, },
},
}), }),
resource.NewResId(deploy, "deploy1"): resource.NewBehaviorlessResource( resource.NewResId(deploy, "deploy1"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"group": "apps", "group": "apps",
"apiVersion": "v1", "apiVersion": "v1",
"kind": "Deployment", "kind": "Deployment",
@@ -63,11 +59,9 @@ func TestNameHashTransformer(t *testing.T) {
}, },
}, },
}, },
},
}), }),
resource.NewResId(service, "svc1"): resource.NewBehaviorlessResource( resource.NewResId(service, "svc1"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "Service", "kind": "Service",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
@@ -81,34 +75,28 @@ func TestNameHashTransformer(t *testing.T) {
}, },
}, },
}, },
},
}), }),
resource.NewResId(secret, "secret1"): resource.NewBehaviorlessResource( resource.NewResId(secret, "secret1"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "Secret", "kind": "Secret",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
"name": "secret1", "name": "secret1",
}, },
},
}), }),
} }
expected := resmap.ResMap{ expected := resmap.ResMap{
resource.NewResId(cmap, "cm1"): resource.NewBehaviorlessResource( resource.NewResId(cmap, "cm1"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "ConfigMap", "kind": "ConfigMap",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
"name": "cm1-m462kdfb68", "name": "cm1-m462kdfb68",
}, },
},
}), }),
resource.NewResId(deploy, "deploy1"): resource.NewBehaviorlessResource( resource.NewResId(deploy, "deploy1"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"group": "apps", "group": "apps",
"apiVersion": "v1", "apiVersion": "v1",
"kind": "Deployment", "kind": "Deployment",
@@ -132,11 +120,9 @@ func TestNameHashTransformer(t *testing.T) {
}, },
}, },
}, },
},
}), }),
resource.NewResId(service, "svc1"): resource.NewBehaviorlessResource( resource.NewResId(service, "svc1"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "Service", "kind": "Service",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
@@ -150,17 +136,14 @@ func TestNameHashTransformer(t *testing.T) {
}, },
}, },
}, },
},
}), }),
resource.NewResId(secret, "secret1"): resource.NewBehaviorlessResource( resource.NewResId(secret, "secret1"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "Secret", "kind": "Secret",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
"name": "secret1-7kc45hd5f7", "name": "secret1-7kc45hd5f7",
}, },
},
}), }),
} }

View File

@@ -22,34 +22,28 @@ import (
"github.com/kubernetes-sigs/kustomize/pkg/resmap" "github.com/kubernetes-sigs/kustomize/pkg/resmap"
"github.com/kubernetes-sigs/kustomize/pkg/resource" "github.com/kubernetes-sigs/kustomize/pkg/resource"
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
) )
func TestNameReferenceRun(t *testing.T) { func TestNameReferenceRun(t *testing.T) {
m := resmap.ResMap{ m := resmap.ResMap{
resource.NewResId(cmap, "cm1"): resource.NewBehaviorlessResource( resource.NewResId(cmap, "cm1"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "ConfigMap", "kind": "ConfigMap",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
"name": "someprefix-cm1-somehash", "name": "someprefix-cm1-somehash",
}, },
},
}), }),
resource.NewResId(secret, "secret1"): resource.NewBehaviorlessResource( resource.NewResId(secret, "secret1"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "Secret", "kind": "Secret",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
"name": "someprefix-secret1-somehash", "name": "someprefix-secret1-somehash",
}, },
},
}), }),
resource.NewResId(deploy, "deploy1"): resource.NewBehaviorlessResource( resource.NewResId(deploy, "deploy1"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"group": "apps", "group": "apps",
"apiVersion": "v1", "apiVersion": "v1",
"kind": "Deployment", "kind": "Deployment",
@@ -110,34 +104,28 @@ func TestNameReferenceRun(t *testing.T) {
}, },
}, },
}, },
},
}), }),
} }
expected := resmap.ResMap{ expected := resmap.ResMap{
resource.NewResId(cmap, "cm1"): resource.NewBehaviorlessResource( resource.NewResId(cmap, "cm1"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "ConfigMap", "kind": "ConfigMap",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
"name": "someprefix-cm1-somehash", "name": "someprefix-cm1-somehash",
}, },
},
}), }),
resource.NewResId(secret, "secret1"): resource.NewBehaviorlessResource( resource.NewResId(secret, "secret1"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "Secret", "kind": "Secret",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
"name": "someprefix-secret1-somehash", "name": "someprefix-secret1-somehash",
}, },
},
}), }),
resource.NewResId(deploy, "deploy1"): resource.NewBehaviorlessResource( resource.NewResId(deploy, "deploy1"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"group": "apps", "group": "apps",
"apiVersion": "v1", "apiVersion": "v1",
"kind": "Deployment", "kind": "Deployment",
@@ -198,7 +186,6 @@ func TestNameReferenceRun(t *testing.T) {
}, },
}, },
}, },
},
}), }),
} }

View File

@@ -22,55 +22,46 @@ import (
"github.com/kubernetes-sigs/kustomize/pkg/resmap" "github.com/kubernetes-sigs/kustomize/pkg/resmap"
"github.com/kubernetes-sigs/kustomize/pkg/resource" "github.com/kubernetes-sigs/kustomize/pkg/resource"
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
) )
func TestNamespaceRun(t *testing.T) { func TestNamespaceRun(t *testing.T) {
m := resmap.ResMap{ m := resmap.ResMap{
resource.NewResId(cmap, "cm1"): resource.NewBehaviorlessResource( resource.NewResId(cmap, "cm1"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "ConfigMap", "kind": "ConfigMap",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
"name": "cm1", "name": "cm1",
}, },
},
}), }),
resource.NewResId(cmap, "cm2"): resource.NewBehaviorlessResource( resource.NewResId(cmap, "cm2"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "ConfigMap", "kind": "ConfigMap",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
"name": "cm2", "name": "cm2",
"namespace": "foo", "namespace": "foo",
}, },
},
}), }),
} }
expected := resmap.ResMap{ expected := resmap.ResMap{
resource.NewResId(cmap, "cm1"): resource.NewBehaviorlessResource( resource.NewResId(cmap, "cm1"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "ConfigMap", "kind": "ConfigMap",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
"name": "cm1", "name": "cm1",
"namespace": "test", "namespace": "test",
}, },
},
}), }),
resource.NewResId(cmap, "cm2"): resource.NewBehaviorlessResource( resource.NewResId(cmap, "cm2"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "ConfigMap", "kind": "ConfigMap",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
"name": "cm2", "name": "cm2",
"namespace": "test", "namespace": "test",
}, },
},
}), }),
} }

View File

@@ -23,14 +23,12 @@ import (
"github.com/kubernetes-sigs/kustomize/pkg/resmap" "github.com/kubernetes-sigs/kustomize/pkg/resmap"
"github.com/kubernetes-sigs/kustomize/pkg/resource" "github.com/kubernetes-sigs/kustomize/pkg/resource"
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
) )
func TestOverlayRun(t *testing.T) { func TestOverlayRun(t *testing.T) {
base := resmap.ResMap{ base := resmap.ResMap{
resource.NewResId(deploy, "deploy1"): resource.NewBehaviorlessResource( resource.NewResId(deploy, "deploy1"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "apps/v1", "apiVersion": "apps/v1",
"kind": "Deployment", "kind": "Deployment",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
@@ -53,12 +51,10 @@ func TestOverlayRun(t *testing.T) {
}, },
}, },
}, },
},
}), }),
} }
overlay := []*resource.Resource{ overlay := []*resource.Resource{
resource.NewBehaviorlessResource(&unstructured.Unstructured{ resource.NewResourceFromMap(map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "apps/v1", "apiVersion": "apps/v1",
"kind": "Deployment", "kind": "Deployment",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
@@ -88,13 +84,11 @@ func TestOverlayRun(t *testing.T) {
}, },
}, },
}, },
},
), ),
} }
expected := resmap.ResMap{ expected := resmap.ResMap{
resource.NewResId(deploy, "deploy1"): resource.NewBehaviorlessResource( resource.NewResId(deploy, "deploy1"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "apps/v1", "apiVersion": "apps/v1",
"kind": "Deployment", "kind": "Deployment",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
@@ -124,7 +118,6 @@ func TestOverlayRun(t *testing.T) {
}, },
}, },
}, },
},
}), }),
} }
lt, err := NewOverlayTransformer(overlay) lt, err := NewOverlayTransformer(overlay)
@@ -143,9 +136,8 @@ func TestOverlayRun(t *testing.T) {
func TestMultiplePatches(t *testing.T) { func TestMultiplePatches(t *testing.T) {
base := resmap.ResMap{ base := resmap.ResMap{
resource.NewResId(deploy, "deploy1"): resource.NewBehaviorlessResource( resource.NewResId(deploy, "deploy1"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "apps/v1", "apiVersion": "apps/v1",
"kind": "Deployment", "kind": "Deployment",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
@@ -163,12 +155,10 @@ func TestMultiplePatches(t *testing.T) {
}, },
}, },
}, },
},
}), }),
} }
overlay := []*resource.Resource{ overlay := []*resource.Resource{
resource.NewBehaviorlessResource(&unstructured.Unstructured{ resource.NewResourceFromMap(map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "apps/v1", "apiVersion": "apps/v1",
"kind": "Deployment", "kind": "Deployment",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
@@ -193,10 +183,8 @@ func TestMultiplePatches(t *testing.T) {
}, },
}, },
}, },
},
), ),
resource.NewBehaviorlessResource(&unstructured.Unstructured{ resource.NewResourceFromMap(map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "apps/v1", "apiVersion": "apps/v1",
"kind": "Deployment", "kind": "Deployment",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
@@ -224,13 +212,11 @@ func TestMultiplePatches(t *testing.T) {
}, },
}, },
}, },
},
), ),
} }
expected := resmap.ResMap{ expected := resmap.ResMap{
resource.NewResId(deploy, "deploy1"): resource.NewBehaviorlessResource( resource.NewResId(deploy, "deploy1"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "apps/v1", "apiVersion": "apps/v1",
"kind": "Deployment", "kind": "Deployment",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
@@ -262,7 +248,6 @@ func TestMultiplePatches(t *testing.T) {
}, },
}, },
}, },
},
}), }),
} }
lt, err := NewOverlayTransformer(overlay) lt, err := NewOverlayTransformer(overlay)
@@ -281,9 +266,8 @@ func TestMultiplePatches(t *testing.T) {
func TestMultiplePatchesWithConflict(t *testing.T) { func TestMultiplePatchesWithConflict(t *testing.T) {
base := resmap.ResMap{ base := resmap.ResMap{
resource.NewResId(deploy, "deploy1"): resource.NewBehaviorlessResource( resource.NewResId(deploy, "deploy1"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "apps/v1", "apiVersion": "apps/v1",
"kind": "Deployment", "kind": "Deployment",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
@@ -301,12 +285,10 @@ func TestMultiplePatchesWithConflict(t *testing.T) {
}, },
}, },
}, },
},
}), }),
} }
overlay := []*resource.Resource{ overlay := []*resource.Resource{
resource.NewBehaviorlessResource(&unstructured.Unstructured{ resource.NewResourceFromMap(map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "apps/v1", "apiVersion": "apps/v1",
"kind": "Deployment", "kind": "Deployment",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
@@ -331,10 +313,8 @@ func TestMultiplePatchesWithConflict(t *testing.T) {
}, },
}, },
}, },
},
), ),
resource.NewBehaviorlessResource(&unstructured.Unstructured{ resource.NewResourceFromMap(map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "apps/v1", "apiVersion": "apps/v1",
"kind": "Deployment", "kind": "Deployment",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
@@ -353,7 +333,6 @@ func TestMultiplePatchesWithConflict(t *testing.T) {
}, },
}, },
}, },
},
), ),
} }
@@ -372,9 +351,8 @@ func TestMultiplePatchesWithConflict(t *testing.T) {
func TestNoSchemaOverlayRun(t *testing.T) { func TestNoSchemaOverlayRun(t *testing.T) {
base := resmap.ResMap{ base := resmap.ResMap{
resource.NewResId(foo, "my-foo"): resource.NewBehaviorlessResource( resource.NewResId(foo, "my-foo"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "example.com/v1", "apiVersion": "example.com/v1",
"kind": "Foo", "kind": "Foo",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
@@ -386,12 +364,10 @@ func TestNoSchemaOverlayRun(t *testing.T) {
"B": "Y", "B": "Y",
}, },
}, },
},
}), }),
} }
overlay := []*resource.Resource{ overlay := []*resource.Resource{
resource.NewBehaviorlessResource(&unstructured.Unstructured{ resource.NewResourceFromMap(map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "example.com/v1", "apiVersion": "example.com/v1",
"kind": "Foo", "kind": "Foo",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
@@ -404,13 +380,11 @@ func TestNoSchemaOverlayRun(t *testing.T) {
}, },
}, },
}, },
},
), ),
} }
expected := resmap.ResMap{ expected := resmap.ResMap{
resource.NewResId(foo, "my-foo"): resource.NewBehaviorlessResource( resource.NewResId(foo, "my-foo"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "example.com/v1", "apiVersion": "example.com/v1",
"kind": "Foo", "kind": "Foo",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
@@ -422,7 +396,6 @@ func TestNoSchemaOverlayRun(t *testing.T) {
"C": "Z", "C": "Z",
}, },
}, },
},
}), }),
} }
@@ -441,9 +414,8 @@ func TestNoSchemaOverlayRun(t *testing.T) {
func TestNoSchemaMultiplePatches(t *testing.T) { func TestNoSchemaMultiplePatches(t *testing.T) {
base := resmap.ResMap{ base := resmap.ResMap{
resource.NewResId(foo, "my-foo"): resource.NewBehaviorlessResource( resource.NewResId(foo, "my-foo"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "example.com/v1", "apiVersion": "example.com/v1",
"kind": "Foo", "kind": "Foo",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
@@ -455,12 +427,10 @@ func TestNoSchemaMultiplePatches(t *testing.T) {
"B": "Y", "B": "Y",
}, },
}, },
},
}), }),
} }
overlay := []*resource.Resource{ overlay := []*resource.Resource{
resource.NewBehaviorlessResource(&unstructured.Unstructured{ resource.NewResourceFromMap(map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "example.com/v1", "apiVersion": "example.com/v1",
"kind": "Foo", "kind": "Foo",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
@@ -473,10 +443,8 @@ func TestNoSchemaMultiplePatches(t *testing.T) {
}, },
}, },
}, },
},
), ),
resource.NewBehaviorlessResource(&unstructured.Unstructured{ resource.NewResourceFromMap(map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "example.com/v1", "apiVersion": "example.com/v1",
"kind": "Foo", "kind": "Foo",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
@@ -492,13 +460,11 @@ func TestNoSchemaMultiplePatches(t *testing.T) {
}, },
}, },
}, },
},
), ),
} }
expected := resmap.ResMap{ expected := resmap.ResMap{
resource.NewResId(foo, "my-foo"): resource.NewBehaviorlessResource( resource.NewResId(foo, "my-foo"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "example.com/v1", "apiVersion": "example.com/v1",
"kind": "Foo", "kind": "Foo",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
@@ -514,7 +480,6 @@ func TestNoSchemaMultiplePatches(t *testing.T) {
"hello": "world", "hello": "world",
}, },
}, },
},
}), }),
} }
@@ -533,9 +498,8 @@ func TestNoSchemaMultiplePatches(t *testing.T) {
func TestNoSchemaMultiplePatchesWithConflict(t *testing.T) { func TestNoSchemaMultiplePatchesWithConflict(t *testing.T) {
base := resmap.ResMap{ base := resmap.ResMap{
resource.NewResId(foo, "my-foo"): resource.NewBehaviorlessResource( resource.NewResId(foo, "my-foo"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "example.com/v1", "apiVersion": "example.com/v1",
"kind": "Foo", "kind": "Foo",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
@@ -547,12 +511,10 @@ func TestNoSchemaMultiplePatchesWithConflict(t *testing.T) {
"B": "Y", "B": "Y",
}, },
}, },
},
}), }),
} }
overlay := []*resource.Resource{ overlay := []*resource.Resource{
resource.NewBehaviorlessResource(&unstructured.Unstructured{ resource.NewResourceFromMap(map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "example.com/v1", "apiVersion": "example.com/v1",
"kind": "Foo", "kind": "Foo",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
@@ -564,10 +526,8 @@ func TestNoSchemaMultiplePatchesWithConflict(t *testing.T) {
"C": "Z", "C": "Z",
}, },
}, },
},
}), }),
resource.NewBehaviorlessResource(&unstructured.Unstructured{ resource.NewResourceFromMap(map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "example.com/v1", "apiVersion": "example.com/v1",
"kind": "Foo", "kind": "Foo",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
@@ -578,7 +538,6 @@ func TestNoSchemaMultiplePatchesWithConflict(t *testing.T) {
"C": "NOT_Z", "C": "NOT_Z",
}, },
}, },
},
}), }),
} }

View File

@@ -22,52 +22,43 @@ import (
"github.com/kubernetes-sigs/kustomize/pkg/resmap" "github.com/kubernetes-sigs/kustomize/pkg/resmap"
"github.com/kubernetes-sigs/kustomize/pkg/resource" "github.com/kubernetes-sigs/kustomize/pkg/resource"
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
) )
func TestPrefixNameRun(t *testing.T) { func TestPrefixNameRun(t *testing.T) {
m := resmap.ResMap{ m := resmap.ResMap{
resource.NewResId(cmap, "cm1"): resource.NewBehaviorlessResource( resource.NewResId(cmap, "cm1"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "ConfigMap", "kind": "ConfigMap",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
"name": "cm1", "name": "cm1",
}, },
},
}), }),
resource.NewResId(cmap, "cm2"): resource.NewBehaviorlessResource( resource.NewResId(cmap, "cm2"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "ConfigMap", "kind": "ConfigMap",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
"name": "cm2", "name": "cm2",
}, },
},
}), }),
} }
expected := resmap.ResMap{ expected := resmap.ResMap{
resource.NewResId(cmap, "cm1"): resource.NewBehaviorlessResource( resource.NewResId(cmap, "cm1"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "ConfigMap", "kind": "ConfigMap",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
"name": "someprefix-cm1", "name": "someprefix-cm1",
}, },
},
}), }),
resource.NewResId(cmap, "cm2"): resource.NewBehaviorlessResource( resource.NewResId(cmap, "cm2"): resource.NewResourceFromMap(
&unstructured.Unstructured{ map[string]interface{}{
Object: map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "ConfigMap", "kind": "ConfigMap",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
"name": "someprefix-cm2", "name": "someprefix-cm2",
}, },
},
}), }),
} }