From 56c99ef91bc553a3d3c4d21e667147e150b99286 Mon Sep 17 00:00:00 2001 From: Pablo Caderno Date: Thu, 23 Mar 2023 17:48:08 +1100 Subject: [PATCH] Fix: check if addon is enabled before doing validation Signed-off-by: Pablo Caderno --- cmd/minikube/cmd/config/disable.go | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/cmd/minikube/cmd/config/disable.go b/cmd/minikube/cmd/config/disable.go index cdf31b934d..d85ef92fd4 100644 --- a/cmd/minikube/cmd/config/disable.go +++ b/cmd/minikube/cmd/config/disable.go @@ -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}) }, }