@@ -256,12 +256,12 @@ HTTP server: The kubelet can also listen for HTTP and respond to a simple API
256
256
// add the kubelet config controller to kubeletDeps
257
257
kubeletDeps .KubeletConfigController = kubeletConfigController
258
258
259
- // set up stopCh here in order to be reused by kubelet and docker shim
260
- stopCh := genericapiserver .SetupSignalHandler ()
259
+ // set up signal context here in order to be reused by kubelet and docker shim
260
+ ctx := genericapiserver .SetupSignalContext ()
261
261
262
262
// run the kubelet
263
263
klog .V (5 ).Infof ("KubeletConfiguration: %#v" , kubeletServer .KubeletConfiguration )
264
- if err := Run (kubeletServer , kubeletDeps , utilfeature .DefaultFeatureGate , stopCh ); err != nil {
264
+ if err := Run (ctx , kubeletServer , kubeletDeps , utilfeature .DefaultFeatureGate ); err != nil {
265
265
klog .Fatal (err )
266
266
}
267
267
},
@@ -403,7 +403,7 @@ func UnsecuredDependencies(s *options.KubeletServer, featureGate featuregate.Fea
403
403
// The kubeDeps argument may be nil - if so, it is initialized from the settings on KubeletServer.
404
404
// Otherwise, the caller is assumed to have set up the Dependencies object and a default one will
405
405
// not be generated.
406
- func Run (s * options.KubeletServer , kubeDeps * kubelet.Dependencies , featureGate featuregate.FeatureGate , stopCh <- chan struct {} ) error {
406
+ func Run (ctx context. Context , s * options.KubeletServer , kubeDeps * kubelet.Dependencies , featureGate featuregate.FeatureGate ) error {
407
407
logOption := logs .NewOptions ()
408
408
logOption .LogFormat = s .Logging .Format
409
409
logOption .Apply ()
@@ -412,7 +412,7 @@ func Run(s *options.KubeletServer, kubeDeps *kubelet.Dependencies, featureGate f
412
412
if err := initForOS (s .KubeletFlags .WindowsService ); err != nil {
413
413
return fmt .Errorf ("failed OS init: %v" , err )
414
414
}
415
- if err := run (s , kubeDeps , featureGate , stopCh ); err != nil {
415
+ if err := run (ctx , s , kubeDeps , featureGate ); err != nil {
416
416
return fmt .Errorf ("failed to run Kubelet: %v" , err )
417
417
}
418
418
return nil
@@ -469,7 +469,7 @@ func makeEventRecorder(kubeDeps *kubelet.Dependencies, nodeName types.NodeName)
469
469
}
470
470
}
471
471
472
- func run (s * options.KubeletServer , kubeDeps * kubelet.Dependencies , featureGate featuregate.FeatureGate , stopCh <- chan struct {} ) (err error ) {
472
+ func run (ctx context. Context , s * options.KubeletServer , kubeDeps * kubelet.Dependencies , featureGate featuregate.FeatureGate ) (err error ) {
473
473
// Set global feature gates based on the value on the initial KubeletServer
474
474
err = utilfeature .DefaultMutableFeatureGate .SetFromMap (s .KubeletConfiguration .FeatureGates )
475
475
if err != nil {
@@ -552,7 +552,7 @@ func run(s *options.KubeletServer, kubeDeps *kubelet.Dependencies, featureGate f
552
552
klog .Warningf ("standalone mode, no API client" )
553
553
554
554
case kubeDeps .KubeClient == nil , kubeDeps .EventClient == nil , kubeDeps .HeartbeatClient == nil :
555
- clientConfig , closeAllConns , err := buildKubeletClientConfig (s , nodeName )
555
+ clientConfig , closeAllConns , err := buildKubeletClientConfig (ctx , s , nodeName )
556
556
if err != nil {
557
557
return err
558
558
}
@@ -597,7 +597,7 @@ func run(s *options.KubeletServer, kubeDeps *kubelet.Dependencies, featureGate f
597
597
return err
598
598
}
599
599
kubeDeps .Auth = auth
600
- runAuthenticatorCAReload (stopCh )
600
+ runAuthenticatorCAReload (ctx . Done () )
601
601
}
602
602
603
603
var cgroupRoots []string
@@ -799,7 +799,7 @@ func run(s *options.KubeletServer, kubeDeps *kubelet.Dependencies, featureGate f
799
799
select {
800
800
case <- done :
801
801
break
802
- case <- stopCh :
802
+ case <- ctx . Done () :
803
803
break
804
804
}
805
805
@@ -808,7 +808,7 @@ func run(s *options.KubeletServer, kubeDeps *kubelet.Dependencies, featureGate f
808
808
809
809
// buildKubeletClientConfig constructs the appropriate client config for the kubelet depending on whether
810
810
// bootstrapping is enabled or client certificate rotation is enabled.
811
- func buildKubeletClientConfig (s * options.KubeletServer , nodeName types.NodeName ) (* restclient.Config , func (), error ) {
811
+ func buildKubeletClientConfig (ctx context. Context , s * options.KubeletServer , nodeName types.NodeName ) (* restclient.Config , func (), error ) {
812
812
if s .RotateCertificates {
813
813
// Rules for client rotation and the handling of kube config files:
814
814
//
@@ -878,7 +878,7 @@ func buildKubeletClientConfig(s *options.KubeletServer, nodeName types.NodeName)
878
878
}
879
879
880
880
if len (s .BootstrapKubeconfig ) > 0 {
881
- if err := bootstrap .LoadClientCert (s .KubeConfig , s .BootstrapKubeconfig , s .CertDirectory , nodeName ); err != nil {
881
+ if err := bootstrap .LoadClientCert (ctx , s .KubeConfig , s .BootstrapKubeconfig , s .CertDirectory , nodeName ); err != nil {
882
882
return nil , nil , err
883
883
}
884
884
}
0 commit comments