@@ -17,6 +17,7 @@ package master
1717import (
1818 "context"
1919 "fmt"
20+ "strings"
2021
2122 "github.com/aws/aws-sdk-go/aws"
2223 "github.com/awslabs/kubernetes-iteration-toolkit/operator/pkg/apis/controlplane/v1alpha1"
@@ -82,7 +83,7 @@ func kcmLabels(clustername string) map[string]string {
8283
8384func kcmPodSpecFor (controlPlane * v1alpha1.ControlPlane ) v1.PodSpec {
8485 hostPathDirectoryOrCreate := v1 .HostPathDirectoryOrCreate
85- return v1.PodSpec {
86+ return kcmPodSpecForVersion ( controlPlane . Spec . KubernetesVersion , & v1.PodSpec {
8687 TerminationGracePeriodSeconds : aws .Int64 (1 ),
8788 HostNetwork : true ,
8889 DNSPolicy : v1 .DNSClusterFirstWithHostNet ,
@@ -98,10 +99,6 @@ func kcmPodSpecFor(controlPlane *v1alpha1.ControlPlane) v1.PodSpec {
9899 v1 .ResourceCPU : resource .MustParse ("1" ),
99100 },
100101 },
101- Ports : []v1.ContainerPort {{
102- ContainerPort : 10252 ,
103- Name : "metrics" ,
104- }},
105102 Args : []string {
106103 "--authentication-kubeconfig=/etc/kubernetes/config/kcm/controller-manager.conf" ,
107104 "--authorization-kubeconfig=/etc/kubernetes/config/kcm/controller-manager.conf" ,
@@ -152,9 +149,9 @@ func kcmPodSpecFor(controlPlane *v1alpha1.ControlPlane) v1.PodSpec {
152149 ProbeHandler : v1.ProbeHandler {
153150 HTTPGet : & v1.HTTPGetAction {
154151 Host : "127.0.0.1" ,
155- Scheme : v1 . URISchemeHTTP ,
152+ Scheme : kcmHealthCheckSchemeForVersion ( controlPlane . Spec . KubernetesVersion ) ,
156153 Path : "/healthz" ,
157- Port : intstr . FromInt ( 10252 ),
154+ Port : kcmHealthCheckPortForVersion ( controlPlane . Spec . KubernetesVersion ),
158155 },
159156 },
160157 InitialDelaySeconds : 10 ,
@@ -233,7 +230,7 @@ func kcmPodSpecFor(controlPlane *v1alpha1.ControlPlane) v1.PodSpec {
233230 },
234231 },
235232 }},
236- }
233+ })
237234}
238235
239236func CloudConfigMapName (clusterName string ) string {
@@ -253,3 +250,38 @@ data:
253250 KubernetesClusterID={{ .ClusterName}}
254251`
255252)
253+
254+ var (
255+ disabledFlagsForKube122 = map [string ]struct {}{"--horizontal-pod-autoscaler-use-rest-clients" : {}}
256+ )
257+
258+ func kcmPodSpecForVersion (version string , defaultSpec * v1.PodSpec ) v1.PodSpec {
259+ switch version {
260+ case "1.22" :
261+ args := []string {}
262+ for _ , arg := range defaultSpec .Containers [0 ].Args {
263+ if _ , skip := disabledFlagsForKube122 [strings .Split (arg , "=" )[0 ]]; skip {
264+ continue
265+ }
266+ args = append (args , arg )
267+ }
268+ defaultSpec .Containers [0 ].Args = args
269+ }
270+ return * defaultSpec
271+ }
272+
273+ func kcmHealthCheckPortForVersion (version string ) intstr.IntOrString {
274+ switch version {
275+ case "1.22" :
276+ return intstr .FromInt (10257 )
277+ }
278+ return intstr .FromInt (10252 )
279+ }
280+
281+ func kcmHealthCheckSchemeForVersion (version string ) v1.URIScheme {
282+ switch version {
283+ case "1.22" :
284+ return v1 .URISchemeHTTPS
285+ }
286+ return v1 .URISchemeHTTP
287+ }
0 commit comments