mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-06-12 01:14:22 +00:00
WIP residPackage
This commit is contained in:
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -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
|
||||||
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -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{}{
|
||||||
|
|||||||
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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{}{
|
||||||
|
|||||||
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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{}{
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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"
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package resource
|
package resid
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"testing"
|
"testing"
|
||||||
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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{}
|
||||||
|
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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{}{
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
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