From 7911b2c001a144e5ccef3026ec2c48a94140423c Mon Sep 17 00:00:00 2001 From: Varsha Prasad Narsing Date: Tue, 6 Jun 2023 17:26:34 -0400 Subject: [PATCH] [refactor]: Internalize loader api This PR intends to move the loader api to internal. Only the necessary methods which are needed for the api have been put into `pkg/loader.go`. Signed-off-by: Varsha Prasad Narsing --- .../accumulator/loadconfigfromcrds_test.go | 2 +- api/internal/generators/configmap_test.go | 2 +- api/internal/generators/secret_test.go | 2 +- api/{ => internal}/loader/errors.go | 0 api/{ => internal}/loader/fileloader.go | 101 ++++++++---------- api/{ => internal}/loader/fileloader_test.go | 18 ++-- api/{ => internal}/loader/loader.go | 0 api/{ => internal}/loader/loadrestrictions.go | 0 .../loader/loadrestrictions_test.go | 0 api/internal/localizer/localizer.go | 2 +- api/internal/localizer/locloader.go | 2 +- .../builtinconfig/loaddefaultconfig_test.go | 2 +- .../plugins/execplugin/execplugin_test.go | 2 +- api/internal/plugins/loader/loader_test.go | 2 +- api/internal/target/kusttarget.go | 2 +- api/internal/target/kusttarget_test.go | 2 +- api/internal/target/maker_test.go | 2 +- api/krusty/component_test.go | 2 +- api/krusty/kustomizer.go | 2 +- api/krusty/remoteloader_test.go | 2 +- api/kv/kv_test.go | 2 +- api/pkg/loader/loader.go | 24 +++++ api/resmap/factory_test.go | 5 +- api/resource/factory_test.go | 2 +- api/testutils/kusttest/harnessenhanced.go | 2 +- kustomize/commands/create/create.go | 4 +- kustomize/commands/edit/add/addcomponent.go | 2 +- kustomize/commands/edit/add/addresource.go | 4 +- kustomize/commands/edit/add/configmap_test.go | 4 +- kustomize/commands/edit/add/secret_test.go | 4 +- kustomize/commands/edit/all.go | 6 +- 31 files changed, 109 insertions(+), 97 deletions(-) rename api/{ => internal}/loader/errors.go (100%) rename api/{ => internal}/loader/fileloader.go (75%) rename api/{ => internal}/loader/fileloader_test.go (97%) rename api/{ => internal}/loader/loader.go (100%) rename api/{ => internal}/loader/loadrestrictions.go (100%) rename api/{ => internal}/loader/loadrestrictions_test.go (100%) create mode 100644 api/pkg/loader/loader.go diff --git a/api/internal/accumulator/loadconfigfromcrds_test.go b/api/internal/accumulator/loadconfigfromcrds_test.go index 9c180cbf9..d18e46d58 100644 --- a/api/internal/accumulator/loadconfigfromcrds_test.go +++ b/api/internal/accumulator/loadconfigfromcrds_test.go @@ -9,8 +9,8 @@ import ( "github.com/stretchr/testify/require" . "sigs.k8s.io/kustomize/api/internal/accumulator" + "sigs.k8s.io/kustomize/api/internal/loader" "sigs.k8s.io/kustomize/api/internal/plugins/builtinconfig" - "sigs.k8s.io/kustomize/api/loader" "sigs.k8s.io/kustomize/api/types" "sigs.k8s.io/kustomize/kyaml/filesys" "sigs.k8s.io/kustomize/kyaml/resid" diff --git a/api/internal/generators/configmap_test.go b/api/internal/generators/configmap_test.go index 8551963a4..aadb6ce3a 100644 --- a/api/internal/generators/configmap_test.go +++ b/api/internal/generators/configmap_test.go @@ -10,7 +10,7 @@ import ( "github.com/stretchr/testify/assert" . "sigs.k8s.io/kustomize/api/internal/generators" "sigs.k8s.io/kustomize/api/kv" - "sigs.k8s.io/kustomize/api/loader" + "sigs.k8s.io/kustomize/api/pkg/loader" valtest_test "sigs.k8s.io/kustomize/api/testutils/valtest" "sigs.k8s.io/kustomize/api/types" "sigs.k8s.io/kustomize/kyaml/filesys" diff --git a/api/internal/generators/secret_test.go b/api/internal/generators/secret_test.go index 04829531e..dfc13fc9a 100644 --- a/api/internal/generators/secret_test.go +++ b/api/internal/generators/secret_test.go @@ -10,7 +10,7 @@ import ( "github.com/stretchr/testify/assert" . "sigs.k8s.io/kustomize/api/internal/generators" "sigs.k8s.io/kustomize/api/kv" - "sigs.k8s.io/kustomize/api/loader" + "sigs.k8s.io/kustomize/api/pkg/loader" valtest_test "sigs.k8s.io/kustomize/api/testutils/valtest" "sigs.k8s.io/kustomize/api/types" "sigs.k8s.io/kustomize/kyaml/filesys" diff --git a/api/loader/errors.go b/api/internal/loader/errors.go similarity index 100% rename from api/loader/errors.go rename to api/internal/loader/errors.go diff --git a/api/loader/fileloader.go b/api/internal/loader/fileloader.go similarity index 75% rename from api/loader/fileloader.go rename to api/internal/loader/fileloader.go index 672ca29b3..6ecc9fcef 100644 --- a/api/loader/fileloader.go +++ b/api/internal/loader/fileloader.go @@ -25,7 +25,7 @@ func IsRemoteFile(path string) bool { return err == nil && (u.Scheme == "http" || u.Scheme == "https") } -// fileLoader is a kustomization's interface to files. +// FileLoader is a kustomization's interface to files. // // The directory in which a kustomization file sits // is referred to below as the kustomization's _root_. @@ -38,49 +38,48 @@ func IsRemoteFile(path string) bool { // // * supplemental data paths // -// `Load` is used to visit these paths. +// `Load` is used to visit these paths. // -// These paths refer to resources, patches, -// data for ConfigMaps and Secrets, etc. +// These paths refer to resources, patches, +// data for ConfigMaps and Secrets, etc. // -// The loadRestrictor may disallow certain paths -// or classes of paths. +// The loadRestrictor may disallow certain paths +// or classes of paths. // // * bases (other kustomizations) // -// `New` is used to load bases. +// `New` is used to load bases. // -// A base can be either a remote git repo URL, or -// a directory specified relative to the current -// root. In the former case, the repo is locally -// cloned, and the new loader is rooted on a path -// in that clone. +// A base can be either a remote git repo URL, or +// a directory specified relative to the current +// root. In the former case, the repo is locally +// cloned, and the new loader is rooted on a path +// in that clone. // -// As loaders create new loaders, a root history -// is established, and used to disallow: +// As loaders create new loaders, a root history +// is established, and used to disallow: // -// - A base that is a repository that, in turn, -// specifies a base repository seen previously -// in the loading stack (a cycle). +// - A base that is a repository that, in turn, +// specifies a base repository seen previously +// in the loading stack (a cycle). // -// - An overlay depending on a base positioned at -// or above it. I.e. '../foo' is OK, but '.', -// '..', '../..', etc. are disallowed. Allowing -// such a base has no advantages and encourages -// cycles, particularly if some future change -// were to introduce globbing to file -// specifications in the kustomization file. +// - An overlay depending on a base positioned at +// or above it. I.e. '../foo' is OK, but '.', +// '..', '../..', etc. are disallowed. Allowing +// such a base has no advantages and encourages +// cycles, particularly if some future change +// were to introduce globbing to file +// specifications in the kustomization file. // // These restrictions assure that kustomizations // are self-contained and relocatable, and impose // some safety when relying on remote kustomizations, // e.g. a remotely loaded ConfigMap generator specified // to read from /etc/passwd will fail. -// -type fileLoader struct { +type FileLoader struct { // Loader that spawned this loader. // Used to avoid cycles. - referrer *fileLoader + referrer *FileLoader // An absolute, cleaned path to a directory. // The Load function will read non-absolute @@ -107,23 +106,9 @@ type fileLoader struct { cleaner func() error } -// NewFileLoaderAtCwd returns a loader that loads from PWD. -// A convenience for kustomize edit commands. -func NewFileLoaderAtCwd(fSys filesys.FileSystem) *fileLoader { - return newLoaderOrDie( - RestrictionRootOnly, fSys, filesys.SelfDir) -} - -// NewFileLoaderAtRoot returns a loader that loads from "/". -// A convenience for tests. -func NewFileLoaderAtRoot(fSys filesys.FileSystem) *fileLoader { - return newLoaderOrDie( - RestrictionRootOnly, fSys, filesys.Separator) -} - // Repo returns the absolute path to the repo that contains Root if this fileLoader was created from a url // or the empty string otherwise. -func (fl *fileLoader) Repo() string { +func (fl *FileLoader) Repo() string { if fl.repoSpec != nil { return fl.repoSpec.Dir.String() } @@ -132,13 +117,13 @@ func (fl *fileLoader) Repo() string { // Root returns the absolute path that is prepended to any // relative paths used in Load. -func (fl *fileLoader) Root() string { +func (fl *FileLoader) Root() string { return fl.root.String() } -func newLoaderOrDie( +func NewLoaderOrDie( lr LoadRestrictorFunc, - fSys filesys.FileSystem, path string) *fileLoader { + fSys filesys.FileSystem, path string) *FileLoader { root, err := filesys.ConfirmDir(fSys, path) if err != nil { log.Fatalf("unable to make loader at '%s'; %v", path, err) @@ -147,12 +132,12 @@ func newLoaderOrDie( lr, root, fSys, nil, git.ClonerUsingGitExec) } -// newLoaderAtConfirmedDir returns a new fileLoader with given root. +// newLoaderAtConfirmedDir returns a new FileLoader with given root. func newLoaderAtConfirmedDir( lr LoadRestrictorFunc, root filesys.ConfirmedDir, fSys filesys.FileSystem, - referrer *fileLoader, cloner git.Cloner) *fileLoader { - return &fileLoader{ + referrer *FileLoader, cloner git.Cloner) *FileLoader { + return &FileLoader{ loadRestrictor: lr, root: root, referrer: referrer, @@ -164,7 +149,7 @@ func newLoaderAtConfirmedDir( // New returns a new Loader, rooted relative to current loader, // or rooted in a temp directory holding a git repo clone. -func (fl *fileLoader) New(path string) (ifc.Loader, error) { +func (fl *FileLoader) New(path string) (ifc.Loader, error) { if path == "" { return nil, errors.Errorf("new root cannot be empty") } @@ -200,7 +185,7 @@ func (fl *fileLoader) New(path string) (ifc.Loader, error) { // directory holding a cloned git repo. func newLoaderAtGitClone( repoSpec *git.RepoSpec, fSys filesys.FileSystem, - referrer *fileLoader, cloner git.Cloner) (ifc.Loader, error) { + referrer *FileLoader, cloner git.Cloner) (ifc.Loader, error) { cleaner := repoSpec.Cleaner(fSys) err := cloner(repoSpec) if err != nil { @@ -229,7 +214,7 @@ func newLoaderAtGitClone( return nil, fmt.Errorf("%q refers to directory outside of repo %q", repoSpec.AbsPath(), repoSpec.CloneDir()) } - return &fileLoader{ + return &FileLoader{ // Clones never allowed to escape root. loadRestrictor: RestrictionRootOnly, root: root, @@ -241,7 +226,7 @@ func newLoaderAtGitClone( }, nil } -func (fl *fileLoader) errIfGitContainmentViolation( +func (fl *FileLoader) errIfGitContainmentViolation( base filesys.ConfirmedDir) error { containingRepo := fl.containingRepo() if containingRepo == nil { @@ -259,7 +244,7 @@ func (fl *fileLoader) errIfGitContainmentViolation( // Looks back through referrers for a git repo, returning nil // if none found. -func (fl *fileLoader) containingRepo() *git.RepoSpec { +func (fl *FileLoader) containingRepo() *git.RepoSpec { if fl.repoSpec != nil { return fl.repoSpec } @@ -271,7 +256,7 @@ func (fl *fileLoader) containingRepo() *git.RepoSpec { // errIfArgEqualOrHigher tests whether the argument, // is equal to or above the root of any ancestor. -func (fl *fileLoader) errIfArgEqualOrHigher( +func (fl *FileLoader) errIfArgEqualOrHigher( candidateRoot filesys.ConfirmedDir) error { if fl.root.HasPrefix(candidateRoot) { return fmt.Errorf( @@ -288,7 +273,7 @@ func (fl *fileLoader) errIfArgEqualOrHigher( // I.e. Allow a distinction between git URI with // path foo and tag bar and a git URI with the same // path but a different tag? -func (fl *fileLoader) errIfRepoCycle(newRepoSpec *git.RepoSpec) error { +func (fl *FileLoader) errIfRepoCycle(newRepoSpec *git.RepoSpec) error { // TODO(monopole): Use parsed data instead of Raw(). if fl.repoSpec != nil && strings.HasPrefix(fl.repoSpec.Raw(), newRepoSpec.Raw()) { @@ -305,7 +290,7 @@ func (fl *fileLoader) errIfRepoCycle(newRepoSpec *git.RepoSpec) error { // Load returns the content of file at the given path, // else an error. Relative paths are taken relative // to the root. -func (fl *fileLoader) Load(path string) ([]byte, error) { +func (fl *FileLoader) Load(path string) ([]byte, error) { if IsRemoteFile(path) { return fl.httpClientGetContent(path) } @@ -319,7 +304,7 @@ func (fl *fileLoader) Load(path string) ([]byte, error) { return fl.fSys.ReadFile(path) } -func (fl *fileLoader) httpClientGetContent(path string) ([]byte, error) { +func (fl *FileLoader) httpClientGetContent(path string) ([]byte, error) { var hc *http.Client if fl.http != nil { hc = fl.http @@ -344,6 +329,6 @@ func (fl *fileLoader) httpClientGetContent(path string) ([]byte, error) { } // Cleanup runs the cleaner. -func (fl *fileLoader) Cleanup() error { +func (fl *FileLoader) Cleanup() error { return fl.cleaner() } diff --git a/api/loader/fileloader_test.go b/api/internal/loader/fileloader_test.go similarity index 97% rename from api/loader/fileloader_test.go rename to api/internal/loader/fileloader_test.go index 44572f4be..fc33a8723 100644 --- a/api/loader/fileloader_test.go +++ b/api/internal/loader/fileloader_test.go @@ -93,8 +93,9 @@ func MakeFakeFs(td []testData) filesys.FileSystem { return fSys } -func makeLoader() *fileLoader { - return NewFileLoaderAtRoot(MakeFakeFs(testCases)) +func makeLoader() *FileLoader { + return NewLoaderOrDie( + RestrictionRootOnly, MakeFakeFs(testCases), filesys.Separator) } func TestLoaderLoad(t *testing.T) { @@ -226,7 +227,7 @@ func TestLoaderLocalScheme(t *testing.T) { dir.Join(filepath.Join(parts...)), []byte(content), )) - actualContent, err := newLoaderOrDie(RestrictionRootOnly, + actualContent, err := NewLoaderOrDie(RestrictionRootOnly, fSys, dir.String(), ).Load(strings.Join(parts, "//")) @@ -240,7 +241,7 @@ func TestLoaderLocalScheme(t *testing.T) { "root", } require.NoError(t, fSys.MkdirAll(dir.Join(filepath.Join(parts...)))) - ldr, err := newLoaderOrDie(RestrictionRootOnly, + ldr, err := NewLoaderOrDie(RestrictionRootOnly, fSys, dir.String(), ).New(strings.Join(parts, "//")) @@ -322,7 +323,7 @@ func TestRestrictionRootOnlyInRealLoader(t *testing.T) { var l ifc.Loader - l = newLoaderOrDie(RestrictionRootOnly, fSys, dir) + l = NewLoaderOrDie(RestrictionRootOnly, fSys, dir) l = doSanityChecksAndDropIntoBase(t, l) @@ -343,7 +344,7 @@ func TestRestrictionNoneInRealLoader(t *testing.T) { var l ifc.Loader - l = newLoaderOrDie(RestrictionNone, fSys, dir) + l = NewLoaderOrDie(RestrictionNone, fSys, dir) l = doSanityChecksAndDropIntoBase(t, l) @@ -442,7 +443,7 @@ func TestLoaderDisallowsLocalBaseFromRemoteOverlay(t *testing.T) { // Establish that a local overlay can navigate // to the local bases. - l1 = newLoaderOrDie( + l1 = NewLoaderOrDie( RestrictionRootOnly, fSys, cloneRoot+"/foo/overlay") require.Equal(cloneRoot+"/foo/overlay", l1.Root()) @@ -600,7 +601,8 @@ func TestLoaderHTTP(t *testing.T) { }, } - l1 := NewFileLoaderAtRoot(MakeFakeFs(testCasesFile)) + l1 := NewLoaderOrDie( + RestrictionRootOnly, MakeFakeFs(testCasesFile), filesys.Separator) require.Equal("/", l1.Root()) for _, x := range testCasesFile { diff --git a/api/loader/loader.go b/api/internal/loader/loader.go similarity index 100% rename from api/loader/loader.go rename to api/internal/loader/loader.go diff --git a/api/loader/loadrestrictions.go b/api/internal/loader/loadrestrictions.go similarity index 100% rename from api/loader/loadrestrictions.go rename to api/internal/loader/loadrestrictions.go diff --git a/api/loader/loadrestrictions_test.go b/api/internal/loader/loadrestrictions_test.go similarity index 100% rename from api/loader/loadrestrictions_test.go rename to api/internal/loader/loadrestrictions_test.go diff --git a/api/internal/localizer/localizer.go b/api/internal/localizer/localizer.go index 4da916a80..71de9dd6f 100644 --- a/api/internal/localizer/localizer.go +++ b/api/internal/localizer/localizer.go @@ -11,8 +11,8 @@ import ( "sigs.k8s.io/kustomize/api/ifc" "sigs.k8s.io/kustomize/api/internal/generators" + "sigs.k8s.io/kustomize/api/internal/loader" "sigs.k8s.io/kustomize/api/internal/target" - "sigs.k8s.io/kustomize/api/loader" "sigs.k8s.io/kustomize/api/provider" "sigs.k8s.io/kustomize/api/resmap" "sigs.k8s.io/kustomize/api/types" diff --git a/api/internal/localizer/locloader.go b/api/internal/localizer/locloader.go index 85f4b3b06..1d1072bd1 100644 --- a/api/internal/localizer/locloader.go +++ b/api/internal/localizer/locloader.go @@ -8,7 +8,7 @@ import ( "sigs.k8s.io/kustomize/api/ifc" "sigs.k8s.io/kustomize/api/internal/git" - "sigs.k8s.io/kustomize/api/loader" + "sigs.k8s.io/kustomize/api/internal/loader" "sigs.k8s.io/kustomize/kyaml/errors" "sigs.k8s.io/kustomize/kyaml/filesys" ) diff --git a/api/internal/plugins/builtinconfig/loaddefaultconfig_test.go b/api/internal/plugins/builtinconfig/loaddefaultconfig_test.go index 7b2172608..a00aa4c12 100644 --- a/api/internal/plugins/builtinconfig/loaddefaultconfig_test.go +++ b/api/internal/plugins/builtinconfig/loaddefaultconfig_test.go @@ -7,7 +7,7 @@ import ( "reflect" "testing" - "sigs.k8s.io/kustomize/api/loader" + "sigs.k8s.io/kustomize/api/internal/loader" "sigs.k8s.io/kustomize/api/types" "sigs.k8s.io/kustomize/kyaml/filesys" "sigs.k8s.io/kustomize/kyaml/resid" diff --git a/api/internal/plugins/execplugin/execplugin_test.go b/api/internal/plugins/execplugin/execplugin_test.go index b20626297..37ef5380e 100644 --- a/api/internal/plugins/execplugin/execplugin_test.go +++ b/api/internal/plugins/execplugin/execplugin_test.go @@ -10,10 +10,10 @@ import ( "testing" "github.com/stretchr/testify/require" + fLdr "sigs.k8s.io/kustomize/api/internal/loader" . "sigs.k8s.io/kustomize/api/internal/plugins/execplugin" pLdr "sigs.k8s.io/kustomize/api/internal/plugins/loader" "sigs.k8s.io/kustomize/api/internal/plugins/utils" - fLdr "sigs.k8s.io/kustomize/api/loader" "sigs.k8s.io/kustomize/api/provider" "sigs.k8s.io/kustomize/api/resmap" "sigs.k8s.io/kustomize/api/types" diff --git a/api/internal/plugins/loader/loader_test.go b/api/internal/plugins/loader/loader_test.go index 23cf55cb9..fd95a358c 100644 --- a/api/internal/plugins/loader/loader_test.go +++ b/api/internal/plugins/loader/loader_test.go @@ -7,8 +7,8 @@ import ( "testing" "github.com/stretchr/testify/require" + "sigs.k8s.io/kustomize/api/internal/loader" . "sigs.k8s.io/kustomize/api/internal/plugins/loader" - "sigs.k8s.io/kustomize/api/loader" "sigs.k8s.io/kustomize/api/provider" "sigs.k8s.io/kustomize/api/resmap" kusttest_test "sigs.k8s.io/kustomize/api/testutils/kusttest" diff --git a/api/internal/target/kusttarget.go b/api/internal/target/kusttarget.go index b13dd7d60..eefa1ac63 100644 --- a/api/internal/target/kusttarget.go +++ b/api/internal/target/kusttarget.go @@ -13,12 +13,12 @@ import ( "sigs.k8s.io/kustomize/api/internal/accumulator" "sigs.k8s.io/kustomize/api/internal/builtins" "sigs.k8s.io/kustomize/api/internal/kusterr" + load "sigs.k8s.io/kustomize/api/internal/loader" "sigs.k8s.io/kustomize/api/internal/plugins/builtinconfig" "sigs.k8s.io/kustomize/api/internal/plugins/builtinhelpers" "sigs.k8s.io/kustomize/api/internal/plugins/loader" "sigs.k8s.io/kustomize/api/internal/utils" "sigs.k8s.io/kustomize/api/konfig" - load "sigs.k8s.io/kustomize/api/loader" "sigs.k8s.io/kustomize/api/resmap" "sigs.k8s.io/kustomize/api/resource" "sigs.k8s.io/kustomize/api/types" diff --git a/api/internal/target/kusttarget_test.go b/api/internal/target/kusttarget_test.go index 511300429..a2d426249 100644 --- a/api/internal/target/kusttarget_test.go +++ b/api/internal/target/kusttarget_test.go @@ -13,7 +13,7 @@ import ( "github.com/stretchr/testify/require" "sigs.k8s.io/kustomize/api/ifc" . "sigs.k8s.io/kustomize/api/internal/target" - "sigs.k8s.io/kustomize/api/loader" + "sigs.k8s.io/kustomize/api/pkg/loader" "sigs.k8s.io/kustomize/api/provider" "sigs.k8s.io/kustomize/api/resmap" "sigs.k8s.io/kustomize/api/resource" diff --git a/api/internal/target/maker_test.go b/api/internal/target/maker_test.go index 67f1d8dbe..319195652 100644 --- a/api/internal/target/maker_test.go +++ b/api/internal/target/maker_test.go @@ -6,9 +6,9 @@ package target_test import ( "testing" + fLdr "sigs.k8s.io/kustomize/api/internal/loader" pLdr "sigs.k8s.io/kustomize/api/internal/plugins/loader" "sigs.k8s.io/kustomize/api/internal/target" - fLdr "sigs.k8s.io/kustomize/api/loader" "sigs.k8s.io/kustomize/api/provider" "sigs.k8s.io/kustomize/api/resmap" valtest_test "sigs.k8s.io/kustomize/api/testutils/valtest" diff --git a/api/krusty/component_test.go b/api/krusty/component_test.go index 24d591915..f0965d923 100644 --- a/api/krusty/component_test.go +++ b/api/krusty/component_test.go @@ -8,8 +8,8 @@ import ( "strings" "testing" + "sigs.k8s.io/kustomize/api/internal/loader" "sigs.k8s.io/kustomize/api/konfig" - "sigs.k8s.io/kustomize/api/loader" kusttest_test "sigs.k8s.io/kustomize/api/testutils/kusttest" ) diff --git a/api/krusty/kustomizer.go b/api/krusty/kustomizer.go index 8c7684054..999cbf453 100644 --- a/api/krusty/kustomizer.go +++ b/api/krusty/kustomizer.go @@ -8,11 +8,11 @@ import ( "log" "sigs.k8s.io/kustomize/api/internal/builtins" + fLdr "sigs.k8s.io/kustomize/api/internal/loader" pLdr "sigs.k8s.io/kustomize/api/internal/plugins/loader" "sigs.k8s.io/kustomize/api/internal/target" "sigs.k8s.io/kustomize/api/internal/utils" "sigs.k8s.io/kustomize/api/konfig" - fLdr "sigs.k8s.io/kustomize/api/loader" "sigs.k8s.io/kustomize/api/provenance" "sigs.k8s.io/kustomize/api/provider" "sigs.k8s.io/kustomize/api/resmap" diff --git a/api/krusty/remoteloader_test.go b/api/krusty/remoteloader_test.go index 1bfa7aa17..58ffa3008 100644 --- a/api/krusty/remoteloader_test.go +++ b/api/krusty/remoteloader_test.go @@ -16,8 +16,8 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" + "sigs.k8s.io/kustomize/api/internal/loader" "sigs.k8s.io/kustomize/api/krusty" - "sigs.k8s.io/kustomize/api/loader" "sigs.k8s.io/kustomize/api/resmap" kusttest_test "sigs.k8s.io/kustomize/api/testutils/kusttest" "sigs.k8s.io/kustomize/kyaml/yaml" diff --git a/api/kv/kv_test.go b/api/kv/kv_test.go index f37be9690..143e664e5 100644 --- a/api/kv/kv_test.go +++ b/api/kv/kv_test.go @@ -8,7 +8,7 @@ import ( "testing" "github.com/stretchr/testify/require" - ldr "sigs.k8s.io/kustomize/api/loader" + ldr "sigs.k8s.io/kustomize/api/pkg/loader" valtest_test "sigs.k8s.io/kustomize/api/testutils/valtest" "sigs.k8s.io/kustomize/api/types" "sigs.k8s.io/kustomize/kyaml/filesys" diff --git a/api/pkg/loader/loader.go b/api/pkg/loader/loader.go new file mode 100644 index 000000000..90fd6fb4e --- /dev/null +++ b/api/pkg/loader/loader.go @@ -0,0 +1,24 @@ +// Copyright 2023 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +// Package pkg has all the helpers to interact with the api. +package loader + +import ( + "sigs.k8s.io/kustomize/api/internal/loader" + "sigs.k8s.io/kustomize/kyaml/filesys" +) + +// NewFileLoaderAtCwd returns a loader that loads from PWD. +// A convenience for kustomize edit commands. +func NewFileLoaderAtCwd(fSys filesys.FileSystem) *loader.FileLoader { + return loader.NewLoaderOrDie( + loader.RestrictionRootOnly, fSys, filesys.SelfDir) +} + +// NewFileLoaderAtRoot returns a loader that loads from "/". +// A convenience for tests. +func NewFileLoaderAtRoot(fSys filesys.FileSystem) *loader.FileLoader { + return loader.NewLoaderOrDie( + loader.RestrictionRootOnly, fSys, filesys.Separator) +} diff --git a/api/resmap/factory_test.go b/api/resmap/factory_test.go index 489c99424..01edb5d99 100644 --- a/api/resmap/factory_test.go +++ b/api/resmap/factory_test.go @@ -9,8 +9,9 @@ import ( "github.com/stretchr/testify/assert" "sigs.k8s.io/kustomize/api/ifc" + loader "sigs.k8s.io/kustomize/api/internal/loader" "sigs.k8s.io/kustomize/api/kv" - "sigs.k8s.io/kustomize/api/loader" + ldrpkg "sigs.k8s.io/kustomize/api/pkg/loader" . "sigs.k8s.io/kustomize/api/resmap" resmaptest_test "sigs.k8s.io/kustomize/api/testutils/resmaptest" valtest_test "sigs.k8s.io/kustomize/api/testutils/valtest" @@ -249,7 +250,7 @@ func TestNewResMapFromSecretArgs(t *testing.T) { actual, err := rmF.NewResMapFromSecretArgs( kv.NewLoader( - loader.NewFileLoaderAtRoot(fSys), + ldrpkg.NewFileLoaderAtRoot(fSys), valtest_test.MakeFakeValidator()), secrets) if err != nil { t.Fatalf("unexpected error: %v", err) diff --git a/api/resource/factory_test.go b/api/resource/factory_test.go index 45c02ebc2..30b12bc88 100644 --- a/api/resource/factory_test.go +++ b/api/resource/factory_test.go @@ -9,7 +9,7 @@ import ( "testing" "github.com/stretchr/testify/assert" - "sigs.k8s.io/kustomize/api/loader" + "sigs.k8s.io/kustomize/api/internal/loader" . "sigs.k8s.io/kustomize/api/resource" "sigs.k8s.io/kustomize/api/types" "sigs.k8s.io/kustomize/kyaml/filesys" diff --git a/api/testutils/kusttest/harnessenhanced.go b/api/testutils/kusttest/harnessenhanced.go index 201d81f20..45273208a 100644 --- a/api/testutils/kusttest/harnessenhanced.go +++ b/api/testutils/kusttest/harnessenhanced.go @@ -11,9 +11,9 @@ import ( "testing" "sigs.k8s.io/kustomize/api/ifc" + fLdr "sigs.k8s.io/kustomize/api/internal/loader" pLdr "sigs.k8s.io/kustomize/api/internal/plugins/loader" "sigs.k8s.io/kustomize/api/konfig" - fLdr "sigs.k8s.io/kustomize/api/loader" "sigs.k8s.io/kustomize/api/provider" "sigs.k8s.io/kustomize/api/resmap" valtest_test "sigs.k8s.io/kustomize/api/testutils/valtest" diff --git a/kustomize/commands/create/create.go b/kustomize/commands/create/create.go index 4b42b740b..b4b9df754 100644 --- a/kustomize/commands/create/create.go +++ b/kustomize/commands/create/create.go @@ -11,7 +11,7 @@ import ( "github.com/spf13/cobra" "sigs.k8s.io/kustomize/api/konfig" - "sigs.k8s.io/kustomize/api/loader" + ldrhelper "sigs.k8s.io/kustomize/api/pkg/loader" "sigs.k8s.io/kustomize/api/resource" "sigs.k8s.io/kustomize/kustomize/v5/commands/internal/kustfile" "sigs.k8s.io/kustomize/kustomize/v5/commands/internal/util" @@ -99,7 +99,7 @@ func runCreate(opts createFlags, fSys filesys.FileSystem, rf *resource.Factory) var resources []string var err error if opts.resources != "" { - resources, err = util.GlobPatternsWithLoader(fSys, loader.NewFileLoaderAtCwd(fSys), strings.Split(opts.resources, ",")) + resources, err = util.GlobPatternsWithLoader(fSys, ldrhelper.NewFileLoaderAtCwd(fSys), strings.Split(opts.resources, ",")) if err != nil { return err } diff --git a/kustomize/commands/edit/add/addcomponent.go b/kustomize/commands/edit/add/addcomponent.go index 946b38ae9..693ffd9dc 100644 --- a/kustomize/commands/edit/add/addcomponent.go +++ b/kustomize/commands/edit/add/addcomponent.go @@ -8,7 +8,7 @@ import ( "log" "github.com/spf13/cobra" - "sigs.k8s.io/kustomize/api/loader" + "sigs.k8s.io/kustomize/api/pkg/loader" "sigs.k8s.io/kustomize/kustomize/v5/commands/internal/kustfile" "sigs.k8s.io/kustomize/kustomize/v5/commands/internal/util" "sigs.k8s.io/kustomize/kyaml/filesys" diff --git a/kustomize/commands/edit/add/addresource.go b/kustomize/commands/edit/add/addresource.go index 98e1adb28..3f7f8ffba 100644 --- a/kustomize/commands/edit/add/addresource.go +++ b/kustomize/commands/edit/add/addresource.go @@ -8,7 +8,7 @@ import ( "log" "github.com/spf13/cobra" - "sigs.k8s.io/kustomize/api/loader" + ldrhelper "sigs.k8s.io/kustomize/api/pkg/loader" "sigs.k8s.io/kustomize/kustomize/v5/commands/internal/kustfile" "sigs.k8s.io/kustomize/kustomize/v5/commands/internal/util" "sigs.k8s.io/kustomize/kyaml/filesys" @@ -49,7 +49,7 @@ func (o *addResourceOptions) Validate(args []string) error { // RunAddResource runs addResource command (do real work). func (o *addResourceOptions) RunAddResource(fSys filesys.FileSystem) error { - resources, err := util.GlobPatternsWithLoader(fSys, loader.NewFileLoaderAtCwd(fSys), o.resourceFilePaths) + resources, err := util.GlobPatternsWithLoader(fSys, ldrhelper.NewFileLoaderAtCwd(fSys), o.resourceFilePaths) if err != nil { return err } diff --git a/kustomize/commands/edit/add/configmap_test.go b/kustomize/commands/edit/add/configmap_test.go index 42ce274f2..a6323e663 100644 --- a/kustomize/commands/edit/add/configmap_test.go +++ b/kustomize/commands/edit/add/configmap_test.go @@ -8,7 +8,7 @@ import ( "github.com/stretchr/testify/assert" "sigs.k8s.io/kustomize/api/kv" - "sigs.k8s.io/kustomize/api/loader" + ldrhelper "sigs.k8s.io/kustomize/api/pkg/loader" valtest_test "sigs.k8s.io/kustomize/api/testutils/valtest" "sigs.k8s.io/kustomize/api/types" "sigs.k8s.io/kustomize/kyaml/filesys" @@ -19,7 +19,7 @@ func TestNewAddConfigMapIsNotNil(t *testing.T) { assert.NotNil(t, newCmdAddConfigMap( fSys, kv.NewLoader( - loader.NewFileLoaderAtCwd(fSys), + ldrhelper.NewFileLoaderAtCwd(fSys), valtest_test.MakeFakeValidator()), nil)) } diff --git a/kustomize/commands/edit/add/secret_test.go b/kustomize/commands/edit/add/secret_test.go index 6005c5e8b..d01afd093 100644 --- a/kustomize/commands/edit/add/secret_test.go +++ b/kustomize/commands/edit/add/secret_test.go @@ -8,7 +8,7 @@ import ( "github.com/stretchr/testify/assert" "sigs.k8s.io/kustomize/api/kv" - "sigs.k8s.io/kustomize/api/loader" + ldrhelper "sigs.k8s.io/kustomize/api/pkg/loader" valtest_test "sigs.k8s.io/kustomize/api/testutils/valtest" "sigs.k8s.io/kustomize/api/types" "sigs.k8s.io/kustomize/kyaml/filesys" @@ -19,7 +19,7 @@ func TestNewCmdAddSecretIsNotNil(t *testing.T) { assert.NotNil(t, newCmdAddSecret( fSys, kv.NewLoader( - loader.NewFileLoaderAtCwd(fSys), + ldrhelper.NewFileLoaderAtCwd(fSys), valtest_test.MakeFakeValidator()), nil)) } diff --git a/kustomize/commands/edit/all.go b/kustomize/commands/edit/all.go index fcb77fbd5..ccd7f8e32 100644 --- a/kustomize/commands/edit/all.go +++ b/kustomize/commands/edit/all.go @@ -9,7 +9,7 @@ import ( "github.com/spf13/cobra" "sigs.k8s.io/kustomize/api/ifc" "sigs.k8s.io/kustomize/api/kv" - "sigs.k8s.io/kustomize/api/loader" + ldrhelper "sigs.k8s.io/kustomize/api/pkg/loader" "sigs.k8s.io/kustomize/api/resource" "sigs.k8s.io/kustomize/kustomize/v5/commands/edit/add" "sigs.k8s.io/kustomize/kustomize/v5/commands/edit/fix" @@ -43,11 +43,11 @@ func NewCmdEdit( c.AddCommand( add.NewCmdAdd( fSys, - kv.NewLoader(loader.NewFileLoaderAtCwd(fSys), v), + kv.NewLoader(ldrhelper.NewFileLoaderAtCwd(fSys), v), rf), set.NewCmdSet( fSys, - kv.NewLoader(loader.NewFileLoaderAtCwd(fSys), v), + kv.NewLoader(ldrhelper.NewFileLoaderAtCwd(fSys), v), v), fix.NewCmdFix(fSys, w), remove.NewCmdRemove(fSys, v),