@@ -209,21 +209,31 @@ func addAddons(files *[]assets.CopyableFile) error {
209
209
}
210
210
211
211
func (k * KubeadmBootstrapper ) RestartCluster (k8s config.KubernetesConfig ) error {
212
- opts := struct {
213
- KubeadmConfigFile string
214
- }{
215
- KubeadmConfigFile : constants .KubeadmConfigFile ,
212
+ version , err := ParseKubernetesVersion (k8s .KubernetesVersion )
213
+ if err != nil {
214
+ return errors .Wrap (err , "parsing kubernetes version" )
216
215
}
217
216
218
- b := bytes.Buffer {}
219
- if err := kubeadmRestoreTemplate .Execute (& b , opts ); err != nil {
220
- return err
217
+ phase := "alpha"
218
+ controlPlane := "controlplane"
219
+ if version .GTE (semver .MustParse ("1.13.0" )) {
220
+ phase = "init"
221
+ controlPlane = "control-plane"
221
222
}
222
223
223
- if err := k .c .Run (b .String ()); err != nil {
224
- return errors .Wrapf (err , "running cmd: %s" , b .String ())
224
+ cmds := []string {
225
+ fmt .Sprintf ("sudo kubeadm %s phase certs all --config %s" , phase , constants .KubeadmConfigFile ),
226
+ fmt .Sprintf ("sudo kubeadm %s phase kubeconfig all --config %s" , phase , constants .KubeadmConfigFile ),
227
+ fmt .Sprintf ("sudo kubeadm %s phase %s all --config %s" , phase , controlPlane , constants .KubeadmConfigFile ),
228
+ fmt .Sprintf ("sudo kubeadm %s phase etcd local --config %s" , phase , constants .KubeadmConfigFile ),
225
229
}
226
230
231
+ // Run commands one at a time so that it is easier to root cause failures.
232
+ for _ , cmd := range cmds {
233
+ if err := k .c .Run (cmd ); err != nil {
234
+ return errors .Wrapf (err , "running cmd: %s" , cmd )
235
+ }
236
+ }
227
237
if err := restartKubeProxy (k8s ); err != nil {
228
238
return errors .Wrap (err , "restarting kube-proxy" )
229
239
}
0 commit comments