diff --git a/api/krusty/options.go b/api/krusty/options.go index f7377ffaa..ebea73ff1 100644 --- a/api/krusty/options.go +++ b/api/krusty/options.go @@ -4,7 +4,7 @@ package krusty import ( - "sigs.k8s.io/kustomize/api/plugins/config" + "sigs.k8s.io/kustomize/api/pgmconfig" "sigs.k8s.io/kustomize/api/types" ) @@ -35,6 +35,6 @@ func MakeDefaultOptions() *Options { DoLegacyResourceSort: true, LoadRestrictions: rootOnly, DoPrune: false, - PluginConfig: config.DefaultPluginConfig(), + PluginConfig: pgmconfig.DefaultPluginConfig(), } } diff --git a/api/pgmconfig/doc.go b/api/pgmconfig/doc.go new file mode 100644 index 000000000..de3b59a46 --- /dev/null +++ b/api/pgmconfig/doc.go @@ -0,0 +1,6 @@ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 + +// Package pgmconfig provides configuration methods and constants +// for the kustomize API. +package pgmconfig diff --git a/api/pgmconfig/pgmconfig.go b/api/pgmconfig/pgmconfig.go index 5612efdcc..4adf47ced 100644 --- a/api/pgmconfig/pgmconfig.go +++ b/api/pgmconfig/pgmconfig.go @@ -23,11 +23,11 @@ const ( // An environment variable to consult for kustomization // configuration data. See: // https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html - XdgConfigHome = "XDG_CONFIG_HOME" + XdgConfigHomeEnv = "XDG_CONFIG_HOME" - // Use this when XdgConfigHome not defined. - DefaultConfigSubdir = ".config" + // Use this when XdgConfigHomeEnv not defined. + XdgConfigHomeEnvDefault = ".config" - // Program name, for help, finding the XDG_CONFIG_DIR, etc. + // A program name, for use in help, finding the XDG_CONFIG_DIR, etc. ProgramName = "kustomize" ) diff --git a/api/plugins/config/config.go b/api/pgmconfig/pluginconfig.go similarity index 81% rename from api/plugins/config/config.go rename to api/pgmconfig/pluginconfig.go index df1cb8d2e..fd7f211b0 100644 --- a/api/plugins/config/config.go +++ b/api/pgmconfig/pluginconfig.go @@ -1,9 +1,7 @@ // Copyright 2019 The Kubernetes Authors. // SPDX-License-Identifier: Apache-2.0 -// Package config provides configuration methods and constants -// for general plugins. -package config +package pgmconfig import ( "fmt" @@ -12,22 +10,23 @@ import ( "runtime" "github.com/spf13/pflag" - "sigs.k8s.io/kustomize/api/pgmconfig" "sigs.k8s.io/kustomize/api/types" ) const ( - // Used with Go plugins. + // Symbol that must be used inside Go plugins. PluginSymbol = "KustomizePlugin" // Location of builtins. BuiltinPluginPackage = "builtin" - // ApiVersion of builtins. + // The value of kubernetes ApiVersion to use in configuration + // files for builtin plugins. + // The value for non-builtins can be anything. BuiltinPluginApiVersion = BuiltinPluginPackage // Domain from which kustomize code is imported, for locating - // plugin source code under $GOPATH. + // plugin source code under $GOPATH when GOPATH is defined. DomainName = "sigs.k8s.io" // Name of directory housing all plugins. @@ -73,12 +72,12 @@ func AddFlagEnablePlugins(set *pflag.FlagSet, v *bool) { // Use https://github.com/kirsle/configdir instead? func configRoot() string { - dir := os.Getenv(pgmconfig.XdgConfigHome) + dir := os.Getenv(XdgConfigHomeEnv) if len(dir) == 0 { dir = filepath.Join( - HomeDir(), pgmconfig.DefaultConfigSubdir) + HomeDir(), XdgConfigHomeEnvDefault) } - return filepath.Join(dir, pgmconfig.ProgramName) + return filepath.Join(dir, ProgramName) } func HomeDir() string { diff --git a/api/plugins/config/config_test.go b/api/pgmconfig/pluginconfig_test.go similarity index 53% rename from api/plugins/config/config_test.go rename to api/pgmconfig/pluginconfig_test.go index ecaa3413e..c132b07df 100644 --- a/api/plugins/config/config_test.go +++ b/api/pgmconfig/pluginconfig_test.go @@ -1,29 +1,27 @@ // Copyright 2019 The Kubernetes Authors. // SPDX-License-Identifier: Apache-2.0 -package config +package pgmconfig import ( "os" "path/filepath" "strings" "testing" - - "sigs.k8s.io/kustomize/api/pgmconfig" ) func TestConfigDirNoXdg(t *testing.T) { - xdg, isSet := os.LookupEnv(pgmconfig.XdgConfigHome) + xdg, isSet := os.LookupEnv(XdgConfigHomeEnv) if isSet { - os.Unsetenv(pgmconfig.XdgConfigHome) + os.Unsetenv(XdgConfigHomeEnv) } s := configRoot() if isSet { - os.Setenv(pgmconfig.XdgConfigHome, xdg) + os.Setenv(XdgConfigHomeEnv, xdg) } if !strings.HasSuffix( s, - rootedPath(pgmconfig.DefaultConfigSubdir, pgmconfig.ProgramName)) { + rootedPath(XdgConfigHomeEnvDefault, ProgramName)) { t.Fatalf("unexpected config dir: %s", s) } } @@ -33,13 +31,13 @@ func rootedPath(elem ...string) string { } func TestConfigDirWithXdg(t *testing.T) { - xdg, isSet := os.LookupEnv(pgmconfig.XdgConfigHome) - os.Setenv(pgmconfig.XdgConfigHome, rootedPath("blah")) + xdg, isSet := os.LookupEnv(XdgConfigHomeEnv) + os.Setenv(XdgConfigHomeEnv, rootedPath("blah")) s := configRoot() if isSet { - os.Setenv(pgmconfig.XdgConfigHome, xdg) + os.Setenv(XdgConfigHomeEnv, xdg) } - if s != rootedPath("blah", pgmconfig.ProgramName) { + if s != rootedPath("blah", ProgramName) { t.Fatalf("unexpected config dir: %s", s) } } diff --git a/api/plugins/compiler/compiler.go b/api/plugins/compiler/compiler.go index 2e14859ea..858548bf7 100644 --- a/api/plugins/compiler/compiler.go +++ b/api/plugins/compiler/compiler.go @@ -13,7 +13,6 @@ import ( "time" "sigs.k8s.io/kustomize/api/pgmconfig" - "sigs.k8s.io/kustomize/api/plugins/config" ) // Compiler creates Go plugin object files. @@ -36,20 +35,20 @@ func DefaultSrcRoot() (string, error) { root = filepath.Join( os.Getenv("GOPATH"), "src", - config.DomainName, pgmconfig.ProgramName, config.PluginRoot) + pgmconfig.DomainName, pgmconfig.ProgramName, pgmconfig.PluginRoot) if FileExists(root) { return root, nil } nope = append(nope, root) - root = config.DefaultPluginConfig().DirectoryPath + root = pgmconfig.DefaultPluginConfig().DirectoryPath if FileExists(root) { return root, nil } nope = append(nope, root) root = filepath.Join( - config.HomeDir(), pgmconfig.ProgramName, config.PluginRoot) + pgmconfig.HomeDir(), pgmconfig.ProgramName, pgmconfig.PluginRoot) if FileExists(root) { return root, nil } diff --git a/api/plugins/execplugin/execplugin_test.go b/api/plugins/execplugin/execplugin_test.go index 890f278ca..1efd78923 100644 --- a/api/plugins/execplugin/execplugin_test.go +++ b/api/plugins/execplugin/execplugin_test.go @@ -11,7 +11,7 @@ import ( "sigs.k8s.io/kustomize/api/internal/loadertest" "sigs.k8s.io/kustomize/api/k8sdeps/kunstruct" - "sigs.k8s.io/kustomize/api/plugins/config" + "sigs.k8s.io/kustomize/api/pgmconfig" . "sigs.k8s.io/kustomize/api/plugins/execplugin" "sigs.k8s.io/kustomize/api/plugins/loader" "sigs.k8s.io/kustomize/api/resmap" @@ -46,7 +46,7 @@ s/$BAR/bar/g p, err := NewExecPlugin( loader.AbsolutePluginPath( - config.DefaultPluginConfig(), + pgmconfig.DefaultPluginConfig(), pluginConfig.OrgId())) if err != nil { t.Fatalf("unexpected error: %v", err.Error()) diff --git a/api/plugins/loader/loader.go b/api/plugins/loader/loader.go index dd0467920..7fb214618 100644 --- a/api/plugins/loader/loader.go +++ b/api/plugins/loader/loader.go @@ -13,8 +13,8 @@ import ( "github.com/pkg/errors" "sigs.k8s.io/kustomize/api/ifc" + "sigs.k8s.io/kustomize/api/pgmconfig" "sigs.k8s.io/kustomize/api/plugins/builtinhelpers" - "sigs.k8s.io/kustomize/api/plugins/config" "sigs.k8s.io/kustomize/api/plugins/execplugin" "sigs.k8s.io/kustomize/api/resid" "sigs.k8s.io/kustomize/api/resmap" @@ -103,7 +103,7 @@ func (l *Loader) absolutePluginPath(id resid.ResId) string { func isBuiltinPlugin(res *resource.Resource) bool { // TODO: the special string should appear in Group, not Version. return res.GetGvk().Group == "" && - res.GetGvk().Version == config.BuiltinPluginApiVersion + res.GetGvk().Version == pgmconfig.BuiltinPluginApiVersion } func (l *Loader) loadAndConfigurePlugin( @@ -117,7 +117,7 @@ func (l *Loader) loadAndConfigurePlugin( } else if l.pc.Enabled { c, err = l.loadPlugin(res.OrgId()) } else { - err = config.NotEnabledErr(res.OrgId().Kind) + err = pgmconfig.NotEnabledErr(res.OrgId().Kind) } if err != nil { return nil, err @@ -178,11 +178,11 @@ func (l *Loader) loadGoPlugin(id resid.ResId) (resmap.Configurable, error) { if err != nil { return nil, errors.Wrapf(err, "plugin %s fails to load", absPath) } - symbol, err := p.Lookup(config.PluginSymbol) + symbol, err := p.Lookup(pgmconfig.PluginSymbol) if err != nil { return nil, errors.Wrapf( err, "plugin %s doesn't have symbol %s", - regId, config.PluginSymbol) + regId, pgmconfig.PluginSymbol) } c, ok := symbol.(resmap.Configurable) if !ok { diff --git a/api/plugins/loader/loader_test.go b/api/plugins/loader/loader_test.go index f5b7bd010..e44a82135 100644 --- a/api/plugins/loader/loader_test.go +++ b/api/plugins/loader/loader_test.go @@ -8,12 +8,12 @@ import ( "sigs.k8s.io/kustomize/api/internal/loadertest" "sigs.k8s.io/kustomize/api/k8sdeps/kunstruct" - "sigs.k8s.io/kustomize/api/plugins/config" + "sigs.k8s.io/kustomize/api/pgmconfig" . "sigs.k8s.io/kustomize/api/plugins/loader" "sigs.k8s.io/kustomize/api/resmap" "sigs.k8s.io/kustomize/api/resource" - "sigs.k8s.io/kustomize/api/testutils/kusttest" - "sigs.k8s.io/kustomize/api/testutils/valtest" + kusttest_test "sigs.k8s.io/kustomize/api/testutils/kusttest" + valtest_test "sigs.k8s.io/kustomize/api/testutils/valtest" ) const ( @@ -57,7 +57,7 @@ func TestLoader(t *testing.T) { ldr := loadertest.NewFakeLoader("/foo") - pLdr := NewLoader(config.ActivePluginConfig(), rmF) + pLdr := NewLoader(pgmconfig.ActivePluginConfig(), rmF) if pLdr == nil { t.Fatal("expect non-nil loader") } diff --git a/api/target/baseandoverlaysmall_test.go b/api/target/baseandoverlaysmall_test.go index f3cbc6167..25c2e89e7 100644 --- a/api/target/baseandoverlaysmall_test.go +++ b/api/target/baseandoverlaysmall_test.go @@ -8,8 +8,8 @@ import ( "testing" "sigs.k8s.io/kustomize/api/loader" - "sigs.k8s.io/kustomize/api/plugins/config" - "sigs.k8s.io/kustomize/api/testutils/kusttest" + "sigs.k8s.io/kustomize/api/pgmconfig" + kusttest_test "sigs.k8s.io/kustomize/api/testutils/kusttest" ) func TestOrderPreserved(t *testing.T) { @@ -300,7 +300,7 @@ spec: func TestSharedPatchDisAllowed(t *testing.T) { th := kusttest_test.NewKustTestHarnessFull( t, "/app/overlay", - loader.RestrictionRootOnly, config.DefaultPluginConfig()) + loader.RestrictionRootOnly, pgmconfig.DefaultPluginConfig()) writeSmallBase(th) th.WriteK("/app/overlay", ` commonLabels: @@ -332,7 +332,7 @@ spec: func TestSharedPatchAllowed(t *testing.T) { th := kusttest_test.NewKustTestHarnessFull( t, "/app/overlay", - loader.RestrictionNone, config.DefaultPluginConfig()) + loader.RestrictionNone, pgmconfig.DefaultPluginConfig()) writeSmallBase(th) th.WriteK("/app/overlay", ` commonLabels: diff --git a/api/target/plugindir_test.go b/api/target/plugindir_test.go index a61c8108a..dc49e7af3 100644 --- a/api/target/plugindir_test.go +++ b/api/target/plugindir_test.go @@ -13,13 +13,13 @@ import ( "sigs.k8s.io/kustomize/api/k8sdeps/kunstruct" "sigs.k8s.io/kustomize/api/k8sdeps/transformer" fLdr "sigs.k8s.io/kustomize/api/loader" - "sigs.k8s.io/kustomize/api/plugins/config" + "sigs.k8s.io/kustomize/api/pgmconfig" pLdr "sigs.k8s.io/kustomize/api/plugins/loader" "sigs.k8s.io/kustomize/api/resmap" "sigs.k8s.io/kustomize/api/resource" "sigs.k8s.io/kustomize/api/target" - "sigs.k8s.io/kustomize/api/testutils/kusttest" - "sigs.k8s.io/kustomize/api/testutils/valtest" + kusttest_test "sigs.k8s.io/kustomize/api/testutils/kusttest" + valtest_test "sigs.k8s.io/kustomize/api/testutils/valtest" ) func TestPluginDir(t *testing.T) { @@ -65,7 +65,7 @@ metadata: rf := resmap.NewFactory(resource.NewFactory( kunstruct.NewKunstructuredFactoryImpl()), nil) - pl := pLdr.NewLoader(config.ActivePluginConfig(), rf) + pl := pLdr.NewLoader(pgmconfig.ActivePluginConfig(), rf) tg, err := target.NewKustTarget( ldr, valtest_test.MakeFakeValidator(), rf, transformer.NewFactoryImpl(), pl) if err != nil { diff --git a/api/testutils/kusttest/kusttestharness.go b/api/testutils/kusttest/kusttestharness.go index cfe822121..27aba3f53 100644 --- a/api/testutils/kusttest/kusttestharness.go +++ b/api/testutils/kusttest/kusttestharness.go @@ -15,7 +15,6 @@ import ( fLdr "sigs.k8s.io/kustomize/api/loader" "sigs.k8s.io/kustomize/api/pgmconfig" "sigs.k8s.io/kustomize/api/plugins/builtinconfig/consts" - "sigs.k8s.io/kustomize/api/plugins/config" pLdr "sigs.k8s.io/kustomize/api/plugins/loader" "sigs.k8s.io/kustomize/api/resmap" "sigs.k8s.io/kustomize/api/resource" @@ -37,17 +36,17 @@ type KustTestHarness struct { func NewKustTestHarness(t *testing.T, path string) *KustTestHarness { return NewKustTestHarnessFull( - t, path, fLdr.RestrictionRootOnly, config.DefaultPluginConfig()) + t, path, fLdr.RestrictionRootOnly, pgmconfig.DefaultPluginConfig()) } func NewKustTestHarnessAllowPlugins(t *testing.T, path string) *KustTestHarness { return NewKustTestHarnessFull( - t, path, fLdr.RestrictionRootOnly, config.ActivePluginConfig()) + t, path, fLdr.RestrictionRootOnly, pgmconfig.ActivePluginConfig()) } func NewKustTestHarnessNoLoadRestrictor(t *testing.T, path string) *KustTestHarness { return NewKustTestHarnessFull( - t, path, fLdr.RestrictionNone, config.DefaultPluginConfig()) + t, path, fLdr.RestrictionNone, pgmconfig.DefaultPluginConfig()) } func NewKustTestHarnessFull( diff --git a/api/testutils/kusttest/plugintestenv.go b/api/testutils/kusttest/plugintestenv.go index 30178e9eb..62bbcd8ef 100644 --- a/api/testutils/kusttest/plugintestenv.go +++ b/api/testutils/kusttest/plugintestenv.go @@ -13,7 +13,6 @@ import ( "sigs.k8s.io/kustomize/api/pgmconfig" "sigs.k8s.io/kustomize/api/plugins/compiler" - "sigs.k8s.io/kustomize/api/plugins/config" ) // PluginTestEnv manages the plugin test environment. @@ -71,7 +70,7 @@ func (x *PluginTestEnv) makeCompiler() *compiler.Compiler { // $objRoot // so set things up accordingly. objRoot := filepath.Join( - x.workDir, pgmconfig.ProgramName, config.PluginRoot) + x.workDir, pgmconfig.ProgramName, pgmconfig.PluginRoot) err := os.MkdirAll(objRoot, os.ModePerm) if err != nil { x.t.Error(err) @@ -100,14 +99,14 @@ func (x *PluginTestEnv) removeWorkDir() { } func (x *PluginTestEnv) setEnv() { - x.oldXdg, x.wasSet = os.LookupEnv(pgmconfig.XdgConfigHome) - os.Setenv(pgmconfig.XdgConfigHome, x.workDir) + x.oldXdg, x.wasSet = os.LookupEnv(pgmconfig.XdgConfigHomeEnv) + os.Setenv(pgmconfig.XdgConfigHomeEnv, x.workDir) } func (x *PluginTestEnv) resetEnv() { if x.wasSet { - os.Setenv(pgmconfig.XdgConfigHome, x.oldXdg) + os.Setenv(pgmconfig.XdgConfigHomeEnv, x.oldXdg) } else { - os.Unsetenv(pgmconfig.XdgConfigHome) + os.Unsetenv(pgmconfig.XdgConfigHomeEnv) } } diff --git a/kustomize/internal/commands/build/build.go b/kustomize/internal/commands/build/build.go index d51708a25..d8c185abc 100644 --- a/kustomize/internal/commands/build/build.go +++ b/kustomize/internal/commands/build/build.go @@ -13,7 +13,6 @@ import ( "sigs.k8s.io/kustomize/api/filesys" "sigs.k8s.io/kustomize/api/krusty" "sigs.k8s.io/kustomize/api/pgmconfig" - "sigs.k8s.io/kustomize/api/plugins/config" "sigs.k8s.io/kustomize/api/resmap" "sigs.k8s.io/kustomize/api/resource" "sigs.k8s.io/yaml" @@ -75,7 +74,7 @@ func NewCmdBuild(out io.Writer) *cobra.Command { "output", "o", "", "If specified, write the build output to this path.") krusty.AddFlagLoadRestrictor(cmd.Flags()) - config.AddFlagEnablePlugins( + pgmconfig.AddFlagEnablePlugins( cmd.Flags(), &o.pluginsEnabled) addFlagReorderOutput(cmd.Flags()) cmd.AddCommand(NewCmdBuildPrune(out))