mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-05-17 18:25:26 +00:00
Merge pull request #2578 from Liujingfang1/master
Add kustomize build flag --enable_managedby_label
This commit is contained in:
@@ -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"
|
||||
)
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
|
||||
38
kustomize/internal/commands/build/flagaddmanagedby.go
Normal file
38
kustomize/internal/commands/build/flagaddmanagedby.go
Normal 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
BIN
kustomize/kustomize
Executable file
Binary file not shown.
Reference in New Issue
Block a user