Skip to content

Commit da257a3

Browse files
feat: allow delete-on-faliure in setupKubeAdm
1 parent d2d1e75 commit da257a3

File tree

1 file changed

+24
-8
lines changed

1 file changed

+24
-8
lines changed

pkg/minikube/node/start.go

+24-8
Original file line numberDiff line numberDiff line change
@@ -271,7 +271,10 @@ func handleAPIServer(starter Starter, cr cruntime.Manager, hostIP net.IP) (*kube
271271
}
272272

273273
// Setup kubeadm (must come after setupKubeconfig).
274-
bs := setupKubeAdm(starter.MachineAPI, *starter.Cfg, *starter.Node, starter.Runner)
274+
bs, err := setupKubeAdm(starter.MachineAPI, *starter.Cfg, *starter.Node, starter.Runner)
275+
if err != nil {
276+
return nil, nil, errors.Wrap(err, "Failed to setup kubeadm")
277+
}
275278
err = bs.StartCluster(*starter.Cfg)
276279
if err != nil {
277280
ExitIfFatal(err, false)
@@ -554,10 +557,15 @@ func waitForCRIVersion(runner cruntime.CommandRunner, socket string, wait int, i
554557
}
555558

556559
// setupKubeAdm adds any requested files into the VM before Kubernetes is started
557-
func setupKubeAdm(mAPI libmachine.API, cfg config.ClusterConfig, n config.Node, r command.Runner) bootstrapper.Bootstrapper {
560+
func setupKubeAdm(mAPI libmachine.API, cfg config.ClusterConfig, n config.Node, r command.Runner) (bootstrapper.Bootstrapper, error) {
561+
deleteOnFailure := viper.GetBool("delete-on-failure")
558562
bs, err := cluster.Bootstrapper(mAPI, viper.GetString(cmdcfg.Bootstrapper), cfg, r)
559563
if err != nil {
560-
exit.Error(reason.InternalBootstrapper, "Failed to get bootstrapper", err)
564+
klog.Errorf("Failed to get bootstrapper: %v", err)
565+
if !deleteOnFailure {
566+
exit.Error(reason.InternalBootstrapper, "Failed to get bootstrapper", err)
567+
}
568+
return nil, err
561569
}
562570
for _, eo := range cfg.KubernetesConfig.ExtraOptions {
563571
out.Infof("{{.extra_option_component_name}}.{{.key}}={{.value}}", out.V{"extra_option_component_name": eo.Component, "key": eo.Key, "value": eo.Value})
@@ -566,17 +574,25 @@ func setupKubeAdm(mAPI libmachine.API, cfg config.ClusterConfig, n config.Node,
566574
// update cluster and set up certs
567575

568576
if err := bs.UpdateCluster(cfg); err != nil {
569-
if errors.Is(err, cruntime.ErrContainerRuntimeNotRunning) {
570-
exit.Error(reason.KubernetesInstallFailedRuntimeNotRunning, "Failed to update cluster", err)
577+
if !deleteOnFailure {
578+
if errors.Is(err, cruntime.ErrContainerRuntimeNotRunning) {
579+
exit.Error(reason.KubernetesInstallFailedRuntimeNotRunning, "Failed to update cluster", err)
580+
}
581+
exit.Error(reason.KubernetesInstallFailed, "Failed to update cluster", err)
571582
}
572-
exit.Error(reason.KubernetesInstallFailed, "Failed to update cluster", err)
583+
klog.Errorf("Failed to update cluster: %v", err)
584+
return nil, err
573585
}
574586

575587
if err := bs.SetupCerts(cfg, n); err != nil {
576-
exit.Error(reason.GuestCert, "Failed to setup certs", err)
588+
if !deleteOnFailure {
589+
exit.Error(reason.GuestCert, "Failed to setup certs", err)
590+
}
591+
klog.Errorf("Failed to setup certs: %v", err)
592+
return nil, err
577593
}
578594

579-
return bs
595+
return bs, nil
580596
}
581597

582598
func setupKubeconfig(h *host.Host, cc *config.ClusterConfig, n *config.Node, clusterName string) *kubeconfig.Settings {

0 commit comments

Comments
 (0)