Merge pull request #2578 from Liujingfang1/master

Add kustomize build flag --enable_managedby_label
This commit is contained in:
Kubernetes Prow Robot
2020-06-09 14:38:04 -07:00
committed by GitHub
6 changed files with 52 additions and 5 deletions

View File

@@ -30,4 +30,10 @@ const (
// A program name, for use in help, finding the XDG_CONFIG_DIR, etc.
ProgramName = "kustomize"
// Label key that indicates the resources are built from Kustomize
ManagedbyLabelKey = "app.kubernetes.io/managed-by"
// An environment variable to turn on/off adding the ManagedByLabelKey
EnableManagedbyLabelEnv = "KUSTOMIZE_ENABLE_MANAGEDBY_LABEL"
)

View File

@@ -13,6 +13,7 @@ import (
"sigs.k8s.io/kustomize/api/internal/target"
"sigs.k8s.io/kustomize/api/k8sdeps/kunstruct"
"sigs.k8s.io/kustomize/api/k8sdeps/validator"
"sigs.k8s.io/kustomize/api/konfig"
fLdr "sigs.k8s.io/kustomize/api/loader"
"sigs.k8s.io/kustomize/api/provenance"
"sigs.k8s.io/kustomize/api/resmap"
@@ -20,10 +21,6 @@ import (
"sigs.k8s.io/kustomize/api/types"
)
const (
managedbyLabelKey = "app.kubernetes.io/managed-by"
)
// Kustomizer performs kustomizations. It's meant to behave
// similarly to the kustomize CLI, and can be used instead of
// performing an exec to a kustomize CLI subprocess.
@@ -87,7 +84,7 @@ func (b *Kustomizer) Run(path string) (resmap.ResMap, error) {
}
if b.options.AddManagedbyLabel {
t := builtins.LabelTransformerPlugin{
Labels: map[string]string{managedbyLabelKey: fmt.Sprintf("kustomize-%s", provenance.GetProvenance().Version)},
Labels: map[string]string{konfig.ManagedbyLabelKey: fmt.Sprintf("kustomize-%s", provenance.GetProvenance().Version)},
FieldSpecs: []types.FieldSpec{{
Path: "metadata/labels",
CreateIfNotPresent: true,

View File

@@ -23,3 +23,5 @@ exclude (
github.com/russross/blackfriday v2.0.0+incompatible
sigs.k8s.io/kustomize/api v0.2.0
)
replace sigs.k8s.io/kustomize/api => ../api

View File

@@ -77,6 +77,7 @@ func NewCmdBuild(out io.Writer) *cobra.Command {
addFlagLoadRestrictor(cmd.Flags())
addFlagEnablePlugins(cmd.Flags())
addFlagReorderOutput(cmd.Flags())
addFlagEnableManagedbyLabel(cmd.Flags())
return cmd
}
@@ -114,6 +115,9 @@ func (o *Options) makeOptions() *krusty.Options {
} else {
opts.PluginConfig = konfig.DisabledPluginConfig()
}
if isManagedbyLabelEnabled() {
opts.AddManagedbyLabel = true
}
return opts
}

View File

@@ -0,0 +1,38 @@
// Copyright 2019 The Kubernetes Authors.
// SPDX-License-Identifier: Apache-2.0
package build
import (
"os"
"github.com/spf13/pflag"
"sigs.k8s.io/kustomize/api/konfig"
)
const (
flagEnableManagedbyLabelName = "enable_managedby_label"
flagEnableManagedbyLabelHelp = `enable adding ` + konfig.ManagedbyLabelKey
)
var (
flagEnableManagedbyLabelValue = false
)
func addFlagEnableManagedbyLabel(set *pflag.FlagSet) {
set.BoolVar(
&flagEnableManagedbyLabelValue, flagEnableManagedbyLabelName,
false, flagEnableManagedbyLabelHelp)
}
func isManagedbyLabelEnabled() bool {
if flagEnableManagedbyLabelValue {
return true
}
enableLabel, isSet := os.LookupEnv(konfig.EnableManagedbyLabelEnv)
if isSet && enableLabel == "on" {
return true
}
return false
}

BIN
kustomize/kustomize Executable file

Binary file not shown.