move apiserver Configuration to k8s.io/apiserver/pkg/apis/config
Kubernetes-commit: 0875ffe1e25c2d3544e2966b827c3d2d70531ed5
This commit is contained in:
		
							parent
							
								
									1a377533df
								
							
						
					
					
						commit
						efae429c1d
					
				| 
						 | 
				
			
			@ -0,0 +1,19 @@
 | 
			
		|||
/*
 | 
			
		||||
Copyright 2018 The Kubernetes Authors.
 | 
			
		||||
 | 
			
		||||
Licensed under the Apache License, Version 2.0 (the "License");
 | 
			
		||||
you may not use this file except in compliance with the License.
 | 
			
		||||
You may obtain a copy of the License at
 | 
			
		||||
 | 
			
		||||
    http://www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
 | 
			
		||||
Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
distributed under the License is distributed on an "AS IS" BASIS,
 | 
			
		||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
See the License for the specific language governing permissions and
 | 
			
		||||
limitations under the License.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
// +k8s:deepcopy-gen=package
 | 
			
		||||
 | 
			
		||||
package config // import "k8s.io/apiserver/pkg/apis/config"
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,58 @@
 | 
			
		|||
/*
 | 
			
		||||
Copyright 2018 The Kubernetes Authors.
 | 
			
		||||
 | 
			
		||||
Licensed under the Apache License, Version 2.0 (the "License");
 | 
			
		||||
you may not use this file except in compliance with the License.
 | 
			
		||||
You may obtain a copy of the License at
 | 
			
		||||
 | 
			
		||||
    http://www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
 | 
			
		||||
Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
distributed under the License is distributed on an "AS IS" BASIS,
 | 
			
		||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
See the License for the specific language governing permissions and
 | 
			
		||||
limitations under the License.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
package config
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// 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
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// DebuggingConfiguration holds configuration for Debugging related features.
 | 
			
		||||
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
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,48 @@
 | 
			
		|||
/*
 | 
			
		||||
Copyright 2018 The Kubernetes Authors.
 | 
			
		||||
 | 
			
		||||
Licensed under the Apache License, Version 2.0 (the "License");
 | 
			
		||||
you may not use this file except in compliance with the License.
 | 
			
		||||
You may obtain a copy of the License at
 | 
			
		||||
 | 
			
		||||
    http://www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
 | 
			
		||||
Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
distributed under the License is distributed on an "AS IS" BASIS,
 | 
			
		||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
See the License for the specific language governing permissions and
 | 
			
		||||
limitations under the License.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
package v1alpha1
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"time"
 | 
			
		||||
 | 
			
		||||
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
			
		||||
	kruntime "k8s.io/apimachinery/pkg/runtime"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func addDefaultingFuncs(scheme *kruntime.Scheme) error {
 | 
			
		||||
	return RegisterDefaults(scheme)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func SetDefaults_LeaderElectionConfiguration(obj *LeaderElectionConfiguration) {
 | 
			
		||||
	booltrue := true
 | 
			
		||||
	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 = EndpointsResourceLock
 | 
			
		||||
	}
 | 
			
		||||
	if obj.LeaderElect == nil {
 | 
			
		||||
		obj.LeaderElect = &booltrue
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,21 @@
 | 
			
		|||
/*
 | 
			
		||||
Copyright 2018 The Kubernetes Authors.
 | 
			
		||||
 | 
			
		||||
Licensed under the Apache License, Version 2.0 (the "License");
 | 
			
		||||
you may not use this file except in compliance with the License.
 | 
			
		||||
You may obtain a copy of the License at
 | 
			
		||||
 | 
			
		||||
    http://www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
 | 
			
		||||
Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
distributed under the License is distributed on an "AS IS" BASIS,
 | 
			
		||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
See the License for the specific language governing permissions and
 | 
			
		||||
limitations under the License.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
// +k8s:deepcopy-gen=package
 | 
			
		||||
// +k8s:conversion-gen=k8s.io/apiserver/pkg/apis/config
 | 
			
		||||
// +k8s:defaulter-gen=TypeMeta
 | 
			
		||||
 | 
			
		||||
package v1alpha1
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,35 @@
 | 
			
		|||
/*
 | 
			
		||||
Copyright 2018 The Kubernetes Authors.
 | 
			
		||||
 | 
			
		||||
Licensed under the Apache License, Version 2.0 (the "License");
 | 
			
		||||
you may not use this file except in compliance with the License.
 | 
			
		||||
You may obtain a copy of the License at
 | 
			
		||||
 | 
			
		||||
    http://www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
 | 
			
		||||
Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
distributed under the License is distributed on an "AS IS" BASIS,
 | 
			
		||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
See the License for the specific language governing permissions and
 | 
			
		||||
limitations under the License.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
package v1alpha1
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"k8s.io/apimachinery/pkg/runtime"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
	// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.
 | 
			
		||||
	SchemeBuilder      runtime.SchemeBuilder
 | 
			
		||||
	localSchemeBuilder = &SchemeBuilder
 | 
			
		||||
	AddToScheme        = localSchemeBuilder.AddToScheme
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func init() {
 | 
			
		||||
	// We only register manually written functions here. The registration of the
 | 
			
		||||
	// generated functions takes place in the generated files. The separation
 | 
			
		||||
	// makes the code compile even when the generated files are missing.
 | 
			
		||||
	localSchemeBuilder.Register(addDefaultingFuncs)
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,60 @@
 | 
			
		|||
/*
 | 
			
		||||
Copyright 2018 The Kubernetes Authors.
 | 
			
		||||
 | 
			
		||||
Licensed under the Apache License, Version 2.0 (the "License");
 | 
			
		||||
you may not use this file except in compliance with the License.
 | 
			
		||||
You may obtain a copy of the License at
 | 
			
		||||
 | 
			
		||||
    http://www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
 | 
			
		||||
Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
distributed under the License is distributed on an "AS IS" BASIS,
 | 
			
		||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
See the License for the specific language governing permissions and
 | 
			
		||||
limitations under the License.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
package v1alpha1
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
const EndpointsResourceLock = "endpoints"
 | 
			
		||||
 | 
			
		||||
// 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"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// DebuggingConfiguration holds configuration for Debugging related features.
 | 
			
		||||
type DebuggingConfiguration struct {
 | 
			
		||||
	// enableProfiling enables profiling via web interface host:port/debug/pprof/
 | 
			
		||||
	EnableProfiling bool `json:"enableProfiling"`
 | 
			
		||||
	// enableContentionProfiling enables lock contention profiling, if
 | 
			
		||||
	// enableProfiling is true.
 | 
			
		||||
	EnableContentionProfiling bool `json:"enableContentionProfiling"`
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
		Reference in New Issue