deprecate enable-managedby-label flag in favor of a field

This commit is contained in:
natasha41575
2022-01-10 15:01:30 -08:00
parent 13e26004fd
commit 2554d690c8
5 changed files with 57 additions and 25 deletions

View File

@@ -10,6 +10,7 @@ import (
"sigs.k8s.io/kustomize/api/internal/builtins" "sigs.k8s.io/kustomize/api/internal/builtins"
pLdr "sigs.k8s.io/kustomize/api/internal/plugins/loader" pLdr "sigs.k8s.io/kustomize/api/internal/plugins/loader"
"sigs.k8s.io/kustomize/api/internal/target" "sigs.k8s.io/kustomize/api/internal/target"
"sigs.k8s.io/kustomize/api/internal/utils"
"sigs.k8s.io/kustomize/api/konfig" "sigs.k8s.io/kustomize/api/konfig"
fLdr "sigs.k8s.io/kustomize/api/loader" fLdr "sigs.k8s.io/kustomize/api/loader"
"sigs.k8s.io/kustomize/api/provenance" "sigs.k8s.io/kustomize/api/provenance"
@@ -95,7 +96,7 @@ func (b *Kustomizer) Run(
return nil, err return nil, err
} }
} }
if b.options.AddManagedbyLabel { if b.options.AddManagedbyLabel || utils.StringSliceContains(kt.Kustomization().BuildMetadata, types.ManagedByLabelOption) {
t := builtins.LabelTransformerPlugin{ t := builtins.LabelTransformerPlugin{
Labels: map[string]string{ Labels: map[string]string{
konfig.ManagedbyLabelKey: fmt.Sprintf("kustomize-%s", provenance.GetProvenance().Semver()), konfig.ManagedbyLabelKey: fmt.Sprintf("kustomize-%s", provenance.GetProvenance().Semver()),

View File

@@ -9,7 +9,46 @@ import (
kusttest_test "sigs.k8s.io/kustomize/api/testutils/kusttest" kusttest_test "sigs.k8s.io/kustomize/api/testutils/kusttest"
) )
const expected = `apiVersion: v1
kind: Service
metadata:
labels:
app.kubernetes.io/managed-by: kustomize-v444.333.222
name: myService
spec:
ports:
- port: 7002
`
func TestAddManagedbyLabel(t *testing.T) { func TestAddManagedbyLabel(t *testing.T) {
tests := []struct {
kustFile string
managedByFlag bool
expected string
}{
{
kustFile: `
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- service.yaml
`,
managedByFlag: true,
expected: expected,
},
{
kustFile: `
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- service.yaml
buildMetadata: [managedByLabel]
`,
managedByFlag: false,
expected: expected,
},
}
for _, tc := range tests {
th := kusttest_test.MakeHarness(t) th := kusttest_test.MakeHarness(t)
th.WriteF("service.yaml", ` th.WriteF("service.yaml", `
apiVersion: v1 apiVersion: v1
@@ -20,24 +59,10 @@ spec:
ports: ports:
- port: 7002 - port: 7002
`) `)
th.WriteK(".", ` th.WriteK(".", tc.kustFile)
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- service.yaml
`)
options := th.MakeDefaultOptions() options := th.MakeDefaultOptions()
options.AddManagedbyLabel = true options.AddManagedbyLabel = tc.managedByFlag
m := th.Run(".", options) m := th.Run(".", options)
th.AssertActualEqualsExpected(m, ` th.AssertActualEqualsExpected(m, tc.expected)
apiVersion: v1 }
kind: Service
metadata:
labels:
app.kubernetes.io/managed-by: kustomize-v444.333.222
name: myService
spec:
ports:
- port: 7002
`)
} }

View File

@@ -17,7 +17,9 @@ const (
ComponentVersion = "kustomize.config.k8s.io/v1alpha1" ComponentVersion = "kustomize.config.k8s.io/v1alpha1"
ComponentKind = "Component" ComponentKind = "Component"
MetadataNamespacePath = "metadata/namespace" MetadataNamespacePath = "metadata/namespace"
OriginAnnotations = "originAnnotations" OriginAnnotations = "originAnnotations"
ManagedByLabelOption = "managedByLabel"
) )
// Kustomization holds the information needed to generate customized k8s api resources. // Kustomization holds the information needed to generate customized k8s api resources.

View File

@@ -104,6 +104,8 @@ func NewCmdBuild(
AddFlagEnablePlugins(cmd.Flags()) AddFlagEnablePlugins(cmd.Flags())
AddFlagReorderOutput(cmd.Flags()) AddFlagReorderOutput(cmd.Flags())
AddFlagEnableManagedbyLabel(cmd.Flags()) AddFlagEnableManagedbyLabel(cmd.Flags())
cmd.Flags().MarkDeprecated(managedByFlag,
"The flag `enable-managedby-label` has been deprecated. Use the `managedByLabel` option in the `buildMetadata` field instead.")
AddFlagEnableHelm(cmd.Flags()) AddFlagEnableHelm(cmd.Flags())
return cmd return cmd
} }

View File

@@ -10,10 +10,12 @@ import (
"sigs.k8s.io/kustomize/api/konfig" "sigs.k8s.io/kustomize/api/konfig"
) )
const managedByFlag = "enable-managedby-label"
func AddFlagEnableManagedbyLabel(set *pflag.FlagSet) { func AddFlagEnableManagedbyLabel(set *pflag.FlagSet) {
set.BoolVar( set.BoolVar(
&theFlags.enable.managedByLabel, &theFlags.enable.managedByLabel,
"enable-managedby-label", managedByFlag,
false, false,
`enable adding `+konfig.ManagedbyLabelKey) `enable adding `+konfig.ManagedbyLabelKey)
} }