diff --git a/cmd/cloud-controller-manager/app/BUILD b/cmd/cloud-controller-manager/app/BUILD index 3070601fd9..815b2c21e3 100644 --- a/cmd/cloud-controller-manager/app/BUILD +++ b/cmd/cloud-controller-manager/app/BUILD @@ -25,11 +25,12 @@ go_library( "//staging/src/k8s.io/apimachinery/pkg/util/wait:go_default_library", "//staging/src/k8s.io/apiserver/pkg/server:go_default_library", "//staging/src/k8s.io/apiserver/pkg/server/healthz:go_default_library", - "//staging/src/k8s.io/apiserver/pkg/util/flag:go_default_library", - "//staging/src/k8s.io/apiserver/pkg/util/globalflag:go_default_library", + "//staging/src/k8s.io/apiserver/pkg/util/term:go_default_library", "//staging/src/k8s.io/client-go/tools/leaderelection:go_default_library", "//staging/src/k8s.io/client-go/tools/leaderelection/resourcelock:go_default_library", "//staging/src/k8s.io/cloud-provider:go_default_library", + "//staging/src/k8s.io/component-base/cli/flag:go_default_library", + "//staging/src/k8s.io/component-base/cli/globalflag:go_default_library", "//vendor/github.com/spf13/cobra:go_default_library", "//vendor/k8s.io/klog:go_default_library", ], diff --git a/cmd/cloud-controller-manager/app/controllermanager.go b/cmd/cloud-controller-manager/app/controllermanager.go index 8bd26c8240..ce14f2f00a 100644 --- a/cmd/cloud-controller-manager/app/controllermanager.go +++ b/cmd/cloud-controller-manager/app/controllermanager.go @@ -30,11 +30,12 @@ import ( "k8s.io/apimachinery/pkg/util/wait" "k8s.io/apiserver/pkg/server" "k8s.io/apiserver/pkg/server/healthz" - apiserverflag "k8s.io/apiserver/pkg/util/flag" - "k8s.io/apiserver/pkg/util/globalflag" + "k8s.io/apiserver/pkg/util/term" "k8s.io/client-go/tools/leaderelection" "k8s.io/client-go/tools/leaderelection/resourcelock" cloudprovider "k8s.io/cloud-provider" + cliflag "k8s.io/component-base/cli/flag" + "k8s.io/component-base/cli/globalflag" "k8s.io/klog" cloudcontrollerconfig "k8s.io/kubernetes/cmd/cloud-controller-manager/app/config" "k8s.io/kubernetes/cmd/cloud-controller-manager/app/options" @@ -91,15 +92,15 @@ the cloud specific control loops shipped with Kubernetes.`, fs.AddFlagSet(f) } usageFmt := "Usage:\n %s\n" - cols, _, _ := apiserverflag.TerminalSize(cmd.OutOrStdout()) + cols, _, _ := term.TerminalSize(cmd.OutOrStdout()) cmd.SetUsageFunc(func(cmd *cobra.Command) error { fmt.Fprintf(cmd.OutOrStderr(), usageFmt, cmd.UseLine()) - apiserverflag.PrintSections(cmd.OutOrStderr(), namedFlagSets, cols) + cliflag.PrintSections(cmd.OutOrStderr(), namedFlagSets, cols) return nil }) cmd.SetHelpFunc(func(cmd *cobra.Command, args []string) { fmt.Fprintf(cmd.OutOrStdout(), "%s\n\n"+usageFmt, cmd.Long, cmd.UseLine()) - apiserverflag.PrintSections(cmd.OutOrStdout(), namedFlagSets, cols) + cliflag.PrintSections(cmd.OutOrStdout(), namedFlagSets, cols) }) return cmd diff --git a/cmd/cloud-controller-manager/app/options/BUILD b/cmd/cloud-controller-manager/app/options/BUILD index 71f168b561..8656bfe04e 100644 --- a/cmd/cloud-controller-manager/app/options/BUILD +++ b/cmd/cloud-controller-manager/app/options/BUILD @@ -25,13 +25,13 @@ go_library( "//staging/src/k8s.io/apimachinery/pkg/util/errors:go_default_library", "//staging/src/k8s.io/apiserver/pkg/server/options:go_default_library", "//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library", - "//staging/src/k8s.io/apiserver/pkg/util/flag:go_default_library", "//staging/src/k8s.io/client-go/informers:go_default_library", "//staging/src/k8s.io/client-go/kubernetes:go_default_library", "//staging/src/k8s.io/client-go/kubernetes/typed/core/v1:go_default_library", "//staging/src/k8s.io/client-go/rest:go_default_library", "//staging/src/k8s.io/client-go/tools/clientcmd:go_default_library", "//staging/src/k8s.io/client-go/tools/record:go_default_library", + "//staging/src/k8s.io/component-base/cli/flag:go_default_library", "//vendor/k8s.io/klog:go_default_library", ], ) diff --git a/cmd/cloud-controller-manager/app/options/options.go b/cmd/cloud-controller-manager/app/options/options.go index e10491c298..205e5da99b 100644 --- a/cmd/cloud-controller-manager/app/options/options.go +++ b/cmd/cloud-controller-manager/app/options/options.go @@ -22,18 +22,18 @@ import ( "net" "time" - "k8s.io/api/core/v1" + v1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" utilerrors "k8s.io/apimachinery/pkg/util/errors" apiserveroptions "k8s.io/apiserver/pkg/server/options" utilfeature "k8s.io/apiserver/pkg/util/feature" - apiserverflag "k8s.io/apiserver/pkg/util/flag" "k8s.io/client-go/informers" clientset "k8s.io/client-go/kubernetes" v1core "k8s.io/client-go/kubernetes/typed/core/v1" restclient "k8s.io/client-go/rest" "k8s.io/client-go/tools/clientcmd" "k8s.io/client-go/tools/record" + cliflag "k8s.io/component-base/cli/flag" "k8s.io/klog" ccmconfig "k8s.io/kubernetes/cmd/cloud-controller-manager/app/apis/config" ccmconfigscheme "k8s.io/kubernetes/cmd/cloud-controller-manager/app/apis/config/scheme" @@ -124,8 +124,8 @@ func NewDefaultComponentConfig(insecurePort int32) (*ccmconfig.CloudControllerMa } // Flags returns flags for a specific APIServer by section name -func (o *CloudControllerManagerOptions) Flags(allControllers, disabledByDefaultControllers []string) apiserverflag.NamedFlagSets { - fss := apiserverflag.NamedFlagSets{} +func (o *CloudControllerManagerOptions) Flags(allControllers, disabledByDefaultControllers []string) cliflag.NamedFlagSets { + fss := cliflag.NamedFlagSets{} o.Generic.AddFlags(&fss, allControllers, disabledByDefaultControllers) o.KubeCloudShared.AddFlags(fss.FlagSet("generic")) o.ServiceController.AddFlags(fss.FlagSet("service controller")) diff --git a/cmd/controller-manager/app/options/BUILD b/cmd/controller-manager/app/options/BUILD index 4c97704251..a784cd3a80 100644 --- a/cmd/controller-manager/app/options/BUILD +++ b/cmd/controller-manager/app/options/BUILD @@ -17,8 +17,8 @@ go_library( "//pkg/cloudprovider/providers:go_default_library", "//pkg/controller/apis/config:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library", - "//staging/src/k8s.io/apiserver/pkg/util/flag:go_default_library", - "//staging/src/k8s.io/apiserver/pkg/util/globalflag:go_default_library", + "//staging/src/k8s.io/component-base/cli/flag:go_default_library", + "//staging/src/k8s.io/component-base/cli/globalflag:go_default_library", "//staging/src/k8s.io/component-base/config:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", ], @@ -43,8 +43,8 @@ go_test( srcs = ["globalflags_test.go"], embed = [":go_default_library"], deps = [ - "//staging/src/k8s.io/apiserver/pkg/util/flag:go_default_library", - "//staging/src/k8s.io/apiserver/pkg/util/globalflag:go_default_library", + "//staging/src/k8s.io/component-base/cli/flag:go_default_library", + "//staging/src/k8s.io/component-base/cli/globalflag:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", ], ) diff --git a/cmd/controller-manager/app/options/generic.go b/cmd/controller-manager/app/options/generic.go index d5ffd1d167..9491ec0a74 100644 --- a/cmd/controller-manager/app/options/generic.go +++ b/cmd/controller-manager/app/options/generic.go @@ -21,7 +21,7 @@ import ( "strings" "k8s.io/apimachinery/pkg/util/sets" - apiserverflag "k8s.io/apiserver/pkg/util/flag" + cliflag "k8s.io/component-base/cli/flag" componentbaseconfig "k8s.io/component-base/config" "k8s.io/kubernetes/pkg/client/leaderelectionconfig" kubectrlmgrconfig "k8s.io/kubernetes/pkg/controller/apis/config" @@ -48,7 +48,7 @@ func NewGenericControllerManagerConfigurationOptions(cfg *kubectrlmgrconfig.Gene } // AddFlags adds flags related to generic for controller manager to the specified FlagSet. -func (o *GenericControllerManagerConfigurationOptions) AddFlags(fss *apiserverflag.NamedFlagSets, allControllers, disabledByDefaultControllers []string) { +func (o *GenericControllerManagerConfigurationOptions) AddFlags(fss *cliflag.NamedFlagSets, allControllers, disabledByDefaultControllers []string) { if o == nil { return } diff --git a/cmd/controller-manager/app/options/globalflags.go b/cmd/controller-manager/app/options/globalflags.go index b7a05ee2b0..e4eda652eb 100644 --- a/cmd/controller-manager/app/options/globalflags.go +++ b/cmd/controller-manager/app/options/globalflags.go @@ -19,7 +19,7 @@ package options import ( "github.com/spf13/pflag" - "k8s.io/apiserver/pkg/util/globalflag" + "k8s.io/component-base/cli/globalflag" // ensure libs have a chance to globally register their flags _ "k8s.io/kubernetes/pkg/cloudprovider/providers" diff --git a/cmd/controller-manager/app/options/globalflags_test.go b/cmd/controller-manager/app/options/globalflags_test.go index 4c27d0223f..75e8665cd5 100644 --- a/cmd/controller-manager/app/options/globalflags_test.go +++ b/cmd/controller-manager/app/options/globalflags_test.go @@ -25,12 +25,12 @@ import ( "github.com/spf13/pflag" - apiserverflag "k8s.io/apiserver/pkg/util/flag" - "k8s.io/apiserver/pkg/util/globalflag" + cliflag "k8s.io/component-base/cli/flag" + "k8s.io/component-base/cli/globalflag" ) func TestAddCustomGlobalFlags(t *testing.T) { - namedFlagSets := &apiserverflag.NamedFlagSets{} + namedFlagSets := &cliflag.NamedFlagSets{} // Note that we will register all flags (including klog flags) into the same // flag set. This allows us to test against all global flags from // flags.CommandLine. @@ -45,7 +45,7 @@ func TestAddCustomGlobalFlags(t *testing.T) { // Get all flags from flags.CommandLine, except flag `test.*`. wantedFlag := []string{"help"} - pflag.CommandLine.SetNormalizeFunc(apiserverflag.WordSepNormalizeFunc) + pflag.CommandLine.SetNormalizeFunc(cliflag.WordSepNormalizeFunc) pflag.CommandLine.AddGoFlagSet(flag.CommandLine) pflag.VisitAll(func(flag *pflag.Flag) { if !strings.Contains(flag.Name, "test.") { diff --git a/cmd/hyperkube/BUILD b/cmd/hyperkube/BUILD index 077dfa0801..22f9f3d433 100644 --- a/cmd/hyperkube/BUILD +++ b/cmd/hyperkube/BUILD @@ -28,7 +28,7 @@ go_library( "//pkg/kubectl/cmd:go_default_library", "//pkg/version/prometheus:go_default_library", "//staging/src/k8s.io/apiserver/pkg/server:go_default_library", - "//staging/src/k8s.io/apiserver/pkg/util/flag:go_default_library", + "//staging/src/k8s.io/component-base/cli/flag:go_default_library", "//staging/src/k8s.io/component-base/logs:go_default_library", "//vendor/github.com/spf13/cobra:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", diff --git a/cmd/hyperkube/main.go b/cmd/hyperkube/main.go index a5bfb2ad38..b3ff9ea5c6 100644 --- a/cmd/hyperkube/main.go +++ b/cmd/hyperkube/main.go @@ -33,7 +33,7 @@ import ( "github.com/spf13/pflag" "k8s.io/apiserver/pkg/server" - utilflag "k8s.io/apiserver/pkg/util/flag" + cliflag "k8s.io/component-base/cli/flag" "k8s.io/component-base/logs" cloudcontrollermanager "k8s.io/kubernetes/cmd/cloud-controller-manager/app" kubeapiserver "k8s.io/kubernetes/cmd/kube-apiserver/app" @@ -52,11 +52,11 @@ func main() { hyperkubeCommand, allCommandFns := NewHyperKubeCommand(server.SetupSignalHandler()) // TODO: once we switch everything over to Cobra commands, we can go back to calling - // utilflag.InitFlags() (by removing its pflag.Parse() call). For now, we have to set the + // cliflag.InitFlags() (by removing its pflag.Parse() call). For now, we have to set the // normalize func and add the go flag set by hand. - pflag.CommandLine.SetNormalizeFunc(utilflag.WordSepNormalizeFunc) + pflag.CommandLine.SetNormalizeFunc(cliflag.WordSepNormalizeFunc) pflag.CommandLine.AddGoFlagSet(goflag.CommandLine) - // utilflag.InitFlags() + // cliflag.InitFlags() logs.InitLogs() defer logs.FlushLogs() diff --git a/cmd/kube-apiserver/app/BUILD b/cmd/kube-apiserver/app/BUILD index a2098f5b41..d210309f9a 100644 --- a/cmd/kube-apiserver/app/BUILD +++ b/cmd/kube-apiserver/app/BUILD @@ -56,14 +56,15 @@ go_library( "//staging/src/k8s.io/apiserver/pkg/server/storage:go_default_library", "//staging/src/k8s.io/apiserver/pkg/storage/etcd3/preflight:go_default_library", "//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library", - "//staging/src/k8s.io/apiserver/pkg/util/flag:go_default_library", - "//staging/src/k8s.io/apiserver/pkg/util/globalflag:go_default_library", + "//staging/src/k8s.io/apiserver/pkg/util/term:go_default_library", "//staging/src/k8s.io/apiserver/pkg/util/webhook:go_default_library", "//staging/src/k8s.io/client-go/informers:go_default_library", "//staging/src/k8s.io/client-go/kubernetes:go_default_library", "//staging/src/k8s.io/client-go/tools/cache:go_default_library", "//staging/src/k8s.io/client-go/util/cert:go_default_library", "//staging/src/k8s.io/cloud-provider:go_default_library", + "//staging/src/k8s.io/component-base/cli/flag:go_default_library", + "//staging/src/k8s.io/component-base/cli/globalflag:go_default_library", "//staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration:go_default_library", "//staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1:go_default_library", "//staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1:go_default_library", diff --git a/cmd/kube-apiserver/app/options/BUILD b/cmd/kube-apiserver/app/options/BUILD index d71d082e14..2112ade478 100644 --- a/cmd/kube-apiserver/app/options/BUILD +++ b/cmd/kube-apiserver/app/options/BUILD @@ -30,8 +30,8 @@ go_library( "//staging/src/k8s.io/apiserver/pkg/server/options:go_default_library", "//staging/src/k8s.io/apiserver/pkg/storage/storagebackend:go_default_library", "//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library", - "//staging/src/k8s.io/apiserver/pkg/util/flag:go_default_library", - "//staging/src/k8s.io/apiserver/pkg/util/globalflag:go_default_library", + "//staging/src/k8s.io/component-base/cli/flag:go_default_library", + "//staging/src/k8s.io/component-base/cli/globalflag:go_default_library", "//staging/src/k8s.io/kube-aggregator/pkg/apiserver/scheme:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", ], @@ -52,12 +52,12 @@ go_test( "//staging/src/k8s.io/apimachinery/pkg/util/diff:go_default_library", "//staging/src/k8s.io/apiserver/pkg/server/options:go_default_library", "//staging/src/k8s.io/apiserver/pkg/storage/storagebackend:go_default_library", - "//staging/src/k8s.io/apiserver/pkg/util/flag:go_default_library", - "//staging/src/k8s.io/apiserver/pkg/util/globalflag:go_default_library", "//staging/src/k8s.io/apiserver/plugin/pkg/audit/buffered:go_default_library", "//staging/src/k8s.io/apiserver/plugin/pkg/audit/dynamic:go_default_library", "//staging/src/k8s.io/apiserver/plugin/pkg/audit/truncate:go_default_library", "//staging/src/k8s.io/client-go/rest:go_default_library", + "//staging/src/k8s.io/component-base/cli/flag:go_default_library", + "//staging/src/k8s.io/component-base/cli/globalflag:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", ], ) diff --git a/cmd/kube-apiserver/app/options/globalflags.go b/cmd/kube-apiserver/app/options/globalflags.go index 96c955ac0b..70ce6492ed 100644 --- a/cmd/kube-apiserver/app/options/globalflags.go +++ b/cmd/kube-apiserver/app/options/globalflags.go @@ -19,7 +19,7 @@ package options import ( "github.com/spf13/pflag" - "k8s.io/apiserver/pkg/util/globalflag" + "k8s.io/component-base/cli/globalflag" // ensure libs have a chance to globally register their flags _ "k8s.io/apiserver/pkg/admission" diff --git a/cmd/kube-apiserver/app/options/globalflags_test.go b/cmd/kube-apiserver/app/options/globalflags_test.go index 0c3c1b843b..7510efc74e 100644 --- a/cmd/kube-apiserver/app/options/globalflags_test.go +++ b/cmd/kube-apiserver/app/options/globalflags_test.go @@ -25,12 +25,12 @@ import ( "github.com/spf13/pflag" - apiserverflag "k8s.io/apiserver/pkg/util/flag" - "k8s.io/apiserver/pkg/util/globalflag" + cliflag "k8s.io/component-base/cli/flag" + "k8s.io/component-base/cli/globalflag" ) func TestAddCustomGlobalFlags(t *testing.T) { - namedFlagSets := &apiserverflag.NamedFlagSets{} + namedFlagSets := &cliflag.NamedFlagSets{} // Note that we will register all flags (including klog flags) into the same // flag set. This allows us to test against all global flags from @@ -46,7 +46,7 @@ func TestAddCustomGlobalFlags(t *testing.T) { // Get all flags from flags.CommandLine, except flag `test.*`. wantedFlag := []string{"help"} - pflag.CommandLine.SetNormalizeFunc(apiserverflag.WordSepNormalizeFunc) + pflag.CommandLine.SetNormalizeFunc(cliflag.WordSepNormalizeFunc) pflag.CommandLine.AddGoFlagSet(flag.CommandLine) pflag.VisitAll(func(flag *pflag.Flag) { if !strings.Contains(flag.Name, "test.") { diff --git a/cmd/kube-apiserver/app/options/options.go b/cmd/kube-apiserver/app/options/options.go index 979fc7836c..1ba2092f0f 100644 --- a/cmd/kube-apiserver/app/options/options.go +++ b/cmd/kube-apiserver/app/options/options.go @@ -25,7 +25,7 @@ import ( utilnet "k8s.io/apimachinery/pkg/util/net" genericoptions "k8s.io/apiserver/pkg/server/options" "k8s.io/apiserver/pkg/storage/storagebackend" - apiserverflag "k8s.io/apiserver/pkg/util/flag" + cliflag "k8s.io/component-base/cli/flag" api "k8s.io/kubernetes/pkg/apis/core" _ "k8s.io/kubernetes/pkg/features" // add the kubernetes feature gates kubeoptions "k8s.io/kubernetes/pkg/kubeapiserver/options" @@ -121,7 +121,7 @@ func NewServerRunOptions() *ServerRunOptions { } // Flags returns flags for a specific APIServer by section name -func (s *ServerRunOptions) Flags() (fss apiserverflag.NamedFlagSets) { +func (s *ServerRunOptions) Flags() (fss cliflag.NamedFlagSets) { // Add the generic flags. s.GenericServerRunOptions.AddUniversalFlags(fss.FlagSet("generic")) s.Etcd.AddFlags(fss.FlagSet("etcd")) diff --git a/cmd/kube-apiserver/app/options/options_test.go b/cmd/kube-apiserver/app/options/options_test.go index 711680ddad..6f7e58d302 100644 --- a/cmd/kube-apiserver/app/options/options_test.go +++ b/cmd/kube-apiserver/app/options/options_test.go @@ -27,11 +27,11 @@ import ( "k8s.io/apimachinery/pkg/util/diff" apiserveroptions "k8s.io/apiserver/pkg/server/options" "k8s.io/apiserver/pkg/storage/storagebackend" - utilflag "k8s.io/apiserver/pkg/util/flag" auditbuffered "k8s.io/apiserver/plugin/pkg/audit/buffered" auditdynamic "k8s.io/apiserver/plugin/pkg/audit/dynamic" audittruncate "k8s.io/apiserver/plugin/pkg/audit/truncate" restclient "k8s.io/client-go/rest" + cliflag "k8s.io/component-base/cli/flag" kapi "k8s.io/kubernetes/pkg/apis/core" kubeoptions "k8s.io/kubernetes/pkg/kubeapiserver/options" kubeletclient "k8s.io/kubernetes/pkg/kubelet/client" @@ -289,7 +289,7 @@ func TestAddFlags(t *testing.T) { CloudProvider: "azure", }, APIEnablement: &apiserveroptions.APIEnablementOptions{ - RuntimeConfig: utilflag.ConfigurationMap{}, + RuntimeConfig: cliflag.ConfigurationMap{}, }, EnableLogsHandler: false, EnableAggregatorRouting: true, diff --git a/cmd/kube-apiserver/app/server.go b/cmd/kube-apiserver/app/server.go index 499f6d1490..afc0e72167 100644 --- a/cmd/kube-apiserver/app/server.go +++ b/cmd/kube-apiserver/app/server.go @@ -35,7 +35,7 @@ import ( "github.com/spf13/cobra" extensionsapiserver "k8s.io/apiextensions-apiserver/pkg/apiserver" - "k8s.io/apimachinery/pkg/apis/meta/v1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" utilerrors "k8s.io/apimachinery/pkg/util/errors" utilnet "k8s.io/apimachinery/pkg/util/net" "k8s.io/apimachinery/pkg/util/sets" @@ -49,13 +49,14 @@ import ( serveroptions "k8s.io/apiserver/pkg/server/options" serverstorage "k8s.io/apiserver/pkg/server/storage" "k8s.io/apiserver/pkg/storage/etcd3/preflight" - apiserverflag "k8s.io/apiserver/pkg/util/flag" - "k8s.io/apiserver/pkg/util/globalflag" + "k8s.io/apiserver/pkg/util/term" "k8s.io/apiserver/pkg/util/webhook" clientgoinformers "k8s.io/client-go/informers" clientgoclientset "k8s.io/client-go/kubernetes" certutil "k8s.io/client-go/util/cert" cloudprovider "k8s.io/cloud-provider" + cliflag "k8s.io/component-base/cli/flag" + "k8s.io/component-base/cli/globalflag" "k8s.io/klog" aggregatorapiserver "k8s.io/kube-aggregator/pkg/apiserver" aggregatorscheme "k8s.io/kube-aggregator/pkg/apiserver/scheme" @@ -126,15 +127,15 @@ cluster's shared state through which all other components interact.`, } usageFmt := "Usage:\n %s\n" - cols, _, _ := apiserverflag.TerminalSize(cmd.OutOrStdout()) + cols, _, _ := term.TerminalSize(cmd.OutOrStdout()) cmd.SetUsageFunc(func(cmd *cobra.Command) error { fmt.Fprintf(cmd.OutOrStderr(), usageFmt, cmd.UseLine()) - apiserverflag.PrintSections(cmd.OutOrStderr(), namedFlagSets, cols) + cliflag.PrintSections(cmd.OutOrStderr(), namedFlagSets, cols) return nil }) cmd.SetHelpFunc(func(cmd *cobra.Command, args []string) { fmt.Fprintf(cmd.OutOrStdout(), "%s\n\n"+usageFmt, cmd.Long, cmd.UseLine()) - apiserverflag.PrintSections(cmd.OutOrStdout(), namedFlagSets, cols) + cliflag.PrintSections(cmd.OutOrStdout(), namedFlagSets, cols) }) return cmd diff --git a/cmd/kube-controller-manager/app/BUILD b/cmd/kube-controller-manager/app/BUILD index 4ec8ed1749..749e20dc90 100644 --- a/cmd/kube-controller-manager/app/BUILD +++ b/cmd/kube-controller-manager/app/BUILD @@ -118,8 +118,8 @@ go_library( "//staging/src/k8s.io/apiserver/pkg/server/healthz:go_default_library", "//staging/src/k8s.io/apiserver/pkg/server/mux:go_default_library", "//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library", - "//staging/src/k8s.io/apiserver/pkg/util/flag:go_default_library", - "//staging/src/k8s.io/apiserver/pkg/util/globalflag:go_default_library", + "//staging/src/k8s.io/apiserver/pkg/util/term:go_default_library", + "//staging/src/k8s.io/client-go/discovery/cached:go_default_library", "//staging/src/k8s.io/client-go/discovery/cached/memory:go_default_library", "//staging/src/k8s.io/client-go/dynamic:go_default_library", "//staging/src/k8s.io/client-go/informers:go_default_library", @@ -132,6 +132,8 @@ go_library( "//staging/src/k8s.io/client-go/util/cert:go_default_library", "//staging/src/k8s.io/client-go/util/flowcontrol:go_default_library", "//staging/src/k8s.io/cloud-provider:go_default_library", + "//staging/src/k8s.io/component-base/cli/flag:go_default_library", + "//staging/src/k8s.io/component-base/cli/globalflag:go_default_library", "//staging/src/k8s.io/csi-api/pkg/client/clientset/versioned:go_default_library", "//staging/src/k8s.io/metrics/pkg/client/clientset/versioned/typed/metrics/v1beta1:go_default_library", "//staging/src/k8s.io/metrics/pkg/client/custom_metrics:go_default_library", diff --git a/cmd/kube-controller-manager/app/controllermanager.go b/cmd/kube-controller-manager/app/controllermanager.go index 7540d86bc3..86a0febe1f 100644 --- a/cmd/kube-controller-manager/app/controllermanager.go +++ b/cmd/kube-controller-manager/app/controllermanager.go @@ -39,9 +39,8 @@ import ( "k8s.io/apiserver/pkg/server" "k8s.io/apiserver/pkg/server/healthz" "k8s.io/apiserver/pkg/server/mux" - apiserverflag "k8s.io/apiserver/pkg/util/flag" - "k8s.io/apiserver/pkg/util/globalflag" - cacheddiscovery "k8s.io/client-go/discovery/cached/memory" + "k8s.io/apiserver/pkg/util/term" + cacheddiscovery "k8s.io/client-go/discovery/cached" "k8s.io/client-go/informers" restclient "k8s.io/client-go/rest" "k8s.io/client-go/restmapper" @@ -49,6 +48,8 @@ import ( "k8s.io/client-go/tools/leaderelection/resourcelock" certutil "k8s.io/client-go/util/cert" cloudprovider "k8s.io/cloud-provider" + cliflag "k8s.io/component-base/cli/flag" + "k8s.io/component-base/cli/globalflag" "k8s.io/klog" genericcontrollermanager "k8s.io/kubernetes/cmd/controller-manager/app" cmoptions "k8s.io/kubernetes/cmd/controller-manager/app/options" @@ -121,15 +122,15 @@ controller, and serviceaccounts controller.`, fs.AddFlagSet(f) } usageFmt := "Usage:\n %s\n" - cols, _, _ := apiserverflag.TerminalSize(cmd.OutOrStdout()) + cols, _, _ := term.TerminalSize(cmd.OutOrStdout()) cmd.SetUsageFunc(func(cmd *cobra.Command) error { fmt.Fprintf(cmd.OutOrStderr(), usageFmt, cmd.UseLine()) - apiserverflag.PrintSections(cmd.OutOrStderr(), namedFlagSets, cols) + cliflag.PrintSections(cmd.OutOrStderr(), namedFlagSets, cols) return nil }) cmd.SetHelpFunc(func(cmd *cobra.Command, args []string) { fmt.Fprintf(cmd.OutOrStdout(), "%s\n\n"+usageFmt, cmd.Long, cmd.UseLine()) - apiserverflag.PrintSections(cmd.OutOrStdout(), namedFlagSets, cols) + cliflag.PrintSections(cmd.OutOrStdout(), namedFlagSets, cols) }) return cmd diff --git a/cmd/kube-controller-manager/app/options/BUILD b/cmd/kube-controller-manager/app/options/BUILD index 1a0fbc130a..dfcaf0183d 100644 --- a/cmd/kube-controller-manager/app/options/BUILD +++ b/cmd/kube-controller-manager/app/options/BUILD @@ -43,13 +43,13 @@ go_library( "//staging/src/k8s.io/apimachinery/pkg/util/errors:go_default_library", "//staging/src/k8s.io/apiserver/pkg/server/options:go_default_library", "//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library", - "//staging/src/k8s.io/apiserver/pkg/util/flag:go_default_library", "//staging/src/k8s.io/client-go/kubernetes:go_default_library", "//staging/src/k8s.io/client-go/kubernetes/scheme:go_default_library", "//staging/src/k8s.io/client-go/kubernetes/typed/core/v1:go_default_library", "//staging/src/k8s.io/client-go/rest:go_default_library", "//staging/src/k8s.io/client-go/tools/clientcmd:go_default_library", "//staging/src/k8s.io/client-go/tools/record:go_default_library", + "//staging/src/k8s.io/component-base/cli/flag:go_default_library", "//staging/src/k8s.io/kube-controller-manager/config/v1alpha1:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", "//vendor/k8s.io/klog:go_default_library", diff --git a/cmd/kube-controller-manager/app/options/options.go b/cmd/kube-controller-manager/app/options/options.go index a80a43bdb1..211e03262a 100644 --- a/cmd/kube-controller-manager/app/options/options.go +++ b/cmd/kube-controller-manager/app/options/options.go @@ -22,17 +22,17 @@ import ( "fmt" "net" - "k8s.io/api/core/v1" + v1 "k8s.io/api/core/v1" utilerrors "k8s.io/apimachinery/pkg/util/errors" apiserveroptions "k8s.io/apiserver/pkg/server/options" utilfeature "k8s.io/apiserver/pkg/util/feature" - apiserverflag "k8s.io/apiserver/pkg/util/flag" clientset "k8s.io/client-go/kubernetes" clientgokubescheme "k8s.io/client-go/kubernetes/scheme" v1core "k8s.io/client-go/kubernetes/typed/core/v1" restclient "k8s.io/client-go/rest" "k8s.io/client-go/tools/clientcmd" "k8s.io/client-go/tools/record" + cliflag "k8s.io/component-base/cli/flag" kubectrlmgrconfigv1alpha1 "k8s.io/kube-controller-manager/config/v1alpha1" cmoptions "k8s.io/kubernetes/cmd/controller-manager/app/options" kubecontrollerconfig "k8s.io/kubernetes/cmd/kube-controller-manager/app/config" @@ -201,8 +201,8 @@ func NewDefaultComponentConfig(insecurePort int32) (kubectrlmgrconfig.KubeContro } // Flags returns flags for a specific APIServer by section name -func (s *KubeControllerManagerOptions) Flags(allControllers []string, disabledByDefaultControllers []string) apiserverflag.NamedFlagSets { - fss := apiserverflag.NamedFlagSets{} +func (s *KubeControllerManagerOptions) Flags(allControllers []string, disabledByDefaultControllers []string) cliflag.NamedFlagSets { + fss := cliflag.NamedFlagSets{} s.Generic.AddFlags(&fss, allControllers, disabledByDefaultControllers) s.KubeCloudShared.AddFlags(fss.FlagSet("generic")) s.ServiceController.AddFlags(fss.FlagSet("service controller")) diff --git a/cmd/kube-proxy/BUILD b/cmd/kube-proxy/BUILD index 3bc47886c6..29e5743beb 100644 --- a/cmd/kube-proxy/BUILD +++ b/cmd/kube-proxy/BUILD @@ -22,7 +22,7 @@ go_library( "//cmd/kube-proxy/app:go_default_library", "//pkg/client/metrics/prometheus:go_default_library", "//pkg/version/prometheus:go_default_library", - "//staging/src/k8s.io/apiserver/pkg/util/flag:go_default_library", + "//staging/src/k8s.io/component-base/cli/flag:go_default_library", "//staging/src/k8s.io/component-base/logs:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", ], diff --git a/cmd/kube-proxy/app/BUILD b/cmd/kube-proxy/app/BUILD index 75052c2ded..d30c4dcc11 100644 --- a/cmd/kube-proxy/app/BUILD +++ b/cmd/kube-proxy/app/BUILD @@ -54,7 +54,6 @@ go_library( "//staging/src/k8s.io/apiserver/pkg/server/mux:go_default_library", "//staging/src/k8s.io/apiserver/pkg/server/routes:go_default_library", "//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library", - "//staging/src/k8s.io/apiserver/pkg/util/flag:go_default_library", "//staging/src/k8s.io/client-go/informers:go_default_library", "//staging/src/k8s.io/client-go/kubernetes:go_default_library", "//staging/src/k8s.io/client-go/kubernetes/typed/core/v1:go_default_library", @@ -62,6 +61,7 @@ go_library( "//staging/src/k8s.io/client-go/tools/clientcmd:go_default_library", "//staging/src/k8s.io/client-go/tools/clientcmd/api:go_default_library", "//staging/src/k8s.io/client-go/tools/record:go_default_library", + "//staging/src/k8s.io/component-base/cli/flag:go_default_library", "//staging/src/k8s.io/component-base/config:go_default_library", "//staging/src/k8s.io/kube-proxy/config/v1alpha1:go_default_library", "//vendor/github.com/fsnotify/fsnotify:go_default_library", diff --git a/cmd/kube-proxy/app/server.go b/cmd/kube-proxy/app/server.go index 9312001f0a..b30d9b3b74 100644 --- a/cmd/kube-proxy/app/server.go +++ b/cmd/kube-proxy/app/server.go @@ -39,7 +39,6 @@ import ( "k8s.io/apiserver/pkg/server/mux" "k8s.io/apiserver/pkg/server/routes" utilfeature "k8s.io/apiserver/pkg/util/feature" - "k8s.io/apiserver/pkg/util/flag" informers "k8s.io/client-go/informers" clientset "k8s.io/client-go/kubernetes" v1core "k8s.io/client-go/kubernetes/typed/core/v1" @@ -47,6 +46,7 @@ import ( "k8s.io/client-go/tools/clientcmd" clientcmdapi "k8s.io/client-go/tools/clientcmd/api" "k8s.io/client-go/tools/record" + cliflag "k8s.io/component-base/cli/flag" componentbaseconfig "k8s.io/component-base/config" "k8s.io/kube-proxy/config/v1alpha1" api "k8s.io/kubernetes/pkg/apis/core" @@ -192,7 +192,7 @@ func (o *Options) AddFlags(fs *pflag.FlagSet) { fs.StringVar(&o.config.IPVS.Scheduler, "ipvs-scheduler", o.config.IPVS.Scheduler, "The ipvs scheduler type when proxy mode is ipvs") fs.StringSliceVar(&o.config.NodePortAddresses, "nodeport-addresses", o.config.NodePortAddresses, "A string slice of values which specify the addresses to use for NodePorts. Values may be valid IP blocks (e.g. 1.2.3.0/24, 1.2.3.4/32). The default empty string slice ([]) means to use all local addresses.") - fs.Var(flag.NewMapStringBool(&o.config.FeatureGates), "feature-gates", "A set of key=value pairs that describe feature gates for alpha/experimental features. "+ + fs.Var(cliflag.NewMapStringBool(&o.config.FeatureGates), "feature-gates", "A set of key=value pairs that describe feature gates for alpha/experimental features. "+ "Options are:\n"+strings.Join(utilfeature.DefaultFeatureGate.KnownFeatures(), "\n")) } diff --git a/cmd/kube-proxy/proxy.go b/cmd/kube-proxy/proxy.go index 95b2073a73..9b0e31d9ba 100644 --- a/cmd/kube-proxy/proxy.go +++ b/cmd/kube-proxy/proxy.go @@ -25,7 +25,7 @@ import ( "github.com/spf13/pflag" - utilflag "k8s.io/apiserver/pkg/util/flag" + cliflag "k8s.io/component-base/cli/flag" "k8s.io/component-base/logs" "k8s.io/kubernetes/cmd/kube-proxy/app" _ "k8s.io/kubernetes/pkg/client/metrics/prometheus" // for client metric registration @@ -40,7 +40,7 @@ func main() { // TODO: once we switch everything over to Cobra commands, we can go back to calling // utilflag.InitFlags() (by removing its pflag.Parse() call). For now, we have to set the // normalize func and add the go flag set by hand. - pflag.CommandLine.SetNormalizeFunc(utilflag.WordSepNormalizeFunc) + pflag.CommandLine.SetNormalizeFunc(cliflag.WordSepNormalizeFunc) pflag.CommandLine.AddGoFlagSet(goflag.CommandLine) // utilflag.InitFlags() logs.InitLogs() diff --git a/cmd/kube-scheduler/BUILD b/cmd/kube-scheduler/BUILD index 601dce330f..42aa06ed0f 100644 --- a/cmd/kube-scheduler/BUILD +++ b/cmd/kube-scheduler/BUILD @@ -22,7 +22,7 @@ go_library( "//cmd/kube-scheduler/app:go_default_library", "//pkg/util/prometheusclientgo:go_default_library", "//pkg/version/prometheus:go_default_library", - "//staging/src/k8s.io/apiserver/pkg/util/flag:go_default_library", + "//staging/src/k8s.io/component-base/cli/flag:go_default_library", "//staging/src/k8s.io/component-base/logs:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", ], diff --git a/cmd/kube-scheduler/app/BUILD b/cmd/kube-scheduler/app/BUILD index 2872cf4f90..c1d924b405 100644 --- a/cmd/kube-scheduler/app/BUILD +++ b/cmd/kube-scheduler/app/BUILD @@ -32,10 +32,11 @@ go_library( "//staging/src/k8s.io/apiserver/pkg/server/healthz:go_default_library", "//staging/src/k8s.io/apiserver/pkg/server/mux:go_default_library", "//staging/src/k8s.io/apiserver/pkg/server/routes:go_default_library", - "//staging/src/k8s.io/apiserver/pkg/util/flag:go_default_library", - "//staging/src/k8s.io/apiserver/pkg/util/globalflag:go_default_library", + "//staging/src/k8s.io/apiserver/pkg/util/term:go_default_library", "//staging/src/k8s.io/client-go/kubernetes/typed/core/v1:go_default_library", "//staging/src/k8s.io/client-go/tools/leaderelection:go_default_library", + "//staging/src/k8s.io/component-base/cli/flag:go_default_library", + "//staging/src/k8s.io/component-base/cli/globalflag:go_default_library", "//vendor/github.com/prometheus/client_golang/prometheus:go_default_library", "//vendor/github.com/spf13/cobra:go_default_library", "//vendor/k8s.io/klog:go_default_library", diff --git a/cmd/kube-scheduler/app/options/BUILD b/cmd/kube-scheduler/app/options/BUILD index a2460f4a4f..c681c3e4e9 100644 --- a/cmd/kube-scheduler/app/options/BUILD +++ b/cmd/kube-scheduler/app/options/BUILD @@ -28,7 +28,6 @@ go_library( "//staging/src/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", "//staging/src/k8s.io/apiserver/pkg/server/options:go_default_library", "//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library", - "//staging/src/k8s.io/apiserver/pkg/util/flag:go_default_library", "//staging/src/k8s.io/client-go/informers:go_default_library", "//staging/src/k8s.io/client-go/kubernetes:go_default_library", "//staging/src/k8s.io/client-go/kubernetes/typed/core/v1:go_default_library", @@ -38,6 +37,7 @@ go_library( "//staging/src/k8s.io/client-go/tools/leaderelection:go_default_library", "//staging/src/k8s.io/client-go/tools/leaderelection/resourcelock:go_default_library", "//staging/src/k8s.io/client-go/tools/record:go_default_library", + "//staging/src/k8s.io/component-base/cli/flag:go_default_library", "//staging/src/k8s.io/component-base/config:go_default_library", "//staging/src/k8s.io/kube-scheduler/config/v1alpha1:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", diff --git a/cmd/kube-scheduler/app/options/options.go b/cmd/kube-scheduler/app/options/options.go index 62bb3580be..02e3b43519 100644 --- a/cmd/kube-scheduler/app/options/options.go +++ b/cmd/kube-scheduler/app/options/options.go @@ -28,7 +28,6 @@ import ( "k8s.io/apimachinery/pkg/util/uuid" apiserveroptions "k8s.io/apiserver/pkg/server/options" utilfeature "k8s.io/apiserver/pkg/util/feature" - apiserverflag "k8s.io/apiserver/pkg/util/flag" "k8s.io/client-go/informers" clientset "k8s.io/client-go/kubernetes" v1core "k8s.io/client-go/kubernetes/typed/core/v1" @@ -38,6 +37,7 @@ import ( "k8s.io/client-go/tools/leaderelection" "k8s.io/client-go/tools/leaderelection/resourcelock" "k8s.io/client-go/tools/record" + cliflag "k8s.io/component-base/cli/flag" componentbaseconfig "k8s.io/component-base/config" "k8s.io/klog" kubeschedulerconfigv1alpha1 "k8s.io/kube-scheduler/config/v1alpha1" @@ -140,7 +140,7 @@ func newDefaultComponentConfig() (*kubeschedulerconfig.KubeSchedulerConfiguratio } // Flags returns flags for a specific scheduler by section name -func (o *Options) Flags() (nfs apiserverflag.NamedFlagSets) { +func (o *Options) Flags() (nfs cliflag.NamedFlagSets) { fs := nfs.FlagSet("misc") fs.StringVar(&o.ConfigFile, "config", o.ConfigFile, "The path to the configuration file. Flags override values in this file.") fs.StringVar(&o.WriteConfigTo, "write-config-to", o.WriteConfigTo, "If set, write the configuration values to this file and exit.") diff --git a/cmd/kube-scheduler/app/server.go b/cmd/kube-scheduler/app/server.go index fd0ab6d0c7..48a30d74ca 100644 --- a/cmd/kube-scheduler/app/server.go +++ b/cmd/kube-scheduler/app/server.go @@ -35,10 +35,11 @@ import ( "k8s.io/apiserver/pkg/server/healthz" "k8s.io/apiserver/pkg/server/mux" "k8s.io/apiserver/pkg/server/routes" - apiserverflag "k8s.io/apiserver/pkg/util/flag" - "k8s.io/apiserver/pkg/util/globalflag" + "k8s.io/apiserver/pkg/util/term" v1core "k8s.io/client-go/kubernetes/typed/core/v1" "k8s.io/client-go/tools/leaderelection" + cliflag "k8s.io/component-base/cli/flag" + "k8s.io/component-base/cli/globalflag" schedulerserverconfig "k8s.io/kubernetes/cmd/kube-scheduler/app/config" "k8s.io/kubernetes/cmd/kube-scheduler/app/options" "k8s.io/kubernetes/pkg/api/legacyscheme" @@ -89,15 +90,15 @@ through the API as necessary.`, } usageFmt := "Usage:\n %s\n" - cols, _, _ := apiserverflag.TerminalSize(cmd.OutOrStdout()) + cols, _, _ := term.TerminalSize(cmd.OutOrStdout()) cmd.SetUsageFunc(func(cmd *cobra.Command) error { fmt.Fprintf(cmd.OutOrStderr(), usageFmt, cmd.UseLine()) - apiserverflag.PrintSections(cmd.OutOrStderr(), namedFlagSets, cols) + cliflag.PrintSections(cmd.OutOrStderr(), namedFlagSets, cols) return nil }) cmd.SetHelpFunc(func(cmd *cobra.Command, args []string) { fmt.Fprintf(cmd.OutOrStdout(), "%s\n\n"+usageFmt, cmd.Long, cmd.UseLine()) - apiserverflag.PrintSections(cmd.OutOrStdout(), namedFlagSets, cols) + cliflag.PrintSections(cmd.OutOrStdout(), namedFlagSets, cols) }) cmd.MarkFlagFilename("config", "yaml", "yml", "json") diff --git a/cmd/kube-scheduler/scheduler.go b/cmd/kube-scheduler/scheduler.go index d35cbd3615..5f4af458dc 100644 --- a/cmd/kube-scheduler/scheduler.go +++ b/cmd/kube-scheduler/scheduler.go @@ -24,7 +24,7 @@ import ( "github.com/spf13/pflag" - utilflag "k8s.io/apiserver/pkg/util/flag" + cliflag "k8s.io/component-base/cli/flag" "k8s.io/component-base/logs" "k8s.io/kubernetes/cmd/kube-scheduler/app" _ "k8s.io/kubernetes/pkg/util/prometheusclientgo" // load all the prometheus client-go plugins @@ -39,7 +39,7 @@ func main() { // TODO: once we switch everything over to Cobra commands, we can go back to calling // utilflag.InitFlags() (by removing its pflag.Parse() call). For now, we have to set the // normalize func and add the go flag set by hand. - pflag.CommandLine.SetNormalizeFunc(utilflag.WordSepNormalizeFunc) + pflag.CommandLine.SetNormalizeFunc(cliflag.WordSepNormalizeFunc) // utilflag.InitFlags() logs.InitLogs() defer logs.FlushLogs() diff --git a/cmd/kubeadm/app/BUILD b/cmd/kubeadm/app/BUILD index f7fad73697..26fe4f6063 100644 --- a/cmd/kubeadm/app/BUILD +++ b/cmd/kubeadm/app/BUILD @@ -11,7 +11,7 @@ go_library( importpath = "k8s.io/kubernetes/cmd/kubeadm/app", deps = [ "//cmd/kubeadm/app/cmd:go_default_library", - "//staging/src/k8s.io/apiserver/pkg/util/flag:go_default_library", + "//staging/src/k8s.io/component-base/cli/flag:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", "//vendor/k8s.io/klog:go_default_library", ], diff --git a/cmd/kubeadm/app/cmd/options/BUILD b/cmd/kubeadm/app/cmd/options/BUILD index 8f8248b32c..500837b313 100644 --- a/cmd/kubeadm/app/cmd/options/BUILD +++ b/cmd/kubeadm/app/cmd/options/BUILD @@ -14,8 +14,8 @@ go_library( deps = [ "//cmd/kubeadm/app/apis/kubeadm/v1beta1:go_default_library", "//cmd/kubeadm/app/constants:go_default_library", - "//staging/src/k8s.io/apiserver/pkg/util/flag:go_default_library", "//staging/src/k8s.io/cluster-bootstrap/token/api:go_default_library", + "//staging/src/k8s.io/component-base/cli/flag:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", ], ) diff --git a/cmd/kubeadm/app/cmd/options/generic.go b/cmd/kubeadm/app/cmd/options/generic.go index 16f8f0c7aa..9fac2a4aed 100644 --- a/cmd/kubeadm/app/cmd/options/generic.go +++ b/cmd/kubeadm/app/cmd/options/generic.go @@ -18,7 +18,7 @@ package options import ( "github.com/spf13/pflag" - utilflag "k8s.io/apiserver/pkg/util/flag" + cliflag "k8s.io/component-base/cli/flag" ) // AddKubeConfigFlag adds the --kubeconfig flag to the given flagset @@ -46,9 +46,9 @@ func AddIgnorePreflightErrorsFlag(fs *pflag.FlagSet, ignorePreflightErrors *[]st // AddControlPlanExtraArgsFlags adds the ExtraArgs flags for control plane components func AddControlPlanExtraArgsFlags(fs *pflag.FlagSet, apiServerExtraArgs, controllerManagerExtraArgs, schedulerExtraArgs *map[string]string) { - fs.Var(utilflag.NewMapStringString(apiServerExtraArgs), APIServerExtraArgs, "A set of extra flags to pass to the API Server or override default ones in form of =") - fs.Var(utilflag.NewMapStringString(controllerManagerExtraArgs), ControllerManagerExtraArgs, "A set of extra flags to pass to the Controller Manager or override default ones in form of =") - fs.Var(utilflag.NewMapStringString(schedulerExtraArgs), SchedulerExtraArgs, "A set of extra flags to pass to the Scheduler or override default ones in form of =") + fs.Var(cliflag.NewMapStringString(apiServerExtraArgs), APIServerExtraArgs, "A set of extra flags to pass to the API Server or override default ones in form of =") + fs.Var(cliflag.NewMapStringString(controllerManagerExtraArgs), ControllerManagerExtraArgs, "A set of extra flags to pass to the Controller Manager or override default ones in form of =") + fs.Var(cliflag.NewMapStringString(schedulerExtraArgs), SchedulerExtraArgs, "A set of extra flags to pass to the Scheduler or override default ones in form of =") } // AddImageMetaFlags adds the --image-repository flag to the given flagset diff --git a/cmd/kubeadm/app/kubeadm.go b/cmd/kubeadm/app/kubeadm.go index a8f68ce11d..34165f4727 100644 --- a/cmd/kubeadm/app/kubeadm.go +++ b/cmd/kubeadm/app/kubeadm.go @@ -25,13 +25,13 @@ import ( // ensure libs have a chance to globally register their flags _ "k8s.io/klog" - utilflag "k8s.io/apiserver/pkg/util/flag" + cliflag "k8s.io/component-base/cli/flag" "k8s.io/kubernetes/cmd/kubeadm/app/cmd" ) // Run creates and executes new kubeadm command func Run() error { - pflag.CommandLine.SetNormalizeFunc(utilflag.WordSepNormalizeFunc) + pflag.CommandLine.SetNormalizeFunc(cliflag.WordSepNormalizeFunc) pflag.CommandLine.AddGoFlagSet(flag.CommandLine) pflag.Set("logtostderr", "true") diff --git a/cmd/kubectl/BUILD b/cmd/kubectl/BUILD index eb60490cfd..ff8fe387fe 100644 --- a/cmd/kubectl/BUILD +++ b/cmd/kubectl/BUILD @@ -21,8 +21,8 @@ go_library( deps = [ "//pkg/kubectl/cmd:go_default_library", "//pkg/kubectl/util/logs:go_default_library", - "//staging/src/k8s.io/apiserver/pkg/util/flag:go_default_library", "//staging/src/k8s.io/client-go/plugin/pkg/client/auth:go_default_library", + "//staging/src/k8s.io/component-base/cli/flag:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", ], ) diff --git a/cmd/kubectl/kubectl.go b/cmd/kubectl/kubectl.go index 35149cc8c8..dff1143b01 100644 --- a/cmd/kubectl/kubectl.go +++ b/cmd/kubectl/kubectl.go @@ -25,7 +25,7 @@ import ( "github.com/spf13/pflag" - utilflag "k8s.io/apiserver/pkg/util/flag" + cliflag "k8s.io/component-base/cli/flag" "k8s.io/kubernetes/pkg/kubectl/cmd" "k8s.io/kubernetes/pkg/kubectl/util/logs" @@ -39,11 +39,11 @@ func main() { command := cmd.NewDefaultKubectlCommand() // TODO: once we switch everything over to Cobra commands, we can go back to calling - // utilflag.InitFlags() (by removing its pflag.Parse() call). For now, we have to set the + // cliflag.InitFlags() (by removing its pflag.Parse() call). For now, we have to set the // normalize func and add the go flag set by hand. - pflag.CommandLine.SetNormalizeFunc(utilflag.WordSepNormalizeFunc) + pflag.CommandLine.SetNormalizeFunc(cliflag.WordSepNormalizeFunc) pflag.CommandLine.AddGoFlagSet(goflag.CommandLine) - // utilflag.InitFlags() + // cliflag.InitFlags() logs.InitLogs() defer logs.FlushLogs() diff --git a/cmd/kubelet/app/BUILD b/cmd/kubelet/app/BUILD index a2140643b9..43211aeb28 100644 --- a/cmd/kubelet/app/BUILD +++ b/cmd/kubelet/app/BUILD @@ -122,7 +122,6 @@ go_library( "//staging/src/k8s.io/apiserver/pkg/authorization/authorizerfactory:go_default_library", "//staging/src/k8s.io/apiserver/pkg/server/healthz:go_default_library", "//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library", - "//staging/src/k8s.io/apiserver/pkg/util/flag:go_default_library", "//staging/src/k8s.io/client-go/kubernetes:go_default_library", "//staging/src/k8s.io/client-go/kubernetes/typed/authentication/v1beta1:go_default_library", "//staging/src/k8s.io/client-go/kubernetes/typed/authorization/v1beta1:go_default_library", @@ -134,6 +133,7 @@ go_library( "//staging/src/k8s.io/client-go/util/cert:go_default_library", "//staging/src/k8s.io/client-go/util/certificate:go_default_library", "//staging/src/k8s.io/cloud-provider:go_default_library", + "//staging/src/k8s.io/component-base/cli/flag:go_default_library", "//staging/src/k8s.io/csi-api/pkg/client/clientset/versioned:go_default_library", "//staging/src/k8s.io/kubelet/config/v1beta1:go_default_library", "//staging/src/k8s.io/node-api/pkg/client/clientset/versioned:go_default_library", diff --git a/cmd/kubelet/app/options/BUILD b/cmd/kubelet/app/options/BUILD index e4de58aac3..e76c2e1089 100644 --- a/cmd/kubelet/app/options/BUILD +++ b/cmd/kubelet/app/options/BUILD @@ -36,7 +36,7 @@ go_library( "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library", - "//staging/src/k8s.io/apiserver/pkg/util/flag:go_default_library", + "//staging/src/k8s.io/component-base/cli/flag:go_default_library", "//staging/src/k8s.io/component-base/logs:go_default_library", "//staging/src/k8s.io/kubelet/config/v1beta1:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", @@ -74,7 +74,7 @@ go_test( embed = [":go_default_library"], deps = [ "//staging/src/k8s.io/apimachinery/pkg/util/diff:go_default_library", - "//staging/src/k8s.io/apiserver/pkg/util/flag:go_default_library", + "//staging/src/k8s.io/component-base/cli/flag:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", ], ) diff --git a/cmd/kubelet/app/options/options.go b/cmd/kubelet/app/options/options.go index 7a3c6f15ca..9403662800 100644 --- a/cmd/kubelet/app/options/options.go +++ b/cmd/kubelet/app/options/options.go @@ -29,7 +29,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/sets" utilfeature "k8s.io/apiserver/pkg/util/feature" - "k8s.io/apiserver/pkg/util/flag" + cliflag "k8s.io/component-base/cli/flag" "k8s.io/klog" "k8s.io/kubelet/config/v1beta1" "k8s.io/kubernetes/pkg/apis/core" @@ -109,7 +109,7 @@ type KubeletFlags struct { // The path may be absolute or relative; relative paths are under the Kubelet's current working directory. // Providing this flag enables dynamic kubelet configuration. // To use this flag, the DynamicKubeletConfig feature gate must be enabled. - DynamicConfigDir flag.StringFlag + DynamicConfigDir cliflag.StringFlag // The Kubelet will load its initial configuration from this file. // The path may be absolute or relative; relative paths are under the Kubelet's current working directory. @@ -416,7 +416,7 @@ func (f *KubeletFlags) AddFlags(mainfs *pflag.FlagSet) { fs.StringVar(&f.RemoteImageEndpoint, "image-service-endpoint", f.RemoteImageEndpoint, "[Experimental] The endpoint of remote image service. If not specified, it will be the same with container-runtime-endpoint by default. Currently unix socket and tcp endpoints are supported on Linux, while npipe and tcp endpoints are supported on windows. Examples:'unix:///var/run/dockershim.sock', 'npipe:////./pipe/dockershim'") fs.BoolVar(&f.ExperimentalCheckNodeCapabilitiesBeforeMount, "experimental-check-node-capabilities-before-mount", f.ExperimentalCheckNodeCapabilitiesBeforeMount, "[Experimental] if set true, the kubelet will check the underlying node for required components (binaries, etc.) before performing the mount") fs.BoolVar(&f.ExperimentalNodeAllocatableIgnoreEvictionThreshold, "experimental-allocatable-ignore-eviction", f.ExperimentalNodeAllocatableIgnoreEvictionThreshold, "When set to 'true', Hard Eviction Thresholds will be ignored while calculating Node Allocatable. See https://kubernetes.io/docs/tasks/administer-cluster/reserve-compute-resources/ for more details. [default=false]") - bindableNodeLabels := flag.ConfigurationMap(f.NodeLabels) + bindableNodeLabels := cliflag.ConfigurationMap(f.NodeLabels) fs.Var(&bindableNodeLabels, "node-labels", fmt.Sprintf(" Labels to add when registering the node in the cluster. Labels must be key=value pairs separated by ','. Labels in the 'kubernetes.io' namespace must begin with an allowed prefix (%s) or be in the specifically allowed set (%s)", strings.Join(kubeletapis.KubeletLabelNamespaces(), ", "), strings.Join(kubeletapis.KubeletLabels(), ", "))) fs.StringVar(&f.VolumePluginDir, "volume-plugin-dir", f.VolumePluginDir, "The full path of the directory in which to search for additional third party volume plugins") fs.StringVar(&f.LockFilePath, "lock-file", f.LockFilePath, " The path to file for kubelet to use as a lock file.") @@ -480,7 +480,7 @@ func AddKubeletConfigFlags(mainfs *pflag.FlagSet, c *kubeletconfig.KubeletConfig fs.DurationVar(&c.FileCheckFrequency.Duration, "file-check-frequency", c.FileCheckFrequency.Duration, "Duration between checking config files for new data") fs.DurationVar(&c.HTTPCheckFrequency.Duration, "http-check-frequency", c.HTTPCheckFrequency.Duration, "Duration between checking http for new data") fs.StringVar(&c.StaticPodURL, "manifest-url", c.StaticPodURL, "URL for accessing additional Pod specifications to run") - fs.Var(flag.NewColonSeparatedMultimapStringString(&c.StaticPodURLHeader), "manifest-url-header", "Comma-separated list of HTTP headers to use when accessing the url provided to --manifest-url. Multiple headers with the same name will be added in the same order provided. This flag can be repeatedly invoked. For example: `--manifest-url-header 'a:hello,b:again,c:world' --manifest-url-header 'b:beautiful'`") + fs.Var(cliflag.NewColonSeparatedMultimapStringString(&c.StaticPodURLHeader), "manifest-url-header", "Comma-separated list of HTTP headers to use when accessing the url provided to --manifest-url. Multiple headers with the same name will be added in the same order provided. This flag can be repeatedly invoked. For example: `--manifest-url-header 'a:hello,b:again,c:world' --manifest-url-header 'b:beautiful'`") fs.Var(utilflag.IPVar{Val: &c.Address}, "address", "The IP address for the Kubelet to serve on (set to `0.0.0.0` for all IPv4 interfaces and `::` for all IPv6 interfaces)") fs.Int32Var(&c.Port, "port", c.Port, "The port for the Kubelet to serve on.") fs.Int32Var(&c.ReadOnlyPort, "read-only-port", c.ReadOnlyPort, "The read-only port for the Kubelet to serve on with no authentication/authorization (set to 0 to disable)") @@ -514,12 +514,12 @@ func AddKubeletConfigFlags(mainfs *pflag.FlagSet, c *kubeletconfig.KubeletConfig fs.StringVar(&c.TLSPrivateKeyFile, "tls-private-key-file", c.TLSPrivateKeyFile, "File containing x509 private key matching --tls-cert-file.") fs.BoolVar(&c.ServerTLSBootstrap, "rotate-server-certificates", c.ServerTLSBootstrap, "Auto-request and rotate the kubelet serving certificates by requesting new certificates from the kube-apiserver when the certificate expiration approaches. Requires the RotateKubeletServerCertificate feature gate to be enabled, and approval of the submitted CertificateSigningRequest objects.") - tlsCipherPossibleValues := flag.TLSCipherPossibleValues() + tlsCipherPossibleValues := cliflag.TLSCipherPossibleValues() fs.StringSliceVar(&c.TLSCipherSuites, "tls-cipher-suites", c.TLSCipherSuites, "Comma-separated list of cipher suites for the server. "+ "If omitted, the default Go cipher suites will be used. "+ "Possible values: "+strings.Join(tlsCipherPossibleValues, ",")) - tlsPossibleVersions := flag.TLSPossibleVersions() + tlsPossibleVersions := cliflag.TLSPossibleVersions() fs.StringVar(&c.TLSMinVersion, "tls-min-version", c.TLSMinVersion, "Minimum TLS version supported. "+ "Possible values: "+strings.Join(tlsPossibleVersions, ", ")) @@ -544,7 +544,7 @@ func AddKubeletConfigFlags(mainfs *pflag.FlagSet, c *kubeletconfig.KubeletConfig fs.Int32Var(&c.ImageGCHighThresholdPercent, "image-gc-high-threshold", c.ImageGCHighThresholdPercent, "The percent of disk usage after which image garbage collection is always run. Values must be within the range [0, 100], To disable image garbage collection, set to 100. ") fs.Int32Var(&c.ImageGCLowThresholdPercent, "image-gc-low-threshold", c.ImageGCLowThresholdPercent, "The percent of disk usage before which image garbage collection is never run. Lowest disk usage to garbage collect to. Values must be within the range [0, 100] and should not be larger than that of --image-gc-high-threshold.") fs.DurationVar(&c.VolumeStatsAggPeriod.Duration, "volume-stats-agg-period", c.VolumeStatsAggPeriod.Duration, "Specifies interval for kubelet to calculate and cache the volume disk usage for all pods and volumes. To disable volume calculations, set to 0.") - fs.Var(flag.NewMapStringBool(&c.FeatureGates), "feature-gates", "A set of key=value pairs that describe feature gates for alpha/experimental features. "+ + fs.Var(cliflag.NewMapStringBool(&c.FeatureGates), "feature-gates", "A set of key=value pairs that describe feature gates for alpha/experimental features. "+ "Options are:\n"+strings.Join(utilfeature.DefaultFeatureGate.KnownFeatures(), "\n")) fs.StringVar(&c.KubeletCgroups, "kubelet-cgroups", c.KubeletCgroups, "Optional absolute name of cgroups to create and run the Kubelet in.") fs.StringVar(&c.SystemCgroups, "system-cgroups", c.SystemCgroups, "Optional absolute name of cgroups in which to place all non-kernel processes that are not already inside a cgroup under `/`. Empty for no container. Rolling back the flag requires a reboot.") @@ -554,7 +554,7 @@ func AddKubeletConfigFlags(mainfs *pflag.FlagSet, c *kubeletconfig.KubeletConfig fs.StringVar(&c.CgroupRoot, "cgroup-root", c.CgroupRoot, "Optional root cgroup to use for pods. This is handled by the container runtime on a best effort basis. Default: '', which means use the container runtime default.") fs.StringVar(&c.CPUManagerPolicy, "cpu-manager-policy", c.CPUManagerPolicy, "CPU Manager policy to use. Possible values: 'none', 'static'. Default: 'none'") fs.DurationVar(&c.CPUManagerReconcilePeriod.Duration, "cpu-manager-reconcile-period", c.CPUManagerReconcilePeriod.Duration, " CPU Manager reconciliation period. Examples: '10s', or '1m'. If not supplied, defaults to `NodeStatusUpdateFrequency`") - fs.Var(flag.NewMapStringString(&c.QOSReserved), "qos-reserved", " A set of ResourceName=Percentage (e.g. memory=50%) pairs that describe how pod resource requests are reserved at the QoS level. Currently only memory is supported. Requires the QOSReserved feature gate to be enabled.") + fs.Var(cliflag.NewMapStringString(&c.QOSReserved), "qos-reserved", " A set of ResourceName=Percentage (e.g. memory=50%) pairs that describe how pod resource requests are reserved at the QoS level. Currently only memory is supported. Requires the QOSReserved feature gate to be enabled.") fs.DurationVar(&c.RuntimeRequestTimeout.Duration, "runtime-request-timeout", c.RuntimeRequestTimeout.Duration, "Timeout of all runtime requests except long running request - pull, logs, exec and attach. When timeout exceeded, kubelet will cancel the request, throw out an error and retry later.") fs.StringVar(&c.HairpinMode, "hairpin-mode", c.HairpinMode, "How should the kubelet setup hairpin NAT. This allows endpoints of a Service to loadbalance back to themselves if they should try to access their own Service. Valid values are \"promiscuous-bridge\", \"hairpin-veth\" and \"none\".") fs.Int32Var(&c.MaxPods, "max-pods", c.MaxPods, "Number of Pods that can run on this Kubelet.") @@ -580,18 +580,18 @@ func AddKubeletConfigFlags(mainfs *pflag.FlagSet, c *kubeletconfig.KubeletConfig fs.Int32Var(&c.KubeAPIBurst, "kube-api-burst", c.KubeAPIBurst, "Burst to use while talking with kubernetes apiserver") fs.BoolVar(&c.SerializeImagePulls, "serialize-image-pulls", c.SerializeImagePulls, "Pull images one at a time. We recommend *not* changing the default value on nodes that run docker daemon with version < 1.9 or an Aufs storage backend. Issue #10959 has more details.") - fs.Var(flag.NewLangleSeparatedMapStringString(&c.EvictionHard), "eviction-hard", "A set of eviction thresholds (e.g. memory.available<1Gi) that if met would trigger a pod eviction.") - fs.Var(flag.NewLangleSeparatedMapStringString(&c.EvictionSoft), "eviction-soft", "A set of eviction thresholds (e.g. memory.available<1.5Gi) that if met over a corresponding grace period would trigger a pod eviction.") - fs.Var(flag.NewMapStringString(&c.EvictionSoftGracePeriod), "eviction-soft-grace-period", "A set of eviction grace periods (e.g. memory.available=1m30s) that correspond to how long a soft eviction threshold must hold before triggering a pod eviction.") + fs.Var(cliflag.NewLangleSeparatedMapStringString(&c.EvictionHard), "eviction-hard", "A set of eviction thresholds (e.g. memory.available<1Gi) that if met would trigger a pod eviction.") + fs.Var(cliflag.NewLangleSeparatedMapStringString(&c.EvictionSoft), "eviction-soft", "A set of eviction thresholds (e.g. memory.available<1.5Gi) that if met over a corresponding grace period would trigger a pod eviction.") + fs.Var(cliflag.NewMapStringString(&c.EvictionSoftGracePeriod), "eviction-soft-grace-period", "A set of eviction grace periods (e.g. memory.available=1m30s) that correspond to how long a soft eviction threshold must hold before triggering a pod eviction.") fs.DurationVar(&c.EvictionPressureTransitionPeriod.Duration, "eviction-pressure-transition-period", c.EvictionPressureTransitionPeriod.Duration, "Duration for which the kubelet has to wait before transitioning out of an eviction pressure condition.") fs.Int32Var(&c.EvictionMaxPodGracePeriod, "eviction-max-pod-grace-period", c.EvictionMaxPodGracePeriod, "Maximum allowed grace period (in seconds) to use when terminating pods in response to a soft eviction threshold being met. If negative, defer to pod specified value.") - fs.Var(flag.NewMapStringString(&c.EvictionMinimumReclaim), "eviction-minimum-reclaim", "A set of minimum reclaims (e.g. imagefs.available=2Gi) that describes the minimum amount of resource the kubelet will reclaim when performing a pod eviction if that resource is under pressure.") + fs.Var(cliflag.NewMapStringString(&c.EvictionMinimumReclaim), "eviction-minimum-reclaim", "A set of minimum reclaims (e.g. imagefs.available=2Gi) that describes the minimum amount of resource the kubelet will reclaim when performing a pod eviction if that resource is under pressure.") fs.Int32Var(&c.PodsPerCore, "pods-per-core", c.PodsPerCore, "Number of Pods per core that can run on this Kubelet. The total number of Pods on this Kubelet cannot exceed max-pods, so max-pods will be used if this calculation results in a larger number of Pods allowed on the Kubelet. A value of 0 disables this limit.") fs.BoolVar(&c.ProtectKernelDefaults, "protect-kernel-defaults", c.ProtectKernelDefaults, "Default kubelet behaviour for kernel tuning. If set, kubelet errors if any of kernel tunables is different than kubelet defaults.") // Node Allocatable Flags - fs.Var(flag.NewMapStringString(&c.SystemReserved), "system-reserved", "A set of ResourceName=ResourceQuantity (e.g. cpu=200m,memory=500Mi,ephemeral-storage=1Gi,pid=100) pairs that describe resources reserved for non-kubernetes components. Currently only cpu, memory, and pid (process IDs) are supported. See http://kubernetes.io/docs/user-guide/compute-resources for more detail. [default=none]") - fs.Var(flag.NewMapStringString(&c.KubeReserved), "kube-reserved", "A set of ResourceName=ResourceQuantity (e.g. cpu=200m,memory=500Mi,ephemeral-storage=1Gi,pid=100) pairs that describe resources reserved for kubernetes system components. Currently cpu, memory, local ephemeral storage for root file system, and pid (process IDs) are supported. See http://kubernetes.io/docs/user-guide/compute-resources for more detail. [default=none]") + fs.Var(cliflag.NewMapStringString(&c.SystemReserved), "system-reserved", "A set of ResourceName=ResourceQuantity (e.g. cpu=200m,memory=500Mi,ephemeral-storage=1Gi) pairs that describe resources reserved for non-kubernetes components. Currently only cpu and memory are supported. See http://kubernetes.io/docs/user-guide/compute-resources for more detail. [default=none]") + fs.Var(cliflag.NewMapStringString(&c.KubeReserved), "kube-reserved", "A set of ResourceName=ResourceQuantity (e.g. cpu=200m,memory=500Mi,ephemeral-storage=1Gi) pairs that describe resources reserved for kubernetes system components. Currently cpu, memory and local ephemeral storage for root file system are supported. See http://kubernetes.io/docs/user-guide/compute-resources for more detail. [default=none]") fs.StringSliceVar(&c.EnforceNodeAllocatable, "enforce-node-allocatable", c.EnforceNodeAllocatable, "A comma separated list of levels of node allocatable enforcement to be enforced by kubelet. Acceptable options are 'none', 'pods', 'system-reserved', and 'kube-reserved'. If the latter two options are specified, '--system-reserved-cgroup' and '--kube-reserved-cgroup' must also be set, respectively. If 'none' is specified, no additional options should be set. See https://kubernetes.io/docs/tasks/administer-cluster/reserve-compute-resources/ for more details.") fs.StringVar(&c.SystemReservedCgroup, "system-reserved-cgroup", c.SystemReservedCgroup, "Absolute name of the top level cgroup that is used to manage non-kubernetes components for which compute resources were reserved via '--system-reserved' flag. Ex. '/system-reserved'. [default='']") fs.StringVar(&c.KubeReservedCgroup, "kube-reserved-cgroup", c.KubeReservedCgroup, "Absolute name of the top level cgroup that is used to manage kubernetes components for which compute resources were reserved via '--kube-reserved' flag. Ex. '/kube-reserved'. [default='']") diff --git a/cmd/kubelet/app/options/options_test.go b/cmd/kubelet/app/options/options_test.go index dae48969e0..1c97665812 100644 --- a/cmd/kubelet/app/options/options_test.go +++ b/cmd/kubelet/app/options/options_test.go @@ -24,7 +24,7 @@ import ( "github.com/spf13/pflag" "k8s.io/apimachinery/pkg/util/diff" - utilflag "k8s.io/apiserver/pkg/util/flag" + cliflag "k8s.io/component-base/cli/flag" ) func newKubeletServerOrDie() *KubeletServer { @@ -36,7 +36,7 @@ func newKubeletServerOrDie() *KubeletServer { } func cleanFlags(s *KubeletServer) { - s.DynamicConfigDir = utilflag.NewStringFlag(s.DynamicConfigDir.Value()) + s.DynamicConfigDir = cliflag.NewStringFlag(s.DynamicConfigDir.Value()) } // TestRoundTrip ensures that flag values from the Kubelet can be serialized @@ -118,8 +118,8 @@ func asArgs(fn, defaultFn func(*pflag.FlagSet)) []string { defaultFn(defaults) var args []string fs.VisitAll(func(flag *pflag.Flag) { - // if the flag implements utilflag.OmitEmpty and the value is Empty, then just omit it from the command line - if omit, ok := flag.Value.(utilflag.OmitEmpty); ok && omit.Empty() { + // if the flag implements cliflag.OmitEmpty and the value is Empty, then just omit it from the command line + if omit, ok := flag.Value.(cliflag.OmitEmpty); ok && omit.Empty() { return } s := flag.Value.String() diff --git a/cmd/kubelet/app/server.go b/cmd/kubelet/app/server.go index 64c2d65d1d..1118076723 100644 --- a/cmd/kubelet/app/server.go +++ b/cmd/kubelet/app/server.go @@ -37,7 +37,7 @@ import ( "github.com/spf13/pflag" "k8s.io/klog" - "k8s.io/api/core/v1" + v1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" @@ -46,7 +46,6 @@ import ( "k8s.io/apimachinery/pkg/util/wait" "k8s.io/apiserver/pkg/server/healthz" utilfeature "k8s.io/apiserver/pkg/util/feature" - "k8s.io/apiserver/pkg/util/flag" clientset "k8s.io/client-go/kubernetes" certificatesclient "k8s.io/client-go/kubernetes/typed/certificates/v1beta1" v1core "k8s.io/client-go/kubernetes/typed/core/v1" @@ -56,6 +55,7 @@ import ( certutil "k8s.io/client-go/util/cert" "k8s.io/client-go/util/certificate" cloudprovider "k8s.io/cloud-provider" + cliflag "k8s.io/component-base/cli/flag" csiclientset "k8s.io/csi-api/pkg/client/clientset/versioned" kubeletconfigv1beta1 "k8s.io/kubelet/config/v1beta1" "k8s.io/kubernetes/cmd/kubelet/app/options" @@ -107,7 +107,7 @@ const ( // NewKubeletCommand creates a *cobra.Command object with default parameters func NewKubeletCommand(stopCh <-chan struct{}) *cobra.Command { cleanFlagSet := pflag.NewFlagSet(componentKubelet, pflag.ContinueOnError) - cleanFlagSet.SetNormalizeFunc(flag.WordSepNormalizeFunc) + cleanFlagSet.SetNormalizeFunc(cliflag.WordSepNormalizeFunc) kubeletFlags := options.NewKubeletFlags() kubeletConfig, err := options.NewKubeletConfiguration() // programmer error @@ -290,8 +290,8 @@ HTTP server: The kubelet can also listen for HTTP and respond to a simple API // on it. func newFlagSetWithGlobals() *pflag.FlagSet { fs := pflag.NewFlagSet("", pflag.ExitOnError) - // set the normalize func, similar to k8s.io/apiserver/pkg/util/flag/flags.go:InitFlags - fs.SetNormalizeFunc(flag.WordSepNormalizeFunc) + // set the normalize func, similar to k8s.io/component-base/cli//flags.go:InitFlags + fs.SetNormalizeFunc(cliflag.WordSepNormalizeFunc) // explicitly add flags from libs that register global flags options.AddGlobalFlags(fs) return fs @@ -303,7 +303,7 @@ func newFakeFlagSet(fs *pflag.FlagSet) *pflag.FlagSet { ret := pflag.NewFlagSet("", pflag.ExitOnError) ret.SetNormalizeFunc(fs.GetNormalizeFunc()) fs.VisitAll(func(f *pflag.Flag) { - ret.VarP(flag.NoOp{}, f.Name, f.Shorthand, f.Usage) + ret.VarP(cliflag.NoOp{}, f.Name, f.Shorthand, f.Usage) }) return ret } @@ -907,12 +907,12 @@ func InitializeTLS(kf *options.KubeletFlags, kc *kubeletconfiginternal.KubeletCo } } - tlsCipherSuites, err := flag.TLSCipherSuites(kc.TLSCipherSuites) + tlsCipherSuites, err := cliflag.TLSCipherSuites(kc.TLSCipherSuites) if err != nil { return nil, err } - minTLSVersion, err := flag.TLSVersion(kc.TLSMinVersion) + minTLSVersion, err := cliflag.TLSVersion(kc.TLSMinVersion) if err != nil { return nil, err } diff --git a/cmd/kubemark/BUILD b/cmd/kubemark/BUILD index 287798b05f..7dedb9587f 100644 --- a/cmd/kubemark/BUILD +++ b/cmd/kubemark/BUILD @@ -29,11 +29,11 @@ go_library( "//pkg/version/verflag:go_default_library", "//staging/src/k8s.io/api/core/v1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library", - "//staging/src/k8s.io/apiserver/pkg/util/flag:go_default_library", "//staging/src/k8s.io/client-go/kubernetes:go_default_library", "//staging/src/k8s.io/client-go/rest:go_default_library", "//staging/src/k8s.io/client-go/tools/clientcmd:go_default_library", "//staging/src/k8s.io/client-go/tools/record:go_default_library", + "//staging/src/k8s.io/component-base/cli/flag:go_default_library", "//staging/src/k8s.io/component-base/logs:go_default_library", "//vendor/github.com/spf13/cobra:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", diff --git a/cmd/kubemark/hollow-node.go b/cmd/kubemark/hollow-node.go index 578c629070..5309b16005 100644 --- a/cmd/kubemark/hollow-node.go +++ b/cmd/kubemark/hollow-node.go @@ -29,11 +29,11 @@ import ( v1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/util/sets" - utilflag "k8s.io/apiserver/pkg/util/flag" clientset "k8s.io/client-go/kubernetes" restclient "k8s.io/client-go/rest" "k8s.io/client-go/tools/clientcmd" "k8s.io/client-go/tools/record" + cliflag "k8s.io/component-base/cli/flag" "k8s.io/component-base/logs" "k8s.io/kubernetes/pkg/api/legacyscheme" _ "k8s.io/kubernetes/pkg/client/metrics/prometheus" // for client metric registration @@ -105,11 +105,11 @@ func main() { command := newHollowNodeCommand() // TODO: once we switch everything over to Cobra commands, we can go back to calling - // utilflag.InitFlags() (by removing its pflag.Parse() call). For now, we have to set the + // cliflag.InitFlags() (by removing its pflag.Parse() call). For now, we have to set the // normalize func and add the go flag set by hand. - pflag.CommandLine.SetNormalizeFunc(utilflag.WordSepNormalizeFunc) + pflag.CommandLine.SetNormalizeFunc(cliflag.WordSepNormalizeFunc) pflag.CommandLine.AddGoFlagSet(goflag.CommandLine) - // utilflag.InitFlags() + // cliflag.InitFlags() logs.InitLogs() defer logs.FlushLogs() diff --git a/hack/.golint_failures b/hack/.golint_failures index f047d6ae89..f7fdae8bc1 100644 --- a/hack/.golint_failures +++ b/hack/.golint_failures @@ -565,7 +565,6 @@ staging/src/k8s.io/apiserver/pkg/storage/testing staging/src/k8s.io/apiserver/pkg/storage/tests staging/src/k8s.io/apiserver/pkg/storage/value staging/src/k8s.io/apiserver/pkg/util/feature -staging/src/k8s.io/apiserver/pkg/util/flag staging/src/k8s.io/apiserver/pkg/util/proxy staging/src/k8s.io/apiserver/pkg/util/webhook staging/src/k8s.io/apiserver/pkg/util/wsstream @@ -640,6 +639,7 @@ staging/src/k8s.io/code-generator/cmd/client-gen/types staging/src/k8s.io/code-generator/cmd/conversion-gen/generators staging/src/k8s.io/code-generator/cmd/go-to-protobuf/protobuf staging/src/k8s.io/code-generator/cmd/lister-gen/generators +staging/src/k8s.io/component-base/cli/flag staging/src/k8s.io/component-base/config/v1alpha1 staging/src/k8s.io/kube-aggregator/pkg/controllers/autoregister staging/src/k8s.io/kube-proxy/config/v1alpha1 diff --git a/pkg/apis/core/types.go b/pkg/apis/core/types.go index 37c511d650..bc4c1c59f9 100644 --- a/pkg/apis/core/types.go +++ b/pkg/apis/core/types.go @@ -465,7 +465,7 @@ type PersistentVolumeClaimStatus struct { type PersistentVolumeAccessMode string const ( - // can be mounted in read/write mode to exactly 1 host + // can be mounted read/write mode to exactly 1 host ReadWriteOnce PersistentVolumeAccessMode = "ReadWriteOnce" // can be mounted in read-only mode to many hosts ReadOnlyMany PersistentVolumeAccessMode = "ReadOnlyMany" diff --git a/pkg/kubeapiserver/options/BUILD b/pkg/kubeapiserver/options/BUILD index ae7c2ca42e..22b364ffb6 100644 --- a/pkg/kubeapiserver/options/BUILD +++ b/pkg/kubeapiserver/options/BUILD @@ -62,9 +62,9 @@ go_library( "//staging/src/k8s.io/apiserver/pkg/server:go_default_library", "//staging/src/k8s.io/apiserver/pkg/server/options:go_default_library", "//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library", - "//staging/src/k8s.io/apiserver/pkg/util/flag:go_default_library", "//staging/src/k8s.io/client-go/informers:go_default_library", "//staging/src/k8s.io/client-go/rest:go_default_library", + "//staging/src/k8s.io/component-base/cli/flag:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", "//vendor/k8s.io/klog:go_default_library", ], diff --git a/pkg/kubeapiserver/options/authentication.go b/pkg/kubeapiserver/options/authentication.go index 9230b07215..383717487a 100644 --- a/pkg/kubeapiserver/options/authentication.go +++ b/pkg/kubeapiserver/options/authentication.go @@ -31,7 +31,7 @@ import ( genericapiserver "k8s.io/apiserver/pkg/server" genericoptions "k8s.io/apiserver/pkg/server/options" utilfeature "k8s.io/apiserver/pkg/util/feature" - "k8s.io/apiserver/pkg/util/flag" + cliflag "k8s.io/component-base/cli/flag" "k8s.io/kubernetes/pkg/features" kubeauthenticator "k8s.io/kubernetes/pkg/kubeapiserver/authenticator" authzmodes "k8s.io/kubernetes/pkg/kubeapiserver/authorizer/modes" @@ -249,7 +249,7 @@ func (s *BuiltInAuthenticationOptions) AddFlags(fs *pflag.FlagSet) { "'alg' header value not in this list will be rejected. "+ "Values are defined by RFC 7518 https://tools.ietf.org/html/rfc7518#section-3.1.") - fs.Var(flag.NewMapStringStringNoSplit(&s.OIDC.RequiredClaims), "oidc-required-claim", ""+ + fs.Var(cliflag.NewMapStringStringNoSplit(&s.OIDC.RequiredClaims), "oidc-required-claim", ""+ "A key=value pair that describes a required claim in the ID Token. "+ "If set, the claim is verified to be present in the ID Token with a matching value. "+ "Repeat this flag to specify multiple claims.") diff --git a/pkg/kubectl/cmd/BUILD b/pkg/kubectl/cmd/BUILD index 8e2ade844d..979699b6e1 100644 --- a/pkg/kubectl/cmd/BUILD +++ b/pkg/kubectl/cmd/BUILD @@ -59,9 +59,9 @@ go_library( "//pkg/kubectl/cmd/wait:go_default_library", "//pkg/kubectl/util/i18n:go_default_library", "//pkg/kubectl/util/templates:go_default_library", - "//staging/src/k8s.io/apiserver/pkg/util/flag:go_default_library", "//staging/src/k8s.io/cli-runtime/pkg/genericclioptions:go_default_library", "//staging/src/k8s.io/client-go/tools/clientcmd:go_default_library", + "//staging/src/k8s.io/component-base/cli/flag:go_default_library", "//vendor/github.com/spf13/cobra:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", ], diff --git a/pkg/kubectl/cmd/cmd.go b/pkg/kubectl/cmd/cmd.go index 2b7e2eed1a..12f2735a58 100644 --- a/pkg/kubectl/cmd/cmd.go +++ b/pkg/kubectl/cmd/cmd.go @@ -27,8 +27,8 @@ import ( "github.com/spf13/cobra" - utilflag "k8s.io/apiserver/pkg/util/flag" "k8s.io/client-go/tools/clientcmd" + cliflag "k8s.io/component-base/cli/flag" "k8s.io/kubernetes/pkg/kubectl/cmd/annotate" "k8s.io/kubernetes/pkg/kubectl/cmd/apiresources" "k8s.io/kubernetes/pkg/kubectl/cmd/apply" @@ -431,11 +431,11 @@ func NewKubectlCommand(in io.Reader, out, err io.Writer) *cobra.Command { } flags := cmds.PersistentFlags() - flags.SetNormalizeFunc(utilflag.WarnWordSepNormalizeFunc) // Warn for "_" flags + flags.SetNormalizeFunc(cliflag.WarnWordSepNormalizeFunc) // Warn for "_" flags // Normalize all flags that are coming from other packages or pre-configurations // a.k.a. change all "_" to "-". e.g. glog package - flags.SetNormalizeFunc(utilflag.WordSepNormalizeFunc) + flags.SetNormalizeFunc(cliflag.WordSepNormalizeFunc) addProfilingFlags(flags) @@ -456,7 +456,7 @@ func NewKubectlCommand(in io.Reader, out, err io.Writer) *cobra.Command { i18n.LoadTranslations("kubectl", nil) // From this point and forward we get warnings on flags that contain "_" separators - cmds.SetGlobalNormalizationFunc(utilflag.WarnWordSepNormalizeFunc) + cmds.SetGlobalNormalizationFunc(cliflag.WarnWordSepNormalizeFunc) ioStreams := genericclioptions.IOStreams{In: in, Out: out, ErrOut: err} diff --git a/pkg/kubectl/cmd/config/BUILD b/pkg/kubectl/cmd/config/BUILD index f47fcd00fb..256ab03694 100644 --- a/pkg/kubectl/cmd/config/BUILD +++ b/pkg/kubectl/cmd/config/BUILD @@ -35,12 +35,12 @@ go_library( "//pkg/kubectl/util/templates:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/errors:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library", - "//staging/src/k8s.io/apiserver/pkg/util/flag:go_default_library", "//staging/src/k8s.io/cli-runtime/pkg/genericclioptions:go_default_library", "//staging/src/k8s.io/cli-runtime/pkg/genericclioptions/printers:go_default_library", "//staging/src/k8s.io/client-go/tools/clientcmd:go_default_library", "//staging/src/k8s.io/client-go/tools/clientcmd/api:go_default_library", "//staging/src/k8s.io/client-go/tools/clientcmd/api/latest:go_default_library", + "//staging/src/k8s.io/component-base/cli/flag:go_default_library", "//vendor/github.com/liggitt/tabwriter:go_default_library", "//vendor/github.com/spf13/cobra:go_default_library", ], @@ -70,10 +70,10 @@ go_test( "//pkg/kubectl/cmd/util:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/api/equality:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/diff:go_default_library", - "//staging/src/k8s.io/apiserver/pkg/util/flag:go_default_library", "//staging/src/k8s.io/cli-runtime/pkg/genericclioptions:go_default_library", "//staging/src/k8s.io/client-go/tools/clientcmd:go_default_library", "//staging/src/k8s.io/client-go/tools/clientcmd/api:go_default_library", + "//staging/src/k8s.io/component-base/cli/flag:go_default_library", ], ) diff --git a/pkg/kubectl/cmd/config/create_authinfo.go b/pkg/kubectl/cmd/config/create_authinfo.go index 5ac80dfe74..475684b924 100644 --- a/pkg/kubectl/cmd/config/create_authinfo.go +++ b/pkg/kubectl/cmd/config/create_authinfo.go @@ -26,9 +26,9 @@ import ( "github.com/spf13/cobra" - "k8s.io/apiserver/pkg/util/flag" "k8s.io/client-go/tools/clientcmd" clientcmdapi "k8s.io/client-go/tools/clientcmd/api" + cliflag "k8s.io/component-base/cli/flag" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/util/i18n" "k8s.io/kubernetes/pkg/kubectl/util/templates" @@ -37,14 +37,14 @@ import ( type createAuthInfoOptions struct { configAccess clientcmd.ConfigAccess name string - authPath flag.StringFlag - clientCertificate flag.StringFlag - clientKey flag.StringFlag - token flag.StringFlag - username flag.StringFlag - password flag.StringFlag - embedCertData flag.Tristate - authProvider flag.StringFlag + authPath cliflag.StringFlag + clientCertificate cliflag.StringFlag + clientKey cliflag.StringFlag + token cliflag.StringFlag + username cliflag.StringFlag + password cliflag.StringFlag + embedCertData cliflag.Tristate + authProvider cliflag.StringFlag authProviderArgs map[string]string authProviderArgsToRemove []string diff --git a/pkg/kubectl/cmd/config/create_authinfo_test.go b/pkg/kubectl/cmd/config/create_authinfo_test.go index 2de35e72c5..7f7025b7bc 100644 --- a/pkg/kubectl/cmd/config/create_authinfo_test.go +++ b/pkg/kubectl/cmd/config/create_authinfo_test.go @@ -23,13 +23,13 @@ import ( "reflect" "testing" - "k8s.io/apiserver/pkg/util/flag" "k8s.io/client-go/tools/clientcmd" clientcmdapi "k8s.io/client-go/tools/clientcmd/api" + cliflag "k8s.io/component-base/cli/flag" ) -func stringFlagFor(s string) flag.StringFlag { - var f flag.StringFlag +func stringFlagFor(s string) cliflag.StringFlag { + var f cliflag.StringFlag f.Set(s) return f } diff --git a/pkg/kubectl/cmd/config/create_cluster.go b/pkg/kubectl/cmd/config/create_cluster.go index 81d0560a98..e2f084c22b 100644 --- a/pkg/kubectl/cmd/config/create_cluster.go +++ b/pkg/kubectl/cmd/config/create_cluster.go @@ -25,9 +25,9 @@ import ( "github.com/spf13/cobra" - "k8s.io/apiserver/pkg/util/flag" "k8s.io/client-go/tools/clientcmd" clientcmdapi "k8s.io/client-go/tools/clientcmd/api" + cliflag "k8s.io/component-base/cli/flag" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/util/i18n" "k8s.io/kubernetes/pkg/kubectl/util/templates" @@ -36,10 +36,10 @@ import ( type createClusterOptions struct { configAccess clientcmd.ConfigAccess name string - server flag.StringFlag - insecureSkipTLSVerify flag.Tristate - certificateAuthority flag.StringFlag - embedCAData flag.Tristate + server cliflag.StringFlag + insecureSkipTLSVerify cliflag.Tristate + certificateAuthority cliflag.StringFlag + embedCAData cliflag.Tristate } var ( diff --git a/pkg/kubectl/cmd/config/create_context.go b/pkg/kubectl/cmd/config/create_context.go index 59af1712e4..7453151d09 100644 --- a/pkg/kubectl/cmd/config/create_context.go +++ b/pkg/kubectl/cmd/config/create_context.go @@ -23,9 +23,9 @@ import ( "github.com/spf13/cobra" - "k8s.io/apiserver/pkg/util/flag" "k8s.io/client-go/tools/clientcmd" clientcmdapi "k8s.io/client-go/tools/clientcmd/api" + cliflag "k8s.io/component-base/cli/flag" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/util/i18n" "k8s.io/kubernetes/pkg/kubectl/util/templates" @@ -35,9 +35,9 @@ type createContextOptions struct { configAccess clientcmd.ConfigAccess name string currContext bool - cluster flag.StringFlag - authInfo flag.StringFlag - namespace flag.StringFlag + cluster cliflag.StringFlag + authInfo cliflag.StringFlag + namespace cliflag.StringFlag } var ( diff --git a/pkg/kubectl/cmd/config/set.go b/pkg/kubectl/cmd/config/set.go index 55c994136f..4a76a0f442 100644 --- a/pkg/kubectl/cmd/config/set.go +++ b/pkg/kubectl/cmd/config/set.go @@ -26,8 +26,8 @@ import ( "github.com/spf13/cobra" - "k8s.io/apiserver/pkg/util/flag" "k8s.io/client-go/tools/clientcmd" + cliflag "k8s.io/component-base/cli/flag" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/util/i18n" "k8s.io/kubernetes/pkg/kubectl/util/templates" @@ -37,7 +37,7 @@ type setOptions struct { configAccess clientcmd.ConfigAccess propertyName string propertyValue string - setRawBytes flag.Tristate + setRawBytes cliflag.Tristate } var ( diff --git a/pkg/kubectl/cmd/config/view.go b/pkg/kubectl/cmd/config/view.go index 4df1f9a282..a8b5ea2f32 100644 --- a/pkg/kubectl/cmd/config/view.go +++ b/pkg/kubectl/cmd/config/view.go @@ -21,12 +21,12 @@ import ( "github.com/spf13/cobra" - "k8s.io/apiserver/pkg/util/flag" "k8s.io/cli-runtime/pkg/genericclioptions" "k8s.io/cli-runtime/pkg/genericclioptions/printers" "k8s.io/client-go/tools/clientcmd" clientcmdapi "k8s.io/client-go/tools/clientcmd/api" "k8s.io/client-go/tools/clientcmd/api/latest" + cliflag "k8s.io/component-base/cli/flag" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/scheme" "k8s.io/kubernetes/pkg/kubectl/util/i18n" @@ -39,7 +39,7 @@ type ViewOptions struct { PrintObject printers.ResourcePrinterFunc ConfigAccess clientcmd.ConfigAccess - Merge flag.Tristate + Merge cliflag.Tristate Flatten bool Minify bool RawByteData bool diff --git a/pkg/kubectl/cmd/create/BUILD b/pkg/kubectl/cmd/create/BUILD index 49ce594021..faa5e38e2e 100644 --- a/pkg/kubectl/cmd/create/BUILD +++ b/pkg/kubectl/cmd/create/BUILD @@ -40,13 +40,13 @@ go_library( "//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library", - "//staging/src/k8s.io/apiserver/pkg/util/flag:go_default_library", "//staging/src/k8s.io/cli-runtime/pkg/genericclioptions:go_default_library", "//staging/src/k8s.io/cli-runtime/pkg/genericclioptions/printers:go_default_library", "//staging/src/k8s.io/cli-runtime/pkg/genericclioptions/resource:go_default_library", "//staging/src/k8s.io/client-go/dynamic:go_default_library", "//staging/src/k8s.io/client-go/kubernetes/typed/batch/v1:go_default_library", "//staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1:go_default_library", + "//staging/src/k8s.io/component-base/cli/flag:go_default_library", "//vendor/github.com/spf13/cobra:go_default_library", "//vendor/k8s.io/klog:go_default_library", ], diff --git a/pkg/kubectl/cmd/create/create_clusterrole.go b/pkg/kubectl/cmd/create/create_clusterrole.go index 276ae7f589..d22bc82f9e 100644 --- a/pkg/kubectl/cmd/create/create_clusterrole.go +++ b/pkg/kubectl/cmd/create/create_clusterrole.go @@ -24,8 +24,8 @@ import ( rbacv1 "k8s.io/api/rbac/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - utilflag "k8s.io/apiserver/pkg/util/flag" "k8s.io/cli-runtime/pkg/genericclioptions" + cliflag "k8s.io/component-base/cli/flag" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/util/i18n" "k8s.io/kubernetes/pkg/kubectl/util/templates" @@ -93,7 +93,7 @@ func NewCmdCreateClusterRole(f cmdutil.Factory, ioStreams genericclioptions.IOSt cmd.Flags().StringSliceVar(&c.NonResourceURLs, "non-resource-url", c.NonResourceURLs, "A partial url that user should have access to.") cmd.Flags().StringSlice("resource", []string{}, "Resource that the rule applies to") cmd.Flags().StringArrayVar(&c.ResourceNames, "resource-name", c.ResourceNames, "Resource in the white list that the rule applies to, repeat this flag for multiple items") - cmd.Flags().Var(utilflag.NewMapStringString(&c.AggregationRule), "aggregation-rule", "An aggregation label selector for combining ClusterRoles.") + cmd.Flags().Var(cliflag.NewMapStringString(&c.AggregationRule), "aggregation-rule", "An aggregation label selector for combining ClusterRoles.") return cmd } diff --git a/staging/src/BUILD b/staging/src/BUILD index 91436b7420..834cda541f 100644 --- a/staging/src/BUILD +++ b/staging/src/BUILD @@ -98,11 +98,10 @@ filegroup( "//staging/src/k8s.io/apiserver/pkg/storage:all-srcs", "//staging/src/k8s.io/apiserver/pkg/util/dryrun:all-srcs", "//staging/src/k8s.io/apiserver/pkg/util/feature:all-srcs", - "//staging/src/k8s.io/apiserver/pkg/util/flag:all-srcs", "//staging/src/k8s.io/apiserver/pkg/util/flushwriter:all-srcs", - "//staging/src/k8s.io/apiserver/pkg/util/globalflag:all-srcs", "//staging/src/k8s.io/apiserver/pkg/util/openapi:all-srcs", "//staging/src/k8s.io/apiserver/pkg/util/proxy:all-srcs", + "//staging/src/k8s.io/apiserver/pkg/util/term:all-srcs", "//staging/src/k8s.io/apiserver/pkg/util/webhook:all-srcs", "//staging/src/k8s.io/apiserver/pkg/util/wsstream:all-srcs", "//staging/src/k8s.io/apiserver/plugin/pkg/audit:all-srcs", @@ -202,6 +201,8 @@ filegroup( "//staging/src/k8s.io/code-generator/pkg/namer:all-srcs", "//staging/src/k8s.io/code-generator/pkg/util:all-srcs", "//staging/src/k8s.io/code-generator/third_party/forked/golang/reflect:all-srcs", + "//staging/src/k8s.io/component-base/cli/flag:all-srcs", + "//staging/src/k8s.io/component-base/cli/globalflag:all-srcs", "//staging/src/k8s.io/component-base/config:all-srcs", "//staging/src/k8s.io/component-base/logs:all-srcs", "//staging/src/k8s.io/csi-api/pkg/apis/csi/v1alpha1:all-srcs", diff --git a/staging/src/k8s.io/apiextensions-apiserver/Godeps/Godeps.json b/staging/src/k8s.io/apiextensions-apiserver/Godeps/Godeps.json index e443949422..b47316ffb1 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/Godeps/Godeps.json +++ b/staging/src/k8s.io/apiextensions-apiserver/Godeps/Godeps.json @@ -6,14 +6,6 @@ "./..." ], "Deps": [ - { - "ImportPath": "github.com/Azure/go-ansiterm", - "Rev": "d6e3b3328b783f23731bc4d058875b0371ff8109" - }, - { - "ImportPath": "github.com/Azure/go-ansiterm/winterm", - "Rev": "d6e3b3328b783f23731bc4d058875b0371ff8109" - }, { "ImportPath": "github.com/NYTimes/gziphandler", "Rev": "56545f4a5d46df9a6648819d1664c3a03a13ffdb" @@ -354,14 +346,6 @@ "ImportPath": "github.com/dgrijalva/jwt-go", "Rev": "01aeca54ebda6e0fbfafd0a524d234159c05ec20" }, - { - "ImportPath": "github.com/docker/docker/pkg/term", - "Rev": "a9fbbdc8dd8794b20af358382ab780559bca589d" - }, - { - "ImportPath": "github.com/docker/docker/pkg/term/windows", - "Rev": "a9fbbdc8dd8794b20af358382ab780559bca589d" - }, { "ImportPath": "github.com/emicklei/go-restful", "Rev": "ff4f55a206334ef123e4f79bbf348980da81ca46" @@ -1606,10 +1590,6 @@ "ImportPath": "k8s.io/apiserver/pkg/util/feature", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }, - { - "ImportPath": "k8s.io/apiserver/pkg/util/flag", - "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" - }, { "ImportPath": "k8s.io/apiserver/pkg/util/flushwriter", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" @@ -2230,6 +2210,10 @@ "ImportPath": "k8s.io/client-go/util/retry", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }, + { + "ImportPath": "k8s.io/component-base/cli/flag", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, { "ImportPath": "k8s.io/component-base/logs", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" diff --git a/staging/src/k8s.io/apiserver/Godeps/Godeps.json b/staging/src/k8s.io/apiserver/Godeps/Godeps.json index 7fe26df731..3465082ec2 100644 --- a/staging/src/k8s.io/apiserver/Godeps/Godeps.json +++ b/staging/src/k8s.io/apiserver/Godeps/Godeps.json @@ -2042,6 +2042,10 @@ "ImportPath": "k8s.io/client-go/util/flowcontrol", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }, + { + "ImportPath": "k8s.io/component-base/cli/flag", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, { "ImportPath": "k8s.io/component-base/logs", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" diff --git a/staging/src/k8s.io/apiserver/pkg/server/options/BUILD b/staging/src/k8s.io/apiserver/pkg/server/options/BUILD index f8859d1f22..98cb4b2934 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/options/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/server/options/BUILD @@ -62,7 +62,6 @@ go_library( "//staging/src/k8s.io/apiserver/pkg/storage/storagebackend:go_default_library", "//staging/src/k8s.io/apiserver/pkg/storage/storagebackend/factory:go_default_library", "//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library", - "//staging/src/k8s.io/apiserver/pkg/util/flag:go_default_library", "//staging/src/k8s.io/apiserver/pkg/util/webhook:go_default_library", "//staging/src/k8s.io/apiserver/plugin/pkg/audit/buffered:go_default_library", "//staging/src/k8s.io/apiserver/plugin/pkg/audit/dynamic:go_default_library", @@ -76,6 +75,7 @@ go_library( "//staging/src/k8s.io/client-go/rest:go_default_library", "//staging/src/k8s.io/client-go/tools/clientcmd:go_default_library", "//staging/src/k8s.io/client-go/util/cert:go_default_library", + "//staging/src/k8s.io/component-base/cli/flag:go_default_library", "//vendor/github.com/pborman/uuid:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", "//vendor/gopkg.in/natefinch/lumberjack.v2:go_default_library", @@ -113,12 +113,12 @@ go_test( "//staging/src/k8s.io/apiserver/pkg/storage/storagebackend:go_default_library", "//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library", "//staging/src/k8s.io/apiserver/pkg/util/feature/testing:go_default_library", - "//staging/src/k8s.io/apiserver/pkg/util/flag:go_default_library", "//staging/src/k8s.io/client-go/discovery:go_default_library", "//staging/src/k8s.io/client-go/informers:go_default_library", "//staging/src/k8s.io/client-go/kubernetes/fake:go_default_library", "//staging/src/k8s.io/client-go/rest:go_default_library", "//staging/src/k8s.io/client-go/tools/clientcmd/api/v1:go_default_library", + "//staging/src/k8s.io/component-base/cli/flag:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", "//vendor/github.com/stretchr/testify/assert:go_default_library", "//vendor/github.com/stretchr/testify/require:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/server/options/api_enablement.go b/staging/src/k8s.io/apiserver/pkg/server/options/api_enablement.go index 71eda2981a..686be5aba9 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/options/api_enablement.go +++ b/staging/src/k8s.io/apiserver/pkg/server/options/api_enablement.go @@ -25,18 +25,18 @@ import ( "k8s.io/apiserver/pkg/server" "k8s.io/apiserver/pkg/server/resourceconfig" serverstore "k8s.io/apiserver/pkg/server/storage" - utilflag "k8s.io/apiserver/pkg/util/flag" + cliflag "k8s.io/component-base/cli/flag" ) // APIEnablementOptions contains the options for which resources to turn on and off. // Given small aggregated API servers, this option isn't required for "normal" API servers type APIEnablementOptions struct { - RuntimeConfig utilflag.ConfigurationMap + RuntimeConfig cliflag.ConfigurationMap } func NewAPIEnablementOptions() *APIEnablementOptions { return &APIEnablementOptions{ - RuntimeConfig: make(utilflag.ConfigurationMap), + RuntimeConfig: make(cliflag.ConfigurationMap), } } diff --git a/staging/src/k8s.io/apiserver/pkg/server/options/api_enablement_test.go b/staging/src/k8s.io/apiserver/pkg/server/options/api_enablement_test.go index e08fcd2a1f..fb146bf28b 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/options/api_enablement_test.go +++ b/staging/src/k8s.io/apiserver/pkg/server/options/api_enablement_test.go @@ -21,7 +21,7 @@ import ( "testing" utilerrors "k8s.io/apimachinery/pkg/util/errors" - utilflag "k8s.io/apiserver/pkg/util/flag" + cliflag "k8s.io/component-base/cli/flag" ) type fakeGroupRegisty struct{} @@ -42,28 +42,28 @@ func TestAPIEnablementOptionsValidate(t *testing.T) { { name: "test when invalid key with only api/all=false", testOptions: &APIEnablementOptions{ - RuntimeConfig: utilflag.ConfigurationMap{"api/all": "false"}, + RuntimeConfig: cliflag.ConfigurationMap{"api/all": "false"}, }, expectErr: "invalid key with only api/all=false", }, { name: "test when ConfigurationMap key is invalid", testOptions: &APIEnablementOptions{ - RuntimeConfig: utilflag.ConfigurationMap{"apiall": "false"}, + RuntimeConfig: cliflag.ConfigurationMap{"apiall": "false"}, }, expectErr: "runtime-config invalid key", }, { name: "test when unknown api groups", testOptions: &APIEnablementOptions{ - RuntimeConfig: utilflag.ConfigurationMap{"api/v1": "true"}, + RuntimeConfig: cliflag.ConfigurationMap{"api/v1": "true"}, }, expectErr: "unknown api groups", }, { name: "test when valid api groups", testOptions: &APIEnablementOptions{ - RuntimeConfig: utilflag.ConfigurationMap{"apiregistration.k8s.io/v1beta1": "true"}, + RuntimeConfig: cliflag.ConfigurationMap{"apiregistration.k8s.io/v1beta1": "true"}, }, }, } diff --git a/staging/src/k8s.io/apiserver/pkg/server/options/serving.go b/staging/src/k8s.io/apiserver/pkg/server/options/serving.go index 939e05741d..605bf1a6d2 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/options/serving.go +++ b/staging/src/k8s.io/apiserver/pkg/server/options/serving.go @@ -29,8 +29,8 @@ import ( utilnet "k8s.io/apimachinery/pkg/util/net" "k8s.io/apiserver/pkg/server" - utilflag "k8s.io/apiserver/pkg/util/flag" certutil "k8s.io/client-go/util/cert" + cliflag "k8s.io/component-base/cli/flag" ) type SecureServingOptions struct { @@ -54,7 +54,7 @@ type SecureServingOptions struct { // ServerCert is the TLS cert info for serving secure traffic ServerCert GeneratableKeyCert // SNICertKeys are named CertKeys for serving secure traffic with SNI support. - SNICertKeys []utilflag.NamedCertKey + SNICertKeys []cliflag.NamedCertKey // CipherSuites is the list of allowed cipher suites for the server. // Values are from tls package constants (https://golang.org/pkg/crypto/tls/#pkg-constants). CipherSuites []string @@ -165,18 +165,18 @@ func (s *SecureServingOptions) AddFlags(fs *pflag.FlagSet) { fs.StringVar(&s.ServerCert.CertKey.KeyFile, "tls-private-key-file", s.ServerCert.CertKey.KeyFile, "File containing the default x509 private key matching --tls-cert-file.") - tlsCipherPossibleValues := utilflag.TLSCipherPossibleValues() + tlsCipherPossibleValues := cliflag.TLSCipherPossibleValues() fs.StringSliceVar(&s.CipherSuites, "tls-cipher-suites", s.CipherSuites, "Comma-separated list of cipher suites for the server. "+ "If omitted, the default Go cipher suites will be use. "+ "Possible values: "+strings.Join(tlsCipherPossibleValues, ",")) - tlsPossibleVersions := utilflag.TLSPossibleVersions() + tlsPossibleVersions := cliflag.TLSPossibleVersions() fs.StringVar(&s.MinTLSVersion, "tls-min-version", s.MinTLSVersion, "Minimum TLS version supported. "+ "Possible values: "+strings.Join(tlsPossibleVersions, ", ")) - fs.Var(utilflag.NewNamedCertKeyArray(&s.SNICertKeys), "tls-sni-cert-key", ""+ + fs.Var(cliflag.NewNamedCertKeyArray(&s.SNICertKeys), "tls-sni-cert-key", ""+ "A pair of x509 certificate and private key file paths, optionally suffixed with a list of "+ "domain patterns which are fully qualified domain names, possibly with prefixed wildcard "+ "segments. If no domain patterns are provided, the names of the certificate are "+ @@ -234,7 +234,7 @@ func (s *SecureServingOptions) ApplyTo(config **server.SecureServingInfo) error } if len(s.CipherSuites) != 0 { - cipherSuites, err := utilflag.TLSCipherSuites(s.CipherSuites) + cipherSuites, err := cliflag.TLSCipherSuites(s.CipherSuites) if err != nil { return err } @@ -242,7 +242,7 @@ func (s *SecureServingOptions) ApplyTo(config **server.SecureServingInfo) error } var err error - c.MinTLSVersion, err = utilflag.TLSVersion(s.MinTLSVersion) + c.MinTLSVersion, err = cliflag.TLSVersion(s.MinTLSVersion) if err != nil { return err } diff --git a/staging/src/k8s.io/apiserver/pkg/server/options/serving_test.go b/staging/src/k8s.io/apiserver/pkg/server/options/serving_test.go index 73375bb70c..1d6cecfe31 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/options/serving_test.go +++ b/staging/src/k8s.io/apiserver/pkg/server/options/serving_test.go @@ -44,9 +44,9 @@ import ( "k8s.io/apimachinery/pkg/version" "k8s.io/apiserver/pkg/server" . "k8s.io/apiserver/pkg/server" - utilflag "k8s.io/apiserver/pkg/util/flag" "k8s.io/client-go/discovery" restclient "k8s.io/client-go/rest" + cliflag "k8s.io/component-base/cli/flag" ) func setUp(t *testing.T) Config { @@ -417,7 +417,7 @@ func TestServerRunWithSNI(t *testing.T) { caCerts := []*x509.Certificate{ca} // create SNI certs - var namedCertKeys []utilflag.NamedCertKey + var namedCertKeys []cliflag.NamedCertKey serverSig, err := certFileSignature(serverCertBundleFile, serverKeyFile) if err != nil { t.Fatalf("failed to get server cert signature: %v", err) @@ -434,7 +434,7 @@ func TestServerRunWithSNI(t *testing.T) { t.Fatalf("failed to create SNI cert %d: %v", j, err) } - namedCertKeys = append(namedCertKeys, utilflag.NamedCertKey{ + namedCertKeys = append(namedCertKeys, cliflag.NamedCertKey{ KeyFile: keyFile, CertFile: certBundleFile, Names: c.explicitNames, diff --git a/staging/src/k8s.io/apiserver/pkg/server/resourceconfig/BUILD b/staging/src/k8s.io/apiserver/pkg/server/resourceconfig/BUILD index c971b6f07a..6c9b97f092 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/resourceconfig/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/server/resourceconfig/BUILD @@ -13,7 +13,7 @@ go_library( "//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//staging/src/k8s.io/apiserver/pkg/server/storage:go_default_library", - "//staging/src/k8s.io/apiserver/pkg/util/flag:go_default_library", + "//staging/src/k8s.io/component-base/cli/flag:go_default_library", "//vendor/k8s.io/klog:go_default_library", ], ) diff --git a/staging/src/k8s.io/apiserver/pkg/server/resourceconfig/helpers.go b/staging/src/k8s.io/apiserver/pkg/server/resourceconfig/helpers.go index fa5fcc7686..09047cfe97 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/resourceconfig/helpers.go +++ b/staging/src/k8s.io/apiserver/pkg/server/resourceconfig/helpers.go @@ -24,7 +24,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" serverstore "k8s.io/apiserver/pkg/server/storage" - utilflag "k8s.io/apiserver/pkg/util/flag" + cliflag "k8s.io/component-base/cli/flag" "k8s.io/klog" ) @@ -56,7 +56,7 @@ func MergeResourceEncodingConfigs( // not registered in group, then it will fail. func MergeAPIResourceConfigs( defaultAPIResourceConfig *serverstore.ResourceConfig, - resourceConfigOverrides utilflag.ConfigurationMap, + resourceConfigOverrides cliflag.ConfigurationMap, registry GroupVersionRegistry, ) (*serverstore.ResourceConfig, error) { resourceConfig := defaultAPIResourceConfig @@ -134,7 +134,7 @@ func MergeAPIResourceConfigs( return resourceConfig, nil } -func getRuntimeConfigValue(overrides utilflag.ConfigurationMap, apiKey string, defaultValue bool) (bool, error) { +func getRuntimeConfigValue(overrides cliflag.ConfigurationMap, apiKey string, defaultValue bool) (bool, error) { flagValue, ok := overrides[apiKey] if ok { if flagValue == "" { @@ -150,7 +150,7 @@ func getRuntimeConfigValue(overrides utilflag.ConfigurationMap, apiKey string, d } // ParseGroups takes in resourceConfig and returns parsed groups. -func ParseGroups(resourceConfig utilflag.ConfigurationMap) ([]string, error) { +func ParseGroups(resourceConfig cliflag.ConfigurationMap) ([]string, error) { groups := []string{} for key := range resourceConfig { if key == "api/all" { diff --git a/staging/src/k8s.io/apiserver/pkg/util/term/BUILD b/staging/src/k8s.io/apiserver/pkg/util/term/BUILD new file mode 100644 index 0000000000..346cff3e31 --- /dev/null +++ b/staging/src/k8s.io/apiserver/pkg/util/term/BUILD @@ -0,0 +1,24 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["term.go"], + importmap = "k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/util/term", + importpath = "k8s.io/apiserver/pkg/util/term", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/docker/docker/pkg/term:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/staging/src/k8s.io/apiserver/pkg/util/term/term.go b/staging/src/k8s.io/apiserver/pkg/util/term/term.go new file mode 100644 index 0000000000..123985bbf6 --- /dev/null +++ b/staging/src/k8s.io/apiserver/pkg/util/term/term.go @@ -0,0 +1,39 @@ +/* +Copyright 2019 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package term + +import ( + "fmt" + "io" + + "github.com/docker/docker/pkg/term" +) + +// TerminalSize returns the current width and height of the user's terminal. If it isn't a terminal, +// nil is returned. On error, zero values are returned for width and height. +// Usually w must be the stdout of the process. Stderr won't work. +func TerminalSize(w io.Writer) (int, int, error) { + outFd, isTerminal := term.GetFdInfo(w) + if !isTerminal { + return 0, 0, fmt.Errorf("given writer is no terminal") + } + winsize, err := term.GetWinsize(outFd) + if err != nil { + return 0, 0, err + } + return int(winsize.Width), int(winsize.Height), nil +} diff --git a/staging/src/k8s.io/apiserver/pkg/util/flag/BUILD b/staging/src/k8s.io/component-base/cli/flag/BUILD similarity index 88% rename from staging/src/k8s.io/apiserver/pkg/util/flag/BUILD rename to staging/src/k8s.io/component-base/cli/flag/BUILD index 7841681a86..8a09eea762 100644 --- a/staging/src/k8s.io/apiserver/pkg/util/flag/BUILD +++ b/staging/src/k8s.io/component-base/cli/flag/BUILD @@ -37,11 +37,10 @@ go_library( "string_flag.go", "tristate.go", ], - importmap = "k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/util/flag", - importpath = "k8s.io/apiserver/pkg/util/flag", + importmap = "k8s.io/kubernetes/vendor/k8s.io/component-base/cli/flag", + importpath = "k8s.io/component-base/cli/flag", deps = [ "//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library", - "//vendor/github.com/docker/docker/pkg/term:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", "//vendor/k8s.io/klog:go_default_library", ], diff --git a/staging/src/k8s.io/apiserver/pkg/util/flag/ciphersuites_flag.go b/staging/src/k8s.io/component-base/cli/flag/ciphersuites_flag.go similarity index 100% rename from staging/src/k8s.io/apiserver/pkg/util/flag/ciphersuites_flag.go rename to staging/src/k8s.io/component-base/cli/flag/ciphersuites_flag.go diff --git a/staging/src/k8s.io/apiserver/pkg/util/flag/ciphersuites_flag_test.go b/staging/src/k8s.io/component-base/cli/flag/ciphersuites_flag_test.go similarity index 100% rename from staging/src/k8s.io/apiserver/pkg/util/flag/ciphersuites_flag_test.go rename to staging/src/k8s.io/component-base/cli/flag/ciphersuites_flag_test.go diff --git a/staging/src/k8s.io/apiserver/pkg/util/flag/colon_separated_multimap_string_string.go b/staging/src/k8s.io/component-base/cli/flag/colon_separated_multimap_string_string.go similarity index 100% rename from staging/src/k8s.io/apiserver/pkg/util/flag/colon_separated_multimap_string_string.go rename to staging/src/k8s.io/component-base/cli/flag/colon_separated_multimap_string_string.go diff --git a/staging/src/k8s.io/apiserver/pkg/util/flag/colon_separated_multimap_string_string_test.go b/staging/src/k8s.io/component-base/cli/flag/colon_separated_multimap_string_string_test.go similarity index 100% rename from staging/src/k8s.io/apiserver/pkg/util/flag/colon_separated_multimap_string_string_test.go rename to staging/src/k8s.io/component-base/cli/flag/colon_separated_multimap_string_string_test.go diff --git a/staging/src/k8s.io/apiserver/pkg/util/flag/configuration_map.go b/staging/src/k8s.io/component-base/cli/flag/configuration_map.go similarity index 100% rename from staging/src/k8s.io/apiserver/pkg/util/flag/configuration_map.go rename to staging/src/k8s.io/component-base/cli/flag/configuration_map.go diff --git a/staging/src/k8s.io/apiserver/pkg/util/flag/flags.go b/staging/src/k8s.io/component-base/cli/flag/flags.go similarity index 100% rename from staging/src/k8s.io/apiserver/pkg/util/flag/flags.go rename to staging/src/k8s.io/component-base/cli/flag/flags.go diff --git a/staging/src/k8s.io/apiserver/pkg/util/flag/langle_separated_map_string_string.go b/staging/src/k8s.io/component-base/cli/flag/langle_separated_map_string_string.go similarity index 100% rename from staging/src/k8s.io/apiserver/pkg/util/flag/langle_separated_map_string_string.go rename to staging/src/k8s.io/component-base/cli/flag/langle_separated_map_string_string.go diff --git a/staging/src/k8s.io/apiserver/pkg/util/flag/langle_separated_map_string_string_test.go b/staging/src/k8s.io/component-base/cli/flag/langle_separated_map_string_string_test.go similarity index 100% rename from staging/src/k8s.io/apiserver/pkg/util/flag/langle_separated_map_string_string_test.go rename to staging/src/k8s.io/component-base/cli/flag/langle_separated_map_string_string_test.go diff --git a/staging/src/k8s.io/apiserver/pkg/util/flag/map_string_bool.go b/staging/src/k8s.io/component-base/cli/flag/map_string_bool.go similarity index 100% rename from staging/src/k8s.io/apiserver/pkg/util/flag/map_string_bool.go rename to staging/src/k8s.io/component-base/cli/flag/map_string_bool.go diff --git a/staging/src/k8s.io/apiserver/pkg/util/flag/map_string_bool_test.go b/staging/src/k8s.io/component-base/cli/flag/map_string_bool_test.go similarity index 100% rename from staging/src/k8s.io/apiserver/pkg/util/flag/map_string_bool_test.go rename to staging/src/k8s.io/component-base/cli/flag/map_string_bool_test.go diff --git a/staging/src/k8s.io/apiserver/pkg/util/flag/map_string_string.go b/staging/src/k8s.io/component-base/cli/flag/map_string_string.go similarity index 100% rename from staging/src/k8s.io/apiserver/pkg/util/flag/map_string_string.go rename to staging/src/k8s.io/component-base/cli/flag/map_string_string.go diff --git a/staging/src/k8s.io/apiserver/pkg/util/flag/map_string_string_test.go b/staging/src/k8s.io/component-base/cli/flag/map_string_string_test.go similarity index 100% rename from staging/src/k8s.io/apiserver/pkg/util/flag/map_string_string_test.go rename to staging/src/k8s.io/component-base/cli/flag/map_string_string_test.go diff --git a/staging/src/k8s.io/apiserver/pkg/util/flag/namedcertkey_flag.go b/staging/src/k8s.io/component-base/cli/flag/namedcertkey_flag.go similarity index 100% rename from staging/src/k8s.io/apiserver/pkg/util/flag/namedcertkey_flag.go rename to staging/src/k8s.io/component-base/cli/flag/namedcertkey_flag.go diff --git a/staging/src/k8s.io/apiserver/pkg/util/flag/namedcertkey_flag_test.go b/staging/src/k8s.io/component-base/cli/flag/namedcertkey_flag_test.go similarity index 100% rename from staging/src/k8s.io/apiserver/pkg/util/flag/namedcertkey_flag_test.go rename to staging/src/k8s.io/component-base/cli/flag/namedcertkey_flag_test.go diff --git a/staging/src/k8s.io/apiserver/pkg/util/flag/noop.go b/staging/src/k8s.io/component-base/cli/flag/noop.go similarity index 100% rename from staging/src/k8s.io/apiserver/pkg/util/flag/noop.go rename to staging/src/k8s.io/component-base/cli/flag/noop.go diff --git a/staging/src/k8s.io/apiserver/pkg/util/flag/omitempty.go b/staging/src/k8s.io/component-base/cli/flag/omitempty.go similarity index 100% rename from staging/src/k8s.io/apiserver/pkg/util/flag/omitempty.go rename to staging/src/k8s.io/component-base/cli/flag/omitempty.go diff --git a/staging/src/k8s.io/apiserver/pkg/util/flag/sectioned.go b/staging/src/k8s.io/component-base/cli/flag/sectioned.go similarity index 79% rename from staging/src/k8s.io/apiserver/pkg/util/flag/sectioned.go rename to staging/src/k8s.io/component-base/cli/flag/sectioned.go index 52275aa6f3..493a6c0f0f 100644 --- a/staging/src/k8s.io/apiserver/pkg/util/flag/sectioned.go +++ b/staging/src/k8s.io/component-base/cli/flag/sectioned.go @@ -22,7 +22,6 @@ import ( "io" "strings" - "github.com/docker/docker/pkg/term" "github.com/spf13/pflag" ) @@ -78,18 +77,3 @@ func PrintSections(w io.Writer, fss NamedFlagSets, cols int) { } } } - -// TerminalSize returns the current width and height of the user's terminal. If it isn't a terminal, -// nil is returned. On error, zero values are returned for width and height. -// Usually w must be the stdout of the process. Stderr won't work. -func TerminalSize(w io.Writer) (int, int, error) { - outFd, isTerminal := term.GetFdInfo(w) - if !isTerminal { - return 0, 0, fmt.Errorf("given writer is no terminal") - } - winsize, err := term.GetWinsize(outFd) - if err != nil { - return 0, 0, err - } - return int(winsize.Width), int(winsize.Height), nil -} diff --git a/staging/src/k8s.io/apiserver/pkg/util/flag/string_flag.go b/staging/src/k8s.io/component-base/cli/flag/string_flag.go similarity index 100% rename from staging/src/k8s.io/apiserver/pkg/util/flag/string_flag.go rename to staging/src/k8s.io/component-base/cli/flag/string_flag.go diff --git a/staging/src/k8s.io/apiserver/pkg/util/flag/tristate.go b/staging/src/k8s.io/component-base/cli/flag/tristate.go similarity index 100% rename from staging/src/k8s.io/apiserver/pkg/util/flag/tristate.go rename to staging/src/k8s.io/component-base/cli/flag/tristate.go diff --git a/staging/src/k8s.io/apiserver/pkg/util/globalflag/BUILD b/staging/src/k8s.io/component-base/cli/globalflag/BUILD similarity index 80% rename from staging/src/k8s.io/apiserver/pkg/util/globalflag/BUILD rename to staging/src/k8s.io/component-base/cli/globalflag/BUILD index 7b8b694d5e..1026eb654c 100644 --- a/staging/src/k8s.io/apiserver/pkg/util/globalflag/BUILD +++ b/staging/src/k8s.io/component-base/cli/globalflag/BUILD @@ -3,8 +3,8 @@ load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") go_library( name = "go_default_library", srcs = ["globalflags.go"], - importmap = "k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/util/globalflag", - importpath = "k8s.io/apiserver/pkg/util/globalflag", + importmap = "k8s.io/kubernetes/vendor/k8s.io/component-base/cli/globalflag", + importpath = "k8s.io/component-base/cli/globalflag", visibility = ["//visibility:public"], deps = [ "//staging/src/k8s.io/component-base/logs:go_default_library", @@ -17,7 +17,7 @@ go_test( srcs = ["globalflags_test.go"], embed = [":go_default_library"], deps = [ - "//staging/src/k8s.io/apiserver/pkg/util/flag:go_default_library", + "//staging/src/k8s.io/component-base/cli/flag:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", ], ) diff --git a/staging/src/k8s.io/apiserver/pkg/util/globalflag/globalflags.go b/staging/src/k8s.io/component-base/cli/globalflag/globalflags.go similarity index 100% rename from staging/src/k8s.io/apiserver/pkg/util/globalflag/globalflags.go rename to staging/src/k8s.io/component-base/cli/globalflag/globalflags.go diff --git a/staging/src/k8s.io/apiserver/pkg/util/globalflag/globalflags_test.go b/staging/src/k8s.io/component-base/cli/globalflag/globalflags_test.go similarity index 95% rename from staging/src/k8s.io/apiserver/pkg/util/globalflag/globalflags_test.go rename to staging/src/k8s.io/component-base/cli/globalflag/globalflags_test.go index 16475154ab..c3ee85304e 100644 --- a/staging/src/k8s.io/apiserver/pkg/util/globalflag/globalflags_test.go +++ b/staging/src/k8s.io/component-base/cli/globalflag/globalflags_test.go @@ -25,11 +25,11 @@ import ( "github.com/spf13/pflag" - apiserverflag "k8s.io/apiserver/pkg/util/flag" + cliflag "k8s.io/component-base/cli/flag" ) func TestAddGlobalFlags(t *testing.T) { - namedFlagSets := &apiserverflag.NamedFlagSets{} + namedFlagSets := &cliflag.NamedFlagSets{} nfs := namedFlagSets.FlagSet("global") AddGlobalFlags(nfs, "test-cmd") diff --git a/staging/src/k8s.io/kube-aggregator/Godeps/Godeps.json b/staging/src/k8s.io/kube-aggregator/Godeps/Godeps.json index 995a3935f5..26819c2fab 100644 --- a/staging/src/k8s.io/kube-aggregator/Godeps/Godeps.json +++ b/staging/src/k8s.io/kube-aggregator/Godeps/Godeps.json @@ -6,14 +6,6 @@ "./..." ], "Deps": [ - { - "ImportPath": "github.com/Azure/go-ansiterm", - "Rev": "d6e3b3328b783f23731bc4d058875b0371ff8109" - }, - { - "ImportPath": "github.com/Azure/go-ansiterm/winterm", - "Rev": "d6e3b3328b783f23731bc4d058875b0371ff8109" - }, { "ImportPath": "github.com/NYTimes/gziphandler", "Rev": "56545f4a5d46df9a6648819d1664c3a03a13ffdb" @@ -70,14 +62,6 @@ "ImportPath": "github.com/davecgh/go-spew/spew", "Rev": "782f4967f2dc4564575ca782fe2d04090b5faca8" }, - { - "ImportPath": "github.com/docker/docker/pkg/term", - "Rev": "a9fbbdc8dd8794b20af358382ab780559bca589d" - }, - { - "ImportPath": "github.com/docker/docker/pkg/term/windows", - "Rev": "a9fbbdc8dd8794b20af358382ab780559bca589d" - }, { "ImportPath": "github.com/docker/spdystream", "Rev": "449fdfce4d962303d702fec724ef0ad181c92528" @@ -266,10 +250,6 @@ "ImportPath": "github.com/prometheus/procfs/xfs", "Rev": "65c1f6f8f0fc1e2185eb9863a3bc751496404259" }, - { - "ImportPath": "github.com/sirupsen/logrus", - "Rev": "89742aefa4b206dcf400792f3bd35b542998eb3b" - }, { "ImportPath": "github.com/spf13/cobra", "Rev": "c439c4fa093711d42e1b01acb1235b52004753c1" @@ -1190,10 +1170,6 @@ "ImportPath": "k8s.io/apiserver/pkg/util/feature", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }, - { - "ImportPath": "k8s.io/apiserver/pkg/util/flag", - "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" - }, { "ImportPath": "k8s.io/apiserver/pkg/util/flushwriter", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" @@ -1790,6 +1766,10 @@ "ImportPath": "k8s.io/client-go/util/workqueue", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }, + { + "ImportPath": "k8s.io/component-base/cli/flag", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, { "ImportPath": "k8s.io/component-base/logs", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" diff --git a/staging/src/k8s.io/sample-apiserver/Godeps/Godeps.json b/staging/src/k8s.io/sample-apiserver/Godeps/Godeps.json index 4d13ca4015..81021ee679 100644 --- a/staging/src/k8s.io/sample-apiserver/Godeps/Godeps.json +++ b/staging/src/k8s.io/sample-apiserver/Godeps/Godeps.json @@ -6,14 +6,6 @@ "./..." ], "Deps": [ - { - "ImportPath": "github.com/Azure/go-ansiterm", - "Rev": "d6e3b3328b783f23731bc4d058875b0371ff8109" - }, - { - "ImportPath": "github.com/Azure/go-ansiterm/winterm", - "Rev": "d6e3b3328b783f23731bc4d058875b0371ff8109" - }, { "ImportPath": "github.com/NYTimes/gziphandler", "Rev": "56545f4a5d46df9a6648819d1664c3a03a13ffdb" @@ -70,14 +62,6 @@ "ImportPath": "github.com/davecgh/go-spew/spew", "Rev": "782f4967f2dc4564575ca782fe2d04090b5faca8" }, - { - "ImportPath": "github.com/docker/docker/pkg/term", - "Rev": "a9fbbdc8dd8794b20af358382ab780559bca589d" - }, - { - "ImportPath": "github.com/docker/docker/pkg/term/windows", - "Rev": "a9fbbdc8dd8794b20af358382ab780559bca589d" - }, { "ImportPath": "github.com/emicklei/go-restful", "Rev": "ff4f55a206334ef123e4f79bbf348980da81ca46" @@ -250,10 +234,6 @@ "ImportPath": "github.com/prometheus/procfs/xfs", "Rev": "65c1f6f8f0fc1e2185eb9863a3bc751496404259" }, - { - "ImportPath": "github.com/sirupsen/logrus", - "Rev": "89742aefa4b206dcf400792f3bd35b542998eb3b" - }, { "ImportPath": "github.com/spf13/cobra", "Rev": "c439c4fa093711d42e1b01acb1235b52004753c1" @@ -1154,10 +1134,6 @@ "ImportPath": "k8s.io/apiserver/pkg/util/feature", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }, - { - "ImportPath": "k8s.io/apiserver/pkg/util/flag", - "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" - }, { "ImportPath": "k8s.io/apiserver/pkg/util/flushwriter", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" @@ -1746,6 +1722,10 @@ "ImportPath": "k8s.io/client-go/util/retry", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }, + { + "ImportPath": "k8s.io/component-base/cli/flag", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, { "ImportPath": "k8s.io/component-base/logs", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" diff --git a/test/e2e/framework/BUILD b/test/e2e/framework/BUILD index d2647d19d9..aad01bab4f 100644 --- a/test/e2e/framework/BUILD +++ b/test/e2e/framework/BUILD @@ -108,7 +108,6 @@ go_library( "//staging/src/k8s.io/apimachinery/pkg/watch:go_default_library", "//staging/src/k8s.io/apiserver/pkg/authentication/serviceaccount:go_default_library", "//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library", - "//staging/src/k8s.io/apiserver/pkg/util/flag:go_default_library", "//staging/src/k8s.io/client-go/discovery:go_default_library", "//staging/src/k8s.io/client-go/discovery/cached/memory:go_default_library", "//staging/src/k8s.io/client-go/dynamic:go_default_library", @@ -126,6 +125,7 @@ go_library( "//staging/src/k8s.io/client-go/tools/remotecommand:go_default_library", "//staging/src/k8s.io/client-go/tools/watch:go_default_library", "//staging/src/k8s.io/client-go/util/retry:go_default_library", + "//staging/src/k8s.io/component-base/cli/flag:go_default_library", "//staging/src/k8s.io/csi-api/pkg/client/clientset/versioned:go_default_library", "//staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset:go_default_library", "//staging/src/k8s.io/node-api/pkg/client/clientset/versioned:go_default_library", diff --git a/test/e2e/framework/test_context.go b/test/e2e/framework/test_context.go index 900ed01143..f2cbb30d16 100644 --- a/test/e2e/framework/test_context.go +++ b/test/e2e/framework/test_context.go @@ -27,10 +27,10 @@ import ( "github.com/onsi/ginkgo/config" "github.com/pkg/errors" - utilflag "k8s.io/apiserver/pkg/util/flag" restclient "k8s.io/client-go/rest" "k8s.io/client-go/tools/clientcmd" clientcmdapi "k8s.io/client-go/tools/clientcmd/api" + cliflag "k8s.io/component-base/cli/flag" "k8s.io/klog" kubeletconfig "k8s.io/kubernetes/pkg/kubelet/apis/config" ) @@ -247,7 +247,7 @@ func RegisterCommonFlags() { flag.StringVar(&TestContext.Host, "host", "", fmt.Sprintf("The host, or apiserver, to connect to. Will default to %s if this argument and --kubeconfig are not set", defaultHost)) flag.StringVar(&TestContext.ReportPrefix, "report-prefix", "", "Optional prefix for JUnit XML reports. Default is empty, which doesn't prepend anything to the default name.") flag.StringVar(&TestContext.ReportDir, "report-dir", "", "Path to the directory where the JUnit XML reports should be saved. Default is empty, which doesn't generate these reports.") - flag.Var(utilflag.NewMapStringBool(&TestContext.FeatureGates), "feature-gates", "A set of key=value pairs that describe feature gates for alpha/experimental features.") + flag.Var(cliflag.NewMapStringBool(&TestContext.FeatureGates), "feature-gates", "A set of key=value pairs that describe feature gates for alpha/experimental features.") flag.StringVar(&TestContext.ContainerRuntime, "container-runtime", "docker", "The container runtime of cluster VM instances (docker/remote).") flag.StringVar(&TestContext.ContainerRuntimeEndpoint, "container-runtime-endpoint", "unix:///var/run/dockershim.sock", "The container runtime endpoint of cluster VM instances.") flag.StringVar(&TestContext.ContainerRuntimeProcessName, "container-runtime-process-name", "dockerd", "The name of the container runtime process.") diff --git a/test/e2e_node/services/BUILD b/test/e2e_node/services/BUILD index 5eb7899fde..967ea7a2bd 100644 --- a/test/e2e_node/services/BUILD +++ b/test/e2e_node/services/BUILD @@ -31,11 +31,11 @@ go_library( "//staging/src/k8s.io/apiserver/pkg/storage/etcd/testing:go_default_library", "//staging/src/k8s.io/apiserver/pkg/storage/storagebackend:go_default_library", "//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library", - "//staging/src/k8s.io/apiserver/pkg/util/flag:go_default_library", "//staging/src/k8s.io/client-go/dynamic:go_default_library", "//staging/src/k8s.io/client-go/informers:go_default_library", "//staging/src/k8s.io/client-go/kubernetes:go_default_library", "//staging/src/k8s.io/client-go/rest:go_default_library", + "//staging/src/k8s.io/component-base/cli/flag:go_default_library", "//staging/src/k8s.io/kubelet/config/v1beta1:go_default_library", "//test/e2e/framework:go_default_library", "//test/e2e_node/builder:go_default_library", diff --git a/test/e2e_node/services/kubelet.go b/test/e2e_node/services/kubelet.go index 71487e753d..82844cd133 100644 --- a/test/e2e_node/services/kubelet.go +++ b/test/e2e_node/services/kubelet.go @@ -31,7 +31,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" utilfeature "k8s.io/apiserver/pkg/util/feature" - utilflag "k8s.io/apiserver/pkg/util/flag" + cliflag "k8s.io/component-base/cli/flag" kubeletconfigv1beta1 "k8s.io/kubelet/config/v1beta1" "k8s.io/kubernetes/cmd/kubelet/app/options" "k8s.io/kubernetes/pkg/features" @@ -263,7 +263,7 @@ func (e *E2EServices) startKubelet() (*server, error) { // Apply test framework feature gates by default. This could also be overridden // by kubelet-flags. if len(framework.TestContext.FeatureGates) > 0 { - cmdArgs = append(cmdArgs, "--feature-gates", utilflag.NewMapStringBool(&framework.TestContext.FeatureGates).String()) + cmdArgs = append(cmdArgs, "--feature-gates", cliflag.NewMapStringBool(&framework.TestContext.FeatureGates).String()) kc.FeatureGates = framework.TestContext.FeatureGates } diff --git a/test/images/no-snat-test-proxy/BUILD b/test/images/no-snat-test-proxy/BUILD index d44716ab4f..4e27ee6cbb 100644 --- a/test/images/no-snat-test-proxy/BUILD +++ b/test/images/no-snat-test-proxy/BUILD @@ -16,7 +16,7 @@ go_library( srcs = ["main.go"], importpath = "k8s.io/kubernetes/test/images/no-snat-test-proxy", deps = [ - "//staging/src/k8s.io/apiserver/pkg/util/flag:go_default_library", + "//staging/src/k8s.io/component-base/cli/flag:go_default_library", "//staging/src/k8s.io/component-base/logs:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", ], diff --git a/test/images/no-snat-test-proxy/main.go b/test/images/no-snat-test-proxy/main.go index 57bf7e62a9..6646982b81 100644 --- a/test/images/no-snat-test-proxy/main.go +++ b/test/images/no-snat-test-proxy/main.go @@ -24,7 +24,7 @@ import ( "strings" "github.com/spf13/pflag" - "k8s.io/apiserver/pkg/util/flag" + cliflag "k8s.io/component-base/cli/flag" "k8s.io/component-base/logs" ) @@ -48,7 +48,7 @@ func main() { m := newMasqTestProxy() m.AddFlags(pflag.CommandLine) - flag.InitFlags() + cliflag.InitFlags() logs.InitLogs() defer logs.FlushLogs() diff --git a/test/images/no-snat-test/BUILD b/test/images/no-snat-test/BUILD index a0a013a3ec..9d8811d3c2 100644 --- a/test/images/no-snat-test/BUILD +++ b/test/images/no-snat-test/BUILD @@ -16,7 +16,7 @@ go_library( srcs = ["main.go"], importpath = "k8s.io/kubernetes/test/images/no-snat-test", deps = [ - "//staging/src/k8s.io/apiserver/pkg/util/flag:go_default_library", + "//staging/src/k8s.io/component-base/cli/flag:go_default_library", "//staging/src/k8s.io/component-base/logs:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", ], diff --git a/test/images/no-snat-test/main.go b/test/images/no-snat-test/main.go index 76e3bb6a65..bb94daf1a2 100644 --- a/test/images/no-snat-test/main.go +++ b/test/images/no-snat-test/main.go @@ -25,7 +25,7 @@ import ( "strings" "github.com/spf13/pflag" - "k8s.io/apiserver/pkg/util/flag" + cliflag "k8s.io/component-base/cli/flag" "k8s.io/component-base/logs" ) @@ -52,7 +52,7 @@ func main() { m := newMasqTester() m.AddFlags(pflag.CommandLine) - flag.InitFlags() + cliflag.InitFlags() logs.InitLogs() defer logs.FlushLogs()