mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-06-12 01:14:22 +00:00
Merge pull request #494 from Liujingfang1/generatoroptions
allow add labels/annotations to generated resources
This commit is contained in:
@@ -55,7 +55,7 @@ func (f *ConfigMapFactory) makeFreshConfigMap(
|
|||||||
|
|
||||||
// MakeConfigMap returns a new ConfigMap, or nil and an error.
|
// MakeConfigMap returns a new ConfigMap, or nil and an error.
|
||||||
func (f *ConfigMapFactory) MakeConfigMap(
|
func (f *ConfigMapFactory) MakeConfigMap(
|
||||||
args *types.ConfigMapArgs) (*corev1.ConfigMap, error) {
|
args *types.ConfigMapArgs, options *types.GeneratorOptions) (*corev1.ConfigMap, error) {
|
||||||
var all []kvPair
|
var all []kvPair
|
||||||
var err error
|
var err error
|
||||||
cm := f.makeFreshConfigMap(args)
|
cm := f.makeFreshConfigMap(args)
|
||||||
@@ -88,6 +88,10 @@ func (f *ConfigMapFactory) MakeConfigMap(
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if options != nil {
|
||||||
|
cm.SetLabels(options.Labels)
|
||||||
|
cm.SetAnnotations(options.Annotations)
|
||||||
|
}
|
||||||
return cm, nil
|
return cm, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ BAR=baz
|
|||||||
}
|
}
|
||||||
|
|
||||||
func makeLiteralConfigMap(name string) *corev1.ConfigMap {
|
func makeLiteralConfigMap(name string) *corev1.ConfigMap {
|
||||||
return &corev1.ConfigMap{
|
cm := &corev1.ConfigMap{
|
||||||
TypeMeta: metav1.TypeMeta{
|
TypeMeta: metav1.TypeMeta{
|
||||||
APIVersion: "v1",
|
APIVersion: "v1",
|
||||||
Kind: "ConfigMap",
|
Kind: "ConfigMap",
|
||||||
@@ -76,12 +76,15 @@ func makeLiteralConfigMap(name string) *corev1.ConfigMap {
|
|||||||
"d": "true",
|
"d": "true",
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
cm.SetLabels(map[string]string{"foo": "bar"})
|
||||||
|
return cm
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestConstructConfigMap(t *testing.T) {
|
func TestConstructConfigMap(t *testing.T) {
|
||||||
type testCase struct {
|
type testCase struct {
|
||||||
description string
|
description string
|
||||||
input types.ConfigMapArgs
|
input types.ConfigMapArgs
|
||||||
|
options *types.GeneratorOptions
|
||||||
expected *corev1.ConfigMap
|
expected *corev1.ConfigMap
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -94,6 +97,7 @@ func TestConstructConfigMap(t *testing.T) {
|
|||||||
EnvSource: "configmap/app.env",
|
EnvSource: "configmap/app.env",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
options: nil,
|
||||||
expected: makeEnvConfigMap("envConfigMap"),
|
expected: makeEnvConfigMap("envConfigMap"),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -104,6 +108,7 @@ func TestConstructConfigMap(t *testing.T) {
|
|||||||
FileSources: []string{"configmap/app-init.ini"},
|
FileSources: []string{"configmap/app-init.ini"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
options: nil,
|
||||||
expected: makeFileConfigMap("fileConfigMap"),
|
expected: makeFileConfigMap("fileConfigMap"),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -114,6 +119,11 @@ func TestConstructConfigMap(t *testing.T) {
|
|||||||
LiteralSources: []string{"a=x", "b=y", "c=\"Hello World\"", "d='true'"},
|
LiteralSources: []string{"a=x", "b=y", "c=\"Hello World\"", "d='true'"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
options: &types.GeneratorOptions{
|
||||||
|
Labels: map[string]string{
|
||||||
|
"foo": "bar",
|
||||||
|
},
|
||||||
|
},
|
||||||
expected: makeLiteralConfigMap("literalConfigMap"),
|
expected: makeLiteralConfigMap("literalConfigMap"),
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
@@ -123,7 +133,7 @@ func TestConstructConfigMap(t *testing.T) {
|
|||||||
fSys.WriteFile("configmap/app-init.ini", []byte("FOO=bar\nBAR=baz\n"))
|
fSys.WriteFile("configmap/app-init.ini", []byte("FOO=bar\nBAR=baz\n"))
|
||||||
f := NewConfigMapFactory(fSys, loader.NewFileLoader(fSys))
|
f := NewConfigMapFactory(fSys, loader.NewFileLoader(fSys))
|
||||||
for _, tc := range testCases {
|
for _, tc := range testCases {
|
||||||
cm, err := f.MakeConfigMap(&tc.input)
|
cm, err := f.MakeConfigMap(&tc.input, tc.options)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("unexpected error: %v", err)
|
t.Fatalf("unexpected error: %v", err)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ func (f *SecretFactory) makeFreshSecret(args *types.SecretArgs) *corev1.Secret {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// MakeSecret returns a new secret.
|
// MakeSecret returns a new secret.
|
||||||
func (f *SecretFactory) MakeSecret(args *types.SecretArgs) (*corev1.Secret, error) {
|
func (f *SecretFactory) MakeSecret(args *types.SecretArgs, options *types.GeneratorOptions) (*corev1.Secret, error) {
|
||||||
var all []kvPair
|
var all []kvPair
|
||||||
var err error
|
var err error
|
||||||
s := f.makeFreshSecret(args)
|
s := f.makeFreshSecret(args)
|
||||||
@@ -91,7 +91,10 @@ func (f *SecretFactory) MakeSecret(args *types.SecretArgs) (*corev1.Secret, erro
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if options != nil {
|
||||||
|
s.SetLabels(options.Labels)
|
||||||
|
s.SetAnnotations(options.Annotations)
|
||||||
|
}
|
||||||
return s, nil
|
return s, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -72,8 +72,8 @@ func (kf *KunstructurerFactoryImpl) FromMap(
|
|||||||
}
|
}
|
||||||
|
|
||||||
// MakeConfigMap returns an instance of Kunstructured for ConfigMap
|
// MakeConfigMap returns an instance of Kunstructured for ConfigMap
|
||||||
func (kf *KunstructurerFactoryImpl) MakeConfigMap(args *types.ConfigMapArgs) (ifc.Kunstructured, error) {
|
func (kf *KunstructurerFactoryImpl) MakeConfigMap(args *types.ConfigMapArgs, options *types.GeneratorOptions) (ifc.Kunstructured, error) {
|
||||||
cm, err := kf.cmfactory.MakeConfigMap(args)
|
cm, err := kf.cmfactory.MakeConfigMap(args, options)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -81,8 +81,8 @@ func (kf *KunstructurerFactoryImpl) MakeConfigMap(args *types.ConfigMapArgs) (if
|
|||||||
}
|
}
|
||||||
|
|
||||||
// MakeSecret returns an instance of Kunstructured for Secret
|
// MakeSecret returns an instance of Kunstructured for Secret
|
||||||
func (kf *KunstructurerFactoryImpl) MakeSecret(args *types.SecretArgs) (ifc.Kunstructured, error) {
|
func (kf *KunstructurerFactoryImpl) MakeSecret(args *types.SecretArgs, options *types.GeneratorOptions) (ifc.Kunstructured, error) {
|
||||||
sec, err := kf.secfactory.MakeSecret(args)
|
sec, err := kf.secfactory.MakeSecret(args, options)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -111,7 +111,7 @@ func addConfigMap(
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
// Validate by trying to create corev1.configmap.
|
// Validate by trying to create corev1.configmap.
|
||||||
_, err = kf.MakeConfigMap(cmArgs)
|
_, err = kf.MakeConfigMap(cmArgs, k.GeneratorOptions)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -65,8 +65,8 @@ type Kunstructured interface {
|
|||||||
type KunstructuredFactory interface {
|
type KunstructuredFactory interface {
|
||||||
SliceFromBytes([]byte) ([]Kunstructured, error)
|
SliceFromBytes([]byte) ([]Kunstructured, error)
|
||||||
FromMap(m map[string]interface{}) Kunstructured
|
FromMap(m map[string]interface{}) Kunstructured
|
||||||
MakeConfigMap(args *types.ConfigMapArgs) (Kunstructured, error)
|
MakeConfigMap(args *types.ConfigMapArgs, options *types.GeneratorOptions) (Kunstructured, error)
|
||||||
MakeSecret(args *types.SecretArgs) (Kunstructured, error)
|
MakeSecret(args *types.SecretArgs, options *types.GeneratorOptions) (Kunstructured, error)
|
||||||
Set(fs fs.FileSystem, ldr Loader)
|
Set(fs fs.FileSystem, ldr Loader)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -80,10 +80,10 @@ func (rmF *Factory) newResMapFromBytes(b []byte) (ResMap, error) {
|
|||||||
|
|
||||||
// NewResMapFromConfigMapArgs returns a Resource slice given
|
// NewResMapFromConfigMapArgs returns a Resource slice given
|
||||||
// a configmap metadata slice from kustomization file.
|
// a configmap metadata slice from kustomization file.
|
||||||
func (rmF *Factory) NewResMapFromConfigMapArgs(argList []types.ConfigMapArgs) (ResMap, error) {
|
func (rmF *Factory) NewResMapFromConfigMapArgs(argList []types.ConfigMapArgs, options *types.GeneratorOptions) (ResMap, error) {
|
||||||
var resources []*resource.Resource
|
var resources []*resource.Resource
|
||||||
for _, args := range argList {
|
for _, args := range argList {
|
||||||
res, err := rmF.resF.MakeConfigMap(&args)
|
res, err := rmF.resF.MakeConfigMap(&args, options)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, errors.Wrap(err, "NewResMapFromConfigMapArgs")
|
return nil, errors.Wrap(err, "NewResMapFromConfigMapArgs")
|
||||||
}
|
}
|
||||||
@@ -94,10 +94,10 @@ func (rmF *Factory) NewResMapFromConfigMapArgs(argList []types.ConfigMapArgs) (R
|
|||||||
|
|
||||||
// NewResMapFromSecretArgs takes a SecretArgs slice, generates
|
// NewResMapFromSecretArgs takes a SecretArgs slice, generates
|
||||||
// secrets from each entry, and accumulates them in a ResMap.
|
// secrets from each entry, and accumulates them in a ResMap.
|
||||||
func (rmF *Factory) NewResMapFromSecretArgs(argsList []types.SecretArgs) (ResMap, error) {
|
func (rmF *Factory) NewResMapFromSecretArgs(argsList []types.SecretArgs, options *types.GeneratorOptions) (ResMap, error) {
|
||||||
var resources []*resource.Resource
|
var resources []*resource.Resource
|
||||||
for _, args := range argsList {
|
for _, args := range argsList {
|
||||||
res, err := rmF.resF.MakeSecret(&args)
|
res, err := rmF.resF.MakeSecret(&args, options)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, errors.Wrap(err, "NewResMapFromSecretArgs")
|
return nil, errors.Wrap(err, "NewResMapFromSecretArgs")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -236,7 +236,7 @@ BAR=baz
|
|||||||
if ferr := l.AddFile(tc.filepath, []byte(tc.content)); ferr != nil {
|
if ferr := l.AddFile(tc.filepath, []byte(tc.content)); ferr != nil {
|
||||||
t.Fatalf("Error adding fake file: %v\n", ferr)
|
t.Fatalf("Error adding fake file: %v\n", ferr)
|
||||||
}
|
}
|
||||||
r, err := rmF.NewResMapFromConfigMapArgs(tc.input)
|
r, err := rmF.NewResMapFromConfigMapArgs(tc.input, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("unexpected error: %v", err)
|
t.Fatalf("unexpected error: %v", err)
|
||||||
}
|
}
|
||||||
@@ -271,7 +271,7 @@ func TestNewResMapFromSecretArgs(t *testing.T) {
|
|||||||
fakeFs := fs.MakeFakeFS()
|
fakeFs := fs.MakeFakeFS()
|
||||||
fakeFs.Mkdir(".")
|
fakeFs.Mkdir(".")
|
||||||
rmF.Set(fakeFs, loader.NewFileLoader(fakeFs))
|
rmF.Set(fakeFs, loader.NewFileLoader(fakeFs))
|
||||||
actual, err := rmF.NewResMapFromSecretArgs(secrets)
|
actual, err := rmF.NewResMapFromSecretArgs(secrets, nil)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("unexpected error: %v", err)
|
t.Fatalf("unexpected error: %v", err)
|
||||||
@@ -327,7 +327,7 @@ func TestSecretTimeout(t *testing.T) {
|
|||||||
fakeFs := fs.MakeFakeFS()
|
fakeFs := fs.MakeFakeFS()
|
||||||
fakeFs.Mkdir(".")
|
fakeFs.Mkdir(".")
|
||||||
rmF.Set(fakeFs, loader.NewFileLoader(fakeFs))
|
rmF.Set(fakeFs, loader.NewFileLoader(fakeFs))
|
||||||
_, err := rmF.NewResMapFromSecretArgs(secrets)
|
_, err := rmF.NewResMapFromSecretArgs(secrets, nil)
|
||||||
|
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Fatal("didn't get the expected timeout error", err)
|
t.Fatal("didn't get the expected timeout error", err)
|
||||||
|
|||||||
@@ -90,8 +90,8 @@ func (rf *Factory) Set(fs fs.FileSystem, ldr ifc.Loader) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// MakeConfigMap makes an instance of Resource for ConfigMap
|
// MakeConfigMap makes an instance of Resource for ConfigMap
|
||||||
func (rf *Factory) MakeConfigMap(args *types.ConfigMapArgs) (*Resource, error) {
|
func (rf *Factory) MakeConfigMap(args *types.ConfigMapArgs, options *types.GeneratorOptions) (*Resource, error) {
|
||||||
u, err := rf.kf.MakeConfigMap(args)
|
u, err := rf.kf.MakeConfigMap(args, options)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -99,8 +99,8 @@ func (rf *Factory) MakeConfigMap(args *types.ConfigMapArgs) (*Resource, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// MakeSecret makes an instance of Resource for Secret
|
// MakeSecret makes an instance of Resource for Secret
|
||||||
func (rf *Factory) MakeSecret(args *types.SecretArgs) (*Resource, error) {
|
func (rf *Factory) MakeSecret(args *types.SecretArgs, options *types.GeneratorOptions) (*Resource, error) {
|
||||||
u, err := rf.kf.MakeSecret(args)
|
u, err := rf.kf.MakeSecret(args, options)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -186,11 +186,11 @@ func (kt *KustTarget) loadCustomizedResMap() (resmap.ResMap, error) {
|
|||||||
func (kt *KustTarget) generateConfigMapsAndSecrets(
|
func (kt *KustTarget) generateConfigMapsAndSecrets(
|
||||||
errs *interror.KustomizationErrors) (resmap.ResMap, error) {
|
errs *interror.KustomizationErrors) (resmap.ResMap, error) {
|
||||||
kt.rf.Set(kt.fSys, kt.ldr)
|
kt.rf.Set(kt.fSys, kt.ldr)
|
||||||
cms, err := kt.rf.NewResMapFromConfigMapArgs(kt.kustomization.ConfigMapGenerator)
|
cms, err := kt.rf.NewResMapFromConfigMapArgs(kt.kustomization.ConfigMapGenerator, kt.kustomization.GeneratorOptions)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
errs.Append(errors.Wrap(err, "NewResMapFromConfigMapArgs"))
|
errs.Append(errors.Wrap(err, "NewResMapFromConfigMapArgs"))
|
||||||
}
|
}
|
||||||
secrets, err := kt.rf.NewResMapFromSecretArgs(kt.kustomization.SecretGenerator)
|
secrets, err := kt.rf.NewResMapFromSecretArgs(kt.kustomization.SecretGenerator, kt.kustomization.GeneratorOptions)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
errs.Append(errors.Wrap(err, "NewResMapFromSecretArgs"))
|
errs.Append(errors.Wrap(err, "NewResMapFromSecretArgs"))
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user