github-management

GitHub Management

The Kubernetes project uses Github extensively to store and organize code, manage issues and documentation, and provide a consistent contributor flow.

With the size and growth of the Kubernetes project, management of our Github footprint has historically been a challenge. We have created a number of policies to reduce friction and ease administration of our Github repositories and organizations. We have also created a number of tools to automate setup and enforcement of these policies.

These polices are overseen by the GitHub Management subproject of the Contributor Experience Special Interest Group.

Guides

Project Owned Organizations

The following organizations are currently known to be part of the Kubernetes project

Actively used GitHub Organizations

Name Description
kubernetes Core
kubernetes-client API Client Libraries
kubernetes-csi Container Storage Interface Components
kubernetes-incubator Legacy Incubator Projects
kubernetes-retired Retired/Archived Projects
kubernetes-security Private Security Fix Mirror
kubernetes-sigs SIG-related Projects

Non-actively used GitHub Organizations

Name Description
kubernetes-addons
kubernetes-charts
kubernetes-extensions
kubernetes-federation
kubernetes-graveyard kubernetes-retired should be used instead going forward
kubernetes-incubator-retired kubernetes-retired should be used instead going forward
kubernetes-providers
kubernetes-sidecars
kubernetes-sig-testing
kubernetes-test
kubernetes-tools

Note, this list is subject to change.

There are more organization names that we are squatting on with possible future intentions. For more details please see community issue #1407.

Tooling

We have created a number of tools to help with the management of or Github repositories and organizations: - prow: Prow is our system for handling GitHub events and commands for Kubernetes. It is comprised of a number of modules/plugins. A couple key ones for GitHub management are below, but a full list of commands is available here - branchprotector: enforce branch protection settings across an organization - peribolos: Manage Github organization and team membership based on a defined YAML configuration - label_sync: Add, modify, delete, and migrate labels across an entire organization based on a defined YAML configuration