From 91f74e8d16664001efd3e18224b36b8f0a3bb2d0 Mon Sep 17 00:00:00 2001 From: Natasha Sarkar Date: Fri, 23 Jul 2021 18:19:05 -0700 Subject: [PATCH] replace Resource.options with annotations (#4061) --- api/filters/replacement/replacement_test.go | 12 +- .../accumulator/resaccumulator_test.go | 8 +- api/internal/target/kusttarget_test.go | 2 +- api/internal/utils/makeResIds.go | 3 +- api/konfig/general.go | 7 +- api/resmap/factory_test.go | 3 + api/resmap/reswrangler_test.go | 27 +++-- api/resource/factory.go | 4 +- api/resource/resource.go | 52 ++++++-- api/resource/resource_test.go | 114 +++++++++++++----- api/testutils/kusttest/harnessenhanced.go | 8 +- api/types/genargs.go | 15 +++ cmd/config/go.mod | 2 +- kustomize/go.mod | 2 +- .../PrefixSuffixTransformer_test.go | 28 ++--- .../bashedconfigmap/BashedConfigMap_test.go | 5 +- 16 files changed, 209 insertions(+), 83 deletions(-) diff --git a/api/filters/replacement/replacement_test.go b/api/filters/replacement/replacement_test.go index 35919734b..4ac654181 100644 --- a/api/filters/replacement/replacement_test.go +++ b/api/filters/replacement/replacement_test.go @@ -1514,9 +1514,9 @@ kind: Deployment metadata: name: pre-deploy annotations: - config.kubernetes.io/previousNames: deploy,deploy - config.kubernetes.io/previousKinds: CronJob,Deployment - config.kubernetes.io/previousNamespaces: default,default + internal.config.kubernetes.io/previousNames: deploy,deploy + internal.config.kubernetes.io/previousKinds: CronJob,Deployment + internal.config.kubernetes.io/previousNamespaces: default,default spec: template: spec: @@ -1543,9 +1543,9 @@ kind: Deployment metadata: name: pre-deploy annotations: - config.kubernetes.io/previousNames: deploy,deploy - config.kubernetes.io/previousKinds: CronJob,Deployment - config.kubernetes.io/previousNamespaces: default,default + internal.config.kubernetes.io/previousNames: deploy,deploy + internal.config.kubernetes.io/previousKinds: CronJob,Deployment + internal.config.kubernetes.io/previousNamespaces: default,default spec: template: spec: diff --git a/api/internal/accumulator/resaccumulator_test.go b/api/internal/accumulator/resaccumulator_test.go index 92a7bd6ee..1d2140c1e 100644 --- a/api/internal/accumulator/resaccumulator_test.go +++ b/api/internal/accumulator/resaccumulator_test.go @@ -362,10 +362,10 @@ func TestResolveVarsWithNoambiguation(t *testing.T) { "metadata": map[string]interface{}{ "name": "sub-backendOne", "annotations": map[string]interface{}{ - "config.kubernetes.io/previousKinds": "Service", - "config.kubernetes.io/previousNames": "backendOne", - "config.kubernetes.io/previousNamespaces": "default", - "config.kubernetes.io/prefixes": "sub-", + "internal.config.kubernetes.io/previousKinds": "Service", + "internal.config.kubernetes.io/previousNames": "backendOne", + "internal.config.kubernetes.io/previousNamespaces": "default", + "internal.config.kubernetes.io/prefixes": "sub-", }, }}).ResMap() diff --git a/api/internal/target/kusttarget_test.go b/api/internal/target/kusttarget_test.go index 7a0240094..2349106bb 100644 --- a/api/internal/target/kusttarget_test.go +++ b/api/internal/target/kusttarget_test.go @@ -255,5 +255,5 @@ metadata: actual.RemoveBuildAnnotations() actYaml, err := actual.AsYaml() assert.NoError(t, err) - assert.Equal(t, expYaml, actYaml) + assert.Equal(t, string(expYaml), string(actYaml)) } diff --git a/api/internal/utils/makeResIds.go b/api/internal/utils/makeResIds.go index a249fc9b8..455a14987 100644 --- a/api/internal/utils/makeResIds.go +++ b/api/internal/utils/makeResIds.go @@ -12,10 +12,11 @@ import ( const ( BuildAnnotationPreviousKinds = konfig.ConfigAnnoDomain + "/previousKinds" BuildAnnotationPreviousNames = konfig.ConfigAnnoDomain + "/previousNames" + BuildAnnotationPreviousNamespaces = konfig.ConfigAnnoDomain + "/previousNamespaces" BuildAnnotationPrefixes = konfig.ConfigAnnoDomain + "/prefixes" BuildAnnotationSuffixes = konfig.ConfigAnnoDomain + "/suffixes" - BuildAnnotationPreviousNamespaces = konfig.ConfigAnnoDomain + "/previousNamespaces" BuildAnnotationsRefBy = konfig.ConfigAnnoDomain + "/refBy" + BuildAnnotationsGenOptions = konfig.ConfigAnnoDomain + "/generatorOptions" // the following are only for patches, to specify whether they can change names // and kinds of their targets diff --git a/api/konfig/general.go b/api/konfig/general.go index 6c86391df..712bfe789 100644 --- a/api/konfig/general.go +++ b/api/konfig/general.go @@ -31,11 +31,12 @@ const ( // A program name, for use in help, finding the XDG_CONFIG_DIR, etc. ProgramName = "kustomize" - // ConfigAnnoDomain is configuration-related annotation namespace. - ConfigAnnoDomain = "config.kubernetes.io" + // ConfigAnnoDomain is internal configuration-related annotation namespace. + // See https://github.com/kubernetes-sigs/kustomize/blob/master/cmd/config/docs/api-conventions/functions-spec.md. + ConfigAnnoDomain = "internal.config.kubernetes.io" // If a resource has this annotation, kustomize will drop it. - IgnoredByKustomizeAnnotation = ConfigAnnoDomain + "/local-config" + IgnoredByKustomizeAnnotation = "config.kubernetes.io/local-config" // Label key that indicates the resources are built from Kustomize ManagedbyLabelKey = "app.kubernetes.io/managed-by" diff --git a/api/resmap/factory_test.go b/api/resmap/factory_test.go index 4f82597d7..489c99424 100644 --- a/api/resmap/factory_test.go +++ b/api/resmap/factory_test.go @@ -219,8 +219,10 @@ BAR=baz } r, err := rmF.NewResMapFromConfigMapArgs(kvLdr, tc.input) assert.NoError(t, err, tc.description) + r.RemoveBuildAnnotations() rYaml, err := r.AsYaml() assert.NoError(t, err, tc.description) + tc.expected.RemoveBuildAnnotations() expYaml, err := tc.expected.AsYaml() assert.NoError(t, err, tc.description) assert.Equal(t, expYaml, rYaml) @@ -252,6 +254,7 @@ func TestNewResMapFromSecretArgs(t *testing.T) { if err != nil { t.Fatalf("unexpected error: %v", err) } + actual.RemoveBuildAnnotations() actYaml, err := actual.AsYaml() assert.NoError(t, err) diff --git a/api/resmap/reswrangler_test.go b/api/resmap/reswrangler_test.go index 3e1f7d5c6..e3ed04142 100644 --- a/api/resmap/reswrangler_test.go +++ b/api/resmap/reswrangler_test.go @@ -343,9 +343,9 @@ func TestGetMatchingResourcesByAnyId(t *testing.T) { "metadata": map[string]interface{}{ "name": "new-alice", "annotations": map[string]interface{}{ - "config.kubernetes.io/previousKinds": "ConfigMap", - "config.kubernetes.io/previousNames": "alice", - "config.kubernetes.io/previousNamespaces": "default", + "internal.config.kubernetes.io/previousKinds": "ConfigMap", + "internal.config.kubernetes.io/previousNames": "alice", + "internal.config.kubernetes.io/previousNamespaces": "default", }, }, }) @@ -356,9 +356,9 @@ func TestGetMatchingResourcesByAnyId(t *testing.T) { "metadata": map[string]interface{}{ "name": "new-bob", "annotations": map[string]interface{}{ - "config.kubernetes.io/previousKinds": "ConfigMap,ConfigMap", - "config.kubernetes.io/previousNames": "bob,bob2", - "config.kubernetes.io/previousNamespaces": "default,default", + "internal.config.kubernetes.io/previousKinds": "ConfigMap,ConfigMap", + "internal.config.kubernetes.io/previousNames": "bob,bob2", + "internal.config.kubernetes.io/previousNamespaces": "default,default", }, }, }) @@ -370,9 +370,9 @@ func TestGetMatchingResourcesByAnyId(t *testing.T) { "name": "new-bob", "namespace": "new-happy", "annotations": map[string]interface{}{ - "config.kubernetes.io/previousKinds": "ConfigMap", - "config.kubernetes.io/previousNames": "bob", - "config.kubernetes.io/previousNamespaces": "happy", + "internal.config.kubernetes.io/previousKinds": "ConfigMap", + "internal.config.kubernetes.io/previousNames": "bob", + "internal.config.kubernetes.io/previousNamespaces": "happy", }, }, }) @@ -384,9 +384,9 @@ func TestGetMatchingResourcesByAnyId(t *testing.T) { "name": "charlie", "namespace": "happy", "annotations": map[string]interface{}{ - "config.kubernetes.io/previousKinds": "ConfigMap", - "config.kubernetes.io/previousNames": "charlie", - "config.kubernetes.io/previousNamespaces": "default", + "internal.config.kubernetes.io/previousKinds": "ConfigMap", + "internal.config.kubernetes.io/previousNames": "charlie", + "internal.config.kubernetes.io/previousNamespaces": "default", }, }, }) @@ -845,6 +845,8 @@ func TestAbsorbAll(t *testing.T) { })) w := makeMap1() assert.NoError(t, w.AbsorbAll(makeMap2(types.BehaviorMerge))) + expected.RemoveBuildAnnotations() + w.RemoveBuildAnnotations() assert.NoError(t, expected.ErrorIfNotEqualLists(w)) w = makeMap1() assert.NoError(t, w.AbsorbAll(nil)) @@ -853,6 +855,7 @@ func TestAbsorbAll(t *testing.T) { w = makeMap1() w2 := makeMap2(types.BehaviorReplace) assert.NoError(t, w.AbsorbAll(w2)) + w2.RemoveBuildAnnotations() assert.NoError(t, w2.ErrorIfNotEqualLists(w)) w = makeMap1() w2 = makeMap2(types.BehaviorUnspecified) diff --git a/api/resource/factory.go b/api/resource/factory.go index 97ced84ba..d01e21b6b 100644 --- a/api/resource/factory.go +++ b/api/resource/factory.go @@ -75,7 +75,9 @@ func (rf *Factory) makeOne(rn *yaml.RNode, o *types.GenArgs) *Resource { if o == nil { o = types.NewGenArgs(nil) } - return &Resource{RNode: *rn, options: o} + resource := &Resource{RNode: *rn} + resource.SetOptions(o) + return resource } // SliceFromPatches returns a slice of resources given a patch path diff --git a/api/resource/resource.go b/api/resource/resource.go index 2ec0209ec..470ab457d 100644 --- a/api/resource/resource.go +++ b/api/resource/resource.go @@ -22,7 +22,6 @@ import ( // paired with metadata used by kustomize. type Resource struct { kyaml.RNode - options *types.GenArgs refVarNames []string } @@ -35,6 +34,7 @@ var BuildAnnotations = []string{ utils.BuildAnnotationAllowNameChange, utils.BuildAnnotationAllowKindChange, utils.BuildAnnotationsRefBy, + utils.BuildAnnotationsGenOptions, } func (r *Resource) ResetRNode(incoming *Resource) { @@ -80,6 +80,8 @@ func (r *Resource) DeepCopy() *Resource { // CopyMergeMetaDataFieldsFrom copies everything but the non-metadata in // the resource. // TODO: move to RNode, use GetMeta to improve performance. +// TODO: make a version of mergeStringMaps that is build-annotation aware +// to avoid repeatedly setting refby and genargs annotations // Must remove the kustomize bit at the end. func (r *Resource) CopyMergeMetaDataFieldsFrom(other *Resource) error { if err := r.SetLabels( @@ -87,7 +89,7 @@ func (r *Resource) CopyMergeMetaDataFieldsFrom(other *Resource) error { return fmt.Errorf("copyMerge cannot set labels - %w", err) } if err := r.SetAnnotations( - mergeStringMaps(other.GetAnnotations(), r.GetAnnotations())); err != nil { + mergeStringMapsWithBuildAnnotations(other.GetAnnotations(), r.GetAnnotations())); err != nil { return fmt.Errorf("copyMerge cannot set annotations - %w", err) } if err := r.SetName(other.GetName()); err != nil { @@ -101,7 +103,6 @@ func (r *Resource) CopyMergeMetaDataFieldsFrom(other *Resource) error { } func (r *Resource) copyKustomizeSpecificFields(other *Resource) { - r.options = other.options r.refVarNames = copyStringSlice(other.refVarNames) } @@ -274,7 +275,7 @@ func (r *Resource) String() string { if err != nil { return "<" + err.Error() + ">" } - return strings.TrimSpace(string(bs)) + r.options.String() + return strings.TrimSpace(string(bs)) } // AsYAML returns the resource in Yaml form. @@ -296,20 +297,43 @@ func (r *Resource) MustYaml() string { return string(yml) } +func (r *Resource) getGenArgs() *types.GenArgs { + annotations := r.GetAnnotations() + if genOptsAnno, ok := annotations[utils.BuildAnnotationsGenOptions]; ok { + var genOpts types.GeneratorArgs + yaml.Unmarshal([]byte(genOptsAnno), &genOpts) + return types.NewGenArgs(&genOpts) + } + return nil +} + // SetOptions updates the generator options for the resource. func (r *Resource) SetOptions(o *types.GenArgs) { - r.options = o + annotations := r.GetAnnotations() + if o.IsNilOrEmpty() { + if len(annotations) == 0 { + return + } + if o == nil { + delete(annotations, utils.BuildAnnotationsGenOptions) + } + } else { + b, _ := o.AsYaml() + annotations[utils.BuildAnnotationsGenOptions] = string(b) + } + r.SetAnnotations(annotations) } // Behavior returns the behavior for the resource. func (r *Resource) Behavior() types.GenerationBehavior { - return r.options.Behavior() + return r.getGenArgs().Behavior() } // NeedHashSuffix returns true if a resource content // hash should be appended to the name of the resource. func (r *Resource) NeedHashSuffix() bool { - return r.options != nil && r.options.ShouldAddHashSuffixToName() + options := r.getGenArgs() + return options != nil && options.ShouldAddHashSuffixToName() } // OrgId returns the original, immutable ResId for the resource. @@ -420,3 +444,17 @@ func mergeStringMaps(maps ...map[string]string) map[string]string { } return result } + +func mergeStringMapsWithBuildAnnotations(maps ...map[string]string) map[string]string { + result := mergeStringMaps(maps...) + for i := range BuildAnnotations { + if len(maps) > 0 { + if v, ok := maps[0][BuildAnnotations[i]]; ok { + result[BuildAnnotations[i]] = v + continue + } + } + delete(result, BuildAnnotations[i]) + } + return result +} diff --git a/api/resource/resource_test.go b/api/resource/resource_test.go index 4b5f2571c..a73437b9f 100644 --- a/api/resource/resource_test.go +++ b/api/resource/resource_test.go @@ -28,10 +28,10 @@ var testConfigMap = factory.FromMap( }, }) -const genArgOptions = "{nsfx:false,beh:unspecified}" - //nolint:gosec const configMapAsString = `{"apiVersion":"v1","kind":"ConfigMap","metadata":{"name":"winnie","namespace":"hundred-acre-wood"}}` +const configMapAsStringWithOptions = `{"apiVersion":"v1","kind":"ConfigMap","metadata":{"annotations":` + + `{"internal.config.kubernetes.io/generatorOptions":"{}\n"},"name":"winnie","namespace":"hundred-acre-wood"}}` var testDeployment = factory.FromMap( map[string]interface{}{ @@ -43,6 +43,8 @@ var testDeployment = factory.FromMap( }) const deploymentAsString = `{"apiVersion":"apps/v1","kind":"Deployment","metadata":{"name":"pooh"}}` +const deploymentAsStringWithOptions = `{"apiVersion":"apps/v1","kind":"Deployment","metadata":{"annotations":` + + `{"internal.config.kubernetes.io/generatorOptions":"{}\n"},"name":"pooh"}}` func TestAsYAML(t *testing.T) { expected := `apiVersion: apps/v1 @@ -66,17 +68,37 @@ func TestResourceString(t *testing.T) { }{ { in: testConfigMap, - s: configMapAsString + genArgOptions, + s: configMapAsString, }, { in: testDeployment, - s: deploymentAsString + genArgOptions, + s: deploymentAsString, }, } for _, test := range tests { - if test.in.String() != test.s { - t.Fatalf("Expected %s == %s", test.in.String(), test.s) - } + assert.Equal(t, test.in.String(), test.s) + } +} + +func TestResourceStringWithOptionsAnnotations(t *testing.T) { + tests := []struct { + in *Resource + s string + }{ + { + in: testConfigMap, + s: configMapAsStringWithOptions, + }, + { + in: testDeployment, + s: deploymentAsStringWithOptions, + }, + } + for _, test := range tests { + args := &types.GeneratorArgs{} + options := types.NewGenArgs(args) + test.in.SetOptions(options) + assert.Equal(t, test.in.String(), test.s) } } @@ -717,9 +739,9 @@ metadata: kind: Secret metadata: annotations: - config.kubernetes.io/previousKinds: Secret - config.kubernetes.io/previousNames: oldName - config.kubernetes.io/previousNamespaces: default + internal.config.kubernetes.io/previousKinds: Secret + internal.config.kubernetes.io/previousNames: oldName + internal.config.kubernetes.io/previousNamespaces: default name: newName `, }, @@ -729,9 +751,9 @@ metadata: kind: Secret metadata: annotations: - config.kubernetes.io/previousKinds: Secret - config.kubernetes.io/previousNames: oldName - config.kubernetes.io/previousNamespaces: default + internal.config.kubernetes.io/previousKinds: Secret + internal.config.kubernetes.io/previousNames: oldName + internal.config.kubernetes.io/previousNamespaces: default name: oldName2 `, newName: "newName", @@ -740,9 +762,9 @@ metadata: kind: Secret metadata: annotations: - config.kubernetes.io/previousKinds: Secret,Secret - config.kubernetes.io/previousNames: oldName,oldName2 - config.kubernetes.io/previousNamespaces: default,default + internal.config.kubernetes.io/previousKinds: Secret,Secret + internal.config.kubernetes.io/previousNames: oldName,oldName2 + internal.config.kubernetes.io/previousNamespaces: default,default name: newName `, }, @@ -752,9 +774,9 @@ metadata: kind: Secret metadata: annotations: - config.kubernetes.io/previousKinds: Secret - config.kubernetes.io/previousNames: oldName - config.kubernetes.io/previousNamespaces: default + internal.config.kubernetes.io/previousKinds: Secret + internal.config.kubernetes.io/previousNames: oldName + internal.config.kubernetes.io/previousNamespaces: default name: oldName2 namespace: oldNamespace `, @@ -764,9 +786,9 @@ metadata: kind: Secret metadata: annotations: - config.kubernetes.io/previousKinds: Secret,Secret - config.kubernetes.io/previousNames: oldName,oldName2 - config.kubernetes.io/previousNamespaces: default,oldNamespace + internal.config.kubernetes.io/previousKinds: Secret,Secret + internal.config.kubernetes.io/previousNames: oldName,oldName2 + internal.config.kubernetes.io/previousNamespaces: default,oldNamespace name: newName namespace: newNamespace `, @@ -814,9 +836,9 @@ metadata: kind: Secret metadata: annotations: - config.kubernetes.io/previousKinds: Secret - config.kubernetes.io/previousNames: oldName - config.kubernetes.io/previousNamespaces: default + internal.config.kubernetes.io/previousKinds: Secret + internal.config.kubernetes.io/previousNames: oldName + internal.config.kubernetes.io/previousNamespaces: default name: newName `, expected: []resid.ResId{ @@ -833,9 +855,9 @@ metadata: kind: Secret metadata: annotations: - config.kubernetes.io/previousKinds: Secret,Secret - config.kubernetes.io/previousNames: oldName,oldName2 - config.kubernetes.io/previousNamespaces: default,oldNamespace + internal.config.kubernetes.io/previousKinds: Secret,Secret + internal.config.kubernetes.io/previousNames: oldName,oldName2 + internal.config.kubernetes.io/previousNamespaces: default,oldNamespace name: newName namespace: newNamespace `, @@ -1150,7 +1172,7 @@ kind: Deployment metadata: name: clown annotations: - config.kubernetes.io/refBy: gr1_ver1_knd1|ns1|name1 + internal.config.kubernetes.io/refBy: gr1_ver1_knd1|ns1|name1 spec: numReplicas: 1 `) @@ -1162,7 +1184,7 @@ kind: Deployment metadata: name: clown annotations: - config.kubernetes.io/refBy: gr1_ver1_knd1|ns1|name1,gr2_ver2_knd2|ns2|name2 + internal.config.kubernetes.io/refBy: gr1_ver1_knd1|ns1|name1,gr2_ver2_knd2|ns2|name2 spec: numReplicas: 1 `) @@ -1171,3 +1193,35 @@ spec: resid.FromString("gr2_ver2_knd2|ns2|name2"), }) } + +func TestOptions(t *testing.T) { + r, err := factory.FromBytes([]byte(` +apiVersion: v1 +kind: ConfigMap +metadata: + name: example-configmap-test +`)) + assert.NoError(t, err) + + args := &types.GeneratorArgs{ + Behavior: "merge", + Options: &types.GeneratorOptions{ + DisableNameSuffixHash: true, + }, + } + + options := types.NewGenArgs(args) + r.SetOptions(options) + assert.Equal(t, r.RNode.MustString(), `apiVersion: v1 +kind: ConfigMap +metadata: + name: example-configmap-test + annotations: + internal.config.kubernetes.io/generatorOptions: | + behavior: merge + options: + disableNameSuffixHash: true +`) + assert.Equal(t, r.Behavior(), types.BehaviorMerge) + assert.Equal(t, r.NeedHashSuffix(), !args.Options.DisableNameSuffixHash) +} diff --git a/api/testutils/kusttest/harnessenhanced.go b/api/testutils/kusttest/harnessenhanced.go index 2d4318a67..fa33f5db8 100644 --- a/api/testutils/kusttest/harnessenhanced.go +++ b/api/testutils/kusttest/harnessenhanced.go @@ -148,6 +148,13 @@ func (th *HarnessEnhanced) ResetLoaderRoot(root string) { } func (th *HarnessEnhanced) LoadAndRunGenerator( + config string) resmap.ResMap { + rm := th.LoadAndRunGeneratorWithBuildAnnotations(config) + rm.RemoveBuildAnnotations() + return rm +} + +func (th *HarnessEnhanced) LoadAndRunGeneratorWithBuildAnnotations( config string) resmap.ResMap { res, err := th.rf.RF().FromBytes([]byte(config)) if err != nil { @@ -162,7 +169,6 @@ func (th *HarnessEnhanced) LoadAndRunGenerator( if err != nil { th.t.Fatalf("generate err: %v", err) } - rm.RemoveBuildAnnotations() return rm } diff --git a/api/types/genargs.go b/api/types/genargs.go index 586d7f1af..d68d924cc 100644 --- a/api/types/genargs.go +++ b/api/types/genargs.go @@ -6,6 +6,8 @@ package types import ( "strconv" "strings" + + "sigs.k8s.io/kustomize/kyaml/yaml" ) // GenArgs is a facade over GeneratorArgs, exposing a few readonly properties. @@ -44,3 +46,16 @@ func (g *GenArgs) Behavior() GenerationBehavior { } return NewGenerationBehavior(g.args.Behavior) } + +// IsNilOrEmpty returns true if g is nil or if the args are empty +func (g *GenArgs) IsNilOrEmpty() bool { + return g == nil || g.args == nil +} + +// AsYaml returns a yaml marshalling of the underlying Genargs +func (g *GenArgs) AsYaml() ([]byte, error) { + if g == nil { + return yaml.Marshal(nil) + } + return yaml.Marshal(g.args) +} diff --git a/cmd/config/go.mod b/cmd/config/go.mod index dcdef1616..c14fa0ccb 100644 --- a/cmd/config/go.mod +++ b/cmd/config/go.mod @@ -19,4 +19,4 @@ require ( sigs.k8s.io/kustomize/kyaml v0.11.0 ) -replace sigs.k8s.io/kustomize/kyaml => ../../kyaml \ No newline at end of file +replace sigs.k8s.io/kustomize/kyaml => ../../kyaml diff --git a/kustomize/go.mod b/kustomize/go.mod index dc389cf5c..39142dc49 100644 --- a/kustomize/go.mod +++ b/kustomize/go.mod @@ -23,4 +23,4 @@ replace sigs.k8s.io/kustomize/api => ../api replace sigs.k8s.io/kustomize/cmd/config => ../cmd/config -replace sigs.k8s.io/kustomize/kyaml => ../kyaml \ No newline at end of file +replace sigs.k8s.io/kustomize/kyaml => ../kyaml diff --git a/plugin/builtin/prefixsuffixtransformer/PrefixSuffixTransformer_test.go b/plugin/builtin/prefixsuffixtransformer/PrefixSuffixTransformer_test.go index 777ace133..3d81cdebc 100644 --- a/plugin/builtin/prefixsuffixtransformer/PrefixSuffixTransformer_test.go +++ b/plugin/builtin/prefixsuffixtransformer/PrefixSuffixTransformer_test.go @@ -63,11 +63,11 @@ apiVersion: v1 kind: Service metadata: annotations: - config.kubernetes.io/prefixes: baked- - config.kubernetes.io/previousKinds: Service - config.kubernetes.io/previousNames: apple - config.kubernetes.io/previousNamespaces: default - config.kubernetes.io/suffixes: -pie + internal.config.kubernetes.io/prefixes: baked- + internal.config.kubernetes.io/previousKinds: Service + internal.config.kubernetes.io/previousNames: apple + internal.config.kubernetes.io/previousNamespaces: default + internal.config.kubernetes.io/suffixes: -pie name: baked-apple-pie spec: ports: @@ -87,11 +87,11 @@ apiVersion: v1 kind: ConfigMap metadata: annotations: - config.kubernetes.io/prefixes: baked- - config.kubernetes.io/previousKinds: ConfigMap - config.kubernetes.io/previousNames: cm - config.kubernetes.io/previousNamespaces: default - config.kubernetes.io/suffixes: -pie + internal.config.kubernetes.io/prefixes: baked- + internal.config.kubernetes.io/previousKinds: ConfigMap + internal.config.kubernetes.io/previousNames: cm + internal.config.kubernetes.io/previousNamespaces: default + internal.config.kubernetes.io/suffixes: -pie name: baked-cm-pie `) @@ -139,10 +139,10 @@ apiVersion: apps/v1 kind: Deployment metadata: annotations: - config.kubernetes.io/prefixes: test- - config.kubernetes.io/previousKinds: Deployment - config.kubernetes.io/previousNames: deployment - config.kubernetes.io/previousNamespaces: default + internal.config.kubernetes.io/prefixes: test- + internal.config.kubernetes.io/previousKinds: Deployment + internal.config.kubernetes.io/previousNames: deployment + internal.config.kubernetes.io/previousNamespaces: default name: test-deployment spec: template: diff --git a/plugin/someteam.example.com/v1/bashedconfigmap/BashedConfigMap_test.go b/plugin/someteam.example.com/v1/bashedconfigmap/BashedConfigMap_test.go index d474e1e6e..73a93d683 100644 --- a/plugin/someteam.example.com/v1/bashedconfigmap/BashedConfigMap_test.go +++ b/plugin/someteam.example.com/v1/bashedconfigmap/BashedConfigMap_test.go @@ -14,7 +14,7 @@ func TestBashedConfigMapPlugin(t *testing.T) { PrepExecPlugin("someteam.example.com", "v1", "BashedConfigMap") defer th.Reset() - m := th.LoadAndRunGenerator(` + m := th.LoadAndRunGeneratorWithBuildAnnotations(` apiVersion: someteam.example.com/v1 kind: BashedConfigMap metadata: @@ -28,6 +28,9 @@ data: username: alice kind: ConfigMap metadata: + annotations: + internal.config.kubernetes.io/generatorOptions: | + options: {} name: example-configmap-test `) if m.Resources()[0].NeedHashSuffix() != true {