From 5de000ee3d48fd0685b938245631a93d3aece0b8 Mon Sep 17 00:00:00 2001 From: jregan Date: Sun, 20 Oct 2019 06:38:05 -0700 Subject: [PATCH] Move FieldSpec to API. --- .../config => api/types}/fieldspec.go | 42 ++++++--------- .../config => api/types}/fieldspec_test.go | 28 +++++----- hacks/awker.sh | 7 +-- pkg/target/kusttarget_configplugin.go | 12 ++--- pkg/transformers/config/factory_test.go | 3 +- pkg/transformers/config/factorycrd.go | 7 +-- pkg/transformers/config/factorycrd_test.go | 5 +- pkg/transformers/config/namebackreferences.go | 5 +- .../config/namebackreferences_test.go | 5 +- pkg/transformers/config/transformerconfig.go | 51 ++++++++++--------- .../config/transformerconfig_test.go | 11 ++-- pkg/transformers/labelsandannotations.go | 10 ++-- pkg/transformers/refvars.go | 6 +-- pkg/transformers/refvars_test.go | 6 +-- plugin/builtin/AnnotationsTransformer.go | 6 +-- plugin/builtin/ImageTagTransformer.go | 5 +- plugin/builtin/LabelTransformer.go | 6 +-- plugin/builtin/NamespaceTransformer.go | 7 ++- plugin/builtin/PrefixSuffixTransformer.go | 12 ++--- plugin/builtin/ReplicaCountTransformer.go | 5 +- .../AnnotationsTransformer.go | 6 +-- .../ImageTagTransformer.go | 5 +- .../labeltransformer/LabelTransformer.go | 6 +-- .../NamespaceTransformer.go | 7 ++- .../PrefixSuffixTransformer.go | 12 ++--- .../ReplicaCountTransformer.go | 5 +- plugin/doc.go | 2 +- .../v1/dateprefixer/DatePrefixer.go | 6 +-- .../v1/stringprefixer/StringPrefixer.go | 5 +- 29 files changed, 141 insertions(+), 152 deletions(-) rename {pkg/transformers/config => api/types}/fieldspec.go (73%) rename {pkg/transformers/config => api/types}/fieldspec_test.go (93%) diff --git a/pkg/transformers/config/fieldspec.go b/api/types/fieldspec.go similarity index 73% rename from pkg/transformers/config/fieldspec.go rename to api/types/fieldspec.go index 2a88d3660..a31805864 100644 --- a/pkg/transformers/config/fieldspec.go +++ b/api/types/fieldspec.go @@ -1,25 +1,13 @@ -/* -Copyright 2018 The Kubernetes Authors. +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package config +package types import ( "fmt" - "sigs.k8s.io/kustomize/v3/api/resid" "strings" + + "sigs.k8s.io/kustomize/v3/api/resid" ) // FieldSpec completely specifies a kustomizable field in @@ -89,22 +77,22 @@ func (fs FieldSpec) PathSlice() []string { return result } -type fsSlice []FieldSpec +type FsSlice []FieldSpec -func (s fsSlice) Len() int { return len(s) } -func (s fsSlice) Swap(i, j int) { s[i], s[j] = s[j], s[i] } -func (s fsSlice) Less(i, j int) bool { +func (s FsSlice) Len() int { return len(s) } +func (s FsSlice) Swap(i, j int) { s[i], s[j] = s[j], s[i] } +func (s FsSlice) Less(i, j int) bool { return s[i].Gvk.IsLessThan(s[j].Gvk) } -// mergeAll merges the argument into this, returning the result. +// MergeAll merges the argument into this, returning the result. // Items already present are ignored. // Items that conflict (primary key matches, but remain data differs) // result in an error. -func (s fsSlice) mergeAll(incoming fsSlice) (result fsSlice, err error) { +func (s FsSlice) MergeAll(incoming FsSlice) (result FsSlice, err error) { result = s for _, x := range incoming { - result, err = result.mergeOne(x) + result, err = result.MergeOne(x) if err != nil { return nil, err } @@ -112,11 +100,11 @@ func (s fsSlice) mergeAll(incoming fsSlice) (result fsSlice, err error) { return result, nil } -// mergeOne merges the argument into this, returning the result. +// MergeOne merges the argument into this, returning the result. // If the item's primary key is already present, and there are no // conflicts, it is ignored (we don't want duplicates). // If there is a conflict, the merge fails. -func (s fsSlice) mergeOne(x FieldSpec) (fsSlice, error) { +func (s FsSlice) MergeOne(x FieldSpec) (FsSlice, error) { i := s.index(x) if i > -1 { // It's already there. @@ -128,7 +116,7 @@ func (s fsSlice) mergeOne(x FieldSpec) (fsSlice, error) { return append(s, x), nil } -func (s fsSlice) index(fs FieldSpec) int { +func (s FsSlice) index(fs FieldSpec) int { for i, x := range s { if x.effectivelyEquals(fs) { return i diff --git a/pkg/transformers/config/fieldspec_test.go b/api/types/fieldspec_test.go similarity index 93% rename from pkg/transformers/config/fieldspec_test.go rename to api/types/fieldspec_test.go index 80d142b24..027d89162 100644 --- a/pkg/transformers/config/fieldspec_test.go +++ b/api/types/fieldspec_test.go @@ -1,7 +1,7 @@ // Copyright 2019 The Kubernetes Authors. // SPDX-License-Identifier: Apache-2.0 -package config +package types import ( "fmt" @@ -38,14 +38,14 @@ func TestPathSlice(t *testing.T) { var mergeTests = []struct { name string - original fsSlice - incoming fsSlice + original FsSlice + incoming FsSlice err error - result fsSlice + result FsSlice }{ { "normal", - fsSlice{ + FsSlice{ { Path: "whatever", Gvk: resid.Gvk{Group: "apple"}, @@ -57,7 +57,7 @@ var mergeTests = []struct { CreateIfNotPresent: false, }, }, - fsSlice{ + FsSlice{ { Path: "home", Gvk: resid.Gvk{Group: "beans"}, @@ -65,7 +65,7 @@ var mergeTests = []struct { }, }, nil, - fsSlice{ + FsSlice{ { Path: "whatever", Gvk: resid.Gvk{Group: "apple"}, @@ -85,7 +85,7 @@ var mergeTests = []struct { }, { "ignore copy", - fsSlice{ + FsSlice{ { Path: "whatever", Gvk: resid.Gvk{Group: "apple"}, @@ -97,7 +97,7 @@ var mergeTests = []struct { CreateIfNotPresent: false, }, }, - fsSlice{ + FsSlice{ { Path: "whatever", Gvk: resid.Gvk{Group: "apple"}, @@ -105,7 +105,7 @@ var mergeTests = []struct { }, }, nil, - fsSlice{ + FsSlice{ { Path: "whatever", Gvk: resid.Gvk{Group: "apple"}, @@ -120,7 +120,7 @@ var mergeTests = []struct { }, { "error on conflict", - fsSlice{ + FsSlice{ { Path: "whatever", Gvk: resid.Gvk{Group: "apple"}, @@ -132,7 +132,7 @@ var mergeTests = []struct { CreateIfNotPresent: false, }, }, - fsSlice{ + FsSlice{ { Path: "whatever", Gvk: resid.Gvk{Group: "apple"}, @@ -140,13 +140,13 @@ var mergeTests = []struct { }, }, fmt.Errorf("hey"), - fsSlice{}, + FsSlice{}, }, } func TestFsSlice_MergeAll(t *testing.T) { for _, item := range mergeTests { - result, err := item.original.mergeAll(item.incoming) + result, err := item.original.MergeAll(item.incoming) if item.err == nil { if err != nil { t.Fatalf("test %s: unexpected err %v", item.name, err) diff --git a/hacks/awker.sh b/hacks/awker.sh index 4f24cc377..0f3a027b2 100755 --- a/hacks/awker.sh +++ b/hacks/awker.sh @@ -1,13 +1,14 @@ function showDeps { - echo "==== $1 ==================================" + echo "==== begin $1 ==================================" find $1 -name "*.go" |\ - xargs grep sigs.k8s.io/kustomize/v3 |\ + xargs grep \"sigs.k8s.io/kustomize/v3 |\ + grep -v "/api/" |\ sed 's|"sigs.k8s.io/kustomize/v3/||' |\ awk '{ printf "%40s %s\n", $2, $1 }' |\ sed 's|" \./| |' |\ sed 's|:$||' |\ sort | uniq - echo "==== $1 ==================================" + echo "==== end $1 ==================================" } diff --git a/pkg/target/kusttarget_configplugin.go b/pkg/target/kusttarget_configplugin.go index 9b3209375..806fbd0e8 100644 --- a/pkg/target/kusttarget_configplugin.go +++ b/pkg/target/kusttarget_configplugin.go @@ -126,7 +126,7 @@ var transformerConfigurators = map[plugins.BuiltinPluginType]func( result []resmap.Transformer, err error) { var c struct { types.ObjectMeta `json:"metadata,omitempty" yaml:"metadata,omitempty"` - FieldSpecs []config.FieldSpec + FieldSpecs []types.FieldSpec } c.Namespace = kt.kustomization.Namespace c.FieldSpecs = tc.NameSpace @@ -208,7 +208,7 @@ var transformerConfigurators = map[plugins.BuiltinPluginType]func( result []resmap.Transformer, err error) { var c struct { Labels map[string]string - FieldSpecs []config.FieldSpec + FieldSpecs []types.FieldSpec } c.Labels = kt.kustomization.CommonLabels c.FieldSpecs = tc.CommonLabels @@ -225,7 +225,7 @@ var transformerConfigurators = map[plugins.BuiltinPluginType]func( result []resmap.Transformer, err error) { var c struct { Annotations map[string]string - FieldSpecs []config.FieldSpec + FieldSpecs []types.FieldSpec } c.Annotations = kt.kustomization.CommonAnnotations c.FieldSpecs = tc.CommonAnnotations @@ -243,7 +243,7 @@ var transformerConfigurators = map[plugins.BuiltinPluginType]func( var c struct { Prefix string Suffix string - FieldSpecs []config.FieldSpec + FieldSpecs []types.FieldSpec } c.Prefix = kt.kustomization.NamePrefix c.Suffix = kt.kustomization.NameSuffix @@ -261,7 +261,7 @@ var transformerConfigurators = map[plugins.BuiltinPluginType]func( result []resmap.Transformer, err error) { var c struct { ImageTag types.Image - FieldSpecs []config.FieldSpec + FieldSpecs []types.FieldSpec } for _, args := range kt.kustomization.Images { c.ImageTag = args @@ -280,7 +280,7 @@ var transformerConfigurators = map[plugins.BuiltinPluginType]func( result []resmap.Transformer, err error) { var c struct { Replica types.Replica - FieldSpecs []config.FieldSpec + FieldSpecs []types.FieldSpec } for _, args := range kt.kustomization.Replicas { c.Replica = args diff --git a/pkg/transformers/config/factory_test.go b/pkg/transformers/config/factory_test.go index 491e6cad1..41bf853d8 100644 --- a/pkg/transformers/config/factory_test.go +++ b/pkg/transformers/config/factory_test.go @@ -6,6 +6,7 @@ package config import ( "reflect" "sigs.k8s.io/kustomize/v3/api/resid" + "sigs.k8s.io/kustomize/v3/api/types" "testing" "sigs.k8s.io/kustomize/v3/internal/loadertest" @@ -29,7 +30,7 @@ namePrefix: t.Fatalf("unexpected error: %v", err) } expected := &TransformerConfig{ - NamePrefix: []FieldSpec{ + NamePrefix: []types.FieldSpec{ { Gvk: resid.Gvk{Kind: "SomeKind"}, Path: "nameprefix/path", diff --git a/pkg/transformers/config/factorycrd.go b/pkg/transformers/config/factorycrd.go index a5daa3a2a..840c0fd05 100644 --- a/pkg/transformers/config/factorycrd.go +++ b/pkg/transformers/config/factorycrd.go @@ -19,6 +19,7 @@ package config import ( "encoding/json" "sigs.k8s.io/kustomize/v3/api/resid" + "sigs.k8s.io/kustomize/v3/api/types" "strings" "github.com/go-openapi/spec" @@ -175,7 +176,7 @@ func loadCrdIntoConfig( err = theConfig.AddNamereferenceFieldSpec( NameBackReferences{ Gvk: resid.Gvk{Kind: kind, Version: version}, - FieldSpecs: []FieldSpec{ + FieldSpecs: []types.FieldSpec{ makeFs(theGvk, append(path, propName, nameKey))}, }) if err != nil { @@ -192,8 +193,8 @@ func loadCrdIntoConfig( return nil } -func makeFs(in resid.Gvk, path []string) FieldSpec { - return FieldSpec{ +func makeFs(in resid.Gvk, path []string) types.FieldSpec { + return types.FieldSpec{ CreateIfNotPresent: false, Gvk: in, Path: strings.Join(path, "/"), diff --git a/pkg/transformers/config/factorycrd_test.go b/pkg/transformers/config/factorycrd_test.go index 7ab5e34e5..65ee38a5a 100644 --- a/pkg/transformers/config/factorycrd_test.go +++ b/pkg/transformers/config/factorycrd_test.go @@ -19,6 +19,7 @@ package config import ( "reflect" "sigs.k8s.io/kustomize/v3/api/resid" + "sigs.k8s.io/kustomize/v3/api/types" "testing" "sigs.k8s.io/kustomize/v3/internal/loadertest" @@ -158,7 +159,7 @@ func TestLoadCRDs(t *testing.T) { nbrs := []NameBackReferences{ { Gvk: resid.Gvk{Kind: "Secret", Version: "v1"}, - FieldSpecs: []FieldSpec{ + FieldSpecs: []types.FieldSpec{ { CreateIfNotPresent: false, Gvk: resid.Gvk{Kind: "MyKind"}, @@ -168,7 +169,7 @@ func TestLoadCRDs(t *testing.T) { }, { Gvk: resid.Gvk{Kind: "Bee", Version: "v1beta1"}, - FieldSpecs: []FieldSpec{ + FieldSpecs: []types.FieldSpec{ { CreateIfNotPresent: false, Gvk: resid.Gvk{Kind: "MyKind"}, diff --git a/pkg/transformers/config/namebackreferences.go b/pkg/transformers/config/namebackreferences.go index 13dd9dd9c..54253f989 100644 --- a/pkg/transformers/config/namebackreferences.go +++ b/pkg/transformers/config/namebackreferences.go @@ -18,6 +18,7 @@ package config import ( "sigs.k8s.io/kustomize/v3/api/resid" + "sigs.k8s.io/kustomize/v3/api/types" "strings" ) @@ -51,7 +52,7 @@ import ( // } type NameBackReferences struct { resid.Gvk `json:",inline,omitempty" yaml:",inline,omitempty"` - FieldSpecs fsSlice `json:"FieldSpecs,omitempty" yaml:"FieldSpecs,omitempty"` + FieldSpecs types.FsSlice `json:"FieldSpecs,omitempty" yaml:"FieldSpecs,omitempty"` } func (n NameBackReferences) String() string { @@ -88,7 +89,7 @@ func (s nbrSlice) mergeOne(other NameBackReferences) (nbrSlice, error) { found := false for _, c := range s { if c.Gvk.Equals(other.Gvk) { - c.FieldSpecs, err = c.FieldSpecs.mergeAll(other.FieldSpecs) + c.FieldSpecs, err = c.FieldSpecs.MergeAll(other.FieldSpecs) if err != nil { return nil, err } diff --git a/pkg/transformers/config/namebackreferences_test.go b/pkg/transformers/config/namebackreferences_test.go index 0d0713642..db5a46d88 100644 --- a/pkg/transformers/config/namebackreferences_test.go +++ b/pkg/transformers/config/namebackreferences_test.go @@ -19,11 +19,12 @@ package config import ( "reflect" "sigs.k8s.io/kustomize/v3/api/resid" + "sigs.k8s.io/kustomize/v3/api/types" "testing" ) func TestMergeAll(t *testing.T) { - fsSlice1 := []FieldSpec{ + fsSlice1 := []types.FieldSpec{ { Gvk: resid.Gvk{ Kind: "Pod", @@ -39,7 +40,7 @@ func TestMergeAll(t *testing.T) { CreateIfNotPresent: false, }, } - fsSlice2 := []FieldSpec{ + fsSlice2 := []types.FieldSpec{ { Gvk: resid.Gvk{ Kind: "Job", diff --git a/pkg/transformers/config/transformerconfig.go b/pkg/transformers/config/transformerconfig.go index 94cf2118a..f63e2d976 100644 --- a/pkg/transformers/config/transformerconfig.go +++ b/pkg/transformers/config/transformerconfig.go @@ -20,6 +20,7 @@ package config import ( "log" + "sigs.k8s.io/kustomize/v3/api/types" "sort" "sigs.k8s.io/kustomize/v3/pkg/transformers/config/defaultconfig" @@ -27,15 +28,15 @@ import ( // TransformerConfig holds the data needed to perform transformations. type TransformerConfig struct { - NamePrefix fsSlice `json:"namePrefix,omitempty" yaml:"namePrefix,omitempty"` - NameSuffix fsSlice `json:"nameSuffix,omitempty" yaml:"nameSuffix,omitempty"` - NameSpace fsSlice `json:"namespace,omitempty" yaml:"namespace,omitempty"` - CommonLabels fsSlice `json:"commonLabels,omitempty" yaml:"commonLabels,omitempty"` - CommonAnnotations fsSlice `json:"commonAnnotations,omitempty" yaml:"commonAnnotations,omitempty"` - NameReference nbrSlice `json:"nameReference,omitempty" yaml:"nameReference,omitempty"` - VarReference fsSlice `json:"varReference,omitempty" yaml:"varReference,omitempty"` - Images fsSlice `json:"images,omitempty" yaml:"images,omitempty"` - Replicas fsSlice `json:"replicas,omitempty" yaml:"replicas,omitempty"` + NamePrefix types.FsSlice `json:"namePrefix,omitempty" yaml:"namePrefix,omitempty"` + NameSuffix types.FsSlice `json:"nameSuffix,omitempty" yaml:"nameSuffix,omitempty"` + NameSpace types.FsSlice `json:"namespace,omitempty" yaml:"namespace,omitempty"` + CommonLabels types.FsSlice `json:"commonLabels,omitempty" yaml:"commonLabels,omitempty"` + CommonAnnotations types.FsSlice `json:"commonAnnotations,omitempty" yaml:"commonAnnotations,omitempty"` + NameReference nbrSlice `json:"nameReference,omitempty" yaml:"nameReference,omitempty"` + VarReference types.FsSlice `json:"varReference,omitempty" yaml:"varReference,omitempty"` + Images types.FsSlice `json:"images,omitempty" yaml:"images,omitempty"` + Replicas types.FsSlice `json:"replicas,omitempty" yaml:"replicas,omitempty"` } // MakeEmptyConfig returns an empty TransformerConfig object @@ -66,26 +67,26 @@ func (t *TransformerConfig) sortFields() { } // AddPrefixFieldSpec adds a FieldSpec to NamePrefix -func (t *TransformerConfig) AddPrefixFieldSpec(fs FieldSpec) (err error) { - t.NamePrefix, err = t.NamePrefix.mergeOne(fs) +func (t *TransformerConfig) AddPrefixFieldSpec(fs types.FieldSpec) (err error) { + t.NamePrefix, err = t.NamePrefix.MergeOne(fs) return err } // AddSuffixFieldSpec adds a FieldSpec to NameSuffix -func (t *TransformerConfig) AddSuffixFieldSpec(fs FieldSpec) (err error) { - t.NameSuffix, err = t.NameSuffix.mergeOne(fs) +func (t *TransformerConfig) AddSuffixFieldSpec(fs types.FieldSpec) (err error) { + t.NameSuffix, err = t.NameSuffix.MergeOne(fs) return err } // AddLabelFieldSpec adds a FieldSpec to CommonLabels -func (t *TransformerConfig) AddLabelFieldSpec(fs FieldSpec) (err error) { - t.CommonLabels, err = t.CommonLabels.mergeOne(fs) +func (t *TransformerConfig) AddLabelFieldSpec(fs types.FieldSpec) (err error) { + t.CommonLabels, err = t.CommonLabels.MergeOne(fs) return err } // AddAnnotationFieldSpec adds a FieldSpec to CommonAnnotations -func (t *TransformerConfig) AddAnnotationFieldSpec(fs FieldSpec) (err error) { - t.CommonAnnotations, err = t.CommonAnnotations.mergeOne(fs) +func (t *TransformerConfig) AddAnnotationFieldSpec(fs types.FieldSpec) (err error) { + t.CommonAnnotations, err = t.CommonAnnotations.MergeOne(fs) return err } @@ -104,28 +105,28 @@ func (t *TransformerConfig) Merge(input *TransformerConfig) ( return t, nil } merged = &TransformerConfig{} - merged.NamePrefix, err = t.NamePrefix.mergeAll(input.NamePrefix) + merged.NamePrefix, err = t.NamePrefix.MergeAll(input.NamePrefix) if err != nil { return nil, err } - merged.NameSuffix, err = t.NameSuffix.mergeAll(input.NameSuffix) + merged.NameSuffix, err = t.NameSuffix.MergeAll(input.NameSuffix) if err != nil { return nil, err } - merged.NameSpace, err = t.NameSpace.mergeAll(input.NameSpace) + merged.NameSpace, err = t.NameSpace.MergeAll(input.NameSpace) if err != nil { return nil, err } - merged.CommonAnnotations, err = t.CommonAnnotations.mergeAll( + merged.CommonAnnotations, err = t.CommonAnnotations.MergeAll( input.CommonAnnotations) if err != nil { return nil, err } - merged.CommonLabels, err = t.CommonLabels.mergeAll(input.CommonLabels) + merged.CommonLabels, err = t.CommonLabels.MergeAll(input.CommonLabels) if err != nil { return nil, err } - merged.VarReference, err = t.VarReference.mergeAll(input.VarReference) + merged.VarReference, err = t.VarReference.MergeAll(input.VarReference) if err != nil { return nil, err } @@ -133,11 +134,11 @@ func (t *TransformerConfig) Merge(input *TransformerConfig) ( if err != nil { return nil, err } - merged.Images, err = t.Images.mergeAll(input.Images) + merged.Images, err = t.Images.MergeAll(input.Images) if err != nil { return nil, err } - merged.Replicas, err = t.Replicas.mergeAll(input.Replicas) + merged.Replicas, err = t.Replicas.MergeAll(input.Replicas) if err != nil { return nil, err } diff --git a/pkg/transformers/config/transformerconfig_test.go b/pkg/transformers/config/transformerconfig_test.go index b39bfdd43..472c6d802 100644 --- a/pkg/transformers/config/transformerconfig_test.go +++ b/pkg/transformers/config/transformerconfig_test.go @@ -18,6 +18,7 @@ package config import ( "sigs.k8s.io/kustomize/v3/api/resid" + "sigs.k8s.io/kustomize/v3/api/types" "testing" "reflect" @@ -30,7 +31,7 @@ func TestAddNamereferenceFieldSpec(t *testing.T) { Gvk: resid.Gvk{ Kind: "KindA", }, - FieldSpecs: []FieldSpec{ + FieldSpecs: []types.FieldSpec{ { Gvk: resid.Gvk{ Kind: "KindB", @@ -53,7 +54,7 @@ func TestAddNamereferenceFieldSpec(t *testing.T) { func TestAddFieldSpecs(t *testing.T) { cfg := &TransformerConfig{} - fieldSpec := FieldSpec{ + fieldSpec := types.FieldSpec{ Gvk: resid.Gvk{Group: "GroupA", Kind: "KindB"}, Path: "path/to/a/field", CreateIfNotPresent: true, @@ -95,7 +96,7 @@ func TestMerge(t *testing.T) { Gvk: resid.Gvk{ Kind: "KindA", }, - FieldSpecs: []FieldSpec{ + FieldSpecs: []types.FieldSpec{ { Gvk: resid.Gvk{ Kind: "KindB", @@ -109,7 +110,7 @@ func TestMerge(t *testing.T) { Gvk: resid.Gvk{ Kind: "KindA", }, - FieldSpecs: []FieldSpec{ + FieldSpecs: []types.FieldSpec{ { Gvk: resid.Gvk{ Kind: "KindC", @@ -120,7 +121,7 @@ func TestMerge(t *testing.T) { }, }, } - fieldSpecs := []FieldSpec{ + fieldSpecs := []types.FieldSpec{ { Gvk: resid.Gvk{Group: "GroupA", Kind: "KindB"}, Path: "path/to/a/field", diff --git a/pkg/transformers/labelsandannotations.go b/pkg/transformers/labelsandannotations.go index 284121d08..efd3f4e26 100644 --- a/pkg/transformers/labelsandannotations.go +++ b/pkg/transformers/labelsandannotations.go @@ -19,34 +19,34 @@ package transformers import ( "errors" "fmt" + "sigs.k8s.io/kustomize/v3/api/types" "sigs.k8s.io/kustomize/v3/pkg/resmap" - "sigs.k8s.io/kustomize/v3/pkg/transformers/config" ) // mapTransformer applies a string->string map to fieldSpecs. type mapTransformer struct { m map[string]string - fieldSpecs []config.FieldSpec + fieldSpecs []types.FieldSpec } var _ resmap.Transformer = &mapTransformer{} // NewLabelsMapTransformer constructs a mapTransformer. func NewLabelsMapTransformer( - m map[string]string, fs []config.FieldSpec) (resmap.Transformer, error) { + m map[string]string, fs []types.FieldSpec) (resmap.Transformer, error) { return NewMapTransformer(fs, m) } // NewAnnotationsMapTransformer construct a mapTransformer. func NewAnnotationsMapTransformer( - m map[string]string, fs []config.FieldSpec) (resmap.Transformer, error) { + m map[string]string, fs []types.FieldSpec) (resmap.Transformer, error) { return NewMapTransformer(fs, m) } // NewMapTransformer construct a mapTransformer. func NewMapTransformer( - pc []config.FieldSpec, m map[string]string) (resmap.Transformer, error) { + pc []types.FieldSpec, m map[string]string) (resmap.Transformer, error) { if m == nil { return NewNoOpTransformer(), nil } diff --git a/pkg/transformers/refvars.go b/pkg/transformers/refvars.go index 2ee54bab0..ffe006af9 100644 --- a/pkg/transformers/refvars.go +++ b/pkg/transformers/refvars.go @@ -18,16 +18,16 @@ package transformers import ( "fmt" + "sigs.k8s.io/kustomize/v3/api/types" "sigs.k8s.io/kustomize/v3/pkg/expansion" "sigs.k8s.io/kustomize/v3/pkg/resmap" - "sigs.k8s.io/kustomize/v3/pkg/transformers/config" ) type RefVarTransformer struct { varMap map[string]interface{} replacementCounts map[string]int - fieldSpecs []config.FieldSpec + fieldSpecs []types.FieldSpec mappingFunc func(string) interface{} } @@ -35,7 +35,7 @@ type RefVarTransformer struct { // that replaces $(VAR) style variables with values. // The fieldSpecs are the places to look for occurrences of $(VAR). func NewRefVarTransformer( - varMap map[string]interface{}, fs []config.FieldSpec) *RefVarTransformer { + varMap map[string]interface{}, fs []types.FieldSpec) *RefVarTransformer { return &RefVarTransformer{ varMap: varMap, fieldSpecs: fs, diff --git a/pkg/transformers/refvars_test.go b/pkg/transformers/refvars_test.go index ce2e0f917..97bad29a8 100644 --- a/pkg/transformers/refvars_test.go +++ b/pkg/transformers/refvars_test.go @@ -6,17 +6,17 @@ package transformers import ( "reflect" "sigs.k8s.io/kustomize/v3/api/resid" + "sigs.k8s.io/kustomize/v3/api/types" "testing" "sigs.k8s.io/kustomize/v3/pkg/resmap" "sigs.k8s.io/kustomize/v3/pkg/resmaptest" - "sigs.k8s.io/kustomize/v3/pkg/transformers/config" ) func TestVarRef(t *testing.T) { type given struct { varMap map[string]interface{} - fs []config.FieldSpec + fs []types.FieldSpec res resmap.ResMap } type expected struct { @@ -37,7 +37,7 @@ func TestVarRef(t *testing.T) { "BAZ": int64(5), "BOO": true, }, - fs: []config.FieldSpec{ + fs: []types.FieldSpec{ {Gvk: resid.Gvk{Version: "v1", Kind: "ConfigMap"}, Path: "data/map"}, {Gvk: resid.Gvk{Version: "v1", Kind: "ConfigMap"}, Path: "data/slice"}, {Gvk: resid.Gvk{Version: "v1", Kind: "ConfigMap"}, Path: "data/interface"}, diff --git a/plugin/builtin/AnnotationsTransformer.go b/plugin/builtin/AnnotationsTransformer.go index a50a9f765..8f5f6ca54 100644 --- a/plugin/builtin/AnnotationsTransformer.go +++ b/plugin/builtin/AnnotationsTransformer.go @@ -2,16 +2,16 @@ package builtin import ( + "sigs.k8s.io/kustomize/v3/api/types" "sigs.k8s.io/kustomize/v3/pkg/resmap" "sigs.k8s.io/kustomize/v3/pkg/transformers" - "sigs.k8s.io/kustomize/v3/pkg/transformers/config" "sigs.k8s.io/yaml" ) // Add the given annotations to the given field specifications. type AnnotationsTransformerPlugin struct { - Annotations map[string]string `json:"annotations,omitempty" yaml:"annotations,omitempty"` - FieldSpecs []config.FieldSpec `json:"fieldSpecs,omitempty" yaml:"fieldSpecs,omitempty"` + Annotations map[string]string `json:"annotations,omitempty" yaml:"annotations,omitempty"` + FieldSpecs []types.FieldSpec `json:"fieldSpecs,omitempty" yaml:"fieldSpecs,omitempty"` } func (p *AnnotationsTransformerPlugin) Config( diff --git a/plugin/builtin/ImageTagTransformer.go b/plugin/builtin/ImageTagTransformer.go index 9f13b891c..1d2e30109 100644 --- a/plugin/builtin/ImageTagTransformer.go +++ b/plugin/builtin/ImageTagTransformer.go @@ -9,15 +9,14 @@ import ( "sigs.k8s.io/kustomize/v3/pkg/resmap" "sigs.k8s.io/kustomize/v3/pkg/transformers" - "sigs.k8s.io/kustomize/v3/pkg/transformers/config" "sigs.k8s.io/yaml" ) // Find matching image declarations and replace // the name, tag and/or digest. type ImageTagTransformerPlugin struct { - ImageTag types.Image `json:"imageTag,omitempty" yaml:"imageTag,omitempty"` - FieldSpecs []config.FieldSpec `json:"fieldSpecs,omitempty" yaml:"fieldSpecs,omitempty"` + ImageTag types.Image `json:"imageTag,omitempty" yaml:"imageTag,omitempty"` + FieldSpecs []types.FieldSpec `json:"fieldSpecs,omitempty" yaml:"fieldSpecs,omitempty"` } func (p *ImageTagTransformerPlugin) Config( diff --git a/plugin/builtin/LabelTransformer.go b/plugin/builtin/LabelTransformer.go index af341dd17..dc2e16fed 100644 --- a/plugin/builtin/LabelTransformer.go +++ b/plugin/builtin/LabelTransformer.go @@ -2,16 +2,16 @@ package builtin import ( + "sigs.k8s.io/kustomize/v3/api/types" "sigs.k8s.io/kustomize/v3/pkg/resmap" "sigs.k8s.io/kustomize/v3/pkg/transformers" - "sigs.k8s.io/kustomize/v3/pkg/transformers/config" "sigs.k8s.io/yaml" ) // Add the given labels to the given field specifications. type LabelTransformerPlugin struct { - Labels map[string]string `json:"labels,omitempty" yaml:"labels,omitempty"` - FieldSpecs []config.FieldSpec `json:"fieldSpecs,omitempty" yaml:"fieldSpecs,omitempty"` + Labels map[string]string `json:"labels,omitempty" yaml:"labels,omitempty"` + FieldSpecs []types.FieldSpec `json:"fieldSpecs,omitempty" yaml:"fieldSpecs,omitempty"` } func (p *LabelTransformerPlugin) Config( diff --git a/plugin/builtin/NamespaceTransformer.go b/plugin/builtin/NamespaceTransformer.go index adf01e381..0fdd9ea1d 100644 --- a/plugin/builtin/NamespaceTransformer.go +++ b/plugin/builtin/NamespaceTransformer.go @@ -9,14 +9,13 @@ 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/transformers/config" "sigs.k8s.io/yaml" ) // Change or set the namespace of non-cluster level resources. type NamespaceTransformerPlugin struct { types.ObjectMeta `json:"metadata,omitempty" yaml:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - FieldSpecs []config.FieldSpec `json:"fieldSpecs,omitempty" yaml:"fieldSpecs,omitempty"` + FieldSpecs []types.FieldSpec `json:"fieldSpecs,omitempty" yaml:"fieldSpecs,omitempty"` } func (p *NamespaceTransformerPlugin) Config( @@ -62,8 +61,8 @@ const metaNamespace = "metadata/namespace" // all objects have it, even "ClusterKind" objects // that don't exist in a namespace (the Namespace // object itself doesn't live in a namespace). -func (p *NamespaceTransformerPlugin) applicableFieldSpecs(id resid.ResId) []config.FieldSpec { - var res []config.FieldSpec +func (p *NamespaceTransformerPlugin) applicableFieldSpecs(id resid.ResId) []types.FieldSpec { + var res []types.FieldSpec for _, fs := range p.FieldSpecs { if id.IsSelected(&fs.Gvk) && (fs.Path != metaNamespace || (fs.Path == metaNamespace && id.IsNamespaceableKind())) { res = append(res, fs) diff --git a/plugin/builtin/PrefixSuffixTransformer.go b/plugin/builtin/PrefixSuffixTransformer.go index af83bd6b0..dfad058b2 100644 --- a/plugin/builtin/PrefixSuffixTransformer.go +++ b/plugin/builtin/PrefixSuffixTransformer.go @@ -4,23 +4,23 @@ package builtin import ( "errors" "fmt" + "sigs.k8s.io/kustomize/v3/api/types" "sigs.k8s.io/kustomize/v3/api/resid" "sigs.k8s.io/kustomize/v3/pkg/resmap" "sigs.k8s.io/kustomize/v3/pkg/transformers" - "sigs.k8s.io/kustomize/v3/pkg/transformers/config" "sigs.k8s.io/yaml" ) // Add the given prefix and suffix to the field. type PrefixSuffixTransformerPlugin struct { - Prefix string `json:"prefix,omitempty" yaml:"prefix,omitempty"` - Suffix string `json:"suffix,omitempty" yaml:"suffix,omitempty"` - FieldSpecs []config.FieldSpec `json:"fieldSpecs,omitempty" yaml:"fieldSpecs,omitempty"` + Prefix string `json:"prefix,omitempty" yaml:"prefix,omitempty"` + Suffix string `json:"suffix,omitempty" yaml:"suffix,omitempty"` + FieldSpecs []types.FieldSpec `json:"fieldSpecs,omitempty" yaml:"fieldSpecs,omitempty"` } // Not placed in a file yet due to lack of demand. -var prefixSuffixFieldSpecsToSkip = []config.FieldSpec{ +var prefixSuffixFieldSpecsToSkip = []types.FieldSpec{ { Gvk: resid.Gvk{Kind: "CustomResourceDefinition"}, }, @@ -92,7 +92,7 @@ func (p *PrefixSuffixTransformerPlugin) Transform(m resmap.ResMap) error { return nil } -func smellsLikeANameChange(fs *config.FieldSpec) bool { +func smellsLikeANameChange(fs *types.FieldSpec) bool { return fs.Path == "metadata/name" } diff --git a/plugin/builtin/ReplicaCountTransformer.go b/plugin/builtin/ReplicaCountTransformer.go index f05f263a2..1eb357e2c 100644 --- a/plugin/builtin/ReplicaCountTransformer.go +++ b/plugin/builtin/ReplicaCountTransformer.go @@ -8,15 +8,14 @@ import ( "sigs.k8s.io/kustomize/v3/api/types" "sigs.k8s.io/kustomize/v3/pkg/resmap" "sigs.k8s.io/kustomize/v3/pkg/transformers" - "sigs.k8s.io/kustomize/v3/pkg/transformers/config" "sigs.k8s.io/yaml" ) // Find matching replicas declarations and replace the count. // Eases the kustomization configuration of replica changes. type ReplicaCountTransformerPlugin struct { - Replica types.Replica `json:"replica,omitempty" yaml:"replica,omitempty"` - FieldSpecs []config.FieldSpec `json:"fieldSpecs,omitempty" yaml:"fieldSpecs,omitempty"` + Replica types.Replica `json:"replica,omitempty" yaml:"replica,omitempty"` + FieldSpecs []types.FieldSpec `json:"fieldSpecs,omitempty" yaml:"fieldSpecs,omitempty"` } func (p *ReplicaCountTransformerPlugin) Config( diff --git a/plugin/builtin/annotationstransformer/AnnotationsTransformer.go b/plugin/builtin/annotationstransformer/AnnotationsTransformer.go index 9b36f86cf..c30922952 100644 --- a/plugin/builtin/annotationstransformer/AnnotationsTransformer.go +++ b/plugin/builtin/annotationstransformer/AnnotationsTransformer.go @@ -5,16 +5,16 @@ package main import ( + "sigs.k8s.io/kustomize/v3/api/types" "sigs.k8s.io/kustomize/v3/pkg/resmap" "sigs.k8s.io/kustomize/v3/pkg/transformers" - "sigs.k8s.io/kustomize/v3/pkg/transformers/config" "sigs.k8s.io/yaml" ) // Add the given annotations to the given field specifications. type plugin struct { - Annotations map[string]string `json:"annotations,omitempty" yaml:"annotations,omitempty"` - FieldSpecs []config.FieldSpec `json:"fieldSpecs,omitempty" yaml:"fieldSpecs,omitempty"` + Annotations map[string]string `json:"annotations,omitempty" yaml:"annotations,omitempty"` + FieldSpecs []types.FieldSpec `json:"fieldSpecs,omitempty" yaml:"fieldSpecs,omitempty"` } //noinspection GoUnusedGlobalVariable diff --git a/plugin/builtin/imagetagtransformer/ImageTagTransformer.go b/plugin/builtin/imagetagtransformer/ImageTagTransformer.go index d3e0c11be..d29cdd169 100644 --- a/plugin/builtin/imagetagtransformer/ImageTagTransformer.go +++ b/plugin/builtin/imagetagtransformer/ImageTagTransformer.go @@ -12,15 +12,14 @@ import ( "sigs.k8s.io/kustomize/v3/pkg/resmap" "sigs.k8s.io/kustomize/v3/pkg/transformers" - "sigs.k8s.io/kustomize/v3/pkg/transformers/config" "sigs.k8s.io/yaml" ) // Find matching image declarations and replace // the name, tag and/or digest. type plugin struct { - ImageTag types.Image `json:"imageTag,omitempty" yaml:"imageTag,omitempty"` - FieldSpecs []config.FieldSpec `json:"fieldSpecs,omitempty" yaml:"fieldSpecs,omitempty"` + ImageTag types.Image `json:"imageTag,omitempty" yaml:"imageTag,omitempty"` + FieldSpecs []types.FieldSpec `json:"fieldSpecs,omitempty" yaml:"fieldSpecs,omitempty"` } //noinspection GoUnusedGlobalVariable diff --git a/plugin/builtin/labeltransformer/LabelTransformer.go b/plugin/builtin/labeltransformer/LabelTransformer.go index 30620b16e..3ef5ebc71 100644 --- a/plugin/builtin/labeltransformer/LabelTransformer.go +++ b/plugin/builtin/labeltransformer/LabelTransformer.go @@ -5,16 +5,16 @@ package main import ( + "sigs.k8s.io/kustomize/v3/api/types" "sigs.k8s.io/kustomize/v3/pkg/resmap" "sigs.k8s.io/kustomize/v3/pkg/transformers" - "sigs.k8s.io/kustomize/v3/pkg/transformers/config" "sigs.k8s.io/yaml" ) // Add the given labels to the given field specifications. type plugin struct { - Labels map[string]string `json:"labels,omitempty" yaml:"labels,omitempty"` - FieldSpecs []config.FieldSpec `json:"fieldSpecs,omitempty" yaml:"fieldSpecs,omitempty"` + Labels map[string]string `json:"labels,omitempty" yaml:"labels,omitempty"` + FieldSpecs []types.FieldSpec `json:"fieldSpecs,omitempty" yaml:"fieldSpecs,omitempty"` } //noinspection GoUnusedGlobalVariable diff --git a/plugin/builtin/namespacetransformer/NamespaceTransformer.go b/plugin/builtin/namespacetransformer/NamespaceTransformer.go index ae4f2c832..49721836c 100644 --- a/plugin/builtin/namespacetransformer/NamespaceTransformer.go +++ b/plugin/builtin/namespacetransformer/NamespaceTransformer.go @@ -12,14 +12,13 @@ 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/transformers/config" "sigs.k8s.io/yaml" ) // Change or set the namespace of non-cluster level resources. type plugin struct { types.ObjectMeta `json:"metadata,omitempty" yaml:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - FieldSpecs []config.FieldSpec `json:"fieldSpecs,omitempty" yaml:"fieldSpecs,omitempty"` + FieldSpecs []types.FieldSpec `json:"fieldSpecs,omitempty" yaml:"fieldSpecs,omitempty"` } //noinspection GoUnusedGlobalVariable @@ -68,8 +67,8 @@ const metaNamespace = "metadata/namespace" // all objects have it, even "ClusterKind" objects // that don't exist in a namespace (the Namespace // object itself doesn't live in a namespace). -func (p *plugin) applicableFieldSpecs(id resid.ResId) []config.FieldSpec { - var res []config.FieldSpec +func (p *plugin) applicableFieldSpecs(id resid.ResId) []types.FieldSpec { + var res []types.FieldSpec for _, fs := range p.FieldSpecs { if id.IsSelected(&fs.Gvk) && (fs.Path != metaNamespace || (fs.Path == metaNamespace && id.IsNamespaceableKind())) { res = append(res, fs) diff --git a/plugin/builtin/prefixsuffixtransformer/PrefixSuffixTransformer.go b/plugin/builtin/prefixsuffixtransformer/PrefixSuffixTransformer.go index 15d02b0ff..6d17d8b9d 100644 --- a/plugin/builtin/prefixsuffixtransformer/PrefixSuffixTransformer.go +++ b/plugin/builtin/prefixsuffixtransformer/PrefixSuffixTransformer.go @@ -7,26 +7,26 @@ package main import ( "errors" "fmt" + "sigs.k8s.io/kustomize/v3/api/types" "sigs.k8s.io/kustomize/v3/api/resid" "sigs.k8s.io/kustomize/v3/pkg/resmap" "sigs.k8s.io/kustomize/v3/pkg/transformers" - "sigs.k8s.io/kustomize/v3/pkg/transformers/config" "sigs.k8s.io/yaml" ) // Add the given prefix and suffix to the field. type plugin struct { - Prefix string `json:"prefix,omitempty" yaml:"prefix,omitempty"` - Suffix string `json:"suffix,omitempty" yaml:"suffix,omitempty"` - FieldSpecs []config.FieldSpec `json:"fieldSpecs,omitempty" yaml:"fieldSpecs,omitempty"` + Prefix string `json:"prefix,omitempty" yaml:"prefix,omitempty"` + Suffix string `json:"suffix,omitempty" yaml:"suffix,omitempty"` + FieldSpecs []types.FieldSpec `json:"fieldSpecs,omitempty" yaml:"fieldSpecs,omitempty"` } //noinspection GoUnusedGlobalVariable var KustomizePlugin plugin // Not placed in a file yet due to lack of demand. -var prefixSuffixFieldSpecsToSkip = []config.FieldSpec{ +var prefixSuffixFieldSpecsToSkip = []types.FieldSpec{ { Gvk: resid.Gvk{Kind: "CustomResourceDefinition"}, }, @@ -98,7 +98,7 @@ func (p *plugin) Transform(m resmap.ResMap) error { return nil } -func smellsLikeANameChange(fs *config.FieldSpec) bool { +func smellsLikeANameChange(fs *types.FieldSpec) bool { return fs.Path == "metadata/name" } diff --git a/plugin/builtin/replicacounttransformer/ReplicaCountTransformer.go b/plugin/builtin/replicacounttransformer/ReplicaCountTransformer.go index 98387ea74..5573540b9 100644 --- a/plugin/builtin/replicacounttransformer/ReplicaCountTransformer.go +++ b/plugin/builtin/replicacounttransformer/ReplicaCountTransformer.go @@ -11,15 +11,14 @@ import ( "sigs.k8s.io/kustomize/v3/api/types" "sigs.k8s.io/kustomize/v3/pkg/resmap" "sigs.k8s.io/kustomize/v3/pkg/transformers" - "sigs.k8s.io/kustomize/v3/pkg/transformers/config" "sigs.k8s.io/yaml" ) // Find matching replicas declarations and replace the count. // Eases the kustomization configuration of replica changes. type plugin struct { - Replica types.Replica `json:"replica,omitempty" yaml:"replica,omitempty"` - FieldSpecs []config.FieldSpec `json:"fieldSpecs,omitempty" yaml:"fieldSpecs,omitempty"` + Replica types.Replica `json:"replica,omitempty" yaml:"replica,omitempty"` + FieldSpecs []types.FieldSpec `json:"fieldSpecs,omitempty" yaml:"fieldSpecs,omitempty"` } //noinspection GoUnusedGlobalVariable diff --git a/plugin/doc.go b/plugin/doc.go index e9eb8ba80..4b9f2fae5 100644 --- a/plugin/doc.go +++ b/plugin/doc.go @@ -101,7 +101,7 @@ etc. Generated plugins are used in kustomize via package whatever - import "sigs.k8s.io/kustomize/v3/plugin/builtin + import sigs.k8s.io/kustomize/v3/plugin/builtin ... g := builtin.NewSecretGenerator() g.Config(h, k) diff --git a/plugin/someteam.example.com/v1/dateprefixer/DatePrefixer.go b/plugin/someteam.example.com/v1/dateprefixer/DatePrefixer.go index 9e2b74623..ded9d7fcd 100644 --- a/plugin/someteam.example.com/v1/dateprefixer/DatePrefixer.go +++ b/plugin/someteam.example.com/v1/dateprefixer/DatePrefixer.go @@ -5,8 +5,8 @@ package main import ( "github.com/pkg/errors" + "sigs.k8s.io/kustomize/v3/api/types" "sigs.k8s.io/kustomize/v3/pkg/resmap" - "sigs.k8s.io/kustomize/v3/pkg/transformers/config" "sigs.k8s.io/kustomize/v3/plugin/builtin" "sigs.k8s.io/yaml" ) @@ -25,10 +25,10 @@ func (p *plugin) makePrefixSuffixPluginConfig() ([]byte, error) { var s struct { Prefix string Suffix string - FieldSpecs []config.FieldSpec + FieldSpecs []types.FieldSpec } s.Prefix = getDate() + "-" - s.FieldSpecs = []config.FieldSpec{ + s.FieldSpecs = []types.FieldSpec{ {Path: "metadata/name"}, } return yaml.Marshal(s) diff --git a/plugin/someteam.example.com/v1/stringprefixer/StringPrefixer.go b/plugin/someteam.example.com/v1/stringprefixer/StringPrefixer.go index 378f7d775..5d93abf68 100644 --- a/plugin/someteam.example.com/v1/stringprefixer/StringPrefixer.go +++ b/plugin/someteam.example.com/v1/stringprefixer/StringPrefixer.go @@ -7,7 +7,6 @@ import ( "github.com/pkg/errors" "sigs.k8s.io/kustomize/v3/api/types" "sigs.k8s.io/kustomize/v3/pkg/resmap" - "sigs.k8s.io/kustomize/v3/pkg/transformers/config" "sigs.k8s.io/kustomize/v3/plugin/builtin" "sigs.k8s.io/yaml" ) @@ -27,10 +26,10 @@ func (p *plugin) makePrefixSuffixPluginConfig(n string) ([]byte, error) { var s struct { Prefix string Suffix string - FieldSpecs []config.FieldSpec + FieldSpecs []types.FieldSpec } s.Prefix = n + "-" - s.FieldSpecs = []config.FieldSpec{ + s.FieldSpecs = []types.FieldSpec{ {Path: "metadata/name"}, } return yaml.Marshal(s)