Helm on Minikube running on MacOS X

Aziz Zoaib
3 min readApr 28, 2019

--

Helm helps you manage Kubernetes applications — Helm Charts help you define, install, and upgrade even the most complex Kubernetes application.

This is the reason Helm is gaining so much popularity I will show you below howto install and run helm on MacOS X with homebrew

Install homebrew
Open terminal and run below command in terminal

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Start minikube cluster

minikube start

Install & Initialize Helm using homebrew

brew install kubernetes-helm

Check whether helm is properly installed ?

helm --help

it should return below output

The Kubernetes package managerTo begin working with Helm, run the 'helm init' command:$ helm initThis will install Tiller to your running Kubernetes cluster.It will also set up any necessary local configuration.Common actions from this point include:- helm search:    search for charts- helm fetch:     download a chart to your local directory to view- helm install:   upload the chart to Kubernetes- helm list:      list releases of chartsEnvironment:$HELM_HOME           set an alternative location for Helm files. By default, these are stored in ~/.helm$HELM_HOST           set an alternative Tiller host. The format is host:port$HELM_NO_PLUGINS     disable plugins. Set HELM_NO_PLUGINS=1 to disable plugins.$TILLER_NAMESPACE    set an alternative Tiller namespace (default "kube-system")$KUBECONFIG          set an alternative Kubernetes configuration file (default "~/.kube/config")$HELM_TLS_CA_CERT    path to TLS CA certificate used to verify the Helm client and Tiller server certificates (default "$HELM_HOME/ca.pem")$HELM_TLS_CERT       path to TLS client certificate file for authenticating to Tiller (default "$HELM_HOME/cert.pem")$HELM_TLS_KEY        path to TLS client key file for authenticating to Tiller (default "$HELM_HOME/key.pem")$HELM_TLS_ENABLE     enable TLS connection between Helm and Tiller (default "false")$HELM_TLS_VERIFY     enable TLS connection between Helm and Tiller and verify Tiller server certificate (default "false")$HELM_TLS_HOSTNAME   the hostname or IP address used to verify the Tiller server certificate (default "127.0.0.1")$HELM_KEY_PASSPHRASE set HELM_KEY_PASSPHRASE to the passphrase of your PGP private key. If set, you will not be prompted forthe passphrase while signing helm chartsUsage:helm [command]Available Commands:completion  Generate autocompletions script for the specified shell (bash or zsh)create      create a new chart with the given namedelete      given a release name, delete the release from Kubernetesdependency  manage a chart's dependenciesfetch       download a chart from a repository and (optionally) unpack it in local directoryget         download a named releasehelp        Help about any commandhistory     fetch release historyhome        displays the location of HELM_HOMEinit        initialize Helm on both client and serverinspect     inspect a chartinstall     install a chart archivelint        examines a chart for possible issueslist        list releasespackage     package a chart directory into a chart archiveplugin      add, list, or remove Helm pluginsrepo        add, list, remove, update, and index chart repositoriesreset       uninstalls Tiller from a clusterrollback    roll back a release to a previous revisionsearch      search for a keyword in chartsserve       start a local http web serverstatus      displays the status of the named releasetemplate    locally render templatestest        test a releaseupgrade     upgrade a releaseverify      verify that a chart at the given path has been signed and is validversion     print the client/server version informationFlags:--debug                           enable verbose output-h, --help                            help for helm--home string                     location of your Helm config. Overrides $HELM_HOME (default "/Users/zoaib/.helm")--host string                     address of Tiller. Overrides $HELM_HOST--kube-context string             name of the kubeconfig context to use--kubeconfig string               absolute path to the kubeconfig file to use--tiller-connection-timeout int   the duration (in seconds) Helm will wait to establish a connection to tiller (default 300)--tiller-namespace string         namespace of Tiller (default "kube-system")Use "helm [command] --help" for more information about a command.

Final step is to initialize it and install install tiller on k8s cluster, which is minikube in our case.

helm init

it should return below output

mb187:.ssh zoaib$ helm initCreating /Users/zoaib/.helmCreating /Users/zoaib/.helm/repositoryCreating /Users/zoaib/.helm/repository/cacheCreating /Users/zoaib/.helm/repository/localCreating /Users/zoaib/.helm/pluginsCreating /Users/zoaib/.helm/startersCreating /Users/zoaib/.helm/cache/archiveCreating /Users/zoaib/.helm/repository/repositories.yamlAdding stable repo with URL: https://kubernetes-charts.storage.googleapis.comAdding local repo with URL: http://127.0.0.1:8879/charts$HELM_HOME has been configured at /Users/zoaib/.helm.Tiller (the Helm server-side component) has been installed into your Kubernetes Cluster.Please note: by default, Tiller is deployed with an insecure 'allow unauthenticated users' policy.To prevent this, run `helm init` with the --tiller-tls-verify flag.For more information on securing your installation see: https://docs.helm.sh/using_helm/#securing-your-helm-installationHappy Helming!

Now we have successfully installed helm on our minikube k8s cluster.

--

--

Aziz Zoaib

DevOps, AWS, GCP, Terraform, Kubernetes, CI/CD