mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-03 19:58:17 +00:00 
			
		
		
		
	kubeadm: set maxUnavailable and maxSurge for self-hosted component deployments.
Refs https://github.com/kubernetes/kubeadm/issues/127
This commit is contained in:
		@@ -24,6 +24,7 @@ import (
 | 
				
			|||||||
	"time"
 | 
						"time"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
						metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
				
			||||||
 | 
						"k8s.io/apimachinery/pkg/util/intstr"
 | 
				
			||||||
	"k8s.io/apimachinery/pkg/util/wait"
 | 
						"k8s.io/apimachinery/pkg/util/wait"
 | 
				
			||||||
	kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
 | 
						kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
 | 
				
			||||||
	"k8s.io/kubernetes/cmd/kubeadm/app/images"
 | 
						"k8s.io/kubernetes/cmd/kubeadm/app/images"
 | 
				
			||||||
@@ -32,6 +33,12 @@ import (
 | 
				
			|||||||
	"k8s.io/kubernetes/pkg/client/clientset_generated/clientset"
 | 
						"k8s.io/kubernetes/pkg/client/clientset_generated/clientset"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					var (
 | 
				
			||||||
 | 
						// maximum unavailable and surge instances per self-hosted component deployment
 | 
				
			||||||
 | 
						maxUnavailable = intstr.FromInt(0)
 | 
				
			||||||
 | 
						maxSurge       = intstr.FromInt(1)
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func CreateSelfHostedControlPlane(cfg *kubeadmapi.MasterConfiguration, client *clientset.Clientset) error {
 | 
					func CreateSelfHostedControlPlane(cfg *kubeadmapi.MasterConfiguration, client *clientset.Clientset) error {
 | 
				
			||||||
	volumes := []v1.Volume{k8sVolume(cfg)}
 | 
						volumes := []v1.Volume{k8sVolume(cfg)}
 | 
				
			||||||
	volumeMounts := []v1.VolumeMount{k8sVolumeMount()}
 | 
						volumeMounts := []v1.VolumeMount{k8sVolumeMount()}
 | 
				
			||||||
@@ -234,6 +241,13 @@ func getControllerManagerDeployment(cfg *kubeadmapi.MasterConfiguration, volumes
 | 
				
			|||||||
		},
 | 
							},
 | 
				
			||||||
		Spec: ext.DeploymentSpec{
 | 
							Spec: ext.DeploymentSpec{
 | 
				
			||||||
			// TODO bootkube uses 2 replicas
 | 
								// TODO bootkube uses 2 replicas
 | 
				
			||||||
 | 
								Strategy: ext.DeploymentStrategy{
 | 
				
			||||||
 | 
									Type: ext.RollingUpdateDeploymentStrategyType,
 | 
				
			||||||
 | 
									RollingUpdate: &ext.RollingUpdateDeployment{
 | 
				
			||||||
 | 
										MaxUnavailable: &maxUnavailable,
 | 
				
			||||||
 | 
										MaxSurge:       &maxSurge,
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
			Template: v1.PodTemplateSpec{
 | 
								Template: v1.PodTemplateSpec{
 | 
				
			||||||
				ObjectMeta: metav1.ObjectMeta{
 | 
									ObjectMeta: metav1.ObjectMeta{
 | 
				
			||||||
					Labels: map[string]string{
 | 
										Labels: map[string]string{
 | 
				
			||||||
@@ -281,6 +295,13 @@ func getSchedulerDeployment(cfg *kubeadmapi.MasterConfiguration) ext.Deployment
 | 
				
			|||||||
		},
 | 
							},
 | 
				
			||||||
		Spec: ext.DeploymentSpec{
 | 
							Spec: ext.DeploymentSpec{
 | 
				
			||||||
			// TODO bootkube uses 2 replicas
 | 
								// TODO bootkube uses 2 replicas
 | 
				
			||||||
 | 
								Strategy: ext.DeploymentStrategy{
 | 
				
			||||||
 | 
									Type: ext.RollingUpdateDeploymentStrategyType,
 | 
				
			||||||
 | 
									RollingUpdate: &ext.RollingUpdateDeployment{
 | 
				
			||||||
 | 
										MaxUnavailable: &maxUnavailable,
 | 
				
			||||||
 | 
										MaxSurge:       &maxSurge,
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
			Template: v1.PodTemplateSpec{
 | 
								Template: v1.PodTemplateSpec{
 | 
				
			||||||
				ObjectMeta: metav1.ObjectMeta{
 | 
									ObjectMeta: metav1.ObjectMeta{
 | 
				
			||||||
					Labels: map[string]string{
 | 
										Labels: map[string]string{
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user