curl -Lo minikube https://storage.googleapis.com/minikube/releases/v0.18.0/minikube-darwin-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/
curl -Lo minikube https://storage.googleapis.com/minikube/releases/v0.18.0/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/
minikube start
Starting local Kubernetes cluster...
Starting VM...
SSH-ing files into VM...
Setting up certs...
Starting cluster components...
Connecting to cluster...
Setting up kubeconfig...
Kubectl is now configured to use the cluster.
To be able to work with the docker daemon on your mac/linux host use the docker-env command in your shell, you can get it running:
minikube docker-env
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.100:2376"
export DOCKER_CERT_PATH="/Users/oswaldderiemaecker/.minikube/certs"
export DOCKER_API_VERSION="1.23"
# Run this command to configure your shell:
# eval $(minikube docker-env)
Let's run the docker-env command.
eval $(minikube docker-env)
To access the Kubernetes Dashboard, run:
We have now our minikube running, let's install Helm the Kubernetes Package Manager.
brew install kubernetes-helm
curl https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get > get_helm.sh
chmod 700 get_helm.sh
./get_helm.sh
Initialize the local CLI and also install Tiller into your Kubernetes cluster.
helm init
$HELM_HOME has been configured at /Users/oswaldderiemaecker/.helm.
Warning: Tiller is already installed in the cluster.
(Use --client-only to suppress this message, or --upgrade to upgrade Tiller to the current version.)
Happy Helming!
Using the search command without arguments lets us fetch all the available packages.
helm search
NAME VERSION DESCRIPTION
stable/aws-cluster-autoscaler 0.2.1 Scales worker nodes within autoscaling groups.
stable/chaoskube 0.5.0 Chaoskube periodically kills random pods in you...
stable/chronograf 0.2.0 Open-source web application written in Go and R...
stable/cockroachdb 0.2.2 CockroachDB is a scalable, survivable, strongly...
stable/concourse 0.1.3 Concourse is a simple and scalable CI system.
stable/consul 0.2.0 Highly available and distributed service discov...
stable/coredns 0.1.0 CoreDNS is a DNS server that chains middleware ...
stable/datadog 0.2.1 DataDog Agent
...
Let’s install the Jenkins package, Helm display informations about the package installed.
helm install stable/jenkins
AME: original-llama
LAST DEPLOYED: Fri Apr 28 08:32:59 2017
NAMESPACE: default
STATUS: DEPLOYED
RESOURCES:
==> v1/ConfigMap
NAME DATA AGE
original-llama-jenkins 2 0s
==> v1/PersistentVolumeClaim
NAME STATUS VOLUME CAPACITY ACCESSMODES AGE
original-llama-jenkins Bound pvc-863abb19-2bdc-11e7-ab97-080027de986e 8Gi RWO 0s
==> v1/Service
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
original-llama-jenkins 10.0.0.175 8080:30924/TCP,50000:30321/TCP 0s
==> extensions/v1beta1/Deployment
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
original-llama-jenkins 1 1 1 0 0s
==> v1/Secret
NAME TYPE DATA AGE
original-llama-jenkins Opaque 2 0s
NOTES:
1. Get your ‘admin’ user password by running:
printf $(kubectl get secret --namespace default original-llama-jenkins -o jsonpath=”{.data.jenkins-admin-password}” | base64 --decode);echo
2. Get the Jenkins URL to visit by running these commands in the same shell:
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
You can watch the status of by running ‘kubectl get svc --namespace default -w original-llama-jenkins’
export SERVICE_IP=$(kubectl get svc original-llama-jenkins --namespace default --template “{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}”)
echo http://$SERVICE_IP:8080/login
3. Login with the password from step 1 and the username: admin
For more information on running Jenkins on Kubernetes, visit:
https://cloud.google.com/solutions/jenkins-on-container-engine
Look on the minikube Dashboard the status of the Jenkins service and its pod.

When its running, note the internal endpoint, here it is 8080.

Let’s get the Jenkins service name.
Let’s get the Jenkins service name.
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes 10.0.0.1 443/TCP 1d
original-llama-jenkins 10.0.0.175 8080:30924/TCP,50000:30321/TCP 2h
And use minikube to open the service.
minikube service original-llama-jenkins
We have our Jenkins, it needs now to be configured, it is out of the scope of this post.

Let’s clean up everything but getting the Helm release name.
helm ls
NAME REVISION UPDATED STATUS CHART NAMESPACE
original-llama 1 Fri Apr 28 08:32:59 2017 DEPLOYED jenkins-0.3.1 default
helm delete original-llama
release “original-llama” deleted