Merge pull request #2094 from arthurgustin/master

Add --namespace option to kustomize edit add secret command
This commit is contained in:
Jeff Regan
2020-01-16 09:15:03 -08:00
committed by GitHub
3 changed files with 19 additions and 10 deletions

View File

@@ -24,6 +24,8 @@ type flagsAndArgs struct {
EnvFileSource string EnvFileSource string
// Type of secret to create // Type of secret to create
Type string Type string
// Namespace of secret
Namespace string
} }
// Validate validates required fields are set to support structured generation. // Validate validates required fields are set to support structured generation.

View File

@@ -86,6 +86,11 @@ func newCmdAddSecret(
"type", "type",
"Opaque", "Opaque",
"Specify the secret type this can be 'Opaque' (default), or 'kubernetes.io/tls'") "Specify the secret type this can be 'Opaque' (default), or 'kubernetes.io/tls'")
cmd.Flags().StringVar(
&flags.Namespace,
"namespace",
"",
"Specify the namespace of the secret")
return cmd return cmd
} }
@@ -97,7 +102,7 @@ func addSecret(
ldr ifc.KvLoader, ldr ifc.KvLoader,
k *types.Kustomization, k *types.Kustomization,
flags flagsAndArgs, kf ifc.KunstructuredFactory) error { flags flagsAndArgs, kf ifc.KunstructuredFactory) error {
args := findOrMakeSecretArgs(k, flags.Name, flags.Type) args := findOrMakeSecretArgs(k, flags.Name, flags.Namespace, flags.Type)
mergeFlagsIntoGeneratorArgs(&args.GeneratorArgs, flags) mergeFlagsIntoGeneratorArgs(&args.GeneratorArgs, flags)
// Validate by trying to create corev1.secret. // Validate by trying to create corev1.secret.
_, err := kf.MakeSecret(ldr, k.GeneratorOptions, args) _, err := kf.MakeSecret(ldr, k.GeneratorOptions, args)
@@ -107,16 +112,17 @@ func addSecret(
return nil return nil
} }
func findOrMakeSecretArgs(m *types.Kustomization, name, secretType string) *types.SecretArgs { func findOrMakeSecretArgs(m *types.Kustomization, name, namespace, secretType string) *types.SecretArgs {
for i, v := range m.SecretGenerator { for i, v := range m.SecretGenerator {
if name == v.Name { if name == v.Name && namespace == v.Namespace {
return &m.SecretGenerator[i] return &m.SecretGenerator[i]
} }
} }
// secret not found, create new one and add it to the kustomization file. // secret not found, create new one and add it to the kustomization file.
secret := &types.SecretArgs{ secret := &types.SecretArgs{
GeneratorArgs: types.GeneratorArgs{Name: name}, GeneratorArgs: types.GeneratorArgs{Name: name, Namespace: namespace},
Type: secretType} Type: secretType,
}
m.SecretGenerator = append(m.SecretGenerator, *secret) m.SecretGenerator = append(m.SecretGenerator, *secret)
return &m.SecretGenerator[len(m.SecretGenerator)-1] return &m.SecretGenerator[len(m.SecretGenerator)-1]
} }

View File

@@ -28,6 +28,7 @@ func TestNewCmdAddSecretIsNotNil(t *testing.T) {
func TestMakeSecretArgs(t *testing.T) { func TestMakeSecretArgs(t *testing.T) {
secretName := "test-secret-name" secretName := "test-secret-name"
namespace := "test-secret-namespace"
kustomization := &types.Kustomization{ kustomization := &types.Kustomization{
NamePrefix: "test-name-prefix", NamePrefix: "test-name-prefix",
@@ -38,7 +39,7 @@ func TestMakeSecretArgs(t *testing.T) {
if len(kustomization.SecretGenerator) != 0 { if len(kustomization.SecretGenerator) != 0 {
t.Fatal("Initial kustomization should not have any secrets") t.Fatal("Initial kustomization should not have any secrets")
} }
args := findOrMakeSecretArgs(kustomization, secretName, secretType) args := findOrMakeSecretArgs(kustomization, secretName, namespace, secretType)
if args == nil { if args == nil {
t.Fatalf("args should always be non-nil") t.Fatalf("args should always be non-nil")
@@ -52,7 +53,7 @@ func TestMakeSecretArgs(t *testing.T) {
t.Fatalf("Pointer address for newly inserted secret generator should be same") t.Fatalf("Pointer address for newly inserted secret generator should be same")
} }
args2 := findOrMakeSecretArgs(kustomization, secretName, secretType) args2 := findOrMakeSecretArgs(kustomization, secretName, namespace, secretType)
if args2 != args { if args2 != args {
t.Fatalf("should have returned an existing args with name: %v", secretName) t.Fatalf("should have returned an existing args with name: %v", secretName)
@@ -65,7 +66,7 @@ func TestMakeSecretArgs(t *testing.T) {
func TestMergeFlagsIntoSecretArgs_LiteralSources(t *testing.T) { func TestMergeFlagsIntoSecretArgs_LiteralSources(t *testing.T) {
k := &types.Kustomization{} k := &types.Kustomization{}
args := findOrMakeSecretArgs(k, "foo", "forbidden") args := findOrMakeSecretArgs(k, "foo", "bar", "forbidden")
mergeFlagsIntoGeneratorArgs( mergeFlagsIntoGeneratorArgs(
&args.GeneratorArgs, &args.GeneratorArgs,
flagsAndArgs{LiteralSources: []string{"k1=v1"}}) flagsAndArgs{LiteralSources: []string{"k1=v1"}})
@@ -82,7 +83,7 @@ func TestMergeFlagsIntoSecretArgs_LiteralSources(t *testing.T) {
func TestMergeFlagsIntoSecretArgs_FileSources(t *testing.T) { func TestMergeFlagsIntoSecretArgs_FileSources(t *testing.T) {
k := &types.Kustomization{} k := &types.Kustomization{}
args := findOrMakeSecretArgs(k, "foo", "forbidden") args := findOrMakeSecretArgs(k, "foo", "bar", "forbidden")
mergeFlagsIntoGeneratorArgs( mergeFlagsIntoGeneratorArgs(
&args.GeneratorArgs, &args.GeneratorArgs,
flagsAndArgs{FileSources: []string{"file1"}}) flagsAndArgs{FileSources: []string{"file1"}})
@@ -99,7 +100,7 @@ func TestMergeFlagsIntoSecretArgs_FileSources(t *testing.T) {
func TestMergeFlagsIntoSecretArgs_EnvSource(t *testing.T) { func TestMergeFlagsIntoSecretArgs_EnvSource(t *testing.T) {
k := &types.Kustomization{} k := &types.Kustomization{}
args := findOrMakeSecretArgs(k, "foo", "forbidden") args := findOrMakeSecretArgs(k, "foo", "bar", "forbidden")
mergeFlagsIntoGeneratorArgs( mergeFlagsIntoGeneratorArgs(
&args.GeneratorArgs, &args.GeneratorArgs,
flagsAndArgs{EnvFileSource: "env1"}) flagsAndArgs{EnvFileSource: "env1"})