Minishift is the compact all-in-one solution of OpenShift community distribution in a Virtual Machine(VM). It allows developers and curious minds to run OpenShift v3.11 on their own environment. In this post we will install Minishift on Windows10. In order to install and use Minishift you need an hypervisor in your machine. You can choose following hypervisors depending on your machine and preferences.
- macOS xhyve
- Linux KVM
- Windows Hyper-V
- All platforms VirtualBox (you can use Virtualbox in all other Operation Systems as Hypervisor)
I am using Windows10 and VirtualBox as a hypervisor in this tutorial. After setting up hypervisor in your machine, then we need to download Minishift client from release page https://github.com/minishift/minishift/releases

You need to copy Minishift executable in one of the folders and that folder should be in the PATH.

Here in my windows10 machine , i searched “Edit the System Environment Variables” , Click on Environment Variables

I have created a Tools folder under C drive and copy minishift.exe file to that folder. Click on Edit in the upcoming “Environment Variables” screen when Path is selected. Click “New” and add C:\Tools folder to the PATH.

Then if you run a CMD, command prompt in your Windows machine, type minishift version
command, you should able to see output similar to below.

Set the Virtualbox as vm-driver for Minishift with the help of minishift config set vm-driver virtualbox
command.

If you want to see the minishift VM startup option you can type minishift start--help
command. I will use this command minishift start --cpus 2 --memory "16GB"
for this tutorial, depending on your local machine capacity you can decide your minishift VM size. It will download latest all in one minishift Centos7 iso from internet. It is size is around 370Mb. The Minishift VM installation will take couple of minutes.
If you face any problem while starting up Minishift VM and showing Kernel Panic sycing error( SPEC_CTRL MSR ) on Minishift VM screen, then you can shutdown the Minishift VM and apply this command vboxmanage modifyvm minishift --spec-ctrl on
Afterwards you can apply same start command. You don’t need to worry about shutdown and restart , installer will continue from the last point.
You will see more or less similar output during installation of Minishift VM.
C:\Users\burak>minishift start --cpus 2 --memory "16GB" -- Starting profile 'minishift' -- Check if deprecated options are used … OK -- Checking if https://github.com is reachable … OK -- Checking if requested OpenShift version 'v3.11.0' is valid … OK -- Checking if requested OpenShift version 'v3.11.0' is supported … OK -- Checking if requested hypervisor 'virtualbox' is supported on this platform … OK -- Checking if VirtualBox is installed … OK -- Checking the ISO URL … OK -- Checking if provided oc flags are supported … OK -- Starting the OpenShift cluster using 'virtualbox' hypervisor … -- Starting Minishift VM ………………… OK -- Checking for IP address … OK -- Checking for nameservers … OK -- Checking if external host is reachable from the Minishift VM … Pinging 8.8.8.8 … OK -- Checking HTTP connectivity from the VM … Retrieving http://minishift.io/index.html … OK -- Checking if persistent storage volume is mounted … OK -- Checking available disk space … 1% used OK -- Writing current configuration for static assignment of IP address … OK -- OpenShift cluster will be configured with … Version: v3.11.0 -- Pulling the OpenShift Container Image ………………….. OK -- Copying oc binary from the OpenShift container image to VM … OK -- Starting OpenShift cluster ……………………………………………………… Getting a Docker client … Checking if image openshift/origin-control-plane:v3.11.0 is available … Pulling image openshift/origin-cli:v3.11.0 E0416 22:40:58.949399 3071 helper.go:173] Reading docker config from /home/docker/.docker/config.json failed: open /home/docker/.docker/config.json: no such file or directory, will attempt to pull image docker.io/openshift/origin-cli:v3.11.0 anonymously Image pull complete Pulling image openshift/origin-node:v3.11.0 E0416 22:41:06.151170 3071 helper.go:173] Reading docker config from /home/docker/.docker/config.json failed: open /home/docker/.docker/config.json: no such file or directory, will attempt to pull image docker.io/openshift/origin-node:v3.11.0 anonymously Pulled 5/6 layers, 85% complete Pulled 6/6 layers, 100% complete Extracting Image pull complete Checking type of volume mount … Determining server IP … Using public hostname IP 192.168.99.100 as the host IP Checking if OpenShift is already running … Checking for supported Docker version (=>1.22) … Checking if insecured registry is configured properly in Docker … Checking if required ports are available … Checking if OpenShift client is configured properly … Checking if image openshift/origin-control-plane:v3.11.0 is available … Starting OpenShift using openshift/origin-control-plane:v3.11.0 … I0416 22:41:31.560273 3071 config.go:40] Running "create-master-config" I0416 22:41:33.420430 3071 config.go:46] Running "create-node-config" I0416 22:41:34.075284 3071 flags.go:30] Running "create-kubelet-flags" I0416 22:41:34.456908 3071 run_kubelet.go:49] Running "start-kubelet" I0416 22:41:34.656205 3071 run_self_hosted.go:181] Waiting for the kube-apiserver to be ready … I0416 22:42:28.666610 3071 interface.go:26] Installing "kube-proxy" … I0416 22:42:28.666653 3071 interface.go:26] Installing "kube-dns" … I0416 22:42:28.666658 3071 interface.go:26] Installing "openshift-service-cert-signer-operator" … I0416 22:42:28.666661 3071 interface.go:26] Installing "openshift-apiserver" … I0416 22:42:28.666682 3071 apply_template.go:81] Installing "openshift-apiserver" I0416 22:42:28.667180 3071 apply_template.go:81] Installing "kube-dns" I0416 22:42:28.667250 3071 apply_template.go:81] Installing "openshift-service-cert-signer-operator" I0416 22:42:28.667250 3071 apply_template.go:81] Installing "kube-proxy" I0416 22:42:30.633674 3071 interface.go:41] Finished installing "kube-proxy" "kube-dns" "openshift-service-cert-signer-operator" "openshift-apiserver" I0416 22:44:49.652372 3071 run_self_hosted.go:242] openshift-apiserver available I0416 22:44:49.653050 3071 interface.go:26] Installing "openshift-controller-manager" … I0416 22:44:49.653077 3071 apply_template.go:81] Installing "openshift-controller-manager" I0416 22:44:51.397016 3071 interface.go:41] Finished installing "openshift-controller-manager" Adding default OAuthClient redirect URIs … I0416 22:44:51.410805 3071 interface.go:26] Installing "openshift-router" … I0416 22:44:51.410811 3071 interface.go:26] Installing "sample-templates" … I0416 22:44:51.410816 3071 interface.go:26] Installing "openshift-web-console-operator" … I0416 22:44:51.410820 3071 interface.go:26] Installing "centos-imagestreams" … I0416 22:44:51.410824 3071 interface.go:26] Installing "openshift-image-registry" … I0416 22:44:51.410828 3071 interface.go:26] Installing "persistent-volumes" … Adding router … Adding sample-templates … Adding web-console … Adding centos-imagestreams … Adding registry … Adding persistent-volumes … I0416 22:44:51.411102 3071 apply_list.go:67] Installing "centos-imagestreams" I0416 22:44:51.411253 3071 interface.go:26] Installing "sample-templates/postgresql" … I0416 22:44:51.411304 3071 interface.go:26] Installing "sample-templates/dancer quickstart" … I0416 22:44:51.411309 3071 interface.go:26] Installing "sample-templates/nodejs quickstart" … I0416 22:44:51.411313 3071 interface.go:26] Installing "sample-templates/rails quickstart" … I0416 22:44:51.411331 3071 interface.go:26] Installing "sample-templates/sample pipeline" … I0416 22:44:51.411334 3071 interface.go:26] Installing "sample-templates/mysql" … I0416 22:44:51.411337 3071 interface.go:26] Installing "sample-templates/mariadb" … I0416 22:44:51.411340 3071 interface.go:26] Installing "sample-templates/cakephp quickstart" … I0416 22:44:51.411344 3071 interface.go:26] Installing "sample-templates/django quickstart" … I0416 22:44:51.411347 3071 interface.go:26] Installing "sample-templates/jenkins pipeline ephemeral" … I0416 22:44:51.411351 3071 interface.go:26] Installing "sample-templates/mongodb" … I0416 22:44:51.411364 3071 apply_list.go:67] Installing "sample-templates/nodejs quickstart" I0416 22:44:51.411417 3071 apply_list.go:67] Installing "sample-templates/mongodb" I0416 22:44:51.411539 3071 apply_template.go:81] Installing "openshift-web-console-operator" I0416 22:44:51.411564 3071 apply_list.go:67] Installing "sample-templates/postgresql" I0416 22:44:51.411568 3071 apply_list.go:67] Installing "sample-templates/rails quickstart" I0416 22:44:51.411604 3071 apply_list.go:67] Installing "sample-templates/dancer quickstart" I0416 22:44:51.411667 3071 apply_list.go:67] Installing "sample-templates/sample pipeline" I0416 22:44:51.411716 3071 apply_list.go:67] Installing "sample-templates/jenkins pipeline ephemeral" I0416 22:44:51.411730 3071 apply_list.go:67] Installing "sample-templates/mariadb" I0416 22:44:51.411758 3071 apply_list.go:67] Installing "sample-templates/mysql" I0416 22:44:51.411767 3071 apply_list.go:67] Installing "sample-templates/cakephp quickstart" I0416 22:44:51.411786 3071 apply_list.go:67] Installing "sample-templates/django quickstart" I0416 22:44:55.418528 3071 interface.go:41] Finished installing "sample-templates/postgresql" "sample-templates/dancer quickstart" "sample-templates/nodejs quickstart" "sample-templates/rails quickstart" "sample-templates/sample pipeline" "sample-templates/mysql" "sample-templates/mariadb" "sample-templates/cakephp quickstart" "sample-templates/django quickstart" "sample-templates/jenkins pipeline ephemeral" "sample-templates/mongodb" I0416 22:46:03.725667 3071 interface.go:41] Finished installing "openshift-router" "sample-templates" "openshift-web-console-operator" "centos-imagestreams" "openshift-image-registry" "persistent-volumes" Login to server … Creating initial project "myproject" … Server Information … OpenShift server started. The server is accessible via web console at: https://192.168.99.100:8443/console You are logged in as: User: developer Password: To login as administrator: oc login -u system:admin Could not set oc CLI context for 'minishift' profile: Error during setting 'minishift' as active profile: The specified path to the kube config 'C:\Users\burak.minishift\machines\minishift_kubeconfig' does not exist
You can check the installation if it is successful with oc version
command.
C:\Users\burak>oc version oc v3.11.0+0cbc58b kubernetes v1.11.0+d4cacc0 features: Basic-Auth SSPI Kerberos SPNEGO Server https://192.168.99.100:8443 kubernetes v1.11.0+d4cacc0
You can login to MiniShift/OpenShift Console via https://192.168.99.100:8443/console
or you can type minishift console
command

and it will open Minishift console on your system default browser. your browser might give security warning about certificate, after skipping this certificate warning, you can use developer as username, password as Password. then Click “Login”

You have “My Project” by default in your Minishift environment. Currently OpenShift v3.11 is used in Minishift.Most of OpenShift settings are tuned to work all in one Minishift machine. The behavior of Minishift will be different than the Enterprise version of OpenShift installed in your environment.

Now you are ready to use Minishift and experience OpenShift v3.11. Don’t forget that, Minishift is aimed to use in development and to experiment OpenShift v3.x. You should not use Minishift for running production and business critical workloads. This all in one Minishift will have less strict security policies, you will be the admin of the all in one cluster, you can create many projects and do deployment as long as your PC/Server can support.
Let us know if you were able to follow the post and able to install your Minishift.