github.com/felipejfc/helm@v2.1.2+incompatible/docs/install.md (about) 1 # Installing Helm 2 3 There are two parts to Helm: The Helm client (`helm`) and the Helm 4 server (Tiller). This guide shows how to install the client, and then 5 proceeds to show two ways to install the server. 6 7 ## Installing the Helm Client 8 9 The Helm client can be installed either from source, or from pre-built binary 10 releases. 11 12 ### From the Binary Releases 13 14 Every [release](https://github.com/kubernetes/helm/releases) of Helm 15 provides binary releases for a variety of OSes. These binary versions 16 can be manually downloaded and installed. 17 18 1. Download your [desired version](https://github.com/kubernetes/helm/releases) 19 2. Unpack it (`tar -zxvf helm-v2.0.0-linux-amd64.tgz`) 20 3. Find the `helm` binary in the unpacked directory, and move it to its 21 desired destination (`mv linux-amd64/helm /usr/local/bin/helm`) 22 23 From there, you should be able to run the client: `helm help`. 24 25 ### From Homebrew (Mac OSX) 26 27 Members of the Kubernetes community have contributed a Helm cask built to 28 Homebrew. This formula is generally up to date. 29 30 ``` 31 brew cask install helm 32 ``` 33 34 (Note: There is also a formula for emacs-helm, which is a different 35 project.) 36 37 ## From Script 38 39 Helm now has an installer script that will automatically grab the latest version 40 of the Helm client and [install it locally](https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get). 41 42 You can fetch that script, and then execute it locally. It's well documented so 43 that you can read through it and understand what it is doing before you run it. 44 45 ``` 46 $ curl https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get > get_helm.sh 47 $ chmod 700 get_helm.sh 48 $ ./get_helm.sh 49 ``` 50 51 Yes, you can `curl ...| bash` that if you want to live on the edge. 52 53 ### From Canary Builds 54 55 "Canary" builds are versions of the Helm software that are built from 56 the latest master branch. They are not official releases, and may not be 57 stable. However, they offer the opportunity to test the cutting edge 58 features. 59 60 Canary Helm binaries are stored in the [Kubernetes Helm GCS bucket](https://kubernetes-helm.storage.googleapis.com). 61 Here are links to the common builds: 62 63 - [Linux AMD64](https://kubernetes-helm.storage.googleapis.com/helm-canary-linux-amd64.tar.gz) 64 - [OSX AMD64](https://kubernetes-helm.storage.googleapis.com/helm-canary-darwin-amd64.tar.gz) 65 - [Experimental Windows AMD64](https://kubernetes-helm.storage.googleapis.com/helm-canary-windows-amd64.zip) 66 67 ### From Source (Linux, Mac OSX) 68 69 Building Helm from source is slightly more work, but is the best way to 70 go if you want to test the latest (pre-release) Helm version. 71 72 You must have a working Go environment with 73 [glide](https://github.com/Masterminds/glide) and Mercurial installed. 74 75 ```console 76 $ cd $GOPATH 77 $ mkdir -p src/k8s.io 78 $ cd src/k8s.io 79 $ git clone https://github.com/kubernetes/helm.git 80 $ cd helm 81 $ make bootstrap build 82 ``` 83 84 The `bootstrap` target will attempt to install dependencies, rebuild the 85 `vendor/` tree, and validate configuration. 86 87 The `build` target will compile `helm` and place it in `bin/helm`. 88 Tiller is also compiled, and is placed in `bin/tiller`. 89 90 ## Installing Tiller 91 92 Tiller, the server portion of Helm, typically runs inside of your 93 Kubernetes cluster. But for development, it can also be run locally, and 94 configured to talk to a remote Kubernetes cluster. 95 96 ### Easy In-Cluster Installation 97 98 The easiest way to install `tiller` into the cluster is simply to run 99 `helm init`. This will validate that `helm`'s local environment is set 100 up correctly (and set it up if necessary). Then it will connect to 101 whatever cluster `kubectl` connects to by default (`kubectl config 102 view`). Once it connects, it will install `tiller` into the 103 `kube-system` namespace. 104 105 After `helm init`, you should be able to run `kubectl get po --namespace 106 kube-system` and see Tiller running. 107 108 You can explicitly tell `helm init` to... 109 110 - Install the canary build with the `--canary-image` flag 111 - Install a particular image (version) with `--tiller-image` 112 - Install to a particular cluster with `--kube-context` 113 114 Once Tiller is installed, running `helm version` should show you both 115 the client and server version. (If it shows only the client version, 116 `helm` cannot yet connect to the server. Use `kubectl` to see if any 117 `tiller` pods are running.) 118 119 ### Installing Tiller Canary Builds 120 121 Canary images are built from the `master` branch. They may not be 122 stable, but they offer you the chance to test out the latest features. 123 124 The easiest way to install a canary image is to use `helm init` with the 125 `--canary-image` flag: 126 127 ```console 128 $ helm init --canary-image 129 ``` 130 131 This will use the most recently built container image. You can always 132 uninstall Tiller by deleting the Tiller deployment from the 133 `kube-system` namespace using `kubectl`. 134 135 ### Running Tiller Locally 136 137 For development, it is sometimes easier to work on Tiller locally, and 138 configure it to connect to a remote Kubernetes cluster. 139 140 The process of building Tiller is explained above. 141 142 Once `tiller` has been built, simply start it: 143 144 ```console 145 $ bin/tiller 146 Tiller running on :44134 147 ``` 148 149 When Tiller is running locally, it will attempt to connect to the 150 Kubernetes cluster that is configured by `kubectl`. (Run `kubectl config 151 view` to see which cluster that is.) 152 153 You must tell `helm` to connect to this new local Tiller host instead of 154 connecting to the one in-cluster. There are two ways to do this. The 155 first is to specify the `--host` option on the command line. The second 156 is to set the `$HELM_HOST` environment variable. 157 158 ```console 159 $ export HELM_HOST=localhost:44134 160 $ helm version # Should connect to localhost. 161 Client: &version.Version{SemVer:"v2.0.0-alpha.4", GitCommit:"db...", GitTreeState:"dirty"} 162 Server: &version.Version{SemVer:"v2.0.0-alpha.4", GitCommit:"a5...", GitTreeState:"dirty"} 163 ``` 164 165 Importantly, even when running locally, Tiller will store release 166 configuration in ConfigMaps inside of Kubernetes. 167 168 ## Deleting or Reinstalling Tiller 169 170 Because Tiller stores its data in Kubernetes ConfigMaps, you can safely 171 delete and re-install Tiller without worrying about losing any data. The 172 recommended way of deleting Tiller is with `kubectl delete deployment 173 tiller-deploy --namespace kube-system` 174 175 To simply update Tiller to run the latest image, you can run this 176 command: 177 178 ```console 179 $ export TILLER_TAG=v2.0.0-beta.1 # Or whatever version you want 180 $ kubectl --namespace=kube-system set image deployments/tiller-deploy tiller=gcr.io/kubernetes-helm/tiller:$TILLER_TAG 181 deployment "tiller-deploy" image updated 182 ``` 183 184 Setting `TILLER_TAG=canary` will get the latest snapshot of master. 185 186 ## Conclusion 187 188 In most cases, installation is as simple as getting a pre-built `helm` binary 189 and running `helm init`. This document covers additional cases for those 190 who want to do more sophisticated things with Helm. 191 192 Once you have the Helm Client and Tiller successfully installed, you can 193 move on to using Helm to manage charts.