@@ -36,13 +36,9 @@ const (
36
36
)
37
37
38
38
func (k * kubelet ) writeKubeletConfig (cfg * api.NodeConfig ) error {
39
- kubeletVersion , err := GetKubeletVersion ()
40
- if err != nil {
41
- return err
42
- }
43
39
// tracking: https://github.com/kubernetes/enhancements/issues/3983
44
40
// for enabling drop-in configuration
45
- if semver .Compare (kubeletVersion , "v1.29.0" ) < 0 {
41
+ if semver .Compare (cfg . Status . KubeletVersion , "v1.29.0" ) < 0 {
46
42
return k .writeKubeletConfigToFile (cfg )
47
43
} else {
48
44
return k .writeKubeletConfigToDir (cfg )
@@ -211,9 +207,9 @@ func (ksc *kubeletConfig) withNodeIp(cfg *api.NodeConfig, flags map[string]strin
211
207
return nil
212
208
}
213
209
214
- func (ksc * kubeletConfig ) withVersionToggles (kubeletVersion string , flags map [string ]string ) {
210
+ func (ksc * kubeletConfig ) withVersionToggles (cfg * api. NodeConfig , flags map [string ]string ) {
215
211
// TODO: remove when 1.26 is EOL
216
- if semver .Compare (kubeletVersion , "v1.27.0" ) < 0 {
212
+ if semver .Compare (cfg . Status . KubeletVersion , "v1.27.0" ) < 0 {
217
213
// --container-runtime flag is gone in 1.27+
218
214
flags ["container-runtime" ] = "remote"
219
215
// --container-runtime-endpoint moved to kubelet config start from 1.27
@@ -223,20 +219,20 @@ func (ksc *kubeletConfig) withVersionToggles(kubeletVersion string, flags map[st
223
219
224
220
// TODO: Remove this during 1.27 EOL
225
221
// Enable Feature Gate for KubeletCredentialProviders in versions less than 1.28 since this feature flag was removed in 1.28.
226
- if semver .Compare (kubeletVersion , "v1.28.0" ) < 0 {
222
+ if semver .Compare (cfg . Status . KubeletVersion , "v1.28.0" ) < 0 {
227
223
ksc .FeatureGates ["KubeletCredentialProviders" ] = true
228
224
}
229
225
230
226
// for K8s versions that suport API Priority & Fairness, increase our API server QPS
231
227
// in 1.27, the default is already increased to 50/100, so use the higher defaults
232
- if semver .Compare (kubeletVersion , "v1.22.0" ) >= 0 && semver .Compare (kubeletVersion , "v1.27.0" ) < 0 {
228
+ if semver .Compare (cfg . Status . KubeletVersion , "v1.22.0" ) >= 0 && semver .Compare (cfg . Status . KubeletVersion , "v1.27.0" ) < 0 {
233
229
ksc .KubeAPIQPS = ptr .Int (10 )
234
230
ksc .KubeAPIBurst = ptr .Int (20 )
235
231
}
236
232
}
237
233
238
- func (ksc * kubeletConfig ) withCloudProvider (kubeletVersion string , cfg * api.NodeConfig , flags map [string ]string ) {
239
- if semver .Compare (kubeletVersion , "v1.26.0" ) >= 0 {
234
+ func (ksc * kubeletConfig ) withCloudProvider (cfg * api.NodeConfig , flags map [string ]string ) {
235
+ if semver .Compare (cfg . Status . KubeletVersion , "v1.26.0" ) >= 0 {
240
236
// ref: https://github.com/kubernetes/kubernetes/pull/121367
241
237
flags ["cloud-provider" ] = "external"
242
238
// provider ID needs to be specified when the cloud provider is external
@@ -280,24 +276,17 @@ func (ksc *kubeletConfig) withDefaultReservedResources(cfg *api.NodeConfig) {
280
276
//
281
277
// TODO: revisit once the minimum supportted version catches up or the container
282
278
// runtime is moved to containerd 2.0
283
- func (ksc * kubeletConfig ) withPodInfraContainerImage (cfg * api.NodeConfig , kubeletVersion string , flags map [string ]string ) error {
279
+ func (ksc * kubeletConfig ) withPodInfraContainerImage (cfg * api.NodeConfig , flags map [string ]string ) error {
284
280
// the flag is a noop on 1.29+, since the behavior was changed to use the
285
281
// CRI image pinning behavior and no longer considers the flag value.
286
282
// see: https://github.com/kubernetes/kubernetes/pull/118544
287
- if semver .Compare (kubeletVersion , "v1.29.0" ) < 0 {
283
+ if semver .Compare (cfg . Status . KubeletVersion , "v1.29.0" ) < 0 {
288
284
flags ["pod-infra-container-image" ] = cfg .Status .Defaults .SandboxImage
289
285
}
290
286
return nil
291
287
}
292
288
293
289
func (k * kubelet ) GenerateKubeletConfig (cfg * api.NodeConfig ) (* kubeletConfig , error ) {
294
- // Get the kubelet/kubernetes version to help conditionally enable features
295
- kubeletVersion , err := GetKubeletVersion ()
296
- if err != nil {
297
- return nil , err
298
- }
299
- zap .L ().Info ("Detected kubelet version" , zap .String ("version" , kubeletVersion ))
300
-
301
290
kubeletConfig := defaultKubeletSubConfig ()
302
291
303
292
if err := kubeletConfig .withFallbackClusterDns (& cfg .Spec .Cluster ); err != nil {
@@ -309,12 +298,12 @@ func (k *kubelet) GenerateKubeletConfig(cfg *api.NodeConfig) (*kubeletConfig, er
309
298
if err := kubeletConfig .withNodeIp (cfg , k .flags ); err != nil {
310
299
return nil , err
311
300
}
312
- if err := kubeletConfig .withPodInfraContainerImage (cfg , kubeletVersion , k .flags ); err != nil {
301
+ if err := kubeletConfig .withPodInfraContainerImage (cfg , k .flags ); err != nil {
313
302
return nil , err
314
303
}
315
304
316
- kubeletConfig .withVersionToggles (kubeletVersion , k .flags )
317
- kubeletConfig .withCloudProvider (kubeletVersion , cfg , k .flags )
305
+ kubeletConfig .withVersionToggles (cfg , k .flags )
306
+ kubeletConfig .withCloudProvider (cfg , k .flags )
318
307
kubeletConfig .withDefaultReservedResources (cfg )
319
308
320
309
return & kubeletConfig , nil
0 commit comments