github.com/pensu/helm@v2.6.1+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 (macOS)
    26  
    27  Members of the Kubernetes community have contributed a Helm formula build to
    28  Homebrew. This formula is generally up to date.
    29  
    30  ```
    31  brew install kubernetes-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  - [macOS 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, macOS)
    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  - Install into a particular namespace with `--tiller-namespace`
   114  
   115  Once Tiller is installed, running `helm version` should show you both
   116  the client and server version. (If it shows only the client version,
   117  `helm` cannot yet connect to the server. Use `kubectl` to see if any
   118  `tiller` pods are running.)
   119  
   120  Helm will look for Tiller in the `kube-system` namespace unless
   121  `--tiller-namespace` or `TILLER_NAMESPACE` is set.
   122  
   123  ### Installing Tiller Canary Builds
   124  
   125  Canary images are built from the `master` branch. They may not be
   126  stable, but they offer you the chance to test out the latest features.
   127  
   128  The easiest way to install a canary image is to use `helm init` with the
   129  `--canary-image` flag:
   130  
   131  ```console
   132  $ helm init --canary-image
   133  ```
   134  
   135  This will use the most recently built container image. You can always
   136  uninstall Tiller by deleting the Tiller deployment from the
   137  `kube-system` namespace using `kubectl`.
   138  
   139  ### Running Tiller Locally
   140  
   141  For development, it is sometimes easier to work on Tiller locally, and
   142  configure it to connect to a remote Kubernetes cluster.
   143  
   144  The process of building Tiller is explained above.
   145  
   146  Once `tiller` has been built, simply start it:
   147  
   148  ```console
   149  $ bin/tiller
   150  Tiller running on :44134
   151  ```
   152  
   153  When Tiller is running locally, it will attempt to connect to the
   154  Kubernetes cluster that is configured by `kubectl`. (Run `kubectl config
   155  view` to see which cluster that is.)
   156  
   157  You must tell `helm` to connect to this new local Tiller host instead of
   158  connecting to the one in-cluster. There are two ways to do this. The
   159  first is to specify the `--host` option on the command line. The second
   160  is to set the `$HELM_HOST` environment variable.
   161  
   162  ```console
   163  $ export HELM_HOST=localhost:44134
   164  $ helm version # Should connect to localhost.
   165  Client: &version.Version{SemVer:"v2.0.0-alpha.4", GitCommit:"db...", GitTreeState:"dirty"}
   166  Server: &version.Version{SemVer:"v2.0.0-alpha.4", GitCommit:"a5...", GitTreeState:"dirty"}
   167  ```
   168  
   169  Importantly, even when running locally, Tiller will store release
   170  configuration in ConfigMaps inside of Kubernetes.
   171  
   172  ## Upgrading Tiller
   173  
   174  As of Helm 2.2.0, Tiller can be upgraded using `helm init --upgrade`.
   175  
   176  For older versions of Helm, or for manual upgrades, you can use `kubectl` to modify
   177  the Tiller image:
   178  
   179  ```console
   180  $ export TILLER_TAG=v2.0.0-beta.1        # Or whatever version you want
   181  $ kubectl --namespace=kube-system set image deployments/tiller-deploy tiller=gcr.io/kubernetes-helm/tiller:$TILLER_TAG
   182  deployment "tiller-deploy" image updated
   183  ```
   184  
   185  Setting `TILLER_TAG=canary` will get the latest snapshot of master.
   186  
   187  ## Deleting or Reinstalling Tiller
   188  
   189  Because Tiller stores its data in Kubernetes ConfigMaps, you can safely
   190  delete and re-install Tiller without worrying about losing any data. The
   191  recommended way of deleting Tiller is with `kubectl delete deployment
   192  tiller-deploy --namespace kube-system`, or more concisely `helm reset`.
   193  
   194  Tiller can then be re-installed from the client with:
   195  
   196  ```console
   197  $ helm init
   198  ```
   199  
   200  ## Conclusion
   201  
   202  In most cases, installation is as simple as getting a pre-built `helm` binary
   203  and running `helm init`. This document covers additional cases for those
   204  who want to do more sophisticated things with Helm.
   205  
   206  Once you have the Helm Client and Tiller successfully installed, you can
   207  move on to using Helm to manage charts.