Expose some top level kustomize commands.

The PR exposes some of the top level kustomize commands
(especially `build`) for reuse in other command line tools
(expecially `kubectl`, see #1500).

This PR represents option 3 from the following list of ways
this exposure could be arranged.

1. Expose the commands in the `api` module.

```
REPO/api/go.mod
REPO/api/builtins
REPO/api/commands <- new
REPO/api/...
```

Disadvantage: This would make `api` module depend on cobra.
That's bad for clients that want to depend on the api, but
want to write their own commands at their own version of
cobra.  The `api` module shouldn't depend on UX libraries
like cobra.

2. Expose the commands in their own `commands` module.

They'd appear alongside `api`, e.g. `

```
REPO/api/go.mod
REPO/api/builtins
REPO/api/...
REPO/commands/go.mod
REPO/commands/build
REPO/commands/edit
REPO/commands/...
```

Advantage: The commands would be consumed by the kustomize
binary and the kubectl binary in the same way.

Disadvantage: The kustomize binary module and the commands
module could evolve separately with their own version
numbers, creating confusion.

3. Expose the commands in the existing `kustomize` module

```
REPO/api/go.mod
REPO/api/builtins
REPO/api/...
REPO/kustomize/go.mod
REPO/kustomize/main.go
REPO/kustomize/commands/build
REPO/kustomize/commands/edit
REPO/kustomize/commands/...
```

Outside users, e.g. kubectl, could then

```
import sigs.k8s.io/kustomize/kustomize/v3/commands/build
```

and hopefully still get the `main` package
as they do now via:

```
go get sigs.k8s.io/kustomize/kustomize/v3
```

Advantage: 1) The kustomize binary ships at the same version
as the commands - which makes sense as the binary's
_version_ refers to how the CLI operates (command names,
flags, etc.).  This makes it easy to related the version of
a kustomize binary with the version of commands running in
some other CLI binary.  2) The path to the kustomize binary
doesn't change.

Disadvantage: It's an atypical Go module arrangement.
Usually `main` packages live as leaves under a directory
called `cmd` inside a module, rather than at the _top_ of
the module.  This might cause some problems.  If so, we can
go with option 4.

4. Same as 3, but move `main.go` (the `main` package) down one step.

```
REPO/api/go.mod
REPO/api/builtins
REPO/api/...
REPO/kustomize/go.mod
REPO/kustomize/cmd/main.go
REPO/kustomize/commands/build
REPO/kustomize/commands/edit
REPO/kustomize/commands/...
```
This commit is contained in:
monopole
2021-02-04 08:35:01 -08:00
parent 1ee16d9f52
commit b9f05dd357
69 changed files with 70 additions and 71 deletions

View File

@@ -1,5 +1,6 @@
for f in $(find $1 -name '*.go'); do
echo $f
# go run go.coder.com/go-tools/cmd/goimports
~/gopath/bin/goimports -w $f
# go get golang.org/x/tools/cmd/goimports
# {or} go run go.coder.com/go-tools/cmd/goimports
goimports -w $f
done

View File

