Getting Started

A small list of things that you should read and be familiar with before you get started with contributing. This includes such things as signing the Contributor License Agreement, familiarizing yourself with our Code of Conduct, and more.

Getting Started

Welcome

Have you ever wanted to contribute to the coolest cloud technology? This guide will help you understand the overall organization of the Kubernetes project, and direct you to the best places to get started contributing. You’ll be able to pick up issues, write code to fix them, and get your work reviewed and merged.

This document is the single source of truth for how to contribute to the code base. Feel free to browse the open issues and file new ones, all feedback is welcome!

Contributor Guide

Welcome to Kubernetes! This guide is broken up into the following sections. It is recommended that you follow these steps in order:

Prerequisites

Before submitting code to Kubernetes, you should first complete the following prerequisites. These steps are checked automatically by a bot during your first submission. Completing these steps will make your first contribution easier:

Create a GitHub account

Before you get started, you will need to sign up for a GitHub user account.

Sign the CLA

Before you can contribute to Kubernetes, you will need to sign the Contributor License Agreement. The easiest way to do so is to open a PR against the contributor playground repo, you can find an example PR here.

Note: kubernetes-sigs/contributor-playground is a repository for practicing submitting your first PR, not just for CLA registration. When creating and submitting a new PR, please write the PR description according to the provided template. Check the above example PR for reference.

Code of Conduct

Please make sure to read and observe the Code of Conduct and Community Values

Setting up your development environment

It is not required to set up a developer environment in order to contribute to Kubernetes.

If you plan to contribute code changes, review the developer resources page for how to set up your environment.

Community Expectations and Roles

Kubernetes is a community project. Consequently, it is wholly dependent on its community to provide a productive, friendly, and collaborative environment.

  • Read and review the Community Expectations for an understanding of code and review expectations.
  • See Community Membership for a list of the various responsibilities of contributor roles.
  • You are encouraged to move up this contributor ladder as you gain experience.

Kubernetes Contributor Playground

If you are looking for a safe place, where you can familiarize yourself with the pull request and issue review process in Kubernetes, then the Kubernetes Contributor Playground is the right place for you.

Contributor Workshops

A Youtube playlist of the New Contributor workshop has been posted. An outline of the video content can be found here.

Community

Kubernetes is a large, lively, friendly open-source community. As many open source projects often do, it depends on new people becoming members and regular code contributors. The Community Membership Document covers membership processes and roles. Please consider joining Kubernetes, and making your way up the contributor ladder!

Communication

Events

Kubernetes participates in KubeCon + CloudNativeCon, held three times per year in China, Europe, and North America. Information about these and other community events is available on the CNCF Events pages.

Meetups

All Kubernetes meetups follow the general Cloud Native Computing Foundation Guidelines You may also contact CNCF Staff driving the Community Groups (previously known as Meetups) program by email (meetups@cncf.io)

Mentorship

Learn more about the Kubernetes mentoring initiatives.

Advanced Topics

This section includes things that need to be documented, but typical contributors do not need to interact with regularly.

  • OWNERS files - The Kubernetes organizations are managed with OWNERS files, which outline which parts of the code are owned by what groups.

Making your First Contribution

Not sure where to make your first contribution? This doc has some tips and ideas to help get you started.

Contributing to Kubernetes

An entrypoint to getting started with contributing to the Kubernetes project.

Platforms Guide

Outlines the necessary steps to either add or remove supported platform builds in Kubernetes.

Pull Request Process

Explains the process and best practices for submitting a pull request to the Kubernetes project and its associated sub-repositories. It should serve as a reference for all contributors, and be useful especially to new or infrequent submitters.

GitHub Workflow

This document is an overview of the GitHub workflow used by the Kubernetes project. It includes tips and suggestions on keeping your local environment in sync with upstream and how to maintain good commit hygiene.

Coding Conventions

This document outlines a collection of guidelines, style suggestions, and tips for writing code in the different programming languages used throughout the Kubernetes project.

Help Wanted and Good First Issue Labels

This document provides guidance on how and when to use the help wanted and good first issue labels. These are used to identify issues that have been specially groomed for new contributors.

Issue Triage Guidelines

These guidelines serve as a primary document for triaging incoming issues to Kubernetes. SIGs and projects are encouraged to use this guidance as a starting point, and customize to address specific triaging needs.

Non-code Contributions

Looking for a good entrance into the project? or to do something different? There are many ways to contribute to the Kubernetes project without having to have coding experience: issue triage, writing documentation, joining the release team and much more.

Adding Release Notes

Guidance on providing release notes for changes made to the main Kubernetes project repo.

OWNERS Files

OWNERS files are used to designate responsibility over different parts of the Kubernetes codebase and serve as the implementation mechanism for the two-phase code review process used by the project.

Community Expectations

Expectations of conduct and code review that govern all members of the community.