diff --git a/README.md b/README.md index a16bf2706..7d1291f94 100644 --- a/README.md +++ b/README.md @@ -5,32 +5,43 @@ Helm is a tool for managing Kubernetes charts. Charts are packages of pre-configured Kubernetes resources. -Features: +Use Helm to... -- 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. +- Find and use popular software packaged as Kubernetes charts +- Share your own applications as Kubernetes charts +- Create reproducible builds of your Kubernetes applications +- Intelligently manage your Kubernetes manifest files +- Manage releases of Helm packages + +## Helm in a Handbasket + +Helm is a tool that streamlines installing and managing Kubernetes applications. +Think of it like apt/yum/homebrew for Kubernetes. + +- Helm has two parts: a client (`helm`) and a server (`tiller`) +- Tiller runs inside of your Kubernetes cluster, and manages releases (installations) + of your charts. +- Helm runs on your laptop, CI/CD, or wherever you want it to run. +- Charts are Helm packages that contain at least two things: + - A description of the package (`Chart.yaml`) + - One or more templates, which contain Kubernetes manifest files +- Charts can be stored on disk, or fetched from remote chart repositories + (like Debian or RedHat packages) + +Using Helm is as easy as this: + +```console +$ helm init # Initialize Helm as well as the Tiller server +$ helm install docs/examples/alpine # Install the example Alpine chart +happy-panda # <-- That's the name of your release +$ helm list # List all releases +happy-panda +quiet-kitten +``` ## Install -Helm is in its early stages of development. At this time there are no +Helm is in its early stages of development. At this time there are no binary releases. To install Helm from source, follow this process: @@ -50,8 +61,11 @@ 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`). +From here, you can run `bin/helm` and use it to install a recent snapshot of +Tiller. Helm will use your `kubectl` config to learn about your cluster. + +For development on Tiller, 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. @@ -62,3 +76,27 @@ 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. + +Differences from Helm Classic: + +- 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. +