Skip to content

Latest commit

 

History

History
 
 

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

GitHub Administration Team

In order to manage the various organizations that the Kubernetes project owns, we have a GitHub Administration team that is responsible for carrying out the various tasks.

This team (@kubernetes/owners) is as follows:

This team is responsible for holding Org Owner privileges over all the active Kubernetes orgs, and will take action in accordance with our polices and procedures. All members of this team are subject to the Kubernetes security embargo policy.

Nominations to this team will come from the Contributor Experience SIG, and require confirmation by the Steering Committee before taking effect. Time zones and country of origin should be considered when selecting membership, to ensure sufficient after North American business hours and holiday coverage.

Other roles

New Membership Coordinator

New Membership Coordinators help serve as a friendly face to newer, prospective community members, guiding them through the process to request membership to a Kubernetes GitHub organization.

They also have approval privileges for adding new members to the GitHub config.

Our current coordinators are:

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-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 Earlier used for legacy incubator projects
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