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

View File

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

View File

@@ -21,8 +21,8 @@ import (
"testing" "testing"
"sigs.k8s.io/kustomize/pkg/gvk" "sigs.k8s.io/kustomize/pkg/gvk"
"sigs.k8s.io/kustomize/pkg/ifc"
"sigs.k8s.io/kustomize/pkg/internal/loadertest" "sigs.k8s.io/kustomize/pkg/internal/loadertest"
"sigs.k8s.io/kustomize/pkg/loader"
"sigs.k8s.io/kustomize/pkg/transformerconfig" "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") ldr := loadertest.NewFakeLoader("/testpath")
err := ldr.AddFile("/testpath/crd.json", []byte(crdContent)) err := ldr.AddFile("/testpath/crd.json", []byte(crdContent))
if err != nil { if err != nil {

View File

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

View File

@@ -31,3 +31,15 @@ type Validator interface {
MakeLabelValidator() func(map[string]string) error MakeLabelValidator() func(map[string]string) error
ValidateNamespace(string) []string 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 ( import (
"sigs.k8s.io/kustomize/pkg/fs" "sigs.k8s.io/kustomize/pkg/fs"
"sigs.k8s.io/kustomize/pkg/ifc"
"sigs.k8s.io/kustomize/pkg/loader" "sigs.k8s.io/kustomize/pkg/loader"
) )
// FakeLoader encapsulates the delegate Loader and the fake file system. // FakeLoader encapsulates the delegate Loader and the fake file system.
type FakeLoader struct { type FakeLoader struct {
fs fs.FileSystem fs fs.FileSystem
delegate loader.Loader delegate ifc.Loader
} }
// NewFakeLoader returns a Loader that delegates calls, and encapsulates // 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. // 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) l, err := f.delegate.New(newRoot)
if err != nil { if err != nil {
return nil, err return nil, err

View File

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

View File

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

View File

@@ -20,25 +20,14 @@ package loader
import ( import (
"fmt" "fmt"
"path/filepath" "path/filepath"
"sigs.k8s.io/kustomize/pkg/ifc"
"sigs.k8s.io/kustomize/pkg/fs" "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 // NewLoader returns a Loader given a target
// The target can be a local disk directory or a github Url // 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) { if !isValidLoaderPath(target, r) {
return nil, fmt.Errorf("Not valid path: root='%s', loc='%s'\n", r, target) return nil, fmt.Errorf("Not valid path: root='%s', loc='%s'\n", r, target)
} }

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -19,14 +19,15 @@ package transformer
import ( import (
"fmt" "fmt"
"sigs.k8s.io/kustomize/pkg/resid"
"sigs.k8s.io/kustomize/pkg/resmap" "sigs.k8s.io/kustomize/pkg/resmap"
"sigs.k8s.io/kustomize/pkg/resource" "sigs.k8s.io/kustomize/pkg/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) matchedIds := m.FindByGVKN(targetId)
if targetId.Namespace() != "" { if targetId.Namespace() != "" {
var ids []resource.ResId var ids []resid.ResId
for _, id := range matchedIds { for _, id := range matchedIds {
if id.Namespace() == targetId.Namespace() { if id.Namespace() == targetId.Namespace() {
ids = append(ids, id) ids = append(ids, id)

View File

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

View File

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

View File

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

View File

@@ -23,7 +23,9 @@ import (
"sigs.k8s.io/kustomize/pkg/configmapandsecret" "sigs.k8s.io/kustomize/pkg/configmapandsecret"
"sigs.k8s.io/kustomize/pkg/fs" "sigs.k8s.io/kustomize/pkg/fs"
"sigs.k8s.io/kustomize/pkg/gvk" "sigs.k8s.io/kustomize/pkg/gvk"
"sigs.k8s.io/kustomize/pkg/ifc"
"sigs.k8s.io/kustomize/pkg/internal/loadertest" "sigs.k8s.io/kustomize/pkg/internal/loadertest"
"sigs.k8s.io/kustomize/pkg/resid"
"sigs.k8s.io/kustomize/pkg/resource" "sigs.k8s.io/kustomize/pkg/resource"
"sigs.k8s.io/kustomize/pkg/types" "sigs.k8s.io/kustomize/pkg/types"
) )
@@ -55,7 +57,7 @@ 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.NewResourceFromMap( resid.NewResId(cmap, "envConfigMap"): resource.NewResourceFromMap(
map[string]interface{}{ map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "ConfigMap", "kind": "ConfigMap",
@@ -66,7 +68,7 @@ func TestNewFromConfigMaps(t *testing.T) {
"DB_USERNAME": "admin", "DB_USERNAME": "admin",
"DB_PASSWORD": "somepw", "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", 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.NewResourceFromMap( resid.NewResId(cmap, "fileConfigMap"): resource.NewResourceFromMap(
map[string]interface{}{ map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "ConfigMap", "kind": "ConfigMap",
@@ -93,7 +95,7 @@ func TestNewFromConfigMaps(t *testing.T) {
BAR=baz BAR=baz
`, `,
}, },
}).SetBehavior(resource.BehaviorCreate), }).SetBehavior(ifc.BehaviorCreate),
}, },
}, },
{ {
@@ -107,7 +109,7 @@ BAR=baz
}, },
}, },
expected: ResMap{ expected: ResMap{
resource.NewResId(cmap, "literalConfigMap"): resource.NewResourceFromMap( resid.NewResId(cmap, "literalConfigMap"): resource.NewResourceFromMap(
map[string]interface{}{ map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "ConfigMap", "kind": "ConfigMap",
@@ -120,7 +122,7 @@ BAR=baz
"c": "Good Morning", "c": "Good Morning",
"d": "false", "d": "false",
}, },
}).SetBehavior(resource.BehaviorCreate), }).SetBehavior(ifc.BehaviorCreate),
}, },
}, },
// TODO: add testcase for data coming from multiple sources like // TODO: add testcase for data coming from multiple sources like

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -25,6 +25,8 @@ import (
"sigs.k8s.io/kustomize/pkg/configmapandsecret" "sigs.k8s.io/kustomize/pkg/configmapandsecret"
"sigs.k8s.io/kustomize/pkg/fs" "sigs.k8s.io/kustomize/pkg/fs"
"sigs.k8s.io/kustomize/pkg/gvk" "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/resource"
"sigs.k8s.io/kustomize/pkg/types" "sigs.k8s.io/kustomize/pkg/types"
) )
@@ -61,7 +63,7 @@ func TestNewResMapFromSecretArgs(t *testing.T) {
} }
expected := ResMap{ expected := ResMap{
resource.NewResId(secret, "apple"): resource.NewResourceFromMap( resid.NewResId(secret, "apple"): resource.NewResourceFromMap(
map[string]interface{}{ map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "Secret", "kind": "Secret",
@@ -73,8 +75,8 @@ 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")),
}, },
}).SetBehavior(resource.BehaviorCreate), }).SetBehavior(ifc.BehaviorCreate),
resource.NewResId(secret, "peanuts"): resource.NewResourceFromMap( resid.NewResId(secret, "peanuts"): resource.NewResourceFromMap(
map[string]interface{}{ map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "Secret", "kind": "Secret",
@@ -86,7 +88,7 @@ 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")),
}, },
}).SetBehavior(resource.BehaviorCreate), }).SetBehavior(ifc.BehaviorCreate),
} }
if !reflect.DeepEqual(actual, expected) { if !reflect.DeepEqual(actual, expected) {
t.Fatalf("%#v\ndoesn't match expected:\n%#v", 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/gvk"
"sigs.k8s.io/kustomize/pkg/ifc" "sigs.k8s.io/kustomize/pkg/ifc"
internal "sigs.k8s.io/kustomize/pkg/internal/error" 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/patch"
"sigs.k8s.io/kustomize/pkg/resid"
) )
// Resource is an "Unstructured" (json/map form) Kubernetes API resource object // Resource is an "Unstructured" (json/map form) Kubernetes API resource object
// paired with a GenerationBehavior. // paired with a GenerationBehavior.
type Resource struct { type Resource struct {
unstructured.Unstructured unstructured.Unstructured
b GenerationBehavior b ifc.GenerationBehavior
} }
// NewResourceWithBehavior returns a new instance of Resource. // 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). // Convert obj to a byte stream, then convert that to JSON (Unstructured).
marshaled, err := json.Marshal(obj) marshaled, err := json.Marshal(obj)
if err != nil { if err != nil {
@@ -61,13 +61,13 @@ func NewResourceFromMap(m map[string]interface{}) *Resource {
// NewResourceFromUnstruct returns a new instance of Resource. // NewResourceFromUnstruct returns a new instance of Resource.
func NewResourceFromUnstruct(u unstructured.Unstructured) *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 // NewResourceSliceFromPatches returns a slice of resources given a patch path
// slice from a kustomization file. // slice from a kustomization file.
func NewResourceSliceFromPatches( func NewResourceSliceFromPatches(
ldr loader.Loader, paths []patch.StrategicMerge, ldr ifc.Loader, paths []patch.StrategicMerge,
decoder ifc.Decoder) ([]*Resource, error) { decoder ifc.Decoder) ([]*Resource, error) {
var result []*Resource var result []*Resource
for _, path := range paths { for _, path := range paths {
@@ -117,24 +117,24 @@ func (r *Resource) String() string {
} }
// Behavior returns the behavior for the resource. // Behavior returns the behavior for the resource.
func (r *Resource) Behavior() GenerationBehavior { func (r *Resource) Behavior() ifc.GenerationBehavior {
return r.b return r.b
} }
// SetBehavior changes the resource to the new behavior // 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 r.b = b
return r return r
} }
// IsGenerated checks if the resource is generated from a generator // IsGenerated checks if the resource is generated from a generator
func (r *Resource) IsGenerated() bool { func (r *Resource) IsGenerated() bool {
return r.b != BehaviorUnspecified return r.b != ifc.BehaviorUnspecified
} }
// Id returns the ResId for the resource. // Id returns the ResId for the resource.
func (r *Resource) Id() ResId { func (r *Resource) Id() resid.ResId {
return NewResId(gvk.FromSchemaGvk(r.GroupVersionKind()), r.GetName()) return resid.NewResId(gvk.FromSchemaGvk(r.GroupVersionKind()), r.GetName())
} }
// Merge performs merge with other resource. // Merge performs merge with other resource.

View File

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

View File

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

View File

@@ -19,9 +19,10 @@ limitations under the License.
package transformerconfig package transformerconfig
import ( import (
"github.com/ghodss/yaml"
"log" "log"
"sigs.k8s.io/kustomize/pkg/loader"
"github.com/ghodss/yaml"
"sigs.k8s.io/kustomize/pkg/ifc"
"sigs.k8s.io/kustomize/pkg/transformerconfig/defaultconfig" "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 // 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{} result := &TransformerConfig{}
for _, path := range paths { for _, path := range paths {
data, err := ldr.Load(path) data, err := ldr.Load(path)

View File

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

View File

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

View File

@@ -21,6 +21,7 @@ import (
"testing" "testing"
"sigs.k8s.io/kustomize/pkg/gvk" "sigs.k8s.io/kustomize/pkg/gvk"
"sigs.k8s.io/kustomize/pkg/resid"
"sigs.k8s.io/kustomize/pkg/resmap" "sigs.k8s.io/kustomize/pkg/resmap"
"sigs.k8s.io/kustomize/pkg/resource" "sigs.k8s.io/kustomize/pkg/resource"
"sigs.k8s.io/kustomize/pkg/transformerconfig" "sigs.k8s.io/kustomize/pkg/transformerconfig"
@@ -43,7 +44,7 @@ var ingress = gvk.Gvk{Kind: "Ingress"}
func TestLabelsRun(t *testing.T) { func TestLabelsRun(t *testing.T) {
m := resmap.ResMap{ m := resmap.ResMap{
resource.NewResId(cmap, "cm1"): resource.NewResourceFromMap( resid.NewResId(cmap, "cm1"): resource.NewResourceFromMap(
map[string]interface{}{ map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "ConfigMap", "kind": "ConfigMap",
@@ -51,7 +52,7 @@ func TestLabelsRun(t *testing.T) {
"name": "cm1", "name": "cm1",
}, },
}), }),
resource.NewResId(deploy, "deploy1"): resource.NewResourceFromMap( resid.NewResId(deploy, "deploy1"): resource.NewResourceFromMap(
map[string]interface{}{ map[string]interface{}{
"group": "apps", "group": "apps",
"apiVersion": "v1", "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{}{ map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "Service", "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{}{ map[string]interface{}{
"apiVersion": "batch/v1", "apiVersion": "batch/v1",
"kind": "Job", "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{}{ map[string]interface{}{
"apiVersion": "batch/v1", "apiVersion": "batch/v1",
"kind": "Job", "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{}{ map[string]interface{}{
"apiVersion": "batch/v1beta1", "apiVersion": "batch/v1beta1",
"kind": "CronJob", "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{}{ map[string]interface{}{
"apiVersion": "batch/v1beta1", "apiVersion": "batch/v1beta1",
"kind": "CronJob", "kind": "CronJob",
@@ -195,7 +196,7 @@ func TestLabelsRun(t *testing.T) {
}), }),
} }
expected := resmap.ResMap{ expected := resmap.ResMap{
resource.NewResId(cmap, "cm1"): resource.NewResourceFromMap( resid.NewResId(cmap, "cm1"): resource.NewResourceFromMap(
map[string]interface{}{ map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "ConfigMap", "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{}{ map[string]interface{}{
"group": "apps", "group": "apps",
"apiVersion": "v1", "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{}{ map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "Service", "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{}{ map[string]interface{}{
"apiVersion": "batch/v1", "apiVersion": "batch/v1",
"kind": "Job", "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{}{ map[string]interface{}{
"apiVersion": "batch/v1", "apiVersion": "batch/v1",
"kind": "Job", "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{}{ map[string]interface{}{
"apiVersion": "batch/v1beta1", "apiVersion": "batch/v1beta1",
"kind": "CronJob", "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{}{ map[string]interface{}{
"apiVersion": "batch/v1beta1", "apiVersion": "batch/v1beta1",
"kind": "CronJob", "kind": "CronJob",
@@ -432,7 +433,7 @@ func TestLabelsRun(t *testing.T) {
func TestAnnotationsRun(t *testing.T) { func TestAnnotationsRun(t *testing.T) {
m := resmap.ResMap{ m := resmap.ResMap{
resource.NewResId(cmap, "cm1"): resource.NewResourceFromMap( resid.NewResId(cmap, "cm1"): resource.NewResourceFromMap(
map[string]interface{}{ map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "ConfigMap", "kind": "ConfigMap",
@@ -440,7 +441,7 @@ func TestAnnotationsRun(t *testing.T) {
"name": "cm1", "name": "cm1",
}, },
}), }),
resource.NewResId(deploy, "deploy1"): resource.NewResourceFromMap( resid.NewResId(deploy, "deploy1"): resource.NewResourceFromMap(
map[string]interface{}{ map[string]interface{}{
"group": "apps", "group": "apps",
"apiVersion": "v1", "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{}{ map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "Service", "kind": "Service",
@@ -484,7 +485,7 @@ func TestAnnotationsRun(t *testing.T) {
}), }),
} }
expected := resmap.ResMap{ expected := resmap.ResMap{
resource.NewResId(cmap, "cm1"): resource.NewResourceFromMap( resid.NewResId(cmap, "cm1"): resource.NewResourceFromMap(
map[string]interface{}{ map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "ConfigMap", "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{}{ map[string]interface{}{
"group": "apps", "group": "apps",
"apiVersion": "v1", "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{}{ map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "Service", "kind": "Service",

View File

@@ -20,13 +20,15 @@ import (
"reflect" "reflect"
"testing" "testing"
"sigs.k8s.io/kustomize/pkg/ifc"
"sigs.k8s.io/kustomize/pkg/resid"
"sigs.k8s.io/kustomize/pkg/resmap" "sigs.k8s.io/kustomize/pkg/resmap"
"sigs.k8s.io/kustomize/pkg/resource" "sigs.k8s.io/kustomize/pkg/resource"
) )
func TestNameHashTransformer(t *testing.T) { func TestNameHashTransformer(t *testing.T) {
objs := resmap.ResMap{ objs := resmap.ResMap{
resource.NewResId(cmap, "cm1"): resource.NewResourceFromMap( resid.NewResId(cmap, "cm1"): resource.NewResourceFromMap(
map[string]interface{}{ map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "ConfigMap", "kind": "ConfigMap",
@@ -34,7 +36,7 @@ func TestNameHashTransformer(t *testing.T) {
"name": "cm1", "name": "cm1",
}, },
}), }),
resource.NewResId(deploy, "deploy1"): resource.NewResourceFromMap( resid.NewResId(deploy, "deploy1"): resource.NewResourceFromMap(
map[string]interface{}{ map[string]interface{}{
"group": "apps", "group": "apps",
"apiVersion": "v1", "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{}{ map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "Service", "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{}{ map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "Secret", "kind": "Secret",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
"name": "secret1", "name": "secret1",
}, },
}).SetBehavior(resource.BehaviorCreate), }).SetBehavior(ifc.BehaviorCreate),
} }
expected := resmap.ResMap{ expected := resmap.ResMap{
resource.NewResId(cmap, "cm1"): resource.NewResourceFromMap( resid.NewResId(cmap, "cm1"): resource.NewResourceFromMap(
map[string]interface{}{ map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "ConfigMap", "kind": "ConfigMap",
@@ -95,7 +97,7 @@ func TestNameHashTransformer(t *testing.T) {
"name": "cm1", "name": "cm1",
}, },
}), }),
resource.NewResId(deploy, "deploy1"): resource.NewResourceFromMap( resid.NewResId(deploy, "deploy1"): resource.NewResourceFromMap(
map[string]interface{}{ map[string]interface{}{
"group": "apps", "group": "apps",
"apiVersion": "v1", "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{}{ map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "Service", "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{}{ 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",
}, },
}).SetBehavior(resource.BehaviorCreate), }).SetBehavior(ifc.BehaviorCreate),
} }
tran := NewNameHashTransformer() tran := NewNameHashTransformer()

View File

@@ -21,8 +21,8 @@ import (
"fmt" "fmt"
"sigs.k8s.io/kustomize/pkg/gvk" "sigs.k8s.io/kustomize/pkg/gvk"
"sigs.k8s.io/kustomize/pkg/resid"
"sigs.k8s.io/kustomize/pkg/resmap" "sigs.k8s.io/kustomize/pkg/resmap"
"sigs.k8s.io/kustomize/pkg/resource"
"sigs.k8s.io/kustomize/pkg/transformerconfig" "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) matchedIds := m.FindByGVKN(id)
if len(matchedIds) > 1 { if len(matchedIds) > 1 {
return fmt.Errorf("detected conflicts when resolving name references %s:\n%v", name, matchedIds) return fmt.Errorf("detected conflicts when resolving name references %s:\n%v", name, matchedIds)

View File

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

View File

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

View File

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

View File

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