Skip to content

Commit 6ad5d9f

Browse files
committed
Add namespace for config map and secret generators
1 parent 8a8331b commit 6ad5d9f

File tree

8 files changed

+72
-0
lines changed

8 files changed

+72
-0
lines changed

docs/kustomization.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,13 @@ secretGenerator:
9494
tls.crt: "cat secret/tls.cert"
9595
tls.key: "cat secret/tls.key"
9696
type: "kubernetes.io/tls"
97+
- name: app-tls-namespaced
98+
# you can define a namespace to generate secret in, defaults to: "default"
99+
namspace: apps
100+
commands:
101+
tls.crt: "cat secret/tls.cert"
102+
tls.key: "cat secret/tls.key"
103+
type: "kubernetes.io/tls"
97104
- name: downloaded_secret
98105
# timeoutSeconds specifies the number of seconds to
99106
# wait for the commands below. It defaults to 5 seconds.

k8sdeps/configmapandsecret/configmapfactory.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ func (f *ConfigMapFactory) makeFreshConfigMap(
4949
cm.APIVersion = "v1"
5050
cm.Kind = "ConfigMap"
5151
cm.Name = args.Name
52+
cm.Namespace = args.Namespace
5253
cm.Data = map[string]string{}
5354
return cm
5455
}

k8sdeps/configmapandsecret/secretfactory.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ func (f *SecretFactory) makeFreshSecret(args *types.SecretArgs) *corev1.Secret {
5252
s.APIVersion = "v1"
5353
s.Kind = "Secret"
5454
s.Name = args.Name
55+
s.Namespace = args.Namespace
5556
s.Type = corev1.SecretType(args.Type)
5657
if s.Type == "" {
5758
s.Type = corev1.SecretTypeOpaque
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
apiVersion: v1
2+
data:
3+
altGreeting: Good Morning from default namespace!
4+
enableRisky: "false"
5+
kind: ConfigMap
6+
metadata:
7+
name: the-map-4959m5tm6c
8+
---
9+
apiVersion: v1
10+
data:
11+
altGreeting: Good Morning from non-default namespace!
12+
enableRisky: "false"
13+
kind: ConfigMap
14+
metadata:
15+
name: the-non-default-namespace-map-b6h49k7mt8
16+
namespace: non-default
17+
---
18+
apiVersion: v1
19+
data:
20+
password.txt: dmVyeSRlY3JldA==
21+
kind: Secret
22+
metadata:
23+
name: the-secret-cfbmct72tb
24+
type: Opaque
25+
---
26+
apiVersion: v1
27+
data:
28+
password.txt: dmVyeSRlY3JldA==
29+
kind: Secret
30+
metadata:
31+
name: the-non-default-namespace-secret-255294gd9d
32+
namespace: non-default
33+
type: Opaque
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
configMapGenerator:
2+
- name: the-non-default-namespace-map
3+
namespace: non-default
4+
literals:
5+
- altGreeting=Good Morning from non-default namespace!
6+
- enableRisky="false"
7+
- name: the-map
8+
literals:
9+
- altGreeting=Good Morning from default namespace!
10+
- enableRisky="false"
11+
12+
secretGenerator:
13+
- name: the-non-default-namespace-secret
14+
namespace: non-default
15+
commands:
16+
password.txt: "cat password.txt"
17+
- name: the-secret
18+
commands:
19+
password.txt: "cat password.txt"
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
very$ecret
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
description: generators-namespace
2+
args: []
3+
filename: testdata/testcase-generators-namespace/in
4+
expectedStdout: testdata/testcase-generators-namespace/expected.yaml

pkg/types/kustomization.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,9 @@ type ConfigMapArgs struct {
153153
// hash(content of configmap).
154154
Name string `json:"name,omitempty" yaml:"name,omitempty"`
155155

156+
// Namespace for the configmap, optional
157+
Namespace string `json:"namespace,omitempty" yaml:"namespace,omitempty"`
158+
156159
// behavior of configmap, must be one of create, merge and replace
157160
// 'create': create a new one;
158161
// 'replace': replace the existing one;
@@ -170,6 +173,9 @@ type SecretArgs struct {
170173
// hash(content of secret).
171174
Name string `json:"name,omitempty" yaml:"name,omitempty"`
172175

176+
// Namespace for the secret, optional
177+
Namespace string `json:"namespace,omitempty" yaml:"namespace,omitempty"`
178+
173179
// behavior of secretGenerator, must be one of create, merge and replace
174180
// 'create': create a new one;
175181
// 'replace': replace the existing one;

0 commit comments

Comments
 (0)