From b60fca05bd579c7f4b750aecd59edd108cd7ec59 Mon Sep 17 00:00:00 2001 From: Seth Pollack Date: Wed, 20 Mar 2019 09:24:10 -0400 Subject: [PATCH] update edit add secrets/configmaps to use plugins --- pkg/commands/edit/add/configmap.go | 30 +++++++-------- pkg/commands/edit/add/configmap_test.go | 51 +++++++++---------------- pkg/commands/edit/add/secret.go | 30 +++++++-------- pkg/commands/edit/add/secret_test.go | 51 +++++++++---------------- 4 files changed, 66 insertions(+), 96 deletions(-) diff --git a/pkg/commands/edit/add/configmap.go b/pkg/commands/edit/add/configmap.go index 8f78797ba..27e352561 100644 --- a/pkg/commands/edit/add/configmap.go +++ b/pkg/commands/edit/add/configmap.go @@ -17,8 +17,6 @@ limitations under the License. package add import ( - "fmt" - "github.com/spf13/cobra" "sigs.k8s.io/kustomize/pkg/commands/kustfile" "sigs.k8s.io/kustomize/pkg/fs" @@ -107,12 +105,9 @@ func addConfigMap( k *types.Kustomization, flags flagsAndArgs, kf ifc.KunstructuredFactory) error { cmArgs := makeConfigMapArgs(k, flags.Name) - err := mergeFlagsIntoCmArgs(&cmArgs.DataSources, flags) - if err != nil { - return err - } + mergeFlagsIntoCmArgs(&cmArgs.KVSources, flags) // Validate by trying to create corev1.configmap. - _, err = kf.MakeConfigMap(ldr, k.GeneratorOptions, cmArgs) + _, err := kf.MakeConfigMap(ldr, k.GeneratorOptions, cmArgs) if err != nil { return err } @@ -131,12 +126,17 @@ func makeConfigMapArgs(m *types.Kustomization, name string) *types.ConfigMapArgs return &m.ConfigMapGenerator[len(m.ConfigMapGenerator)-1] } -func mergeFlagsIntoCmArgs(src *types.DataSources, flags flagsAndArgs) error { - src.LiteralSources = append(src.LiteralSources, flags.LiteralSources...) - src.FileSources = append(src.FileSources, flags.FileSources...) - if src.EnvSource != "" && src.EnvSource != flags.EnvFileSource { - return fmt.Errorf("updating existing env source '%s' not allowed", src.EnvSource) - } - src.EnvSource = flags.EnvFileSource - return nil +func mergeFlagsIntoCmArgs(src *[]types.KVSource, flags flagsAndArgs) { + *src = append(*src, types.KVSource{ + Name: "literals", + Args: flags.LiteralSources, + }) + *src = append(*src, types.KVSource{ + Name: "files", + Args: flags.FileSources, + }) + *src = append(*src, types.KVSource{ + Name: "envfiles", + Args: []string{flags.EnvFileSource}, + }) } diff --git a/pkg/commands/edit/add/configmap_test.go b/pkg/commands/edit/add/configmap_test.go index f55d1198a..23c3cf1a6 100644 --- a/pkg/commands/edit/add/configmap_test.go +++ b/pkg/commands/edit/add/configmap_test.go @@ -65,45 +65,33 @@ func TestMakeConfigMapArgs(t *testing.T) { } func TestMergeFlagsIntoCmArgs_LiteralSources(t *testing.T) { - ds := &types.DataSources{} + kv := []types.KVSource{} - err := mergeFlagsIntoCmArgs(ds, flagsAndArgs{LiteralSources: []string{"k1=v1"}}) - if err != nil { - t.Fatalf("Merge initial literal source should not return error") - } + mergeFlagsIntoCmArgs(&kv, flagsAndArgs{LiteralSources: []string{"k1=v1"}}) - if len(ds.LiteralSources) != 1 { + if len(kv) != 1 { t.Fatalf("Initial literal source should have been added") } - err = mergeFlagsIntoCmArgs(ds, flagsAndArgs{LiteralSources: []string{"k2=v2"}}) - if err != nil { - t.Fatalf("Merge second literal source should not return error") - } + mergeFlagsIntoCmArgs(&kv, flagsAndArgs{LiteralSources: []string{"k2=v2"}}) - if len(ds.LiteralSources) != 2 { + if len(kv) != 2 { t.Fatalf("Second literal source should have been added") } } func TestMergeFlagsIntoCmArgs_FileSources(t *testing.T) { - ds := &types.DataSources{} + kv := []types.KVSource{} - err := mergeFlagsIntoCmArgs(ds, flagsAndArgs{FileSources: []string{"file1"}}) - if err != nil { - t.Fatalf("Merge initial file source should not return error") - } + mergeFlagsIntoCmArgs(&kv, flagsAndArgs{FileSources: []string{"file1"}}) - if len(ds.FileSources) != 1 { + if len(kv) != 1 { t.Fatalf("Initial file source should have been added") } - err = mergeFlagsIntoCmArgs(ds, flagsAndArgs{FileSources: []string{"file2"}}) - if err != nil { - t.Fatalf("Merge second file source should not return error") - } + mergeFlagsIntoCmArgs(&kv, flagsAndArgs{FileSources: []string{"file2"}}) - if len(ds.FileSources) != 2 { + if len(kv) != 2 { t.Fatalf("Second file source should have been added") } } @@ -111,19 +99,16 @@ func TestMergeFlagsIntoCmArgs_FileSources(t *testing.T) { func TestMergeFlagsIntoCmArgs_EnvSource(t *testing.T) { envFileName := "env1" envFileName2 := "env2" - ds := &types.DataSources{} + kv := []types.KVSource{} - err := mergeFlagsIntoCmArgs(ds, flagsAndArgs{EnvFileSource: envFileName}) - if err != nil { - t.Fatalf("Merge initial env source should not return error") + mergeFlagsIntoCmArgs(&kv, flagsAndArgs{EnvFileSource: envFileName}) + + if len(kv) != 1 { + t.Fatalf("Initial env source should have been added") } - if ds.EnvSource != envFileName { - t.Fatalf("Initial env source filename should have been added") - } - - err = mergeFlagsIntoCmArgs(ds, flagsAndArgs{EnvFileSource: envFileName2}) - if err == nil { - t.Fatalf("Updating env source should return an error") + mergeFlagsIntoCmArgs(&kv, flagsAndArgs{EnvFileSource: envFileName2}) + if len(kv) != 2 { + t.Fatalf("Second env source should have been added") } } diff --git a/pkg/commands/edit/add/secret.go b/pkg/commands/edit/add/secret.go index c2a1d198f..213475ca6 100644 --- a/pkg/commands/edit/add/secret.go +++ b/pkg/commands/edit/add/secret.go @@ -17,8 +17,6 @@ limitations under the License. package add import ( - "fmt" - "github.com/spf13/cobra" "sigs.k8s.io/kustomize/pkg/commands/kustfile" "sigs.k8s.io/kustomize/pkg/fs" @@ -112,12 +110,9 @@ func addSecret( k *types.Kustomization, flags flagsAndArgs, kf ifc.KunstructuredFactory) error { secretArgs := makeSecretArgs(k, flags.Name, flags.Type) - err := mergeFlagsIntoSecretArgs(&secretArgs.DataSources, flags) - if err != nil { - return err - } + mergeFlagsIntoSecretArgs(&secretArgs.KVSources, flags) // Validate by trying to create corev1.secret. - _, err = kf.MakeSecret(ldr, k.GeneratorOptions, secretArgs) + _, err := kf.MakeSecret(ldr, k.GeneratorOptions, secretArgs) if err != nil { return err } @@ -136,12 +131,17 @@ func makeSecretArgs(m *types.Kustomization, name, secretType string) *types.Secr return &m.SecretGenerator[len(m.SecretGenerator)-1] } -func mergeFlagsIntoSecretArgs(src *types.DataSources, flags flagsAndArgs) error { - src.LiteralSources = append(src.LiteralSources, flags.LiteralSources...) - src.FileSources = append(src.FileSources, flags.FileSources...) - if src.EnvSource != "" && src.EnvSource != flags.EnvFileSource { - return fmt.Errorf("updating existing env source '%s' not allowed", src.EnvSource) - } - src.EnvSource = flags.EnvFileSource - return nil +func mergeFlagsIntoSecretArgs(src *[]types.KVSource, flags flagsAndArgs) { + *src = append(*src, types.KVSource{ + Name: "literals", + Args: flags.LiteralSources, + }) + *src = append(*src, types.KVSource{ + Name: "files", + Args: flags.FileSources, + }) + *src = append(*src, types.KVSource{ + Name: "envfiles", + Args: []string{flags.EnvFileSource}, + }) } diff --git a/pkg/commands/edit/add/secret_test.go b/pkg/commands/edit/add/secret_test.go index 47ba26489..ecbaa704d 100644 --- a/pkg/commands/edit/add/secret_test.go +++ b/pkg/commands/edit/add/secret_test.go @@ -67,45 +67,33 @@ func TestMakeSecretArgs(t *testing.T) { } func TestMergeFlagsIntoSecretArgs_LiteralSources(t *testing.T) { - ds := &types.DataSources{} + kv := []types.KVSource{} - err := mergeFlagsIntoSecretArgs(ds, flagsAndArgs{LiteralSources: []string{"k1=v1"}}) - if err != nil { - t.Fatalf("Merge initial literal source should not return error") - } + mergeFlagsIntoSecretArgs(&kv, flagsAndArgs{LiteralSources: []string{"k1=v1"}}) - if len(ds.LiteralSources) != 1 { + if len(kv) != 1 { t.Fatalf("Initial literal source should have been added") } - err = mergeFlagsIntoSecretArgs(ds, flagsAndArgs{LiteralSources: []string{"k2=v2"}}) - if err != nil { - t.Fatalf("Merge second literal source should not return error") - } + mergeFlagsIntoSecretArgs(&kv, flagsAndArgs{LiteralSources: []string{"k2=v2"}}) - if len(ds.LiteralSources) != 2 { + if len(kv) != 2 { t.Fatalf("Second literal source should have been added") } } func TestMergeFlagsIntoSecretArgs_FileSources(t *testing.T) { - ds := &types.DataSources{} + kv := []types.KVSource{} - err := mergeFlagsIntoSecretArgs(ds, flagsAndArgs{FileSources: []string{"file1"}}) - if err != nil { - t.Fatalf("Merge initial file source should not return error") - } + mergeFlagsIntoSecretArgs(&kv, flagsAndArgs{FileSources: []string{"file1"}}) - if len(ds.FileSources) != 1 { + if len(kv) != 1 { t.Fatalf("Initial file source should have been added") } - err = mergeFlagsIntoSecretArgs(ds, flagsAndArgs{FileSources: []string{"file2"}}) - if err != nil { - t.Fatalf("Merge second file source should not return error") - } + mergeFlagsIntoSecretArgs(&kv, flagsAndArgs{FileSources: []string{"file2"}}) - if len(ds.FileSources) != 2 { + if len(kv) != 2 { t.Fatalf("Second file source should have been added") } } @@ -113,19 +101,16 @@ func TestMergeFlagsIntoSecretArgs_FileSources(t *testing.T) { func TestMergeFlagsIntoSecretArgs_EnvSource(t *testing.T) { envFileName := "env1" envFileName2 := "env2" - ds := &types.DataSources{} + kv := []types.KVSource{} - err := mergeFlagsIntoSecretArgs(ds, flagsAndArgs{EnvFileSource: envFileName}) - if err != nil { - t.Fatalf("Merge initial env source should not return error") + mergeFlagsIntoSecretArgs(&kv, flagsAndArgs{EnvFileSource: envFileName}) + + if len(kv) != 1 { + t.Fatalf("Initial env source should have been added") } - if ds.EnvSource != envFileName { - t.Fatalf("Initial env source filename should have been added") - } - - err = mergeFlagsIntoSecretArgs(ds, flagsAndArgs{EnvFileSource: envFileName2}) - if err == nil { - t.Fatalf("Updating env source should return an error") + mergeFlagsIntoSecretArgs(&kv, flagsAndArgs{EnvFileSource: envFileName2}) + if len(kv) != 2 { + t.Fatalf("Second env source should have been added") } }