Skip to content

Commit

Permalink
Merge pull request #23 from killianmuldoon/pr-update-owners
Browse files Browse the repository at this point in the history
Add Governance doc and update members files
  • Loading branch information
dougbtv authored Apr 4, 2024
2 parents db8b5a7 + eeb6e73 commit 25c482a
Show file tree
Hide file tree
Showing 9 changed files with 189 additions and 115 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.idea
86 changes: 86 additions & 0 deletions GOVERNANCE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
# Network Plumbing Working Group Governance

## OVERVIEW
The K8s Network Plumbing Working Group follows the example set out by the Kubernetes and wider CNCF communities. Governance of the NPWG is lightweight so that process doesn't impede contribution.

The intention is to provide a common ground for GitHub software repositories under https://github.com/k8snetworkplumbingwg. These repositories encompass the work that's being done across the working group. As the group grows in size and as the stakeholders diversify, having a solid framework for contribution should benefit the group as a whole.

Note: This document is adapted [from an original proposal](https://docs.google.com/document/d/1lIWOK-W6fb1VZiSjO1BoFUs0TmoVwgd4XuVc6mtJk2c).

## MISSION STATEMENT
The Network Plumbing Working Group's goal is to advance vendor-neutral open source and open standards in regards to networking capabilities for workloads running in Kubernetes. This includes creation of specifications for technologies, the development & tooling of these vendor-neutral technologies, building reference implementations, creation of proof-of-concept technologies to help drive the discussion, and furthering the specifications and implementations of those specifications. As appropriate, these technologies should work towards integration into core technologies, such as Kubernetes.

The Network Plumbing Working Group is responsible for maintaining and updating the specifications we have created, as well as maintenance of software that is created by members and maintainers of the Network Plumbing Working Group.

## GOVERNANCE

### Meetings and voting
Meetings are held bi-weekly. The agenda document which contains time and connection details is [here](./README.md#meetings).

For any action that requires a vote, quorum must be achieved. To achieve quorum, 3 or more members shall be available to vote, and there shall be no more than 50% representation among voters of members in employment of the same employer. In order to make changes to the governance document, there shall be 5 or more members available to vote and there shall be no more than 50% representation of members in employment of the same employer.

An organization owner must be present to decide if there is quorum to make a decision.

### Project repositories
Active and archived repositories are listed in [REPOSITORIES](REPOSITORIES). This file has the form:
```markdown
## ACTIVE REPOSITORIES
repo-one http://link-to-repo-one.com
repo-two http://link-to-repo-two.com

## ARCHIVED REPOSITORIES
repo-three http://link-to-repo-three.com
...
```

### Adding or archiving a repository
To begin, donate, or archive a repository a proposal is made at the [NPWG community meeting](./README.md#meetings). If the group approves the change a PR will be made to the [REPOSITORIES](REPOSITORIES) file in the community repository. The PR will stay open until the next NPWG community meeting at which time it can be merged by another vote. This allows the wider community - including those who aren't able to attend the regular community meeting - to have their say on governance changes. Once the PR is merged it's the responsibility of an organization owner to reflect the changes in GitHub. This process is followed for adding, donating or archiving repositories.

### Process for accepting pull requests
Pull requests should be approved by 2 or more maintainers employed by distinct employers before being merged. Maintainers may approve their own pull requests, however these pull requests must also be reviewed and approved by one or more other maintainers.

### Project roles
There are four defined roles in the NPWG - two at the organization level and two at the repository level.

#### Organization owner
This is an owner of the NPWG organization as listed in the community [OWNERS](OWNERS) file. These people are responsible for the long term health of the project and day-to-day administrative tasks. An organization owner must be present at the NPWG community meeting to hold votes that require quorum - including those on changing OWNERS files and on adding or archiving repositories.

The group of all owners should not have more than 50% representation by a single organization. Owners are responsible for creating repositories as well as setting GitHub roles for maintainers. Owners must not delete, rename, make private, or transfer ownership of any repositories outside of the GitHub organization, nor take any other disruptive action without a vote during a bi-weekly meeting.

#### Organization member
Anyone is free to contribute to the Network Plumbing Working Group at any time. Contribution to the working group happens across a number of vectors, which include but are not limited to: The Network Plumbing Working Group's Google Groups email list, bi-weekly meetings and GitHub. Any member of the group is invited to join the discussion, and to submit patches to GitHub.

A "member" of the Network Plumbing Working Group has the right to vote given any decision the group makes.

Members shall be documented in the community repository.

#### Repository admin
This is a person with `Admin` rights in a GitHub repository. They are responsible for the long term health of a repository. They are also responsible for periodic administrative tasks such as reflecting changes in OWNERS file to the GitHub settings of a repository.

#### Repository maintainer
This is a person with `Maintain` rights in a GitHub repository. They are responsible for the day-to-day health of a repository. Tasks expected from maintainers include issue triage, code reviews, PR approvals and attending relevant community meetings.

### Updating project roles
Adding a member can be done by opening a PR to [MEMBERS](./MEMBERS) in this repo. Other changes to project roles will be proposed at the [NPWG community meeting](./README.md#meetings). If the group approves the change a PR will be made to the OWNERS file of the relevant repository. The PR will stay open until the next NPWG community meeting at which time it can be merged by another vote. This allows the wider community - including those who aren't able to attend the regular community meeting - to have their say on governance changes. Once the PR is merged it's the responsibility of a repository admin or organization owner to reflect the changes in the GitHub project settings of the relevant repository. This process is followed for adding, updating or removing members from the project roles they hold.

### OWNERS file structure
The OWNERS file in this repository has the form:

```markdown
# OWNERS
owner-one
...
```

Other repositories under the NPWG have OWNERS files of the form:

```markdown
## ADMINS: People who control settings for the repo.
admin-one
...

## Maintainers: People who can merge code in this repo.
maintainer-one
maintainer-two
...
```
75 changes: 0 additions & 75 deletions MAINTAINERS.md

This file was deleted.

43 changes: 43 additions & 0 deletions MEMBERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
adrianchiris
amorenoz
aneeshkp
Ayush21298
clarkek
coveralls
crandles
davecremins
dcbw
dougbtv
Eoghan1232
eoghanlawless
jdambly
jnunyez
josephdrichard
jzding
kenyis
killianmuldoon
kmabda
lmilleri
maiqueb
martinkennelly
michaeloreillyintel
MikeSpreitzer
moshe010
mukesh-dua
npwg-robot
oshoval
phoracek
plwhite
qinqon
RamLavi
rdower
rkamudhan
RossGLPT
s1061123
SchSeba
seware
sfblackl-intel
sureshkrishnan
szollin
tliron
zeeke
25 changes: 0 additions & 25 deletions MEMBERS.md

This file was deleted.

15 changes: 15 additions & 0 deletions OWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Owners

adrianchiris
davecremins
dcbw
dougbtv
killianmuldoon
moshe010
rdower
RossGLPT
s1061123
seware
sfblackl-intel
sureshkrishnan
szollin
8 changes: 0 additions & 8 deletions OWNERS.md

This file was deleted.

9 changes: 2 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,14 +38,9 @@ Every 2 weeks on Thursday, 15:00-15:30 GMT

## Members and Maintainers

* [Members](MEMBERS.md)
* [Maintainers](MAINTAINERS.md)
* [GitHub Organization Owners](OWNERS.md)
* [Members](MEMBERS)
* [GitHub Organization Owners](OWNERS)

## Organizers

* Dan Williams (**[@dcbw](https://github.com/dcbw)**), Red Hat
* Doug Smith (**[@dougbtv](https://github.com/dougbtv)**), Red Hat

## Working Items

Expand Down
42 changes: 42 additions & 0 deletions REPOSITORIES
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
## ACTIVE
sriov-cni https://github.com/k8snetworkplumbingwg/sriov-cni
multus-cni https://github.com/k8snetworkplumbingwg/multus-cni
bond-cni https://github.com/k8snetworkplumbingwg/bond-cni
sriovnet https://github.com/k8snetworkplumbingwg/sriovnet
sriov-network-device-plugin https://github.com/k8snetworkplumbingwg/sriov-network-device-plugin
ovs-cni https://github.com/k8snetworkplumbingwg/ovs-cni
multi-net-spec https://github.com/k8snetworkplumbingwg/multi-net-spec
network-attachment-definition-client https://github.com/k8snetworkplumbingwg/network-attachment-definition-client
net-attach-def-admission-controller https://github.com/k8snetworkplumbingwg/net-attach-def-admission-controller
community https://github.com/k8snetworkplumbingwg/community
k8s-net-attach-def-controller https://github.com/k8snetworkplumbingwg/k8s-net-attach-def-controller
reference-deployment https://github.com/k8snetworkplumbingwg/reference-deployment
kubemacpool https://github.com/k8snetworkplumbingwg/kubemacpool
whereabouts https://github.com/k8snetworkplumbingwg/whereabouts
toc https://github.com/k8snetworkplumbingwg/toc
network-resources-injector https://github.com/k8snetworkplumbingwg/network-resources-injector
ib-sriov-cni https://github.com/k8snetworkplumbingwg/ib-sriov-cni
net-service-controller https://github.com/k8snetworkplumbingwg/net-service-controller
rdma-cni https://github.com/k8snetworkplumbingwg/rdma-cni
helm-charts https://github.com/k8snetworkplumbingwg/helm-charts
multusctl https://github.com/k8snetworkplumbingwg/multusctl
multi-networkpolicy https://github.com/k8snetworkplumbingwg/multi-networkpolicy
sriov-network-metrics-exporter https://github.com/k8snetworkplumbingwg/sriov-network-metrics-exporter
multi-networkpolicy-iptables https://github.com/k8snetworkplumbingwg/multi-networkpolicy-iptables
device-info-spec https://github.com/k8snetworkplumbingwg/device-info-spec
govdpa https://github.com/k8snetworkplumbingwg/govdpa
accelerated-bridge-cni https://github.com/k8snetworkplumbingwg/accelerated-bridge-cni
sriov-network-operator https://github.com/k8snetworkplumbingwg/sriov-network-operator
kubectl-multinet https://github.com/k8snetworkplumbingwg/kubectl-multinet
resource-mgmt-utils https://github.com/k8snetworkplumbingwg/resource-mgmt-utils
plugins https://github.com/k8snetworkplumbingwg/plugins
multus-service https://github.com/k8snetworkplumbingwg/multus-service
multi-networkpolicy-tc https://github.com/k8snetworkplumbingwg/multi-networkpolicy-tc
multus-dynamic-networks-controller https://github.com/k8snetworkplumbingwg/multus-dynamic-networks-controller
cni-log https://github.com/k8snetworkplumbingwg/cni-log
net-ebpf-playground https://github.com/k8snetworkplumbingwg/net-ebpf-playground
ptp-operator https://github.com/k8snetworkplumbingwg/ptp-operator
bridge-operator https://github.com/k8snetworkplumbingwg/bridge-operator
ipamclaims https://github.com/k8snetworkplumbingwg/ipamclaims

## ARCHIVED

0 comments on commit 25c482a

Please sign in to comment.