Fix: check if addon is enabled before doing validation

Signed-off-by: Pablo Caderno <kaderno@gmail.com>
pull/16139/head
Pablo Caderno 2023-03-23 17:48:08 +11:00
parent 21048c4f02
commit 56c99ef91b
1 changed files with 18 additions and 3 deletions

View File

@ -19,6 +19,8 @@ package config
import (
"github.com/spf13/cobra"
"k8s.io/minikube/pkg/addons"
"k8s.io/minikube/pkg/minikube/assets"
"k8s.io/minikube/pkg/minikube/config"
"k8s.io/minikube/pkg/minikube/exit"
"k8s.io/minikube/pkg/minikube/out"
"k8s.io/minikube/pkg/minikube/reason"
@ -38,11 +40,24 @@ var addonsDisableCmd = &cobra.Command{
if addon == "heapster" {
exit.Message(reason.AddonUnsupported, "The heapster addon is depreciated. please try to disable metrics-server instead")
}
err := addons.SetAndSave(ClusterFlagValue(), addon, "false")
cc, err := config.Load(ClusterFlagValue())
if err != nil {
exit.Error(reason.InternalAddonDisable, "disable failed", err)
exit.Error(reason.InternalAddonDisable, "loading profile", err)
}
validAddon, ok := assets.Addons[addon]
if ok {
if validAddon.IsEnabled(cc) {
err := addons.SetAndSave(ClusterFlagValue(), addon, "false")
if err != nil {
exit.Error(reason.InternalAddonDisable, "disable failed", err)
}
} else {
out.Step(style.AddonDisable, `"The '{{.minikube_addon}}' addon is disabled`, out.V{"minikube_addon": addon})
}
} else {
out.Step(style.AddonDisable, `"The '{{.minikube_addon}}' seems not to be a valid minikube addon`, out.V{"minikube_addon": addon})
}
out.Step(style.AddonDisable, `"The '{{.minikube_addon}}' addon is disabled`, out.V{"minikube_addon": addon})
},
}