Skip to content

Commit 0cb02f1

Browse files
committed
allow add labels/annotations to generated resources
1 parent 8b09afd commit 0cb02f1

File tree

10 files changed

+42
-25
lines changed

10 files changed

+42
-25
lines changed

internal/k8sdeps/configmapandsecret/configmapfactory.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ func (f *ConfigMapFactory) makeFreshConfigMap(
5555

5656
// MakeConfigMap returns a new ConfigMap, or nil and an error.
5757
func (f *ConfigMapFactory) MakeConfigMap(
58-
args *types.ConfigMapArgs) (*corev1.ConfigMap, error) {
58+
args *types.ConfigMapArgs, options *types.GeneratorOptions) (*corev1.ConfigMap, error) {
5959
var all []kvPair
6060
var err error
6161
cm := f.makeFreshConfigMap(args)
@@ -88,6 +88,10 @@ func (f *ConfigMapFactory) MakeConfigMap(
8888
return nil, err
8989
}
9090
}
91+
if options != nil {
92+
cm.SetLabels(options.Labels)
93+
cm.SetAnnotations(options.Annotations)
94+
}
9195
return cm, nil
9296
}
9397

internal/k8sdeps/configmapandsecret/configmapfactory_test.go

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ BAR=baz
6161
}
6262

