@@ -43,7 +43,6 @@ import (
4343 "k8s.io/minikube/pkg/libmachine"
4444 "k8s.io/minikube/pkg/libmachine/host"
4545 "k8s.io/minikube/pkg/minikube/bootstrapper"
46- "k8s.io/minikube/pkg/minikube/bootstrapper/bsutil"
4746 "k8s.io/minikube/pkg/minikube/bootstrapper/images"
4847 "k8s.io/minikube/pkg/minikube/bootstrapper/kubeadm"
4948 "k8s.io/minikube/pkg/minikube/cluster"
@@ -311,50 +310,25 @@ func joinCluster(starter Starter, cpBs bootstrapper.Bootstrapper, bs bootstrappe
311310 klog .Infof ("duration metric: took %s to joinCluster" , time .Since (start ))
312311 }()
313312
314- role := "worker"
315- if starter .Node .ControlPlane {
316- role = "control-plane"
317- }
318-
319313 // avoid "error execution phase kubelet-start: a Node with name "<name>" and status "Ready" already exists in the cluster.
320314 // You must delete the existing Node or change the name of this new joining Node"
321315 if starter .PreExists {
322- klog .Infof ("removing existing %s node %q before attempting to rejoin cluster: %+v" , role , starter .Node .Name , starter .Node )
316+ klog .Infof ("removing existing %s node %q before attempting to rejoin cluster: %+v" , starter . Node . Role () , starter .Node .Name , starter .Node )
323317 if _ , err := teardown (* starter .Cfg , starter .Node .Name , options ); err != nil {
324- klog .Errorf ("error removing existing %s node %q before rejoining cluster, will continue anyway: %v" , role , starter .Node .Name , err )
318+ klog .Errorf ("error removing existing %s node %q before rejoining cluster, will continue anyway: %v" , starter . Node . Role () , starter .Node .Name , err )
325319 }
326- klog .Infof ("successfully removed existing %s node %q from cluster: %+v" , role , starter .Node .Name , starter .Node )
320+ klog .Infof ("successfully removed existing %s node %q from cluster: %+v" , starter . Node . Role () , starter .Node .Name , starter .Node )
327321 }
328322
329- joinCmd , err := cpBs .GenerateToken (* starter .Cfg )
330- if err != nil {
331- return fmt .Errorf ("error generating join token: %w" , err )
332- }
333-
334- join := func () error {
335- klog .Infof ("trying to join %s node %q to cluster: %+v" , role , starter .Node .Name , starter .Node )
336- if err := bs .JoinCluster (* starter .Cfg , * starter .Node , joinCmd ); err != nil {
337- klog .Errorf ("%s node failed to join cluster, will retry: %v" , role , err )
338-
339- // reset node to revert any changes made by previous kubeadm init/join
340- klog .Infof ("resetting %s node %q before attempting to rejoin cluster..." , role , starter .Node .Name )
341- if _ , err := starter .Runner .RunCmd (exec .Command ("sudo" , "/bin/bash" , "-c" , fmt .Sprintf ("%s reset --force" , bsutil .KubeadmCmdWithPath (starter .Cfg .KubernetesConfig .KubernetesVersion )))); err != nil {
342- klog .Infof ("kubeadm reset failed, continuing anyway: %v" , err )
343- } else {
344- klog .Infof ("successfully reset %s node %q" , role , starter .Node .Name )
345- }
323+ p := & linuxProvisioner {starter : starter , controlplane : cpBs , worker : bs }
346324
347- return err
348- }
349- return nil
325+ if err := p .Join (); err != nil {
326+ return err
350327 }
351- if err := retry . Expo ( join , 10 * time . Second , 3 * time . Minute ); err != nil {
352- return fmt . Errorf ( "error joining %s node %q to cluster: %w" , role , starter . Node . Name , err )
328+ if err := p . LabelAndUntaint ( ); err != nil {
329+ return err
353330 }
354331
355- if err := cpBs .LabelAndUntaintNode (* starter .Cfg , * starter .Node ); err != nil {
356- return fmt .Errorf ("error applying %s node %q label: %w" , role , starter .Node .Name , err )
357- }
358332 return nil
359333}
360334
0 commit comments