Skip to content

Commit

Permalink
Move kv loader code to public package.
Browse files Browse the repository at this point in the history
  • Loading branch information
monopole committed Oct 15, 2019
1 parent 3a15f45 commit 4e9d42f
Show file tree
Hide file tree
Showing 42 changed files with 222 additions and 166 deletions.
15 changes: 1 addition & 14 deletions internal/loadertest/fakeloader.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,6 @@ import (
"sigs.k8s.io/kustomize/v3/filesys"
"sigs.k8s.io/kustomize/v3/pkg/ifc"
"sigs.k8s.io/kustomize/v3/pkg/loader"
"sigs.k8s.io/kustomize/v3/pkg/types"
"sigs.k8s.io/kustomize/v3/pkg/validators"
)

// FakeLoader encapsulates the delegate Loader and the fake file system.
Expand All @@ -36,8 +34,7 @@ func NewFakeLoaderWithRestrictor(
// Create fake filesystem and inject it into initial Loader.
fSys := filesys.MakeFsInMemory()
fSys.Mkdir(initialDir)
ldr, err := loader.NewLoader(
lr, validators.MakeFakeValidator(), initialDir, fSys)
ldr, err := loader.NewLoader(lr, initialDir, fSys)
if err != nil {
log.Fatalf("Unable to make loader: %v", err)
}
Expand Down Expand Up @@ -77,13 +74,3 @@ func (f FakeLoader) Load(location string) ([]byte, error) {
func (f FakeLoader) Cleanup() error {
return f.delegate.Cleanup()
}

// Validator delegates.
func (f FakeLoader) Validator() ifc.Validator {
return f.delegate.Validator()
}

// LoadKvPairs delegates.
func (f FakeLoader) LoadKvPairs(args types.GeneratorArgs) ([]types.Pair, error) {
return f.delegate.LoadKvPairs(args)
}
4 changes: 2 additions & 2 deletions k8sdeps/configmapandsecret/configmapfactory.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ func makeFreshConfigMap(
// MakeConfigMap returns a new ConfigMap, or nil and an error.
func (f *Factory) MakeConfigMap(
args *types.ConfigMapArgs) (*v1.ConfigMap, error) {
all, err := f.ldr.LoadKvPairs(args.GeneratorArgs)
all, err := f.kvLdr.Load(args.KvPairSources)
if err != nil {
return nil, errors.Wrap(err, "loading KV pairs")
}
Expand All @@ -48,7 +48,7 @@ func (f *Factory) MakeConfigMap(
// addKvToConfigMap adds the given key and data to the given config map.
// Error if key invalid, or already exists.
func (f *Factory) addKvToConfigMap(configMap *v1.ConfigMap, p types.Pair) error {
if err := f.ldr.Validator().ErrIfInvalidKey(p.Key); err != nil {
if err := f.kvLdr.Validator().ErrIfInvalidKey(p.Key); err != nil {
return err
}
// If the configmap data contains byte sequences that are all in the UTF-8
Expand Down
7 changes: 5 additions & 2 deletions k8sdeps/configmapandsecret/configmapfactory_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import (
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"sigs.k8s.io/kustomize/v3/filesys"
"sigs.k8s.io/kustomize/v3/kv"
"sigs.k8s.io/kustomize/v3/pkg/loader"
"sigs.k8s.io/kustomize/v3/pkg/types"
"sigs.k8s.io/kustomize/v3/pkg/validators"
Expand Down Expand Up @@ -141,9 +142,11 @@ func TestConstructConfigMap(t *testing.T) {
fSys.WriteFile(
filesys.RootedPath("configmap", "app.bin"),
[]byte{0xff, 0xfd})
ldr := loader.NewFileLoaderAtRoot(validators.MakeFakeValidator(), fSys)
kvLdr := kv.NewLoader(
loader.NewFileLoaderAtRoot(fSys),
validators.MakeFakeValidator())
for _, tc := range testCases {
f := NewFactory(ldr, tc.options)
f := NewFactory(kvLdr, tc.options)
cm, err := f.MakeConfigMap(&tc.input)
if err != nil {
t.Fatalf("unexpected error: %v", err)
Expand Down
6 changes: 3 additions & 3 deletions k8sdeps/configmapandsecret/factory.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,14 @@ import (

// Factory makes ConfigMaps and Secrets.
type Factory struct {
ldr ifc.Loader
kvLdr ifc.KvLoader
options *types.GeneratorOptions
}

// NewFactory returns a new factory that makes ConfigMaps and Secrets.
func NewFactory(
ldr ifc.Loader, o *types.GeneratorOptions) *Factory {
return &Factory{ldr: ldr, options: o}
kvLdr ifc.KvLoader, o *types.GeneratorOptions) *Factory {
return &Factory{kvLdr: kvLdr, options: o}
}

const keyExistsErrorMsg = "cannot add key %s, another key by that name already exists: %v"
4 changes: 2 additions & 2 deletions k8sdeps/configmapandsecret/secretfactory.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ func makeFreshSecret(
// MakeSecret returns a new secret.
func (f *Factory) MakeSecret(
args *types.SecretArgs) (*corev1.Secret, error) {
all, err := f.ldr.LoadKvPairs(args.GeneratorArgs)
all, err := f.kvLdr.Load(args.KvPairSources)
if err != nil {
return nil, err
}
Expand All @@ -47,7 +47,7 @@ func (f *Factory) MakeSecret(
}

func (f *Factory) addKvToSecret(secret *corev1.Secret, keyName, data string) error {
if err := f.ldr.Validator().ErrIfInvalidKey(keyName); err != nil {
if err := f.kvLdr.Validator().ErrIfInvalidKey(keyName); err != nil {
return err
}
if _, entryExists := secret.Data[keyName]; entryExists {
Expand Down
7 changes: 5 additions & 2 deletions k8sdeps/configmapandsecret/secretfactory_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import (
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"sigs.k8s.io/kustomize/v3/filesys"
"sigs.k8s.io/kustomize/v3/kv"
"sigs.k8s.io/kustomize/v3/pkg/loader"
"sigs.k8s.io/kustomize/v3/pkg/types"
"sigs.k8s.io/kustomize/v3/pkg/validators"
Expand Down Expand Up @@ -126,9 +127,11 @@ func TestConstructSecret(t *testing.T) {
fSys := filesys.MakeFsInMemory()
fSys.WriteFile("/secret/app.env", []byte("DB_USERNAME=admin\nDB_PASSWORD=somepw\n"))
fSys.WriteFile("/secret/app-init.ini", []byte("FOO=bar\nBAR=baz\n"))
ldr := loader.NewFileLoaderAtRoot(validators.MakeFakeValidator(), fSys)
kvLdr := kv.NewLoader(
loader.NewFileLoaderAtRoot(fSys),
validators.MakeFakeValidator())
for _, tc := range testCases {
f := NewFactory(ldr, tc.options)
f := NewFactory(kvLdr, tc.options)
cm, err := f.MakeSecret(&tc.input)
if err != nil {
t.Fatalf("unexpected error: %v", err)
Expand Down
8 changes: 4 additions & 4 deletions k8sdeps/kunstruct/factory.go
Original file line number Diff line number Diff line change
Expand Up @@ -73,11 +73,11 @@ func (kf *KunstructuredFactoryImpl) FromMap(

// MakeConfigMap returns an instance of Kunstructured for ConfigMap
func (kf *KunstructuredFactoryImpl) MakeConfigMap(
ldr ifc.Loader,
kvLdr ifc.KvLoader,
options *types.GeneratorOptions,
args *types.ConfigMapArgs) (ifc.Kunstructured, error) {
o, err := configmapandsecret.NewFactory(
ldr, options).MakeConfigMap(args)
kvLdr, options).MakeConfigMap(args)
if err != nil {
return nil, err
}
Expand All @@ -86,11 +86,11 @@ func (kf *KunstructuredFactoryImpl) MakeConfigMap(

// MakeSecret returns an instance of Kunstructured for Secret
func (kf *KunstructuredFactoryImpl) MakeSecret(
ldr ifc.Loader,
kvLdr ifc.KvLoader,
options *types.GeneratorOptions,
args *types.SecretArgs) (ifc.Kunstructured, error) {
o, err := configmapandsecret.NewFactory(
ldr, options).MakeSecret(args)
kvLdr, options).MakeSecret(args)
if err != nil {
return nil, err
}
Expand Down
8 changes: 4 additions & 4 deletions kustomize/internal/commands/build/build.go
Original file line number Diff line number Diff line change
Expand Up @@ -119,12 +119,12 @@ func (o *Options) RunBuild(
rf *resmap.Factory, ptf resmap.PatchFactory,
pl *plugins.Loader) error {
ldr, err := loader.NewLoader(
o.loadRestrictor, v, o.kustomizationPath, fSys)
o.loadRestrictor, o.kustomizationPath, fSys)
if err != nil {
return err
}
defer ldr.Cleanup()
kt, err := target.NewKustTarget(ldr, rf, ptf, pl)
kt, err := target.NewKustTarget(ldr, v, rf, ptf, pl)
if err != nil {
return err
}
Expand All @@ -140,12 +140,12 @@ func (o *Options) RunBuildPrune(
rf *resmap.Factory, ptf resmap.PatchFactory,
pl *plugins.Loader) error {
ldr, err := loader.NewLoader(
o.loadRestrictor, v, o.kustomizationPath, fSys)
o.loadRestrictor, o.kustomizationPath, fSys)
if err != nil {
return err
}
defer ldr.Cleanup()
kt, err := target.NewKustTarget(ldr, rf, ptf, pl)
kt, err := target.NewKustTarget(ldr, v, rf, ptf, pl)
if err != nil {
return err
}
Expand Down
2 changes: 1 addition & 1 deletion kustomize/internal/commands/edit/add/all.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import (
// NewCmdAdd returns an instance of 'add' subcommand.
func NewCmdAdd(
fSys filesys.FileSystem,
ldr ifc.Loader,
ldr ifc.KvLoader,
kf ifc.KunstructuredFactory) *cobra.Command {
c := &cobra.Command{
Use: "add",
Expand Down
4 changes: 2 additions & 2 deletions kustomize/internal/commands/edit/add/configmap.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import (
// newCmdAddConfigMap returns a new command.
func newCmdAddConfigMap(
fSys filesys.FileSystem,
ldr ifc.Loader,
ldr ifc.KvLoader,
kf ifc.KunstructuredFactory) *cobra.Command {
var flags flagsAndArgs
cmd := &cobra.Command{
Expand Down Expand Up @@ -89,7 +89,7 @@ func newCmdAddConfigMap(
// Note: error may leave kustomization file in an undefined state.
// Suggest passing a copy of kustomization file.
func addConfigMap(
ldr ifc.Loader,
ldr ifc.KvLoader,
k *types.Kustomization,
flags flagsAndArgs, kf ifc.KunstructuredFactory) error {
args := findOrMakeConfigMapArgs(k, flags.Name)
Expand Down
9 changes: 7 additions & 2 deletions kustomize/internal/commands/edit/add/configmap_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,20 @@ import (
"testing"

"sigs.k8s.io/kustomize/v3/filesys"
"sigs.k8s.io/kustomize/v3/kv"
"sigs.k8s.io/kustomize/v3/pkg/loader"
"sigs.k8s.io/kustomize/v3/pkg/types"
"sigs.k8s.io/kustomize/v3/pkg/validators"
)

func TestNewAddConfigMapIsNotNil(t *testing.T) {
fSys := filesys.MakeFsInMemory()
ldr := loader.NewFileLoaderAtCwd(validators.MakeFakeValidator(), fSys)
if newCmdAddConfigMap(fSys, ldr, nil) == nil {
if newCmdAddConfigMap(
fSys,
kv.NewLoader(
loader.NewFileLoaderAtCwd(fSys),
validators.MakeFakeValidator()),
nil) == nil {
t.Fatal("newCmdAddConfigMap shouldn't be nil")
}
}
Expand Down
4 changes: 2 additions & 2 deletions kustomize/internal/commands/edit/add/secret.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import (
// newCmdAddSecret returns a new command.
func newCmdAddSecret(
fSys filesys.FileSystem,
ldr ifc.Loader,
ldr ifc.KvLoader,
kf ifc.KunstructuredFactory) *cobra.Command {
var flags flagsAndArgs
cmd := &cobra.Command{
Expand Down Expand Up @@ -94,7 +94,7 @@ func newCmdAddSecret(
// Note: error may leave kustomization file in an undefined state.
// Suggest passing a copy of kustomization file.
func addSecret(
ldr ifc.Loader,
ldr ifc.KvLoader,
k *types.Kustomization,
flags flagsAndArgs, kf ifc.KunstructuredFactory) error {
args := findOrMakeSecretArgs(k, flags.Name, flags.Type)
Expand Down
10 changes: 8 additions & 2 deletions kustomize/internal/commands/edit/add/secret_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ package add
import (
"testing"

"sigs.k8s.io/kustomize/v3/kv"

"sigs.k8s.io/kustomize/v3/filesys"
"sigs.k8s.io/kustomize/v3/pkg/loader"
"sigs.k8s.io/kustomize/v3/pkg/types"
Expand All @@ -14,8 +16,12 @@ import (

func TestNewCmdAddSecretIsNotNil(t *testing.T) {
fSys := filesys.MakeFsInMemory()
ldr := loader.NewFileLoaderAtCwd(validators.MakeFakeValidator(), fSys)
if newCmdAddSecret(fSys, ldr, nil) == nil {
if newCmdAddSecret(
fSys,
kv.NewLoader(
loader.NewFileLoaderAtCwd(fSys),
validators.MakeFakeValidator()),
nil) == nil {
t.Fatal("newCmdAddSecret shouldn't be nil")
}
}
Expand Down
8 changes: 6 additions & 2 deletions kustomize/internal/commands/edit/all.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import (
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/edit/remove"
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/edit/set"
"sigs.k8s.io/kustomize/v3/filesys"
"sigs.k8s.io/kustomize/v3/kv"
"sigs.k8s.io/kustomize/v3/pkg/ifc"
"sigs.k8s.io/kustomize/v3/pkg/loader"
)
Expand All @@ -35,10 +36,13 @@ func NewCmdEdit(
}

c.AddCommand(
add.NewCmdAdd(fSys, loader.NewFileLoaderAtCwd(v, fSys), kf),
add.NewCmdAdd(
fSys,
kv.NewLoader(loader.NewFileLoaderAtCwd(fSys), v),
kf),
set.NewCmdSet(fSys, v),
fix.NewCmdFix(fSys),
remove.NewCmdRemove(fSys, loader.NewFileLoaderAtCwd(v, fSys)),
remove.NewCmdRemove(fSys, v),
)
return c
}
6 changes: 3 additions & 3 deletions kustomize/internal/commands/edit/remove/all.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import (
// NewCmdRemove returns an instance of 'remove' subcommand.
func NewCmdRemove(
fSys filesys.FileSystem,
ldr ifc.Loader) *cobra.Command {
v ifc.Validator) *cobra.Command {
c := &cobra.Command{
Use: "remove",
Short: "Removes items from the kustomization file.",
Expand All @@ -35,8 +35,8 @@ func NewCmdRemove(
}
c.AddCommand(
newCmdRemoveResource(fSys),
newCmdRemoveLabel(fSys, ldr.Validator().MakeLabelNameValidator()),
newCmdRemoveAnnotation(fSys, ldr.Validator().MakeAnnotationNameValidator()),
newCmdRemoveLabel(fSys, v.MakeLabelNameValidator()),
newCmdRemoveAnnotation(fSys, v.MakeAnnotationNameValidator()),
newCmdRemovePatch(fSys),
)
return c
Expand Down
Loading

0 comments on commit 4e9d42f

Please sign in to comment.