mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-06-14 02:20:53 +00:00
Break the dep between fs and pgmconfig.
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
`))
|
||||
|
||||
@@ -27,7 +27,6 @@ import (
|
||||
const (
|
||||
XDG_CONFIG_HOME = "XDG_CONFIG_HOME"
|
||||
defaultConfigSubdir = ".config"
|
||||
PluginRoot = "plugin"
|
||||
)
|
||||
|
||||
// Use https://github.com/kirsle/configdir instead?
|
||||
|
||||
@@ -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"
|
||||
)
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user