-
Notifications
You must be signed in to change notification settings - Fork 5.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Various governance clarifications #1994
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -13,16 +13,27 @@ issues, mailing lists, conferences, etc. | |
|
||
For more specific topics, try a SIG. | ||
|
||
## SIGs | ||
## Governance | ||
|
||
Kubernetes is a set of subprojects, each shepherded by a Special Interest Group (SIG). | ||
Kubernetes has three types of groups that are officially supported: | ||
|
||
A first step to contributing is to pick from the [list of kubernetes SIGs](sig-list.md). | ||
* **Committees** are named sets of people that are chartered to take on sensitive topics. | ||
This group is encouraged to be as open as possible while achieving its mission but, because of the nature of the topics discussed, private communications are allowed. | ||
Examples of committees include the steering committee and things like security or code of conduct. | ||
* **Special Interest Groups (SIGs)** are persistent open groups that focus on a part of the project. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. what does it mean to be open in membership? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. transparent? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
An alternative interpretation would be that that self-nomination is sufficient to join (i.e. that there's no new-member vetting process). Perhaps the wording here (and/or in There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Right now in the steering committee we are working on guidance/process for the level of "membership" needed to participate in processes like voting for the steering committee. As part of that I don't want to overload the term "membership". I'll reword this to say that anyone is welcome to contribute and participate. |
||
SIGs must have open and transparent proceedings. | ||
Anyone is welcome to participate and contribute provided they follow the Kubernetes Code of Conduct. | ||
The purpose of a SIG is to own and develop a set of **subprojects**. | ||
* **Subprojects** Each SIG can have a set of subprojects. | ||
These are smaller groups that can work independently. | ||
Some subprojects will be part of the main Kubernetes deliverables while others will be more speculative and live in the `kubernetes-sigs` github org. | ||
* **Working Groups** are temporary groups that are formed to address issues that cross SIG boundaries. | ||
Working groups do not own any code or other long term artifacts. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. See @philips comment below. Clarify to make it clear that prototypes and proof-of-concept implementations by working groups are in scope and encouraged. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We have a repository policy: This should not change it. |
||
Working groups can report back and act through involved SIGs. | ||
|
||
See the [full governance doc](governance.md) for more details on these groups. | ||
|
||
A SIG can have its own policy for contribution, | ||
described in a `README` or `CONTRIBUTING` file in the SIG | ||
folder in this repo (e.g. [sig-cli/CONTRIBUTING](sig-cli/CONTRIBUTING.md)), | ||
and its own mailing list, slack channel, etc. | ||
A SIG can have its own policy for contribution, described in a `README` or `CONTRIBUTING` file in the SIG folder in this repo (e.g. [sig-cli/CONTRIBUTING.md](sig-cli/CONTRIBUTING.md)), and its own mailing list, slack channel, etc. | ||
|
||
If you want to edit details about a SIG (e.g. its weekly meeting time or its leads), | ||
please follow [these instructions](./generator) that detail how our docs are auto-generated. | ||
|
@@ -34,7 +45,11 @@ lead to many relevant technical topics. | |
|
||
## Contribute | ||
|
||
The [Contributor Guide](contributors/guide/README.md) provides detailed instructions on how to get your ideas and bug fixes seen and accepted, including: | ||
A first step to contributing is to pick from the [list of kubernetes SIGs](sig-list.md). | ||
Start attending SIG meetings, join the slack channel and subscribe to the mailing list. | ||
SIGs will often have a set of "help wanted" issues that can help new contributors get involved. | ||
|
||
The [Contributor Guide](contributors/guide/README.md) provides detailed instruction on how to get your ideas and bug fixes seen and accepted, including: | ||
1. How to [file an issue] | ||
1. How to [find something to work on] | ||
1. How to [open a pull request] | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -28,6 +28,25 @@ All Kubernetes SIGs must define a charter defining the scope and governance of t | |
- For minor updates to that only impact issues or areas within the scope of the SIG the SIG Chairs should | ||
facilitate the change. | ||
|
||
## SIG Charter approval process | ||
|
||
When introducing a SIG charter or modification of a charter the following process should be used. | ||
As part of this we will define roles for the [OARP] process (Owners, Approvers, Reviewers, Participants) | ||
|
||
- Identify a small set of Owners from the SIG to drive the changes. | ||
Most typically this will be the SIG chairs. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. What is the process for a new SIG? Presumably it folks proposing the SIG agree upon the chairs / tech leads? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Unfortunately, this process is split between this doc and I did change that in this PR too to say that for creating a SIG a set of folks proposing the SIG should work with the Steering Committee to scope it. |
||
- Work with the rest of the SIG in question (Reviewers) to craft the changes. | ||
Make sure to keep the SIG in the loop as discussions progress with the Steering Committee (next step). | ||
Including the SIG mailing list in communications with the steering committee would work for this. | ||
- Work with the steering committee (Approvers) to gain approval. | ||
This can simply be submitting a PR and sending mail to [steering@kubernetes.io]. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Nit: the Markdown spec defines an implicit link name shortcut (e.g. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @wking links are at the bottom of the doc (this line is on line 62) There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Right, and those are fine. But the syntax used in this line (withought the trailng There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think this is fine. We do it elsewhere in the repo. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is already used in this file and I was just following the pattern. If and when we start using the content with a markdown parser that doesn't respect this syntax we can look to fix it. As it is, this is part of the commonmark spec which github users (https://spec.commonmark.org/0.28/#shortcut-reference-link). But the state of "spec" in the markdown world is a disaster and I really don't want to have that argument. |
||
If more substantial changes are desired it is advisable to socialize those before drafting a PR. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'd expect the SIG to have consensus before asking the SC to review the changes. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Or to have deadlocked? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Reordered to make it more clear. (pushing soon). |
||
- The steering committee will be looking to ensure the scope of the SIG as represented in the charter is reasonable (and within the scope of Kubernetes) and that processes are fair. | ||
- For large changes alert the rest of the Kubernetes community (Participants) as the scope of the changes becomes clear. | ||
Sending mail to [kubernetes-dev@googlegroups.com] and/or announcing at the community meeting are a good ways to do this. | ||
|
||
If there are questions about this process please reach out to the steering committee at [steering@kubernetes.io]. | ||
|
||
## How to use the templates | ||
|
||
SIGs should use [the template][Short Template] as a starting point. This document links to the recommended [SIG Governance][sig-governance] but SIGs may optionally record deviations from these defaults in their charter. | ||
|
@@ -41,9 +60,12 @@ The primary goal of the charters is to define the scope of the SIG within Kubern | |
|
||
See [frequently asked questions] | ||
|
||
[OARP]: https://stumblingabout.com/tag/oarp/ | ||
[Recommendations and requirements]: sig-governance-requirements.md | ||
[sig-governance]: sig-governance.md | ||
[Short Template]: sig-charter-template.md | ||
[frequently asked questions]: FAQ.md | ||
[sigs.yaml]: https://github.com/kubernetes/community/blob/master/sigs.yaml | ||
[sig-architecture example]: ../../sig-architecture/charter.md | ||
[steering@kubernetes.io]: mailto:steering@kubernetes.io | ||
[kubernetes-dev@googlegroups.com]: mailto:kubernetes-dev@googlegroups.com |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -26,10 +26,10 @@ See [community membership] | |
# Community groups | ||
|
||
The project has 4 main types of groups: | ||
1. Special Interest Groups, SIGs | ||
2. Subprojects | ||
3. Working Groups, WGs | ||
4. Committees | ||
* Special Interest Groups, SIGs | ||
* Subprojects | ||
* Working Groups, WGs | ||
* Committees | ||
|
||
## SIGs | ||
|
||
|
@@ -52,8 +52,8 @@ itself. Examples: | |
* Horizontal: Scalability, Architecture | ||
* Project: Testing, Release, Docs, PM, Contributor Experience | ||
|
||
SIGs must have at least one and ideally two SIG leads at any given | ||
time. SIG leads are intended to be organizers and facilitators, | ||
SIGs must have at least one and ideally two SIG chairs at any given | ||
time. SIG chairs are intended to be organizers and facilitators, | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The only SIG with multiple chairs/leads from the same company is SIG VMWare. The rest, with multiple chairs, are from differing companies (see the sig list). When it comes to community membership we have a sponsor requirement of:
For SIG Chairs do we want something similar? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @mattfarina I don't think it's a problem unless the sig feels it's a problem. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'm going to leave this to another update to keep this PR from sprawling. I was just fixing s/leads/chairs/ here. There are concerns here around how we curate voting members for the steering committee that we are actively working through now. This is part of that hairball. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Regarding the vmware SIG, the intent is that we will actively seek a non vmware employee who is willing and able to assist in SIG leadership roles and responsibilities. The goal is to ensure that this SIG is open to all interested parties. The initial leadership composition is a short term artifact of bootstrapping the SIG. Until, and even after diversity is achieved, the SIG intends to actively engage in recruitment to include users, partners and any others interested. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Most of the provider-specific SIGs are likely to have chairs all from the same organization. That will be resolved when we unify the provider SIGs into a single SIG. I think it's more important for each SIG to have at least 2 chairs -- I think that is a must. Having chairs from multiple organizations is preferred, but I think impractical to make a hard requirement. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think that having chairs from multiple companies/organizations should be very strongly encouraged, and that single-company groups of chairs should be the exception, and clearly justified when this is required for practical reasons. |
||
responsible for the operation of the SIG and for communication and | ||
coordination with the other SIGs, the Steering Committee, and the | ||
broader community. | ||
|
@@ -62,7 +62,8 @@ Each SIG must have a charter that specifies its scope (topics, | |
subsystems, code repos and directories), responsibilities, areas of | ||
authority, how members and roles of authority/leadership are | ||
selected/granted, how decisions are made, and how conflicts are | ||
resolved. A [short template] for intra-SIG governance has been | ||
resolved. See the [SIG charter process] for details on how charters are managed. | ||
A [short template] for intra-SIG governance has been | ||
developed in order to simplify SIG creation, and additional templates | ||
are being developed, but SIGs should be relatively free to customize | ||
or change how they operate, within some broad guidelines and | ||
|
@@ -79,7 +80,7 @@ community. | |
See [sig governance] for more details about current SIG operating | ||
mechanics, such as mailing lists, meeting times, etc. | ||
|
||
## Subprojects | ||
### Subprojects | ||
|
||
Specific work efforts within SIGs are divided into **subprojects**. | ||
Every part of the Kubernetes code and documentation must be owned by | ||
|
@@ -106,15 +107,28 @@ This is the purpose of Working Groups (WG). The intent is to make | |
Working Groups relatively easy to create and to deprecate, once | ||
inactive. | ||
|
||
To propose a new working group, first find a SIG to sponsor the group. | ||
Working groups do not own any code or subprojects. Instead, they are a place for | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. we kept getting hung up on this during the WG discussion. I think everyone agreed working groups can create and prototype. Just that the code landing in Kubernetes is contingent on SIG/subproject approval. "own any code" is confusing in this meaning. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Agreed. I think that this needs to be addressed further up in the doc too. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. How about: “Since WG are intended to have a definite lifetime, to prevent orphaned code at the dissolution of a WG all code in Kubernetes must have a SIG to own and maintain it. The sponsoring SIGs for a WG are expected to own and manage the code created for Kubernetes by a WG, and have authority on whether code created in a WG should become part of Kubernetes” Or similar? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Perhaps a bit wordy, but otherwise fine. It can be word-smithed in a followup PR, IMO. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @philips @smarterclayton @quinton-hoole We have a repository policy: This PR should not change it. |
||
people to discuss topics that cross SIG boundaries. | ||
|
||
Working groups are primarily used to facilitate topics of discussion that are in | ||
scope for Kubernetes but that cross SIG lines. If a set of folks in the | ||
community want to get together and discuss a topic, they can do so without | ||
forming a Working Group. As a community we will be looking for other ways to | ||
highlight and encourage a larger ecosystem (with things like slack channels) | ||
without offering any official endorsement. | ||
|
||
To propose a new working group, first find a SIG to sponsor the group. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Given that WG's are intended to cross SIGs, I think that multiple sigs should sponsor. If only one SIG is in support of the WG, it can simply live in the SIG with all other discussions and/or sub-projects there. |
||
Next, send a proposal to kubernetes-dev@googlegroups.com and also include | ||
any potentially interested SIGs. Wait for public comment. If there's | ||
enough interest, a new Working Group should be formed. | ||
any potentially interested SIGs. Wait for public comment. If there's | ||
enough interest, a new Working Group should be formed. | ||
|
||
Create a new mailing list in the from of kubernetes-wg-group-name. Working | ||
Create a new mailing list in the from of kubernetes-wg-group-name. Working | ||
groups typically have a Slack channel as well as regular meetings on zoom. | ||
It's encouraged to keep a clear record of all accomplishments that's publicly | ||
accessible. | ||
accessible. Like SIGs, working group communications and meetings should be | ||
open and be recorded for later viewing. | ||
|
||
Working groups are documented in [sigs.yaml](sigs.yaml). | ||
|
||
## Committees | ||
|
||
|
@@ -124,7 +138,7 @@ open and anyone can join, Committees do not have open membership and do | |
not always operate in the open. The steering committee can form | ||
committees as needed, for bounded or unbounded duration. Membership | ||
of a committee is decided by the steering committee. Like a SIG, a | ||
committee has a charter and a lead, and will report to the steering | ||
committee has a charter and a chair, and will report to the steering | ||
committee periodically, and to the community as makes sense, given the | ||
charter. | ||
|
||
|
@@ -151,17 +165,15 @@ to its charter, will own the decision. In the case of extended debate | |
or deadlock, decisions may be escalated to the Steering Committee, | ||
which is expected to be uncommon. | ||
|
||
The exact processes and guidelines for such cross-project | ||
communication have yet to be formalized, but when in doubt, use | ||
kubernetes-dev@googlegroups.com and make an announcement at the | ||
community meeting. | ||
The [KEP process] is being developed as a way to facilitate definition, agreement and communication of efforts that cross SIG boundaries. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. nit: the rest of this doc is wrapped at 80 chars |
||
SIGs are encouraged to use this process for larger efforts. | ||
This process is also available for smaller efforts within a SIG. | ||
|
||
# Repository guidelines | ||
|
||
All repositories under Kubernetes github orgs, such as kubernetes and kubernetes-incubator, | ||
should follow the procedures outlined in the [incubator document](incubator.md). All code projects | ||
use the [Apache License version 2.0](LICENSE). Documentation repositories should use the | ||
[Creative Commons License version 4.0](https://git.k8s.io/website/LICENSE). | ||
All new repositories under Kubernetes github orgs should follow the process outlined in the [kubernetes repository guidelines]. | ||
|
||
Note that "Kubernetes incubator" process has been deprecated in favor of the new guidelines. | ||
|
||
# CLA | ||
|
||
|
@@ -170,6 +182,8 @@ All contributors must sign the CNCF CLA, as described [here](CLA.md). | |
[community membership]: /community-membership.md | ||
[sig governance]: /sig-governance.md | ||
[owners]: community-membership.md#subproject-owner | ||
[short template]: committee-steering/governance/sig-charter-template.md | ||
[sig charter process]: committee-steering/governance/README.md | ||
[short template]: committee-steering/governance/sig-governance-template-short.md | ||
[kubernetes repository guidelines]: kubernetes-repositories.md | ||
|
||
[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/governance.md?pixel)]() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This omits subprojects.
https://github.com/kubernetes/community/blob/master/governance.md#community-groups
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So -- I'm torn on this and would love advice. In my mind subprojects are a subunit of a SIG. They are scoped and live/die and are governed by the owning SIG. It is up to the SIG to decide how tightly those sub-projects are controlled and what the process for figuring out who has commit permissions on those.
I'm happy to rationalize this and either demote them to be sub-SIG in governance.md or add them here. Let me know what you prefer.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Opinion: because they are created and destroyed by the sigs, they should be at a sub-sig level.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, but lack of awareness of subprojects leads to attempts to form WGs that should really be subprojects.
I would be fine with a mention under the SIG bullet rather than just below.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Part of the governance doc should be to communicate it. People often skim docs like this. If we can make it pop for a skimmer that subprojects are owned by SIGs that pop might be useful in communicating it.