|
|
|
# Kubernetes Helm
|
|
|
|
|
|
|
|
[![CircleCI](https://circleci.com/gh/kubernetes/helm.svg?style=svg)](https://circleci.com/gh/kubernetes/helm)
|
|
|
|
|
|
|
|
Helm is a tool for managing Kubernetes charts. Charts are packages of
|
|
|
|
pre-configured Kubernetes resources.
|
|
|
|
|
|
|
|
Features:
|
|
|
|
|
|
|
|
- Helm now has both a client (`helm`) and a server (`tiller`). The
|
|
|
|
server runs inside of Kubernetes, and manages your resources.
|
|
|
|
- Helm's chart format has changed for the better:
|
|
|
|
- Dependencies are immutable and stored inside of a chart's `charts/`
|
|
|
|
directory.
|
|
|
|
- Charts are strongly versioned using SemVer 2
|
|
|
|
- Charts can be loaded from directories or from chart archive files
|
|
|
|
- Helm supports Go templates without requiring you to run `generate`
|
|
|
|
or `template` commands.
|
|
|
|
- Helm makes it easy to configure your releases -- and share the
|
|
|
|
configuration with the rest of your team.
|
|
|
|
- Helm chart repositories now use plain HTTP instead of Git/GitHub.
|
|
|
|
There is no longer any GitHub dependency.
|
|
|
|
- A chart server is a simple HTTP server
|
|
|
|
- Charts are referenced by version
|
|
|
|
- The `helm serve` command will run a local chart server, though you
|
|
|
|
can easily use object storage (S3, GCS) or a regular web server.
|
|
|
|
- And you can still load charts from a local directory.
|
|
|
|
- The Helm workspace is gone. You can now work anywhere on your
|
|
|
|
filesystem that you want to work.
|
|
|
|
|
|
|
|
## Install
|
|
|
|
|
|
|
|
Helm is in its early stages of development. At this time there are no
|
|
|
|
releases.
|
|
|
|
|
|
|
|
To install Helm from source, follow this process:
|
|
|
|
|
|
|
|
Make sure you have the prerequisites:
|
|
|
|
- Go 1.6
|
|
|
|
- A running Kubernetes cluster
|
|
|
|
- `kubectl` properly configured to talk to your cluster
|
|
|
|
- [Glide](https://glide.sh/) 0.10 or greater with both git and mercurial installed.
|
|
|
|
|
|
|
|
1. [Properly set your $GOPATH](https://golang.org/doc/code.html)
|
|
|
|
2. Clone (or otherwise download) this repository into $GOPATH/src/k8s.io/helm
|
|
|
|
3. Run `make bootstrap build`
|
|
|
|
|
|
|
|
You will now have two binaries built:
|
|
|
|
|
|
|
|
- `bin/helm` is the client
|
|
|
|
- `bin/tiller` is the server
|
|
|
|
|
|
|
|
You can locally run Tiller, or you build a Docker image (`make
|
|
|
|
docker-build`) and then deploy it (`helm init -i IMAGE_NAME`).
|
|
|
|
|
|
|
|
The [documentation](docs) folder contains more information about the
|
|
|
|
architecture and usage of Helm/Tiller.
|
|
|
|
|
|
|
|
## The History of the Project
|
|
|
|
|
|
|
|
Kubernetes Helm is the merged result of [Helm
|
|
|
|
Classic](https://github.com/helm/helm) and the Kubernetes port of GCS Deployment
|
|
|
|
Manager. The project was jointly started by Google and Deis, though it
|
|
|
|
is now part of the CNCF.
|