Minishift preflight checks and experimental features

by gbraad
GNU/Linux ◆ xterm-256color ◆ zsh 2135 views

Minishift

Since the release of Minishift v1.4.x, we have improved some of the user experience when it comes to getting started. One of the oft seen issues was related to the driver plugins, so where possible, we now try to report the issues beforehand.

But to also allow a quick development and test-cycle we added a feature toggle to allow provisioning of OpenShift by passing extra options to the oc cluster up command.

Starting Minishift

In the previous version, when you didn’t install the driver plugin, Minishift would fail with an exception stacktrace.

$ minishift start
Starting local OpenShift cluster using 'kvm' hypervisor...
E0808 19:52:14.112554   10581 start.go:287] Error starting the VM: Error getting the state for host: Driver "kvm" not found. Do you have the plugin binary accessible in your PATH?. Retrying.
E0808 19:52:14.112863   10581 start.go:287] Error starting the VM: Error getting the state for host: Driver "kvm" not found. Do you have the plugin binary accessible in your PATH?. Retrying.
E0808 19:52:14.113016   10581 start.go:287] Error starting the VM: Error getting the state for host: Driver "kvm" not found. Do you have the plugin binary accessible in your PATH?. Retrying.
Error starting the VM: Error getting the state for host: Driver "kvm" not found. Do you have the plugin binary accessible in your PATH?
Error getting the state for host: Driver "kvm" not found. Do you have the plugin binary accessible in your PATH?
Error getting the state for host: Driver "kvm" not found. Do you have the plugin binary accessible in your PATH?

After introduction of the pre-flight checks

We nopw check for the availability of the driver, and when possible if properly configured.

$ minishift start
-- Checking if KVM driver is installed ... FAIL
   See the 'Setting Up the Driver Plug-in' topic for more information

Other pre-flight checks before starting the VM

$ sudo mv /tmp/docker-machine-driver-kvm /usr/local/bin/
$ minishift start
-- Checking if KVM driver is installed ... 
   Driver is available at /usr/local/bin/docker-machine-driver-kvm ... OK
-- Starting local OpenShift cluster using 'kvm' hypervisor ...
-- Minishift VM will be configured with ...
   Memory:    2 GB
   vCPUs :    2
   Disk size: 20 GB
-- Starting Minishift VM ... - ^C

Introduction of new functionality

$ minishift --service-catalog
Usage:
  minishift start [flags]

Flags:

unknown flag: --service-catalog

Enabling experimental features

To allow features which might not be GA yet, we can now allow them to be showcased and tested.

$ MINISHIFT_ENABLE_EXPERIMENTAL=y minishift start --service-catalog
-- Checking if KVM driver is installed ... 
   Driver is available at /usr/local/bin/docker-machine-driver-kvm ... OK
-- Starting local OpenShift cluster using 'kvm' hypervisor ...
-- Minishift VM will be configured with ...
   Memory:    2 GB
   vCPUs :    2
   Disk size: 20 GB
-- Starting Minishift VM ... OK
-- Checking for IP address ... 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 ... 0% OK
-- OpenShift cluster will be configured with ...
   Version: v3.6.0
-- Checking `oc` support for startup flags ... 
   host-config-dir ... OK
   host-data-dir ... OK
   host-pv-dir ... OK
   host-volumes-dir ... OK
   routing-suffix ... OK
   service-catalog ... OK
Starting OpenShift using openshift/origin:v3.6.0 ...
Pulling image openshift/origin:v3.6.0
Pulled 1/4 layers, 27% complete

Enabling any cluster up command to be passed through

$ MINISHIFT_ENABLE_EXPERIMENTAL=y minishift start --extra-clusterup-flags="--service-catalog" 
-- Checking if KVM driver is installed ... 
   Driver is available at /usr/local/bin/docker-machine-driver-kvm ... OK
-- Starting local OpenShift cluster using 'kvm' hypervisor ...
-- Minishift VM will be configured with ...
   Memory:    2 GB
   vCPUs :    2
   Disk size: 20 GB
-- Starting Minishift VM ... OK
-- Checking for IP address ... 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 ... 0% OK
-- OpenShift cluster will be configured with ...
   Version: v3.6.0
-- Checking `oc` support for startup flags ... 
   host-pv-dir ... OK
   host-volumes-dir ... OK
   routing-suffix ... OK
   host-config-dir ... OK
   host-data-dir ... OK
-- Extra `oc` cluster up flags (experimental) ... 
   '--service-catalog'
Starting OpenShift using openshift/origin:v3.6.0 ...
Pulling image openshift/origin:v3.6.0
Pulled 1/4 layers, 26% complete