mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-05-21 06:21:43 +00:00
update edit add secrets/configmaps to use plugins
This commit is contained in:
@@ -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},
|
||||
})
|
||||
}
|
||||
|
||||
@@ -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")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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},
|
||||
})
|
||||
}
|
||||
|
||||
@@ -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")
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user