Insights into Kubernetes Feature Development and Community Involvement
As Kubernetes continues to solidify its position as the leading standard for container orchestration, interest grows in how new features are developed and introduced to the project.
At a recent KubeCon 2023 talk titled “The Life and Times of a Kubernetes Feature,” Red Hat’s Francesco Romani and Swati Sehgal shared insights into the Kubernetes feature development process and emphasized the crucial role of community involvement in driving innovation.
Understanding the Three Levels of Contributors in Kubernetes
Understanding the three levels of contributors within the Kubernetes project is important before exploring the feature development process.
These levels consist of the following:
- Members: active contributors to the project
- Reviewers: individuals knowledgeable about specific areas of the code
- Approvers: experienced reviewers responsible for approving contributions.
To connect with these contributors, one can utilize Slack and attend Special Interest Group (SIG) meetings.
How SIGs drive innovation and community involvement
SIGs drive innovation within particular areas of the Kubernetes project, and anyone can join them to help shape the project’s future. During a new feature development process, SIG members collaborate to ensure the feature meets the community’s needs and aligns with the project’s overarching goals.
The three stages of Kubernetes feature development
The feature development process encompasses three stages: Alpha, Beta, and GA. A feature first goes through a pre-alpha phase, where it is discussed and evaluated by the community to determine whether it warrants full-fledged development or can be incorporated into an existing feature. If deemed necessary, a Kubernetes Enhancement Proposal (KEP) is created.
KEPs outline the development process and are crucial for ensuring features are developed in accordance with Cloud Native Computing Foundation (CNCF) standards, the organization overseeing the Kubernetes project. The Alpha stage sees the feature’s development, community review of the enhancement, code, and documentation.
Upon reaching Beta readiness, new KEPs are created, and the feature undergoes further development to meet CNCF standards. In the Beta stage, the community often maintains the feature, requiring new KEPs and SIG meetings to advance it to the GA stage.
Contributing to Kubernetes’s future
While the development process may appear straightforward, it is essential to recognize that Kubernetes is an open-source project with a distributed team of developers. Consequently, development time and complexity can vary depending on the feature being developed.
In summary, Kubernetes feature development demands significant community involvement and collaboration. The process consists of multiple development stages, each with its own set of standards and requirements. This involvement ensures that Kubernetes remains a robust and innovative platform for container orchestration. Although the development process may seem daunting for those interested in contributing to the Kubernetes project, the opportunity to shape container orchestration’s future is both thrilling and rewarding.