@@ -54,10 +54,10 @@ https://github.com/hashicorp/go-getter#url-format
`
// NewCmdBuild creates a new build command.
func NewCmdBuild(out io.Writer) *cobra.Command {
func NewCmdBuild(cmdName string, out io.Writer) *cobra.Command {
var o Options
cmd := &cobra.Command{
Use: "build {path}",
Use: cmdName + " {path}",
Short: "Print configuration per contents of " +
konfig.DefaultKustomizationFileName(),
Example: examples,

View File

@@ -7,7 +7,6 @@ import (
"os"
"github.com/spf13/pflag"
"sigs.k8s.io/kustomize/api/konfig"
)

View File

@@ -14,11 +14,11 @@ import (
"sigs.k8s.io/kustomize/api/provider"
"sigs.k8s.io/kustomize/cmd/config/completion"
"sigs.k8s.io/kustomize/cmd/config/configcobra"
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/build"
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/create"
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/edit"
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/openapi"
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/version"
"sigs.k8s.io/kustomize/kustomize/v3/commands/build"
"sigs.k8s.io/kustomize/kustomize/v3/commands/create"
"sigs.k8s.io/kustomize/kustomize/v3/commands/edit"
"sigs.k8s.io/kustomize/kustomize/v3/commands/openapi"
"sigs.k8s.io/kustomize/kustomize/v3/commands/version"
)
// NewDefaultCommand returns the default (aka root) command for kustomize command.
@@ -37,7 +37,7 @@ See https://sigs.k8s.io/kustomize
pvd := provider.NewDefaultDepProvider()
c.AddCommand(
completion.NewCommand(),
build.NewCmdBuild(stdOut),
build.NewCmdBuild("build", stdOut),
edit.NewCmdEdit(
fSys, pvd.GetFieldValidator(), pvd.GetKunstructuredFactory()),
create.NewCmdCreate(fSys, pvd.GetKunstructuredFactory()),

View File

@@ -14,8 +14,8 @@ import (
"sigs.k8s.io/kustomize/api/ifc"
"sigs.k8s.io/kustomize/api/konfig"
"sigs.k8s.io/kustomize/api/loader"
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/kustfile"
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/util"
"sigs.k8s.io/kustomize/kustomize/v3/commands/internal/kustfile"
"sigs.k8s.io/kustomize/kustomize/v3/commands/internal/util"
)
type createFlags struct {

View File

@@ -10,7 +10,7 @@ import (
"sigs.k8s.io/kustomize/api/filesys"
"sigs.k8s.io/kustomize/api/provider"
"sigs.k8s.io/kustomize/api/types"
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/kustfile"
"sigs.k8s.io/kustomize/kustomize/v3/commands/internal/kustfile"
)
var factory = provider.NewDefaultDepProvider().GetKunstructuredFactory()

View File

@@ -10,7 +10,7 @@ import (
"github.com/spf13/cobra"
"sigs.k8s.io/kustomize/api/filesys"
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/kustfile"
"sigs.k8s.io/kustomize/kustomize/v3/commands/internal/kustfile"
)
type addBaseOptions struct {

View File

@@ -8,8 +8,8 @@ import (
"testing"
"sigs.k8s.io/kustomize/api/filesys"
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/kustfile"
testutils_test "sigs.k8s.io/kustomize/kustomize/v3/internal/commands/testutils"
"sigs.k8s.io/kustomize/kustomize/v3/commands/internal/kustfile"
testutils_test "sigs.k8s.io/kustomize/kustomize/v3/commands/internal/testutils"
)
const (

View File

@@ -10,8 +10,8 @@ import (
"github.com/spf13/cobra"
"sigs.k8s.io/kustomize/api/filesys"
"sigs.k8s.io/kustomize/api/loader"
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/kustfile"
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/util"
"sigs.k8s.io/kustomize/kustomize/v3/commands/internal/kustfile"
"sigs.k8s.io/kustomize/kustomize/v3/commands/internal/util"
)
type addComponentOptions struct {

View File

@@ -8,7 +8,7 @@ import (
"testing"
"sigs.k8s.io/kustomize/api/filesys"
testutils_test "sigs.k8s.io/kustomize/kustomize/v3/internal/commands/testutils"
testutils_test "sigs.k8s.io/kustomize/kustomize/v3/commands/internal/testutils"
)
const (

View File

@@ -10,8 +10,8 @@ import (
"sigs.k8s.io/kustomize/api/filesys"
"sigs.k8s.io/kustomize/api/konfig"
"sigs.k8s.io/kustomize/api/types"
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/kustfile"
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/util"
"sigs.k8s.io/kustomize/kustomize/v3/commands/internal/kustfile"
"sigs.k8s.io/kustomize/kustomize/v3/commands/internal/util"
)
// kindOfAdd is the kind of metadata being added: label or annotation

View File

@@ -10,8 +10,8 @@ import (
"sigs.k8s.io/kustomize/api/filesys"
valtest_test "sigs.k8s.io/kustomize/api/testutils/valtest"
"sigs.k8s.io/kustomize/api/types"
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/kustfile"
testutils_test "sigs.k8s.io/kustomize/kustomize/v3/internal/commands/testutils"
"sigs.k8s.io/kustomize/kustomize/v3/commands/internal/kustfile"
testutils_test "sigs.k8s.io/kustomize/kustomize/v3/commands/internal/testutils"
)
func makeKustomization(t *testing.T) *types.Kustomization {

View File

@@ -10,7 +10,7 @@ import (
"github.com/spf13/cobra"
"sigs.k8s.io/kustomize/api/filesys"
"sigs.k8s.io/kustomize/api/types"
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/kustfile"
"sigs.k8s.io/kustomize/kustomize/v3/commands/internal/kustfile"
)
type addPatchOptions struct {

View File

@@ -8,7 +8,7 @@ import (
"testing"
"sigs.k8s.io/kustomize/api/filesys"
testutils_test "sigs.k8s.io/kustomize/kustomize/v3/internal/commands/testutils"
testutils_test "sigs.k8s.io/kustomize/kustomize/v3/commands/internal/testutils"
)
const (

View File

@@ -10,8 +10,8 @@ import (
"github.com/spf13/cobra"
"sigs.k8s.io/kustomize/api/filesys"
"sigs.k8s.io/kustomize/api/loader"
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/kustfile"
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/util"
"sigs.k8s.io/kustomize/kustomize/v3/commands/internal/kustfile"
"sigs.k8s.io/kustomize/kustomize/v3/commands/internal/util"
)
type addResourceOptions struct {

View File

@@ -8,7 +8,7 @@ import (
"testing"
"sigs.k8s.io/kustomize/api/filesys"
testutils_test "sigs.k8s.io/kustomize/kustomize/v3/internal/commands/testutils"
testutils_test "sigs.k8s.io/kustomize/kustomize/v3/commands/internal/testutils"
)
const (

View File

@@ -9,8 +9,8 @@ import (
"github.com/spf13/cobra"
"sigs.k8s.io/kustomize/api/filesys"
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/kustfile"
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/util"
"sigs.k8s.io/kustomize/kustomize/v3/commands/internal/kustfile"
"sigs.k8s.io/kustomize/kustomize/v3/commands/internal/util"
)
type addTransformerOptions struct {

View File

@@ -9,8 +9,8 @@ import (
"testing"
"sigs.k8s.io/kustomize/api/filesys"
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/kustfile"
testutils_test "sigs.k8s.io/kustomize/kustomize/v3/internal/commands/testutils"
"sigs.k8s.io/kustomize/kustomize/v3/commands/internal/kustfile"
testutils_test "sigs.k8s.io/kustomize/kustomize/v3/commands/internal/testutils"
)
const (

View File

@@ -8,7 +8,7 @@ import (
"sigs.k8s.io/kustomize/api/filesys"
"sigs.k8s.io/kustomize/api/ifc"
"sigs.k8s.io/kustomize/api/types"
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/kustfile"
"sigs.k8s.io/kustomize/kustomize/v3/commands/internal/kustfile"
)
// newCmdAddConfigMap returns a new command.

View File

@@ -10,7 +10,7 @@ import (
"sigs.k8s.io/kustomize/api/types"
"sigs.k8s.io/kustomize/api/filesys"
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/util"
"sigs.k8s.io/kustomize/kustomize/v3/commands/internal/util"
)
// flagsAndArgs encapsulates the options for add secret/configmap commands.

View File

@@ -8,7 +8,7 @@ import (
"sigs.k8s.io/kustomize/api/filesys"
"sigs.k8s.io/kustomize/api/ifc"
"sigs.k8s.io/kustomize/api/types"
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/kustfile"
"sigs.k8s.io/kustomize/kustomize/v3/commands/internal/kustfile"
)
// newCmdAddSecret returns a new command.

View File

@@ -9,11 +9,11 @@ import (
"sigs.k8s.io/kustomize/api/ifc"
"sigs.k8s.io/kustomize/api/kv"
"sigs.k8s.io/kustomize/api/loader"
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/edit/add"
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/edit/fix"
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/edit/listbuiltin"
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/edit/remove"
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/edit/set"
"sigs.k8s.io/kustomize/kustomize/v3/commands/edit/add"
"sigs.k8s.io/kustomize/kustomize/v3/commands/edit/fix"
"sigs.k8s.io/kustomize/kustomize/v3/commands/edit/listbuiltin"
"sigs.k8s.io/kustomize/kustomize/v3/commands/edit/remove"
"sigs.k8s.io/kustomize/kustomize/v3/commands/edit/set"
)
// NewCmdEdit returns an instance of 'edit' subcommand.

View File

@@ -6,7 +6,7 @@ package fix
import (
"github.com/spf13/cobra"
"sigs.k8s.io/kustomize/api/filesys"
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/kustfile"
"sigs.k8s.io/kustomize/kustomize/v3/commands/internal/kustfile"
)
// NewCmdFix returns an instance of 'fix' subcommand.

View File

@@ -9,7 +9,7 @@ import (
"github.com/google/go-cmp/cmp"
"sigs.k8s.io/kustomize/api/filesys"
testutils_test "sigs.k8s.io/kustomize/kustomize/v3/internal/commands/testutils"
testutils_test "sigs.k8s.io/kustomize/kustomize/v3/commands/internal/testutils"
)
func TestFix(t *testing.T) {

View File

@@ -11,7 +11,7 @@ import (
"sigs.k8s.io/kustomize/api/filesys"
"sigs.k8s.io/kustomize/api/konfig"
"sigs.k8s.io/kustomize/api/types"
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/kustfile"
"sigs.k8s.io/kustomize/kustomize/v3/commands/internal/kustfile"
)
// kindOfAdd is the kind of metadata being added: label or annotation

View File

@@ -11,8 +11,8 @@ import (
"sigs.k8s.io/kustomize/api/filesys"
valtest_test "sigs.k8s.io/kustomize/api/testutils/valtest"
"sigs.k8s.io/kustomize/api/types"
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/kustfile"
testutils_test "sigs.k8s.io/kustomize/kustomize/v3/internal/commands/testutils"
"sigs.k8s.io/kustomize/kustomize/v3/commands/internal/kustfile"
testutils_test "sigs.k8s.io/kustomize/kustomize/v3/commands/internal/testutils"
)
func makeKustomizationFS() filesys.FileSystem {

View File

@@ -11,7 +11,7 @@ import (
"sigs.k8s.io/kustomize/api/filesys"
"sigs.k8s.io/kustomize/api/konfig"
"sigs.k8s.io/kustomize/api/types"
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/kustfile"
"sigs.k8s.io/kustomize/kustomize/v3/commands/internal/kustfile"
)
type removePatchOptions struct {

View File

@@ -7,7 +7,7 @@ import (
"testing"
"sigs.k8s.io/kustomize/api/filesys"
testutils_test "sigs.k8s.io/kustomize/kustomize/v3/internal/commands/testutils"
testutils_test "sigs.k8s.io/kustomize/kustomize/v3/commands/internal/testutils"
)
const (

View File

@@ -10,7 +10,7 @@ import (
"github.com/spf13/cobra"
"sigs.k8s.io/kustomize/api/filesys"
"sigs.k8s.io/kustomize/api/konfig"
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/kustfile"
"sigs.k8s.io/kustomize/kustomize/v3/commands/internal/kustfile"
)
type removeResourceOptions struct {

View File

@@ -7,7 +7,7 @@ import (
"errors"
"testing"
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/edit/remove_test"
"sigs.k8s.io/kustomize/kustomize/v3/commands/edit/remove_test"
)
func TestRemoveResources(t *testing.T) {

View File

@@ -9,7 +9,7 @@ import (
"github.com/spf13/cobra"
"sigs.k8s.io/kustomize/api/filesys"
"sigs.k8s.io/kustomize/api/konfig"
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/kustfile"
"sigs.k8s.io/kustomize/kustomize/v3/commands/internal/kustfile"
)
type removeTransformerOptions struct {

View File

@@ -4,7 +4,7 @@ import (
"testing"
"github.com/pkg/errors"
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/edit/remove_test"
"sigs.k8s.io/kustomize/kustomize/v3/commands/edit/remove_test"
)
func TestRemoveTransformer(t *testing.T) {

View File

@@ -7,7 +7,7 @@ import (
"github.com/spf13/cobra"
"sigs.k8s.io/kustomize/api/filesys"
testutils_test "sigs.k8s.io/kustomize/kustomize/v3/internal/commands/testutils"
testutils_test "sigs.k8s.io/kustomize/kustomize/v3/commands/internal/testutils"
)
// Given represents the provided inputs for the test case.

View File

@@ -8,7 +8,7 @@ import (
"github.com/spf13/cobra"
"sigs.k8s.io/kustomize/api/filesys"
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/kustfile"
"sigs.k8s.io/kustomize/kustomize/v3/commands/internal/kustfile"
)
type setNamePrefixOptions struct {

View File

@@ -8,7 +8,7 @@ import (
"testing"
"sigs.k8s.io/kustomize/api/filesys"
testutils_test "sigs.k8s.io/kustomize/kustomize/v3/internal/commands/testutils"
testutils_test "sigs.k8s.io/kustomize/kustomize/v3/commands/internal/testutils"
)
const (

View File

@@ -8,7 +8,7 @@ import (
"github.com/spf13/cobra"
"sigs.k8s.io/kustomize/api/filesys"
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/kustfile"
"sigs.k8s.io/kustomize/kustomize/v3/commands/internal/kustfile"
)
type setNameSuffixOptions struct {

View File

@@ -8,7 +8,7 @@ import (
"testing"
"sigs.k8s.io/kustomize/api/filesys"
testutils_test "sigs.k8s.io/kustomize/kustomize/v3/internal/commands/testutils"
testutils_test "sigs.k8s.io/kustomize/kustomize/v3/commands/internal/testutils"
)
const (

View File

@@ -13,7 +13,7 @@ import (
"github.com/spf13/cobra"
"sigs.k8s.io/kustomize/api/filesys"
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/kustfile"
"sigs.k8s.io/kustomize/kustomize/v3/commands/internal/kustfile"
)
type setImageOptions struct {

View File

@@ -9,7 +9,7 @@ import (
"testing"
"sigs.k8s.io/kustomize/api/filesys"
testutils_test "sigs.k8s.io/kustomize/kustomize/v3/internal/commands/testutils"
testutils_test "sigs.k8s.io/kustomize/kustomize/v3/commands/internal/testutils"
)
func TestSetImage(t *testing.T) {

View File

@@ -10,8 +10,8 @@ import (
"sigs.k8s.io/kustomize/api/filesys"
"sigs.k8s.io/kustomize/api/konfig"
"sigs.k8s.io/kustomize/api/types"
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/kustfile"
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/util"
"sigs.k8s.io/kustomize/kustomize/v3/commands/internal/kustfile"
"sigs.k8s.io/kustomize/kustomize/v3/commands/internal/util"
)
type setLabelOptions struct {

View File

@@ -9,8 +9,8 @@ import (
"sigs.k8s.io/kustomize/api/filesys"
valtest_test "sigs.k8s.io/kustomize/api/testutils/valtest"
"sigs.k8s.io/kustomize/api/types"
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/kustfile"
testutils_test "sigs.k8s.io/kustomize/kustomize/v3/internal/commands/testutils"
"sigs.k8s.io/kustomize/kustomize/v3/commands/internal/kustfile"
testutils_test "sigs.k8s.io/kustomize/kustomize/v3/commands/internal/testutils"
)
func makeKustomization(t *testing.T) *types.Kustomization {

View File

@@ -11,7 +11,7 @@ import (
"github.com/spf13/cobra"
"sigs.k8s.io/kustomize/api/filesys"
"sigs.k8s.io/kustomize/api/ifc"
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/kustfile"
"sigs.k8s.io/kustomize/kustomize/v3/commands/internal/kustfile"
)
type setNamespaceOptions struct {

View File

@@ -10,7 +10,7 @@ import (
"sigs.k8s.io/kustomize/api/filesys"
valtest_test "sigs.k8s.io/kustomize/api/testutils/valtest"
testutils_test "sigs.k8s.io/kustomize/kustomize/v3/internal/commands/testutils"
testutils_test "sigs.k8s.io/kustomize/kustomize/v3/commands/internal/testutils"
)
const (

View File

@@ -12,7 +12,7 @@ import (
"github.com/spf13/cobra"
"sigs.k8s.io/kustomize/api/filesys"
"sigs.k8s.io/kustomize/api/types"
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/kustfile"
"sigs.k8s.io/kustomize/kustomize/v3/commands/internal/kustfile"
)
type setReplicasOptions struct {

View File

@@ -9,7 +9,7 @@ import (
"testing"
"sigs.k8s.io/kustomize/api/filesys"
testutils_test "sigs.k8s.io/kustomize/kustomize/v3/internal/commands/testutils"
testutils_test "sigs.k8s.io/kustomize/kustomize/v3/commands/internal/testutils"
)
func TestSetReplicas(t *testing.T) {

View File

@@ -13,7 +13,7 @@ import (
"sigs.k8s.io/kustomize/api/filesys"
"sigs.k8s.io/kustomize/api/konfig"
"sigs.k8s.io/kustomize/api/types"
testutils_test "sigs.k8s.io/kustomize/kustomize/v3/internal/commands/testutils"
testutils_test "sigs.k8s.io/kustomize/kustomize/v3/commands/internal/testutils"
)
func TestFieldOrder(t *testing.T) {

View File

@@ -8,7 +8,7 @@ import (
"github.com/spf13/cobra"
"sigs.k8s.io/kustomize/cmd/config/configcobra"
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/openapi/info"
"sigs.k8s.io/kustomize/kustomize/v3/commands/openapi/info"
)
// NewCmdOpenAPI makes a new openapi command.

View File

@@ -15,7 +15,6 @@ require (
)
exclude (
github.com/russross/blackfriday v2.0.0+incompatible
sigs.k8s.io/kustomize/api v0.2.0
sigs.k8s.io/kustomize/cmd/config v0.2.0
)

View File

@@ -7,7 +7,7 @@ package main
import (
"os"
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands"
"sigs.k8s.io/kustomize/kustomize/v3/commands"
// initialize auth
// This is here rather than in the libraries because of