Break the dep between fs and pgmconfig.

This commit is contained in:
Jeffrey Regan
2019-10-02 12:01:45 -07:00
parent 5372fc6f6c
commit 2d58f8b81c
46 changed files with 600 additions and 419 deletions

View File

@@ -9,8 +9,6 @@ import (
"path/filepath"
"sort"
"strings"
"sigs.k8s.io/kustomize/v3/pkg/pgmconfig"
)
var _ FileSystem = &fsInMemory{}
@@ -31,26 +29,6 @@ func MakeFsInMemory() FileSystem {
const (
separator = string(filepath.Separator)
doubleSep = separator + separator
// kustomizationContent is used in tests.
kustomizationContent = `apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namePrefix: some-prefix
nameSuffix: some-suffix
# Labels to add to all objects and selectors.
# These labels would also be used to form the selector for apply --prune
# Named differently than “labels” to avoid confusion with metadata for this object
commonLabels:
app: helloworld
commonAnnotations:
note: This is an example annotation
resources: []
#- service.yaml
#- ../some-dir/
# There could also be configmaps in Base, which would make these overlays
configMapGenerator: []
# There could be secrets in Base, if just using a fork/rebase workflow
secretGenerator: []
`
)
// Create assures a fake file appears in the in-memory file system.
@@ -150,10 +128,6 @@ func (fs *fsInMemory) ReadFile(name string) ([]byte, error) {
return nil, fmt.Errorf("cannot read file %q", name)
}
func (fs *fsInMemory) ReadTestKustomization() ([]byte, error) {
return fs.ReadFile(pgmconfig.KustomizationFileNames[0])
}
// WriteFile always succeeds and does nothing.
func (fs *fsInMemory) WriteFile(name string, c []byte) error {
ff := &fileInMemory{}
@@ -162,16 +136,6 @@ func (fs *fsInMemory) WriteFile(name string, c []byte) error {
return nil
}
// WriteTestKustomization writes a standard test file.
func (fs *fsInMemory) WriteTestKustomization() {
fs.WriteTestKustomizationWith([]byte(kustomizationContent))
}
// WriteTestKustomizationWith writes a standard test file.
func (fs *fsInMemory) WriteTestKustomizationWith(bytes []byte) {
fs.WriteFile(pgmconfig.KustomizationFileNames[0], bytes)
}
// Walk implements filepath.Walk using the fake filesystem.
func (fs *fsInMemory) Walk(path string, walkFn filepath.WalkFunc) error {
info, err := fs.lstat(path)

View File

@@ -74,7 +74,7 @@ func (th *KustTestHarness) WriteF(dir string, content string) {
}
func (th *KustTestHarness) WriteK(dir string, content string) {
th.WriteF(filepath.Join(dir, pgmconfig.KustomizationFileNames[0]), `
th.WriteF(filepath.Join(dir, pgmconfig.KustomizationFileName0), `
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
`+content)

View File

@@ -389,7 +389,7 @@ func TestNewLoaderAtGitClone(t *testing.T) {
fSys.MkdirAll(coRoot)
fSys.MkdirAll(coRoot + "/" + pathInRepo)
fSys.WriteFile(
coRoot+"/"+pathInRepo+"/"+pgmconfig.KustomizationFileNames[0],
coRoot+"/"+pathInRepo+"/"+pgmconfig.KustomizationFileName0,
[]byte(`
whatever
`))

View File

@@ -27,7 +27,6 @@ import (
const (
XDG_CONFIG_HOME = "XDG_CONFIG_HOME"
defaultConfigSubdir = ".config"
PluginRoot = "plugin"
)
// Use https://github.com/kirsle/configdir instead?

View File

@@ -1,36 +1,28 @@
/*
Copyright 2017 The Kubernetes Authors.
// Copyright 2019 The Kubernetes Authors.
// SPDX-License-Identifier: Apache-2.0
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
// Package constants holds global constants for the kustomize tool.
// Package pgmconfig holds global constants for the kustomize tool.
package pgmconfig
// KustomizationFileNames is a list of filenames
// that kustomize recognizes.
// To avoid ambiguity, a directory cannot contain
// more than one match to this list.
var KustomizationFileNames = []string{
"kustomization.yaml",
"kustomization.yml",
"Kustomization",
func KustomizationFileNames() []string {
return []string{
KustomizationFileName0,
KustomizationFileName1,
KustomizationFileName2}
}
const (
KustomizationFileName0 = "kustomization.yaml"
KustomizationFileName1 = "kustomization.yml"
KustomizationFileName2 = "Kustomization"
// Program name, for help, finding the XDG_CONFIG_DIR, etc.
ProgramName = "kustomize"
// Domain from which kustomize code is imported, for locating
// plugin source code under $GOPATH.
DomainName = "sigs.k8s.io"
PluginRoot = "plugin"
)

View File

@@ -234,10 +234,10 @@ func TestNewResMapFromSecretArgs(t *testing.T) {
Type: ifc.SecretTypeOpaque,
},
}
fakeFs := fs.MakeFsInMemory()
fakeFs.Mkdir(".")
fSys := fs.MakeFsInMemory()
fSys.Mkdir(".")
actual, err := rmF.NewResMapFromSecretArgs(
loader.NewFileLoaderAtRoot(validators.MakeFakeValidator(), fakeFs), nil, secrets)
loader.NewFileLoaderAtRoot(validators.MakeFakeValidator(), fSys), nil, secrets)
if err != nil {
t.Fatalf("unexpected error: %v", err)
}

View File

@@ -81,7 +81,7 @@ func commaOr(q []string) string {
func loadKustFile(ldr ifc.Loader) ([]byte, error) {
var content []byte
match := 0
for _, kf := range pgmconfig.KustomizationFileNames {
for _, kf := range pgmconfig.KustomizationFileNames() {
c, err := ldr.Load(kf)
if err == nil {
match += 1
@@ -92,7 +92,8 @@ func loadKustFile(ldr ifc.Loader) ([]byte, error) {
case 0:
return nil, fmt.Errorf(
"unable to find one of %v in directory '%s'",
commaOr(quoted(pgmconfig.KustomizationFileNames)), ldr.Root())
commaOr(quoted(pgmconfig.KustomizationFileNames())),
ldr.Root())
case 1:
return content, nil
default:

View File

@@ -39,15 +39,6 @@ func NewMultiTransformer(t []resmap.Transformer) resmap.Transformer {
return r
}
// NewMultiTransformerWithConflictCheck constructs a multiTransformer with checking of conflicts.
func NewMultiTransformerWithConflictCheck(t []resmap.Transformer) resmap.Transformer {
r := &multiTransformer{
transformers: make([]resmap.Transformer, len(t)),
checkConflictEnabled: true}
copy(r.transformers, t)
return r
}
// Transform prepends the name prefix.
func (o *multiTransformer) Transform(m resmap.ResMap) error {
if o.checkConflictEnabled {

View File

@@ -265,16 +265,6 @@ func (o *nameReferenceTransformer) getNewNameFunc(
}
}
func indexOf(s string, slice []string) []int {
var index []int
for i, item := range slice {
if item == s {
index = append(index, i)
}
}
return index
}
func getIds(rs []*resource.Resource) []string {
var result []string
for _, r := range rs {