提交 325db092 编写于 作者: P Pablo Caderno

Added option --all to stop all clusters

Related to #8237
Signed-off-by: Nkadern0 <kaderno@gmail.com>
上级 ba9d1baf
...@@ -24,15 +24,20 @@ import ( ...@@ -24,15 +24,20 @@ import (
"github.com/golang/glog" "github.com/golang/glog"
"github.com/pkg/errors" "github.com/pkg/errors"
"github.com/spf13/cobra" "github.com/spf13/cobra"
"github.com/spf13/viper"
"k8s.io/minikube/pkg/minikube/config"
"k8s.io/minikube/pkg/minikube/driver" "k8s.io/minikube/pkg/minikube/driver"
"k8s.io/minikube/pkg/minikube/exit" "k8s.io/minikube/pkg/minikube/exit"
"k8s.io/minikube/pkg/minikube/kubeconfig" "k8s.io/minikube/pkg/minikube/kubeconfig"
"k8s.io/minikube/pkg/minikube/localpath"
"k8s.io/minikube/pkg/minikube/machine" "k8s.io/minikube/pkg/minikube/machine"
"k8s.io/minikube/pkg/minikube/mustload" "k8s.io/minikube/pkg/minikube/mustload"
"k8s.io/minikube/pkg/minikube/out" "k8s.io/minikube/pkg/minikube/out"
"k8s.io/minikube/pkg/util/retry" "k8s.io/minikube/pkg/util/retry"
) )
var stopAll bool
// stopCmd represents the stop command // stopCmd represents the stop command
var stopCmd = &cobra.Command{ var stopCmd = &cobra.Command{
Use: "stop", Use: "stop",
...@@ -42,11 +47,36 @@ itself, leaving all files intact. The cluster can be started again with the "sta ...@@ -42,11 +47,36 @@ itself, leaving all files intact. The cluster can be started again with the "sta
Run: runStop, Run: runStop,
} }
func init() {
stopCmd.Flags().BoolVar(&stopAll, "all", false, "Set flag to stop all profiles (clusters)")
if err := viper.GetViper().BindPFlags(stopCmd.Flags()); err != nil {
exit.WithError("unable to bind flags", err)
}
RootCmd.AddCommand(stopCmd)
}
// runStop handles the executes the flow of "minikube stop" // runStop handles the executes the flow of "minikube stop"
func runStop(cmd *cobra.Command, args []string) { func runStop(cmd *cobra.Command, args []string) {
// new code
var profilesToStop []string
if stopAll {
validProfiles, _, err := config.ListProfiles()
if err != nil {
glog.Warningf("'error loading profiles in minikube home %q: %v", localpath.MiniPath(), err)
}
for _, profile := range validProfiles {
profilesToStop = append(profilesToStop, profile.Name)
}
} else {
cname := ClusterFlagValue() cname := ClusterFlagValue()
profilesToStop = append(profilesToStop, cname)
api, cc := mustload.Partial(cname) }
for _, profile := range profilesToStop {
// end new code
api, cc := mustload.Partial(profile)
defer api.Close() defer api.Close()
for _, n := range cc.Nodes { for _, n := range cc.Nodes {
...@@ -62,9 +92,10 @@ func runStop(cmd *cobra.Command, args []string) { ...@@ -62,9 +92,10 @@ func runStop(cmd *cobra.Command, args []string) {
out.WarningT("Unable to kill mount process: {{.error}}", out.V{"error": err}) out.WarningT("Unable to kill mount process: {{.error}}", out.V{"error": err})
} }
if err := kubeconfig.UnsetCurrentContext(cname, kubeconfig.PathFromEnv()); err != nil { if err := kubeconfig.UnsetCurrentContext(profile, kubeconfig.PathFromEnv()); err != nil {
exit.WithError("update config", err) exit.WithError("update config", err)
} }
}
} }
func stop(api libmachine.API, machineName string) bool { func stop(api libmachine.API, machineName string) bool {
......
...@@ -22,6 +22,7 @@ minikube stop [flags] ...@@ -22,6 +22,7 @@ minikube stop [flags]
### Options ### Options
``` ```
--all Set flag to stop all profiles (clusters)
-h, --help help for stop -h, --help help for stop
``` ```
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册