README
¶
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
ortemplate
commands. - Helm makes it easy to configure your releases -- and share the configuration with the rest of your team.
- Dependencies are immutable and stored inside of a chart's
- 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 0.10 or greater with both git and mercurial installed.
- Properly set your $GOPATH
- Clone (or otherwise download) this repository into $GOPATH/src/k8s.io/helm
- Run
make bootstrap build
You will now have two binaries built:
bin/helm
is the clientbin/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 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 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.
Directories
¶
Path | Synopsis |
---|---|
cmd
|
|
tiller/environment
Package environment describes the operating environment for Tiller.
|
Package environment describes the operating environment for Tiller. |
pkg
|
|
chartutil
Package chartutil contains tools for working with charts.
|
Package chartutil contains tools for working with charts. |
engine
Package engine implements the Go template engine as a Tiller Engine.
|
Package engine implements the Go template engine as a Tiller Engine. |
ignore
Package ignore provides tools for writing ignore files (a la .gitignore).
|
Package ignore provides tools for writing ignore files (a la .gitignore). |
lint/support
Package lint contains tools for linting charts.
|
Package lint contains tools for linting charts. |
proto/hapi/chart
Package chart is a generated protocol buffer package.
|
Package chart is a generated protocol buffer package. |
proto/hapi/release
Package release is a generated protocol buffer package.
|
Package release is a generated protocol buffer package. |
proto/hapi/services
Package services is a generated protocol buffer package.
|
Package services is a generated protocol buffer package. |
storage
Package storage implements storage for Tiller objects.
|
Package storage implements storage for Tiller objects. |
timeconv
Package timeconv contains utilities for converting time.
|
Package timeconv contains utilities for converting time. |
version
Package version represents the current version of the project.
|
Package version represents the current version of the project. |