Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
4bef9262
Unverified
Commit
4bef9262
authored
Aug 14, 2018
by
Lucas Käldström
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Remove references to the config structs that have moved to their own shared packages
parent
62745905
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
59 additions
and
165 deletions
+59
-165
violation_exceptions.list
api/api-rules/violation_exceptions.list
+0
-2
options_test.go
cmd/cloud-controller-manager/app/options/options_test.go
+3
-3
debugging.go
cmd/controller-manager/app/options/debugging.go
+2
-2
generic.go
cmd/controller-manager/app/options/generic.go
+2
-1
serve.go
cmd/controller-manager/app/serve.go
+2
-2
options_test.go
cmd/kube-controller-manager/app/options/options_test.go
+2
-1
options.go
cmd/kube-scheduler/app/options/options.go
+2
-1
options_test.go
cmd/kube-scheduler/app/options/options_test.go
+2
-1
types.go
pkg/apis/componentconfig/types.go
+12
-63
defaults.go
pkg/apis/componentconfig/v1alpha1/defaults.go
+9
-22
doc.go
pkg/apis/componentconfig/v1alpha1/doc.go
+7
-0
types.go
pkg/apis/componentconfig/v1alpha1/types.go
+13
-64
config.go
pkg/client/leaderelectionconfig/config.go
+3
-3
No files found.
api/api-rules/violation_exceptions.list
View file @
4bef9262
...
...
@@ -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,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,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,DeploymentControllerSyncPeriod
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,DeprecatedControllerConfiguration,DeletingPodsQps
...
...
cmd/cloud-controller-manager/app/options/options_test.go
View file @
4bef9262
...
...
@@ -26,9 +26,9 @@ import (
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/util/diff"
apiserverconfig
"k8s.io/apiserver/pkg/apis/config"
apiserveroptions
"k8s.io/apiserver/pkg/server/options"
cmoptions
"k8s.io/kubernetes/cmd/controller-manager/app/options"
"k8s.io/kubernetes/pkg/apis/componentconfig"
)
func
TestDefaultFlags
(
t
*
testing
.
T
)
{
...
...
@@ -48,7 +48,7 @@ func TestDefaultFlags(t *testing.T) {
KubeAPIQPS
:
20.0
,
KubeAPIBurst
:
30
,
ControllerStartInterval
:
metav1
.
Duration
{
Duration
:
0
},
LeaderElection
:
component
config
.
LeaderElectionConfiguration
{
LeaderElection
:
apiserver
config
.
LeaderElectionConfiguration
{
ResourceLock
:
"endpoints"
,
LeaderElect
:
true
,
LeaseDuration
:
metav1
.
Duration
{
Duration
:
15
*
time
.
Second
},
...
...
@@ -145,7 +145,7 @@ func TestAddFlags(t *testing.T) {
KubeAPIQPS
:
50.0
,
KubeAPIBurst
:
100
,
ControllerStartInterval
:
metav1
.
Duration
{
Duration
:
2
*
time
.
Minute
},
LeaderElection
:
component
config
.
LeaderElectionConfiguration
{
LeaderElection
:
apiserver
config
.
LeaderElectionConfiguration
{
ResourceLock
:
"configmap"
,
LeaderElect
:
false
,
LeaseDuration
:
metav1
.
Duration
{
Duration
:
30
*
time
.
Second
},
...
...
cmd/controller-manager/app/options/debugging.go
View file @
4bef9262
...
...
@@ -19,7 +19,7 @@ package options
import
(
"github.com/spf13/pflag"
"k8s.io/kubernetes/pkg/apis/component
config"
apiserverconfig
"k8s.io/apiserver/pkg/apis/
config"
)
// DebuggingOptions holds the Debugging options.
...
...
@@ -41,7 +41,7 @@ func (o *DebuggingOptions) AddFlags(fs *pflag.FlagSet) {
}
// ApplyTo fills up Debugging config with options.
func
(
o
*
DebuggingOptions
)
ApplyTo
(
cfg
*
component
config
.
DebuggingConfiguration
)
error
{
func
(
o
*
DebuggingOptions
)
ApplyTo
(
cfg
*
apiserver
config
.
DebuggingConfiguration
)
error
{
if
o
==
nil
{
return
nil
}
...
...
cmd/controller-manager/app/options/generic.go
View file @
4bef9262
...
...
@@ -20,6 +20,7 @@ import (
"github.com/spf13/pflag"
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/client/leaderelectionconfig"
)
...
...
@@ -31,7 +32,7 @@ type GenericComponentConfigOptions struct {
KubeAPIQPS
float32
KubeAPIBurst
int32
ControllerStartInterval
metav1
.
Duration
LeaderElection
component
config
.
LeaderElectionConfiguration
LeaderElection
apiserver
config
.
LeaderElectionConfiguration
}
// NewGenericComponentConfigOptions returns generic configuration default values for both
...
...
cmd/controller-manager/app/serve.go
View file @
4bef9262
...
...
@@ -22,6 +22,7 @@ import (
"github.com/prometheus/client_golang/prometheus"
apiserverconfig
"k8s.io/apiserver/pkg/apis/config"
genericapifilters
"k8s.io/apiserver/pkg/endpoints/filters"
apirequest
"k8s.io/apiserver/pkg/endpoints/request"
apiserver
"k8s.io/apiserver/pkg/server"
...
...
@@ -30,7 +31,6 @@ import (
"k8s.io/apiserver/pkg/server/mux"
"k8s.io/apiserver/pkg/server/routes"
"k8s.io/kubernetes/pkg/api/legacyscheme"
"k8s.io/kubernetes/pkg/apis/componentconfig"
"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.
func
NewBaseHandler
(
c
*
component
config
.
DebuggingConfiguration
)
*
mux
.
PathRecorderMux
{
func
NewBaseHandler
(
c
*
apiserver
config
.
DebuggingConfiguration
)
*
mux
.
PathRecorderMux
{
mux
:=
mux
.
NewPathRecorderMux
(
"controller-manager"
)
healthz
.
InstallHandler
(
mux
)
if
c
.
EnableProfiling
{
...
...
cmd/kube-controller-manager/app/options/options_test.go
View file @
4bef9262
...
...
@@ -27,6 +27,7 @@ import (
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/util/diff"
apiserverconfig
"k8s.io/apiserver/pkg/apis/config"
apiserveroptions
"k8s.io/apiserver/pkg/server/options"
cmoptions
"k8s.io/kubernetes/cmd/controller-manager/app/options"
"k8s.io/kubernetes/pkg/apis/componentconfig"
...
...
@@ -130,7 +131,7 @@ func TestAddFlags(t *testing.T) {
KubeAPIQPS
:
50.0
,
KubeAPIBurst
:
100
,
ControllerStartInterval
:
metav1
.
Duration
{
Duration
:
2
*
time
.
Minute
},
LeaderElection
:
component
config
.
LeaderElectionConfiguration
{
LeaderElection
:
apiserver
config
.
LeaderElectionConfiguration
{
ResourceLock
:
"configmap"
,
LeaderElect
:
false
,
LeaseDuration
:
metav1
.
Duration
{
Duration
:
30
*
time
.
Second
},
...
...
cmd/kube-scheduler/app/options/options.go
View file @
4bef9262
...
...
@@ -27,6 +27,7 @@ import (
"github.com/spf13/pflag"
corev1
"k8s.io/api/core/v1"
apimachineryconfig
"k8s.io/apimachinery/pkg/apis/config"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/util/uuid"
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.
// TODO remove masterOverride when CLI flags are removed.
func
createClients
(
config
component
config
.
ClientConnectionConfiguration
,
masterOverride
string
,
timeout
time
.
Duration
)
(
clientset
.
Interface
,
clientset
.
Interface
,
v1core
.
EventsGetter
,
error
)
{
func
createClients
(
config
apimachinery
config
.
ClientConnectionConfiguration
,
masterOverride
string
,
timeout
time
.
Duration
)
(
clientset
.
Interface
,
clientset
.
Interface
,
v1core
.
EventsGetter
,
error
)
{
if
len
(
config
.
Kubeconfig
)
==
0
&&
len
(
masterOverride
)
==
0
{
glog
.
Warningf
(
"Neither --kubeconfig nor --master was specified. Using default API client. This might not work."
)
}
...
...
cmd/kube-scheduler/app/options/options_test.go
View file @
4bef9262
...
...
@@ -26,6 +26,7 @@ import (
"strings"
"testing"
apimachineryconfig
"k8s.io/apimachinery/pkg/apis/config"
"k8s.io/kubernetes/pkg/apis/componentconfig"
)
...
...
@@ -141,7 +142,7 @@ users:
name
:
"kubeconfig flag"
,
options
:
&
Options
{
ComponentConfig
:
componentconfig
.
KubeSchedulerConfiguration
{
ClientConnection
:
component
config
.
ClientConnectionConfiguration
{
ClientConnection
:
apimachinery
config
.
ClientConnectionConfiguration
{
Kubeconfig
:
flagKubeconfig
}}},
expectedUsername
:
"flag"
,
},
...
...
pkg/apis/componentconfig/types.go
View file @
4bef9262
...
...
@@ -17,25 +17,11 @@ limitations under the License.
package
componentconfig
import
(
apimachineryconfig
"k8s.io/apimachinery/pkg/apis/config"
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
// scheduler's policy ConfigMap that contains scheduler's policy config.
const
SchedulerPolicyConfigMapKey
string
=
"policy.cfg"
...
...
@@ -79,6 +65,11 @@ type SchedulerAlgorithmSource struct {
type
KubeSchedulerConfiguration
struct
{
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
// will be processed by this scheduler, based on pod's "spec.SchedulerName".
SchedulerName
string
...
...
@@ -94,19 +85,13 @@ type KubeSchedulerConfiguration struct {
// ClientConnection specifies the kubeconfig file and client connection
// 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,
// defaulting to 0.0.0.0:10251
HealthzBindAddress
string
// MetricsBindAddress is the IP address and port for the metrics server to
// serve on, defaulting to 0.0.0.0:10251.
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.
// DEPRECATED: This is no longer used.
...
...
@@ -119,7 +104,7 @@ type KubeSchedulerConfiguration struct {
// KubeSchedulerLeaderElectionConfiguration expands LeaderElectionConfiguration
// to include scheduler specific configuration.
type
KubeSchedulerLeaderElectionConfiguration
struct
{
LeaderElectionConfiguration
apiserverconfig
.
LeaderElectionConfiguration
// LockObjectNamespace defines the namespace of the lock object
LockObjectNamespace
string
...
...
@@ -127,34 +112,6 @@ type KubeSchedulerLeaderElectionConfiguration struct {
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
{
// group is the group portion of the GroupResource.
Group
string
...
...
@@ -170,7 +127,7 @@ type KubeControllerManagerConfiguration struct {
// CloudProviderConfiguration holds configuration for CloudProvider related features.
CloudProvider
CloudProviderConfiguration
// DebuggingConfiguration holds configuration for Debugging related features.
Debugging
DebuggingConfiguration
Debugging
apiserverconfig
.
DebuggingConfiguration
// GenericComponentConfiguration holds configuration for GenericComponent
// related features both in cloud controller manager and kube-controller manager.
GenericComponent
GenericComponentConfiguration
...
...
@@ -252,7 +209,7 @@ type CloudControllerManagerConfiguration struct {
// CloudProviderConfiguration holds configuration for CloudProvider related features.
CloudProvider
CloudProviderConfiguration
// DebuggingConfiguration holds configuration for Debugging related features.
Debugging
DebuggingConfiguration
Debugging
apiserverconfig
.
DebuggingConfiguration
// GenericComponentConfiguration holds configuration for GenericComponent
// related features both in cloud controller manager and kube-controller manager.
GenericComponent
GenericComponentConfiguration
...
...
@@ -273,14 +230,6 @@ type CloudProviderConfiguration struct {
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
{
// minResyncPeriod is the resync period in reflectors; will be random between
// minResyncPeriod and 2*minResyncPeriod.
...
...
@@ -294,7 +243,7 @@ type GenericComponentConfiguration struct {
// How long to wait between starting controller managers
ControllerStartInterval
metav1
.
Duration
// leaderElection defines the configuration of leader election client.
LeaderElection
LeaderElectionConfiguration
LeaderElection
apiserverconfig
.
LeaderElectionConfiguration
}
type
KubeCloudSharedConfiguration
struct
{
...
...
pkg/apis/componentconfig/v1alpha1/defaults.go
View file @
4bef9262
...
...
@@ -21,8 +21,10 @@ import (
"strconv"
"time"
apimachineryconfigv1alpha1
"k8s.io/apimachinery/pkg/apis/config/v1alpha1"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
kruntime
"k8s.io/apimachinery/pkg/runtime"
apiserverconfigv1alpha1
"k8s.io/apiserver/pkg/apis/config/v1alpha1"
api
"k8s.io/kubernetes/pkg/apis/core"
kubeletapis
"k8s.io/kubernetes/pkg/kubelet/apis"
"k8s.io/kubernetes/pkg/master/ports"
...
...
@@ -163,6 +165,9 @@ func SetDefaults_GenericComponentConfiguration(obj *GenericComponentConfiguratio
if
obj
.
ControllerStartInterval
==
zero
{
obj
.
ControllerStartInterval
=
metav1
.
Duration
{
Duration
:
0
*
time
.
Second
}
}
// Use the default LeaderElectionConfiguration options
apiserverconfigv1alpha1
.
RecommendedDefaultLeaderElectionConfiguration
(
&
obj
.
LeaderElection
)
}
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
))
}
if
len
(
obj
.
ClientConnection
.
ContentType
)
==
0
{
obj
.
ClientConnection
.
ContentType
=
"application/vnd.kubernetes.protobuf"
}
if
obj
.
ClientConnection
.
QPS
==
0.0
{
obj
.
ClientConnection
.
QPS
=
50.0
}
if
obj
.
ClientConnection
.
Burst
==
0
{
obj
.
ClientConnection
.
Burst
=
100
}
...
...
@@ -274,24 +277,8 @@ func SetDefaults_KubeSchedulerConfiguration(obj *KubeSchedulerConfiguration) {
if
len
(
obj
.
FailureDomains
)
==
0
{
obj
.
FailureDomains
=
kubeletapis
.
DefaultFailureDomains
}
}
func
SetDefaults_LeaderElectionConfiguration
(
obj
*
LeaderElectionConfiguration
)
{
zero
:=
metav1
.
Duration
{}
if
obj
.
LeaseDuration
==
zero
{
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
)
}
// Use the default ClientConnectionConfiguration and LeaderElectionConfiguration options
apimachineryconfigv1alpha1
.
RecommendedDefaultClientConnectionConfiguration
(
&
obj
.
ClientConnection
)
apiserverconfigv1alpha1
.
RecommendedDefaultLeaderElectionConfiguration
(
&
obj
.
LeaderElection
.
LeaderElectionConfiguration
)
}
pkg/apis/componentconfig/v1alpha1/doc.go
View file @
4bef9262
...
...
@@ -14,8 +14,15 @@ See the License for the specific language governing permissions and
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: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:defaulter-gen=TypeMeta
...
...
pkg/apis/componentconfig/v1alpha1/types.go
View file @
4bef9262
...
...
@@ -17,26 +17,11 @@ limitations under the License.
package
v1alpha1
import
(
apimachineryconfigv1alpha1
"k8s.io/apimachinery/pkg/apis/config/v1alpha1"
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
// source field must be specified, and source fields are mutually exclusive.
type
SchedulerPolicySource
struct
{
...
...
@@ -76,6 +61,11 @@ type SchedulerAlgorithmSource struct {
type
KubeSchedulerConfiguration
struct
{
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
// will be processed by this scheduler, based on pod's "spec.SchedulerName".
SchedulerName
string
`json:"schedulerName"`
...
...
@@ -87,23 +77,18 @@ type KubeSchedulerConfiguration struct {
HardPodAffinitySymmetricWeight
int32
`json:"hardPodAffinitySymmetricWeight"`
// LeaderElection defines the configuration of leader election client.
// TODO: Migrate the kube-scheduler-specific stuff into the generic LeaderElectionConfig?
LeaderElection
KubeSchedulerLeaderElectionConfiguration
`json:"leaderElection"`
// ClientConnection specifies the kubeconfig file and client connection
// 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,
// defaulting to 0.0.0.0:10251
HealthzBindAddress
string
`json:"healthzBindAddress"`
// MetricsBindAddress is the IP address and port for the metrics server to
// serve on, defaulting to 0.0.0.0:10251.
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.
FailureDomains
string
`json:"failureDomains"`
...
...
@@ -112,38 +97,10 @@ type KubeSchedulerConfiguration struct {
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
// to include scheduler specific configuration.
type
KubeSchedulerLeaderElectionConfiguration
struct
{
LeaderElectionConfiguration
`json:",inline"`
apiserverconfigv1alpha1
.
LeaderElectionConfiguration
`json:",inline"`
// LockObjectNamespace defines the namespace of the lock object
LockObjectNamespace
string
`json:"lockObjectNamespace"`
// LockObjectName defines the lock object name
...
...
@@ -213,7 +170,7 @@ type KubeControllerManagerConfiguration struct {
// CloudProviderConfiguration holds configuration for CloudProvider related features.
CloudProvider
CloudProviderConfiguration
// DebuggingConfiguration holds configuration for Debugging related features.
Debugging
DebuggingConfiguration
Debugging
apiserverconfigv1alpha1
.
DebuggingConfiguration
// GenericComponentConfiguration holds configuration for GenericComponent
// related features both in cloud controller manager and kube-controller manager.
GenericComponent
GenericComponentConfiguration
...
...
@@ -295,7 +252,7 @@ type CloudControllerManagerConfiguration struct {
// CloudProviderConfiguration holds configuration for CloudProvider related features.
CloudProvider
CloudProviderConfiguration
// DebuggingConfiguration holds configuration for Debugging related features.
Debugging
DebuggingConfiguration
Debugging
apiserverconfigv1alpha1
.
DebuggingConfiguration
// GenericComponentConfiguration holds configuration for GenericComponent
// related features both in cloud controller manager and kube-controller manager.
GenericComponent
GenericComponentConfiguration
...
...
@@ -316,14 +273,6 @@ type CloudProviderConfiguration struct {
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
{
// 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
ControllerStartInterval
metav1
.
Duration
// leaderElection defines the configuration of leader election client.
LeaderElection
LeaderElectionConfiguration
LeaderElection
apiserverconfigv1alpha1
.
LeaderElectionConfiguration
}
type
KubeCloudSharedConfiguration
struct
{
...
...
pkg/client/leaderelectionconfig/config.go
View file @
4bef9262
...
...
@@ -20,15 +20,15 @@ import (
"time"
"github.com/spf13/pflag"
"k8s.io/kubernetes/pkg/apis/component
config"
apiserverconfig
"k8s.io/apiserver/pkg/apis/
config"
)
const
(
DefaultLeaseDuration
=
15
*
time
.
Second
)
// BindFlags binds the
common LeaderElectionCLIConfig flag
s to a flagset
func
BindFlags
(
l
*
component
config
.
LeaderElectionConfiguration
,
fs
*
pflag
.
FlagSet
)
{
// BindFlags binds the
LeaderElectionConfiguration struct field
s to a flagset
func
BindFlags
(
l
*
apiserver
config
.
LeaderElectionConfiguration
,
fs
*
pflag
.
FlagSet
)
{
fs
.
BoolVar
(
&
l
.
LeaderElect
,
"leader-elect"
,
l
.
LeaderElect
,
""
+
"Start a leader election client and gain leadership before "
+
"executing the main loop. Enable this when running replicated "
+
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment