forked from kubernetes/community
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request kubernetes#6720 from jberkus/elecsubproj
Creation of Elections subproject
- Loading branch information
Showing
100 changed files
with
295 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
name: Team Election Request | ||
description : Create an election for your SIG/WG/Subproject/Team | ||
title: 'ELECTION REQUEST: <topic>' | ||
labels: area/elections, sig/contributor-experience | ||
body: | ||
- type: input | ||
attributes: | ||
label: Group Requesting | ||
description: The SIG, WG, team, subproject, or other Kubernetes community group wanting the election. | ||
validations: | ||
required: true | ||
- type: input | ||
attributes: | ||
label: Title of Election | ||
description: The name of what's being decided. If this is a recurring election, include the year/period. | ||
validations: | ||
required: true | ||
- type: textarea | ||
attributes: | ||
label: Election Description | ||
description: Please write a full description of the election, suitable for those voting in it. Include dates and contact info. | ||
validations: | ||
required: true | ||
- type: input | ||
attributes: | ||
label: Administrators | ||
description: Supply a list of GitHub IDs of the members of your team who will be administering this election. Min 1, Max 5 | ||
validations: | ||
required: true | ||
- type: input | ||
attributes: | ||
label: Voters | ||
description: Describe who the eligible voters in this election are. If you have the voters as a list, please paste a list of GitHub IDs here or attach a file listing the IDs (1 per line). | ||
validations: | ||
required: true | ||
- type: input | ||
attributes: | ||
label: Date/Time Candidates may file | ||
description: Date and UTC time that candidates may start submitting profiles for the election. If you already have all of the profiles, that date is now. | ||
validations: | ||
required: true | ||
- type: input | ||
attributes: | ||
label: Date/Time Candidates Due | ||
description: Date and UTC time that candidates must have completed their profiles. If you already have all of the profiles, that date is now. | ||
validations: | ||
required: true | ||
- type: input | ||
attributes: | ||
label: Date/Time Voting Begins | ||
description: Date and UTC time that voting should begin. | ||
validations: | ||
required: true | ||
- type: input | ||
attributes: | ||
label: Date/Time Voting Ends | ||
description: Date and UTC time that voting closes. | ||
validations: | ||
required: true | ||
- type: dropdown | ||
attributes: | ||
label: Publicity Help Wanted? | ||
description: Is this an election that goes beyond your team, such that you want help from Contributor Comms in advertising it? | ||
options: | ||
- "Yes" | ||
- "No" | ||
validations: | ||
required: true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,116 @@ | ||
# Kubernetes Elections | ||
|
||
Welcome to the Kubernetes Elections area. This directory defines the Elections | ||
Subproject, including its products of the annual [Steering Committee election] | ||
and elections-as-a-service for our community. Elections is a subproject of | ||
the [Contributor Experience] SIG. | ||
|
||
## Steering Elections | ||
|
||
The Elections subproject is responsible for the annual [Steering Committee election], | ||
which is directly administered by the Election Officers. | ||
|
||
* If you are looking to vote in the steering election, go to the [elections app]. | ||
* If you are looking for detailed information on the steering elections, | ||
visit [Steering Committee election] page. | ||
|
||
## How to Request an Election for your SIG/WG | ||
|
||
All teams in Kubernetes may use our [elections app] to run preference elections | ||
for their team. See the instructions on [requesting an election]. | ||
|
||
## The Elections Subproject | ||
|
||
The Elections Subproject is a team within Kubernetes [SIG Contributor Experience] | ||
with the following responsibilities: | ||
|
||
* Maintain and update the elections documentation and messaging templates | ||
* Assist K8s-Infra team in maintaining the elections software and service | ||
* Assisting and approving SIGs/WGs in running minor elections | ||
* Recommending a slate of Election Officers for each Steering Election | ||
|
||
### Members | ||
|
||
Anyone can contribute to the elections subproject. In our [OWNERS file] you | ||
can find the list of our current approvers and reviewers. | ||
|
||
Approvers and reviewers are also responsible for the Elections roadmap, | ||
maintenance, and security. As such, new approvers must be approved by | ||
the [Contributor Experience] chairs or by the Steering Committee. | ||
|
||
### Communications | ||
|
||
The elections subproject can be reached by the following mechanisms: | ||
|
||
* tagging `/area elections` in issues or PRs in the Kubernetes/Community repo | ||
* #sig-contribex channel in Kubernetes slack | ||
* The regular [Contributor Experience] meeting | ||
|
||
### Documentation | ||
|
||
The subproject is responsible for making sure that all elections documentation | ||
is completed and kept up-to-date. This includes: | ||
|
||
* Community documentation on the SC election | ||
* Election Officer documentation on how to run an SC election | ||
* Election messaging templates | ||
* Elekto documentation | ||
|
||
This documentation may include setting policy for some aspects of the Steering | ||
election. In those cases, the subproject is responsible for getting the SC's | ||
approval on such items. | ||
|
||
### Software | ||
|
||
Elections in Kubernetes run on [Elekto]. The subproject is responsible for | ||
maintaining these by working together with [K8s-Infra] team. This includes | ||
upgrades, migrations, assisting community members using the software, and handling | ||
security reports. Should there be a reason to change software, the subproject | ||
will prepare recommendations for the Steering Committee to approve. It is also | ||
responsible for any necessary scripts, such as how to pull a voter list. | ||
|
||
### Recommending Election Officers | ||
|
||
The Elections Subproject will be responsible for finding and recommending | ||
Election Officers to run the next Steering Committee election. The schedule | ||
for that should be: | ||
|
||
* Early June: contact last year's EOs and determine who will be returning. | ||
* Mid-June: put out a call within SIG-Contribex to find out who is interested | ||
in being an EO. Contact likely individuals 1-on-1 | ||
* Early July: submit a recommended slate of EOs to the Steering Committee, | ||
including alternates if possible. | ||
* Mid-July: SC approves the EOs. | ||
* Late July: EOs set the schedule for the election. | ||
|
||
Election Officers should be chosen from among regular, trusted contributors to the | ||
Kubernetes project, with an eye towards employer, demographic, and geographic | ||
diversity. | ||
|
||
Election Officers are considered part of the Elections Subproject. | ||
|
||
### Minor Elections | ||
|
||
The subproject will assist Kubernetes teams/SIGs/WGs in preparing any internal | ||
elections they want to run. This includes watching for election issues and PRs | ||
and either helping create the appropriate files or auditing them for the teams. | ||
The subproject will work with the Contributor Comms team to promote the elections | ||
as appropriate. | ||
|
||
Any named Kubernetes team (see [requesting an election]) may run an election | ||
in elections.k8s.io. Since Elekto allows running multiple elections | ||
concurrently, the main limitation for running additional elections is the time | ||
of Contribex volunteers assist with the process. | ||
|
||
### Other Responsibilities | ||
|
||
The subproject team will make a biweekly report to SIG-Contribex's regular | ||
meeting. | ||
|
||
[Contributor Experience]: /sig-contributor-experience/README.md | ||
[Elekto]: https://elekto.dev | ||
[OWNERS file]: OWNERS | ||
[Steering Committee election]: https://git.k8s.io/steering/elections.md | ||
[elections app]: https://elections.k8s.io | ||
[requesting an election]: teams/README.md | ||
[K8s-Infra]: /sig-k8s-infra/README.md |
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
# See the OWNERS docs at https://go.k8s.io/owners | ||
|
||
approvers: | ||
- jberkus | ||
- parispittman | ||
- jdumars | ||
- committee-steering | ||
- sig-contributor-experience-leads | ||
- coderanger | ||
- dims | ||
labels: | ||
- committee/steering |
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,85 @@ | ||
# Elections for Kubernetes Teams | ||
|
||
As Kubernetes now has access to self-hosted preference election software, | ||
we can host any number of elections for community groups, as they need them. | ||
|
||
## Who Can Request an Election | ||
|
||
Any "Kubernetes team" can request an election. This includes SIGs, Working Groups, | ||
User Groups, operational teams like Release Engineering or Enhancements, | ||
Subprojects, and even wholly subsidiary projects like Prow and ClusterAPI. | ||
Basically, if your group is all Kubernetes contributors, you can ask for an | ||
election. | ||
|
||
This does not include CNCF projects that are not components of Kubernetes and | ||
subject to Kubernetes governance. At some point, the CNCF may offer | ||
elections-as-a-service for those other projects. | ||
|
||
## How It Works | ||
|
||
Kubernetes uses an election tool called [Elekto], an instance of which is | ||
hosted at [elections.k8s.io]. Your team's election gets added as metadata | ||
to the kubernetes/community repository, and that automatically causes | ||
an election to appear in the app. | ||
|
||
You assign some of your team to be election administrators, and they are | ||
in charge of running the election. You also assemble and supply a list | ||
of GithubIDs for valid voters in the election, and the dates that candidate | ||
statements are due, followed by when voting opens and closes. Candidates | ||
join the election by publishing candidate profiles to your election directory. | ||
|
||
Depending on availability and the nature of your election, Contributor Comms | ||
may help publicize your election and remind voters of deadlines. Otherwise, | ||
you will do this. | ||
|
||
Once voting has closed, one of your election administrators can calculate | ||
the result of the election, and publish it either through the app or directly | ||
to your team's channel or mailing list. | ||
|
||
## Requesting by Issue | ||
|
||
If you are not already familiar with [Elekto], you should request an election | ||
by filing an [election request issue]. Please fill out all of the information | ||
in the template; it's required for the election. | ||
|
||
A member of the Elections Subproject will contact you and help you through | ||
setting up the election metadata. Please allow at least a week before your election | ||
needs to start. | ||
|
||
## Requesting by Pull Request | ||
|
||
If you are familiar with [Elekto] from prior elections, then you may create | ||
your own metadata files and submit your election as a pull request, which | ||
will make it happen faster. | ||
|
||
Each team election goes in its own folder in the kubernetes/community repo, | ||
using the path `elections/teams/team-name/election-name`, | ||
e.g. `elections/teams/clusterapi/leads-2022`. This folder should then have | ||
the following files in it, with complete contents. See the | ||
[Elekto administration docs] for more details. | ||
|
||
* election.yaml file defining the election | ||
* election-desc.md file with a text description of the election | ||
* voters.yaml with the initial list of voters | ||
|
||
The easiest path is to copy these files from another election and then | ||
modify them. The above will require you to have already decided your list of | ||
Election Admins and the dates for your election. | ||
|
||
A member of the Elections Subproject will then review your PR, offer any required | ||
data corrections, and approve it. | ||
|
||
## Additional Notes | ||
|
||
* Candidates do not have to be people; sometimes you may want to run an | ||
"election" between development alternatives or graphic design options. | ||
However, consider doing a survey for those instead. | ||
* Voters and Admins do not have to be Kubernetes Org Members. | ||
They do have to have GitHub IDs. | ||
|
||
|
||
[Elekto]: https://elekto.dev | ||
[elections.k8s.io]: https://elections.k8s.io | ||
[preference elections]: https://en.wikipedia.org/wiki/Preferential_voting | ||
[election request issue]: /issues/new/choose | ||
[Elekto administration docs]: https://elekto.dev/docs/administration/ |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters