mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-06-12 09:24:23 +00:00
WIP residPackage
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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{}{
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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{}{
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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{}{
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package resource
|
||||
package resid
|
||||
|
||||
import (
|
||||
"strings"
|
||||
@@ -1,4 +1,4 @@
|
||||
package resource
|
||||
package resid
|
||||
|
||||
import (
|
||||
"testing"
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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{}
|
||||
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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")
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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{}{
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
BIN
vendor/github.com/hashicorp/go-getter/test-fixtures/basic-hg/.hg/dirstate
generated
vendored
BIN
vendor/github.com/hashicorp/go-getter/test-fixtures/basic-hg/.hg/dirstate
generated
vendored
Binary file not shown.
Reference in New Issue
Block a user