mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-06-12 01:14:22 +00:00
Merge pull request #2094 from arthurgustin/master
Add --namespace option to kustomize edit add secret command
This commit is contained in:
@@ -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.
|
||||||
|
|||||||
@@ -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]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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"})
|
||||||
|
|||||||
Reference in New Issue
Block a user