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.