WIP residPackage

This commit is contained in:
Jeffrey Regan
2018-10-04 20:24:22 -07:00
parent 239db504ff
commit c9887e8c15
40 changed files with 242 additions and 215 deletions

View File

@@ -27,19 +27,19 @@ import (
corev1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/util/validation"
"sigs.k8s.io/kustomize/pkg/fs"
"sigs.k8s.io/kustomize/pkg/loader"
"sigs.k8s.io/kustomize/pkg/ifc"
"sigs.k8s.io/kustomize/pkg/types"
)
// ConfigMapFactory makes ConfigMaps.
type ConfigMapFactory struct {
fSys fs.FileSystem
ldr loader.Loader
ldr ifc.Loader
}
// NewConfigMapFactory returns a new ConfigMapFactory.
func NewConfigMapFactory(
fSys fs.FileSystem, l loader.Loader) *ConfigMapFactory {
fSys fs.FileSystem, l ifc.Loader) *ConfigMapFactory {
return &ConfigMapFactory{fSys: fSys, ldr: l}
}
@@ -103,7 +103,7 @@ func keyValuesFromLiteralSources(sources []string) ([]kvPair, error) {
return kvs, nil
}
func keyValuesFromFileSources(ldr loader.Loader, sources []string) ([]kvPair, error) {
func keyValuesFromFileSources(ldr ifc.Loader, sources []string) ([]kvPair, error) {
var kvs []kvPair
for _, s := range sources {
k, fPath, err := parseFileSource(s)
@@ -119,7 +119,7 @@ func keyValuesFromFileSources(ldr loader.Loader, sources []string) ([]kvPair, er
return kvs, nil
}
func keyValuesFromEnvFile(l loader.Loader, path string) ([]kvPair, error) {
func keyValuesFromEnvFile(l ifc.Loader, path string) ([]kvPair, error) {
if path == "" {
return nil, nil
}

View File

@@ -25,12 +25,12 @@ import (
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/kube-openapi/pkg/common"
"sigs.k8s.io/kustomize/pkg/gvk"
"sigs.k8s.io/kustomize/pkg/loader"
"sigs.k8s.io/kustomize/pkg/ifc"
"sigs.k8s.io/kustomize/pkg/transformerconfig"
)
// RegisterCRDs parse CRD schemas from paths and update various pathConfigs
func RegisterCRDs(loader loader.Loader, paths []string) (*transformerconfig.TransformerConfig, error) {
func RegisterCRDs(loader ifc.Loader, paths []string) (*transformerconfig.TransformerConfig, error) {
pathConfigs := transformerconfig.MakeEmptyTransformerConfig()
for _, path := range paths {
pathConfig, err := registerCRD(loader, path)
@@ -43,7 +43,7 @@ func RegisterCRDs(loader loader.Loader, paths []string) (*transformerconfig.Tran
}
// register CRD from one path
func registerCRD(loader loader.Loader, path string) (*transformerconfig.TransformerConfig, error) {
func registerCRD(loader ifc.Loader, path string) (*transformerconfig.TransformerConfig, error) {
result := transformerconfig.MakeEmptyTransformerConfig()
content, err := loader.Load(path)
if err != nil {

View File

@@ -21,8 +21,8 @@ import (
"testing"
"sigs.k8s.io/kustomize/pkg/gvk"
"sigs.k8s.io/kustomize/pkg/ifc"
"sigs.k8s.io/kustomize/pkg/internal/loadertest"
"sigs.k8s.io/kustomize/pkg/loader"
"sigs.k8s.io/kustomize/pkg/transformerconfig"
)
@@ -140,7 +140,7 @@ If it is not set we generate a secret dynamically",
`
)
func makeLoader(t *testing.T) loader.Loader {
func makeLoader(t *testing.T) ifc.Loader {
ldr := loadertest.NewFakeLoader("/testpath")
err := ldr.AddFile("/testpath/crd.json", []byte(crdContent))
if err != nil {

View File

@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
package resource
package ifc
// GenerationBehavior specifies generation behavior of configmaps, secrets and maybe other resources.
type GenerationBehavior int

View File

@@ -31,3 +31,15 @@ type Validator interface {
MakeLabelValidator() func(map[string]string) error
ValidateNamespace(string) []string
}
// Loader interface exposes methods to read bytes.
type Loader interface {
// Root returns the root location for this Loader.
Root() string
// New returns Loader located at newRoot.
New(newRoot string) (Loader, error)
// Load returns the bytes read from the location or an error.
Load(location string) ([]byte, error)
// Cleanup cleans the loader
Cleanup() error
}

View File

@@ -19,13 +19,14 @@ package loadertest
import (
"sigs.k8s.io/kustomize/pkg/fs"
"sigs.k8s.io/kustomize/pkg/ifc"
"sigs.k8s.io/kustomize/pkg/loader"
)
// FakeLoader encapsulates the delegate Loader and the fake file system.
type FakeLoader struct {
fs fs.FileSystem
delegate loader.Loader
delegate ifc.Loader
}
// NewFakeLoader returns a Loader that delegates calls, and encapsulates
@@ -55,7 +56,7 @@ func (f FakeLoader) Root() string {
}
// New creates a new loader from a new root.
func (f FakeLoader) New(newRoot string) (loader.Loader, error) {
func (f FakeLoader) New(newRoot string) (ifc.Loader, error) {
l, err := f.delegate.New(newRoot)
if err != nil {
return nil, err

View File

@@ -22,6 +22,7 @@ import (
"path/filepath"
"sigs.k8s.io/kustomize/pkg/fs"
"sigs.k8s.io/kustomize/pkg/ifc"
)
const currentDir = "."
@@ -52,7 +53,7 @@ func (l *fileLoader) Root() string {
// slash or not.
// Example: "/home/seans/project" or "/home/seans/project/"
// NOT "/home/seans/project/file.yaml".
func (l *fileLoader) New(newRoot string) (Loader, error) {
func (l *fileLoader) New(newRoot string) (ifc.Loader, error) {
return NewLoader(newRoot, l.root, l.fSys)
}

View File

@@ -20,6 +20,7 @@ import (
"io/ioutil"
"os"
"path/filepath"
"sigs.k8s.io/kustomize/pkg/ifc"
"strings"
"github.com/hashicorp/go-getter"
@@ -43,7 +44,7 @@ func (l *githubLoader) Root() string {
}
// New delegates to fileLoader.New
func (l *githubLoader) New(newRoot string) (Loader, error) {
func (l *githubLoader) New(newRoot string) (ifc.Loader, error) {
return l.loader.New(newRoot)
}

View File

@@ -20,25 +20,14 @@ package loader
import (
"fmt"
"path/filepath"
"sigs.k8s.io/kustomize/pkg/ifc"
"sigs.k8s.io/kustomize/pkg/fs"
)
// Loader interface exposes methods to read bytes.
type Loader interface {
// Root returns the root location for this Loader.
Root() string
// New returns Loader located at newRoot.
New(newRoot string) (Loader, error)
// Load returns the bytes read from the location or an error.
Load(location string) ([]byte, error)
// Cleanup cleans the loader
Cleanup() error
}
// NewLoader returns a Loader given a target
// The target can be a local disk directory or a github Url
func NewLoader(target, r string, fSys fs.FileSystem) (Loader, error) {
func NewLoader(target, r string, fSys fs.FileSystem) (ifc.Loader, error) {
if !isValidLoaderPath(target, r) {
return nil, fmt.Errorf("Not valid path: root='%s', loc='%s'\n", r, target)
}

View File

@@ -18,23 +18,23 @@ package transformer
import (
"fmt"
"sigs.k8s.io/kustomize/pkg/ifc"
"sigs.k8s.io/kustomize/pkg/resid"
"github.com/evanphx/json-patch"
"github.com/krishicks/yaml-patch"
"sigs.k8s.io/kustomize/pkg/gvk"
"sigs.k8s.io/kustomize/pkg/loader"
"sigs.k8s.io/kustomize/pkg/patch"
"sigs.k8s.io/kustomize/pkg/resource"
"sigs.k8s.io/kustomize/pkg/transformers"
)
// PatchJson6902Factory makes Json6902 transformers
type PatchJson6902Factory struct {
loader loader.Loader
loader ifc.Loader
}
// NewPatchJson6902Factory returns a new PatchJson6902Factory.
func NewPatchJson6902Factory(l loader.Loader) PatchJson6902Factory {
func NewPatchJson6902Factory(l ifc.Loader) PatchJson6902Factory {
return PatchJson6902Factory{loader: l}
}
@@ -61,7 +61,7 @@ func (f PatchJson6902Factory) makeOnePatchJson6902Transformer(p patch.Json6902)
return nil, fmt.Errorf("must specify the path for a json patch file")
}
targetId := resource.NewResIdWithPrefixNamespace(
targetId := resid.NewResIdWithPrefixNamespace(
gvk.Gvk{
Group: p.Target.Group,
Version: p.Target.Version,

View File

@@ -25,6 +25,7 @@ import (
"sigs.k8s.io/kustomize/pkg/gvk"
"sigs.k8s.io/kustomize/pkg/internal/loadertest"
"sigs.k8s.io/kustomize/pkg/patch"
"sigs.k8s.io/kustomize/pkg/resid"
"sigs.k8s.io/kustomize/pkg/resmap"
"sigs.k8s.io/kustomize/pkg/resource"
)
@@ -179,7 +180,7 @@ func TestNewPatchJson6902FactoryMulti(t *testing.T) {
t.Fatal("the returned transformer should not be nil")
}
id := resource.NewResId(gvk.FromKind("foo"), "some-name")
id := resid.NewResId(gvk.FromKind("foo"), "some-name")
base := resmap.ResMap{
id: resource.NewResourceFromMap(
map[string]interface{}{
@@ -293,7 +294,7 @@ func TestNewPatchJson6902FactoryMultiConflict(t *testing.T) {
t.Fatal("the returned transformer should not be nil")
}
id := resource.NewResId(gvk.FromKind("foo"), "some-name")
id := resid.NewResId(gvk.FromKind("foo"), "some-name")
base := resmap.ResMap{
id: resource.NewResourceFromMap(
map[string]interface{}{

View File

@@ -18,21 +18,21 @@ package transformer
import (
"github.com/evanphx/json-patch"
"sigs.k8s.io/kustomize/pkg/resid"
"sigs.k8s.io/kustomize/pkg/resmap"
"sigs.k8s.io/kustomize/pkg/resource"
"sigs.k8s.io/kustomize/pkg/transformers"
)
// patchJson6902JSONTransformer applies patches.
type patchJson6902JSONTransformer struct {
target resource.ResId
target resid.ResId
patch jsonpatch.Patch
}
var _ transformers.Transformer = &patchJson6902JSONTransformer{}
// newPatchJson6902JSONTransformer constructs a PatchJson6902 transformer.
func newPatchJson6902JSONTransformer(t resource.ResId, p jsonpatch.Patch) (transformers.Transformer, error) {
func newPatchJson6902JSONTransformer(t resid.ResId, p jsonpatch.Patch) (transformers.Transformer, error) {
if len(p) == 0 {
return transformers.NewNoOpTransformer(), nil
}

View File

@@ -21,12 +21,13 @@ import (
"testing"
"github.com/evanphx/json-patch"
"sigs.k8s.io/kustomize/pkg/resid"
"sigs.k8s.io/kustomize/pkg/resmap"
"sigs.k8s.io/kustomize/pkg/resource"
)
func TestJsonPatchJSONTransformer_Transform(t *testing.T) {
id := resource.NewResId(deploy, "deploy1")
id := resid.NewResId(deploy, "deploy1")
base := resmap.ResMap{
id: resource.NewResourceFromMap(
map[string]interface{}{

View File

@@ -19,21 +19,21 @@ package transformer
import (
"github.com/ghodss/yaml"
"github.com/krishicks/yaml-patch"
"sigs.k8s.io/kustomize/pkg/resid"
"sigs.k8s.io/kustomize/pkg/resmap"
"sigs.k8s.io/kustomize/pkg/resource"
"sigs.k8s.io/kustomize/pkg/transformers"
)
// patchJson6902YAMLTransformer applies patches.
type patchJson6902YAMLTransformer struct {
target resource.ResId
target resid.ResId
patch yamlpatch.Patch
}
var _ transformers.Transformer = &patchJson6902YAMLTransformer{}
// newPatchJson6902YAMLTransformer constructs a PatchJson6902 transformer.
func newPatchJson6902YAMLTransformer(t resource.ResId, p yamlpatch.Patch) (transformers.Transformer, error) {
func newPatchJson6902YAMLTransformer(t resid.ResId, p yamlpatch.Patch) (transformers.Transformer, error) {
if len(p) == 0 {
return transformers.NewNoOpTransformer(), nil
}

View File

@@ -22,6 +22,7 @@ import (
"github.com/krishicks/yaml-patch"
"sigs.k8s.io/kustomize/pkg/gvk"
"sigs.k8s.io/kustomize/pkg/resid"
"sigs.k8s.io/kustomize/pkg/resmap"
"sigs.k8s.io/kustomize/pkg/resource"
)
@@ -29,7 +30,7 @@ import (
var deploy = gvk.Gvk{Group: "apps", Version: "v1", Kind: "Deployment"}
func TestJsonPatchYAMLTransformer_Transform(t *testing.T) {
id := resource.NewResId(deploy, "deploy1")
id := resid.NewResId(deploy, "deploy1")
base := resmap.ResMap{
id: resource.NewResourceFromMap(
map[string]interface{}{

View File

@@ -19,14 +19,15 @@ package transformer
import (
"fmt"
"sigs.k8s.io/kustomize/pkg/resid"
"sigs.k8s.io/kustomize/pkg/resmap"
"sigs.k8s.io/kustomize/pkg/resource"
)
func findTargetObj(m resmap.ResMap, targetId resource.ResId) (*resource.Resource, error) {
func findTargetObj(m resmap.ResMap, targetId resid.ResId) (*resource.Resource, error) {
matchedIds := m.FindByGVKN(targetId)
if targetId.Namespace() != "" {
var ids []resource.ResId
var ids []resid.ResId
for _, id := range matchedIds {
if id.Namespace() == targetId.Namespace() {
ids = append(ids, id)

View File

@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
package resource
package resid
import (
"strings"

View File

@@ -1,4 +1,4 @@
package resource
package resid
import (
"testing"

View File

@@ -18,6 +18,7 @@ package resmap
import (
"sigs.k8s.io/kustomize/pkg/configmapandsecret"
"sigs.k8s.io/kustomize/pkg/ifc"
"sigs.k8s.io/kustomize/pkg/resource"
"sigs.k8s.io/kustomize/pkg/types"
)
@@ -37,7 +38,7 @@ func NewResMapFromConfigMapArgs(
return nil, err
}
res, err := resource.NewResourceWithBehavior(
cm, resource.NewGenerationBehavior(cmArgs.Behavior))
cm, ifc.NewGenerationBehavior(cmArgs.Behavior))
if err != nil {
return nil, err
}

View File

@@ -23,7 +23,9 @@ import (
"sigs.k8s.io/kustomize/pkg/configmapandsecret"
"sigs.k8s.io/kustomize/pkg/fs"
"sigs.k8s.io/kustomize/pkg/gvk"
"sigs.k8s.io/kustomize/pkg/ifc"
"sigs.k8s.io/kustomize/pkg/internal/loadertest"
"sigs.k8s.io/kustomize/pkg/resid"
"sigs.k8s.io/kustomize/pkg/resource"
"sigs.k8s.io/kustomize/pkg/types"
)
@@ -55,7 +57,7 @@ func TestNewFromConfigMaps(t *testing.T) {
filepath: "/home/seans/project/app.env",
content: "DB_USERNAME=admin\nDB_PASSWORD=somepw",
expected: ResMap{
resource.NewResId(cmap, "envConfigMap"): resource.NewResourceFromMap(
resid.NewResId(cmap, "envConfigMap"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "v1",
"kind": "ConfigMap",
@@ -66,7 +68,7 @@ func TestNewFromConfigMaps(t *testing.T) {
"DB_USERNAME": "admin",
"DB_PASSWORD": "somepw",
},
}).SetBehavior(resource.BehaviorCreate),
}).SetBehavior(ifc.BehaviorCreate),
},
},
{
@@ -81,7 +83,7 @@ func TestNewFromConfigMaps(t *testing.T) {
filepath: "/home/seans/project/app-init.ini",
content: "FOO=bar\nBAR=baz\n",
expected: ResMap{
resource.NewResId(cmap, "fileConfigMap"): resource.NewResourceFromMap(
resid.NewResId(cmap, "fileConfigMap"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "v1",
"kind": "ConfigMap",
@@ -93,7 +95,7 @@ func TestNewFromConfigMaps(t *testing.T) {
BAR=baz
`,
},
}).SetBehavior(resource.BehaviorCreate),
}).SetBehavior(ifc.BehaviorCreate),
},
},
{
@@ -107,7 +109,7 @@ BAR=baz
},
},
expected: ResMap{
resource.NewResId(cmap, "literalConfigMap"): resource.NewResourceFromMap(
resid.NewResId(cmap, "literalConfigMap"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "v1",
"kind": "ConfigMap",
@@ -120,7 +122,7 @@ BAR=baz
"c": "Good Morning",
"d": "false",
},
}).SetBehavior(resource.BehaviorCreate),
}).SetBehavior(ifc.BehaviorCreate),
},
},
// TODO: add testcase for data coming from multiple sources like

