pkg/util: move flags from pkg/util/config to pkg/util/flags

pull/6/head
Dr. Stefan Schimanski 2017-01-19 13:39:13 +01:00
parent 4beba154b4
commit 56d60cfae6
28 changed files with 68 additions and 68 deletions

View File

@ -23,7 +23,7 @@ import (
"k8s.io/kubernetes/pkg/apis/componentconfig" "k8s.io/kubernetes/pkg/apis/componentconfig"
"k8s.io/kubernetes/pkg/client/leaderelection" "k8s.io/kubernetes/pkg/client/leaderelection"
"k8s.io/kubernetes/pkg/master/ports" "k8s.io/kubernetes/pkg/master/ports"
"k8s.io/kubernetes/pkg/util/config" utilflag "k8s.io/kubernetes/pkg/util/flag"
"github.com/spf13/pflag" "github.com/spf13/pflag"
) )
@ -82,5 +82,5 @@ func (s *CloudControllerManagerServer) AddFlags(fs *pflag.FlagSet) {
fs.DurationVar(&s.ControllerStartInterval.Duration, "controller-start-interval", s.ControllerStartInterval.Duration, "Interval between starting controller managers.") fs.DurationVar(&s.ControllerStartInterval.Duration, "controller-start-interval", s.ControllerStartInterval.Duration, "Interval between starting controller managers.")
leaderelection.BindFlags(&s.LeaderElection, fs) leaderelection.BindFlags(&s.LeaderElection, fs)
config.DefaultFeatureGate.AddFlag(fs) utilflag.DefaultFeatureGate.AddFlag(fs)
} }

View File

@ -29,7 +29,7 @@ import (
"k8s.io/kubernetes/pkg/apis/componentconfig" "k8s.io/kubernetes/pkg/apis/componentconfig"
"k8s.io/kubernetes/pkg/client/leaderelection" "k8s.io/kubernetes/pkg/client/leaderelection"
"k8s.io/kubernetes/pkg/master/ports" "k8s.io/kubernetes/pkg/master/ports"
"k8s.io/kubernetes/pkg/util/config" utilflag "k8s.io/kubernetes/pkg/util/flag"
"github.com/spf13/pflag" "github.com/spf13/pflag"
) )
@ -195,7 +195,7 @@ func (s *CMServer) AddFlags(fs *pflag.FlagSet, allControllers []string, disabled
fs.DurationVar(&s.ReconcilerSyncLoopPeriod.Duration, "attach-detach-reconcile-sync-period", s.ReconcilerSyncLoopPeriod.Duration, "The reconciler sync wait time between volume attach detach. This duration must be larger than one second, and increasing this value from the default may allow for volumes to be mismatched with pods.") fs.DurationVar(&s.ReconcilerSyncLoopPeriod.Duration, "attach-detach-reconcile-sync-period", s.ReconcilerSyncLoopPeriod.Duration, "The reconciler sync wait time between volume attach detach. This duration must be larger than one second, and increasing this value from the default may allow for volumes to be mismatched with pods.")
leaderelection.BindFlags(&s.LeaderElection, fs) leaderelection.BindFlags(&s.LeaderElection, fs)
config.DefaultFeatureGate.AddFlag(fs) utilflag.DefaultFeatureGate.AddFlag(fs)
} }
// Validate is used to validate the options and config before launching the controller manager // Validate is used to validate the options and config before launching the controller manager

View File

