Merge pull request #4377 from natasha41575/managedBy

deprecate enable-managedby-label flag in favor of a field
This commit is contained in:
Kubernetes Prow Robot
2022-01-19 17:03:51 -08:00
committed by GitHub
5 changed files with 57 additions and 25 deletions

View File

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

View File

@@ -9,28 +9,7 @@ import (
kusttest_test "sigs.k8s.io/kustomize/api/testutils/kusttest"
)
func TestAddManagedbyLabel(t *testing.T) {
th := kusttest_test.MakeHarness(t)
th.WriteF("service.yaml", `
apiVersion: v1
kind: Service
metadata:
name: myService
spec:
ports:
- port: 7002
`)
th.WriteK(".", `
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- service.yaml
`)
options := th.MakeDefaultOptions()
options.AddManagedbyLabel = true
m := th.Run(".", options)
th.AssertActualEqualsExpected(m, `
apiVersion: v1
const expected = `apiVersion: v1
kind: Service
metadata:
labels:
@@ -39,5 +18,51 @@ metadata:
spec:
ports:
- port: 7002
`
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.WriteF("service.yaml", `
apiVersion: v1
kind: Service
metadata:
name: myService
spec:
ports:
- port: 7002
`)
th.WriteK(".", tc.kustFile)
options := th.MakeDefaultOptions()
options.AddManagedbyLabel = tc.managedByFlag
m := th.Run(".", options)
th.AssertActualEqualsExpected(m, tc.expected)
}
}

View File

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

View File

@@ -104,6 +104,8 @@ func NewCmdBuild(
AddFlagEnablePlugins(cmd.Flags())
AddFlagReorderOutput(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())
return cmd
}

View File

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