6363
func makeLiteralConfigMap(name string) *corev1.ConfigMap {
64-
return &corev1.ConfigMap{
64+
cm := &corev1.ConfigMap{
6565
TypeMeta: metav1.TypeMeta{
6666
APIVersion: "v1",
6767
Kind: "ConfigMap",
@@ -76,12 +76,15 @@ func makeLiteralConfigMap(name string) *corev1.ConfigMap {
7676
"d": "true",
7777
},
7878
}
79+
cm.SetLabels(map[string]string{"foo": "bar"})
80+
return cm
7981
}
8082

8183
func TestConstructConfigMap(t *testing.T) {
8284
type testCase struct {
8385
description string
8486
input types.ConfigMapArgs
87+
options *types.GeneratorOptions
8588
expected *corev1.ConfigMap
8689
}
8790

@@ -94,6 +97,7 @@ func TestConstructConfigMap(t *testing.T) {
9497
EnvSource: "configmap/app.env",
9598
},
9699
},
100+
options: nil,
97101
expected: makeEnvConfigMap("envConfigMap"),
98102
},
99103
{
@@ -104,6 +108,7 @@ func TestConstructConfigMap(t *testing.T) {
104108
FileSources: []string{"configmap/app-init.ini"},
105109
},
106110
},
111+
options: nil,
107112
expected: makeFileConfigMap("fileConfigMap"),
108113
},
109114
{
@@ -114,6 +119,11 @@ func TestConstructConfigMap(t *testing.T) {
114119
LiteralSources: []string{"a=x", "b=y", "c=\"Hello World\"", "d='true'"},
115120
},
116121
},
122+
options: &types.GeneratorOptions{
123+
Labels: map[string]string{
124+
"foo": "bar",
125+
},
126+
},
117127
expected: makeLiteralConfigMap("literalConfigMap"),
118128
},
119129
}
@@ -123,7 +133,7 @@ func TestConstructConfigMap(t *testing.T) {
123133
fSys.WriteFile("configmap/app-init.ini", []byte("FOO=bar\nBAR=baz\n"))
124134
f := NewConfigMapFactory(fSys, loader.NewFileLoader(fSys))
125135
for _, tc := range testCases {
126-
cm, err := f.MakeConfigMap(&tc.input)
136+
cm, err := f.MakeConfigMap(&tc.input, tc.options)
127137
if err != nil {
128138
t.Fatalf("unexpected error: %v", err)
129139
}

internal/k8sdeps/configmapandsecret/secretfactory.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ func (f *SecretFactory) makeFreshSecret(args *types.SecretArgs) *corev1.Secret {
6060
}
6161

6262
// MakeSecret returns a new secret.
63-
func (f *SecretFactory) MakeSecret(args *types.SecretArgs) (*corev1.Secret, error) {
63+
func (f *SecretFactory) MakeSecret(args *types.SecretArgs, options *types.GeneratorOptions) (*corev1.Secret, error) {
6464
var all []kvPair
6565
var err error
6666
s := f.makeFreshSecret(args)
@@ -91,7 +91,10 @@ func (f *SecretFactory) MakeSecret(args *types.SecretArgs) (*corev1.Secret, erro
9191
return nil, err
9292
}
9393
}
94-
94+
if options != nil {
95+
s.SetLabels(options.Labels)
96+
s.SetAnnotations(options.Annotations)
97+
}
9598
return s, nil
9699
}
97100

internal/k8sdeps/kunstruct/factory.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -72,17 +72,17 @@ func (kf *KunstructurerFactoryImpl) FromMap(
7272
}
7373

7474
// MakeConfigMap returns an instance of Kunstructured for ConfigMap
75-
func (kf *KunstructurerFactoryImpl) MakeConfigMap(args *types.ConfigMapArgs) (ifc.Kunstructured, error) {
76-
cm, err := kf.cmfactory.MakeConfigMap(args)
75+
func (kf *KunstructurerFactoryImpl) MakeConfigMap(args *types.ConfigMapArgs, options *types.GeneratorOptions) (ifc.Kunstructured, error) {
76+
cm, err := kf.cmfactory.MakeConfigMap(args, options)
7777
if err != nil {
7878
return nil, err
7979
}
8080
return NewKunstructuredFromObject(cm)
8181
}
8282

8383
// MakeSecret returns an instance of Kunstructured for Secret
84-
func (kf *KunstructurerFactoryImpl) MakeSecret(args *types.SecretArgs) (ifc.Kunstructured, error) {
85-
sec, err := kf.secfactory.MakeSecret(args)
84+
func (kf *KunstructurerFactoryImpl) MakeSecret(args *types.SecretArgs, options *types.GeneratorOptions) (ifc.Kunstructured, error) {
85+
sec, err := kf.secfactory.MakeSecret(args, options)
8686
if err != nil {
8787
return nil, err
8888
}

pkg/commands/edit/add/configmap.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ func addConfigMap(
111111
return err
112112
}
113113
// Validate by trying to create corev1.configmap.
114-
_, err = kf.MakeConfigMap(cmArgs)
114+
_, err = kf.MakeConfigMap(cmArgs, k.GeneratorOptions)
115115
if err != nil {
116116
return err
117117
}

pkg/ifc/ifc.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,8 @@ type Kunstructured interface {
6565
type KunstructuredFactory interface {
6666
SliceFromBytes([]byte) ([]Kunstructured, error)
6767
FromMap(m map[string]interface{}) Kunstructured
68-
MakeConfigMap(args *types.ConfigMapArgs) (Kunstructured, error)
69-
MakeSecret(args *types.SecretArgs) (Kunstructured, error)
68+
MakeConfigMap(args *types.ConfigMapArgs, options *types.GeneratorOptions) (Kunstructured, error)
69+
MakeSecret(args *types.SecretArgs, options *types.GeneratorOptions) (Kunstructured, error)
7070
Set(fs fs.FileSystem, ldr Loader)
7171
}
7272

pkg/resmap/factory.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -80,10 +80,10 @@ func (rmF *Factory) newResMapFromBytes(b []byte) (ResMap, error) {
8080

8181
// NewResMapFromConfigMapArgs returns a Resource slice given
8282
// a configmap metadata slice from kustomization file.
83-
func (rmF *Factory) NewResMapFromConfigMapArgs(argList []types.ConfigMapArgs) (ResMap, error) {
83+
func (rmF *Factory) NewResMapFromConfigMapArgs(argList []types.ConfigMapArgs, options *types.GeneratorOptions) (ResMap, error) {
8484
var resources []*resource.Resource
8585
for _, args := range argList {
86-
res, err := rmF.resF.MakeConfigMap(&args)
86+
res, err := rmF.resF.MakeConfigMap(&args, options)
8787
if err != nil {
8888
return nil, errors.Wrap(err, "NewResMapFromConfigMapArgs")
8989
}
@@ -94,10 +94,10 @@ func (rmF *Factory) NewResMapFromConfigMapArgs(argList []types.ConfigMapArgs) (R
9494

9595
// NewResMapFromSecretArgs takes a SecretArgs slice, generates
9696
// secrets from each entry, and accumulates them in a ResMap.
97-
func (rmF *Factory) NewResMapFromSecretArgs(argsList []types.SecretArgs) (ResMap, error) {
97+
func (rmF *Factory) NewResMapFromSecretArgs(argsList []types.SecretArgs, options *types.GeneratorOptions) (ResMap, error) {
9898
var resources []*resource.Resource
9999
for _, args := range argsList {
100-
res, err := rmF.resF.MakeSecret(&args)
100+
res, err := rmF.resF.MakeSecret(&args, options)
101101
if err != nil {
102102
return nil, errors.Wrap(err, "NewResMapFromSecretArgs")
103103
}

pkg/resmap/factory_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,7 @@ BAR=baz
236236
if ferr := l.AddFile(tc.filepath, []byte(tc.content)); ferr != nil {
237237
t.Fatalf("Error adding fake file: %v\n", ferr)
238238
}
239-
r, err := rmF.NewResMapFromConfigMapArgs(tc.input)
239+
r, err := rmF.NewResMapFromConfigMapArgs(tc.input, nil)
240240
if err != nil {
241241
t.Fatalf("unexpected error: %v", err)
242242
}
@@ -271,7 +271,7 @@ func TestNewResMapFromSecretArgs(t *testing.T) {
271271
fakeFs := fs.MakeFakeFS()
272272
fakeFs.Mkdir(".")
273273
rmF.Set(fakeFs, loader.NewFileLoader(fakeFs))
274-
actual, err := rmF.NewResMapFromSecretArgs(secrets)
274+
actual, err := rmF.NewResMapFromSecretArgs(secrets, nil)
275275

276276
if err != nil {
277277
t.Fatalf("unexpected error: %v", err)
@@ -327,7 +327,7 @@ func TestSecretTimeout(t *testing.T) {
327327
fakeFs := fs.MakeFakeFS()
328328
fakeFs.Mkdir(".")
329329
rmF.Set(fakeFs, loader.NewFileLoader(fakeFs))
330-
_, err := rmF.NewResMapFromSecretArgs(secrets)
330+
_, err := rmF.NewResMapFromSecretArgs(secrets, nil)
331331

332332
if err == nil {
333333
t.Fatal("didn't get the expected timeout error", err)

pkg/resource/factory.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -90,17 +90,17 @@ func (rf *Factory) Set(fs fs.FileSystem, ldr ifc.Loader) {
9090
}
9191

9292
// MakeConfigMap makes an instance of Resource for ConfigMap
93-
func (rf *Factory) MakeConfigMap(args *types.ConfigMapArgs) (*Resource, error) {
94-
u, err := rf.kf.MakeConfigMap(args)
93+
func (rf *Factory) MakeConfigMap(args *types.ConfigMapArgs, options *types.GeneratorOptions) (*Resource, error) {
94+
u, err := rf.kf.MakeConfigMap(args, options)
9595
if err != nil {
9696
return nil, err
9797
}
9898
return &Resource{Kunstructured: u, b: fixBehavior(args.Behavior)}, nil
9999
}
100100

101101
// MakeSecret makes an instance of Resource for Secret
102-
func (rf *Factory) MakeSecret(args *types.SecretArgs) (*Resource, error) {
103-
u, err := rf.kf.MakeSecret(args)
102+
func (rf *Factory) MakeSecret(args *types.SecretArgs, options *types.GeneratorOptions) (*Resource, error) {
103+
u, err := rf.kf.MakeSecret(args, options)
104104
if err != nil {
105105
return nil, err
106106
}

pkg/target/kusttarget.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -186,11 +186,11 @@ func (kt *KustTarget) loadCustomizedResMap() (resmap.ResMap, error) {
186186
func (kt *KustTarget) generateConfigMapsAndSecrets(
187187
errs *interror.KustomizationErrors) (resmap.ResMap, error) {
188188
kt.rf.Set(kt.fSys, kt.ldr)
189-
cms, err := kt.rf.NewResMapFromConfigMapArgs(kt.kustomization.ConfigMapGenerator)
189+
cms, err := kt.rf.NewResMapFromConfigMapArgs(kt.kustomization.ConfigMapGenerator, kt.kustomization.GeneratorOptions)
190190
if err != nil {
191191
errs.Append(errors.Wrap(err, "NewResMapFromConfigMapArgs"))
192192
}
193-
secrets, err := kt.rf.NewResMapFromSecretArgs(kt.kustomization.SecretGenerator)
193+
secrets, err := kt.rf.NewResMapFromSecretArgs(kt.kustomization.SecretGenerator, kt.kustomization.GeneratorOptions)
194194
if err != nil {
195195
errs.Append(errors.Wrap(err, "NewResMapFromSecretArgs"))
196196
}

0 commit comments

Comments
 (0)