@ -36,7 +36,7 @@ import (
"k8s.io/kubernetes/pkg/cloudprovider/providers/openstack" "k8s.io/kubernetes/pkg/cloudprovider/providers/openstack"
"k8s.io/kubernetes/pkg/cloudprovider/providers/photon" "k8s.io/kubernetes/pkg/cloudprovider/providers/photon"
"k8s.io/kubernetes/pkg/cloudprovider/providers/vsphere" "k8s.io/kubernetes/pkg/cloudprovider/providers/vsphere"
utilconfig "k8s.io/kubernetes/pkg/util/config" utilflag "k8s.io/kubernetes/pkg/util/flag"
"k8s.io/kubernetes/pkg/util/io" "k8s.io/kubernetes/pkg/util/io"
"k8s.io/kubernetes/pkg/volume" "k8s.io/kubernetes/pkg/volume"
"k8s.io/kubernetes/pkg/volume/aws_ebs" "k8s.io/kubernetes/pkg/volume/aws_ebs"
@ -142,7 +142,7 @@ func ProbeControllerVolumePlugins(cloud cloudprovider.Interface, config componen
// TODO: remove in Kubernetes 1.5 // TODO: remove in Kubernetes 1.5
func NewAlphaVolumeProvisioner(cloud cloudprovider.Interface, config componentconfig.VolumeConfiguration) (volume.ProvisionableVolumePlugin, error) { func NewAlphaVolumeProvisioner(cloud cloudprovider.Interface, config componentconfig.VolumeConfiguration) (volume.ProvisionableVolumePlugin, error) {
switch { switch {
case !utilconfig.DefaultFeatureGate.DynamicVolumeProvisioning(): case !utilflag.DefaultFeatureGate.DynamicVolumeProvisioning():
return nil, nil return nil, nil
case cloud == nil && config.EnableHostPathProvisioning: case cloud == nil && config.EnableHostPathProvisioning:
return getProvisionablePluginFromVolumePlugins(host_path.ProbeVolumePlugins( return getProvisionablePluginFromVolumePlugins(host_path.ProbeVolumePlugins(

View File

@ -27,7 +27,7 @@ import (
"k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1" "k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1"
"k8s.io/kubernetes/pkg/kubelet/qos" "k8s.io/kubernetes/pkg/kubelet/qos"
"k8s.io/kubernetes/pkg/util" "k8s.io/kubernetes/pkg/util"
"k8s.io/kubernetes/pkg/util/config" utilflag "k8s.io/kubernetes/pkg/util/flag"
"github.com/spf13/pflag" "github.com/spf13/pflag"
) )
@ -101,5 +101,5 @@ func (s *ProxyServerConfig) AddFlags(fs *pflag.FlagSet) {
s.ConntrackTCPCloseWaitTimeout.Duration, s.ConntrackTCPCloseWaitTimeout.Duration,
"NAT timeout for TCP connections in the CLOSE_WAIT state") "NAT timeout for TCP connections in the CLOSE_WAIT state")
config.DefaultFeatureGate.AddFlag(fs) utilflag.DefaultFeatureGate.AddFlag(fs)
} }

View File

@ -24,8 +24,8 @@ import (
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/apis/componentconfig" "k8s.io/kubernetes/pkg/apis/componentconfig"
"k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1" "k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1"
utilconfig "k8s.io/kubernetes/pkg/util/config"
"k8s.io/kubernetes/pkg/util/flag" "k8s.io/kubernetes/pkg/util/flag"
utilflag "k8s.io/kubernetes/pkg/util/flag"
utiltaints "k8s.io/kubernetes/pkg/util/taints" utiltaints "k8s.io/kubernetes/pkg/util/taints"
"github.com/spf13/pflag" "github.com/spf13/pflag"
@ -169,7 +169,7 @@ func (s *KubeletServer) AddFlags(fs *pflag.FlagSet) {
fs.DurationVar(&s.StreamingConnectionIdleTimeout.Duration, "streaming-connection-idle-timeout", s.StreamingConnectionIdleTimeout.Duration, "Maximum time a streaming connection can be idle before the connection is automatically closed. 0 indicates no timeout. Example: '5m'") fs.DurationVar(&s.StreamingConnectionIdleTimeout.Duration, "streaming-connection-idle-timeout", s.StreamingConnectionIdleTimeout.Duration, "Maximum time a streaming connection can be idle before the connection is automatically closed. 0 indicates no timeout. Example: '5m'")
fs.DurationVar(&s.NodeStatusUpdateFrequency.Duration, "node-status-update-frequency", s.NodeStatusUpdateFrequency.Duration, "Specifies how often kubelet posts node status to master. Note: be cautious when changing the constant, it must work with nodeMonitorGracePeriod in nodecontroller. Default: 10s") fs.DurationVar(&s.NodeStatusUpdateFrequency.Duration, "node-status-update-frequency", s.NodeStatusUpdateFrequency.Duration, "Specifies how often kubelet posts node status to master. Note: be cautious when changing the constant, it must work with nodeMonitorGracePeriod in nodecontroller. Default: 10s")
s.NodeLabels = make(map[string]string) s.NodeLabels = make(map[string]string)
bindableNodeLabels := utilconfig.ConfigurationMap(s.NodeLabels) bindableNodeLabels := utilflag.ConfigurationMap(s.NodeLabels)
fs.Var(&bindableNodeLabels, "node-labels", "<Warning: Alpha feature> Labels to add when registering the node in the cluster. Labels must be key=value pairs separated by ','.") fs.Var(&bindableNodeLabels, "node-labels", "<Warning: Alpha feature> Labels to add when registering the node in the cluster. Labels must be key=value pairs separated by ','.")
fs.DurationVar(&s.ImageMinimumGCAge.Duration, "minimum-image-ttl-duration", s.ImageMinimumGCAge.Duration, "Minimum age for an unused image before it is garbage collected. Examples: '300ms', '10s' or '2h45m'. Default: '2m'") fs.DurationVar(&s.ImageMinimumGCAge.Duration, "minimum-image-ttl-duration", s.ImageMinimumGCAge.Duration, "Minimum age for an unused image before it is garbage collected. Examples: '300ms', '10s' or '2h45m'. Default: '2m'")
fs.Int32Var(&s.ImageGCHighThresholdPercent, "image-gc-high-threshold", s.ImageGCHighThresholdPercent, "The percent of disk usage after which image garbage collection is always run. Default: 90%") fs.Int32Var(&s.ImageGCHighThresholdPercent, "image-gc-high-threshold", s.ImageGCHighThresholdPercent, "The percent of disk usage after which image garbage collection is always run. Default: 90%")
@ -185,7 +185,7 @@ func (s *KubeletServer) AddFlags(fs *pflag.FlagSet) {
fs.StringVar(&s.CloudProvider, "cloud-provider", s.CloudProvider, "The provider for cloud services. By default, kubelet will attempt to auto-detect the cloud provider. Specify empty string for running with no cloud provider. [default=auto-detect]") fs.StringVar(&s.CloudProvider, "cloud-provider", s.CloudProvider, "The provider for cloud services. By default, kubelet will attempt to auto-detect the cloud provider. Specify empty string for running with no cloud provider. [default=auto-detect]")
fs.StringVar(&s.CloudConfigFile, "cloud-config", s.CloudConfigFile, "The path to the cloud provider configuration file. Empty string for no configuration file.") fs.StringVar(&s.CloudConfigFile, "cloud-config", s.CloudConfigFile, "The path to the cloud provider configuration file. Empty string for no configuration file.")
fs.StringVar(&s.FeatureGates, "feature-gates", s.FeatureGates, "A set of key=value pairs that describe feature gates for alpha/experimental features. "+ fs.StringVar(&s.FeatureGates, "feature-gates", s.FeatureGates, "A set of key=value pairs that describe feature gates for alpha/experimental features. "+
"Options are:\n"+strings.Join(utilconfig.DefaultFeatureGate.KnownFeatures(), "\n")) "Options are:\n"+strings.Join(utilflag.DefaultFeatureGate.KnownFeatures(), "\n"))
fs.StringVar(&s.KubeletCgroups, "resource-container", s.KubeletCgroups, "Optional absolute name of the resource-only container to create and run the Kubelet in.") fs.StringVar(&s.KubeletCgroups, "resource-container", s.KubeletCgroups, "Optional absolute name of the resource-only container to create and run the Kubelet in.")
fs.MarkDeprecated("resource-container", "Use --kubelet-cgroups instead. Will be removed in a future version.") fs.MarkDeprecated("resource-container", "Use --kubelet-cgroups instead. Will be removed in a future version.")

View File

@ -70,8 +70,8 @@ import (
"k8s.io/kubernetes/pkg/kubelet/dockertools" "k8s.io/kubernetes/pkg/kubelet/dockertools"
"k8s.io/kubernetes/pkg/kubelet/server" "k8s.io/kubernetes/pkg/kubelet/server"
kubetypes "k8s.io/kubernetes/pkg/kubelet/types" kubetypes "k8s.io/kubernetes/pkg/kubelet/types"
utilconfig "k8s.io/kubernetes/pkg/util/config"
"k8s.io/kubernetes/pkg/util/configz" "k8s.io/kubernetes/pkg/util/configz"
utilflag "k8s.io/kubernetes/pkg/util/flag"
"k8s.io/kubernetes/pkg/util/flock" "k8s.io/kubernetes/pkg/util/flock"
kubeio "k8s.io/kubernetes/pkg/util/io" kubeio "k8s.io/kubernetes/pkg/util/io"
"k8s.io/kubernetes/pkg/util/mount" "k8s.io/kubernetes/pkg/util/mount"
@ -328,14 +328,14 @@ func run(s *options.KubeletServer, kubeDeps *kubelet.KubeletDeps) (err error) {
} }
// Set feature gates based on the value in KubeletConfiguration // Set feature gates based on the value in KubeletConfiguration
err = utilconfig.DefaultFeatureGate.Set(s.KubeletConfiguration.FeatureGates) err = utilflag.DefaultFeatureGate.Set(s.KubeletConfiguration.FeatureGates)
if err != nil { if err != nil {
return err return err
} }
// Register current configuration with /configz endpoint // Register current configuration with /configz endpoint
cfgz, cfgzErr := initConfigz(&s.KubeletConfiguration) cfgz, cfgzErr := initConfigz(&s.KubeletConfiguration)
if utilconfig.DefaultFeatureGate.DynamicKubeletConfig() { if utilflag.DefaultFeatureGate.DynamicKubeletConfig() {
// Look for config on the API server. If it exists, replace s.KubeletConfiguration // Look for config on the API server. If it exists, replace s.KubeletConfiguration
// with it and continue. initKubeletConfigSync also starts the background thread that checks for new config. // with it and continue. initKubeletConfigSync also starts the background thread that checks for new config.
@ -352,7 +352,7 @@ func run(s *options.KubeletServer, kubeDeps *kubelet.KubeletDeps) (err error) {
setConfigz(cfgz, &s.KubeletConfiguration) setConfigz(cfgz, &s.KubeletConfiguration)
} }
// Update feature gates from the new config // Update feature gates from the new config
err = utilconfig.DefaultFeatureGate.Set(s.KubeletConfiguration.FeatureGates) err = utilflag.DefaultFeatureGate.Set(s.KubeletConfiguration.FeatureGates)
if err != nil { if err != nil {
return err return err
} }

View File

@ -20,7 +20,7 @@ import (
"testing" "testing"
"k8s.io/kubernetes/pkg/kubelet" "k8s.io/kubernetes/pkg/kubelet"
"k8s.io/kubernetes/pkg/util/config" utilflag "k8s.io/kubernetes/pkg/util/flag"
) )
func TestValueOfAllocatableResources(t *testing.T) { func TestValueOfAllocatableResources(t *testing.T) {
@ -51,8 +51,8 @@ func TestValueOfAllocatableResources(t *testing.T) {
} }
for _, test := range testCases { for _, test := range testCases {
kubeReservedCM := make(config.ConfigurationMap) kubeReservedCM := make(utilflag.ConfigurationMap)
systemReservedCM := make(config.ConfigurationMap) systemReservedCM := make(utilflag.ConfigurationMap)
kubeReservedCM.Set(test.kubeReserved) kubeReservedCM.Set(test.kubeReserved)
systemReservedCM.Set(test.systemReserved) systemReservedCM.Set(test.systemReserved)

View File

@ -45,6 +45,7 @@ import (
servicecontroller "k8s.io/kubernetes/federation/pkg/federation-controller/service" servicecontroller "k8s.io/kubernetes/federation/pkg/federation-controller/service"
"k8s.io/kubernetes/federation/pkg/federation-controller/util" "k8s.io/kubernetes/federation/pkg/federation-controller/util"
"k8s.io/kubernetes/pkg/util/configz" "k8s.io/kubernetes/pkg/util/configz"
utilflag "k8s.io/kubernetes/pkg/util/flag"
"k8s.io/kubernetes/pkg/version" "k8s.io/kubernetes/pkg/version"
"github.com/golang/glog" "github.com/golang/glog"
@ -53,7 +54,6 @@ import (
"github.com/spf13/pflag" "github.com/spf13/pflag"
"k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/kubernetes/pkg/client/typed/discovery" "k8s.io/kubernetes/pkg/client/typed/discovery"
"k8s.io/kubernetes/pkg/util/config"
) )
const ( const (
@ -222,7 +222,7 @@ func restClientConfigFromSecret(master string) (*restclient.Config, error) {
return restClientCfg, nil return restClientCfg, nil
} }
func controllerEnabled(controllers config.ConfigurationMap, serverResources []*metav1.APIResourceList, controller string, requiredResources []schema.GroupVersionResource, defaultValue bool) bool { func controllerEnabled(controllers utilflag.ConfigurationMap, serverResources []*metav1.APIResourceList, controller string, requiredResources []schema.GroupVersionResource, defaultValue bool) bool {
controllerConfig, ok := controllers[controller] controllerConfig, ok := controllers[controller]
if ok { if ok {
if controllerConfig == "false" { if controllerConfig == "false" {

View File

@ -20,14 +20,14 @@ import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/runtime/schema"
ingresscontroller "k8s.io/kubernetes/federation/pkg/federation-controller/ingress" ingresscontroller "k8s.io/kubernetes/federation/pkg/federation-controller/ingress"
"k8s.io/kubernetes/pkg/util/config" utilflag "k8s.io/kubernetes/pkg/util/flag"
"testing" "testing"
) )
func TestControllerEnabled(t *testing.T) { func TestControllerEnabled(t *testing.T) {
testCases := []struct { testCases := []struct {
controllersConfig config.ConfigurationMap controllersConfig utilflag.ConfigurationMap
serverResources []*metav1.APIResourceList serverResources []*metav1.APIResourceList
controller string controller string
requiredResources []schema.GroupVersionResource requiredResources []schema.GroupVersionResource
@ -36,7 +36,7 @@ func TestControllerEnabled(t *testing.T) {
}{ }{
// no override, API server has Ingress enabled // no override, API server has Ingress enabled
{ {
controllersConfig: config.ConfigurationMap{}, controllersConfig: utilflag.ConfigurationMap{},
serverResources: []*metav1.APIResourceList{ serverResources: []*metav1.APIResourceList{
{ {
GroupVersion: "extensions/v1beta1", GroupVersion: "extensions/v1beta1",
@ -52,7 +52,7 @@ func TestControllerEnabled(t *testing.T) {
}, },
// no override, API server has Ingress disabled // no override, API server has Ingress disabled
{ {
controllersConfig: config.ConfigurationMap{}, controllersConfig: utilflag.ConfigurationMap{},
serverResources: []*metav1.APIResourceList{}, serverResources: []*metav1.APIResourceList{},
controller: ingresscontroller.ControllerName, controller: ingresscontroller.ControllerName,
requiredResources: ingresscontroller.RequiredResources, requiredResources: ingresscontroller.RequiredResources,
@ -61,7 +61,7 @@ func TestControllerEnabled(t *testing.T) {
}, },
// API server has Ingress enabled, override config to disable Ingress controller // API server has Ingress enabled, override config to disable Ingress controller
{ {
controllersConfig: config.ConfigurationMap{ controllersConfig: utilflag.ConfigurationMap{
ingresscontroller.ControllerName: "false", ingresscontroller.ControllerName: "false",
}, },
serverResources: []*metav1.APIResourceList{ serverResources: []*metav1.APIResourceList{

View File

@ -28,7 +28,7 @@ import (
"k8s.io/kubernetes/federation/pkg/dnsprovider" "k8s.io/kubernetes/federation/pkg/dnsprovider"
"k8s.io/kubernetes/pkg/apis/componentconfig" "k8s.io/kubernetes/pkg/apis/componentconfig"
"k8s.io/kubernetes/pkg/client/leaderelection" "k8s.io/kubernetes/pkg/client/leaderelection"
"k8s.io/kubernetes/pkg/util/config" utilflag "k8s.io/kubernetes/pkg/util/flag"
) )
type ControllerManagerConfiguration struct { type ControllerManagerConfiguration struct {
@ -69,7 +69,7 @@ type ControllerManagerConfiguration struct {
// contentType is contentType of requests sent to apiserver. // contentType is contentType of requests sent to apiserver.
ContentType string `json:"contentType"` ContentType string `json:"contentType"`
// ConfigurationMap determining which controllers should be enabled or disabled // ConfigurationMap determining which controllers should be enabled or disabled
Controllers config.ConfigurationMap `json:"controllers"` Controllers utilflag.ConfigurationMap `json:"controllers"`
} }
// CMServer is the main context object for the controller manager. // CMServer is the main context object for the controller manager.
@ -97,7 +97,7 @@ func NewCMServer() *CMServer {
APIServerQPS: 20.0, APIServerQPS: 20.0,
APIServerBurst: 30, APIServerBurst: 30,
LeaderElection: leaderelection.DefaultLeaderElectionConfiguration(), LeaderElection: leaderelection.DefaultLeaderElectionConfiguration(),
Controllers: make(config.ConfigurationMap), Controllers: make(utilflag.ConfigurationMap),
}, },
} }
return &s return &s

View File

@ -44,7 +44,7 @@ import (
storageutil "k8s.io/kubernetes/pkg/apis/storage/util" storageutil "k8s.io/kubernetes/pkg/apis/storage/util"
"k8s.io/kubernetes/pkg/capabilities" "k8s.io/kubernetes/pkg/capabilities"
"k8s.io/kubernetes/pkg/security/apparmor" "k8s.io/kubernetes/pkg/security/apparmor"
utilconfig "k8s.io/kubernetes/pkg/util/config" utilflag "k8s.io/kubernetes/pkg/util/flag"
"k8s.io/kubernetes/pkg/util/intstr" "k8s.io/kubernetes/pkg/util/intstr"
) )
@ -2063,7 +2063,7 @@ func ValidateAppArmorPodAnnotations(annotations map[string]string, spec *api.Pod
if !strings.HasPrefix(k, apparmor.ContainerAnnotationKeyPrefix) { if !strings.HasPrefix(k, apparmor.ContainerAnnotationKeyPrefix) {
continue continue
} }
if !utilconfig.DefaultFeatureGate.AppArmor() { if !utilflag.DefaultFeatureGate.AppArmor() {
allErrs = append(allErrs, field.Forbidden(fldPath.Key(k), "AppArmor is disabled by feature-gate")) allErrs = append(allErrs, field.Forbidden(fldPath.Key(k), "AppArmor is disabled by feature-gate"))
continue continue
} }

View File

@ -20,7 +20,7 @@ import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
runtime "k8s.io/apimachinery/pkg/runtime" runtime "k8s.io/apimachinery/pkg/runtime"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
utilconfig "k8s.io/kubernetes/pkg/util/config" utilflag "k8s.io/kubernetes/pkg/util/flag"
) )
type KubeProxyConfiguration struct { type KubeProxyConfiguration struct {
@ -445,12 +445,12 @@ type KubeletConfiguration struct {
// that describe resources reserved for non-kubernetes components. // that describe resources reserved for non-kubernetes components.
// Currently only cpu and memory are supported. [default=none] // Currently only cpu and memory are supported. [default=none]
// See http://kubernetes.io/docs/user-guide/compute-resources for more detail. // See http://kubernetes.io/docs/user-guide/compute-resources for more detail.
SystemReserved utilconfig.ConfigurationMap SystemReserved utilflag.ConfigurationMap
// A set of ResourceName=ResourceQuantity (e.g. cpu=200m,memory=150G) pairs // A set of ResourceName=ResourceQuantity (e.g. cpu=200m,memory=150G) pairs
// that describe resources reserved for kubernetes system components. // that describe resources reserved for kubernetes system components.
// Currently only cpu and memory are supported. [default=none] // Currently only cpu and memory are supported. [default=none]
// See http://kubernetes.io/docs/user-guide/compute-resources for more detail. // See http://kubernetes.io/docs/user-guide/compute-resources for more detail.
KubeReserved utilconfig.ConfigurationMap KubeReserved utilflag.ConfigurationMap
// Default behaviour for kernel tuning // Default behaviour for kernel tuning
ProtectKernelDefaults bool ProtectKernelDefaults bool
// If true, Kubelet ensures a set of iptables rules are present on host. // If true, Kubelet ensures a set of iptables rules are present on host.

View File

@ -32,7 +32,7 @@ import (
"k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/api/errors"
utilnet "k8s.io/apimachinery/pkg/util/net" utilnet "k8s.io/apimachinery/pkg/util/net"
utilruntime "k8s.io/apimachinery/pkg/util/runtime" utilruntime "k8s.io/apimachinery/pkg/util/runtime"
utilconfig "k8s.io/kubernetes/pkg/util/config" utilflag "k8s.io/kubernetes/pkg/util/flag"
"k8s.io/kubernetes/pkg/util/httpstream" "k8s.io/kubernetes/pkg/util/httpstream"
"k8s.io/kubernetes/pkg/util/proxy" "k8s.io/kubernetes/pkg/util/proxy"
@ -145,7 +145,7 @@ func (h *UpgradeAwareProxyHandler) tryUpgrade(w http.ResponseWriter, req *http.R
rawResponse []byte rawResponse []byte
err error err error
) )
if h.InterceptRedirects && utilconfig.DefaultFeatureGate.StreamingProxyRedirects() { if h.InterceptRedirects && utilflag.DefaultFeatureGate.StreamingProxyRedirects() {
backendConn, rawResponse, err = h.connectBackendWithRedirects(req) backendConn, rawResponse, err = h.connectBackendWithRedirects(req)
} else { } else {
backendConn, err = h.connectBackend(req.Method, h.Location, req.Header, req.Body) backendConn, err = h.connectBackend(req.Method, h.Location, req.Header, req.Body)

View File

@ -25,7 +25,7 @@ import (
"k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apiserver/pkg/admission" "k8s.io/apiserver/pkg/admission"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/util/config" utilflag "k8s.io/kubernetes/pkg/util/flag"
"github.com/spf13/pflag" "github.com/spf13/pflag"
) )
@ -52,7 +52,7 @@ type ServerRunOptions struct {
MaxRequestsInFlight int MaxRequestsInFlight int
MaxMutatingRequestsInFlight int MaxMutatingRequestsInFlight int
MinRequestTimeout int MinRequestTimeout int
RuntimeConfig config.ConfigurationMap RuntimeConfig utilflag.ConfigurationMap
StorageVersions string StorageVersions string
// The default values for StorageVersions. StorageVersions overrides // The default values for StorageVersions. StorageVersions overrides
// these; you can change this if you want to change the defaults (e.g., // these; you can change this if you want to change the defaults (e.g.,
@ -75,7 +75,7 @@ func NewServerRunOptions() *ServerRunOptions {
MaxRequestsInFlight: 400, MaxRequestsInFlight: 400,
MaxMutatingRequestsInFlight: 200, MaxMutatingRequestsInFlight: 200,
MinRequestTimeout: 1800, MinRequestTimeout: 1800,
RuntimeConfig: make(config.ConfigurationMap), RuntimeConfig: make(utilflag.ConfigurationMap),
StorageVersions: api.Registry.AllPreferredGroupVersions(), StorageVersions: api.Registry.AllPreferredGroupVersions(),
} }
} }
@ -264,5 +264,5 @@ func (s *ServerRunOptions) AddUniversalFlags(fs *pflag.FlagSet) {
"The individual override format: resource#size, where size is a number. It takes effect "+ "The individual override format: resource#size, where size is a number. It takes effect "+
"when watch-cache is enabled.") "when watch-cache is enabled.")
config.DefaultFeatureGate.AddFlag(fs) utilflag.DefaultFeatureGate.AddFlag(fs)
} }

View File

@ -26,7 +26,7 @@ import (
utilnet "k8s.io/apimachinery/pkg/util/net" utilnet "k8s.io/apimachinery/pkg/util/net"
certutil "k8s.io/client-go/util/cert" certutil "k8s.io/client-go/util/cert"
"k8s.io/kubernetes/pkg/util/config" utilflag "k8s.io/kubernetes/pkg/util/flag"
) )
type ServingOptions struct { type ServingOptions struct {
@ -40,7 +40,7 @@ type SecureServingOptions struct {
// ServerCert is the TLS cert info for serving secure traffic // ServerCert is the TLS cert info for serving secure traffic
ServerCert GeneratableKeyCert ServerCert GeneratableKeyCert
// SNICertKeys are named CertKeys for serving secure traffic with SNI support. // SNICertKeys are named CertKeys for serving secure traffic with SNI support.
SNICertKeys []config.NamedCertKey SNICertKeys []utilflag.NamedCertKey
} }
type CertKey struct { type CertKey struct {
@ -114,7 +114,7 @@ func (s *SecureServingOptions) AddFlags(fs *pflag.FlagSet) {
"Controllers. This must be a valid PEM-encoded CA bundle. Altneratively, the certificate authority "+ "Controllers. This must be a valid PEM-encoded CA bundle. Altneratively, the certificate authority "+
"can be appended to the certificate provided by --tls-cert-file.") "can be appended to the certificate provided by --tls-cert-file.")
fs.Var(config.NewNamedCertKeyArray(&s.SNICertKeys), "tls-sni-cert-key", ""+ fs.Var(utilflag.NewNamedCertKeyArray(&s.SNICertKeys), "tls-sni-cert-key", ""+
"A pair of x509 certificate and private key file paths, optionally suffixed with a list of "+ "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 "+ "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 "+ "segments. If no domain patterns are provided, the names of the certificate are "+

View File

@ -26,7 +26,7 @@ import (
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
genericapiserver "k8s.io/kubernetes/pkg/genericapiserver/server" genericapiserver "k8s.io/kubernetes/pkg/genericapiserver/server"
"k8s.io/kubernetes/pkg/storage/storagebackend" "k8s.io/kubernetes/pkg/storage/storagebackend"
"k8s.io/kubernetes/pkg/util/config" utilflag "k8s.io/kubernetes/pkg/util/flag"
) )
// Builds the DefaultStorageFactory. // Builds the DefaultStorageFactory.
@ -34,7 +34,7 @@ import (
// defaultAPIResourceConfig with the corresponding user specified overrides as well. // defaultAPIResourceConfig with the corresponding user specified overrides as well.
func BuildDefaultStorageFactory(storageConfig storagebackend.Config, defaultMediaType string, serializer runtime.StorageSerializer, func BuildDefaultStorageFactory(storageConfig storagebackend.Config, defaultMediaType string, serializer runtime.StorageSerializer,
defaultResourceEncoding *genericapiserver.DefaultResourceEncodingConfig, storageEncodingOverrides map[string]schema.GroupVersion, resourceEncodingOverrides []schema.GroupVersionResource, defaultResourceEncoding *genericapiserver.DefaultResourceEncodingConfig, storageEncodingOverrides map[string]schema.GroupVersion, resourceEncodingOverrides []schema.GroupVersionResource,
defaultAPIResourceConfig *genericapiserver.ResourceConfig, resourceConfigOverrides config.ConfigurationMap) (*genericapiserver.DefaultStorageFactory, error) { defaultAPIResourceConfig *genericapiserver.ResourceConfig, resourceConfigOverrides utilflag.ConfigurationMap) (*genericapiserver.DefaultStorageFactory, error) {
resourceEncodingConfig := mergeGroupEncodingConfigs(defaultResourceEncoding, storageEncodingOverrides) resourceEncodingConfig := mergeGroupEncodingConfigs(defaultResourceEncoding, storageEncodingOverrides)
resourceEncodingConfig = mergeResourceEncodingConfigs(resourceEncodingConfig, resourceEncodingOverrides) resourceEncodingConfig = mergeResourceEncodingConfigs(resourceEncodingConfig, resourceEncodingOverrides)
@ -65,7 +65,7 @@ func mergeGroupEncodingConfigs(defaultResourceEncoding *genericapiserver.Default
} }
// Merges the given defaultAPIResourceConfig with the given resourceConfigOverrides. // Merges the given defaultAPIResourceConfig with the given resourceConfigOverrides.
func mergeAPIResourceConfigs(defaultAPIResourceConfig *genericapiserver.ResourceConfig, resourceConfigOverrides config.ConfigurationMap) (*genericapiserver.ResourceConfig, error) { func mergeAPIResourceConfigs(defaultAPIResourceConfig *genericapiserver.ResourceConfig, resourceConfigOverrides utilflag.ConfigurationMap) (*genericapiserver.ResourceConfig, error) {
resourceConfig := defaultAPIResourceConfig resourceConfig := defaultAPIResourceConfig
overrides := resourceConfigOverrides overrides := resourceConfigOverrides
@ -164,7 +164,7 @@ func mergeAPIResourceConfigs(defaultAPIResourceConfig *genericapiserver.Resource
return resourceConfig, nil return resourceConfig, nil
} }
func getRuntimeConfigValue(overrides config.ConfigurationMap, apiKey string, defaultValue bool) (bool, error) { func getRuntimeConfigValue(overrides utilflag.ConfigurationMap, apiKey string, defaultValue bool) (bool, error) {
flagValue, ok := overrides[apiKey] flagValue, ok := overrides[apiKey]
if ok { if ok {
if flagValue == "" { if flagValue == "" {

View File

@ -88,9 +88,9 @@ import (
"k8s.io/kubernetes/pkg/kubelet/volumemanager" "k8s.io/kubernetes/pkg/kubelet/volumemanager"
"k8s.io/kubernetes/pkg/security/apparmor" "k8s.io/kubernetes/pkg/security/apparmor"
"k8s.io/kubernetes/pkg/util/bandwidth" "k8s.io/kubernetes/pkg/util/bandwidth"
utilconfig "k8s.io/kubernetes/pkg/util/config"
utildbus "k8s.io/kubernetes/pkg/util/dbus" utildbus "k8s.io/kubernetes/pkg/util/dbus"
utilexec "k8s.io/kubernetes/pkg/util/exec" utilexec "k8s.io/kubernetes/pkg/util/exec"
utilflag "k8s.io/kubernetes/pkg/util/flag"
kubeio "k8s.io/kubernetes/pkg/util/io" kubeio "k8s.io/kubernetes/pkg/util/io"
utilipt "k8s.io/kubernetes/pkg/util/iptables" utilipt "k8s.io/kubernetes/pkg/util/iptables"
"k8s.io/kubernetes/pkg/util/mount" "k8s.io/kubernetes/pkg/util/mount"
@ -474,7 +474,7 @@ func NewMainKubelet(kubeCfg *componentconfig.KubeletConfiguration, kubeDeps *Kub
makeIPTablesUtilChains: kubeCfg.MakeIPTablesUtilChains, makeIPTablesUtilChains: kubeCfg.MakeIPTablesUtilChains,
iptablesMasqueradeBit: int(kubeCfg.IPTablesMasqueradeBit), iptablesMasqueradeBit: int(kubeCfg.IPTablesMasqueradeBit),
iptablesDropBit: int(kubeCfg.IPTablesDropBit), iptablesDropBit: int(kubeCfg.IPTablesDropBit),
experimentalHostUserNamespaceDefaulting: utilconfig.DefaultFeatureGate.ExperimentalHostUserNamespaceDefaulting(), experimentalHostUserNamespaceDefaulting: utilflag.DefaultFeatureGate.ExperimentalHostUserNamespaceDefaulting(),
} }
if klet.experimentalHostUserNamespaceDefaulting { if klet.experimentalHostUserNamespaceDefaulting {
@ -2144,7 +2144,7 @@ func isSyncPodWorthy(event *pleg.PodLifecycleEvent) bool {
// parseResourceList parses the given configuration map into an API // parseResourceList parses the given configuration map into an API
// ResourceList or returns an error. // ResourceList or returns an error.
func parseResourceList(m utilconfig.ConfigurationMap) (v1.ResourceList, error) { func parseResourceList(m utilflag.ConfigurationMap) (v1.ResourceList, error) {
rl := make(v1.ResourceList) rl := make(v1.ResourceList)
for k, v := range m { for k, v := range m {
switch v1.ResourceName(k) { switch v1.ResourceName(k) {
@ -2168,7 +2168,7 @@ func parseResourceList(m utilconfig.ConfigurationMap) (v1.ResourceList, error) {
// ParseReservation parses the given kubelet- and system- reservations // ParseReservation parses the given kubelet- and system- reservations
// configuration maps into an internal Reservation instance or returns an // configuration maps into an internal Reservation instance or returns an
// error. // error.
func ParseReservation(kubeReserved, systemReserved utilconfig.ConfigurationMap) (*kubetypes.Reservation, error) { func ParseReservation(kubeReserved, systemReserved utilflag.ConfigurationMap) (*kubetypes.Reservation, error) {
reservation := new(kubetypes.Reservation) reservation := new(kubetypes.Reservation)
if rl, err := parseResourceList(kubeReserved); err != nil { if rl, err := parseResourceList(kubeReserved); err != nil {
return nil, err return nil, err

View File

@ -43,8 +43,8 @@ import (
"k8s.io/kubernetes/pkg/client/record" "k8s.io/kubernetes/pkg/client/record"
"k8s.io/kubernetes/pkg/proxy" "k8s.io/kubernetes/pkg/proxy"
"k8s.io/kubernetes/pkg/proxy/healthcheck" "k8s.io/kubernetes/pkg/proxy/healthcheck"
featuregate "k8s.io/kubernetes/pkg/util/config"
utilexec "k8s.io/kubernetes/pkg/util/exec" utilexec "k8s.io/kubernetes/pkg/util/exec"
utilflag "k8s.io/kubernetes/pkg/util/flag"
utiliptables "k8s.io/kubernetes/pkg/util/iptables" utiliptables "k8s.io/kubernetes/pkg/util/iptables"
"k8s.io/kubernetes/pkg/util/slice" "k8s.io/kubernetes/pkg/util/slice"
utilsysctl "k8s.io/kubernetes/pkg/util/sysctl" utilsysctl "k8s.io/kubernetes/pkg/util/sysctl"
@ -154,7 +154,7 @@ type endpointsInfo struct {
// returns a new serviceInfo struct // returns a new serviceInfo struct
func newServiceInfo(serviceName proxy.ServicePortName, port *api.ServicePort, service *api.Service) *serviceInfo { func newServiceInfo(serviceName proxy.ServicePortName, port *api.ServicePort, service *api.Service) *serviceInfo {
onlyNodeLocalEndpoints := apiservice.NeedsHealthCheck(service) && featuregate.DefaultFeatureGate.ExternalTrafficLocalOnly() && (service.Spec.Type == api.ServiceTypeLoadBalancer || service.Spec.Type == api.ServiceTypeNodePort) onlyNodeLocalEndpoints := apiservice.NeedsHealthCheck(service) && utilflag.DefaultFeatureGate.ExternalTrafficLocalOnly() && (service.Spec.Type == api.ServiceTypeLoadBalancer || service.Spec.Type == api.ServiceTypeNodePort)
info := &serviceInfo{ info := &serviceInfo{
clusterIP: net.ParseIP(service.Spec.ClusterIP), clusterIP: net.ParseIP(service.Spec.ClusterIP),
port: int(port.Port), port: int(port.Port),
@ -606,7 +606,7 @@ func (proxier *Proxier) OnEndpointsUpdate(allEndpoints []api.Endpoints) {
var isLocalEndpoint bool var isLocalEndpoint bool
if addr.NodeName != nil { if addr.NodeName != nil {
isLocalEndpoint = *addr.NodeName == proxier.hostname isLocalEndpoint = *addr.NodeName == proxier.hostname
isLocalEndpoint = featuregate.DefaultFeatureGate.ExternalTrafficLocalOnly() && isLocalEndpoint isLocalEndpoint = utilflag.DefaultFeatureGate.ExternalTrafficLocalOnly() && isLocalEndpoint
} }
hostPortObject := hostPortInfo{ hostPortObject := hostPortInfo{
host: addr.IP, host: addr.IP,

View File

@ -41,7 +41,7 @@ import (
"k8s.io/kubernetes/pkg/registry/core/endpoint" "k8s.io/kubernetes/pkg/registry/core/endpoint"
"k8s.io/kubernetes/pkg/registry/core/service/ipallocator" "k8s.io/kubernetes/pkg/registry/core/service/ipallocator"
"k8s.io/kubernetes/pkg/registry/core/service/portallocator" "k8s.io/kubernetes/pkg/registry/core/service/portallocator"
featuregate "k8s.io/kubernetes/pkg/util/config" utilflag "k8s.io/kubernetes/pkg/util/flag"
) )
// ServiceRest includes storage for services and all sub resources // ServiceRest includes storage for services and all sub resources
@ -565,7 +565,7 @@ func shouldAssignNodePorts(service *api.Service) bool {
func shouldCheckOrAssignHealthCheckNodePort(service *api.Service) bool { func shouldCheckOrAssignHealthCheckNodePort(service *api.Service) bool {
if service.Spec.Type == api.ServiceTypeLoadBalancer { if service.Spec.Type == api.ServiceTypeLoadBalancer {
// True if Service-type == LoadBalancer AND annotation AnnotationExternalTraffic present // True if Service-type == LoadBalancer AND annotation AnnotationExternalTraffic present
return (featuregate.DefaultFeatureGate.ExternalTrafficLocalOnly() && apiservice.NeedsHealthCheck(service)) return (utilflag.DefaultFeatureGate.ExternalTrafficLocalOnly() && apiservice.NeedsHealthCheck(service))
} }
glog.V(4).Infof("Service type: %v does not need health check node port", service.Spec.Type) glog.V(4).Infof("Service type: %v does not need health check node port", service.Spec.Type)
return false return false

View File

@ -32,12 +32,12 @@ import (
"k8s.io/kubernetes/pkg/registry/core/service/ipallocator" "k8s.io/kubernetes/pkg/registry/core/service/ipallocator"
"k8s.io/kubernetes/pkg/registry/core/service/portallocator" "k8s.io/kubernetes/pkg/registry/core/service/portallocator"
"k8s.io/kubernetes/pkg/registry/registrytest" "k8s.io/kubernetes/pkg/registry/registrytest"
featuregate "k8s.io/kubernetes/pkg/util/config" utilflag "k8s.io/kubernetes/pkg/util/flag"
"k8s.io/kubernetes/pkg/util/intstr" "k8s.io/kubernetes/pkg/util/intstr"
) )
func init() { func init() {
featuregate.DefaultFeatureGate.Set("AllowExtTrafficLocalEndpoints=true") utilflag.DefaultFeatureGate.Set("AllowExtTrafficLocalEndpoints=true")
} }
// TODO(wojtek-t): Cleanup this file. // TODO(wojtek-t): Cleanup this file.

View File

@ -27,7 +27,7 @@ import (
"k8s.io/kubernetes/pkg/api/v1" "k8s.io/kubernetes/pkg/api/v1"
"k8s.io/kubernetes/pkg/util" "k8s.io/kubernetes/pkg/util"
utilconfig "k8s.io/kubernetes/pkg/util/config" utilflag "k8s.io/kubernetes/pkg/util/flag"
) )
// Whether AppArmor should be disabled by default. // Whether AppArmor should be disabled by default.
@ -95,7 +95,7 @@ func (v *validator) ValidateHost() error {
// Verify that the host and runtime is capable of enforcing AppArmor profiles. // Verify that the host and runtime is capable of enforcing AppArmor profiles.
func validateHost(runtime string) error { func validateHost(runtime string) error {
// Check feature-gates // Check feature-gates
if !utilconfig.DefaultFeatureGate.AppArmor() { if !utilflag.DefaultFeatureGate.AppArmor() {
return errors.New("AppArmor disabled by feature-gate") return errors.New("AppArmor disabled by feature-gate")
} }

View File

@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License. limitations under the License.
*/ */
package config package flag
import ( import (
"fmt" "fmt"

View File

@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License. limitations under the License.
*/ */
package config package flag
import ( import (
"fmt" "fmt"

View File

@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License. limitations under the License.
*/ */
package config package flag
import ( import (
"fmt" "fmt"

View File

@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License. limitations under the License.
*/ */
package config package flag
import ( import (
"errors" "errors"

View File

@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License. limitations under the License.
*/ */
package config package flag
import ( import (
"fmt" "fmt"

View File

@ -22,7 +22,7 @@ import (
"k8s.io/kubernetes/pkg/apis/componentconfig" "k8s.io/kubernetes/pkg/apis/componentconfig"
"k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1" "k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1"
"k8s.io/kubernetes/pkg/client/leaderelection" "k8s.io/kubernetes/pkg/client/leaderelection"
"k8s.io/kubernetes/pkg/util/config" utilflag "k8s.io/kubernetes/pkg/util/flag"
"k8s.io/kubernetes/plugin/pkg/scheduler/factory" "k8s.io/kubernetes/plugin/pkg/scheduler/factory"
"github.com/spf13/pflag" "github.com/spf13/pflag"
@ -72,5 +72,5 @@ func (s *SchedulerServer) AddFlags(fs *pflag.FlagSet) {
"to every RequiredDuringScheduling affinity rule. --hard-pod-affinity-symmetric-weight represents the weight of implicit PreferredDuringScheduling affinity rule.") "to every RequiredDuringScheduling affinity rule. --hard-pod-affinity-symmetric-weight represents the weight of implicit PreferredDuringScheduling affinity rule.")
fs.StringVar(&s.FailureDomains, "failure-domains", api.DefaultFailureDomains, "Indicate the \"all topologies\" set for an empty topologyKey when it's used for PreferredDuringScheduling pod anti-affinity.") fs.StringVar(&s.FailureDomains, "failure-domains", api.DefaultFailureDomains, "Indicate the \"all topologies\" set for an empty topologyKey when it's used for PreferredDuringScheduling pod anti-affinity.")
leaderelection.BindFlags(&s.LeaderElection, fs) leaderelection.BindFlags(&s.LeaderElection, fs)
config.DefaultFeatureGate.AddFlag(fs) utilflag.DefaultFeatureGate.AddFlag(fs)
} }

View File

@ -26,7 +26,7 @@ import (
"github.com/golang/glog" "github.com/golang/glog"
"github.com/kardianos/osext" "github.com/kardianos/osext"
utilconfig "k8s.io/kubernetes/pkg/util/config" utilflag "k8s.io/kubernetes/pkg/util/flag"
"k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/framework"
) )
@ -119,7 +119,7 @@ func (e *E2EServices) Stop() {
func RunE2EServices() { func RunE2EServices() {
// Populate global DefaultFeatureGate with value from TestContext.FeatureGates. // Populate global DefaultFeatureGate with value from TestContext.FeatureGates.
// This way, statically-linked components see the same feature gate config as the test context. // This way, statically-linked components see the same feature gate config as the test context.
utilconfig.DefaultFeatureGate.Set(framework.TestContext.FeatureGates) utilflag.DefaultFeatureGate.Set(framework.TestContext.FeatureGates)
e := newE2EServices() e := newE2EServices()
if err := e.run(); err != nil { if err := e.run(); err != nil {
glog.Fatalf("Failed to run e2e services: %v", err) glog.Fatalf("Failed to run e2e services: %v", err)