From 742dcd6b009ab4e1f7e09250bdde30d96c8d1727 Mon Sep 17 00:00:00 2001 From: Medya Gh Date: Fri, 26 Jun 2020 15:08:38 -0700 Subject: [PATCH] add addon status verification for 3 addons --- pkg/addons/addons.go | 19 ++++++++----------- pkg/addons/config.go | 13 ++++++++++--- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/pkg/addons/addons.go b/pkg/addons/addons.go index 2536570e2..cd0ee02cf 100644 --- a/pkg/addons/addons.go +++ b/pkg/addons/addons.go @@ -313,27 +313,24 @@ func enableOrDisableStorageClasses(cc *config.ClusterConfig, name string, val st return enableOrDisableAddon(cc, name, val) } -func validateIngress(cc *config.ClusterConfig, name string, val string) error { +func verifyAddonStatus(cc *config.ClusterConfig, name string, val string) error { glog.Infof("Setting addon %s=%s in %q", name, val, cc.Name) enable, err := strconv.ParseBool(val) if err != nil { return errors.Wrapf(err, "parsing bool: %s", name) } - if name == "ingress" && enable { - client, err := kapi.Client(viper.GetString(config.ProfileName)) - if err != nil { - return errors.Wrapf(err, "get kube-client to validate ingress addon: %s", name) - } - err = kapi.WaitForDeploymentToStabilize(client, "kube-system", "ingress-nginx-controller", time.Minute*3) + label, ok := addonPodLabels[name] + if ok && enable { + out.T(out.HealthCheck, "Verifying {{.addon_name}} addon...", out.V{"addon_name": name}) + client, err := kapi.Client(viper.GetString(config.ProfileName)) if err != nil { - return errors.Wrapf(err, "Failed verifying ingress addon deployment: %s", name) + return errors.Wrapf(err, "get kube-client to validate %s addon: %v", name, err) } - // app.kubernetes.io/name: ingress-nginx - err = kapi.WaitForPods(client, "kube-system", "app.kubernetes.io/name=ingress-nginx", time.Minute*3) + err = kapi.WaitForPods(client, "kube-system", label, time.Minute*3) if err != nil { - return errors.Wrapf(err, "Failed verifying ingress addon deployment: %s", name) + return errors.Wrapf(err, "verifying %s addon pods : %v", name, err) } } diff --git a/pkg/addons/config.go b/pkg/addons/config.go index 6a63facd9..96e2617ef 100644 --- a/pkg/addons/config.go +++ b/pkg/addons/config.go @@ -28,6 +28,13 @@ type Addon struct { callbacks []setFn } +// addonPodLabels holds the pod label that will be used to verify if the addon is enabled +var addonPodLabels = map[string]string{ + "ingress": "app.kubernetes.io/name=ingress-nginx", + "registry": "kubernetes.io/minikube-addons=registry", + "gvisor": "kubernetes.io/minikube-addons=gvisor", +} + // Addons is a list of all addons var Addons = []*Addon{ { @@ -55,7 +62,7 @@ var Addons = []*Addon{ name: "gvisor", set: SetBool, validations: []setFn{IsRuntimeContainerd}, - callbacks: []setFn{enableOrDisableAddon}, + callbacks: []setFn{enableOrDisableAddon, verifyAddonStatus}, }, { name: "helm-tiller", @@ -65,7 +72,7 @@ var Addons = []*Addon{ { name: "ingress", set: SetBool, - callbacks: []setFn{enableOrDisableAddon, validateIngress}, + callbacks: []setFn{enableOrDisableAddon, verifyAddonStatus}, }, { name: "ingress-dns", @@ -115,7 +122,7 @@ var Addons = []*Addon{ { name: "registry", set: SetBool, - callbacks: []setFn{enableOrDisableAddon}, + callbacks: []setFn{enableOrDisableAddon, verifyAddonStatus}, }, { name: "registry-creds", -- GitLab