2.7 KiB
Developers Guide
This guide explains how to set up your environment for developing on Helm and Tiller.
Prerequisites
- Go 1.6.0 or later
- Glide 0.10.2 or later
- kubectl 1.2 or later
- A Kubernetes cluster (optional)
- The gRPC toolchain
Building Helm/Tiller
We use Make to build our programs. The simplest way to get started is:
$ make boostrap build
This will build both Helm and Tiller.
To run all of the tests (without running the tests for vendor/
), run
make test
.
To run Helm and Tiller locally, you can run bin/helm
or bin/tiller
.
- Helm and Tiller are known to run on Mac OSX and most Linuxes, including Alpine.
- Tiller must have access to a Kubernets cluster. It learns about the
cluster by examining the Kube config files that
kubectl
uese.
gRPC and Protobuf
Helm and Tiller communicate using gRPC. To get started with gRPC, you will need to...
- Install
protoc
for compiling protobuf files. Releases are here - Install the protoc Go plugin:
go get -u github.com/golang/protobuf/protoc-gen-go
Note that you need to be on protobuf 3.x (protoc --version
) and use the latest Go plugin.
While the gRPC and ProtoBuf specs remain silent on indentation, we require that the indentation style matches the Go format specification. Namely, protocol buffers should use tab-based indentation and rpc declarations should follow the style of Go function declarations.
The Helm API (HAPI)
We use gRPC as an API layer. See pkg/proto/hapi
for the generated Go code,
and _proto
for the protocol buffer definitions.
To regenerate the Go files from the protobuf source, make protoc
.
Docker Images
To build Docker images, use make docker-build
Running a Local Cluster
You can run tests locally using the scripts/local-cluster.sh
script to
start Kubernetes inside of a Docker container. For OS X, you will need
to be running docker-machine
.
Contribution Guidelines
We welcome contributions. This project has set up some guidelines in order to ensure that (a) code quality remains high, (b) the project remains consistent, and (c) contributions follow the open source legal requirements. Our intent is not to burden contributors, but to build elegant and high-quality open source code so that our users will benefit.
Make sure you have read and understood the main CONTRIBUTING guide:
https://github.com/kubernetes/helm/blob/master/CONTRIBUTING.md
We follow the coding standards and guidelines outlined by the Deis project:
https://github.com/deis/workflow/blob/master/CONTRIBUTING.md https://github.com/deis/workflow/blob/master/src/contributing/submitting-a-pull-request.md
Adidtionally, contributors must have a CLA with CNCF/Google before we can accept contributions.