add addon status verification for 3 addons
parent
66421a6492
commit
742dcd6b00
|
@ -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 {
|
||||
|
||||
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, "get kube-client to validate ingress addon: %s", name)
|
||||
return errors.Wrapf(err, "get kube-client to validate %s addon: %v", name, err)
|
||||
}
|
||||
|
||||
err = kapi.WaitForDeploymentToStabilize(client, "kube-system", "ingress-nginx-controller", 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)
|
||||
}
|
||||
|
||||
// app.kubernetes.io/name: ingress-nginx
|
||||
err = kapi.WaitForPods(client, "kube-system", "app.kubernetes.io/name=ingress-nginx", 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)
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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",
|
||||
|
|
Loading…
Reference in New Issue