Secret/configmap factory cleanup.

This commit is contained in:
jregan
2019-03-12 13:16:44 -07:00
committed by Jeffrey Regan
parent c4da063934
commit c06b95077d
14 changed files with 158 additions and 157 deletions

View File

@@ -67,8 +67,8 @@ func newCmdAddConfigMap(fSys fs.FileSystem, kf ifc.KunstructuredFactory) *cobra.
}
// Add the flagsAndArgs map to the kustomization file.
kf.Set(loader.NewFileLoaderAtCwd(fSys))
err = addConfigMap(kustomization, flags, kf)
err = addConfigMap(
loader.NewFileLoaderAtCwd(fSys), kustomization, flags, kf)
if err != nil {
return err
}
@@ -103,6 +103,7 @@ func newCmdAddConfigMap(fSys fs.FileSystem, kf ifc.KunstructuredFactory) *cobra.
// Note: error may leave kustomization file in an undefined state.
// Suggest passing a copy of kustomization file.
func addConfigMap(
ldr ifc.Loader,
k *types.Kustomization,
flags flagsAndArgs, kf ifc.KunstructuredFactory) error {
cmArgs := makeConfigMapArgs(k, flags.Name)
@@ -111,7 +112,7 @@ func addConfigMap(
return err
}
// Validate by trying to create corev1.configmap.
_, err = kf.MakeConfigMap(cmArgs, k.GeneratorOptions)
_, err = kf.MakeConfigMap(ldr, k.GeneratorOptions, cmArgs)
if err != nil {
return err
}

View File

@@ -67,8 +67,8 @@ func newCmdAddSecret(fSys fs.FileSystem, kf ifc.KunstructuredFactory) *cobra.Com
}
// Add the flagsAndArgs map to the kustomization file.
kf.Set(loader.NewFileLoaderAtCwd(fSys))
err = addSecret(kustomization, flags, kf)
err = addSecret(
loader.NewFileLoaderAtCwd(fSys), kustomization, flags, kf)
if err != nil {
return err
}
@@ -108,6 +108,7 @@ func newCmdAddSecret(fSys fs.FileSystem, kf ifc.KunstructuredFactory) *cobra.Com
// Note: error may leave kustomization file in an undefined state.
// Suggest passing a copy of kustomization file.
func addSecret(
ldr ifc.Loader,
k *types.Kustomization,
flags flagsAndArgs, kf ifc.KunstructuredFactory) error {
secretArgs := makeSecretArgs(k, flags.Name, flags.Type)
@@ -116,7 +117,7 @@ func addSecret(
return err
}
// Validate by trying to create corev1.secret.
_, err = kf.MakeSecret(secretArgs, k.GeneratorOptions)
_, err = kf.MakeSecret(ldr, k.GeneratorOptions, secretArgs)
if err != nil {
return err
}

View File

@@ -64,9 +64,14 @@ type Kunstructured interface {
type KunstructuredFactory interface {
SliceFromBytes([]byte) ([]Kunstructured, error)
FromMap(m map[string]interface{}) Kunstructured
MakeConfigMap(args *types.ConfigMapArgs, options *types.GeneratorOptions) (Kunstructured, error)
MakeSecret(args *types.SecretArgs, options *types.GeneratorOptions) (Kunstructured, error)
Set(ldr Loader)
MakeConfigMap(
ldr Loader,
options *types.GeneratorOptions,
args *types.ConfigMapArgs) (Kunstructured, error)
MakeSecret(
ldr Loader,
options *types.GeneratorOptions,
args *types.SecretArgs) (Kunstructured, error)
}
// See core.v1.SecretTypeOpaque

View File

@@ -79,10 +79,13 @@ func (rmF *Factory) NewResMapFromBytes(b []byte) (ResMap, error) {
// NewResMapFromConfigMapArgs returns a Resource slice given
// a configmap metadata slice from kustomization file.
func (rmF *Factory) NewResMapFromConfigMapArgs(argList []types.ConfigMapArgs, options *types.GeneratorOptions) (ResMap, error) {
func (rmF *Factory) NewResMapFromConfigMapArgs(
ldr ifc.Loader,
options *types.GeneratorOptions,
argList []types.ConfigMapArgs) (ResMap, error) {
var resources []*resource.Resource
for _, args := range argList {
res, err := rmF.resF.MakeConfigMap(&args, options)
res, err := rmF.resF.MakeConfigMap(ldr, options, &args)
if err != nil {
return nil, errors.Wrap(err, "NewResMapFromConfigMapArgs")
}
@@ -93,10 +96,13 @@ func (rmF *Factory) NewResMapFromConfigMapArgs(argList []types.ConfigMapArgs, op
// NewResMapFromSecretArgs takes a SecretArgs slice, generates
// secrets from each entry, and accumulates them in a ResMap.
func (rmF *Factory) NewResMapFromSecretArgs(argsList []types.SecretArgs, options *types.GeneratorOptions) (ResMap, error) {
func (rmF *Factory) NewResMapFromSecretArgs(
ldr ifc.Loader,
options *types.GeneratorOptions,
argsList []types.SecretArgs) (ResMap, error) {
var resources []*resource.Resource
for _, args := range argsList {
res, err := rmF.resF.MakeSecret(&args, options)
res, err := rmF.resF.MakeSecret(ldr, options, &args)
if err != nil {
return nil, errors.Wrap(err, "NewResMapFromSecretArgs")
}
@@ -105,11 +111,6 @@ func (rmF *Factory) NewResMapFromSecretArgs(argsList []types.SecretArgs, options
return newResMapFromResourceSlice(resources)
}
// Set sets the loader for the underlying factory
func (rmF *Factory) Set(ldr ifc.Loader) {
rmF.resF.Set(ldr)
}
func newResMapFromResourceSlice(resources []*resource.Resource) (ResMap, error) {
result := ResMap{}
for _, res := range resources {

View File

@@ -238,12 +238,11 @@ BAR=baz
// TODO: add testcase for data coming from multiple sources like
// files/literal/env etc.
}
rmF.Set(l)
for _, tc := range testCases {
if ferr := l.AddFile(tc.filepath, []byte(tc.content)); ferr != nil {
t.Fatalf("Error adding fake file: %v\n", ferr)
}
r, err := rmF.NewResMapFromConfigMapArgs(tc.input, nil)
r, err := rmF.NewResMapFromConfigMapArgs(l, nil, tc.input)
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
@@ -272,9 +271,8 @@ func TestNewResMapFromSecretArgs(t *testing.T) {
}
fakeFs := fs.MakeFakeFS()
fakeFs.Mkdir(".")
rmF.Set(loader.NewFileLoaderAtRoot(fakeFs))
actual, err := rmF.NewResMapFromSecretArgs(secrets, nil)
actual, err := rmF.NewResMapFromSecretArgs(
loader.NewFileLoaderAtRoot(fakeFs), nil, secrets)
if err != nil {
t.Fatalf("unexpected error: %v", err)
}

View File

@@ -124,25 +124,36 @@ func (rf *Factory) SliceFromBytes(in []byte) ([]*Resource, error) {
return result, nil
}
// Set sets the loader for the underlying factory
func (rf *Factory) Set(ldr ifc.Loader) {
rf.kf.Set(ldr)
}
// MakeConfigMap makes an instance of Resource for ConfigMap
func (rf *Factory) MakeConfigMap(args *types.ConfigMapArgs, options *types.GeneratorOptions) (*Resource, error) {
u, err := rf.kf.MakeConfigMap(args, options)
func (rf *Factory) MakeConfigMap(
ldr ifc.Loader,
options *types.GeneratorOptions,
args *types.ConfigMapArgs) (*Resource, error) {
u, err := rf.kf.MakeConfigMap(ldr, options, args)
if err != nil {
return nil, err
}
return &Resource{Kunstructured: u, options: types.NewGenArgs(&types.GeneratorArgs{Behavior: args.Behavior}, options)}, nil
return &Resource{
Kunstructured: u,
options: types.NewGenArgs(
&types.GeneratorArgs{Behavior: args.Behavior},
options),
}, nil
}
// MakeSecret makes an instance of Resource for Secret
func (rf *Factory) MakeSecret(args *types.SecretArgs, options *types.GeneratorOptions) (*Resource, error) {
u, err := rf.kf.MakeSecret(args, options)
func (rf *Factory) MakeSecret(
ldr ifc.Loader,
options *types.GeneratorOptions,
args *types.SecretArgs) (*Resource, error) {
u, err := rf.kf.MakeSecret(ldr, options, args)
if err != nil {
return nil, err
}
return &Resource{Kunstructured: u, options: types.NewGenArgs(&types.GeneratorArgs{Behavior: args.Behavior}, options)}, nil
return &Resource{
Kunstructured: u,
options: types.NewGenArgs(
&types.GeneratorArgs{Behavior: args.Behavior},
options),
}, nil
}

View File

@@ -62,7 +62,9 @@ func NewKustTarget(
}
errs := k.EnforceFields()
if len(errs) > 0 {
return nil, fmt.Errorf("Failed to read kustomization file under %s:\n"+strings.Join(errs, "\n"), ldr.Root())
return nil, fmt.Errorf(
"Failed to read kustomization file under %s:\n"+
strings.Join(errs, "\n"), ldr.Root())
}
return &KustTarget{
kustomization: &k,
@@ -102,7 +104,8 @@ func loadKustFile(ldr ifc.Loader) ([]byte, error) {
case 1:
return content, nil
default:
return nil, fmt.Errorf("Found multiple kustomization files under: %s\n", ldr.Root())
return nil, fmt.Errorf(
"Found multiple kustomization files under: %s\n", ldr.Root())
}
}
@@ -215,14 +218,17 @@ func (kt *KustTarget) AccumulateTarget() (
func (kt *KustTarget) generateConfigMapsAndSecrets(
errs *interror.KustomizationErrors) (resmap.ResMap, error) {
kt.rFactory.Set(kt.ldr)
cms, err := kt.rFactory.NewResMapFromConfigMapArgs(
kt.kustomization.ConfigMapGenerator, kt.kustomization.GeneratorOptions)
kt.ldr,
kt.kustomization.GeneratorOptions,
kt.kustomization.ConfigMapGenerator)
if err != nil {
errs.Append(errors.Wrap(err, "NewResMapFromConfigMapArgs"))
}
secrets, err := kt.rFactory.NewResMapFromSecretArgs(
kt.kustomization.SecretGenerator, kt.kustomization.GeneratorOptions)
kt.ldr,
kt.kustomization.GeneratorOptions,
kt.kustomization.SecretGenerator)
if err != nil {
errs.Append(errors.Wrap(err, "NewResMapFromSecretArgs"))
}