Getting Started
Welcome! 👋
This guide covers how to start contributing to kind 😄
Contents 🔗︎
1. Familiarize Yourself With Contributing to Kubernetes Projects 🔗︎
Read the Kubernetes Community Guidelines 🔗︎
Make sure to read you read the Kubernetes community guidelines. In specific, read through the Kubernetes contributor guidelines.
Additionally, note that
Setup GitHub Account 🔗︎
Kubernetes and kind are developed on GitHub and will require an account to contribute.
Sign CNCF CLA 🔗︎
The Kubernetes project requires the CNCF CLA be signed against your GitHub account for all contributions in all subprojects.
You’ll need to get the CLA signed to contribute.
Check The Kubernetes Contributor Guides 🔗︎
You may come back to this later, but we highly recommend reading these:
- Kubernetes Contributor Guide
- Main contributor documentation, or you can just jump directly to the contributing section
- Contributor Cheat Sheet
- Common resources for existing developers
2. Install Tools 🔗︎
Install Git 🔗︎
Our source code is managed with git
, to develop locally you
will need to install git
.
You can check if git
is already on your system and properly installed with
the following command:
git --version
Install Docker 🔗︎
Currently, to create clusters you will need to install Docker.
If you haven’t already, install Docker, following the official instructions. If you have an existing installation, check your version and make sure you have the latest Docker.
To check if docker
has been installed:
docker --version
This documentation is written using Docker version 18.09.2.
Install Go (optional) 🔗︎
KIND is written in Go, however our makefiles automatically ensure the correct version of go when building or testing.
You may still wish to install go on your machine to make it easier to integrate
into your editor etc. You can find the version of go we’re currently using to develop kind in the .go-version
file in the kind repo.
Install or upgrade Go using the instructions for your operating system. You can check if Go is in your system with the following command:
3. Read The Docs 🔗︎
The design principles, 1.0 roadmap, and initial design may be helpful to review before contributing. These docs cover some of the project philosophy and direction.
4. Reaching Out 🔗︎
Issues are tracked on GitHub. Please check the issue tracker to see if there is any existing discussion or work related to your interests.
In particular, if you’re just getting started, you may want to look for issues labeled good first issue or help wanted which are standard labels in the Kubernetes project. The help wanted label marks issues we’re actively seeking help with while good first issue is additionally applied to a subset of issues we think will be particularly good for newcomers.
If you’re interested in working on any of these, leave a comment to let us know!
If you do not see anything, please file a new issue.
NOTE: Please file an enhancement / feature request issue to discuss features before filing a PR (ideally even before writing any code), we have a lot to consider with respect to our existing users and future support when accepting any new feature.
To streamline the process, please reach out and discuss the concept and design / approach ASAP so the maintainers and community can get involved early.
Also – Please reach out in general for bugs, feature requests, and other issues!
The maintainers of this project are reachable via:
- Kubernetes Slack in the #kind channel (most active, along with the community)
- The issue tracker by filing an issue
- The Kubernetes SIG-Testing Mailing List
Current maintainers are @aojea and @BenTheElder – feel free to reach out directly if you have any questions!
See also: the Kubernetes community page.
5. Next Steps 🔗︎
Okay, so you’ve gotten your development environment setup, you’ve read all the contributor guides, signed the CLA … now what?
If you’re planning to contribute code changes, you’ll want to read the development guide next.
If you’re looking to contribute documentation improvements, first: Thank you! 🎉🤗 You’ll specifically want to see the documentation section of the development guide.