@@ -228,8 +228,16 @@ func (k *Bootstrapper) init(cfg config.ClusterConfig) error {
228228 ctx , cancel := context .WithTimeout (context .Background (), initTimeoutMinutes * time .Minute )
229229 defer cancel ()
230230 kr , kw := io .Pipe ()
231- c := exec .CommandContext (ctx , "/bin/bash" , "-c" , fmt .Sprintf ("%s init --config %s %s --ignore-preflight-errors=%s" ,
232- bsutil .InvokeKubeadm (cfg .KubernetesConfig .KubernetesVersion ), conf , extraFlags , strings .Join (ignore , "," )))
231+
232+ cmd := fmt .Sprintf (
233+ "%s init --config %s %s --ignore-preflight-errors=%s" ,
234+ bsutil .KubeadmCmdWithPath (cfg .KubernetesConfig .KubernetesVersion ),
235+ conf ,
236+ extraFlags ,
237+ strings .Join (ignore , "," ),
238+ )
239+ c := exec .CommandContext (ctx , "sudo" , "/bin/bash" , "-c" , cmd )
240+
233241 c .Stdout = kw
234242 c .Stderr = kw
235243 var wg sync.WaitGroup
@@ -650,7 +658,7 @@ func (k *Bootstrapper) restartPrimaryControlPlane(cfg config.ClusterConfig) erro
650658 return errors .Wrap (err , "cp" )
651659 }
652660
653- baseCmd := fmt .Sprintf ("%s init" , bsutil .InvokeKubeadm (cfg .KubernetesConfig .KubernetesVersion ))
661+ baseCmd := fmt .Sprintf ("%s init" , bsutil .KubeadmCmdWithPath (cfg .KubernetesConfig .KubernetesVersion ))
654662 cmds := []string {
655663 fmt .Sprintf ("%s phase certs all --config %s" , baseCmd , conf ),
656664 fmt .Sprintf ("%s phase kubeconfig all --config %s" , baseCmd , conf ),
@@ -661,10 +669,10 @@ func (k *Bootstrapper) restartPrimaryControlPlane(cfg config.ClusterConfig) erro
661669
662670 // Run commands one at a time so that it is easier to root cause failures.
663671 for _ , c := range cmds {
664- if _ , err := k .c .RunCmd (exec .Command ("/bin/bash" , "-c" , c )); err != nil {
672+ if _ , err := k .c .RunCmd (exec .Command ("sudo" , " /bin/bash" , "-c" , c )); err != nil {
665673 klog .Errorf ("%s failed - will try once more: %v" , c , err )
666674
667- if _ , err := k .c .RunCmd (exec .Command ("/bin/bash" , "-c" , c )); err != nil {
675+ if _ , err := k .c .RunCmd (exec .Command ("sudo" , " /bin/bash" , "-c" , c )); err != nil {
668676 return errors .Wrap (err , "run" )
669677 }
670678 }
@@ -703,7 +711,7 @@ func (k *Bootstrapper) restartPrimaryControlPlane(cfg config.ClusterConfig) erro
703711 if cfg .KubernetesConfig .ExtraOptions .Exists ("kubeadm.skip-phases=addon/kube-proxy" ) {
704712 addons = "coredns"
705713 }
706- _ , err := k .c .RunCmd (exec .Command ("/bin/bash" , "-c" , fmt .Sprintf ("%s phase addon %s --config %s" , baseCmd , addons , conf )))
714+ _ , err := k .c .RunCmd (exec .Command ("sudo" , " /bin/bash" , "-c" , fmt .Sprintf ("%s phase addon %s --config %s" , baseCmd , addons , conf )))
707715 return err
708716 }
709717 if err = retry .Expo (addonPhase , 100 * time .Microsecond , 30 * time .Second ); err != nil {
@@ -759,11 +767,11 @@ func (k *Bootstrapper) JoinCluster(cc config.ClusterConfig, n config.Node, joinC
759767 " --apiserver-bind-port=" + strconv .Itoa (n .Port )
760768 }
761769
762- if _ , err := k .c .RunCmd (exec .Command ("/bin/bash" , "-c" , joinCmd )); err != nil {
770+ if _ , err := k .c .RunCmd (exec .Command ("sudo" , " /bin/bash" , "-c" , joinCmd )); err != nil {
763771 return errors .Wrapf (err , "kubeadm join" )
764772 }
765773
766- if _ , err := k .c .RunCmd (exec .Command ("/bin/bash" , "-c" , "sudo systemctl daemon-reload && sudo systemctl enable kubelet && sudo systemctl start kubelet" )); err != nil {
774+ if _ , err := k .c .RunCmd (exec .Command ("sudo" , " /bin/bash" , "-c" , "systemctl daemon-reload && systemctl enable kubelet && systemctl start kubelet" )); err != nil {
767775 return errors .Wrap (err , "starting kubelet" )
768776 }
769777
@@ -773,14 +781,14 @@ func (k *Bootstrapper) JoinCluster(cc config.ClusterConfig, n config.Node, joinC
773781// GenerateToken creates a token and returns the appropriate kubeadm join command to run, or the already existing token
774782func (k * Bootstrapper ) GenerateToken (cc config.ClusterConfig ) (string , error ) {
775783 // Take that generated token and use it to get a kubeadm join command
776- tokenCmd := exec .Command ("/bin/bash" , "-c" , fmt .Sprintf ("%s token create --print-join-command --ttl=0" , bsutil .InvokeKubeadm (cc .KubernetesConfig .KubernetesVersion )))
784+ tokenCmd := exec .Command ("sudo" , " /bin/bash" , "-c" , fmt .Sprintf ("%s token create --print-join-command --ttl=0" , bsutil .KubeadmCmdWithPath (cc .KubernetesConfig .KubernetesVersion )))
777785 r , err := k .c .RunCmd (tokenCmd )
778786 if err != nil {
779787 return "" , errors .Wrap (err , "generating join command" )
780788 }
781789
782790 joinCmd := r .Stdout .String ()
783- joinCmd = strings .Replace (joinCmd , "kubeadm" , bsutil .InvokeKubeadm (cc .KubernetesConfig .KubernetesVersion ), 1 )
791+ joinCmd = strings .Replace (joinCmd , "kubeadm" , bsutil .KubeadmCmdWithPath (cc .KubernetesConfig .KubernetesVersion ), 1 )
784792 joinCmd = fmt .Sprintf ("%s --ignore-preflight-errors=all" , strings .TrimSpace (joinCmd ))
785793
786794 // avoid "Found multiple CRI endpoints on the host. Please define which one do you wish to use by setting the 'criSocket' field in the kubeadm configuration file: unix:///var/run/containerd/containerd.sock, unix:///var/run/cri-dockerd.sock" error
@@ -849,14 +857,14 @@ func (k *Bootstrapper) DeleteCluster(k8s config.KubernetesConfig) error {
849857 return errors .Wrap (err , "runtime" )
850858 }
851859
852- ka := bsutil .InvokeKubeadm (k8s .KubernetesVersion )
860+ ka := bsutil .KubeadmCmdWithPath (k8s .KubernetesVersion )
853861 sp := cr .SocketPath ()
854862 cmd := fmt .Sprintf ("%s reset --cri-socket %s --force" , ka , sp )
855863 if ver .LT (semver .MustParse ("1.11.0" )) {
856864 cmd = fmt .Sprintf ("%s reset --cri-socket %s" , ka , sp )
857865 }
858866
859- rr , derr := k .c .RunCmd (exec .Command ("/bin/bash" , "-c" , cmd ))
867+ rr , derr := k .c .RunCmd (exec .Command ("sudo" , " /bin/bash" , "-c" , cmd ))
860868 if derr != nil {
861869 klog .Warningf ("%s: %v" , rr .Command (), err )
862870 }
0 commit comments