From 2126b6cf2374e0e0eee0be7d15a8f261d9ab197c Mon Sep 17 00:00:00 2001 From: Seth Pollack Date: Sat, 29 Jun 2019 23:28:56 -0400 Subject: [PATCH] use ObjectMeta instead of name and namespace fields --- pkg/target/kusttarget.go | 5 ++--- pkg/target/kusttarget_configplugin.go | 4 ++-- plugin/builtin/ConfigMapGenerator.go | 11 +++++++++-- plugin/builtin/InventoryTransformer.go | 9 ++++----- plugin/builtin/NamespaceTransformer.go | 5 +++-- plugin/builtin/SecretGenerator.go | 11 +++++++++-- .../configmapgenerator/ConfigMapGenerator.go | 11 +++++++++-- .../configmapgenerator/ConfigMapGenerator_test.go | 3 +-- .../inventorytransformer/InventoryTransformer.go | 9 ++++----- .../InventoryTransformer_test.go | 15 ++++++--------- .../namespacetransformer/NamespaceTransformer.go | 3 ++- .../NamespaceTransformer_test.go | 4 ++-- plugin/builtin/secretgenerator/SecretGenerator.go | 11 +++++++++-- .../secretgenerator/SecretGenerator_test.go | 5 ++--- .../v1/secretsfromdatabase/SecretsFromDatabase.go | 7 +++---- .../SecretsFromDatabase_test.go | 5 ++--- .../someservicegenerator/SomeServiceGenerator.go | 8 +++++--- .../SomeServiceGenerator_test.go | 5 +++-- 18 files changed, 77 insertions(+), 54 deletions(-) diff --git a/pkg/target/kusttarget.go b/pkg/target/kusttarget.go index 3005acee7..42215cc92 100644 --- a/pkg/target/kusttarget.go +++ b/pkg/target/kusttarget.go @@ -183,9 +183,8 @@ func (kt *KustTarget) computeInventory( p := builtin.NewInventoryTransformerPlugin() var c struct { - Policy string - Name string - Namespace string + Policy string + types.ObjectMeta `json:"metadata,omitempty" yaml:"metadata,omitempty"` } c.Name = inv.ConfigMap.Name c.Namespace = inv.ConfigMap.Namespace diff --git a/pkg/target/kusttarget_configplugin.go b/pkg/target/kusttarget_configplugin.go index 1cf9e143f..a0e98978c 100644 --- a/pkg/target/kusttarget_configplugin.go +++ b/pkg/target/kusttarget_configplugin.go @@ -129,8 +129,8 @@ func (kt *KustTarget) configureBuiltinNamespaceTransformer( tConfig *config.TransformerConfig) ( result []transformers.Transformer, err error) { var c struct { - Namespace string - FieldSpecs []config.FieldSpec + types.ObjectMeta `json:"metadata,omitempty" yaml:"metadata,omitempty"` + FieldSpecs []config.FieldSpec } c.Namespace = kt.kustomization.Namespace c.FieldSpecs = tConfig.NameSpace diff --git a/plugin/builtin/ConfigMapGenerator.go b/plugin/builtin/ConfigMapGenerator.go index b737a4eda..5bb0c1eb6 100644 --- a/plugin/builtin/ConfigMapGenerator.go +++ b/plugin/builtin/ConfigMapGenerator.go @@ -9,8 +9,9 @@ import ( ) type ConfigMapGeneratorPlugin struct { - ldr ifc.Loader - rf *resmap.Factory + ldr ifc.Loader + rf *resmap.Factory + types.ObjectMeta `json:"metadata,omitempty" yaml:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` types.GeneratorOptions types.ConfigMapArgs } @@ -25,6 +26,12 @@ func (p *ConfigMapGeneratorPlugin) Config( p.GeneratorOptions = types.GeneratorOptions{} p.ConfigMapArgs = types.ConfigMapArgs{} err = yaml.Unmarshal(config, p) + if p.ConfigMapArgs.Name == "" { + p.ConfigMapArgs.Name = p.Name + } + if p.ConfigMapArgs.Namespace == "" { + p.ConfigMapArgs.Namespace = p.Namespace + } p.ldr = ldr p.rf = rf return diff --git a/plugin/builtin/InventoryTransformer.go b/plugin/builtin/InventoryTransformer.go index fdc455108..93419be94 100644 --- a/plugin/builtin/InventoryTransformer.go +++ b/plugin/builtin/InventoryTransformer.go @@ -16,11 +16,10 @@ import ( ) type InventoryTransformerPlugin struct { - ldr ifc.Loader - rf *resmap.Factory - Policy string `json:"policy,omitempty" yaml:"policy,omitempty"` - Name string `json:"name,omitempty" yaml:"name,omitempty"` - Namespace string `json:"namespace,omitempty" yaml:"namespace,omitempty"` + ldr ifc.Loader + rf *resmap.Factory + types.ObjectMeta `json:"metadata,omitempty" yaml:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + Policy string `json:"policy,omitempty" yaml:"policy,omitempty"` } //noinspection GoUnusedGlobalVariable diff --git a/plugin/builtin/NamespaceTransformer.go b/plugin/builtin/NamespaceTransformer.go index 1a47bb842..dd45a6a7f 100644 --- a/plugin/builtin/NamespaceTransformer.go +++ b/plugin/builtin/NamespaceTransformer.go @@ -9,13 +9,14 @@ import ( "sigs.k8s.io/kustomize/v3/pkg/resource" "sigs.k8s.io/kustomize/v3/pkg/transformers" "sigs.k8s.io/kustomize/v3/pkg/transformers/config" + "sigs.k8s.io/kustomize/v3/pkg/types" "sigs.k8s.io/yaml" ) // Change or set the namespace of non-cluster level resources. type NamespaceTransformerPlugin struct { - Namespace string `json:"namespace,omitempty" yaml:"namespace,omitempty"` - FieldSpecs []config.FieldSpec `json:"fieldSpecs,omitempty" yaml:"fieldSpecs,omitempty"` + types.ObjectMeta `json:"metadata,omitempty" yaml:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + FieldSpecs []config.FieldSpec `json:"fieldSpecs,omitempty" yaml:"fieldSpecs,omitempty"` } //noinspection GoUnusedGlobalVariable diff --git a/plugin/builtin/SecretGenerator.go b/plugin/builtin/SecretGenerator.go index 48910e830..ce954f5b4 100644 --- a/plugin/builtin/SecretGenerator.go +++ b/plugin/builtin/SecretGenerator.go @@ -9,8 +9,9 @@ import ( ) type SecretGeneratorPlugin struct { - ldr ifc.Loader - rf *resmap.Factory + ldr ifc.Loader + rf *resmap.Factory + types.ObjectMeta `json:"metadata,omitempty" yaml:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` types.GeneratorOptions types.SecretArgs } @@ -25,6 +26,12 @@ func (p *SecretGeneratorPlugin) Config( p.GeneratorOptions = types.GeneratorOptions{} p.SecretArgs = types.SecretArgs{} err = yaml.Unmarshal(config, p) + if p.SecretArgs.Name == "" { + p.SecretArgs.Name = p.Name + } + if p.SecretArgs.Namespace == "" { + p.SecretArgs.Namespace = p.Namespace + } p.ldr = ldr p.rf = rf return diff --git a/plugin/builtin/configmapgenerator/ConfigMapGenerator.go b/plugin/builtin/configmapgenerator/ConfigMapGenerator.go index 721f4bb9f..596cf6da9 100644 --- a/plugin/builtin/configmapgenerator/ConfigMapGenerator.go +++ b/plugin/builtin/configmapgenerator/ConfigMapGenerator.go @@ -12,8 +12,9 @@ import ( ) type plugin struct { - ldr ifc.Loader - rf *resmap.Factory + ldr ifc.Loader + rf *resmap.Factory + types.ObjectMeta `json:"metadata,omitempty" yaml:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` types.GeneratorOptions types.ConfigMapArgs } @@ -26,6 +27,12 @@ func (p *plugin) Config( p.GeneratorOptions = types.GeneratorOptions{} p.ConfigMapArgs = types.ConfigMapArgs{} err = yaml.Unmarshal(config, p) + if p.ConfigMapArgs.Name == "" { + p.ConfigMapArgs.Name = p.Name + } + if p.ConfigMapArgs.Namespace == "" { + p.ConfigMapArgs.Namespace = p.Namespace + } p.ldr = ldr p.rf = rf return diff --git a/plugin/builtin/configmapgenerator/ConfigMapGenerator_test.go b/plugin/builtin/configmapgenerator/ConfigMapGenerator_test.go index 2848e1b50..95d0ab844 100644 --- a/plugin/builtin/configmapgenerator/ConfigMapGenerator_test.go +++ b/plugin/builtin/configmapgenerator/ConfigMapGenerator_test.go @@ -30,8 +30,7 @@ COLOR=red apiVersion: builtin kind: ConfigMapGenerator metadata: - name: myMapGen -name: myMap + name: myMap envs: - devops.env - uxteam.env diff --git a/plugin/builtin/inventorytransformer/InventoryTransformer.go b/plugin/builtin/inventorytransformer/InventoryTransformer.go index a5e0cb892..69f90432b 100644 --- a/plugin/builtin/inventorytransformer/InventoryTransformer.go +++ b/plugin/builtin/inventorytransformer/InventoryTransformer.go @@ -19,11 +19,10 @@ import ( ) type plugin struct { - ldr ifc.Loader - rf *resmap.Factory - Policy string `json:"policy,omitempty" yaml:"policy,omitempty"` - Name string `json:"name,omitempty" yaml:"name,omitempty"` - Namespace string `json:"namespace,omitempty" yaml:"namespace,omitempty"` + ldr ifc.Loader + rf *resmap.Factory + types.ObjectMeta `json:"metadata,omitempty" yaml:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + Policy string `json:"policy,omitempty" yaml:"policy,omitempty"` } //noinspection GoUnusedGlobalVariable diff --git a/plugin/builtin/inventorytransformer/InventoryTransformer_test.go b/plugin/builtin/inventorytransformer/InventoryTransformer_test.go index a73692e81..df3be48f9 100644 --- a/plugin/builtin/inventorytransformer/InventoryTransformer_test.go +++ b/plugin/builtin/inventorytransformer/InventoryTransformer_test.go @@ -71,10 +71,9 @@ func TestInventoryTransformerCollect(t *testing.T) { apiVersion: builtin kind: InventoryTransformer metadata: - name: notImportantHere + name: pruneCM + namespace: default policy: GarbageCollect -name: pruneCM -namespace: default `, content) th.AssertActualEqualsExpected(rm, inv) @@ -93,10 +92,9 @@ func TestInventoryTransformerIgnore(t *testing.T) { apiVersion: builtin kind: InventoryTransformer metadata: - name: notImportantHere + name: pruneCM + namespace: default policy: GarbageIgnore -name: pruneCM -namespace: default `, content) th.AssertActualEqualsExpected(rm, content+"---"+inv) @@ -115,9 +113,8 @@ func TestInventoryTransformerDefaultPolicy(t *testing.T) { apiVersion: builtin kind: InventoryTransformer metadata: - name: notImportantHere -name: pruneCM -namespace: default + name: pruneCM + namespace: default `, content) th.AssertActualEqualsExpected(rm, content+"---"+inv) diff --git a/plugin/builtin/namespacetransformer/NamespaceTransformer.go b/plugin/builtin/namespacetransformer/NamespaceTransformer.go index 4f2f4c1ad..5bc887e5d 100644 --- a/plugin/builtin/namespacetransformer/NamespaceTransformer.go +++ b/plugin/builtin/namespacetransformer/NamespaceTransformer.go @@ -11,13 +11,14 @@ import ( "sigs.k8s.io/kustomize/v3/pkg/resmap" "sigs.k8s.io/kustomize/v3/pkg/resource" "sigs.k8s.io/kustomize/v3/pkg/transformers" + "sigs.k8s.io/kustomize/v3/pkg/types" "sigs.k8s.io/kustomize/v3/pkg/transformers/config" "sigs.k8s.io/yaml" ) // Change or set the namespace of non-cluster level resources. type plugin struct { - Namespace string `json:"namespace,omitempty" yaml:"namespace,omitempty"` + types.ObjectMeta `json:"metadata,omitempty" yaml:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` FieldSpecs []config.FieldSpec `json:"fieldSpecs,omitempty" yaml:"fieldSpecs,omitempty"` } diff --git a/plugin/builtin/namespacetransformer/NamespaceTransformer_test.go b/plugin/builtin/namespacetransformer/NamespaceTransformer_test.go index 4aa1b608f..9a38f66a4 100644 --- a/plugin/builtin/namespacetransformer/NamespaceTransformer_test.go +++ b/plugin/builtin/namespacetransformer/NamespaceTransformer_test.go @@ -24,7 +24,7 @@ apiVersion: builtin kind: NamespaceTransformer metadata: name: notImportantHere -namespace: test + namespace: test fieldSpecs: - path: metadata/namespace create: true @@ -166,7 +166,7 @@ apiVersion: builtin kind: NamespaceTransformer metadata: name: notImportantHere -namespace: test + namespace: test fieldSpecs: - path: metadata/namespace create: true diff --git a/plugin/builtin/secretgenerator/SecretGenerator.go b/plugin/builtin/secretgenerator/SecretGenerator.go index 61c5b5020..1dd7e2995 100644 --- a/plugin/builtin/secretgenerator/SecretGenerator.go +++ b/plugin/builtin/secretgenerator/SecretGenerator.go @@ -12,8 +12,9 @@ import ( ) type plugin struct { - ldr ifc.Loader - rf *resmap.Factory + ldr ifc.Loader + rf *resmap.Factory + types.ObjectMeta `json:"metadata,omitempty" yaml:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` types.GeneratorOptions types.SecretArgs } @@ -26,6 +27,12 @@ func (p *plugin) Config( p.GeneratorOptions = types.GeneratorOptions{} p.SecretArgs = types.SecretArgs{} err = yaml.Unmarshal(config, p) + if p.SecretArgs.Name == "" { + p.SecretArgs.Name = p.Name + } + if p.SecretArgs.Namespace == "" { + p.SecretArgs.Namespace = p.Namespace + } p.ldr = ldr p.rf = rf return diff --git a/plugin/builtin/secretgenerator/SecretGenerator_test.go b/plugin/builtin/secretgenerator/SecretGenerator_test.go index 78c450c90..eb62bcb41 100644 --- a/plugin/builtin/secretgenerator/SecretGenerator_test.go +++ b/plugin/builtin/secretgenerator/SecretGenerator_test.go @@ -34,9 +34,8 @@ consectetur adipiscing elit. apiVersion: builtin kind: SecretGenerator metadata: - name: exampleSecGen -name: mySecret -namespace: whatever + name: mySecret + namespace: whatever behavior: merge envs: - a.env diff --git a/plugin/someteam.example.com/v1/secretsfromdatabase/SecretsFromDatabase.go b/plugin/someteam.example.com/v1/secretsfromdatabase/SecretsFromDatabase.go index 30afb574d..49d3031c0 100644 --- a/plugin/someteam.example.com/v1/secretsfromdatabase/SecretsFromDatabase.go +++ b/plugin/someteam.example.com/v1/secretsfromdatabase/SecretsFromDatabase.go @@ -13,10 +13,9 @@ import ( // A secret generator example that gets data // from a database (simulated by a hardcoded map). type plugin struct { - rf *resmap.Factory - ldr ifc.Loader - Name string `json:"name,omitempty" yaml:"name,omitempty"` - Namespace string `json:"namespace,omitempty" yaml:"namespace,omitempty"` + rf *resmap.Factory + ldr ifc.Loader + types.ObjectMeta `json:"metadata,omitempty" yaml:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // List of keys to use in database lookups Keys []string `json:"keys,omitempty" yaml:"keys,omitempty"` } diff --git a/plugin/someteam.example.com/v1/secretsfromdatabase/SecretsFromDatabase_test.go b/plugin/someteam.example.com/v1/secretsfromdatabase/SecretsFromDatabase_test.go index 8d87bc4b9..1730910d2 100644 --- a/plugin/someteam.example.com/v1/secretsfromdatabase/SecretsFromDatabase_test.go +++ b/plugin/someteam.example.com/v1/secretsfromdatabase/SecretsFromDatabase_test.go @@ -23,9 +23,8 @@ func TestSecretsFromDatabasePlugin(t *testing.T) { apiVersion: someteam.example.com/v1 kind: SecretsFromDatabase metadata: - name: mySecretGenerator -name: forbiddenValues -namespace: production + name: forbiddenValues + namespace: production keys: - ROCKET - VEGETABLE diff --git a/plugin/someteam.example.com/v1/someservicegenerator/SomeServiceGenerator.go b/plugin/someteam.example.com/v1/someservicegenerator/SomeServiceGenerator.go index 3df992053..12ff51884 100644 --- a/plugin/someteam.example.com/v1/someservicegenerator/SomeServiceGenerator.go +++ b/plugin/someteam.example.com/v1/someservicegenerator/SomeServiceGenerator.go @@ -9,14 +9,15 @@ import ( "sigs.k8s.io/kustomize/v3/pkg/ifc" "sigs.k8s.io/kustomize/v3/pkg/resmap" + "sigs.k8s.io/kustomize/v3/pkg/types" "sigs.k8s.io/yaml" ) // A simple generator example. Makes one service. type plugin struct { - rf *resmap.Factory - Name string `json:"name,omitempty" yaml:"name,omitempty"` - Port string `json:"port,omitempty" yaml:"port,omitempty"` + rf *resmap.Factory + types.ObjectMeta `json:"metadata,omitempty" yaml:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + Port string `json:"port,omitempty" yaml:"port,omitempty"` } //nolint: golint @@ -30,6 +31,7 @@ metadata: labels: app: dev name: {{.Name}} + namespace: {{.Namespace}} spec: ports: - port: {{.Port}} diff --git a/plugin/someteam.example.com/v1/someservicegenerator/SomeServiceGenerator_test.go b/plugin/someteam.example.com/v1/someservicegenerator/SomeServiceGenerator_test.go index 91a0d0bba..a7413c374 100644 --- a/plugin/someteam.example.com/v1/someservicegenerator/SomeServiceGenerator_test.go +++ b/plugin/someteam.example.com/v1/someservicegenerator/SomeServiceGenerator_test.go @@ -23,8 +23,8 @@ func TestSomeServiceGeneratorPlugin(t *testing.T) { apiVersion: someteam.example.com/v1 kind: SomeServiceGenerator metadata: - name: myGenerator -name: my-service + name: my-service + namespace: test port: "12345" `) th.AssertActualEqualsExpected(m, ` @@ -34,6 +34,7 @@ metadata: labels: app: dev name: my-service + namespace: test spec: ports: - port: 12345