mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-22 11:21:47 +00:00
Remove references to the config structs that have moved to their own shared packages
This commit is contained in:
parent
6274590518
commit
4bef926218
@ -71,8 +71,6 @@ API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alp
|
|||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,CloudProviderConfiguration,Name
|
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,CloudProviderConfiguration,Name
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,CloudProviderConfiguration,CloudConfigFile
|
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,CloudProviderConfiguration,CloudConfigFile
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,DaemonSetControllerConfiguration,ConcurrentDaemonSetSyncs
|
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,DaemonSetControllerConfiguration,ConcurrentDaemonSetSyncs
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,DebuggingConfiguration,EnableProfiling
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,DebuggingConfiguration,EnableContentionProfiling
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,DeploymentControllerConfiguration,ConcurrentDeploymentSyncs
|
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,DeploymentControllerConfiguration,ConcurrentDeploymentSyncs
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,DeploymentControllerConfiguration,DeploymentControllerSyncPeriod
|
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,DeploymentControllerConfiguration,DeploymentControllerSyncPeriod
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,DeprecatedControllerConfiguration,DeletingPodsQps
|
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,DeprecatedControllerConfiguration,DeletingPodsQps
|
||||||
|
@ -26,9 +26,9 @@ import (
|
|||||||
|
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/apimachinery/pkg/util/diff"
|
"k8s.io/apimachinery/pkg/util/diff"
|
||||||
|
apiserverconfig "k8s.io/apiserver/pkg/apis/config"
|
||||||
apiserveroptions "k8s.io/apiserver/pkg/server/options"
|
apiserveroptions "k8s.io/apiserver/pkg/server/options"
|
||||||
cmoptions "k8s.io/kubernetes/cmd/controller-manager/app/options"
|
cmoptions "k8s.io/kubernetes/cmd/controller-manager/app/options"
|
||||||
"k8s.io/kubernetes/pkg/apis/componentconfig"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestDefaultFlags(t *testing.T) {
|
func TestDefaultFlags(t *testing.T) {
|
||||||
@ -48,7 +48,7 @@ func TestDefaultFlags(t *testing.T) {
|
|||||||
KubeAPIQPS: 20.0,
|
KubeAPIQPS: 20.0,
|
||||||
KubeAPIBurst: 30,
|
KubeAPIBurst: 30,
|
||||||
ControllerStartInterval: metav1.Duration{Duration: 0},
|
ControllerStartInterval: metav1.Duration{Duration: 0},
|
||||||
LeaderElection: componentconfig.LeaderElectionConfiguration{
|
LeaderElection: apiserverconfig.LeaderElectionConfiguration{
|
||||||
ResourceLock: "endpoints",
|
ResourceLock: "endpoints",
|
||||||
LeaderElect: true,
|
LeaderElect: true,
|
||||||
LeaseDuration: metav1.Duration{Duration: 15 * time.Second},
|
LeaseDuration: metav1.Duration{Duration: 15 * time.Second},
|
||||||
@ -145,7 +145,7 @@ func TestAddFlags(t *testing.T) {
|
|||||||
KubeAPIQPS: 50.0,
|
KubeAPIQPS: 50.0,
|
||||||
KubeAPIBurst: 100,
|
KubeAPIBurst: 100,
|
||||||
ControllerStartInterval: metav1.Duration{Duration: 2 * time.Minute},
|
ControllerStartInterval: metav1.Duration{Duration: 2 * time.Minute},
|
||||||
LeaderElection: componentconfig.LeaderElectionConfiguration{
|
LeaderElection: apiserverconfig.LeaderElectionConfiguration{
|
||||||
ResourceLock: "configmap",
|
ResourceLock: "configmap",
|
||||||
LeaderElect: false,
|
LeaderElect: false,
|
||||||
LeaseDuration: metav1.Duration{Duration: 30 * time.Second},
|
LeaseDuration: metav1.Duration{Duration: 30 * time.Second},
|
||||||
|
@ -19,7 +19,7 @@ package options
|
|||||||
import (
|
import (
|
||||||
"github.com/spf13/pflag"
|
"github.com/spf13/pflag"
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/apis/componentconfig"
|
apiserverconfig "k8s.io/apiserver/pkg/apis/config"
|
||||||
)
|
)
|
||||||
|
|
||||||
// DebuggingOptions holds the Debugging options.
|
// DebuggingOptions holds the Debugging options.
|
||||||
@ -41,7 +41,7 @@ func (o *DebuggingOptions) AddFlags(fs *pflag.FlagSet) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ApplyTo fills up Debugging config with options.
|
// ApplyTo fills up Debugging config with options.
|
||||||
func (o *DebuggingOptions) ApplyTo(cfg *componentconfig.DebuggingConfiguration) error {
|
func (o *DebuggingOptions) ApplyTo(cfg *apiserverconfig.DebuggingConfiguration) error {
|
||||||
if o == nil {
|
if o == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -20,6 +20,7 @@ import (
|
|||||||
"github.com/spf13/pflag"
|
"github.com/spf13/pflag"
|
||||||
|
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
apiserverconfig "k8s.io/apiserver/pkg/apis/config"
|
||||||
"k8s.io/kubernetes/pkg/apis/componentconfig"
|
"k8s.io/kubernetes/pkg/apis/componentconfig"
|
||||||
"k8s.io/kubernetes/pkg/client/leaderelectionconfig"
|
"k8s.io/kubernetes/pkg/client/leaderelectionconfig"
|
||||||
)
|
)
|
||||||
@ -31,7 +32,7 @@ type GenericComponentConfigOptions struct {
|
|||||||
KubeAPIQPS float32
|
KubeAPIQPS float32
|
||||||
KubeAPIBurst int32
|
KubeAPIBurst int32
|
||||||
ControllerStartInterval metav1.Duration
|
ControllerStartInterval metav1.Duration
|
||||||
LeaderElection componentconfig.LeaderElectionConfiguration
|
LeaderElection apiserverconfig.LeaderElectionConfiguration
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewGenericComponentConfigOptions returns generic configuration default values for both
|
// NewGenericComponentConfigOptions returns generic configuration default values for both
|
||||||
|
@ -22,6 +22,7 @@ import (
|
|||||||
|
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
|
|
||||||
|
apiserverconfig "k8s.io/apiserver/pkg/apis/config"
|
||||||
genericapifilters "k8s.io/apiserver/pkg/endpoints/filters"
|
genericapifilters "k8s.io/apiserver/pkg/endpoints/filters"
|
||||||
apirequest "k8s.io/apiserver/pkg/endpoints/request"
|
apirequest "k8s.io/apiserver/pkg/endpoints/request"
|
||||||
apiserver "k8s.io/apiserver/pkg/server"
|
apiserver "k8s.io/apiserver/pkg/server"
|
||||||
@ -30,7 +31,6 @@ import (
|
|||||||
"k8s.io/apiserver/pkg/server/mux"
|
"k8s.io/apiserver/pkg/server/mux"
|
||||||
"k8s.io/apiserver/pkg/server/routes"
|
"k8s.io/apiserver/pkg/server/routes"
|
||||||
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
||||||
"k8s.io/kubernetes/pkg/apis/componentconfig"
|
|
||||||
"k8s.io/kubernetes/pkg/util/configz"
|
"k8s.io/kubernetes/pkg/util/configz"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -48,7 +48,7 @@ func BuildHandlerChain(apiHandler http.Handler, authorizationInfo *apiserver.Aut
|
|||||||
}
|
}
|
||||||
|
|
||||||
// NewBaseHandler takes in CompletedConfig and returns a handler.
|
// NewBaseHandler takes in CompletedConfig and returns a handler.
|
||||||
func NewBaseHandler(c *componentconfig.DebuggingConfiguration) *mux.PathRecorderMux {
|
func NewBaseHandler(c *apiserverconfig.DebuggingConfiguration) *mux.PathRecorderMux {
|
||||||
mux := mux.NewPathRecorderMux("controller-manager")
|
mux := mux.NewPathRecorderMux("controller-manager")
|
||||||
healthz.InstallHandler(mux)
|
healthz.InstallHandler(mux)
|
||||||
if c.EnableProfiling {
|
if c.EnableProfiling {
|
||||||
|
@ -27,6 +27,7 @@ import (
|
|||||||
|
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/apimachinery/pkg/util/diff"
|
"k8s.io/apimachinery/pkg/util/diff"
|
||||||
|
apiserverconfig "k8s.io/apiserver/pkg/apis/config"
|
||||||
apiserveroptions "k8s.io/apiserver/pkg/server/options"
|
apiserveroptions "k8s.io/apiserver/pkg/server/options"
|
||||||
cmoptions "k8s.io/kubernetes/cmd/controller-manager/app/options"
|
cmoptions "k8s.io/kubernetes/cmd/controller-manager/app/options"
|
||||||
"k8s.io/kubernetes/pkg/apis/componentconfig"
|
"k8s.io/kubernetes/pkg/apis/componentconfig"
|
||||||
@ -130,7 +131,7 @@ func TestAddFlags(t *testing.T) {
|
|||||||
KubeAPIQPS: 50.0,
|
KubeAPIQPS: 50.0,
|
||||||
KubeAPIBurst: 100,
|
KubeAPIBurst: 100,
|
||||||
ControllerStartInterval: metav1.Duration{Duration: 2 * time.Minute},
|
ControllerStartInterval: metav1.Duration{Duration: 2 * time.Minute},
|
||||||
LeaderElection: componentconfig.LeaderElectionConfiguration{
|
LeaderElection: apiserverconfig.LeaderElectionConfiguration{
|
||||||
ResourceLock: "configmap",
|
ResourceLock: "configmap",
|
||||||
LeaderElect: false,
|
LeaderElect: false,
|
||||||
LeaseDuration: metav1.Duration{Duration: 30 * time.Second},
|
LeaseDuration: metav1.Duration{Duration: 30 * time.Second},
|
||||||
|
@ -27,6 +27,7 @@ import (
|
|||||||
"github.com/spf13/pflag"
|
"github.com/spf13/pflag"
|
||||||
|
|
||||||
corev1 "k8s.io/api/core/v1"
|
corev1 "k8s.io/api/core/v1"
|
||||||
|
apimachineryconfig "k8s.io/apimachinery/pkg/apis/config"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/apimachinery/pkg/util/uuid"
|
"k8s.io/apimachinery/pkg/util/uuid"
|
||||||
apiserveroptions "k8s.io/apiserver/pkg/server/options"
|
apiserveroptions "k8s.io/apiserver/pkg/server/options"
|
||||||
@ -262,7 +263,7 @@ func makeLeaderElectionConfig(config componentconfig.KubeSchedulerLeaderElection
|
|||||||
|
|
||||||
// createClients creates a kube client and an event client from the given config and masterOverride.
|
// createClients creates a kube client and an event client from the given config and masterOverride.
|
||||||
// TODO remove masterOverride when CLI flags are removed.
|
// TODO remove masterOverride when CLI flags are removed.
|
||||||
func createClients(config componentconfig.ClientConnectionConfiguration, masterOverride string, timeout time.Duration) (clientset.Interface, clientset.Interface, v1core.EventsGetter, error) {
|
func createClients(config apimachineryconfig.ClientConnectionConfiguration, masterOverride string, timeout time.Duration) (clientset.Interface, clientset.Interface, v1core.EventsGetter, error) {
|
||||||
if len(config.Kubeconfig) == 0 && len(masterOverride) == 0 {
|
if len(config.Kubeconfig) == 0 && len(masterOverride) == 0 {
|
||||||
glog.Warningf("Neither --kubeconfig nor --master was specified. Using default API client. This might not work.")
|
glog.Warningf("Neither --kubeconfig nor --master was specified. Using default API client. This might not work.")
|
||||||
}
|
}
|
||||||
|
@ -26,6 +26,7 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
apimachineryconfig "k8s.io/apimachinery/pkg/apis/config"
|
||||||
"k8s.io/kubernetes/pkg/apis/componentconfig"
|
"k8s.io/kubernetes/pkg/apis/componentconfig"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -141,7 +142,7 @@ users:
|
|||||||
name: "kubeconfig flag",
|
name: "kubeconfig flag",
|
||||||
options: &Options{
|
options: &Options{
|
||||||
ComponentConfig: componentconfig.KubeSchedulerConfiguration{
|
ComponentConfig: componentconfig.KubeSchedulerConfiguration{
|
||||||
ClientConnection: componentconfig.ClientConnectionConfiguration{
|
ClientConnection: apimachineryconfig.ClientConnectionConfiguration{
|
||||||
Kubeconfig: flagKubeconfig}}},
|
Kubeconfig: flagKubeconfig}}},
|
||||||
expectedUsername: "flag",
|
expectedUsername: "flag",
|
||||||
},
|
},
|
||||||
|
@ -17,25 +17,11 @@ limitations under the License.
|
|||||||
package componentconfig
|
package componentconfig
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
apimachineryconfig "k8s.io/apimachinery/pkg/apis/config"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
apiserverconfig "k8s.io/apiserver/pkg/apis/config"
|
||||||
)
|
)
|
||||||
|
|
||||||
// ClientConnectionConfiguration contains details for constructing a client.
|
|
||||||
type ClientConnectionConfiguration struct {
|
|
||||||
// kubeconfig is the path to a KubeConfig file.
|
|
||||||
Kubeconfig string
|
|
||||||
// acceptContentTypes defines the Accept header sent by clients when connecting to a server, overriding the
|
|
||||||
// default value of 'application/json'. This field will control all connections to the server used by a particular
|
|
||||||
// client.
|
|
||||||
AcceptContentTypes string
|
|
||||||
// contentType is the content type used when sending data to the server from this client.
|
|
||||||
ContentType string
|
|
||||||
// qps controls the number of queries per second allowed for this connection.
|
|
||||||
QPS float32
|
|
||||||
// burst allows extra queries to accumulate when a client is exceeding its rate.
|
|
||||||
Burst int32
|
|
||||||
}
|
|
||||||
|
|
||||||
// SchedulerPolicyConfigMapKey defines the key of the element in the
|
// SchedulerPolicyConfigMapKey defines the key of the element in the
|
||||||
// scheduler's policy ConfigMap that contains scheduler's policy config.
|
// scheduler's policy ConfigMap that contains scheduler's policy config.
|
||||||
const SchedulerPolicyConfigMapKey string = "policy.cfg"
|
const SchedulerPolicyConfigMapKey string = "policy.cfg"
|
||||||
@ -79,6 +65,11 @@ type SchedulerAlgorithmSource struct {
|
|||||||
type KubeSchedulerConfiguration struct {
|
type KubeSchedulerConfiguration struct {
|
||||||
metav1.TypeMeta
|
metav1.TypeMeta
|
||||||
|
|
||||||
|
// DebuggingConfiguration holds profiling- and debugging-related fields
|
||||||
|
// TODO: DebuggingConfiguration is inlined because it's been like that earlier.
|
||||||
|
// We might consider making it a "real" sub-struct.
|
||||||
|
apiserverconfig.DebuggingConfiguration
|
||||||
|
|
||||||
// schedulerName is name of the scheduler, used to select which pods
|
// schedulerName is name of the scheduler, used to select which pods
|
||||||
// will be processed by this scheduler, based on pod's "spec.SchedulerName".
|
// will be processed by this scheduler, based on pod's "spec.SchedulerName".
|
||||||
SchedulerName string
|
SchedulerName string
|
||||||
@ -94,19 +85,13 @@ type KubeSchedulerConfiguration struct {
|
|||||||
|
|
||||||
// ClientConnection specifies the kubeconfig file and client connection
|
// ClientConnection specifies the kubeconfig file and client connection
|
||||||
// settings for the proxy server to use when communicating with the apiserver.
|
// settings for the proxy server to use when communicating with the apiserver.
|
||||||
ClientConnection ClientConnectionConfiguration
|
ClientConnection apimachineryconfig.ClientConnectionConfiguration
|
||||||
// HealthzBindAddress is the IP address and port for the health check server to serve on,
|
// HealthzBindAddress is the IP address and port for the health check server to serve on,
|
||||||
// defaulting to 0.0.0.0:10251
|
// defaulting to 0.0.0.0:10251
|
||||||
HealthzBindAddress string
|
HealthzBindAddress string
|
||||||
// MetricsBindAddress is the IP address and port for the metrics server to
|
// MetricsBindAddress is the IP address and port for the metrics server to
|
||||||
// serve on, defaulting to 0.0.0.0:10251.
|
// serve on, defaulting to 0.0.0.0:10251.
|
||||||
MetricsBindAddress string
|
MetricsBindAddress string
|
||||||
// EnableProfiling enables profiling via web interface on /debug/pprof
|
|
||||||
// handler. Profiling handlers will be handled by metrics server.
|
|
||||||
EnableProfiling bool
|
|
||||||
// EnableContentionProfiling enables lock contention profiling, if
|
|
||||||
// EnableProfiling is true.
|
|
||||||
EnableContentionProfiling bool
|
|
||||||
|
|
||||||
// Indicate the "all topologies" set for empty topologyKey when it's used for PreferredDuringScheduling pod anti-affinity.
|
// Indicate the "all topologies" set for empty topologyKey when it's used for PreferredDuringScheduling pod anti-affinity.
|
||||||
// DEPRECATED: This is no longer used.
|
// DEPRECATED: This is no longer used.
|
||||||
@ -119,7 +104,7 @@ type KubeSchedulerConfiguration struct {
|
|||||||
// KubeSchedulerLeaderElectionConfiguration expands LeaderElectionConfiguration
|
// KubeSchedulerLeaderElectionConfiguration expands LeaderElectionConfiguration
|
||||||
// to include scheduler specific configuration.
|
// to include scheduler specific configuration.
|
||||||
type KubeSchedulerLeaderElectionConfiguration struct {
|
type KubeSchedulerLeaderElectionConfiguration struct {
|
||||||
LeaderElectionConfiguration
|
apiserverconfig.LeaderElectionConfiguration
|
||||||
|
|
||||||
// LockObjectNamespace defines the namespace of the lock object
|
// LockObjectNamespace defines the namespace of the lock object
|
||||||
LockObjectNamespace string
|
LockObjectNamespace string
|
||||||
@ -127,34 +112,6 @@ type KubeSchedulerLeaderElectionConfiguration struct {
|
|||||||
LockObjectName string
|
LockObjectName string
|
||||||
}
|
}
|
||||||
|
|
||||||
// LeaderElectionConfiguration defines the configuration of leader election
|
|
||||||
// clients for components that can run with leader election enabled.
|
|
||||||
type LeaderElectionConfiguration struct {
|
|
||||||
// leaderElect enables a leader election client to gain leadership
|
|
||||||
// before executing the main loop. Enable this when running replicated
|
|
||||||
// components for high availability.
|
|
||||||
LeaderElect bool
|
|
||||||
// leaseDuration is the duration that non-leader candidates will wait
|
|
||||||
// after observing a leadership renewal until attempting to acquire
|
|
||||||
// leadership of a led but unrenewed leader slot. This is effectively the
|
|
||||||
// maximum duration that a leader can be stopped before it is replaced
|
|
||||||
// by another candidate. This is only applicable if leader election is
|
|
||||||
// enabled.
|
|
||||||
LeaseDuration metav1.Duration
|
|
||||||
// renewDeadline is the interval between attempts by the acting master to
|
|
||||||
// renew a leadership slot before it stops leading. This must be less
|
|
||||||
// than or equal to the lease duration. This is only applicable if leader
|
|
||||||
// election is enabled.
|
|
||||||
RenewDeadline metav1.Duration
|
|
||||||
// retryPeriod is the duration the clients should wait between attempting
|
|
||||||
// acquisition and renewal of a leadership. This is only applicable if
|
|
||||||
// leader election is enabled.
|
|
||||||
RetryPeriod metav1.Duration
|
|
||||||
// resourceLock indicates the resource object type that will be used to lock
|
|
||||||
// during leader election cycles.
|
|
||||||
ResourceLock string
|
|
||||||
}
|
|
||||||
|
|
||||||
type GroupResource struct {
|
type GroupResource struct {
|
||||||
// group is the group portion of the GroupResource.
|
// group is the group portion of the GroupResource.
|
||||||
Group string
|
Group string
|
||||||
@ -170,7 +127,7 @@ type KubeControllerManagerConfiguration struct {
|
|||||||
// CloudProviderConfiguration holds configuration for CloudProvider related features.
|
// CloudProviderConfiguration holds configuration for CloudProvider related features.
|
||||||
CloudProvider CloudProviderConfiguration
|
CloudProvider CloudProviderConfiguration
|
||||||
// DebuggingConfiguration holds configuration for Debugging related features.
|
// DebuggingConfiguration holds configuration for Debugging related features.
|
||||||
Debugging DebuggingConfiguration
|
Debugging apiserverconfig.DebuggingConfiguration
|
||||||
// GenericComponentConfiguration holds configuration for GenericComponent
|
// GenericComponentConfiguration holds configuration for GenericComponent
|
||||||
// related features both in cloud controller manager and kube-controller manager.
|
// related features both in cloud controller manager and kube-controller manager.
|
||||||
GenericComponent GenericComponentConfiguration
|
GenericComponent GenericComponentConfiguration
|
||||||
@ -252,7 +209,7 @@ type CloudControllerManagerConfiguration struct {
|
|||||||
// CloudProviderConfiguration holds configuration for CloudProvider related features.
|
// CloudProviderConfiguration holds configuration for CloudProvider related features.
|
||||||
CloudProvider CloudProviderConfiguration
|
CloudProvider CloudProviderConfiguration
|
||||||
// DebuggingConfiguration holds configuration for Debugging related features.
|
// DebuggingConfiguration holds configuration for Debugging related features.
|
||||||
Debugging DebuggingConfiguration
|
Debugging apiserverconfig.DebuggingConfiguration
|
||||||
// GenericComponentConfiguration holds configuration for GenericComponent
|
// GenericComponentConfiguration holds configuration for GenericComponent
|
||||||
// related features both in cloud controller manager and kube-controller manager.
|
// related features both in cloud controller manager and kube-controller manager.
|
||||||
GenericComponent GenericComponentConfiguration
|
GenericComponent GenericComponentConfiguration
|
||||||
@ -273,14 +230,6 @@ type CloudProviderConfiguration struct {
|
|||||||
CloudConfigFile string
|
CloudConfigFile string
|
||||||
}
|
}
|
||||||
|
|
||||||
type DebuggingConfiguration struct {
|
|
||||||
// enableProfiling enables profiling via web interface host:port/debug/pprof/
|
|
||||||
EnableProfiling bool
|
|
||||||
// EnableContentionProfiling enables lock contention profiling, if
|
|
||||||
// EnableProfiling is true.
|
|
||||||
EnableContentionProfiling bool
|
|
||||||
}
|
|
||||||
|
|
||||||
type GenericComponentConfiguration struct {
|
type GenericComponentConfiguration struct {
|
||||||
// minResyncPeriod is the resync period in reflectors; will be random between
|
// minResyncPeriod is the resync period in reflectors; will be random between
|
||||||
// minResyncPeriod and 2*minResyncPeriod.
|
// minResyncPeriod and 2*minResyncPeriod.
|
||||||
@ -294,7 +243,7 @@ type GenericComponentConfiguration struct {
|
|||||||
// How long to wait between starting controller managers
|
// How long to wait between starting controller managers
|
||||||
ControllerStartInterval metav1.Duration
|
ControllerStartInterval metav1.Duration
|
||||||
// leaderElection defines the configuration of leader election client.
|
// leaderElection defines the configuration of leader election client.
|
||||||
LeaderElection LeaderElectionConfiguration
|
LeaderElection apiserverconfig.LeaderElectionConfiguration
|
||||||
}
|
}
|
||||||
|
|
||||||
type KubeCloudSharedConfiguration struct {
|
type KubeCloudSharedConfiguration struct {
|
||||||
|
@ -21,8 +21,10 @@ import (
|
|||||||
"strconv"
|
"strconv"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
apimachineryconfigv1alpha1 "k8s.io/apimachinery/pkg/apis/config/v1alpha1"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
kruntime "k8s.io/apimachinery/pkg/runtime"
|
kruntime "k8s.io/apimachinery/pkg/runtime"
|
||||||
|
apiserverconfigv1alpha1 "k8s.io/apiserver/pkg/apis/config/v1alpha1"
|
||||||
api "k8s.io/kubernetes/pkg/apis/core"
|
api "k8s.io/kubernetes/pkg/apis/core"
|
||||||
kubeletapis "k8s.io/kubernetes/pkg/kubelet/apis"
|
kubeletapis "k8s.io/kubernetes/pkg/kubelet/apis"
|
||||||
"k8s.io/kubernetes/pkg/master/ports"
|
"k8s.io/kubernetes/pkg/master/ports"
|
||||||
@ -163,6 +165,9 @@ func SetDefaults_GenericComponentConfiguration(obj *GenericComponentConfiguratio
|
|||||||
if obj.ControllerStartInterval == zero {
|
if obj.ControllerStartInterval == zero {
|
||||||
obj.ControllerStartInterval = metav1.Duration{Duration: 0 * time.Second}
|
obj.ControllerStartInterval = metav1.Duration{Duration: 0 * time.Second}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Use the default LeaderElectionConfiguration options
|
||||||
|
apiserverconfigv1alpha1.RecommendedDefaultLeaderElectionConfiguration(&obj.LeaderElection)
|
||||||
}
|
}
|
||||||
|
|
||||||
func SetDefaults_KubeCloudSharedConfiguration(obj *KubeCloudSharedConfiguration) {
|
func SetDefaults_KubeCloudSharedConfiguration(obj *KubeCloudSharedConfiguration) {
|
||||||
@ -254,12 +259,10 @@ func SetDefaults_KubeSchedulerConfiguration(obj *KubeSchedulerConfiguration) {
|
|||||||
obj.MetricsBindAddress = net.JoinHostPort("0.0.0.0", strconv.Itoa(ports.SchedulerPort))
|
obj.MetricsBindAddress = net.JoinHostPort("0.0.0.0", strconv.Itoa(ports.SchedulerPort))
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(obj.ClientConnection.ContentType) == 0 {
|
|
||||||
obj.ClientConnection.ContentType = "application/vnd.kubernetes.protobuf"
|
|
||||||
}
|
|
||||||
if obj.ClientConnection.QPS == 0.0 {
|
if obj.ClientConnection.QPS == 0.0 {
|
||||||
obj.ClientConnection.QPS = 50.0
|
obj.ClientConnection.QPS = 50.0
|
||||||
}
|
}
|
||||||
|
|
||||||
if obj.ClientConnection.Burst == 0 {
|
if obj.ClientConnection.Burst == 0 {
|
||||||
obj.ClientConnection.Burst = 100
|
obj.ClientConnection.Burst = 100
|
||||||
}
|
}
|
||||||
@ -274,24 +277,8 @@ func SetDefaults_KubeSchedulerConfiguration(obj *KubeSchedulerConfiguration) {
|
|||||||
if len(obj.FailureDomains) == 0 {
|
if len(obj.FailureDomains) == 0 {
|
||||||
obj.FailureDomains = kubeletapis.DefaultFailureDomains
|
obj.FailureDomains = kubeletapis.DefaultFailureDomains
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
func SetDefaults_LeaderElectionConfiguration(obj *LeaderElectionConfiguration) {
|
// Use the default ClientConnectionConfiguration and LeaderElectionConfiguration options
|
||||||
zero := metav1.Duration{}
|
apimachineryconfigv1alpha1.RecommendedDefaultClientConnectionConfiguration(&obj.ClientConnection)
|
||||||
if obj.LeaseDuration == zero {
|
apiserverconfigv1alpha1.RecommendedDefaultLeaderElectionConfiguration(&obj.LeaderElection.LeaderElectionConfiguration)
|
||||||
obj.LeaseDuration = metav1.Duration{Duration: 15 * time.Second}
|
|
||||||
}
|
|
||||||
if obj.RenewDeadline == zero {
|
|
||||||
obj.RenewDeadline = metav1.Duration{Duration: 10 * time.Second}
|
|
||||||
}
|
|
||||||
if obj.RetryPeriod == zero {
|
|
||||||
obj.RetryPeriod = metav1.Duration{Duration: 2 * time.Second}
|
|
||||||
}
|
|
||||||
if obj.ResourceLock == "" {
|
|
||||||
// obj.ResourceLock = rl.EndpointsResourceLock
|
|
||||||
obj.ResourceLock = "endpoints"
|
|
||||||
}
|
|
||||||
if obj.LeaderElect == nil {
|
|
||||||
obj.LeaderElect = utilpointer.BoolPtr(true)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -14,8 +14,15 @@ See the License for the specific language governing permissions and
|
|||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
// Note: The referenced generic ComponentConfig packages with conversions
|
||||||
|
// between the types (e.g. the external package) needs to be given as an
|
||||||
|
// input to conversion-gen for it to find the native conversation funcs to
|
||||||
|
// call.
|
||||||
|
|
||||||
// +k8s:deepcopy-gen=package
|
// +k8s:deepcopy-gen=package
|
||||||
// +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/componentconfig
|
// +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/componentconfig
|
||||||
|
// +k8s:conversion-gen=k8s.io/apimachinery/pkg/apis/config/v1alpha1
|
||||||
|
// +k8s:conversion-gen=k8s.io/apiserver/pkg/apis/config/v1alpha1
|
||||||
// +k8s:openapi-gen=true
|
// +k8s:openapi-gen=true
|
||||||
// +k8s:defaulter-gen=TypeMeta
|
// +k8s:defaulter-gen=TypeMeta
|
||||||
|
|
||||||
|
@ -17,26 +17,11 @@ limitations under the License.
|
|||||||
package v1alpha1
|
package v1alpha1
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
apimachineryconfigv1alpha1 "k8s.io/apimachinery/pkg/apis/config/v1alpha1"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
apiserverconfigv1alpha1 "k8s.io/apiserver/pkg/apis/config/v1alpha1"
|
||||||
)
|
)
|
||||||
|
|
||||||
// ClientConnectionConfiguration contains details for constructing a client.
|
|
||||||
// TODO: This struct should be referenced from k8s.io/apimachinery/pkg/apis/config instead.
|
|
||||||
type ClientConnectionConfiguration struct {
|
|
||||||
// kubeconfig is the path to a KubeConfig file.
|
|
||||||
Kubeconfig string `json:"kubeconfig"`
|
|
||||||
// acceptContentTypes defines the Accept header sent by clients when connecting to a server, overriding the
|
|
||||||
// default value of 'application/json'. This field will control all connections to the server used by a particular
|
|
||||||
// client.
|
|
||||||
AcceptContentTypes string `json:"acceptContentTypes"`
|
|
||||||
// contentType is the content type used when sending data to the server from this client.
|
|
||||||
ContentType string `json:"contentType"`
|
|
||||||
// qps controls the number of queries per second allowed for this connection.
|
|
||||||
QPS float32 `json:"qps"`
|
|
||||||
// burst allows extra queries to accumulate when a client is exceeding its rate.
|
|
||||||
Burst int32 `json:"burst"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// SchedulerPolicySource configures a means to obtain a scheduler Policy. One
|
// SchedulerPolicySource configures a means to obtain a scheduler Policy. One
|
||||||
// source field must be specified, and source fields are mutually exclusive.
|
// source field must be specified, and source fields are mutually exclusive.
|
||||||
type SchedulerPolicySource struct {
|
type SchedulerPolicySource struct {
|
||||||
@ -76,6 +61,11 @@ type SchedulerAlgorithmSource struct {
|
|||||||
type KubeSchedulerConfiguration struct {
|
type KubeSchedulerConfiguration struct {
|
||||||
metav1.TypeMeta `json:",inline"`
|
metav1.TypeMeta `json:",inline"`
|
||||||
|
|
||||||
|
// DebuggingConfiguration holds profiling- and debugging-related fields
|
||||||
|
// TODO: DebuggingConfiguration is inlined because it's been like that earlier.
|
||||||
|
// We might consider making it a "real" sub-struct.
|
||||||
|
apiserverconfigv1alpha1.DebuggingConfiguration `json:",inline"`
|
||||||
|
|
||||||
// SchedulerName is name of the scheduler, used to select which pods
|
// SchedulerName is name of the scheduler, used to select which pods
|
||||||
// will be processed by this scheduler, based on pod's "spec.SchedulerName".
|
// will be processed by this scheduler, based on pod's "spec.SchedulerName".
|
||||||
SchedulerName string `json:"schedulerName"`
|
SchedulerName string `json:"schedulerName"`
|
||||||
@ -87,23 +77,18 @@ type KubeSchedulerConfiguration struct {
|
|||||||
HardPodAffinitySymmetricWeight int32 `json:"hardPodAffinitySymmetricWeight"`
|
HardPodAffinitySymmetricWeight int32 `json:"hardPodAffinitySymmetricWeight"`
|
||||||
|
|
||||||
// LeaderElection defines the configuration of leader election client.
|
// LeaderElection defines the configuration of leader election client.
|
||||||
|
// TODO: Migrate the kube-scheduler-specific stuff into the generic LeaderElectionConfig?
|
||||||
LeaderElection KubeSchedulerLeaderElectionConfiguration `json:"leaderElection"`
|
LeaderElection KubeSchedulerLeaderElectionConfiguration `json:"leaderElection"`
|
||||||
|
|
||||||
// ClientConnection specifies the kubeconfig file and client connection
|
// ClientConnection specifies the kubeconfig file and client connection
|
||||||
// settings for the proxy server to use when communicating with the apiserver.
|
// settings for the proxy server to use when communicating with the apiserver.
|
||||||
ClientConnection ClientConnectionConfiguration `json:"clientConnection"`
|
ClientConnection apimachineryconfigv1alpha1.ClientConnectionConfiguration `json:"clientConnection"`
|
||||||
// HealthzBindAddress is the IP address and port for the health check server to serve on,
|
// HealthzBindAddress is the IP address and port for the health check server to serve on,
|
||||||
// defaulting to 0.0.0.0:10251
|
// defaulting to 0.0.0.0:10251
|
||||||
HealthzBindAddress string `json:"healthzBindAddress"`
|
HealthzBindAddress string `json:"healthzBindAddress"`
|
||||||
// MetricsBindAddress is the IP address and port for the metrics server to
|
// MetricsBindAddress is the IP address and port for the metrics server to
|
||||||
// serve on, defaulting to 0.0.0.0:10251.
|
// serve on, defaulting to 0.0.0.0:10251.
|
||||||
MetricsBindAddress string `json:"metricsBindAddress"`
|
MetricsBindAddress string `json:"metricsBindAddress"`
|
||||||
// EnableProfiling enables profiling via web interface on /debug/pprof
|
|
||||||
// handler. Profiling handlers will be handled by metrics server.
|
|
||||||
EnableProfiling bool `json:"enableProfiling"`
|
|
||||||
// EnableContentionProfiling enables lock contention profiling, if
|
|
||||||
// EnableProfiling is true.
|
|
||||||
EnableContentionProfiling bool `json:"enableContentionProfiling"`
|
|
||||||
|
|
||||||
// Indicate the "all topologies" set for empty topologyKey when it's used for PreferredDuringScheduling pod anti-affinity.
|
// Indicate the "all topologies" set for empty topologyKey when it's used for PreferredDuringScheduling pod anti-affinity.
|
||||||
FailureDomains string `json:"failureDomains"`
|
FailureDomains string `json:"failureDomains"`
|
||||||
@ -112,38 +97,10 @@ type KubeSchedulerConfiguration struct {
|
|||||||
DisablePreemption bool `json:"disablePreemption"`
|
DisablePreemption bool `json:"disablePreemption"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// LeaderElectionConfiguration defines the configuration of leader election
|
|
||||||
// clients for components that can run with leader election enabled.
|
|
||||||
type LeaderElectionConfiguration struct {
|
|
||||||
// leaderElect enables a leader election client to gain leadership
|
|
||||||
// before executing the main loop. Enable this when running replicated
|
|
||||||
// components for high availability.
|
|
||||||
LeaderElect *bool `json:"leaderElect"`
|
|
||||||
// leaseDuration is the duration that non-leader candidates will wait
|
|
||||||
// after observing a leadership renewal until attempting to acquire
|
|
||||||
// leadership of a led but unrenewed leader slot. This is effectively the
|
|
||||||
// maximum duration that a leader can be stopped before it is replaced
|
|
||||||
// by another candidate. This is only applicable if leader election is
|
|
||||||
// enabled.
|
|
||||||
LeaseDuration metav1.Duration `json:"leaseDuration"`
|
|
||||||
// renewDeadline is the interval between attempts by the acting master to
|
|
||||||
// renew a leadership slot before it stops leading. This must be less
|
|
||||||
// than or equal to the lease duration. This is only applicable if leader
|
|
||||||
// election is enabled.
|
|
||||||
RenewDeadline metav1.Duration `json:"renewDeadline"`
|
|
||||||
// retryPeriod is the duration the clients should wait between attempting
|
|
||||||
// acquisition and renewal of a leadership. This is only applicable if
|
|
||||||
// leader election is enabled.
|
|
||||||
RetryPeriod metav1.Duration `json:"retryPeriod"`
|
|
||||||
// resourceLock indicates the resource object type that will be used to lock
|
|
||||||
// during leader election cycles.
|
|
||||||
ResourceLock string `json:"resourceLock"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// KubeSchedulerLeaderElectionConfiguration expands LeaderElectionConfiguration
|
// KubeSchedulerLeaderElectionConfiguration expands LeaderElectionConfiguration
|
||||||
// to include scheduler specific configuration.
|
// to include scheduler specific configuration.
|
||||||
type KubeSchedulerLeaderElectionConfiguration struct {
|
type KubeSchedulerLeaderElectionConfiguration struct {
|
||||||
LeaderElectionConfiguration `json:",inline"`
|
apiserverconfigv1alpha1.LeaderElectionConfiguration `json:",inline"`
|
||||||
// LockObjectNamespace defines the namespace of the lock object
|
// LockObjectNamespace defines the namespace of the lock object
|
||||||
LockObjectNamespace string `json:"lockObjectNamespace"`
|
LockObjectNamespace string `json:"lockObjectNamespace"`
|
||||||
// LockObjectName defines the lock object name
|
// LockObjectName defines the lock object name
|
||||||
@ -213,7 +170,7 @@ type KubeControllerManagerConfiguration struct {
|
|||||||
// CloudProviderConfiguration holds configuration for CloudProvider related features.
|
// CloudProviderConfiguration holds configuration for CloudProvider related features.
|
||||||
CloudProvider CloudProviderConfiguration
|
CloudProvider CloudProviderConfiguration
|
||||||
// DebuggingConfiguration holds configuration for Debugging related features.
|
// DebuggingConfiguration holds configuration for Debugging related features.
|
||||||
Debugging DebuggingConfiguration
|
Debugging apiserverconfigv1alpha1.DebuggingConfiguration
|
||||||
// GenericComponentConfiguration holds configuration for GenericComponent
|
// GenericComponentConfiguration holds configuration for GenericComponent
|
||||||
// related features both in cloud controller manager and kube-controller manager.
|
// related features both in cloud controller manager and kube-controller manager.
|
||||||
GenericComponent GenericComponentConfiguration
|
GenericComponent GenericComponentConfiguration
|
||||||
@ -295,7 +252,7 @@ type CloudControllerManagerConfiguration struct {
|
|||||||
// CloudProviderConfiguration holds configuration for CloudProvider related features.
|
// CloudProviderConfiguration holds configuration for CloudProvider related features.
|
||||||
CloudProvider CloudProviderConfiguration
|
CloudProvider CloudProviderConfiguration
|
||||||
// DebuggingConfiguration holds configuration for Debugging related features.
|
// DebuggingConfiguration holds configuration for Debugging related features.
|
||||||
Debugging DebuggingConfiguration
|
Debugging apiserverconfigv1alpha1.DebuggingConfiguration
|
||||||
// GenericComponentConfiguration holds configuration for GenericComponent
|
// GenericComponentConfiguration holds configuration for GenericComponent
|
||||||
// related features both in cloud controller manager and kube-controller manager.
|
// related features both in cloud controller manager and kube-controller manager.
|
||||||
GenericComponent GenericComponentConfiguration
|
GenericComponent GenericComponentConfiguration
|
||||||
@ -316,14 +273,6 @@ type CloudProviderConfiguration struct {
|
|||||||
CloudConfigFile string
|
CloudConfigFile string
|
||||||
}
|
}
|
||||||
|
|
||||||
type DebuggingConfiguration struct {
|
|
||||||
// enableProfiling enables profiling via web interface host:port/debug/pprof/
|
|
||||||
EnableProfiling bool
|
|
||||||
// EnableContentionProfiling enables lock contention profiling, if
|
|
||||||
// EnableProfiling is true.
|
|
||||||
EnableContentionProfiling bool
|
|
||||||
}
|
|
||||||
|
|
||||||
type GenericComponentConfiguration struct {
|
type GenericComponentConfiguration struct {
|
||||||
|
|
||||||
// minResyncPeriod is the resync period in reflectors; will be random between
|
// minResyncPeriod is the resync period in reflectors; will be random between
|
||||||
@ -338,7 +287,7 @@ type GenericComponentConfiguration struct {
|
|||||||
// How long to wait between starting controller managers
|
// How long to wait between starting controller managers
|
||||||
ControllerStartInterval metav1.Duration
|
ControllerStartInterval metav1.Duration
|
||||||
// leaderElection defines the configuration of leader election client.
|
// leaderElection defines the configuration of leader election client.
|
||||||
LeaderElection LeaderElectionConfiguration
|
LeaderElection apiserverconfigv1alpha1.LeaderElectionConfiguration
|
||||||
}
|
}
|
||||||
|
|
||||||
type KubeCloudSharedConfiguration struct {
|
type KubeCloudSharedConfiguration struct {
|
||||||
|
@ -20,15 +20,15 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/spf13/pflag"
|
"github.com/spf13/pflag"
|
||||||
"k8s.io/kubernetes/pkg/apis/componentconfig"
|
apiserverconfig "k8s.io/apiserver/pkg/apis/config"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
DefaultLeaseDuration = 15 * time.Second
|
DefaultLeaseDuration = 15 * time.Second
|
||||||
)
|
)
|
||||||
|
|
||||||
// BindFlags binds the common LeaderElectionCLIConfig flags to a flagset
|
// BindFlags binds the LeaderElectionConfiguration struct fields to a flagset
|
||||||
func BindFlags(l *componentconfig.LeaderElectionConfiguration, fs *pflag.FlagSet) {
|
func BindFlags(l *apiserverconfig.LeaderElectionConfiguration, fs *pflag.FlagSet) {
|
||||||
fs.BoolVar(&l.LeaderElect, "leader-elect", l.LeaderElect, ""+
|
fs.BoolVar(&l.LeaderElect, "leader-elect", l.LeaderElect, ""+
|
||||||
"Start a leader election client and gain leadership before "+
|
"Start a leader election client and gain leadership before "+
|
||||||
"executing the main loop. Enable this when running replicated "+
|
"executing the main loop. Enable this when running replicated "+
|
||||||
|
Loading…
Reference in New Issue
Block a user