From a75dcdda3551d383ecea7da51c567d0d4a84c58c Mon Sep 17 00:00:00 2001 From: Ryan Bonham Date: Fri, 29 Mar 2019 13:56:21 -0500 Subject: [PATCH 1/6] Add Ability to set cpu request for api server --- nodeup/pkg/model/kube_apiserver.go | 2 +- pkg/apis/kops/componentconfig.go | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/nodeup/pkg/model/kube_apiserver.go b/nodeup/pkg/model/kube_apiserver.go index 09e6ef7114..b8853499a0 100644 --- a/nodeup/pkg/model/kube_apiserver.go +++ b/nodeup/pkg/model/kube_apiserver.go @@ -416,7 +416,7 @@ func (b *KubeAPIServerBuilder) buildPod() (*v1.Pod, error) { }, Resources: v1.ResourceRequirements{ Requests: v1.ResourceList{ - v1.ResourceCPU: resource.MustParse("150m"), + v1.ResourceCPU: resource.MustParse(b.Cluster.Spec.KubeAPIServer.CPURequest), }, }, } diff --git a/pkg/apis/kops/componentconfig.go b/pkg/apis/kops/componentconfig.go index 510eb0b530..e187dc0b08 100644 --- a/pkg/apis/kops/componentconfig.go +++ b/pkg/apis/kops/componentconfig.go @@ -411,6 +411,8 @@ type KubeAPIServerConfig struct { // The specified file can contain multiple keys, and the flag can be specified multiple times with different files. // If unspecified, --tls-private-key-file is used. ServiceAccountKeyFile []string `json:"serviceAccountKeyFile,omitempty" flag:"service-account-key-file"` + // CPURequest, cpu request compute resource for kube proxy e.g. "20m" + CPURequest string `json:"cpuRequest,omitempty"` } // KubeControllerManagerConfig is the configuration for the controller From 67c2f50732eb77942cea8fc182ac6c539824e969 Mon Sep 17 00:00:00 2001 From: Ryan Bonham Date: Fri, 29 Mar 2019 14:07:05 -0500 Subject: [PATCH 2/6] Handle unset KubeAPIServer.CPURequest --- nodeup/pkg/model/kube_apiserver.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/nodeup/pkg/model/kube_apiserver.go b/nodeup/pkg/model/kube_apiserver.go index b8853499a0..07e028c81e 100644 --- a/nodeup/pkg/model/kube_apiserver.go +++ b/nodeup/pkg/model/kube_apiserver.go @@ -385,8 +385,13 @@ func (b *KubeAPIServerBuilder) buildPod() (*v1.Pod, error) { } else if kubeAPIServer.SecurePort != 0 { probeAction.Port = intstr.FromInt(int(kubeAPIServer.SecurePort)) probeAction.Scheme = v1.URISchemeHTTPS + } + + requestCPU := resource.MustParse("150m") + if b.Cluster.Spec.KubeAPIServer.CPURequest != nil { + requestCPU = resource.MustParse(b.Cluster.Spec.KubeAPIServer.CPURequest) } - + container := &v1.Container{ Name: "kube-apiserver", Image: b.Cluster.Spec.KubeAPIServer.Image, @@ -416,7 +421,7 @@ func (b *KubeAPIServerBuilder) buildPod() (*v1.Pod, error) { }, Resources: v1.ResourceRequirements{ Requests: v1.ResourceList{ - v1.ResourceCPU: resource.MustParse(b.Cluster.Spec.KubeAPIServer.CPURequest), + v1.ResourceCPU: requestCPU }, }, } From ac5a2ec2a0d8f4be18eb666c78bd52dab8f359fc Mon Sep 17 00:00:00 2001 From: Ryan Bonham Date: Fri, 29 Mar 2019 14:19:59 -0500 Subject: [PATCH 3/6] Fix syntax error --- nodeup/pkg/model/kube_apiserver.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/nodeup/pkg/model/kube_apiserver.go b/nodeup/pkg/model/kube_apiserver.go index 07e028c81e..0685dc76fc 100644 --- a/nodeup/pkg/model/kube_apiserver.go +++ b/nodeup/pkg/model/kube_apiserver.go @@ -385,13 +385,13 @@ func (b *KubeAPIServerBuilder) buildPod() (*v1.Pod, error) { } else if kubeAPIServer.SecurePort != 0 { probeAction.Port = intstr.FromInt(int(kubeAPIServer.SecurePort)) probeAction.Scheme = v1.URISchemeHTTPS - } - + } + requestCPU := resource.MustParse("150m") if b.Cluster.Spec.KubeAPIServer.CPURequest != nil { requestCPU = resource.MustParse(b.Cluster.Spec.KubeAPIServer.CPURequest) } - + container := &v1.Container{ Name: "kube-apiserver", Image: b.Cluster.Spec.KubeAPIServer.Image, @@ -421,7 +421,7 @@ func (b *KubeAPIServerBuilder) buildPod() (*v1.Pod, error) { }, Resources: v1.ResourceRequirements{ Requests: v1.ResourceList{ - v1.ResourceCPU: requestCPU + v1.ResourceCPU: requestCPU, }, }, } From 8584fd731da9e75039d3951120b6b1e66b5cf621 Mon Sep 17 00:00:00 2001 From: Ryan Bonham Date: Fri, 29 Mar 2019 14:32:29 -0500 Subject: [PATCH 4/6] Fix type mismatch --- nodeup/pkg/model/kube_apiserver.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nodeup/pkg/model/kube_apiserver.go b/nodeup/pkg/model/kube_apiserver.go index 0685dc76fc..7db25e4ce2 100644 --- a/nodeup/pkg/model/kube_apiserver.go +++ b/nodeup/pkg/model/kube_apiserver.go @@ -388,7 +388,7 @@ func (b *KubeAPIServerBuilder) buildPod() (*v1.Pod, error) { } requestCPU := resource.MustParse("150m") - if b.Cluster.Spec.KubeAPIServer.CPURequest != nil { + if b.Cluster.Spec.KubeAPIServer.CPURequest != "" { requestCPU = resource.MustParse(b.Cluster.Spec.KubeAPIServer.CPURequest) } From ec418400f61593126766e54d0c6e8bcd689d5731 Mon Sep 17 00:00:00 2001 From: Ryan Bonham Date: Fri, 29 Mar 2019 15:06:20 -0500 Subject: [PATCH 5/6] Update API for CPURequest --- pkg/apis/kops/componentconfig.go | 1 + pkg/apis/kops/v1alpha1/componentconfig.go | 3 +++ pkg/apis/kops/v1alpha1/zz_generated.conversion.go | 2 ++ pkg/apis/kops/v1alpha2/componentconfig.go | 3 +++ pkg/apis/kops/v1alpha2/zz_generated.conversion.go | 2 ++ 5 files changed, 11 insertions(+) diff --git a/pkg/apis/kops/componentconfig.go b/pkg/apis/kops/componentconfig.go index 942d9aa6ac..72bdb9e39a 100644 --- a/pkg/apis/kops/componentconfig.go +++ b/pkg/apis/kops/componentconfig.go @@ -413,6 +413,7 @@ type KubeAPIServerConfig struct { // The specified file can contain multiple keys, and the flag can be specified multiple times with different files. // If unspecified, --tls-private-key-file is used. ServiceAccountKeyFile []string `json:"serviceAccountKeyFile,omitempty" flag:"service-account-key-file"` + // CPURequest, cpu request compute resource for kube proxy e.g. "20m" CPURequest string `json:"cpuRequest,omitempty"` } diff --git a/pkg/apis/kops/v1alpha1/componentconfig.go b/pkg/apis/kops/v1alpha1/componentconfig.go index bc6bc2bf23..f43ee546fc 100644 --- a/pkg/apis/kops/v1alpha1/componentconfig.go +++ b/pkg/apis/kops/v1alpha1/componentconfig.go @@ -413,6 +413,9 @@ type KubeAPIServerConfig struct { // The specified file can contain multiple keys, and the flag can be specified multiple times with different files. // If unspecified, --tls-private-key-file is used. ServiceAccountKeyFile []string `json:"serviceAccountKeyFile,omitempty" flag:"service-account-key-file"` + + // CPURequest, cpu request compute resource for kube proxy e.g. "20m" + CPURequest string `json:"cpuRequest,omitempty"` } // KubeControllerManagerConfig is the configuration for the controller diff --git a/pkg/apis/kops/v1alpha1/zz_generated.conversion.go b/pkg/apis/kops/v1alpha1/zz_generated.conversion.go index f11a637544..18911d1035 100644 --- a/pkg/apis/kops/v1alpha1/zz_generated.conversion.go +++ b/pkg/apis/kops/v1alpha1/zz_generated.conversion.go @@ -2985,6 +2985,7 @@ func autoConvert_v1alpha1_KubeAPIServerConfig_To_kops_KubeAPIServerConfig(in *Ku out.MinRequestTimeout = in.MinRequestTimeout out.TargetRamMb = in.TargetRamMb out.ServiceAccountKeyFile = in.ServiceAccountKeyFile + out.CPURequest = in.CPURequest return nil } @@ -3072,6 +3073,7 @@ func autoConvert_kops_KubeAPIServerConfig_To_v1alpha1_KubeAPIServerConfig(in *ko out.MinRequestTimeout = in.MinRequestTimeout out.TargetRamMb = in.TargetRamMb out.ServiceAccountKeyFile = in.ServiceAccountKeyFile + out.CPURequest = in.CPURequest return nil } diff --git a/pkg/apis/kops/v1alpha2/componentconfig.go b/pkg/apis/kops/v1alpha2/componentconfig.go index 5c5f1fa98a..24d315e200 100644 --- a/pkg/apis/kops/v1alpha2/componentconfig.go +++ b/pkg/apis/kops/v1alpha2/componentconfig.go @@ -413,6 +413,9 @@ type KubeAPIServerConfig struct { // The specified file can contain multiple keys, and the flag can be specified multiple times with different files. // If unspecified, --tls-private-key-file is used. ServiceAccountKeyFile []string `json:"serviceAccountKeyFile,omitempty" flag:"service-account-key-file"` + + // CPURequest, cpu request compute resource for kube proxy e.g. "20m" + CPURequest string `json:"cpuRequest,omitempty"` } // KubeControllerManagerConfig is the configuration for the controller diff --git a/pkg/apis/kops/v1alpha2/zz_generated.conversion.go b/pkg/apis/kops/v1alpha2/zz_generated.conversion.go index d3ccf2d4a6..37346e5011 100644 --- a/pkg/apis/kops/v1alpha2/zz_generated.conversion.go +++ b/pkg/apis/kops/v1alpha2/zz_generated.conversion.go @@ -3255,6 +3255,7 @@ func autoConvert_v1alpha2_KubeAPIServerConfig_To_kops_KubeAPIServerConfig(in *Ku out.MinRequestTimeout = in.MinRequestTimeout out.TargetRamMb = in.TargetRamMb out.ServiceAccountKeyFile = in.ServiceAccountKeyFile + out.CPURequest = in.CPURequest return nil } @@ -3342,6 +3343,7 @@ func autoConvert_kops_KubeAPIServerConfig_To_v1alpha2_KubeAPIServerConfig(in *ko out.MinRequestTimeout = in.MinRequestTimeout out.TargetRamMb = in.TargetRamMb out.ServiceAccountKeyFile = in.ServiceAccountKeyFile + out.CPURequest = in.CPURequest return nil } From 415472a76e4b15eca723674131642ae89270af27 Mon Sep 17 00:00:00 2001 From: Ryan Bonham Date: Wed, 3 Apr 2019 09:34:12 -0500 Subject: [PATCH 6/6] Update comment to correct reflect api server and not kube proxy. specify default in comment --- pkg/apis/kops/componentconfig.go | 2 +- pkg/apis/kops/v1alpha1/componentconfig.go | 2 +- pkg/apis/kops/v1alpha2/componentconfig.go | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pkg/apis/kops/componentconfig.go b/pkg/apis/kops/componentconfig.go index 72bdb9e39a..5ed393dfcd 100644 --- a/pkg/apis/kops/componentconfig.go +++ b/pkg/apis/kops/componentconfig.go @@ -414,7 +414,7 @@ type KubeAPIServerConfig struct { // If unspecified, --tls-private-key-file is used. ServiceAccountKeyFile []string `json:"serviceAccountKeyFile,omitempty" flag:"service-account-key-file"` - // CPURequest, cpu request compute resource for kube proxy e.g. "20m" + // CPURequest, cpu request compute resource for api server. Defaults to "150m" CPURequest string `json:"cpuRequest,omitempty"` } diff --git a/pkg/apis/kops/v1alpha1/componentconfig.go b/pkg/apis/kops/v1alpha1/componentconfig.go index f43ee546fc..a6f384bf6a 100644 --- a/pkg/apis/kops/v1alpha1/componentconfig.go +++ b/pkg/apis/kops/v1alpha1/componentconfig.go @@ -414,7 +414,7 @@ type KubeAPIServerConfig struct { // If unspecified, --tls-private-key-file is used. ServiceAccountKeyFile []string `json:"serviceAccountKeyFile,omitempty" flag:"service-account-key-file"` - // CPURequest, cpu request compute resource for kube proxy e.g. "20m" + // CPURequest, cpu request compute resource for api server. Defaults to "150m" CPURequest string `json:"cpuRequest,omitempty"` } diff --git a/pkg/apis/kops/v1alpha2/componentconfig.go b/pkg/apis/kops/v1alpha2/componentconfig.go index 24d315e200..51b63f2632 100644 --- a/pkg/apis/kops/v1alpha2/componentconfig.go +++ b/pkg/apis/kops/v1alpha2/componentconfig.go @@ -414,7 +414,7 @@ type KubeAPIServerConfig struct { // If unspecified, --tls-private-key-file is used. ServiceAccountKeyFile []string `json:"serviceAccountKeyFile,omitempty" flag:"service-account-key-file"` - // CPURequest, cpu request compute resource for kube proxy e.g. "20m" + // CPURequest, cpu request compute resource for api server. Defaults to "150m" CPURequest string `json:"cpuRequest,omitempty"` }