Skip to content
Switch branches/tags
Go to file
Cannot retrieve contributors at this time

Contributing guidelines

How to become a contributor and submit your own code

Contributor License Agreements

We'd love to accept your patches! Before we can take them, we have to jump a couple of legal hurdles.

Please fill out either the individual or corporate Contributor License Agreement (CLA).

  • If you are an individual writing original source code and you're sure you own the intellectual property, then you'll need to sign an individual CLA.
  • If you work for a company that wants to allow you to contribute your work, then you'll need to sign a corporate CLA.

Follow either of the two links above to access the appropriate CLA and instructions for how to sign and return it. Once we receive it, we'll be able to accept your pull requests.

Contributing A Patch

  1. Submit an issue describing your proposed change to the repo in question.
  2. The repo owners will respond to your issue promptly.
  3. If your proposed change is accepted, and you haven't already done so, sign a Contributor License Agreement (see details above).
  4. Before starting to work on an issue, type /lifecycle active in a comment on the issue or contact a Kubeadm maintainer to do so; The lifecycle/active label denotes to the community that the issue is currently being worked on and it signals to the reviewers and approvers that patches are coming soon. If instead you are planning to work on an issue created by other contributors, it would be nice to comment on the issue about your intentions and then wait 2 or 3 days for feedback before adding lifecycle/active label and actually start working on it.
  5. Fork the desired repo, develop and test your code changes.
  6. Submit a pull request.

Contributing kubeadm documentation

kubeadm is documented in various places on the website. These pages cover topics such as installation steps, troubleshooting and command line syntax. You can help kubeadm a lot by filling issue reports for inconsistencies and keeping the documentation up-to-date by submitting PRs.

The process for contributing to the website is very straight forward and is outlined here:

Here is a document that explains the process of updating the kubeadm command line reference:


kubeadm uses the same build process as the rest of the kubernetes/kubernetes repository. However, you do not frequently have to build all of kubernetes to work on kubeadm.

See ./kinder/ for a quick workflow to build and test your own kubeadm binaries. 🙂

Testing pre-release versions of Kubernetes with kubeadm

See for information about how to get pre-release versions of kubernetes or kubeadm and how to test them.

Adding dependencies

If your patch depends on new packages, add that package with godep. Follow the instructions to add a dependency.

Running unit tests

First navigate to the directory where you have cloned kubernetes (e.g. ~/go/src/

You can run unit tests for specific kubeadm packages using:

make test WHAT=<package> GOFLAGS="-v"

Where <package> can be ./cmd/kubeadm/app/cmd, ./cmd/kubeadm/app/util, ./cmd/kubeadm/app/features, etc.

To run kubeadm command line integration tests call:

make test-cmd WHAT=kubeadm

For more information about running tests in Kubernetes have a look at:

For more general information about unit tests in Go please have a look at:

Instructional videos