func NewReset(skipPreFlight bool) (*Reset, error) { if !skipPreFlight { fmt.Println("Running pre-flight checks") err := preflight.RunResetCheck() if err != nil { return nil, &preflight.PreFlightError{Msg: err.Error()} } } else { fmt.Println("Skipping pre-flight checks") } return &Reset{}, nil }
func NewReset(skipPreFlight, removeNode bool) (*Reset, error) { if !skipPreFlight { fmt.Println("[preflight] Running pre-flight checks...") if err := preflight.RunResetCheck(); err != nil { return nil, &preflight.PreFlightError{Msg: err.Error()} } } else { fmt.Println("[preflight] Skipping pre-flight checks...") } return &Reset{ removeNode: removeNode, }, nil }
func RunReset(out io.Writer, cmd *cobra.Command, skipPreFlight bool) error { if !skipPreFlight { fmt.Println("Running pre-flight checks") err := preflight.RunResetCheck() if err != nil { return &preflight.PreFlightError{Msg: err.Error()} } } else { fmt.Println("Skipping pre-flight checks") } serviceToStop := "kubelet" initSystem, err := initsystem.GetInitSystem() if err != nil { fmt.Printf("%v", err) } else { fmt.Printf("Stopping the %s service...\n", serviceToStop) initSystem.ServiceStop(serviceToStop) } fmt.Printf("Unmounting directories in /var/lib/kubelet...\n") // Don't check for errors here, since umount will return a non-zero exit code if there is no directories to umount exec.Command("sh", "-c", "cat /proc/mounts | awk '{print $2}' | grep '/var/lib/kubelet' | xargs umount").Run() dirsToRemove := []string{"/var/lib/kubelet", "/var/lib/etcd", "/etc/kubernetes"} fmt.Printf("Deleting the stateful directories: %v\n", dirsToRemove) for _, dir := range dirsToRemove { err := os.RemoveAll(dir) if err != nil { fmt.Printf("failed to remove directory: [%v]\n", err) } } dockerCheck := preflight.ServiceCheck{Service: "docker"} if warnings, errors := dockerCheck.Check(); len(warnings) == 0 && len(errors) == 0 { fmt.Println("Stopping all running docker containers...") if err := exec.Command("sh", "-c", "docker ps | grep 'k8s_' | awk '{print $1}' | xargs docker rm --force --volumes").Run(); err != nil { fmt.Println("failed to stop the running containers") } } else { fmt.Println("docker doesn't seem to be running, skipping the removal of kubernetes containers") } return nil }