Skip to content

Commit

Permalink
deprecate enable-managedby-label flag in favor of a field
Browse files Browse the repository at this point in the history
  • Loading branch information
natasha41575 committed Jan 20, 2022
1 parent 13e2600 commit 2554d69
Show file tree
Hide file tree
Showing 5 changed files with 48 additions and 16 deletions.
3 changes: 2 additions & 1 deletion api/krusty/kustomizer.go
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down Expand Up @@ -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()),
Expand Down
51 changes: 38 additions & 13 deletions api/krusty/managedbylabel_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,35 +9,60 @@ 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
const expected = `apiVersion: v1
kind: Service
metadata:
labels:
app.kubernetes.io/managed-by: kustomize-v444.333.222
name: myService
spec:
ports:
- port: 7002
`)
th.WriteK(".", `
`

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
`)
options := th.MakeDefaultOptions()
options.AddManagedbyLabel = true
m := th.Run(".", options)
th.AssertActualEqualsExpected(m, `
`,
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:
labels:
app.kubernetes.io/managed-by: kustomize-v444.333.222
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)
}
}
4 changes: 3 additions & 1 deletion api/types/kustomization.go
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
2 changes: 2 additions & 0 deletions kustomize/commands/build/build.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
Expand Down
4 changes: 3 additions & 1 deletion kustomize/commands/build/flagaddmanagedby.go
Original file line number Diff line number Diff line change
Expand Up @@ -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)
}
Expand Down

0 comments on commit 2554d69

Please sign in to comment.