Repository: kubernetes/minikube
Pull request #4376 (2019-05-30 01:54:12)

Change console style string to enum


Patch:
diff --git a/cmd/minikube/cmd/config/open.go b/cmd/minikube/cmd/config/open.go
index 5e0a49867..bea943322 100644
--- a/cmd/minikube/cmd/config/open.go
+++ b/cmd/minikube/cmd/config/open.go
@@ -76,7 +76,7 @@ minikube addons list`, addonName)
 			exit.WithError("IsEnabled failed", err)
 		}
 		if !ok {
-			console.ErrStyle("conflict", `addon '%s' is currently not enabled.
+			console.ErrStyle(console.Conflict, `addon '%s' is currently not enabled.
 To enable this addon run:
 minikube addons enable %s`, addonName, addonName)
 			os.Exit(exit.Unavailable)
diff --git a/cmd/minikube/cmd/config/validations.go b/cmd/minikube/cmd/config/validations.go
index c76b963d9..dedd468b1 100644
--- a/cmd/minikube/cmd/config/validations.go
+++ b/cmd/minikube/cmd/config/validations.go
@@ -55,7 +55,7 @@ func IsValidDriver(string, driver string) error {
 
 // RequiresRestartMsg returns the "requires restart" message
 func RequiresRestartMsg(string, string) error {
-	console.OutStyle("warning", "These changes will take effect upon a minikube delete and then a minikube start")
+	console.OutStyle(console.WarningType, "These changes will take effect upon a minikube delete and then a minikube start")
 	return nil
 }
 
diff --git a/cmd/minikube/cmd/dashboard.go b/cmd/minikube/cmd/dashboard.go
index 6f9b6dc09..200d285d0 100644
--- a/cmd/minikube/cmd/dashboard.go
+++ b/cmd/minikube/cmd/dashboard.go
@@ -82,7 +82,7 @@ var dashboardCmd = &cobra.Command{
 		cluster.EnsureMinikubeRunningOrExit(api, 1)
 
 		// Send status messages to stderr for folks re-using this output.
-		console.ErrStyle("enabling", "Enabling dashboard ...")
+		console.ErrStyle(console.Enabling, "Enabling dashboard ...")
 		// Enable the dashboard add-on
 		err = configcmd.Set("dashboard", "true")
 		if err != nil {
@@ -91,19 +91,19 @@ var dashboardCmd = &cobra.Command{
 
 		ns := "kube-system"
 		svc := "kubernetes-dashboard"
-		console.ErrStyle("verifying", "Verifying dashboard health ...")
+		console.ErrStyle(console.Verifying, "Verifying dashboard health ...")
 		if err = util.RetryAfter(180, func() error { return service.CheckService(ns, svc) }, 1*time.Second); err != nil {
 			exit.WithCode(exit.Unavailable, "%s:%s is not running: %v", ns, svc, err)
 		}
 
-		console.ErrStyle("launch", "Launching proxy ...")
+		console.ErrStyle(console.Launch, "Launching proxy ...")
 		p, hostPort, err := kubectlProxy(kubectl)
 		if err != nil {
 			exit.WithError("kubectl proxy", err)
 		}
 		url := dashboardURL(hostPort, ns, svc)
 
-		console.ErrStyle("verifying", "Verifying proxy health ...")
+		console.ErrStyle(console.Verifying, "Verifying proxy health ...")
 		if err = util.RetryAfter(60, func() error { return checkURL(url) }, 1*time.Second); err != nil {
 			exit.WithCode(exit.Unavailable, "%s is not responding properly: %v", url, err)
 		}
@@ -111,7 +111,7 @@ var dashboardCmd = &cobra.Command{
 		if dashboardURLMode {
 			console.OutLn(url)
 		} else {
-			console.ErrStyle("celebrate", "Opening %s in your default browser...", url)
+			console.ErrStyle(console.Celebrate, "Opening %s in your default browser...", url)
 			if err = browser.OpenURL(url); err != nil {
 				console.Failure("failed to open browser: %v", err)
 			}
diff --git a/cmd/minikube/cmd/delete.go b/cmd/minikube/cmd/delete.go
index 629d56114..c0c897798 100644
--- a/cmd/minikube/cmd/delete.go
+++ b/cmd/minikube/cmd/delete.go
@@ -59,7 +59,7 @@ associated files.`,
 		if err == nil && cc.MachineConfig.VMDriver == "none" {
 			kc := cc.KubernetesConfig
 			bsName := viper.GetString(cmdcfg.Bootstrapper)
-			console.OutStyle("resetting", "Uninstalling Kubernetes %s using %s ...", kc.KubernetesVersion, bsName)
+			console.OutStyle(console.Resetting, "Uninstalling Kubernetes %s using %s ...", kc.KubernetesVersion, bsName)
 			clusterBootstrapper, err := GetClusterBootstrapper(api, viper.GetString(cmdcfg.Bootstrapper))
 			if err != nil {
 				console.ErrLn("Unable to get bootstrapper: %v", err)
@@ -73,7 +73,7 @@ associated files.`,
 		if err = cluster.DeleteHost(api); err != nil {
 			switch err := errors.Cause(err).(type) {
 			case mcnerror.ErrHostDoesNotExist:
-				console.OutStyle("meh", "%q cluster does not exist", profile)
+				console.OutStyle(console.Meh, "%q cluster does not exist", profile)
 			default:
 				exit.WithError("Failed to delete cluster", err)
 			}
@@ -85,12 +85,12 @@ associated files.`,
 
 		if err := os.Remove(constants.GetProfileFile(viper.GetString(pkg_config.MachineProfile))); err != nil {
 			if os.IsNotExist(err) {
-				console.OutStyle("meh", "%q profile does not exist", profile)
+				console.OutStyle(console.Meh, "%q profile does not exist", profile)
 				os.Exit(0)
 			}
 			exit.WithError("Failed to remove profile", err)
 		}
-		console.OutStyle("crushed", "The %q cluster has been deleted.", profile)
+		console.OutStyle(console.Crushed, "The %q cluster has been deleted.", profile)
 	},
 }
 
diff --git a/cmd/minikube/cmd/mount.go b/cmd/minikube/cmd/mount.go
index 36c707183..ec9d452bb 100644
--- a/cmd/minikube/cmd/mount.go
+++ b/cmd/minikube/cmd/mount.go
@@ -142,29 +142,29 @@ var mountCmd = &cobra.Command{
 			cfg.Options[parts[0]] = parts[1]
 		}
 
-		console.OutStyle("mounting", "Mounting host path %s into VM as %s ...", hostPath, vmPath)
-		console.OutStyle("mount-options", "Mount options:")
-		console.OutStyle("option", "Type:     %s", cfg.Type)
-		console.OutStyle("option", "UID:      %s", cfg.UID)
-		console.OutStyle("option", "GID:      %s", cfg.GID)
-		console.OutStyle("option", "Version:  %s", cfg.Version)
-		console.OutStyle("option", "MSize:    %d", cfg.MSize)
-		console.OutStyle("option", "Mode:     %o (%s)", cfg.Mode, cfg.Mode)
-		console.OutStyle("option", "Options:  %s", cfg.Options)
+		console.OutStyle(console.Mounting, "Mounting host path %s into VM as %s ...", hostPath, vmPath)
+		console.OutStyle(console.MountOptions, "Mount options:")
+		console.OutStyle(console.Option, "Type:     %s", cfg.Type)
+		console.OutStyle(console.Option, "UID:      %s", cfg.UID)
+		console.OutStyle(console.Option, "GID:      %s", cfg.GID)
+		console.OutStyle(console.Option, "Version:  %s", cfg.Version)
+		console.OutStyle(console.Option, "MSize:    %d", cfg.MSize)
+		console.OutStyle(console.Option, "Mode:     %o (%s)", cfg.Mode, cfg.Mode)
+		console.OutStyle(console.Option, "Options:  %s", cfg.Options)
 
 		// An escape valve to allow future hackers to try NFS, VirtFS, or other FS types.
 		if !supportedFilesystems[cfg.Type] {
 			console.OutLn("")
-			console.OutStyle("warning", "%s is not yet a supported filesystem. We will try anyways!", cfg.Type)
+			console.OutStyle(console.WarningType, "%s is not yet a supported filesystem. We will try anyways!", cfg.Type)
 		}
 
 		var wg sync.WaitGroup
 		if cfg.Type == nineP {
 			wg.Add(1)
 			go func() {
-				console.OutStyle("fileserver", "Userspace file server: ")
+				console.OutStyle(console.Fileserver, "Userspace file server: ")
 				ufs.StartServer(net.JoinHostPort(ip.String(), strconv.Itoa(port)), debugVal, hostPath)
-				console.OutStyle("stopped", "Userspace file server is shutdown")
+				console.OutStyle(console.Stopped, "Userspace file server is shutdown")
 				wg.Done()
 			}()
 		}
@@ -180,10 +180,10 @@ var mountCmd = &cobra.Command{
 		signal.Notify(c, os.Interrupt, syscall.SIGTERM)
 		go func() {
 			for sig := range c {
-				console.OutStyle("unmount", "Unmounting %s ...", vmPath)
+				console.OutStyle(console.Unmount, "Unmounting %s ...", vmPath)
 				err := cluster.Unmount(runner, vmPath)
 				if err != nil {
-					console.ErrStyle("failure", "Failed unmount: %v", err)
+					console.ErrStyle(console.FailureType, "Failed unmount: %v", err)
 				}
 				exit.WithCode(exit.Interrupted, "Exiting due to %s signal", sig)
 			}
@@ -193,9 +193,9 @@ var mountCmd = &cobra.Command{
 		if err != nil {
 			exit.WithError("mount failed", err)
 		}
-		console.OutStyle("success", "Successfully mounted %s to %s", hostPath, vmPath)
+		console.OutStyle(console.SuccessType, "Successfully mounted %s to %s", hostPath, vmPath)
 		console.OutLn("")
-		console.OutStyle("notice", "NOTE: This process must stay alive for the mount to be accessible ...")
+		console.OutStyle(console.Notice, "NOTE: This process must stay alive for the mount to be accessible ...")
 		wg.Wait()
 	},
 }
diff --git a/cmd/minikube/cmd/service_list.go b/cmd/minikube/cmd/service_list.go
index 2a1843bad..1baedd7e3 100644
--- a/cmd/minikube/cmd/service_list.go
+++ b/cmd/minikube/cmd/service_list.go
@@ -45,7 +45,7 @@ var serviceListCmd = &cobra.Command{
 		serviceURLs, err := service.GetServiceURLs(api, serviceListNamespace, serviceURLTemplate)
 		if err != nil {
 			console.Fatal("Failed to get service URL: %v", err)
-			console.ErrStyle("notice", "Check that minikube is running and that you have specified the correct namespace (-n flag) if required.")
+			console.ErrStyle(console.Notice, "Check that minikube is running and that you have specified the correct namespace (-n flag) if required.")
 			os.Exit(exit.Unavailable)
 		}
 
diff --git a/cmd/minikube/cmd/start.go b/cmd/minikube/cmd/start.go
index 0fd1dd91b..fd45b8671 100644
--- a/cmd/minikube/cmd/start.go
+++ b/cmd/minikube/cmd/start.go
@@ -169,7 +169,7 @@ assumes you have already installed one of the VM drivers: virtualbox/parallels/v
 
 // runStart handles the executes the flow of "minikube start"
 func runStart(cmd *cobra.Command, args []string) {
-	console.OutStyle("happy", "minikube %s on %s (%s)", version.GetVersion(), runtime.GOOS, runtime.GOARCH)
+	console.OutStyle(console.Happy, "minikube %s on %s (%s)", version.GetVersion(), runtime.GOOS, runtime.GOARCH)
 	validateConfig()
 
 	oldConfig, err := cfg.Load()
@@ -216,7 +216,7 @@ func runStart(cmd *cobra.Command, args []string) {
 		if err := CacheImagesInConfigFile(); err != nil {
 			exit.WithError("Failed to cache images", err)
 		}
-		console.OutStyle("check", "Download complete!")
+		console.OutStyle(console.Check, "Download complete!")
 		return
 	}
 
@@ -226,7 +226,7 @@ func runStart(cmd *cobra.Command, args []string) {
 	// Makes minikube node ip to bypass http(s) proxy. since it is local traffic.
 	err = proxy.ExcludeIP(ip)
 	if err != nil {
-		console.ErrStyle("Failed to set NO_PROXY Env. please Use `export NO_PROXY=$NO_PROXY,%s`.", ip)
+		console.ErrStyle(console.FailureType, "Failed to set NO_PROXY Env. please Use `export NO_PROXY=$NO_PROXY,%s`.", ip)
 	}
 	// Save IP to configuration file for subsequent use
 	config.KubernetesConfig.NodeIP = ip
@@ -240,12 +240,12 @@ func runStart(cmd *cobra.Command, args []string) {
 
 	cr := configureRuntimes(runner)
 	version, _ := cr.Version()
-	console.OutStyle(cr.Name(), "Configuring environment for Kubernetes %s on %s %s", k8sVersion, cr.Name(), version)
+	console.OutStyle(cr.Style(), "Configuring environment for Kubernetes %s on %s %s", k8sVersion, cr.Name(), version)
 	for _, v := range dockerOpt {
-		console.OutStyle("option", "opt %s", v)
+		console.OutStyle(console.Option, "opt %s", v)
 	}
 	for _, v := range dockerEnv {
-		console.OutStyle("option", "env %s", v)
+		console.OutStyle(console.Option, "env %s", v)
 	}
 
 	// prepareHostEnvironment uses the downloaded images, so we need to wait for background task completion.
@@ -262,7 +262,7 @@ func runStart(cmd *cobra.Command, args []string) {
 	}
 
 	if config.MachineConfig.VMDriver == constants.DriverNone {
-		console.OutStyle("starting-none", "Configuring local host environment ...")
+		console.OutStyle(console.StartingNone, "Configuring local host environment ...")
 		prepareNone()
 	}
 
@@ -275,13 +275,13 @@ func runStart(cmd *cobra.Command, args []string) {
 
 func showKubectlConnectInfo(kubeconfig *pkgutil.KubeConfigSetup) {
 	if kubeconfig.KeepContext {
-		console.OutStyle("kubectl", "To connect to this cluster, use: kubectl --context=%s", kubeconfig.ClusterName)
+		console.OutStyle(console.Kubectl, "To connect to this cluster, use: kubectl --context=%s", kubeconfig.ClusterName)
 	} else {
-		console.OutStyle("ready", "Done! kubectl is now configured to use %q", cfg.GetMachineName())
+		console.OutStyle(console.Ready, "Done! kubectl is now configured to use %q", cfg.GetMachineName())
 	}
 	_, err := exec.LookPath("kubectl")
 	if err != nil {
-		console.OutStyle("tip", "For best results, install kubectl: https://kubernetes.io/docs/tasks/tools/install-kubectl/")
+		console.OutStyle(console.Tip, "For best results, install kubectl: https://kubernetes.io/docs/tasks/tools/install-kubectl/")
 	}
 }
 
@@ -416,7 +416,7 @@ func generateConfig(cmd *cobra.Command, k8sVersion string) (cfg.Config, error) {
 	repository := viper.GetString(imageRepository)
 	mirrorCountry := strings.ToLower(viper.GetString(imageMirrorCountry))
 	if strings.ToLower(repository) == "auto" || mirrorCountry != "" {
-		console.OutStyle("connectivity", "checking main repository and mirrors for images")
+		console.OutStyle(console.Connectivity, "checking main repository and mirrors for images")
 		found, autoSelectedRepository, err := selectImageRepository(mirrorCountry, k8sVersion)
 		if err != nil {
 			exit.WithError("Failed to check main repository and mirrors for images for images", err)
@@ -434,7 +434,7 @@ func generateConfig(cmd *cobra.Command, k8sVersion string) (cfg.Config, error) {
 	}
 
 	if repository != "" {
-		console.OutStyle("success", "using image repository %s", repository)
+		console.OutStyle(console.SuccessType, "using image repository %s", repository)
 	}
 
 	cfg := cfg.Config{
@@ -492,7 +492,7 @@ func prepareNone() {
 		console.OutLn("")
 		console.Warning("The 'none' driver provides limited isolation and may reduce system security and reliability.")
 		console.Warning("For more information, see:")
-		console.OutStyle("url", "https://github.com/kubernetes/minikube/blob/master/docs/vmdriver-none.md")
+		console.OutStyle(console.URL, "https://github.com/kubernetes/minikube/blob/master/docs/vmdriver-none.md")
 		console.OutLn("")
 	}
 
@@ -503,11 +503,11 @@ func prepareNone() {
 		console.Warning("need to relocate them. For example, to overwrite your own settings:")
 
 		console.OutLn("")
-		console.OutStyle("command", "sudo mv %s/.kube %s/.minikube $HOME", home, home)
-		console.OutStyle("command", "sudo chown -R $USER $HOME/.kube $HOME/.minikube")
+		console.OutStyle(console.Command, "sudo mv %s/.kube %s/.minikube $HOME", home, home)
+		console.OutStyle(console.Command, "sudo chown -R $USER $HOME/.kube $HOME/.minikube")
 		console.OutLn("")
 
-		console.OutStyle("tip", "This can also be done automatically by setting the env var CHANGE_MINIKUBE_NONE_USER=true")
+		console.OutStyle(console.Tip, "This can also be done automatically by setting the env var CHANGE_MINIKUBE_NONE_USER=true")
 	}
 
 	if err := pkgutil.MaybeChownDirRecursiveToMinikubeUser(constants.GetMinipath()); err != nil {
@@ -548,10 +548,10 @@ func validateNetwork(h *host.Host) string {
 	for _, k := range proxy.EnvVars {
 		if v := os.Getenv(k); v != "" {
 			if !optSeen {
-				console.OutStyle("internet", "Found network options:")
+				console.OutStyle(console.Internet, "Found network options:")
 				optSeen = true
 			}
-			console.OutStyle("option", "%s=%s", k, v)
+			console.OutStyle(console.Option, "%s=%s", k, v)
 			ipExcluded := proxy.IsIPExcluded(ip) // Skip warning if minikube ip is already in NO_PROXY
 			if (k == "HTTP_PROXY" || k == "HTTPS_PROXY") && !ipExcluded && !warnedOnce {
 				console.Warning("You appear to be using a proxy, but your NO_PROXY environment does not include the minikube IP (%s). Please see https://github.com/kubernetes/minikube/blob/master/docs/http_proxy.md for more details", ip)
@@ -587,11 +587,11 @@ func validateKubernetesVersions(old *cfg.Config) (string, bool) {
 
 	if nvs.LT(ovs) {
 		nv = version.VersionPrefix + ovs.String()
-		console.ErrStyle("conflict", "Kubernetes downgrade is not supported, will continue to use %v", nv)
+		console.ErrStyle(console.Conflict, "Kubernetes downgrade is not supported, will continue to use %v", nv)
 		return nv, isUpgrade
 	}
 	if nvs.GT(ovs) {
-		console.OutStyle("thumbs-up", "minikube will upgrade the local cluster from Kubernetes %s to %s", ovs, nvs)
+		console.OutStyle(console.ThumbsUp, "minikube will upgrade the local cluster from Kubernetes %s to %s", ovs, nvs)
 		isUpgrade = true
 	}
 	return nv, isUpgrade
@@ -604,7 +604,7 @@ func prepareHostEnvironment(api libmachine.API, kc cfg.KubernetesConfig) bootstr
 		exit.WithError("Failed to get bootstrapper", err)
 	}
 	for _, eo := range extraOptions {
-		console.OutStyle("option", "%s.%s=%s", eo.Component, eo.Key, eo.Value)
+		console.OutStyle(console.Option, "%s.%s=%s", eo.Component, eo.Key, eo.Value)
 	}
 	// Loads cached images, generates config files, download binaries
 	if err := bs.UpdateCluster(kc); err != nil {
@@ -666,21 +666,21 @@ func bootstrapCluster(bs bootstrapper.Bootstrapper, r cruntime.Manager, runner b
 	bsName := viper.GetString(cmdcfg.Bootstrapper)
 
 	if isUpgrade || !preexisting {
-		console.OutStyle("pulling", "Pulling images ...")
+		console.OutStyle(console.Pulling, "Pulling images ...")
 		if err := bs.PullImages(kc); err != nil {
-			console.OutStyle("failure", "Unable to pull images, which may be OK: %v", err)
+			console.OutStyle(console.FailureType, "Unable to pull images, which may be OK: %v", err)
 		}
 	}
 
 	if preexisting {
-		console.OutStyle("restarting", "Relaunching Kubernetes %s using %s ... ", kc.KubernetesVersion, bsName)
+		console.OutStyle(console.Restarting, "Relaunching Kubernetes %s using %s ... ", kc.KubernetesVersion, bsName)
 		if err := bs.RestartCluster(kc); err != nil {
 			exit.WithLogEntries("Error restarting cluster", err, logs.FindProblems(r, bs, runner))
 		}
 		return
 	}
 
-	console.OutStyle("launch", "Launching Kubernetes ... ")
+	console.OutStyle(console.Launch, "Launching Kubernetes ... ")
 	if err := bs.StartCluster(kc); err != nil {
 		exit.WithLogEntries("Error starting cluster", err, logs.FindProblems(r, bs, runner))
 	}
@@ -692,7 +692,7 @@ func configureMounts() {
 		return
 	}
 
-	console.OutStyle("mounting", "Creating mount %s ...", viper.GetString(mountString))
+	console.OutStyle(console.Mounting, "Creating mount %s ...", viper.GetString(mountString))
 	path := os.Args[0]
 	mountDebugVal := 0
 	if glog.V(8) {
diff --git a/cmd/minikube/cmd/stop.go b/cmd/minikube/cmd/stop.go
index 24c0027e7..a43a725d8 100644
--- a/cmd/minikube/cmd/stop.go
+++ b/cmd/minikube/cmd/stop.go
@@ -53,7 +53,7 @@ itself, leaving all files intact. The cluster can be started again with the "sta
 			err = cluster.StopHost(api)
 			switch err := errors.Cause(err).(type) {
 			case mcnerror.ErrHostDoesNotExist:
-				console.OutStyle("meh", "%q VM does not exist, nothing to stop", profile)
+				console.OutStyle(console.Meh, "%q VM does not exist, nothing to stop", profile)
 				nonexistent = true
 				return nil
 			default:
@@ -64,11 +64,11 @@ itself, leaving all files intact. The cluster can be started again with the "sta
 			exit.WithError("Unable to stop VM", err)
 		}
 		if !nonexistent {
-			console.OutStyle("stopped", "%q stopped.", profile)
+			console.OutStyle(console.Stopped, "%q stopped.", profile)
 		}
 
 		if err := cmdUtil.KillMountProcess(); err != nil {
-			console.OutStyle("warning", "Unable to kill mount process: %s", err)
+			console.OutStyle(console.WarningType, "Unable to kill mount process: %s", err)
 		}
 
 		machineName := pkg_config.GetMachineName()
diff --git a/cmd/minikube/cmd/update-context.go b/cmd/minikube/cmd/update-context.go
index 3ded75cbf..41918bac7 100644
--- a/cmd/minikube/cmd/update-context.go
+++ b/cmd/minikube/cmd/update-context.go
@@ -49,9 +49,9 @@ var updateContextCmd = &cobra.Command{
 			exit.WithError("update config", err)
 		}
 		if updated {
-			console.OutStyle("celebrate", "%s IP has been updated to point at %s", machineName, ip)
+			console.OutStyle(console.Celebrate, "%s IP has been updated to point at %s", machineName, ip)
 		} else {
-			console.OutStyle("meh", "%s IP was already correctly configured for %s", machineName, ip)
+			console.OutStyle(console.Meh, "%s IP was already correctly configured for %s", machineName, ip)
 		}
 
 	},
diff --git a/pkg/minikube/bootstrapper/kubeadm/kubeadm.go b/pkg/minikube/bootstrapper/kubeadm/kubeadm.go
index f9964d302..ab8d6d1c4 100644
--- a/pkg/minikube/bootstrapper/kubeadm/kubeadm.go
+++ b/pkg/minikube/bootstrapper/kubeadm/kubeadm.go
@@ -304,7 +304,7 @@ func (k *Bootstrapper) WaitCluster(k8s config.KubernetesConfig) error {
 	// by a CNI plugin which is usually started after minikube has been brought
 	// up. Otherwise, minikube won't start, as "k8s-app" pods are not ready.
 	componentsOnly := k8s.NetworkPlugin == "cni"
-	console.OutStyle("waiting-pods", "Verifying:")
+	console.OutStyle(console.WaitingPods, "Verifying:")
 	client, err := util.GetClient()
 	if err != nil {
 		return errors.Wrap(err, "k8s client")
diff --git a/pkg/minikube/cluster/cluster.go b/pkg/minikube/cluster/cluster.go
index c80cf2c70..740db7973 100644
--- a/pkg/minikube/cluster/cluster.go
+++ b/pkg/minikube/cluster/cluster.go
@@ -107,7 +107,7 @@ func StartHost(api libmachine.API, config cfg.MachineConfig) (*host.Host, error)
 		console.Warning("Alternatively, you may delete the existing VM using `minikube delete -p %s`", cfg.GetMachineName())
 		console.Out("\n")
 	} else if exists && cfg.GetMachineName() == constants.DefaultMachineName {
-		console.OutStyle("tip", "Tip: Use 'minikube start -p <name>' to create a new cluster, or 'minikube delete' to delete this one.")
+		console.OutStyle(console.Tip, "Tip: Use 'minikube start -p <name>' to create a new cluster, or 'minikube delete' to delete this one.")
 	}
 
 	s, err := h.Driver.GetState()
@@ -117,9 +117,9 @@ func StartHost(api libmachine.API, config cfg.MachineConfig) (*host.Host, error)
 	}
 
 	if s == state.Running {
-		console.OutStyle("running", "Re-using the currently running %s VM for %q ...", h.Driver.DriverName(), cfg.GetMachineName())
+		console.OutStyle(console.Running, "Re-using the currently running %s VM for %q ...", h.Driver.DriverName(), cfg.GetMachineName())
 	} else {
-		console.OutStyle("restarting", "Restarting existing %s VM for %q ...", h.Driver.DriverName(), cfg.GetMachineName())
+		console.OutStyle(console.Restarting, "Restarting existing %s VM for %q ...", h.Driver.DriverName(), cfg.GetMachineName())
 		if err := h.Driver.Start(); err != nil {
 			return nil, errors.Wrap(err, "start")
 		}
@@ -141,7 +141,7 @@ func StartHost(api libmachine.API, config cfg.MachineConfig) (*host.Host, error)
 // configureHost handles any post-powerup configuration required
 func configureHost(h *host.Host, e *engine.Options) error {
 	// Slightly counter-intuitive, but this is what DetectProvisioner & ConfigureAuth block on.
-	console.OutStyle("waiting", "Waiting for SSH access ...")
+	console.OutStyle(console.Waiting, "Waiting for SSH access ...")
 
 	if len(e.Env) > 0 {
 		h.HostOptions.EngineOptions.Env = e.Env
@@ -224,7 +224,7 @@ func trySSHPowerOff(h *host.Host) {
 		return
 	}
 
-	console.OutStyle("shutdown", "Powering off %q via SSH ...", cfg.GetMachineName())
+	console.OutStyle(console.Shutdown, "Powering off %q via SSH ...", cfg.GetMachineName())
 	out, err := h.RunSSHCommand("sudo poweroff")
 	// poweroff always results in an error, since the host disconnects.
 	glog.Infof("poweroff result: out=%s, err=%v", out, err)
@@ -236,7 +236,7 @@ func StopHost(api libmachine.API) error {
 	if err != nil {
 		return errors.Wrapf(err, "load")
 	}
-	console.OutStyle("stopping", "Stopping %q in %s ...", cfg.GetMachineName(), host.DriverName)
+	console.OutStyle(console.Stopping, "Stopping %q in %s ...", cfg.GetMachineName(), host.DriverName)
 	if err := host.Stop(); err != nil {
 		alreadyInStateError, ok := err.(mcnerror.ErrHostAlreadyInState)
 		if ok && alreadyInStateError.State == state.Stopped {
@@ -258,7 +258,7 @@ func DeleteHost(api libmachine.API) error {
 		trySSHPowerOff(host)
 	}
 
-	console.OutStyle("deleting-host", "Deleting %q from %s ...", cfg.GetMachineName(), host.DriverName)
+	console.OutStyle(console.DeletingHost, "Deleting %q from %s ...", cfg.GetMachineName(), host.DriverName)
 	if err := host.Driver.Remove(); err != nil {
 		return errors.Wrap(err, "host remove")
 	}
@@ -346,7 +346,7 @@ To disable this message, run [minikube config set WantShowDriverDeprecationNotif
 
 func createHost(api libmachine.API, config cfg.MachineConfig) (*host.Host, error) {
 	preCreateHost(&config)
-	console.OutStyle("starting-vm", "Creating %s VM (CPUs=%d, Memory=%dMB, Disk=%dMB) ...", config.VMDriver, config.CPUs, config.Memory, config.DiskSize)
+	console.OutStyle(console.StartingVM, "Creating %s VM (CPUs=%d, Memory=%dMB, Disk=%dMB) ...", config.VMDriver, config.CPUs, config.Memory, config.DiskSize)
 	def, err := registry.Driver(config.VMDriver)
 	if err != nil {
 		if err == registry.ErrDriverNotFound {
diff --git a/pkg/minikube/console/console.go b/pkg/minikube/console/console.go
index 4a5621911..182c62822 100644
--- a/pkg/minikube/console/console.go
+++ b/pkg/minikube/console/console.go
@@ -36,7 +36,7 @@ import (
 //
 // console.SetOutFile(os.Stdout)
 // console.Out("Starting up!")
-// console.OutStyle("status-change", "Configuring things")
+// console.OutStyle(console.StatusChange, "Configuring things")
 
 // console.SetErrFile(os.Stderr)
 // console.Fatal("Oh no, everything failed.")
@@ -64,17 +64,9 @@ type fdWriter interface {
 	Fd() uintptr
 }
 
-// HasStyle checks if a style exists
-func HasStyle(style string) bool {
-	return hasStyle(style)
-}
-
 // OutStyle writes a stylized and formatted message to stdout
-func OutStyle(style, format string, a ...interface{}) {
-	outStyled, err := applyStyle(style, useColor, format, a...)
-	if err != nil {
-		glog.Errorf("applyStyle(%s): %v", style, err)
-	}
+func OutStyle(style StyleEnum, format string, a ...interface{}) {
+	outStyled := applyStyle(style, useColor, format, a...)
 
 	// escape any outstanding '%' signs so that they don't get interpreted
 	// as a formatting directive down the line
@@ -101,12 +93,8 @@ func OutLn(format string, a ...interface{}) {
 }
 
 // ErrStyle writes a stylized and formatted error message to stderr
-func ErrStyle(style, format string, a ...interface{}) {
-	format, err := applyStyle(style, useColor, format, a...)
-	if err != nil {
-		glog.Errorf("applyStyle(%s): %v", style, err)
-		ErrLn(format, a...)
-	}
+func ErrStyle(style StyleEnum, format string, a ...interface{}) {
+	format = applyStyle(style, useColor, format, a...)
 
 	// escape any outstanding '%' signs so that they don't get interpreted
 	// as a formatting directive down the line
@@ -134,22 +122,22 @@ func ErrLn(format string, a ...interface{}) {
 
 // Success is a shortcut for writing a styled success message to stdout
 func Success(format string, a ...interface{}) {
-	OutStyle("success", format, a...)
+	OutStyle(SuccessType, format, a...)
 }
 
 // Fatal is a shortcut for writing a styled fatal message to stderr
 func Fatal(format string, a ...interface{}) {
-	ErrStyle("fatal", format, a...)
+	ErrStyle(FatalType, format, a...)
 }
 
 // Warning is a shortcut for writing a styled warning message to stderr
 func Warning(format string, a ...interface{}) {
-	ErrStyle("warning", format, a...)
+	ErrStyle(WarningType, format, a...)
 }
 
 // Failure is a shortcut for writing a styled failure message to stderr
 func Failure(format string, a ...interface{}) {
-	ErrStyle("failure", format, a...)
+	ErrStyle(FailureType, format, a...)
 }
 
 // SetPreferredLanguageTag configures which language future messages should use.
diff --git a/pkg/minikube/console/style.go b/pkg/minikube/console/style.go
index 022dadb58..ce45f5593 100644
--- a/pkg/minikube/console/style.go
+++ b/pkg/minikube/console/style.go
@@ -17,7 +17,6 @@ limitations under the License.
 package console
 
 import (
-	"fmt"
 	"strings"
 
 	"golang.org/x/text/message"
@@ -47,67 +46,67 @@ type style struct {
 
 // styles is a map of style name to style struct
 // For consistency, ensure that emojis added render with the same width across platforms.
-var styles = map[string]style{
-	"happy":         {Prefix: "😄  "},
-	"success":       {Prefix: "✅  "},
-	"failure":       {Prefix: "❌  "},
-	"conflict":      {Prefix: "💥  ", LowPrefix: lowWarning},
-	"fatal":         {Prefix: "💣  ", LowPrefix: lowError},
-	"notice":        {Prefix: "📌  "},
-	"ready":         {Prefix: "🏄  "},
-	"running":       {Prefix: "🏃  "},
-	"provisioning":  {Prefix: "🌱  "},
-	"restarting":    {Prefix: "🔄  "},
-	"reconfiguring": {Prefix: "📯  "},
-	"stopping":      {Prefix: "✋  "},
-	"stopped":       {Prefix: "🛑  "},
-	"warning":       {Prefix: "⚠️  ", LowPrefix: lowWarning},
-	"waiting":       {Prefix: "⌛  "},
-	"waiting-pods":  {Prefix: "⌛  ", OmitNewline: true},
-	"usage":         {Prefix: "💡  "},
-	"launch":        {Prefix: "🚀  "},
-	"sad":           {Prefix: "😿  "},
-	"thumbs-up":     {Prefix: "👍  "},
-	"option":        {Prefix: "    ▪ ", LowPrefix: lowIndent}, // Indented bullet
-	"command":       {Prefix: "    ▪ ", LowPrefix: lowIndent}, // Indented bullet
-	"log-entry":     {Prefix: "    "},                         // Indent
-	"crushed":       {Prefix: "💔  "},
-	"url":           {Prefix: "👉  ", LowPrefix: lowIndent},
-	"documentation": {Prefix: "📘  "},
-	"issues":        {Prefix: "⁉️   "},
-	"issue":         {Prefix: "    ▪ ", LowPrefix: lowIndent}, // Indented bullet
-	"check":         {Prefix: "✔️  "},
+var styles = map[StyleEnum]style{
+	Happy:         {Prefix: "😄  "},
+	SuccessType:   {Prefix: "✅  "},
+	FailureType:   {Prefix: "❌  "},
+	Conflict:      {Prefix: "💥  ", LowPrefix: lowWarning},
+	FatalType:     {Prefix: "💣  ", LowPrefix: lowError},
+	Notice:        {Prefix: "📌  "},
+	Ready:         {Prefix: "🏄  "},
+	Running:       {Prefix: "🏃  "},
+	Provisioning:  {Prefix: "🌱  "},
+	Restarting:    {Prefix: "🔄  "},
+	Reconfiguring: {Prefix: "📯  "},
+	Stopping:      {Prefix: "✋  "},
+	Stopped:       {Prefix: "🛑  "},
+	WarningType:   {Prefix: "⚠️  ", LowPrefix: lowWarning},
+	Waiting:       {Prefix: "⌛  "},
+	WaitingPods:   {Prefix: "⌛  ", OmitNewline: true},
+	Usage:         {Prefix: "💡  "},
+	Launch:        {Prefix: "🚀  "},
+	Sad:           {Prefix: "😿  "},
+	ThumbsUp:      {Prefix: "👍  "},
+	Option:        {Prefix: "    ▪ ", LowPrefix: lowIndent}, // Indented bullet
+	Command:       {Prefix: "    ▪ ", LowPrefix: lowIndent}, // Indented bullet
+	LogEntry:      {Prefix: "    "},                         // Indent
+	Crushed:       {Prefix: "💔  "},
+	URL:           {Prefix: "👉  ", LowPrefix: lowIndent},
+	Documentation: {Prefix: "📘  "},
+	Issues:        {Prefix: "⁉️   "},
+	Issue:         {Prefix: "    ▪ ", LowPrefix: lowIndent}, // Indented bullet
+	Check:         {Prefix: "✔️  "},
 
 	// Specialized purpose styles
-	"iso-download":      {Prefix: "💿  "},
-	"file-download":     {Prefix: "💾  "},
-	"caching":           {Prefix: "🤹  "},
-	"starting-vm":       {Prefix: "🔥  "},
-	"starting-none":     {Prefix: "🤹  "},
-	"resetting":         {Prefix: "🔄  "},
-	"deleting-host":     {Prefix: "🔥  "},
-	"copying":           {Prefix: "✨  "},
-	"connectivity":      {Prefix: "📶  "},
-	"internet":          {Prefix: "🌐  "},
-	"mounting":          {Prefix: "📁  "},
-	"celebrate":         {Prefix: "🎉  "},
-	"container-runtime": {Prefix: "🎁  "},
-	"Docker":            {Prefix: "🐳  "},
-	"CRI-O":             {Prefix: "🎁  "}, // This should be a snow-flake, but the emoji has a strange width on macOS
-	"containerd":        {Prefix: "📦  "},
-	"permissions":       {Prefix: "🔑  "},
-	"enabling":          {Prefix: "🔌  "},
-	"shutdown":          {Prefix: "🛑  "},
-	"pulling":           {Prefix: "🚜  "},
-	"verifying":         {Prefix: "🤔  "},
-	"verifying-noline":  {Prefix: "🤔  ", OmitNewline: true},
-	"kubectl":           {Prefix: "💗  "},
-	"meh":               {Prefix: "🙄  ", LowPrefix: lowWarning},
-	"embarrassed":       {Prefix: "🤦  ", LowPrefix: lowWarning},
-	"tip":               {Prefix: "💡  "},
-	"unmount":           {Prefix: "🔥  "},
-	"mount-options":     {Prefix: "💾  "},
-	"fileserver":        {Prefix: "🚀  ", OmitNewline: true},
+	ISODownload:      {Prefix: "💿  "},
+	FileDownload:     {Prefix: "💾  "},
+	Caching:          {Prefix: "🤹  "},
+	StartingVM:       {Prefix: "🔥  "},
+	StartingNone:     {Prefix: "🤹  "},
+	Resetting:        {Prefix: "🔄  "},
+	DeletingHost:     {Prefix: "🔥  "},
+	Copying:          {Prefix: "✨  "},
+	Connectivity:     {Prefix: "📶  "},
+	Internet:         {Prefix: "🌐  "},
+	Mounting:         {Prefix: "📁  "},
+	Celebrate:        {Prefix: "🎉  "},
+	ContainerRuntime: {Prefix: "🎁  "},
+	Docker:           {Prefix: "🐳  "},
+	CRIO:             {Prefix: "🎁  "}, // This should be a snow-flake, but the emoji has a strange width on macOS
+	Containerd:       {Prefix: "📦  "},
+	Permissions:      {Prefix: "🔑  "},
+	Enabling:         {Prefix: "🔌  "},
+	Shutdown:         {Prefix: "🛑  "},
+	Pulling:          {Prefix: "🚜  "},
+	Verifying:        {Prefix: "🤔  "},
+	VerifyingNoLine:  {Prefix: "🤔  ", OmitNewline: true},
+	Kubectl:          {Prefix: "💗  "},
+	Meh:              {Prefix: "🙄  ", LowPrefix: lowWarning},
+	Embarrassed:      {Prefix: "🤦  ", LowPrefix: lowWarning},
+	Tip:              {Prefix: "💡  "},
+	Unmount:          {Prefix: "🔥  "},
+	MountOptions:     {Prefix: "💾  "},
+	Fileserver:       {Prefix: "🚀  ", OmitNewline: true},
 }
 
 // Add a prefix to a string
@@ -119,11 +118,6 @@ func applyPrefix(prefix, format string) string {
 	return prefix + format
 }
 
-func hasStyle(style string) bool {
-	_, exists := styles[style]
-	return exists
-}
-
 // lowPrefix returns a 7-bit compatible prefix for a style
 func lowPrefix(s style) string {
 	if s.LowPrefix != "" {
@@ -136,7 +130,7 @@ func lowPrefix(s style) string {
 }
 
 // Apply styling to a format string
-func applyStyle(style string, useColor bool, format string, a ...interface{}) (string, error) {
+func applyStyle(style StyleEnum, useColor bool, format string, a ...interface{}) string {
 	p := message.NewPrinter(preferredLanguage)
 	for i, x := range a {
 		if _, ok := x.(int); ok {
@@ -152,11 +146,11 @@ func applyStyle(style string, useColor bool, format string, a ...interface{}) (s
 
 	// Similar to CSS styles, if no style matches, output an unformatted string.
 	if !ok {
-		return p.Sprintf(format, a...), fmt.Errorf("unknown style: %q", style)
+		return p.Sprintf(format, a...)
 	}
 
 	if !useColor {
-		return applyPrefix(lowPrefix(s), out), nil
+		return applyPrefix(lowPrefix(s), out)
 	}
-	return applyPrefix(s.Prefix, out), nil
+	return applyPrefix(s.Prefix, out)
 }
diff --git a/pkg/minikube/console/style_enum.go b/pkg/minikube/console/style_enum.go
new file mode 100644
index 000000000..1c16a34eb
--- /dev/null
+++ b/pkg/minikube/console/style_enum.go
@@ -0,0 +1,80 @@
+/*
+Copyright 2019 The Kubernetes Authors All rights reserved.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package console
+
+type StyleEnum int
+
+const (
+	Happy StyleEnum = iota
+	SuccessType
+	FailureType
+	Conflict
+	FatalType
+	Notice
+	Ready
+	Running
+	Provisioning
+	Restarting
+	Reconfiguring
+	Stopping
+	Stopped
+	WarningType
+	Waiting
+	WaitingPods
+	Usage
+	Launch
+	Sad
+	ThumbsUp
+	Option
+	Command
+	LogEntry
+	Crushed
+	URL
+	Documentation
+	Issues
+	Issue
+	Check
+	ISODownload
+	FileDownload
+	Caching
+	StartingVM
+	StartingNone
+	Resetting
+	DeletingHost
+	Copying
+	Connectivity
+	Internet
+	Mounting
+	Celebrate
+	ContainerRuntime
+	Docker
+	CRIO
+	Containerd
+	Permissions
+	Enabling
+	Shutdown
+	Pulling
+	Verifying
+	VerifyingNoLine
+	Kubectl
+	Meh
+	Embarrassed
+	Tip
+	Unmount
+	MountOptions
+	Fileserver
+)
diff --git a/pkg/minikube/cruntime/containerd.go b/pkg/minikube/cruntime/containerd.go
index 5998adee1..fead3bdfb 100644
--- a/pkg/minikube/cruntime/containerd.go
+++ b/pkg/minikube/cruntime/containerd.go
@@ -21,6 +21,7 @@ import (
 	"strings"
 
 	"github.com/golang/glog"
+	"k8s.io/minikube/pkg/minikube/console"
 )
 
 // Containerd contains containerd runtime state
@@ -34,6 +35,10 @@ func (r *Containerd) Name() string {
 	return "containerd"
 }
 
+func (r *Containerd) Style() console.StyleEnum {
+	return console.Containerd
+}
+
 // Version retrieves the current version of this runtime
 func (r *Containerd) Version() (string, error) {
 	ver, err := r.Runner.CombinedOutput("containerd --version")
diff --git a/pkg/minikube/cruntime/crio.go b/pkg/minikube/cruntime/crio.go
index c3e7a7296..5779a651c 100644
--- a/pkg/minikube/cruntime/crio.go
+++ b/pkg/minikube/cruntime/crio.go
@@ -21,6 +21,7 @@ import (
 	"strings"
 
 	"github.com/golang/glog"
+	"k8s.io/minikube/pkg/minikube/console"
 )
 
 // CRIO contains CRIO runtime state
@@ -34,6 +35,11 @@ func (r *CRIO) Name() string {
 	return "CRI-O"
 }
 
+// Name is a human readable name for CRIO
+func (r *CRIO) Style() console.StyleEnum {
+	return console.CRIO
+}
+
 // Version retrieves the current version of this runtime
 func (r *CRIO) Version() (string, error) {
 	ver, err := r.Runner.CombinedOutput("crio --version")
diff --git a/pkg/minikube/cruntime/cruntime.go b/pkg/minikube/cruntime/cruntime.go
index 2e5efdac2..a17699e88 100644
--- a/pkg/minikube/cruntime/cruntime.go
+++ b/pkg/minikube/cruntime/cruntime.go
@@ -22,6 +22,7 @@ import (
 
 	"github.com/golang/glog"
 	"github.com/pkg/errors"
+	"k8s.io/minikube/pkg/minikube/console"
 )
 
 // CommandRunner is the subset of bootstrapper.CommandRunner this package consumes
@@ -44,6 +45,8 @@ type Manager interface {
 	Active() bool
 	// Available returns an error if it is not possible to use this runtime on a host
 	Available() error
+	// Style is an associated StyleEnum for Name()
+	Style() console.StyleEnum
 
 	// KubeletOptions returns kubelet options for a runtime.
 	KubeletOptions() map[string]string
diff --git a/pkg/minikube/cruntime/docker.go b/pkg/minikube/cruntime/docker.go
index d5ce68563..c5ad92261 100644
--- a/pkg/minikube/cruntime/docker.go
+++ b/pkg/minikube/cruntime/docker.go
@@ -22,6 +22,7 @@ import (
 	"strings"
 
 	"github.com/golang/glog"
+	"k8s.io/minikube/pkg/minikube/console"
 )
 
 // Docker contains Docker runtime state
@@ -35,6 +36,11 @@ func (r *Docker) Name() string {
 	return "Docker"
 }
 
+// Name is a human readable name for Docker
+func (r *Docker) Style() console.StyleEnum {
+	return console.Docker
+}
+
 // Version retrieves the current version of this runtime
 func (r *Docker) Version() (string, error) {
 	// Note: the server daemon has to be running, for this call to return successfully
diff --git a/pkg/minikube/exit/exit.go b/pkg/minikube/exit/exit.go
index bb18b02ca..2327fb3d5 100644
--- a/pkg/minikube/exit/exit.go
+++ b/pkg/minikube/exit/exit.go
@@ -46,7 +46,7 @@ const (
 
 // Usage outputs a usage error and exits with error code 64
 func Usage(format string, a ...interface{}) {
-	console.ErrStyle("usage", format, a...)
+	console.ErrStyle(console.Usage, format, a...)
 	os.Exit(BadUsage)
 }
 
@@ -74,8 +74,8 @@ func WithProblem(msg string, p *problem.Problem) {
 	console.Fatal(msg)
 	p.Display()
 	console.Err("\n")
-	console.ErrStyle("sad", "If the above advice does not help, please let us know: ")
-	console.ErrStyle("url", "https://github.com/kubernetes/minikube/issues/new")
+	console.ErrStyle(console.Sad, "If the above advice does not help, please let us know: ")
+	console.ErrStyle(console.URL, "https://github.com/kubernetes/minikube/issues/new")
 	os.Exit(Config)
 }
 
@@ -84,12 +84,12 @@ func WithLogEntries(msg string, err error, entries map[string][]string) {
 	displayError(msg, err)
 
 	for name, lines := range entries {
-		console.OutStyle("failure", "Problems detected in %q:", name)
+		console.OutStyle(console.FailureType, "Problems detected in %q:", name)
 		if len(lines) > MaxLogEntries {
 			lines = lines[:MaxLogEntries]
 		}
 		for _, l := range lines {
-			console.OutStyle("log-entry", l)
+			console.OutStyle(console.LogEntry, l)
 		}
 	}
 	os.Exit(Software)
@@ -101,6 +101,6 @@ func displayError(msg string, err error) {
 	console.Err("\n")
 	console.Fatal(msg+": %v", err)
 	console.Err("\n")
-	console.ErrStyle("sad", "Sorry that minikube crashed. If this was unexpected, we would love to hear from you:")
-	console.ErrStyle("url", "https://github.com/kubernetes/minikube/issues/new")
+	console.ErrStyle(console.Sad, "Sorry that minikube crashed. If this was unexpected, we would love to hear from you:")
+	console.ErrStyle(console.URL, "https://github.com/kubernetes/minikube/issues/new")
 }
diff --git a/pkg/minikube/logs/logs.go b/pkg/minikube/logs/logs.go
index c181a88a6..e3b306e95 100644
--- a/pkg/minikube/logs/logs.go
+++ b/pkg/minikube/logs/logs.go
@@ -99,12 +99,12 @@ func FindProblems(r cruntime.Manager, bs bootstrapper.Bootstrapper, runner boots
 // OutputProblems outputs discovered problems.
 func OutputProblems(problems map[string][]string, maxLines int) {
 	for name, lines := range problems {
-		console.OutStyle("failure", "Problems detected in %q:", name)
+		console.OutStyle(console.FailureType, "Problems detected in %q:", name)
 		if len(lines) > maxLines {
 			lines = lines[len(lines)-maxLines:]
 		}
 		for _, l := range lines {
-			console.OutStyle("log-entry", l)
+			console.OutStyle(console.LogEntry, l)
 		}
 	}
 }
diff --git a/pkg/minikube/machine/cache_binaries.go b/pkg/minikube/machine/cache_binaries.go
index 7ffb27c43..54853acf1 100644
--- a/pkg/minikube/machine/cache_binaries.go
+++ b/pkg/minikube/machine/cache_binaries.go
@@ -77,7 +77,7 @@ func CacheBinary(binary, version, osName, archName string) (string, error) {
 	options.Checksum = constants.GetKubernetesReleaseURLSHA1(binary, version, osName, archName)
 	options.ChecksumHash = crypto.SHA1
 
-	console.OutStyle("file-download", "Downloading %s %s", binary, version)
+	console.OutStyle(console.FileDownload, "Downloading %s %s", binary, version)
 	if err := download.ToFile(url, targetFilepath, options); err != nil {
 		return "", errors.Wrapf(err, "Error downloading %s %s", binary, version)
 	}
diff --git a/pkg/minikube/problem/problem.go b/pkg/minikube/problem/problem.go
index 446e16e94..ff126e7ea 100644
--- a/pkg/minikube/problem/problem.go
+++ b/pkg/minikube/problem/problem.go
@@ -51,21 +51,21 @@ type match struct {
 
 // Display problem metadata to the console
 func (p *Problem) Display() {
-	console.ErrStyle("failure", "Error:         [%s] %v", p.ID, p.Err)
-	console.ErrStyle("tip", "Advice:        %s", p.Advice)
+	console.ErrStyle(console.FailureType, "Error:         [%s] %v", p.ID, p.Err)
+	console.ErrStyle(console.Tip, "Advice:        %s", p.Advice)
 	if p.URL != "" {
-		console.ErrStyle("documentation", "Documentation: %s", p.URL)
+		console.ErrStyle(console.Documentation, "Documentation: %s", p.URL)
 	}
 	if len(p.Issues) == 0 {
 		return
 	}
-	console.ErrStyle("issues", "Related issues:")
+	console.ErrStyle(console.Issues, "Related issues:")
 	issues := p.Issues
 	if len(issues) > 3 {
 		issues = issues[0:3]
 	}
 	for _, i := range issues {
-		console.ErrStyle("issue", "%s/%d", issueBase, i)
+		console.ErrStyle(console.Issue, "%s/%d", issueBase, i)
 	}
 }
 
diff --git a/pkg/minikube/service/service.go b/pkg/minikube/service/service.go
index 2e412043d..d9faa82ef 100644
--- a/pkg/minikube/service/service.go
+++ b/pkg/minikube/service/service.go
@@ -259,7 +259,7 @@ func WaitAndMaybeOpenService(api libmachine.API, namespace string, service strin
 		if urlMode || !isHTTPSchemedURL {
 			console.OutLn(urlString)
 		} else {
-			console.OutStyle("celebrate", "Opening kubernetes service %s/%s in default browser...", namespace, service)
+			console.OutStyle(console.Celebrate, "Opening kubernetes service %s/%s in default browser...", namespace, service)
 			if err := browser.OpenURL(urlString); err != nil {
 				console.Err("browser failed to open url: %v", err)
 			}
diff --git a/pkg/util/downloader.go b/pkg/util/downloader.go
index 0571069d1..da84a0342 100644
--- a/pkg/util/downloader.go
+++ b/pkg/util/downloader.go
@@ -76,7 +76,7 @@ func (f DefaultDownloader) CacheMinikubeISOFromURL(isoURL string) error {
 		options.ChecksumHash = crypto.SHA256
 	}
 
-	console.OutStyle("iso-download", "Downloading Minikube ISO ...")
+	console.OutStyle(console.ISODownload, "Downloading Minikube ISO ...")
 	if err := download.ToFile(isoURL, f.GetISOCacheFilepath(isoURL), options); err != nil {
 		return errors.Wrap(err, isoURL)
 	}


Test patch:
diff --git a/pkg/minikube/console/console_test.go b/pkg/minikube/console/console_test.go
index 8a45abae6..488e12e3e 100644
--- a/pkg/minikube/console/console_test.go
+++ b/pkg/minikube/console/console_test.go
@@ -50,23 +50,23 @@ func (f *fakeFile) String() string {
 func TestOutStyle(t *testing.T) {
 
 	var tests = []struct {
-		style     string
+		style     StyleEnum
 		message   string
 		params    []interface{}
 		want      string
 		wantASCII string
 	}{
-		{"happy", "Happy", nil, "😄  Happy\n", "* Happy\n"},
-		{"option", "Option", nil, "    ▪ Option\n", "  - Option\n"},
-		{"warning", "Warning", nil, "⚠️  Warning\n", "! Warning\n"},
-		{"fatal", "Fatal: %v", []interface{}{"ugh"}, "💣  Fatal: ugh\n", "X Fatal: ugh\n"},
-		{"waiting-pods", "wait", nil, "⌛  wait", "* wait"},
-		{"issue", "http://i/%d", []interface{}{10000}, "    ▪ http://i/10000\n", "  - http://i/10000\n"},
-		{"usage", "raw: %s %s", []interface{}{"'%'", "%d"}, "💡  raw: '%' %d\n", "* raw: '%' %d\n"},
+		{Happy, "Happy", nil, "😄  Happy\n", "* Happy\n"},
+		{Option, "Option", nil, "    ▪ Option\n", "  - Option\n"},
+		{WarningType, "Warning", nil, "⚠️  Warning\n", "! Warning\n"},
+		{FatalType, "Fatal: %v", []interface{}{"ugh"}, "💣  Fatal: ugh\n", "X Fatal: ugh\n"},
+		{WaitingPods, "wait", nil, "⌛  wait", "* wait"},
+		{Issue, "http://i/%d", []interface{}{10000}, "    ▪ http://i/10000\n", "  - http://i/10000\n"},
+		{Usage, "raw: %s %s", []interface{}{"'%'", "%d"}, "💡  raw: '%' %d\n", "* raw: '%' %d\n"},
 	}
 	for _, tc := range tests {
 		for _, override := range []bool{true, false} {
-			t.Run(fmt.Sprintf("%s-override-%v", tc.style, override), func(t *testing.T) {
+			t.Run(fmt.Sprintf("%s-override-%v", tc.message, override), func(t *testing.T) {
 				// Set MINIKUBE_IN_STYLE=<override>
 				os.Setenv(OverrideEnv, strconv.FormatBool(override))
 				f := newFakeFile()
@@ -137,7 +137,7 @@ func TestErrStyle(t *testing.T) {
 	os.Setenv(OverrideEnv, "1")
 	f := newFakeFile()
 	SetErrFile(f)
-	ErrStyle("fatal", "error: %s", "%s%%%d")
+	ErrStyle(FatalType, "error: %s", "%s%%%d")
 	got := f.String()
 	want := "💣  error: %s%%%d\n"
 	if got != want {
diff --git a/pkg/minikube/cruntime/cruntime_test.go b/pkg/minikube/cruntime/cruntime_test.go
index 61cd37bdf..c4c49bb15 100644
--- a/pkg/minikube/cruntime/cruntime_test.go
+++ b/pkg/minikube/cruntime/cruntime_test.go
@@ -23,7 +23,6 @@ import (
 
 	"github.com/google/go-cmp/cmp"
 	"github.com/google/go-cmp/cmp/cmpopts"
-	"k8s.io/minikube/pkg/minikube/console"
 )
 
 func TestName(t *testing.T) {
@@ -47,9 +46,6 @@ func TestName(t *testing.T) {
 			if got != tc.want {
 				t.Errorf("Name(%s) = %q, want: %q", tc.runtime, got, tc.want)
 			}
-			if !console.HasStyle(got) {
-				t.Fatalf("console.HasStyle(%s): %v", got, false)
-			}
 		})
 	}
 }