View File

@@ -19,11 +19,11 @@ package resmap
import (
"sort"
"sigs.k8s.io/kustomize/pkg/resource"
"sigs.k8s.io/kustomize/pkg/resid"
)
// IdSlice implements the sort interface.
type IdSlice []resource.ResId
type IdSlice []resid.ResId
var _ sort.Interface = IdSlice{}

View File

@@ -21,29 +21,29 @@ import (
"sort"
"testing"
"sigs.k8s.io/kustomize/pkg/resource"
"sigs.k8s.io/kustomize/pkg/resid"
)
func TestLess(t *testing.T) {
ids := IdSlice{
resource.NewResIdKindOnly("ConfigMap", "cm"),
resource.NewResIdKindOnly("Pod", "pod"),
resource.NewResIdKindOnly("Namespace", "ns1"),
resource.NewResIdKindOnly("Namespace", "ns2"),
resource.NewResIdKindOnly("Role", "ro"),
resource.NewResIdKindOnly("RoleBinding", "rb"),
resource.NewResIdKindOnly("CustomResourceDefinition", "crd"),
resource.NewResIdKindOnly("ServiceAccount", "sa"),
resid.NewResIdKindOnly("ConfigMap", "cm"),
resid.NewResIdKindOnly("Pod", "pod"),
resid.NewResIdKindOnly("Namespace", "ns1"),
resid.NewResIdKindOnly("Namespace", "ns2"),
resid.NewResIdKindOnly("Role", "ro"),
resid.NewResIdKindOnly("RoleBinding", "rb"),
resid.NewResIdKindOnly("CustomResourceDefinition", "crd"),
resid.NewResIdKindOnly("ServiceAccount", "sa"),
}
expected := IdSlice{
resource.NewResIdKindOnly("Namespace", "ns1"),
resource.NewResIdKindOnly("Namespace", "ns2"),
resource.NewResIdKindOnly("CustomResourceDefinition", "crd"),
resource.NewResIdKindOnly("ServiceAccount", "sa"),
resource.NewResIdKindOnly("Role", "ro"),
resource.NewResIdKindOnly("RoleBinding", "rb"),
resource.NewResIdKindOnly("ConfigMap", "cm"),
resource.NewResIdKindOnly("Pod", "pod"),
resid.NewResIdKindOnly("Namespace", "ns1"),
resid.NewResIdKindOnly("Namespace", "ns2"),
resid.NewResIdKindOnly("CustomResourceDefinition", "crd"),
resid.NewResIdKindOnly("ServiceAccount", "sa"),
resid.NewResIdKindOnly("Role", "ro"),
resid.NewResIdKindOnly("RoleBinding", "rb"),
resid.NewResIdKindOnly("ConfigMap", "cm"),
resid.NewResIdKindOnly("Pod", "pod"),
}
sort.Sort(ids)
if !reflect.DeepEqual(ids, expected) {

View File

@@ -21,7 +21,6 @@ import (
"bytes"
"fmt"
"reflect"
"sigs.k8s.io/kustomize/pkg/ifc"
"sort"
"github.com/ghodss/yaml"
@@ -29,17 +28,18 @@ import (
"github.com/pkg/errors"
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
"sigs.k8s.io/kustomize/pkg/gvk"
"sigs.k8s.io/kustomize/pkg/ifc"
internal "sigs.k8s.io/kustomize/pkg/internal/error"
"sigs.k8s.io/kustomize/pkg/loader"
"sigs.k8s.io/kustomize/pkg/resid"
"sigs.k8s.io/kustomize/pkg/resource"
)
// ResMap is a map from ResId to Resource.
type ResMap map[resource.ResId]*resource.Resource
type ResMap map[resid.ResId]*resource.Resource
// FindByGVKN find the matched ResIds by Group/Version/Kind and Name
func (m ResMap) FindByGVKN(inputId resource.ResId) []resource.ResId {
var result []resource.ResId
func (m ResMap) FindByGVKN(inputId resid.ResId) []resid.ResId {
var result []resid.ResId
for id := range m {
if id.GvknEquals(inputId) {
result = append(result, id)
@@ -49,7 +49,7 @@ func (m ResMap) FindByGVKN(inputId resource.ResId) []resource.ResId {
}
// DemandOneMatchForId find the matched resource by Group/Version/Kind and Name
func (m ResMap) DemandOneMatchForId(inputId resource.ResId) (*resource.Resource, bool) {
func (m ResMap) DemandOneMatchForId(inputId resid.ResId) (*resource.Resource, bool) {
result := m.FindByGVKN(inputId)
if len(result) == 1 {
return m[result[0]], true
@@ -59,7 +59,7 @@ func (m ResMap) DemandOneMatchForId(inputId resource.ResId) (*resource.Resource,
// EncodeAsYaml encodes a ResMap to YAML; encoded objects separated by `---`.
func (m ResMap) EncodeAsYaml() ([]byte, error) {
var ids []resource.ResId
var ids []resid.ResId
for id := range m {
ids = append(ids, id)
}
@@ -93,8 +93,8 @@ func (m ResMap) EncodeAsYaml() ([]byte, error) {
// ErrorIfNotEqual returns error if maps are not equal.
func (m ResMap) ErrorIfNotEqual(m2 ResMap) error {
if len(m) != len(m2) {
var keySet1 []resource.ResId
var keySet2 []resource.ResId
var keySet1 []resid.ResId
var keySet2 []resid.ResId
for id := range m {
keySet1 = append(keySet1, id)
}
@@ -128,7 +128,7 @@ func (m ResMap) DeepCopy() ResMap {
func (m ResMap) insert(newName string, obj *unstructured.Unstructured) error {
oldName := obj.GetName()
gvKind := gvk.FromSchemaGvk(obj.GroupVersionKind())
id := resource.NewResId(gvKind, oldName)
id := resid.NewResId(gvKind, oldName)
if _, found := m[id]; found {
return fmt.Errorf(
@@ -141,7 +141,7 @@ func (m ResMap) insert(newName string, obj *unstructured.Unstructured) error {
// FilterBy returns a ResMap containing ResIds with the same namespace and nameprefix
// with the inputId
func (m ResMap) FilterBy(inputId resource.ResId) ResMap {
func (m ResMap) FilterBy(inputId resid.ResId) ResMap {
result := ResMap{}
for id, res := range m {
if id.Namespace() == inputId.Namespace() && id.HasSameLeftmostPrefix(inputId) {
@@ -153,7 +153,7 @@ func (m ResMap) FilterBy(inputId resource.ResId) ResMap {
// NewResMapFromFiles returns a ResMap given a resource path slice.
func NewResMapFromFiles(
loader loader.Loader, paths []string,
loader ifc.Loader, paths []string,
d ifc.Decoder) (ResMap, error) {
var result []ResMap
for _, path := range paths {
@@ -242,23 +242,23 @@ func MergeWithOverride(maps ...ResMap) (ResMap, error) {
if len(matchedId) == 1 {
id = matchedId[0]
switch r.Behavior() {
case resource.BehaviorReplace:
case ifc.BehaviorReplace:
glog.V(4).Infof("Replace %v with %v", result[id].Object, r.Object)
r.Replace(result[id])
result[id] = r
result[id].SetBehavior(resource.BehaviorCreate)
case resource.BehaviorMerge:
result[id].SetBehavior(ifc.BehaviorCreate)
case ifc.BehaviorMerge:
glog.V(4).Infof("Merging %v with %v", result[id].Object, r.Object)
r.Merge(result[id])
result[id] = r
glog.V(4).Infof("Merged object is %v", result[id].Object)
result[id].SetBehavior(resource.BehaviorCreate)
result[id].SetBehavior(ifc.BehaviorCreate)
default:
return nil, fmt.Errorf("id %#v exists; must merge or replace", id)
}
} else if len(matchedId) == 0 {
switch r.Behavior() {
case resource.BehaviorMerge, resource.BehaviorReplace:
case ifc.BehaviorMerge, ifc.BehaviorReplace:
return nil, fmt.Errorf("id %#v does not exist; cannot merge or replace", id)
default:
result[id] = r

View File

@@ -19,11 +19,13 @@ package resmap
import (
"fmt"
"reflect"
"sigs.k8s.io/kustomize/internal/k8sdeps"
"testing"
"sigs.k8s.io/kustomize/internal/k8sdeps"
"sigs.k8s.io/kustomize/pkg/gvk"
"sigs.k8s.io/kustomize/pkg/ifc"
"sigs.k8s.io/kustomize/pkg/internal/loadertest"
"sigs.k8s.io/kustomize/pkg/resid"
"sigs.k8s.io/kustomize/pkg/resource"
)
@@ -42,7 +44,7 @@ metadata:
name: cm2
`)
input := ResMap{
resource.NewResId(cmap, "cm1"): resource.NewResourceFromMap(
resid.NewResId(cmap, "cm1"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "v1",
"kind": "ConfigMap",
@@ -50,7 +52,7 @@ metadata:
"name": "cm1",
},
}),
resource.NewResId(cmap, "cm2"): resource.NewResourceFromMap(
resid.NewResId(cmap, "cm2"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "v1",
"kind": "ConfigMap",
@@ -89,7 +91,7 @@ metadata:
if ferr := l.AddFile("/home/seans/project/deployment.yaml", []byte(resourceStr)); ferr != nil {
t.Fatalf("Error adding fake file: %v\n", ferr)
}
expected := ResMap{resource.NewResId(deploy, "dply1"): resource.NewResourceFromMap(
expected := ResMap{resid.NewResId(deploy, "dply1"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "apps/v1",
"kind": "Deployment",
@@ -97,7 +99,7 @@ metadata:
"name": "dply1",
},
}),
resource.NewResId(deploy, "dply2"): resource.NewResourceFromMap(
resid.NewResId(deploy, "dply2"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "apps/v1",
"kind": "Deployment",
@@ -131,7 +133,7 @@ metadata:
name: cm2
`)
expected := ResMap{
resource.NewResId(cmap, "cm1"): resource.NewResourceFromMap(
resid.NewResId(cmap, "cm1"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "v1",
"kind": "ConfigMap",
@@ -139,7 +141,7 @@ metadata:
"name": "cm1",
},
}),
resource.NewResId(cmap, "cm2"): resource.NewResourceFromMap(
resid.NewResId(cmap, "cm2"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "v1",
"kind": "ConfigMap",
@@ -160,7 +162,7 @@ metadata:
func TestMergeWithoutOverride(t *testing.T) {
input1 := ResMap{
resource.NewResId(deploy, "deploy1"): resource.NewResourceFromMap(
resid.NewResId(deploy, "deploy1"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "apps/v1",
"kind": "Deployment",
@@ -170,7 +172,7 @@ func TestMergeWithoutOverride(t *testing.T) {
}),
}
input2 := ResMap{
resource.NewResId(statefulset, "stateful1"): resource.NewResourceFromMap(
resid.NewResId(statefulset, "stateful1"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "apps/v1",
"kind": "StatefulSet",
@@ -181,7 +183,7 @@ func TestMergeWithoutOverride(t *testing.T) {
}
input := []ResMap{input1, input2}
expected := ResMap{
resource.NewResId(deploy, "deploy1"): resource.NewResourceFromMap(
resid.NewResId(deploy, "deploy1"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "apps/v1",
"kind": "Deployment",
@@ -189,7 +191,7 @@ func TestMergeWithoutOverride(t *testing.T) {
"name": "foo-deploy1",
},
}),
resource.NewResId(statefulset, "stateful1"): resource.NewResourceFromMap(
resid.NewResId(statefulset, "stateful1"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "apps/v1",
"kind": "StatefulSet",
@@ -225,7 +227,7 @@ func TestMergeWithoutOverride(t *testing.T) {
func TestMergeWithOverride(t *testing.T) {
input1 := ResMap{
resource.NewResId(cmap, "cmap"): resource.NewResourceFromMap(
resid.NewResId(cmap, "cmap"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "apps/v1",
"kind": "ConfigMap",
@@ -239,7 +241,7 @@ func TestMergeWithOverride(t *testing.T) {
}),
}
input2 := ResMap{
resource.NewResId(cmap, "cmap"): resource.NewResourceFromMap(
resid.NewResId(cmap, "cmap"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "apps/v1",
"kind": "ConfigMap",
@@ -253,11 +255,11 @@ func TestMergeWithOverride(t *testing.T) {
},
}),
}
input1[resource.NewResId(cmap, "cmap")].SetBehavior(resource.BehaviorCreate)
input2[resource.NewResId(cmap, "cmap")].SetBehavior(resource.BehaviorMerge)
input1[resid.NewResId(cmap, "cmap")].SetBehavior(ifc.BehaviorCreate)
input2[resid.NewResId(cmap, "cmap")].SetBehavior(ifc.BehaviorMerge)
input := []ResMap{input1, input2}
expected := ResMap{
resource.NewResId(cmap, "cmap"): resource.NewResourceFromMap(
resid.NewResId(cmap, "cmap"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "apps/v1",
"kind": "ConfigMap",
@@ -273,7 +275,7 @@ func TestMergeWithOverride(t *testing.T) {
},
}),
}
expected[resource.NewResId(cmap, "cmap")].SetBehavior(resource.BehaviorCreate)
expected[resid.NewResId(cmap, "cmap")].SetBehavior(ifc.BehaviorCreate)
merged, err := MergeWithOverride(input...)
if err != nil {
t.Fatalf("unexpected error: %v", err)

View File

@@ -19,6 +19,7 @@ package resmap
import (
"github.com/pkg/errors"
"sigs.k8s.io/kustomize/pkg/configmapandsecret"
"sigs.k8s.io/kustomize/pkg/ifc"
"sigs.k8s.io/kustomize/pkg/resource"
"sigs.k8s.io/kustomize/pkg/types"
)
@@ -38,7 +39,7 @@ func NewResMapFromSecretArgs(
args.Behavior = "create"
}
res, err := resource.NewResourceWithBehavior(
s, resource.NewGenerationBehavior(args.Behavior))
s, ifc.NewGenerationBehavior(args.Behavior))
if err != nil {
return nil, errors.Wrap(err, "NewResourceWithBehavior")
}

View File

@@ -25,6 +25,8 @@ import (
"sigs.k8s.io/kustomize/pkg/configmapandsecret"
"sigs.k8s.io/kustomize/pkg/fs"
"sigs.k8s.io/kustomize/pkg/gvk"
"sigs.k8s.io/kustomize/pkg/ifc"
"sigs.k8s.io/kustomize/pkg/resid"
"sigs.k8s.io/kustomize/pkg/resource"
"sigs.k8s.io/kustomize/pkg/types"
)
@@ -61,7 +63,7 @@ func TestNewResMapFromSecretArgs(t *testing.T) {
}
expected := ResMap{
resource.NewResId(secret, "apple"): resource.NewResourceFromMap(
resid.NewResId(secret, "apple"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "v1",
"kind": "Secret",
@@ -73,8 +75,8 @@ func TestNewResMapFromSecretArgs(t *testing.T) {
"DB_USERNAME": base64.StdEncoding.EncodeToString([]byte("admin")),
"DB_PASSWORD": base64.StdEncoding.EncodeToString([]byte("somepw")),
},
}).SetBehavior(resource.BehaviorCreate),
resource.NewResId(secret, "peanuts"): resource.NewResourceFromMap(
}).SetBehavior(ifc.BehaviorCreate),
resid.NewResId(secret, "peanuts"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "v1",
"kind": "Secret",
@@ -86,7 +88,7 @@ func TestNewResMapFromSecretArgs(t *testing.T) {
"DB_USERNAME": base64.StdEncoding.EncodeToString([]byte("admin")),
"DB_PASSWORD": base64.StdEncoding.EncodeToString([]byte("somepw")),
},
}).SetBehavior(resource.BehaviorCreate),
}).SetBehavior(ifc.BehaviorCreate),
}
if !reflect.DeepEqual(actual, expected) {
t.Fatalf("%#v\ndoesn't match expected:\n%#v", actual, expected)

View File

@@ -29,19 +29,19 @@ import (
"sigs.k8s.io/kustomize/pkg/gvk"
"sigs.k8s.io/kustomize/pkg/ifc"
internal "sigs.k8s.io/kustomize/pkg/internal/error"
"sigs.k8s.io/kustomize/pkg/loader"
"sigs.k8s.io/kustomize/pkg/patch"
"sigs.k8s.io/kustomize/pkg/resid"
)
// Resource is an "Unstructured" (json/map form) Kubernetes API resource object
// paired with a GenerationBehavior.
type Resource struct {
unstructured.Unstructured
b GenerationBehavior
b ifc.GenerationBehavior
}
// NewResourceWithBehavior returns a new instance of Resource.
func NewResourceWithBehavior(obj runtime.Object, b GenerationBehavior) (*Resource, error) {
func NewResourceWithBehavior(obj runtime.Object, b ifc.GenerationBehavior) (*Resource, error) {
// Convert obj to a byte stream, then convert that to JSON (Unstructured).
marshaled, err := json.Marshal(obj)
if err != nil {
@@ -61,13 +61,13 @@ func NewResourceFromMap(m map[string]interface{}) *Resource {
// NewResourceFromUnstruct returns a new instance of Resource.
func NewResourceFromUnstruct(u unstructured.Unstructured) *Resource {
return &Resource{Unstructured: u, b: BehaviorUnspecified}
return &Resource{Unstructured: u, b: ifc.BehaviorUnspecified}
}
// NewResourceSliceFromPatches returns a slice of resources given a patch path
// slice from a kustomization file.
func NewResourceSliceFromPatches(
ldr loader.Loader, paths []patch.StrategicMerge,
ldr ifc.Loader, paths []patch.StrategicMerge,
decoder ifc.Decoder) ([]*Resource, error) {
var result []*Resource
for _, path := range paths {
@@ -117,24 +117,24 @@ func (r *Resource) String() string {
}
// Behavior returns the behavior for the resource.
func (r *Resource) Behavior() GenerationBehavior {
func (r *Resource) Behavior() ifc.GenerationBehavior {
return r.b
}
// SetBehavior changes the resource to the new behavior
func (r *Resource) SetBehavior(b GenerationBehavior) *Resource {
func (r *Resource) SetBehavior(b ifc.GenerationBehavior) *Resource {
r.b = b
return r
}
// IsGenerated checks if the resource is generated from a generator
func (r *Resource) IsGenerated() bool {
return r.b != BehaviorUnspecified
return r.b != ifc.BehaviorUnspecified
}
// Id returns the ResId for the resource.
func (r *Resource) Id() ResId {
return NewResId(gvk.FromSchemaGvk(r.GroupVersionKind()), r.GetName())
func (r *Resource) Id() resid.ResId {
return resid.NewResId(gvk.FromSchemaGvk(r.GroupVersionKind()), r.GetName())
}
// Merge performs merge with other resource.

View File

@@ -22,6 +22,7 @@ import (
"encoding/json"
"fmt"
"sigs.k8s.io/kustomize/pkg/ifc"
"sigs.k8s.io/kustomize/pkg/resid"
"github.com/ghodss/yaml"
"github.com/golang/glog"
@@ -31,7 +32,6 @@ import (
"sigs.k8s.io/kustomize/pkg/crds"
"sigs.k8s.io/kustomize/pkg/fs"
interror "sigs.k8s.io/kustomize/pkg/internal/error"
"sigs.k8s.io/kustomize/pkg/loader"
patchtransformer "sigs.k8s.io/kustomize/pkg/patch/transformer"
"sigs.k8s.io/kustomize/pkg/resmap"
"sigs.k8s.io/kustomize/pkg/resource"
@@ -44,14 +44,14 @@ import (
type KustTarget struct {
kustomization *types.Kustomization
decoder ifc.Decoder
ldr loader.Loader
ldr ifc.Loader
fSys fs.FileSystem
tcfg *transformerconfig.TransformerConfig
}
// NewKustTarget returns a new instance of KustTarget primed with a Loader.
func NewKustTarget(
ldr loader.Loader, fSys fs.FileSystem,
ldr ifc.Loader, fSys fs.FileSystem,
tcfg *transformerconfig.TransformerConfig,
d ifc.Decoder) (*KustTarget, error) {
content, err := ldr.Load(constants.KustomizationFileName)
@@ -301,7 +301,7 @@ func (kt *KustTarget) resolveRefVars(m resmap.ResMap) (map[string]string, error)
return result, err
}
for _, v := range vars {
id := resource.NewResId(v.ObjRef.GVK(), v.ObjRef.Name)
id := resid.NewResId(v.ObjRef.GVK(), v.ObjRef.Name)
if r, found := m.DemandOneMatchForId(id); found {
s, err := r.GetFieldValue(v.FieldRef.FieldPath)
if err != nil {

View File

@@ -19,16 +19,17 @@ package target
import (
"encoding/base64"
"reflect"
"sigs.k8s.io/kustomize/internal/k8sdeps"
"strings"
"testing"
corev1 "k8s.io/api/core/v1"
"sigs.k8s.io/kustomize/internal/k8sdeps"
"sigs.k8s.io/kustomize/pkg/constants"
"sigs.k8s.io/kustomize/pkg/fs"
"sigs.k8s.io/kustomize/pkg/gvk"
"sigs.k8s.io/kustomize/pkg/ifc"
"sigs.k8s.io/kustomize/pkg/internal/loadertest"
"sigs.k8s.io/kustomize/pkg/loader"
"sigs.k8s.io/kustomize/pkg/resid"
"sigs.k8s.io/kustomize/pkg/resmap"
"sigs.k8s.io/kustomize/pkg/resource"
"sigs.k8s.io/kustomize/pkg/transformerconfig"
@@ -87,7 +88,7 @@ metadata:
]`
)
func makeLoader1(t *testing.T) loader.Loader {
func makeLoader1(t *testing.T) ifc.Loader {
ldr := loadertest.NewFakeLoader("/testpath")
err := ldr.AddFile("/testpath/"+constants.KustomizationFileName, []byte(kustomizationContent1))
if err != nil {
@@ -115,7 +116,7 @@ var ns = gvk.Gvk{Version: "v1", Kind: "Namespace"}
func TestResources1(t *testing.T) {
expected := resmap.ResMap{
resource.NewResIdWithPrefixNamespace(deploy, "dply1", "foo-", "ns1"): resource.NewResourceFromMap(
resid.NewResIdWithPrefixNamespace(deploy, "dply1", "foo-", "ns1"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "apps/v1",
"kind": "Deployment",
@@ -148,7 +149,7 @@ func TestResources1(t *testing.T) {
},
},
}),
resource.NewResIdWithPrefixNamespace(cmap, "literalConfigMap", "foo-", "ns1"): resource.NewResourceFromMap(
resid.NewResIdWithPrefixNamespace(cmap, "literalConfigMap", "foo-", "ns1"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "v1",
"kind": "ConfigMap",
@@ -166,8 +167,8 @@ func TestResources1(t *testing.T) {
"DB_USERNAME": "admin",
"DB_PASSWORD": "somepw",
},
}).SetBehavior(resource.BehaviorCreate),
resource.NewResIdWithPrefixNamespace(secret, "secret", "foo-", "ns1"): resource.NewResourceFromMap(
}).SetBehavior(ifc.BehaviorCreate),
resid.NewResIdWithPrefixNamespace(secret, "secret", "foo-", "ns1"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "v1",
"kind": "Secret",
@@ -186,8 +187,8 @@ func TestResources1(t *testing.T) {
"DB_USERNAME": base64.StdEncoding.EncodeToString([]byte("admin")),
"DB_PASSWORD": base64.StdEncoding.EncodeToString([]byte("somepw")),
},
}).SetBehavior(resource.BehaviorCreate),
resource.NewResIdWithPrefixNamespace(ns, "ns1", "foo-", ""): resource.NewResourceFromMap(
}).SetBehavior(ifc.BehaviorCreate),
resid.NewResIdWithPrefixNamespace(ns, "ns1", "foo-", ""): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "v1",
"kind": "Namespace",

View File

@@ -19,9 +19,10 @@ limitations under the License.
package transformerconfig
import (
"github.com/ghodss/yaml"
"log"
"sigs.k8s.io/kustomize/pkg/loader"
"github.com/ghodss/yaml"
"sigs.k8s.io/kustomize/pkg/ifc"
"sigs.k8s.io/kustomize/pkg/transformerconfig/defaultconfig"
)
@@ -68,7 +69,7 @@ func (t *TransformerConfig) Merge(input *TransformerConfig) *TransformerConfig {
}
// MakeTransformerConfigFromFiles returns a TranformerConfig object from a list of files
func MakeTransformerConfigFromFiles(ldr loader.Loader, paths []string) (*TransformerConfig, error) {
func MakeTransformerConfigFromFiles(ldr ifc.Loader, paths []string) (*TransformerConfig, error) {
result := &TransformerConfig{}
for _, path := range paths {
data, err := ldr.Load(path)

View File

@@ -17,6 +17,7 @@ limitations under the License.
package transformerconfig
import (
"sigs.k8s.io/kustomize/pkg/ifc"
"testing"
"reflect"
@@ -149,7 +150,7 @@ func TestMakeDefaultTransformerConfig(t *testing.T) {
_ = MakeDefaultTransformerConfig()
}
func makeFakeLoaderAndOutput() (loader.Loader, *TransformerConfig, *TransformerConfig) {
func makeFakeLoaderAndOutput() (ifc.Loader, *TransformerConfig, *TransformerConfig) {
transformerConfig := `
namePrefix:
- path: nameprefix/path

View File

@@ -18,6 +18,7 @@ package transformers
import (
"reflect"
"sigs.k8s.io/kustomize/pkg/resid"
"testing"
"sigs.k8s.io/kustomize/pkg/gvk"
@@ -28,7 +29,7 @@ import (
func TestImageTagTransformer(t *testing.T) {
m := resmap.ResMap{
resource.NewResId(deploy, "deploy1"): resource.NewResourceFromMap(
resid.NewResId(deploy, "deploy1"): resource.NewResourceFromMap(
map[string]interface{}{
"group": "apps",
"apiVersion": "v1",
@@ -59,7 +60,7 @@ func TestImageTagTransformer(t *testing.T) {
},
},
}),
resource.NewResId(gvk.Gvk{Kind: "randomKind"}, "random"): resource.NewResourceFromMap(
resid.NewResId(gvk.Gvk{Kind: "randomKind"}, "random"): resource.NewResourceFromMap(
map[string]interface{}{
"spec": map[string]interface{}{
"template": map[string]interface{}{
@@ -96,7 +97,7 @@ func TestImageTagTransformer(t *testing.T) {
}),
}
expected := resmap.ResMap{
resource.NewResId(deploy, "deploy1"): resource.NewResourceFromMap(
resid.NewResId(deploy, "deploy1"): resource.NewResourceFromMap(
map[string]interface{}{
"group": "apps",
"apiVersion": "v1",
@@ -127,7 +128,7 @@ func TestImageTagTransformer(t *testing.T) {
},
},
}),
resource.NewResId(gvk.Gvk{Kind: "randomKind"}, "random"): resource.NewResourceFromMap(
resid.NewResId(gvk.Gvk{Kind: "randomKind"}, "random"): resource.NewResourceFromMap(
map[string]interface{}{
"spec": map[string]interface{}{
"template": map[string]interface{}{

View File

@@ -21,6 +21,7 @@ import (
"testing"
"sigs.k8s.io/kustomize/pkg/gvk"
"sigs.k8s.io/kustomize/pkg/resid"
"sigs.k8s.io/kustomize/pkg/resmap"
"sigs.k8s.io/kustomize/pkg/resource"
"sigs.k8s.io/kustomize/pkg/transformerconfig"
@@ -43,7 +44,7 @@ var ingress = gvk.Gvk{Kind: "Ingress"}
func TestLabelsRun(t *testing.T) {
m := resmap.ResMap{
resource.NewResId(cmap, "cm1"): resource.NewResourceFromMap(
resid.NewResId(cmap, "cm1"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "v1",
"kind": "ConfigMap",
@@ -51,7 +52,7 @@ func TestLabelsRun(t *testing.T) {
"name": "cm1",
},
}),
resource.NewResId(deploy, "deploy1"): resource.NewResourceFromMap(
resid.NewResId(deploy, "deploy1"): resource.NewResourceFromMap(
map[string]interface{}{
"group": "apps",
"apiVersion": "v1",
@@ -77,7 +78,7 @@ func TestLabelsRun(t *testing.T) {
},
},
}),
resource.NewResId(service, "svc1"): resource.NewResourceFromMap(
resid.NewResId(service, "svc1"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "v1",
"kind": "Service",
@@ -93,7 +94,7 @@ func TestLabelsRun(t *testing.T) {
},
},
}),
resource.NewResId(job, "job1"): resource.NewResourceFromMap(
resid.NewResId(job, "job1"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "batch/v1",
"kind": "Job",
@@ -113,7 +114,7 @@ func TestLabelsRun(t *testing.T) {
},
},
}),
resource.NewResId(job, "job2"): resource.NewResourceFromMap(
resid.NewResId(job, "job2"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "batch/v1",
"kind": "Job",
@@ -138,7 +139,7 @@ func TestLabelsRun(t *testing.T) {
},
},
}),
resource.NewResId(cronjob, "cronjob1"): resource.NewResourceFromMap(
resid.NewResId(cronjob, "cronjob1"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "batch/v1beta1",
"kind": "CronJob",
@@ -163,7 +164,7 @@ func TestLabelsRun(t *testing.T) {
},
},
}),
resource.NewResId(cronjob, "cronjob2"): resource.NewResourceFromMap(
resid.NewResId(cronjob, "cronjob2"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "batch/v1beta1",
"kind": "CronJob",
@@ -195,7 +196,7 @@ func TestLabelsRun(t *testing.T) {
}),
}
expected := resmap.ResMap{
resource.NewResId(cmap, "cm1"): resource.NewResourceFromMap(
resid.NewResId(cmap, "cm1"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "v1",
"kind": "ConfigMap",
@@ -207,7 +208,7 @@ func TestLabelsRun(t *testing.T) {
},
},
}),
resource.NewResId(deploy, "deploy1"): resource.NewResourceFromMap(
resid.NewResId(deploy, "deploy1"): resource.NewResourceFromMap(
map[string]interface{}{
"group": "apps",
"apiVersion": "v1",
@@ -245,7 +246,7 @@ func TestLabelsRun(t *testing.T) {
},
},
}),
resource.NewResId(service, "svc1"): resource.NewResourceFromMap(
resid.NewResId(service, "svc1"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "v1",
"kind": "Service",
@@ -269,7 +270,7 @@ func TestLabelsRun(t *testing.T) {
},
},
}),
resource.NewResId(job, "job1"): resource.NewResourceFromMap(
resid.NewResId(job, "job1"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "batch/v1",
"kind": "Job",
@@ -299,7 +300,7 @@ func TestLabelsRun(t *testing.T) {
},
},
}),
resource.NewResId(job, "job2"): resource.NewResourceFromMap(
resid.NewResId(job, "job2"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "batch/v1",
"kind": "Job",
@@ -336,7 +337,7 @@ func TestLabelsRun(t *testing.T) {
},
},
}),
resource.NewResId(cronjob, "cronjob1"): resource.NewResourceFromMap(
resid.NewResId(cronjob, "cronjob1"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "batch/v1beta1",
"kind": "CronJob",
@@ -371,7 +372,7 @@ func TestLabelsRun(t *testing.T) {
},
},
}),
resource.NewResId(cronjob, "cronjob2"): resource.NewResourceFromMap(
resid.NewResId(cronjob, "cronjob2"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "batch/v1beta1",
"kind": "CronJob",
@@ -432,7 +433,7 @@ func TestLabelsRun(t *testing.T) {
func TestAnnotationsRun(t *testing.T) {
m := resmap.ResMap{
resource.NewResId(cmap, "cm1"): resource.NewResourceFromMap(
resid.NewResId(cmap, "cm1"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "v1",
"kind": "ConfigMap",
@@ -440,7 +441,7 @@ func TestAnnotationsRun(t *testing.T) {
"name": "cm1",
},
}),
resource.NewResId(deploy, "deploy1"): resource.NewResourceFromMap(
resid.NewResId(deploy, "deploy1"): resource.NewResourceFromMap(
map[string]interface{}{
"group": "apps",
"apiVersion": "v1",
@@ -466,7 +467,7 @@ func TestAnnotationsRun(t *testing.T) {
},
},
}),
resource.NewResId(service, "svc1"): resource.NewResourceFromMap(
resid.NewResId(service, "svc1"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "v1",
"kind": "Service",
@@ -484,7 +485,7 @@ func TestAnnotationsRun(t *testing.T) {
}),
}
expected := resmap.ResMap{
resource.NewResId(cmap, "cm1"): resource.NewResourceFromMap(
resid.NewResId(cmap, "cm1"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "v1",
"kind": "ConfigMap",
@@ -496,7 +497,7 @@ func TestAnnotationsRun(t *testing.T) {
},
},
}),
resource.NewResId(deploy, "deploy1"): resource.NewResourceFromMap(
resid.NewResId(deploy, "deploy1"): resource.NewResourceFromMap(
map[string]interface{}{
"group": "apps",
"apiVersion": "v1",
@@ -530,7 +531,7 @@ func TestAnnotationsRun(t *testing.T) {
},
},
}),
resource.NewResId(service, "svc1"): resource.NewResourceFromMap(
resid.NewResId(service, "svc1"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "v1",
"kind": "Service",

View File

@@ -20,13 +20,15 @@ import (
"reflect"
"testing"
"sigs.k8s.io/kustomize/pkg/ifc"
"sigs.k8s.io/kustomize/pkg/resid"
"sigs.k8s.io/kustomize/pkg/resmap"
"sigs.k8s.io/kustomize/pkg/resource"
)
func TestNameHashTransformer(t *testing.T) {
objs := resmap.ResMap{
resource.NewResId(cmap, "cm1"): resource.NewResourceFromMap(
resid.NewResId(cmap, "cm1"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "v1",
"kind": "ConfigMap",
@@ -34,7 +36,7 @@ func TestNameHashTransformer(t *testing.T) {
"name": "cm1",
},
}),
resource.NewResId(deploy, "deploy1"): resource.NewResourceFromMap(
resid.NewResId(deploy, "deploy1"): resource.NewResourceFromMap(
map[string]interface{}{
"group": "apps",
"apiVersion": "v1",
@@ -60,7 +62,7 @@ func TestNameHashTransformer(t *testing.T) {
},
},
}),
resource.NewResId(service, "svc1"): resource.NewResourceFromMap(
resid.NewResId(service, "svc1"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "v1",
"kind": "Service",
@@ -76,18 +78,18 @@ func TestNameHashTransformer(t *testing.T) {
},
},
}),
resource.NewResId(secret, "secret1"): resource.NewResourceFromMap(
resid.NewResId(secret, "secret1"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "v1",
"kind": "Secret",
"metadata": map[string]interface{}{
"name": "secret1",
},
}).SetBehavior(resource.BehaviorCreate),
}).SetBehavior(ifc.BehaviorCreate),
}
expected := resmap.ResMap{
resource.NewResId(cmap, "cm1"): resource.NewResourceFromMap(
resid.NewResId(cmap, "cm1"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "v1",
"kind": "ConfigMap",
@@ -95,7 +97,7 @@ func TestNameHashTransformer(t *testing.T) {
"name": "cm1",
},
}),
resource.NewResId(deploy, "deploy1"): resource.NewResourceFromMap(
resid.NewResId(deploy, "deploy1"): resource.NewResourceFromMap(
map[string]interface{}{
"group": "apps",
"apiVersion": "v1",
@@ -121,7 +123,7 @@ func TestNameHashTransformer(t *testing.T) {
},
},
}),
resource.NewResId(service, "svc1"): resource.NewResourceFromMap(
resid.NewResId(service, "svc1"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "v1",
"kind": "Service",
@@ -137,14 +139,14 @@ func TestNameHashTransformer(t *testing.T) {
},
},
}),
resource.NewResId(secret, "secret1"): resource.NewResourceFromMap(
resid.NewResId(secret, "secret1"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "v1",
"kind": "Secret",
"metadata": map[string]interface{}{
"name": "secret1-7kc45hd5f7",
},
}).SetBehavior(resource.BehaviorCreate),
}).SetBehavior(ifc.BehaviorCreate),
}
tran := NewNameHashTransformer()

View File

@@ -21,8 +21,8 @@ import (
"fmt"
"sigs.k8s.io/kustomize/pkg/gvk"
"sigs.k8s.io/kustomize/pkg/resid"
"sigs.k8s.io/kustomize/pkg/resmap"
"sigs.k8s.io/kustomize/pkg/resource"
"sigs.k8s.io/kustomize/pkg/transformerconfig"
)
@@ -89,7 +89,7 @@ func (o *nameReferenceTransformer) updateNameReference(
}
}
func (o *nameReferenceTransformer) detectConflict(id resource.ResId, m resmap.ResMap, name string) error {
func (o *nameReferenceTransformer) detectConflict(id resid.ResId, m resmap.ResMap, name string) error {
matchedIds := m.FindByGVKN(id)
if len(matchedIds) > 1 {
return fmt.Errorf("detected conflicts when resolving name references %s:\n%v", name, matchedIds)

View File

@@ -20,6 +20,7 @@ import (
"reflect"
"testing"
"sigs.k8s.io/kustomize/pkg/resid"
"sigs.k8s.io/kustomize/pkg/resmap"
"sigs.k8s.io/kustomize/pkg/resource"
"sigs.k8s.io/kustomize/pkg/transformerconfig"
@@ -27,7 +28,7 @@ import (
func TestNameReferenceRun(t *testing.T) {
m := resmap.ResMap{
resource.NewResId(cmap, "cm1"): resource.NewResourceFromMap(
resid.NewResId(cmap, "cm1"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "v1",
"kind": "ConfigMap",
@@ -35,7 +36,7 @@ func TestNameReferenceRun(t *testing.T) {
"name": "someprefix-cm1-somehash",
},
}),
resource.NewResId(cmap, "cm2"): resource.NewResourceFromMap(
resid.NewResId(cmap, "cm2"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "v1",
"kind": "ConfigMap",
@@ -43,7 +44,7 @@ func TestNameReferenceRun(t *testing.T) {
"name": "someprefix-cm2-somehash",
},
}),
resource.NewResId(secret, "secret1"): resource.NewResourceFromMap(
resid.NewResId(secret, "secret1"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "v1",
"kind": "Secret",
@@ -51,7 +52,7 @@ func TestNameReferenceRun(t *testing.T) {
"name": "someprefix-secret1-somehash",
},
}),
resource.NewResId(pvc, "claim1"): resource.NewResourceFromMap(
resid.NewResId(pvc, "claim1"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "v1",
"kind": "PersistentVolumeClaim",
@@ -59,7 +60,7 @@ func TestNameReferenceRun(t *testing.T) {
"name": "someprefix-claim1",
},
}),
resource.NewResId(ingress, "ingress1"): resource.NewResourceFromMap(
resid.NewResId(ingress, "ingress1"): resource.NewResourceFromMap(
map[string]interface{}{
"group": "extensions",
"apiVersion": "v1beta1",
@@ -79,7 +80,7 @@ func TestNameReferenceRun(t *testing.T) {
},
},
),
resource.NewResId(deploy, "deploy1"): resource.NewResourceFromMap(
resid.NewResId(deploy, "deploy1"): resource.NewResourceFromMap(
map[string]interface{}{
"group": "apps",
"apiVersion": "v1",
@@ -157,7 +158,7 @@ func TestNameReferenceRun(t *testing.T) {
},
},
}),
resource.NewResId(statefulset, "statefulset1"): resource.NewResourceFromMap(
resid.NewResId(statefulset, "statefulset1"): resource.NewResourceFromMap(
map[string]interface{}{
"group": "apps",
"apiVersion": "v1",
@@ -194,7 +195,7 @@ func TestNameReferenceRun(t *testing.T) {
expected[k] = v
}
expected[resource.NewResId(deploy, "deploy1")] = resource.NewResourceFromMap(
expected[resid.NewResId(deploy, "deploy1")] = resource.NewResourceFromMap(
map[string]interface{}{
"group": "apps",
"apiVersion": "v1",
@@ -272,7 +273,7 @@ func TestNameReferenceRun(t *testing.T) {
},
},
})
expected[resource.NewResId(statefulset, "statefulset1")] = resource.NewResourceFromMap(
expected[resid.NewResId(statefulset, "statefulset1")] = resource.NewResourceFromMap(
map[string]interface{}{
"group": "apps",
"apiVersion": "v1",
@@ -302,7 +303,7 @@ func TestNameReferenceRun(t *testing.T) {
},
},
})
expected[resource.NewResId(ingress, "ingress1")] = resource.NewResourceFromMap(
expected[resid.NewResId(ingress, "ingress1")] = resource.NewResourceFromMap(
map[string]interface{}{
"group": "extensions",
"apiVersion": "v1beta1",

View File

@@ -20,6 +20,7 @@ import (
"reflect"
"testing"
"sigs.k8s.io/kustomize/pkg/resid"
"sigs.k8s.io/kustomize/pkg/resmap"
"sigs.k8s.io/kustomize/pkg/resource"
"sigs.k8s.io/kustomize/pkg/transformerconfig"
@@ -27,7 +28,7 @@ import (
func TestNamespaceRun(t *testing.T) {
m := resmap.ResMap{
resource.NewResId(cmap, "cm1"): resource.NewResourceFromMap(
resid.NewResId(cmap, "cm1"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "v1",
"kind": "ConfigMap",
@@ -35,7 +36,7 @@ func TestNamespaceRun(t *testing.T) {
"name": "cm1",
},
}),
resource.NewResId(cmap, "cm2"): resource.NewResourceFromMap(
resid.NewResId(cmap, "cm2"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "v1",
"kind": "ConfigMap",
@@ -44,7 +45,7 @@ func TestNamespaceRun(t *testing.T) {
"namespace": "foo",
},
}),
resource.NewResId(ns, "ns1"): resource.NewResourceFromMap(
resid.NewResId(ns, "ns1"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "v1",
"kind": "Namespace",
@@ -52,7 +53,7 @@ func TestNamespaceRun(t *testing.T) {
"name": "ns1",
},
}),
resource.NewResId(sa, "default"): resource.NewResourceFromMap(
resid.NewResId(sa, "default"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "v1",
"kind": "ServiceAccount",
@@ -61,7 +62,7 @@ func TestNamespaceRun(t *testing.T) {
"namespace": "system",
},
}),
resource.NewResId(sa, "service-account"): resource.NewResourceFromMap(
resid.NewResId(sa, "service-account"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "v1",
"kind": "ServiceAccount",
@@ -70,7 +71,7 @@ func TestNamespaceRun(t *testing.T) {
"namespace": "system",
},
}),
resource.NewResId(crb, "crb"): resource.NewResourceFromMap(
resid.NewResId(crb, "crb"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "rbac.authorization.k8s.io/v1",
"kind": "ClusterRoleBinding",
@@ -95,7 +96,7 @@ func TestNamespaceRun(t *testing.T) {
},
},
}),
resource.NewResId(crd, "crd"): resource.NewResourceFromMap(
resid.NewResId(crd, "crd"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "apiextensions.k8s.io/v1beta1",
"kind": "CustomResourceDefinition",
@@ -105,7 +106,7 @@ func TestNamespaceRun(t *testing.T) {
}),
}
expected := resmap.ResMap{
resource.NewResIdWithPrefixNamespace(ns, "ns1", "", ""): resource.NewResourceFromMap(
resid.NewResIdWithPrefixNamespace(ns, "ns1", "", ""): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "v1",
"kind": "Namespace",
@@ -113,7 +114,7 @@ func TestNamespaceRun(t *testing.T) {
"name": "ns1",
},
}),
resource.NewResIdWithPrefixNamespace(cmap, "cm1", "", "test"): resource.NewResourceFromMap(
resid.NewResIdWithPrefixNamespace(cmap, "cm1", "", "test"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "v1",
"kind": "ConfigMap",
@@ -122,7 +123,7 @@ func TestNamespaceRun(t *testing.T) {
"namespace": "test",
},
}),
resource.NewResIdWithPrefixNamespace(cmap, "cm2", "", "test"): resource.NewResourceFromMap(
resid.NewResIdWithPrefixNamespace(cmap, "cm2", "", "test"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "v1",
"kind": "ConfigMap",
@@ -131,7 +132,7 @@ func TestNamespaceRun(t *testing.T) {
"namespace": "test",
},
}),
resource.NewResIdWithPrefixNamespace(sa, "default", "", "test"): resource.NewResourceFromMap(
resid.NewResIdWithPrefixNamespace(sa, "default", "", "test"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "v1",
"kind": "ServiceAccount",
@@ -140,7 +141,7 @@ func TestNamespaceRun(t *testing.T) {
"namespace": "test",
},
}),
resource.NewResIdWithPrefixNamespace(sa, "service-account", "", "test"): resource.NewResourceFromMap(
resid.NewResIdWithPrefixNamespace(sa, "service-account", "", "test"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "v1",
"kind": "ServiceAccount",
@@ -149,7 +150,7 @@ func TestNamespaceRun(t *testing.T) {
"namespace": "test",
},
}),
resource.NewResId(crb, "crb"): resource.NewResourceFromMap(
resid.NewResId(crb, "crb"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "rbac.authorization.k8s.io/v1",
"kind": "ClusterRoleBinding",
@@ -174,7 +175,7 @@ func TestNamespaceRun(t *testing.T) {
},
},
}),
resource.NewResId(crd, "crd"): resource.NewResourceFromMap(
resid.NewResId(crd, "crd"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "apiextensions.k8s.io/v1beta1",
"kind": "CustomResourceDefinition",

View File

@@ -21,13 +21,14 @@ import (
"strings"
"testing"
"sigs.k8s.io/kustomize/pkg/resid"
"sigs.k8s.io/kustomize/pkg/resmap"
"sigs.k8s.io/kustomize/pkg/resource"
)
func TestOverlayRun(t *testing.T) {
base := resmap.ResMap{
resource.NewResId(deploy, "deploy1"): resource.NewResourceFromMap(
resid.NewResId(deploy, "deploy1"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "apps/v1",
"kind": "Deployment",
@@ -87,7 +88,7 @@ func TestOverlayRun(t *testing.T) {
),
}
expected := resmap.ResMap{
resource.NewResId(deploy, "deploy1"): resource.NewResourceFromMap(
resid.NewResId(deploy, "deploy1"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "apps/v1",
"kind": "Deployment",
@@ -136,7 +137,7 @@ func TestOverlayRun(t *testing.T) {
func TestMultiplePatches(t *testing.T) {
base := resmap.ResMap{
resource.NewResId(deploy, "deploy1"): resource.NewResourceFromMap(
resid.NewResId(deploy, "deploy1"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "apps/v1",
"kind": "Deployment",
@@ -215,7 +216,7 @@ func TestMultiplePatches(t *testing.T) {
),
}
expected := resmap.ResMap{
resource.NewResId(deploy, "deploy1"): resource.NewResourceFromMap(
resid.NewResId(deploy, "deploy1"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "apps/v1",
"kind": "Deployment",
@@ -266,7 +267,7 @@ func TestMultiplePatches(t *testing.T) {
func TestMultiplePatchesWithConflict(t *testing.T) {
base := resmap.ResMap{
resource.NewResId(deploy, "deploy1"): resource.NewResourceFromMap(
resid.NewResId(deploy, "deploy1"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "apps/v1",
"kind": "Deployment",
@@ -351,7 +352,7 @@ func TestMultiplePatchesWithConflict(t *testing.T) {
func TestNoSchemaOverlayRun(t *testing.T) {
base := resmap.ResMap{
resource.NewResId(foo, "my-foo"): resource.NewResourceFromMap(
resid.NewResId(foo, "my-foo"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "example.com/v1",
"kind": "Foo",
@@ -383,7 +384,7 @@ func TestNoSchemaOverlayRun(t *testing.T) {
),
}
expected := resmap.ResMap{
resource.NewResId(foo, "my-foo"): resource.NewResourceFromMap(
resid.NewResId(foo, "my-foo"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "example.com/v1",
"kind": "Foo",
@@ -414,7 +415,7 @@ func TestNoSchemaOverlayRun(t *testing.T) {
func TestNoSchemaMultiplePatches(t *testing.T) {
base := resmap.ResMap{
resource.NewResId(foo, "my-foo"): resource.NewResourceFromMap(
resid.NewResId(foo, "my-foo"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "example.com/v1",
"kind": "Foo",
@@ -463,7 +464,7 @@ func TestNoSchemaMultiplePatches(t *testing.T) {
),
}
expected := resmap.ResMap{
resource.NewResId(foo, "my-foo"): resource.NewResourceFromMap(
resid.NewResId(foo, "my-foo"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "example.com/v1",
"kind": "Foo",
@@ -498,7 +499,7 @@ func TestNoSchemaMultiplePatches(t *testing.T) {
func TestNoSchemaMultiplePatchesWithConflict(t *testing.T) {
base := resmap.ResMap{
resource.NewResId(foo, "my-foo"): resource.NewResourceFromMap(
resid.NewResId(foo, "my-foo"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "example.com/v1",
"kind": "Foo",

View File

@@ -20,6 +20,7 @@ import (
"reflect"
"testing"
"sigs.k8s.io/kustomize/pkg/resid"
"sigs.k8s.io/kustomize/pkg/resmap"
"sigs.k8s.io/kustomize/pkg/resource"
"sigs.k8s.io/kustomize/pkg/transformerconfig"
@@ -27,7 +28,7 @@ import (
func TestPrefixNameRun(t *testing.T) {
m := resmap.ResMap{
resource.NewResId(cmap, "cm1"): resource.NewResourceFromMap(
resid.NewResId(cmap, "cm1"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "v1",
"kind": "ConfigMap",
@@ -35,7 +36,7 @@ func TestPrefixNameRun(t *testing.T) {
"name": "cm1",
},
}),
resource.NewResId(cmap, "cm2"): resource.NewResourceFromMap(
resid.NewResId(cmap, "cm2"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "v1",
"kind": "ConfigMap",
@@ -43,7 +44,7 @@ func TestPrefixNameRun(t *testing.T) {
"name": "cm2",
},
}),
resource.NewResId(crd, "crd"): resource.NewResourceFromMap(
resid.NewResId(crd, "crd"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "apiextensions.k8s.io/v1beta1",
"kind": "CustomResourceDefinition",
@@ -53,7 +54,7 @@ func TestPrefixNameRun(t *testing.T) {
}),
}
expected := resmap.ResMap{
resource.NewResIdWithPrefix(cmap, "cm1", "someprefix-"): resource.NewResourceFromMap(
resid.NewResIdWithPrefix(cmap, "cm1", "someprefix-"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "v1",
"kind": "ConfigMap",
@@ -61,7 +62,7 @@ func TestPrefixNameRun(t *testing.T) {
"name": "someprefix-cm1",
},
}),
resource.NewResIdWithPrefix(cmap, "cm2", "someprefix-"): resource.NewResourceFromMap(
resid.NewResIdWithPrefix(cmap, "cm2", "someprefix-"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "v1",
"kind": "ConfigMap",
@@ -69,7 +70,7 @@ func TestPrefixNameRun(t *testing.T) {
"name": "someprefix-cm2",
},
}),
resource.NewResId(crd, "crd"): resource.NewResourceFromMap(
resid.NewResId(crd, "crd"): resource.NewResourceFromMap(
map[string]interface{}{
"apiVersion": "apiextensions.k8s.io/v1beta1",
"kind": "CustomResourceDefinition",