@@ -33,10 +33,12 @@ import (
33
33
clientcmdapi "k8s.io/client-go/tools/clientcmd/api"
34
34
certutil "k8s.io/client-go/util/cert"
35
35
"k8s.io/klog/v2"
36
+ kubeletconfig "k8s.io/kubelet/config/v1beta1"
36
37
37
38
kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
38
39
"k8s.io/kubernetes/cmd/kubeadm/app/cmd/options"
39
40
"k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/workflow"
41
+ "k8s.io/kubernetes/cmd/kubeadm/app/componentconfigs"
40
42
kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants"
41
43
kubeletphase "k8s.io/kubernetes/cmd/kubeadm/app/phases/kubelet"
42
44
patchnodephase "k8s.io/kubernetes/cmd/kubeadm/app/phases/patchnode"
@@ -208,7 +210,12 @@ func runKubeletStartJoinPhase(c workflow.RunData) (returnErr error) {
208
210
// times out, display a somewhat user-friendly message.
209
211
waiter := apiclient .NewKubeWaiter (nil , 0 , os .Stdout )
210
212
waiter .SetTimeout (cfg .Timeouts .KubeletHealthCheck .Duration )
211
- if err := waiter .WaitForKubelet (); err != nil {
213
+ kubeletConfig := initCfg .ClusterConfiguration .ComponentConfigs [componentconfigs .KubeletGroup ].Get ()
214
+ kubeletConfigTyped , ok := kubeletConfig .(* kubeletconfig.KubeletConfiguration )
215
+ if ! ok {
216
+ return errors .New ("could not convert the KubeletConfiguration to a typed object" )
217
+ }
218
+ if err := waiter .WaitForKubelet (kubeletConfigTyped .HealthzBindAddress , * kubeletConfigTyped .HealthzPort ); err != nil {
212
219
fmt .Printf (kubeadmJoinFailMsg , err )
213
220
return err
214
221
}
0 commit comments