mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-06-10 08:20:59 +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
|
||||
// Type of secret to create
|
||||
Type string
|
||||
// Namespace of secret
|
||||
Namespace string
|
||||
}
|
||||
|
||||
// Validate validates required fields are set to support structured generation.
|
||||
|
||||
@@ -86,6 +86,11 @@ func newCmdAddSecret(
|
||||
"type",
|
||||
"Opaque",
|
||||
"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
|
||||
}
|
||||
@@ -97,7 +102,7 @@ func addSecret(
|
||||
ldr ifc.KvLoader,
|
||||
k *types.Kustomization,
|
||||
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)
|
||||
// Validate by trying to create corev1.secret.
|
||||
_, err := kf.MakeSecret(ldr, k.GeneratorOptions, args)
|
||||
@@ -107,16 +112,17 @@ func addSecret(
|
||||
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 {
|
||||
if name == v.Name {
|
||||
if name == v.Name && namespace == v.Namespace {
|
||||
return &m.SecretGenerator[i]
|
||||
}
|
||||
}
|
||||
// secret not found, create new one and add it to the kustomization file.
|
||||
secret := &types.SecretArgs{
|
||||
GeneratorArgs: types.GeneratorArgs{Name: name},
|
||||
Type: secretType}
|
||||
GeneratorArgs: types.GeneratorArgs{Name: name, Namespace: namespace},
|
||||
Type: secretType,
|
||||
}
|
||||
m.SecretGenerator = append(m.SecretGenerator, *secret)
|
||||
return &m.SecretGenerator[len(m.SecretGenerator)-1]
|
||||
}
|
||||
|
||||
@@ -28,6 +28,7 @@ func TestNewCmdAddSecretIsNotNil(t *testing.T) {
|
||||
|
||||
func TestMakeSecretArgs(t *testing.T) {
|
||||
secretName := "test-secret-name"
|
||||
namespace := "test-secret-namespace"
|
||||
|
||||
kustomization := &types.Kustomization{
|
||||
NamePrefix: "test-name-prefix",
|
||||
@@ -38,7 +39,7 @@ func TestMakeSecretArgs(t *testing.T) {
|
||||
if len(kustomization.SecretGenerator) != 0 {
|
||||
t.Fatal("Initial kustomization should not have any secrets")
|
||||
}
|
||||
args := findOrMakeSecretArgs(kustomization, secretName, secretType)
|
||||
args := findOrMakeSecretArgs(kustomization, secretName, namespace, secretType)
|
||||
|
||||
if args == 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")
|
||||
}
|
||||
|
||||
args2 := findOrMakeSecretArgs(kustomization, secretName, secretType)
|
||||
args2 := findOrMakeSecretArgs(kustomization, secretName, namespace, secretType)
|
||||
|
||||
if args2 != args {
|
||||
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) {
|
||||
k := &types.Kustomization{}
|
||||
args := findOrMakeSecretArgs(k, "foo", "forbidden")
|
||||
args := findOrMakeSecretArgs(k, "foo", "bar", "forbidden")
|
||||
mergeFlagsIntoGeneratorArgs(
|
||||
&args.GeneratorArgs,
|
||||
flagsAndArgs{LiteralSources: []string{"k1=v1"}})
|
||||
@@ -82,7 +83,7 @@ func TestMergeFlagsIntoSecretArgs_LiteralSources(t *testing.T) {
|
||||
|
||||
func TestMergeFlagsIntoSecretArgs_FileSources(t *testing.T) {
|
||||
k := &types.Kustomization{}
|
||||
args := findOrMakeSecretArgs(k, "foo", "forbidden")
|
||||
args := findOrMakeSecretArgs(k, "foo", "bar", "forbidden")
|
||||
mergeFlagsIntoGeneratorArgs(
|
||||
&args.GeneratorArgs,
|
||||
flagsAndArgs{FileSources: []string{"file1"}})
|
||||
@@ -99,7 +100,7 @@ func TestMergeFlagsIntoSecretArgs_FileSources(t *testing.T) {
|
||||
|
||||
func TestMergeFlagsIntoSecretArgs_EnvSource(t *testing.T) {
|
||||
k := &types.Kustomization{}
|
||||
args := findOrMakeSecretArgs(k, "foo", "forbidden")
|
||||
args := findOrMakeSecretArgs(k, "foo", "bar", "forbidden")
|
||||
mergeFlagsIntoGeneratorArgs(
|
||||
&args.GeneratorArgs,
|
||||
flagsAndArgs{EnvFileSource: "env1"})
|
||||
|
||||
Reference in New Issue
Block a user