diff --git a/README.md b/README.md index 3057bfa60d..e59cce2657 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,9 @@ As well as developer-friendly features: ## Installation -Installation methods can be found in the [Getting Started Guide](https://minikube.sigs.k8s.io/docs/start/) +See the [Getting Started Guide](https://minikube.sigs.k8s.io/docs/start/) + +:mega: **Please fill out our [fast 5-question survey](https://forms.gle/Gg3hG5ZySw8c1C24A)** so that we can learn how & why you use minikube, and what improvements we should make. Thank you! :dancers: ## Documentation diff --git a/cmd/minikube/cmd/dashboard.go b/cmd/minikube/cmd/dashboard.go index 1d1b3fe06c..4908e319f1 100644 --- a/cmd/minikube/cmd/dashboard.go +++ b/cmd/minikube/cmd/dashboard.go @@ -108,7 +108,7 @@ var dashboardCmd = &cobra.Command{ } } - ns := "kube-system" + ns := "kubernetes-dashboard" svc := "kubernetes-dashboard" out.ErrT(out.Verifying, "Verifying dashboard health ...") checkSVC := func() error { return service.CheckService(ns, svc) } diff --git a/cmd/minikube/cmd/start.go b/cmd/minikube/cmd/start.go index fbeb406e89..f5c3a66161 100644 --- a/cmd/minikube/cmd/start.go +++ b/cmd/minikube/cmd/start.go @@ -296,11 +296,8 @@ func runStart(cmd *cobra.Command, args []string) { v, err := version.GetSemverVersion() if err != nil { out.WarningT("Error parsing minikube version: {{.error}}", out.V{"error": err}) - } else { - if err := drivers.InstallOrUpdate(driver, constants.MakeMiniPath("bin"), v, viper.GetBool(interactive)); err != nil { - glog.Errorf("error: %v", err) - out.WarningT("Unable to update {{.driver}} driver: {{.error}}", out.V{"driver": driver, "error": err}) - } + } else if err := drivers.InstallOrUpdate(driver, constants.MakeMiniPath("bin"), v, viper.GetBool(interactive)); err != nil { + out.WarningT("Unable to update {{.driver}} driver: {{.error}}", out.V{"driver": driver, "error": err}) } k8sVersion, isUpgrade := getKubernetesVersion(oldConfig) @@ -510,11 +507,11 @@ func selectDriver(oldConfig *cfg.Config) string { return driver } - if h.Driver.DriverName() == driver { + if h.Driver.DriverName() == driver || h.Driver.DriverName() == "not-found" { return driver } - out.ErrT(out.Conflict, `You have an existing "{{.profile_name}}" VM that was created using the "{{.old_driver}}" driver, and is incompatible with the "{{.driver}}" driver.`, + out.ErrT(out.Conflict, `The existing "{{.profile_name}}" VM that was created using the "{{.old_driver}}" driver, and is incompatible with the "{{.driver}}" driver.`, out.V{"profile_name": cfg.GetMachineName(), "driver": driver, "old_driver": h.Driver.DriverName()}) out.ErrT(out.Workaround, `To proceed, either: diff --git a/deploy/addons/dashboard/dashboard-clusterrole.yaml b/deploy/addons/dashboard/dashboard-clusterrole.yaml new file mode 100644 index 0000000000..2c527b0651 --- /dev/null +++ b/deploy/addons/dashboard/dashboard-clusterrole.yaml @@ -0,0 +1,27 @@ +# Copyright 2017 The Kubernetes Authors. +# +# 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. + +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + labels: + k8s-app: kubernetes-dashboard + kubernetes.io/minikube-addons: dashboard + addonmanager.kubernetes.io/mode: Reconcile + name: kubernetes-dashboard +rules: + # Allow Metrics Scraper to get metrics from the Metrics server + - apiGroups: ["metrics.k8s.io"] + resources: ["pods", "nodes"] + verbs: ["get", "list", "watch"] diff --git a/deploy/addons/dashboard/dashboard-clusterrolebinding.yaml b/deploy/addons/dashboard/dashboard-clusterrolebinding.yaml new file mode 100644 index 0000000000..007eba8f73 --- /dev/null +++ b/deploy/addons/dashboard/dashboard-clusterrolebinding.yaml @@ -0,0 +1,30 @@ +# Copyright 2017 The Kubernetes Authors. +# +# 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. + +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: kubernetes-dashboard + labels: + k8s-app: kubernetes-dashboard + kubernetes.io/minikube-addons: dashboard + addonmanager.kubernetes.io/mode: Reconcile +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: cluster-admin +subjects: +- kind: ServiceAccount + name: kubernetes-dashboard + namespace: kubernetes-dashboard diff --git a/deploy/addons/dashboard/dashboard-svc.yaml.tmpl b/deploy/addons/dashboard/dashboard-configmap.yaml similarity index 68% rename from deploy/addons/dashboard/dashboard-svc.yaml.tmpl rename to deploy/addons/dashboard/dashboard-configmap.yaml index 04ccc0b932..cbf80a9035 100644 --- a/deploy/addons/dashboard/dashboard-svc.yaml.tmpl +++ b/deploy/addons/dashboard/dashboard-configmap.yaml @@ -1,5 +1,4 @@ - -# Copyright 2016 The Kubernetes Authors All rights reserved. +# Copyright 2017 The Kubernetes Authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -13,19 +12,13 @@ # See the License for the specific language governing permissions and # limitations under the License. -kind: Service + +kind: ConfigMap apiVersion: v1 metadata: - name: kubernetes-dashboard - namespace: kube-system labels: - app: kubernetes-dashboard - addonmanager.kubernetes.io/mode: Reconcile + k8s-app: kubernetes-dashboard kubernetes.io/minikube-addons: dashboard - kubernetes.io/minikube-addons-endpoint: dashboard -spec: - ports: - - port: 80 - targetPort: 9090 - selector: - app: kubernetes-dashboard + addonmanager.kubernetes.io/mode: Reconcile + name: kubernetes-dashboard-settings + namespace: kubernetes-dashboard \ No newline at end of file diff --git a/deploy/addons/dashboard/dashboard-dp.yaml b/deploy/addons/dashboard/dashboard-dp.yaml new file mode 100644 index 0000000000..375ca05548 --- /dev/null +++ b/deploy/addons/dashboard/dashboard-dp.yaml @@ -0,0 +1,128 @@ +# Copyright 2017 The Kubernetes Authors. +# +# 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. + +kind: Deployment +apiVersion: apps/v1 +metadata: + labels: + k8s-app: dashboard-metrics-scraper + kubernetes.io/minikube-addons: dashboard + addonmanager.kubernetes.io/mode: Reconcile + name: dashboard-metrics-scraper + namespace: kubernetes-dashboard +spec: + replicas: 1 + revisionHistoryLimit: 10 + selector: + matchLabels: + k8s-app: dashboard-metrics-scraper + template: + metadata: + labels: + k8s-app: dashboard-metrics-scraper + annotations: + seccomp.security.alpha.kubernetes.io/pod: 'runtime/default' + spec: + containers: + - name: dashboard-metrics-scraper + image: kubernetesui/metrics-scraper:v1.0.1 + ports: + - containerPort: 8000 + protocol: TCP + livenessProbe: + httpGet: + scheme: HTTP + path: / + port: 8000 + initialDelaySeconds: 30 + timeoutSeconds: 30 + volumeMounts: + - mountPath: /tmp + name: tmp-volume + securityContext: + allowPrivilegeEscalation: false + readOnlyRootFilesystem: true + runAsUser: 1001 + runAsGroup: 2001 + serviceAccountName: kubernetes-dashboard + nodeSelector: + "beta.kubernetes.io/os": linux + # Comment the following tolerations if Dashboard must not be deployed on master + tolerations: + - key: node-role.kubernetes.io/master + effect: NoSchedule + volumes: + - name: tmp-volume + emptyDir: {} +--- + +kind: Deployment +apiVersion: apps/v1 +metadata: + labels: + k8s-app: kubernetes-dashboard + kubernetes.io/minikube-addons: dashboard + addonmanager.kubernetes.io/mode: Reconcile + name: kubernetes-dashboard + namespace: kubernetes-dashboard +spec: + replicas: 1 + revisionHistoryLimit: 10 + selector: + matchLabels: + k8s-app: kubernetes-dashboard + template: + metadata: + labels: + k8s-app: kubernetes-dashboard + spec: + containers: + - name: kubernetes-dashboard + image: kubernetesui/dashboard:v2.0.0-beta4 + ports: + - containerPort: 9090 + protocol: TCP + args: + - --namespace=kubernetes-dashboard + - --enable-skip-login + - --disable-settings-authorizer + # Uncomment the following line to manually specify Kubernetes API server Host + # If not specified, Dashboard will attempt to auto discover the API server and connect + # to it. Uncomment only if the default does not work. + # - --apiserver-host=http://my-address:port + volumeMounts: + # Create on-disk volume to store exec logs + - mountPath: /tmp + name: tmp-volume + livenessProbe: + httpGet: + path: / + port: 9090 + initialDelaySeconds: 30 + timeoutSeconds: 30 + securityContext: + allowPrivilegeEscalation: false + readOnlyRootFilesystem: true + runAsUser: 1001 + runAsGroup: 2001 + volumes: + - name: tmp-volume + emptyDir: {} + serviceAccountName: kubernetes-dashboard + nodeSelector: + "beta.kubernetes.io/os": linux + # Comment the following tolerations if Dashboard must not be deployed on master + tolerations: + - key: node-role.kubernetes.io/master + effect: NoSchedule diff --git a/deploy/addons/dashboard/dashboard-dp.yaml.tmpl b/deploy/addons/dashboard/dashboard-dp.yaml.tmpl deleted file mode 100644 index 6572f032d7..0000000000 --- a/deploy/addons/dashboard/dashboard-dp.yaml.tmpl +++ /dev/null @@ -1,52 +0,0 @@ -# Copyright 2016 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. - -apiVersion: apps/v1 -kind: Deployment -metadata: - name: kubernetes-dashboard - namespace: kube-system - labels: - version: v1.10.1 - addonmanager.kubernetes.io/mode: Reconcile - kubernetes.io/minikube-addons: dashboard -spec: - replicas: 1 - selector: - matchLabels: - app: kubernetes-dashboard - version: v1.10.1 - addonmanager.kubernetes.io/mode: Reconcile - template: - metadata: - labels: - app: kubernetes-dashboard - version: v1.10.1 - addonmanager.kubernetes.io/mode: Reconcile - spec: - containers: - - name: kubernetes-dashboard - image: {{default "k8s.gcr.io" .ImageRepository}}/kubernetes-dashboard-{{.Arch}}:v1.10.1 - imagePullPolicy: IfNotPresent - ports: - - containerPort: 9090 - protocol: TCP - args: - - --disable-settings-authorizer - livenessProbe: - httpGet: - path: / - port: 9090 - initialDelaySeconds: 30 - timeoutSeconds: 30 diff --git a/deploy/addons/dashboard/dashboard-ns.yaml b/deploy/addons/dashboard/dashboard-ns.yaml new file mode 100644 index 0000000000..70b258fdba --- /dev/null +++ b/deploy/addons/dashboard/dashboard-ns.yaml @@ -0,0 +1,21 @@ +# Copyright 2017 The Kubernetes Authors. +# +# 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. + +apiVersion: v1 +kind: Namespace +metadata: + name: kubernetes-dashboard + labels: + kubernetes.io/minikube-addons: dashboard + addonmanager.kubernetes.io/mode: Reconcile \ No newline at end of file diff --git a/deploy/addons/dashboard/dashboard-role.yaml b/deploy/addons/dashboard/dashboard-role.yaml new file mode 100644 index 0000000000..73a8e0efeb --- /dev/null +++ b/deploy/addons/dashboard/dashboard-role.yaml @@ -0,0 +1,43 @@ +# Copyright 2017 The Kubernetes Authors. +# +# 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. + +kind: Role +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + labels: + k8s-app: kubernetes-dashboard + kubernetes.io/minikube-addons: dashboard + addonmanager.kubernetes.io/mode: Reconcile + name: kubernetes-dashboard + namespace: kubernetes-dashboard +rules: + # Allow Dashboard to get, update and delete Dashboard exclusive secrets. + - apiGroups: [""] + resources: ["secrets"] + resourceNames: ["kubernetes-dashboard-key-holder", "kubernetes-dashboard-certs", "kubernetes-dashboard-csrf"] + verbs: ["get", "update", "delete"] + # Allow Dashboard to get and update 'kubernetes-dashboard-settings' config map. + - apiGroups: [""] + resources: ["configmaps"] + resourceNames: ["kubernetes-dashboard-settings"] + verbs: ["get", "update"] + # Allow Dashboard to get metrics. + - apiGroups: [""] + resources: ["services"] + resourceNames: ["heapster", "dashboard-metrics-scraper"] + verbs: ["proxy"] + - apiGroups: [""] + resources: ["services/proxy"] + resourceNames: ["heapster", "http:heapster:", "https:heapster:", "dashboard-metrics-scraper", "http:dashboard-metrics-scraper"] + verbs: ["get"] diff --git a/deploy/addons/dashboard/dashboard-rolebinding.yaml b/deploy/addons/dashboard/dashboard-rolebinding.yaml new file mode 100644 index 0000000000..7c0dfc2066 --- /dev/null +++ b/deploy/addons/dashboard/dashboard-rolebinding.yaml @@ -0,0 +1,31 @@ +# Copyright 2017 The Kubernetes Authors. +# +# 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. + +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + labels: + k8s-app: kubernetes-dashboard + kubernetes.io/minikube-addons: dashboard + addonmanager.kubernetes.io/mode: Reconcile + name: kubernetes-dashboard + namespace: kubernetes-dashboard +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: kubernetes-dashboard +subjects: + - kind: ServiceAccount + name: kubernetes-dashboard + namespace: kubernetes-dashboard \ No newline at end of file diff --git a/deploy/addons/dashboard/dashboard-sa.yaml b/deploy/addons/dashboard/dashboard-sa.yaml new file mode 100644 index 0000000000..40cb4e0dfa --- /dev/null +++ b/deploy/addons/dashboard/dashboard-sa.yaml @@ -0,0 +1,23 @@ +# Copyright 2017 The Kubernetes Authors. +# +# 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. + +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + k8s-app: kubernetes-dashboard + kubernetes.io/minikube-addons: dashboard + addonmanager.kubernetes.io/mode: Reconcile + name: kubernetes-dashboard + namespace: kubernetes-dashboard diff --git a/deploy/addons/dashboard/dashboard-secret.yaml b/deploy/addons/dashboard/dashboard-secret.yaml new file mode 100644 index 0000000000..3e2b877dd8 --- /dev/null +++ b/deploy/addons/dashboard/dashboard-secret.yaml @@ -0,0 +1,52 @@ +# Copyright 2017 The Kubernetes Authors. +# +# 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. + +apiVersion: v1 +kind: Secret +metadata: + labels: + k8s-app: kubernetes-dashboard + kubernetes.io/minikube-addons: dashboard + addonmanager.kubernetes.io/mode: Reconcile + name: kubernetes-dashboard-certs + namespace: kubernetes-dashboard +type: Opaque + +--- + +apiVersion: v1 +kind: Secret +metadata: + labels: + k8s-app: kubernetes-dashboard + kubernetes.io/minikube-addons: dashboard + addonmanager.kubernetes.io/mode: Reconcile + name: kubernetes-dashboard-csrf + namespace: kubernetes-dashboard +type: Opaque +data: + csrf: "" + +--- + +apiVersion: v1 +kind: Secret +metadata: + labels: + k8s-app: kubernetes-dashboard + kubernetes.io/minikube-addons: dashboard + addonmanager.kubernetes.io/mode: Reconcile + name: kubernetes-dashboard-key-holder + namespace: kubernetes-dashboard +type: Opaque diff --git a/deploy/addons/dashboard/dashboard-svc.yaml b/deploy/addons/dashboard/dashboard-svc.yaml new file mode 100644 index 0000000000..d34a0f6fe1 --- /dev/null +++ b/deploy/addons/dashboard/dashboard-svc.yaml @@ -0,0 +1,48 @@ +# Copyright 2017 The Kubernetes Authors. +# +# 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. + + +kind: Service +apiVersion: v1 +metadata: + labels: + k8s-app: kubernetes-dashboard + kubernetes.io/minikube-addons: dashboard + addonmanager.kubernetes.io/mode: Reconcile + name: kubernetes-dashboard + namespace: kubernetes-dashboard +spec: + ports: + - port: 80 + targetPort: 9090 + selector: + k8s-app: kubernetes-dashboard + +--- + +kind: Service +apiVersion: v1 +metadata: + labels: + k8s-app: dashboard-metrics-scraper + kubernetes.io/minikube-addons: dashboard + addonmanager.kubernetes.io/mode: Reconcile + name: dashboard-metrics-scraper + namespace: kubernetes-dashboard +spec: + ports: + - port: 8000 + targetPort: 8000 + selector: + k8s-app: dashboard-metrics-scraper diff --git a/pkg/minikube/assets/addons.go b/pkg/minikube/assets/addons.go index 47cd7eb512..c954d8317a 100644 --- a/pkg/minikube/assets/addons.go +++ b/pkg/minikube/assets/addons.go @@ -66,6 +66,7 @@ func (a *Addon) IsEnabled() (bool, error) { } // Addons is the list of addons +// TODO: Make dynamically loadable: move this data to a .yaml file within each addon directory var Addons = map[string]*Addon{ "addon-manager": NewAddon([]*BinAsset{ MustBinAsset( @@ -76,18 +77,16 @@ var Addons = map[string]*Addon{ true), }, true, "addon-manager"), "dashboard": NewAddon([]*BinAsset{ - MustBinAsset( - "deploy/addons/dashboard/dashboard-dp.yaml.tmpl", - constants.GuestAddonsDir, - "dashboard-dp.yaml", - "0640", - true), - MustBinAsset( - "deploy/addons/dashboard/dashboard-svc.yaml.tmpl", - constants.GuestAddonsDir, - "dashboard-svc.yaml", - "0640", - false), + MustBinAsset("deploy/addons/dashboard/dashboard-clusterrole.yaml", constants.GuestAddonsDir, "dashboard-clusterrole.yaml", "0640", false), + MustBinAsset("deploy/addons/dashboard/dashboard-clusterrolebinding.yaml", constants.GuestAddonsDir, "dashboard-clusterrolebinding.yaml", "0640", false), + MustBinAsset("deploy/addons/dashboard/dashboard-configmap.yaml", constants.GuestAddonsDir, "dashboard-configmap.yaml", "0640", false), + MustBinAsset("deploy/addons/dashboard/dashboard-dp.yaml", constants.GuestAddonsDir, "dashboard-dp.yaml", "0640", false), + MustBinAsset("deploy/addons/dashboard/dashboard-ns.yaml", constants.GuestAddonsDir, "dashboard-ns.yaml", "0640", false), + MustBinAsset("deploy/addons/dashboard/dashboard-role.yaml", constants.GuestAddonsDir, "dashboard-role.yaml", "0640", false), + MustBinAsset("deploy/addons/dashboard/dashboard-rolebinding.yaml", constants.GuestAddonsDir, "dashboard-rolebinding.yaml", "0640", false), + MustBinAsset("deploy/addons/dashboard/dashboard-sa.yaml", constants.GuestAddonsDir, "dashboard-sa.yaml", "0640", false), + MustBinAsset("deploy/addons/dashboard/dashboard-secret.yaml", constants.GuestAddonsDir, "dashboard-secret.yaml", "0640", false), + MustBinAsset("deploy/addons/dashboard/dashboard-svc.yaml", constants.GuestAddonsDir, "dashboard-svc.yaml", "0640", false), }, false, "dashboard"), "default-storageclass": NewAddon([]*BinAsset{ MustBinAsset( diff --git a/pkg/minikube/cluster/cluster.go b/pkg/minikube/cluster/cluster.go index cc2a60a101..e3c65aa938 100644 --- a/pkg/minikube/cluster/cluster.go +++ b/pkg/minikube/cluster/cluster.go @@ -102,14 +102,7 @@ func StartHost(api libmachine.API, config cfg.MachineConfig) (*host.Host, error) return nil, errors.Wrap(err, "Error loading existing host. Please try running [minikube delete], then run [minikube start] again.") } - if h.Driver.DriverName() != config.VMDriver { - out.T(out.Empty, "\n") - exit.WithCodeT(exit.Config, `The existing "{{.profile_name}}" VM was created using the {{.driver_name}} driver.`, - out.V{"profile_name": cfg.GetMachineName(), "driver_name": config.VMDriver}) - out.WarningT("To switch drivers, you may create a new VM using `minikube start -p --vm-driver={{.driver_name}}`", out.V{"driver_name": config.VMDriver}) - out.WarningT("Alternatively, you may delete the existing VM using `minikube delete -p {{.profile_name}}`", out.V{"profile_name": cfg.GetMachineName()}) - out.T(out.Empty, "\n") - } else if exists && cfg.GetMachineName() == constants.DefaultMachineName { + if exists && cfg.GetMachineName() == constants.DefaultMachineName { out.T(out.Tip, "Tip: Use 'minikube start -p ' to create a new cluster, or 'minikube delete' to delete this one.") } diff --git a/pkg/minikube/constants/constants.go b/pkg/minikube/constants/constants.go index 86ff396bab..fcb592506f 100644 --- a/pkg/minikube/constants/constants.go +++ b/pkg/minikube/constants/constants.go @@ -347,7 +347,7 @@ func GetKubeadmCachedImages(imageRepository string, kubernetesVersionStr string) } images = append(images, []string{ - imageRepository + "kubernetes-dashboard" + ArchTag(true) + "v1.10.1", + "kubernetesui/dashboard:v2.0.0-beta4", imageRepository + "kube-addon-manager" + ArchTag(false) + "v9.0.2", minikubeRepository + "storage-provisioner" + ArchTag(false) + "v1.8.1", }...) diff --git a/site/content/en/docs/Overview/_index.md b/site/content/en/docs/Overview/_index.md index c500d9e27d..35a659a5db 100644 --- a/site/content/en/docs/Overview/_index.md +++ b/site/content/en/docs/Overview/_index.md @@ -47,3 +47,5 @@ Then minikube is for you. * [Getting Started](/docs/start/): Get started with minikube * [Examples](/docs/examples/): Check out some minikube examples! + +📣😀 **Please fill out our [fast 5-question survey](https://forms.gle/Gg3hG5ZySw8c1C24A)** so that we can learn how & why you use minikube, and what improvements we should make. Thank you! 💃🏽🎉 diff --git a/site/content/en/docs/Start/includes/post_install.inc b/site/content/en/docs/Start/includes/post_install.inc index 77c44f6f94..5f28d307cf 100644 --- a/site/content/en/docs/Start/includes/post_install.inc +++ b/site/content/en/docs/Start/includes/post_install.inc @@ -18,3 +18,5 @@ minikube config set memory 4096 ### Where to go next? Visit the [examples](/docs/examples) page to get an idea of what you can do with minikube. + +📣😀 **Please fill out our [fast 5-question survey](https://forms.gle/Gg3hG5ZySw8c1C24A)** so that we can learn how & why you use minikube, and what improvements we should make. Thank you! 💃🏽🎉 \ No newline at end of file