Background
Harness documentation suggests to leverage a free tier Google Cloud Platform instance and spin up a Google Kubernetes Engine instance. Can run through the Quick Start with minikube.
First Steps
To get started is pretty easy. Can run through a few pre-reqs which would not be too bad.
-
Sign up for a free Harness.io account. I just used my Google Credentials.
-
I am using a Mac, leveraging HomeBrew for the package manager makes MiniKube install pretty seamless.
-
Grab the latest version of VirtualBox, can try out your newly installed HomeBrew!
-
β brew cask install virtualbox
-
Make sure to grab one of the 5.2.x versions or 6.x versions. Can also go download from VirtualBox themselves.
1. https://download.virtualbox.org/virtualbox/5.2.28/VirtualBox-5.2.28-130011-OSX.dmg
Second Steps
Once HomeBrew and VirtualBox are set up, can get to installing minikube. Some of these steps take into account having to run this again. If this is your first install, can skip those.
-
Install minikube
-
β brew cask install minikube
-
Install kubectl which is the Kubernetes CLI. Important to have the same version of kubectl and minikube kubernetes.
-
Remove old installs if you have β rm β/usr/local/bin/kubectlβ
-
Install new β brew install kubernetes-cli
-
If coming from a previous version re-link β brew link kubernetes-cli
-
Validate version β kubectl version
1. 
-
Can start minikube now. Minikube will automatically create a KubeCTL context called βminikubeβ to start. The Harness Delegate and Sample App takes about 4g of memory.
-
Tune the MiniKube install to have a VM with 8g of mem: β minikube config set memory 8128
-
Start minikube: β minikube start
1. 
-
If leveraging kubectl for other kubernetes clusters, set the context again β kubectl config use-context minikube
-
Fireup the kubernetes web dashboard from minikube β minikube dashboard
Harness K8s Steps
The Harness documentation does a pretty good job in the wiring. Basically after setting up a free account, you will be getting your first delegate which will interface with your minikube cluster.
-
Can follow the Google Cloud Platform steps by skipping to the GKE cluster set-up steps and going straight to delegate steps since you are using minikube.
-
Built-in App Tour Guide for Freemium Accounts - Harness.io Docs
-
Run through the naming and downloading of the delegate.
-
Download the delegate tar.gz of the delegate then change the resource limit in the harness delegate container spec which is in the harness-delegate.yaml. This will boot fine.
-
memory: β4Giβ
1. 
-
Use kubectl to apply the delegate β kubectl apply -f harness-delegate.yaml
-
Should be cooking with gas! Can get status β kubectl get pods -n harness-delegate
-
Having some trouble? (no shame K8s is funny!)
1. Make sure the same version of kubectl and K8s inside minikube are running. Can assume latest and latest. At time of this document this is 1.14.1.
2. Can describe the pod to see status -> kubectl describe pods -n harness-delegate
3. Can delete the pod and try again -> kubectl delete pods -n harness-delegate
Your First Deploy!
Harness makes this very easy. Your free account has a Harness Manager [e.g the controller] hosted on Harnessβs SaaS. This will communicate with your minikube cluster!
-
Harness documentation goes through pretty well on deploying the sample app. The pre-reqs for the Docker Registry was already set up for me in my free account.
-
Built-in App Tour Guide for Freemium Accounts - Harness.io Docs
-
Deploy and prosper!
-
Phew kept the memory in check on my 16g MBP!
1. 
- The sample app has a workflow approval which is pretty intuitive.
1. 
-
Can check out the K8βs cluster to see some new stuff on there.
-
Harness Delegate:
1. 
- Harness Sample App:
1. 
-
Sit back and watch your hard work.
Cleanup Steps
Like a good citizen, clean up after yourself. Can do this pretty quickly.
-
Stop minikube β minikube stop
-
Can also delete your VM β minikube delete
-
Can make tweaks directly on Virtual Box by firing up VB β VirtualBox