Skip to content

Commit 6da7c9d

Browse files
authored
adding governance template from cncf (#926)
Signed-off-by: Paige Patton <prubenda@redhat.com>
1 parent 4d5aea1 commit 6da7c9d

File tree

2 files changed

+173
-47
lines changed

2 files changed

+173
-47
lines changed

GOVERNANCE.md

Lines changed: 111 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,83 +1,148 @@
1+
# Krkn Project Governance
12

3+
Krkn is a chaos and resiliency testing tool for Kubernetes that injects deliberate failures into clusters to validate their resilience under turbulent conditions. This governance document explains how the project is run.
24

5+
- [Values](#values)
6+
- [Community Roles](#community-roles)
7+
- [Becoming a Maintainer](#becoming-a-maintainer)
8+
- [Removing a Maintainer](#removing-a-maintainer)
9+
- [Meetings](#meetings)
10+
- [CNCF Resources](#cncf-resources)
11+
- [Code of Conduct](#code-of-conduct)
12+
- [Security Response Team](#security-response-team)
13+
- [Voting](#voting)
14+
- [Modifying this Charter](#modifying-this-charter)
315

4-
The governance model adopted here is heavily influenced by a set of CNCF projects, especially drew
5-
reference from [Kubernetes governance](https://github.com/kubernetes/community/blob/master/governance.md).
6-
*For similar structures some of the same wordings from kubernetes governance are borrowed to adhere
7-
to the originally construed meaning.*
16+
## Values
817

9-
## Principles
18+
Krkn and its leadership embrace the following values:
1019

11-
- **Open**: Krkn is open source community.
12-
- **Welcoming and respectful**: See [Code of Conduct](https://github.com/cncf/foundation/blob/master/code-of-conduct.md).
13-
- **Transparent and accessible**: Work and collaboration should be done in public.
14-
Changes to the Krkn organization, Krkn code repositories, and CNCF related activities (e.g.
15-
level, involvement, etc) are done in public.
16-
- **Merit**: Ideas and contributions are accepted according to their technical merit
17-
and alignment with project objectives, scope and design principles.
20+
* **Openness**: Communication and decision-making happens in the open and is discoverable for future reference. As much as possible, all discussions and work take place in public forums and open repositories.
1821

19-
## Code of Conduct
22+
* **Fairness**: All stakeholders have the opportunity to provide feedback and submit contributions, which will be considered on their merits.
2023

21-
Krkn follows the [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/master/code-of-conduct.md).
22-
Here is an excerpt:
24+
* **Community over Product or Company**: Sustaining and growing our community takes priority over shipping code or sponsors' organizational goals. Each contributor participates in the project as an individual.
25+
26+
* **Inclusivity**: We innovate through different perspectives and skill sets, which can only be accomplished in a welcoming and respectful environment.
27+
28+
* **Participation**: Responsibilities within the project are earned through participation, and there is a clear path up the contributor ladder into leadership positions.
2329

24-
> As contributors and maintainers of this project, and in the interest of fostering an open and welcoming community, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities.
30+
## Community Roles
2531

26-
## Maintainer Levels
32+
Krkn uses a tiered contributor model. Each level comes with increasing responsibilities and privileges.
2733

2834
### Contributor
29-
Contributors contribute to the community. Anyone can become a contributor by participating in discussions, reporting bugs, or contributing code or documentation.
3035

31-
#### Responsibilities:
36+
Anyone can become a contributor by participating in discussions, reporting bugs, or submitting code or documentation.
3237

33-
Be active in the community and adhere to the Code of Conduct.
38+
**Responsibilities:**
39+
- Adhere to the [Code of Conduct](CODE_OF_CONDUCT.md)
40+
- Report bugs and suggest new features
41+
- Contribute high-quality code and documentation
3442

35-
Report bugs and suggest new features.
43+
### Member
3644

37-
Contribute high-quality code and documentation.
45+
Members are active contributors who have demonstrated a solid understanding of the project's codebase and conventions.
3846

47+
**Responsibilities:**
48+
- Review pull requests for correctness, quality, and adherence to project standards
49+
- Provide constructive and timely feedback to contributors
50+
- Ensure contributions are well-tested and documented
51+
- Work with maintainers to support a smooth release process
3952

40-
### Member
41-
Members are active contributors to the community. Members have demonstrated a strong understanding of the project's codebase and conventions.
53+
### Maintainer
54+
55+
Maintainers are responsible for the overall health and direction of the project. They have write access to the [project GitHub repository](https://github.com/krkn-chaos/krkn) and can merge patches from themselves or others. The current maintainers are listed in [MAINTAINERS.md](./MAINTAINERS.md).
4256

43-
#### Responsibilities:
57+
Maintainers collectively form the **Maintainer Council**, the governing body for the project.
4458

45-
Review pull requests for correctness, quality, and adherence to project standards.
59+
A maintainer is not just someone who can make changes — they are someone who has demonstrated the ability to collaborate with the team, get the right people to review code and docs, contribute high-quality work, and follow through to fix issues.
4660

47-
Provide constructive and timely feedback to contributors.
61+
**Responsibilities:**
62+
- Set the technical direction and vision for the project
63+
- Manage releases and ensure stability of the main branch
64+
- Make decisions on feature inclusion and project priorities
65+
- Mentor contributors and help grow the community
66+
- Resolve disputes and make final decisions when consensus cannot be reached
4867

49-
Ensure that all contributions are well-tested and documented.
68+
### Owner
5069

51-
Work with maintainers to ensure a smooth and efficient release process.
70+
Owners have administrative access to the project and are the final decision-makers.
5271

53-
### Maintainer
54-
Maintainers are responsible for the overall health and direction of the project. They are long-standing contributors who have shown a deep commitment to the project's success.
72+
**Responsibilities:**
73+
- Manage the core team of maintainers
74+
- Set the overall vision and strategy for the project
75+
- Handle administrative tasks such as managing the repository and other resources
76+
- Represent the project in the broader open-source community
5577

56-
#### Responsibilities:
78+
## Becoming a Maintainer
5779

58-
Set the technical direction and vision for the project.
80+
To become a Maintainer you need to demonstrate the following:
5981

60-
Manage releases and ensure the stability of the main branch.
82+
- **Commitment to the project:**
83+
- Participate in discussions, contributions, code and documentation reviews for 3 months or more
84+
- Perform reviews for at least 5 non-trivial pull requests
85+
- Contribute at least 3 non-trivial pull requests that have been merged
86+
- Ability to write quality code and/or documentation
87+
- Ability to collaborate effectively with the team
88+
- Understanding of how the team works (policies, processes for testing and code review, etc.)
89+
- Understanding of the project's codebase and coding and documentation style
6190

62-
Make decisions on feature inclusion and project priorities.
91+
A new Maintainer must be proposed by an existing Maintainer by sending a message to the [maintainer mailing list](mailto:krkn.maintainers@gmail.com). A simple majority vote of existing Maintainers approves the application. Nominations will be evaluated without prejudice to employer or demographics.
6392

64-
Mentor other contributors and help grow the community.
93+
Maintainers who are approved will be granted the necessary GitHub rights and invited to the [maintainer mailing list](mailto:krkn.maintainers@gmail.com).
6594

66-
Resolve disputes and make final decisions when consensus cannot be reached.
95+
## Removing a Maintainer
6796

68-
### Owner
69-
Owners have administrative access to the project and are the final decision-makers.
97+
Maintainers may resign at any time if they feel they will not be able to continue fulfilling their project duties.
98+
99+
Maintainers may also be removed for inactivity, failure to fulfill their responsibilities, violating the Code of Conduct, or other reasons. Inactivity is defined as a period of very low or no activity in the project for a year or more, with no definite schedule to return to full Maintainer activity.
100+
101+
A Maintainer may be removed at any time by a 2/3 vote of the remaining Maintainers.
102+
103+
Depending on the reason for removal, a Maintainer may be converted to **Emeritus** status. Emeritus Maintainers will still be consulted on some project matters and can be rapidly returned to Maintainer status if their availability changes.
104+
105+
## Meetings
106+
107+
Maintainers are expected to participate in the public developer meeting, which occurs **once a month via Zoom**. Meeting details (link, agenda, and notes) are posted in the [#krkn channel on Kubernetes Slack](https://kubernetes.slack.com/messages/C05SFMHRWK1) prior to each meeting.
108+
109+
Maintainers will also hold closed meetings to discuss security reports or Code of Conduct violations. Such meetings should be scheduled by any Maintainer on receipt of a security issue or CoC report. All current Maintainers must be invited to such closed meetings, except for any Maintainer who is accused of a CoC violation.
110+
111+
## CNCF Resources
112+
113+
Any Maintainer may suggest a request for CNCF resources, either on the [mailing list](mailto:krkn.maintainers@gmail.com) or during a monthly meeting. A simple majority of Maintainers approves the request. The Maintainers may also choose to delegate working with the CNCF to non-Maintainer community members, who will then be added to the [CNCF's Maintainer List](https://github.com/cncf/foundation/blob/main/project-maintainers.csv) for that purpose.
114+
115+
## Code of Conduct
116+
117+
Krkn follows the [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/master/code-of-conduct.md).
118+
119+
> As contributors and maintainers of this project, and in the interest of fostering an open and welcoming community, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities.
120+
121+
Code of Conduct violations by community members will be discussed and resolved on the [private maintainer mailing list](mailto:krkn.maintainers@gmail.com). If a Maintainer is directly involved in the report, two Maintainers will instead be designated to work with the CNCF Code of Conduct Committee in resolving it.
122+
123+
## Security Response Team
124+
125+
The Maintainers will appoint a Security Response Team to handle security reports. This committee may consist of the Maintainer Council itself. If this responsibility is delegated, the Maintainers will appoint a team of at least two contributors to handle it. The Maintainers will review the composition of this team at least once a year.
126+
127+
The Security Response Team is responsible for handling all reports of security holes and breaches according to the [security policy](SECURITY.md).
128+
129+
To report a security vulnerability, please follow the process outlined in [SECURITY.md](SECURITY.md) rather than filing a public GitHub issue.
70130

71-
#### Responsibilities:
131+
## Voting
72132

73-
Manage the core team of maintainers and approvers.
133+
While most business in Krkn is conducted by "[lazy consensus](https://community.apache.org/committers/lazyConsensus.html)", periodically the Maintainers may need to vote on specific actions or changes. Any Maintainer may demand a vote be taken.
74134

75-
Set the overall vision and strategy for the project.
135+
Votes on general project matters may be raised on the [maintainer mailing list](mailto:krkn.maintainers@gmail.com) or during a monthly meeting. Votes on security vulnerabilities or Code of Conduct violations must be conducted exclusively on the [private maintainer mailing list](mailto:krkn.maintainers@gmail.com) or in a closed Maintainer meeting, in order to prevent accidental public disclosure of sensitive information.
76136

77-
Handle administrative tasks, such as managing the project's repository and other resources.
137+
Most votes require a **simple majority** of all Maintainers to succeed, except where otherwise noted. Two-thirds majority votes mean at least two-thirds of all existing Maintainers.
78138

79-
Represent the project in the broader open-source community.
139+
| Action | Required Vote |
140+
|--------|--------------|
141+
| Adding a new Maintainer | Simple majority |
142+
| Removing a Maintainer | 2/3 majority |
143+
| Approving CNCF resource requests | Simple majority |
144+
| Modifying this charter | 2/3 majority |
80145

146+
## Modifying this Charter
81147

82-
# Credits
83-
Sections of this document have been borrowed from [Kubernetes governance](https://github.com/kubernetes/community/blob/master/governance.md)
148+
Changes to this Governance document and its supporting documents may be approved by a 2/3 vote of the Maintainers.

MAINTAINERS.md

Lines changed: 62 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ For detailed description of the roles, see [Governance](./GOVERNANCE.md) page.
1515
| Pradeep Surisetty | [psuriset](https://github.com/psuriset) | psuriset@redhat.com | Owner |
1616
| Paige Patton | [paigerube14](https://github.com/paigerube14) | prubenda@redhat.com | Maintainer |
1717
| Tullio Sebastiani | [tsebastiani](https://github.com/tsebastiani) | tsebasti@redhat.com | Maintainer |
18-
| Yogananth Subramanian | [yogananth-subramanian](https://github.com/yogananth-subramanian) | ysubrama@redhat.com |Maintainer |
18+
| Yogananth Subramanian | [yogananth-subramanian](https://github.com/yogananth-subramanian) | ysubrama@redhat.com | Maintainer |
1919
| Sahil Shah | [shahsahil264](https://github.com/shahsahil264) | sahshah@redhat.com | Member |
2020

2121

@@ -32,3 +32,64 @@ The roles are:
3232
* Maintainer: A contributor who is responsible for the overall health and direction of the project.
3333

3434
* Owner: A contributor who has administrative ownership of the project.
35+
36+
37+
## Maintainer Levels
38+
39+
### Contributor
40+
Contributors contributor to the community. Anyone can become a contributor by participating in discussions, reporting bugs, or contributing code or documentation.
41+
42+
#### Responsibilities:
43+
44+
Be active in the community and adhere to the Code of Conduct.
45+
46+
Report bugs and suggest new features.
47+
48+
Contribute high-quality code and documentation.
49+
50+
51+
### Member
52+
Members are active contributors to the community. Members have demonstrated a strong understanding of the project's codebase and conventions.
53+
54+
#### Responsibilities:
55+
56+
Review pull requests for correctness, quality, and adherence to project standards.
57+
58+
Provide constructive and timely feedback to contributors.
59+
60+
Ensure that all contributions are well-tested and documented.
61+
62+
Work with maintainers to ensure a smooth and efficient release process.
63+
64+
### Maintainer
65+
Maintainers are responsible for the overall health and direction of the project. They are long-standing contributors who have shown a deep commitment to the project's success.
66+
67+
#### Responsibilities:
68+
69+
Set the technical direction and vision for the project.
70+
71+
Manage releases and ensure the stability of the main branch.
72+
73+
Make decisions on feature inclusion and project priorities.
74+
75+
Mentor other contributors and help grow the community.
76+
77+
Resolve disputes and make final decisions when consensus cannot be reached.
78+
79+
### Owner
80+
Owners have administrative access to the project and are the final decision-makers.
81+
82+
#### Responsibilities:
83+
84+
Manage the core team of maintainers and approvers.
85+
86+
Set the overall vision and strategy for the project.
87+
88+
Handle administrative tasks, such as managing the project's repository and other resources.
89+
90+
Represent the project in the broader open-source community.
91+
92+
93+
94+
## Email
95+
If you'd like to contact the krkn maintainers about a specific issue you're having, please reach out to use at krkn.maintainers@gmail.com.

0 commit comments

Comments
 (0)