summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKubernetes Prow Robot <k8s-ci-robot@users.noreply.github.com>2019-10-16 11:35:30 -0700
committerGitHub <noreply@github.com>2019-10-16 11:35:30 -0700
commit16c085563b4f667e4e17bef2c930cfff67d6612f (patch)
treecd782842af45dddd95dc170e5afba1411ef79145
parentc0210ab035ea1fb4cee3b1b8d2608e2b9e88f8f3 (diff)
parentbfd0f2c3f0893a2c8ce16c575e3ecce196491274 (diff)
Merge pull request #4148 from castrojo/2019-retro-fixes
2019 Steering Election retro fixes
-rw-r--r--events/elections/2020/OWNERS9
-rw-r--r--events/elections/2020/README.md167
-rw-r--r--events/elections/2020/biotemplate.md18
-rw-r--r--events/elections/2020/templates/election-templates.md105
-rw-r--r--events/elections/README.md63
5 files changed, 333 insertions, 29 deletions
diff --git a/events/elections/2020/OWNERS b/events/elections/2020/OWNERS
new file mode 100644
index 00000000..bbb97ad1
--- /dev/null
+++ b/events/elections/2020/OWNERS
@@ -0,0 +1,9 @@
+# See the OWNERS docs at https://go.k8s.io/owners
+
+reviewers:
+approvers:
+emeritus_approvers:
+ - castrojo
+ - idvoretskyi
+ - mrbobbytables
+ - bgrant0607 \ No newline at end of file
diff --git a/events/elections/2020/README.md b/events/elections/2020/README.md
new file mode 100644
index 00000000..3e809c93
--- /dev/null
+++ b/events/elections/2020/README.md
@@ -0,0 +1,167 @@
+# 2020 VOTERS GUIDE - KUBERNETES STEERING COMMITTEE ELECTION
+
+## Purpose
+
+The role of this election is to fill out the three (3) seats due for
+reelection this year on the [Kubernetes Steering Committee]. Each elected
+member will serve a two (2) year term.
+
+## Background
+
+This election will shape the future of Kubernetes as a community and project.
+While SIGs and WGs help shape the technical direction of the project, the
+[Steering Committee Charter] covers the health of the project and community
+as a whole. Some direct responsibilities of steering members to consider as you are deciding
+whether to run or who to vote for:
+
+* Through the chartering review process, delegate ownership of, responsibility
+ for and authority over areas of the project to specific entities
+* Define, evolve, and defend the non-technical vision / mission and the values
+ of the project
+* Charter and refine policy for defining new community groups and establish transparency and accountability policies for such groups
+* Define and evolve project and group governance
+ structures and policies
+* Act as a final non-technical escalation point for any Kubernetes repository
+* Request funds and other support from the CNCF (e.g. marketing, press, etc.)
+* Define and enforce requirements for community groups to be in good standing
+ such as having an approved charter
+
+For more context, please see the [current steering committee backlog] or a
+previous [governance meeting video] which led to this whole process.
+
+## Eligibility
+
+Please refer to the [Steering Committee Election Charter] for:
+
+- [Eligibility for candidacy]
+- [Eligibility for voting] and [Eligible voters] list (not in charter)
+
+Corporate affiliation is applied after the election. If an organization finds itself with too many representatives it is up to those individuals to come to a consensus on who should serve on the committee.
+
+### Schedule
+
+| Date | Event |
+| ------------ | ------------------------ |
+| August XX | Announcement of Election |
+| August XX | Steering Committee Meeting with Q+A with the candidates and community |
+| September XX | All candidate bios and voting exception forms due by 0000 UTC (5pm PST) |
+| ~1 week | Election prep week (voters.md validation and CIVS setup and testing)
+| September XX | Election Begins via email ballots |
+| October XX | Election Closes by 0000 UTC (5pm PST) |
+| October XX | Announcement of Results at Community Meeting |
+
+## Candidacy Process
+
+**Nomination**
+
+If you want to stand for election, send an email to kubernetes-dev@googlegroups.com
+with the subject line "Steering Committee Nomination: Your Name (@yourgithub)".
+
+If you want to nominate someone else, you may do so, but PLEASE talk to them
+first.
+
+If you wish to accept a nomination from someone else, reply to the nomination
+email saying something like "I accept the nomination".
+
+**Endorsement**
+
+Once nominated, you must get the endorsement of three (3) different eligible
+voters from three (3) different employers. If you are eligible to vote
+yourself, you count as one of the three. Endorsements from non-voting members does not count towards the final count.
+
+[Eligible voters] may endorse candidates of their choosing by replying to the
+candidate's nomination email saying something like "I endorse this nominee"
+or "+1". Please specify your github ID and state that you are in voters.md.
+
+**Running**
+
+Eligible candidates can submit a pull request with a biography in this
+directory with their platform and intent to run. This statement is
+**limited to 300 words** and must follow the format of `firstnamelastname.md`.
+Please refer to the [2018 candidate bios] for examples. Biography statements are optional.
+
+Missed deadlines by the candidates will be addressed by steering on a per case basis to determine eligibility.
+
+**Campaigning**
+
+Please refer to the [Steering Committee Election Charter] and understand
+that we care deeply about [limiting corporate campaigning]. The election
+officers and members of the steering committee [pledge to recuse] themselves
+from any form of electioneering.
+
+You should be running as a "brand free" individual, based on your contribution
+to the project as a member of this community, outside of whatever corporate
+roles you may hold.
+
+## Voting Process
+
+Kubernetes members in [voters.md] will receive a ballot via email. If you are
+not on that list and feel you have worked on Kubernetes in a way that is NOT
+reflected in GitHub contributions, you can use the [voter exemption form] to ask
+to participate in the election.
+
+Elections will be held using time-limited [Condorcet] ranking on [CIVS]
+using the [IRV method]. The top vote getters will be elected to the open
+seats.
+
+Employer diversity is encouraged, and thus maximal representation will be
+enforced as spelled out in the [Steering Committee Election Charter].
+
+You will be ranking your choices of the candidates with an option for
+"no opinion". In the event of a tie, a coin will be flipped.
+
+The election will open for voting the morning September 28, 2019 via email and
+end two weeks after on October 2, 2019 at 00:00am UTC. You will receive an email
+to the address on file at the start of the election from "Kubernetes (CIVS Poll
+Supervisor) `<civs@cs.cornell.edu>`, please whitelist if necessary. Detailed
+voting instructions will be addressed in email and the CIVS polling page. Please
+note that email ballots might be unreliable, so you are encouraged to contact
+the election officials if you do not receive a ballot by September 29.
+
+### Officers
+
+The Steering Committee has selected the following people as [election officers]:
+- Name, GitHub handle, affiliation.
+
+Please direct any questions via email to <election@k8s.io>.
+
+### Decision
+
+The newly elected body will be announced in the weekly [Kubernetes Community Meeting]
+on October 3, 2019.
+
+Following the meeting, the raw voting results and winners will be published on the
+[Kubernetes Blog].
+
+For more information, definitions, and/or detailed election process, please refer to
+the [Steering Committee Election Charter]
+
+## Nominees
+
+
+| Name | Organization/Company | GitHub |
+|:------------------------------------------:|:--------------------:|:----------------------------------------------------:|
+| [Jane Containerface](./biotemplate.md) | ExampleCo | [@github](https://github.com) |
+
+[Kubernetes Steering Committee]: https://github.com/kubernetes/steering
+[Steering Committee Charter]: https://github.com/kubernetes/steering/blob/master/charter.md
+[current steering committee backlog]: https://github.com/kubernetes/steering/projects/1
+[governance meeting video]: https://www.youtube.com/watch?v=ltRKXLl0RaE&list=PL69nYSiGNLP1pkHsbPjzAewvMgGUpkCnJ&index=23
+
+[Steering Committee Election Charter]: https://git.k8s.io/steering/elections.md
+[Eligibility for voting]: https://github.com/kubernetes/steering/blob/master/elections.md#eligibility-for-voting
+[Eligibility for candidacy]: https://github.com/kubernetes/steering/blob/master/elections.md#eligibility-for-candidacy
+[limiting corporate campaigning]: https://github.com/kubernetes/steering/blob/master/elections.md#limiting-corporate-campaigning
+[pledge to recuse]: https://github.com/kubernetes/steering/blob/master/elections.md#steering-committee-and-election-officer-recusal
+
+[Condorcet]: https://en.wikipedia.org/wiki/Condorcet_method
+[CIVS]: http://civs.cs.cornell.edu/
+[IRV method]: https://www.daneckam.com/?p=374
+
+[2018 candidate bios]: https://github.com/kubernetes/community/tree/master/events/elections/2018
+[election officers]: https://github.com/kubernetes/community/tree/master/events/elections#election-officers
+[Kubernetes Community Meeting]: https://github.com/kubernetes/community/blob/master/events/community-meeting.md
+[Kubernetes Blog]: https://kubernetes.io/blog/
+[eligible voters]: https://github.com/kubernetes/community/blob/master/events/elections/2019/voters.md
+[voter exemption form]: https://www.surveymonkey.com/r/k8s-sc-election-2019
+[voters.md]: ./voters.md
diff --git a/events/elections/2020/biotemplate.md b/events/elections/2020/biotemplate.md
new file mode 100644
index 00000000..ac734856
--- /dev/null
+++ b/events/elections/2020/biotemplate.md
@@ -0,0 +1,18 @@
+# Your Name
+
+- GitHub: https://github.com/
+- Affiliation: Where you work or independent
+- Slack: @you
+- Twitter/Other: Add lines as appropriate
+
+## SIGS
+
+- SIGS/WG/UGs you're a member of
+
+## What I have done
+
+## What I'll do
+
+## Resources About Me
+
+- Links to KubeCon or other conference talks or other related material
diff --git a/events/elections/2020/templates/election-templates.md b/events/elections/2020/templates/election-templates.md
new file mode 100644
index 00000000..b27b4def
--- /dev/null
+++ b/events/elections/2020/templates/election-templates.md
@@ -0,0 +1,105 @@
+Adjust this template as necessary:
+
+## Election Announcement
+
+It’s that time of year again!
+
+As is now customary, this fall is election season for Kubernetes. Four(4) elected members (cblecker, derekwaynecarr, nikhita, parispittman) will stay on for the remaining year of their terms, and there will be three(3) positions open for election. Every election term will be 2 years. We will be posting regular updates to kubernetes-dev with deadlines and instructions as well as providing quick updates during the regular Thursday community meetings until completion of the election.
+
+If you’d like to vote or run for a seat, all details and next steps are outlined in the election process doc[3] and voters guide.[4] The voters guide will be the single source of truth of information for this cycle. It will be updated live as new bios of candidates flow through over the next four weeks. Please pay attention to the scheduled dates:
+
+| schedule here |
+
+As mentioned in the process doc, eligibility for voting will be determined by 50 contributions to a Kubernetes project over the past year, which will result in you getting a ballot emailed to you when the election starts. For those of you doing work within the Kubernetes project / community that is NOT measured in GitHub, you can apply for participation via the voter exemption form. This is to ensure that non-code contributors can participate, so please don’t hesitate to use the form.
+
+Resources:
+
+[1] Steering Committee - who sits on the committee and terms, their projects and meeting info
+[2] Steering Committee Charter - this is a great read if you’re interested in running (or assessing for the best candidates!)
+[3] Election Process
+[4] Voters Guide! - Updated on a rolling basis. This guide will always have the latest information throughout the election cycle. The complete schedule of events and candidate bios will be housed here.
+
+On behalf of the election officers,
+
+Name (github), Name (github), etc
+
+If you have questions, please feel free to ask on the list; otherwise, you can reach the Election Officials at election@kubernetes.io.
+
+## Election Status Updates
+
+Post these weekly to kubernetes-dev
+
+$greeting,
+
+The Kubernetes Steering Committee Election begins today/is underway! Here's what you need to know as we begin prep to send out the ballots.
+
+ Ballots are going out today via email. Expect a mail from "Kubernetes Election Officers (CIVS poll supervisor) <ci...@cs.cornell.edu>" with a subject like "Poll: Kubernetes Steering Committee Election 2020"
+ Email can be unreliable, so generally expect them this morning, if you haven't received one by the end of the day let us know, sending you a new ballot is easy for us.
+
+The candidates and links to their bios are all available here: https://git.k8s.io/community/events/elections/2020
+
+// Voting
+
+- You should check to see if you are in voters.md. Your github handle MUST BE IN THIS DOCUMENT to vote: https://github.com/kubernetes/community/blob/master/events/elections/2020/voters.md
+
+- If you feel you have made enough contributions to be able to vote but you are NOT in voters.md, you need to fill out this form by XXX: https://www.surveymonkey.com/r/k8s-sc-election-2019
+
+- If you are planning on running for Steering Committee please see this section of the documentation, you need to PR your biography into the repo by XXX: https://github.com/kubernetes/community/tree/master/events/elections/2019#candidacy-process
+
+
+// Schedule
+
+The next deadline is XXX , you have until then to complete your ballot. If you have any questions, let us know.
+
+| September 11 | All candidate bios and voting exception forms due by 0000 UTC (5pm PST) |
+| September 18 | Election Begins via email ballots |
+| October 2 | Election Closes by 0000 UTC (5pm PST) |
+| October 3 | Announcement of Results at Community Meeting |
+
+
+// Resources
+
+Voters Guide - https://git.k8s.io/community/events/elections/2020
+Steering Committee - https://git.k8s.io/steering
+Steering Committee Charter - https://git.k8s.io/steering/charter.md
+Election Process - https://git.k8s.io/steering/elections.md
+
+On behalf of the election officers,
+Name (github), Name (github), etc
+
+If you have questions, please feel free to ask on the list; otherwise, you can reach the Election Officials at election@kubernetes.io
+
+## Election Results
+
+This mail only goes to the incumbent members of steering who are NOT running that year!
+
+$greeting,
+
+Please keep this information private!
+
+An incumbent steering member announces the results. At least one of you please come to the community meeting tomorrow to make the announcement. Let us know if you cannot.
+
+After the community meeting, we'll publish this blog post (feedback encouraged).
+
+A note on the results, as per previous elections we plan on announcing/celebrating the winners and only publishing their names, GitHub handles, and affiliations. We purposely don't mention rankings or the results of the rest of the field.
+
+We will quietly check in the full election results (with anonymized ballots) into the community repo in the next few weeks. This will satisfy transparency requirements while being respectful to the other candidates.
+
+Results and data from the 2019 Steering Committee election:
+
+- 879 eligible voters as determined by:
+- 864 with 50+ DevStats recorded contributions between 2018-08-15 and 2019-08-15.
+- Of the 864, no email address could be determined for 27 of them.
+- 15 exception voters.
+
+Emails were obtained from the CNCF's gitdm along with some manual reconciliation and comparison with the kubernetes-dev mailing list.
+
+377 total votes cast as of the close on October 2rd at 5pm PT (43%)
+
+Last Year's data: 700 eligible voters with 307 votes cast (44%)
+
+
+Final Results:
+
+(paste these from CIVS)
+1. Jane Containerface (@github) (Condorcet winner: wins contests with all other choices)
diff --git a/events/elections/README.md b/events/elections/README.md
index dbae60af..3ba80070 100644
--- a/events/elections/README.md
+++ b/events/elections/README.md
@@ -9,7 +9,7 @@ eligibility for voting, eligibility for candidacy, maximal representation, etc.
- Steering Committee selects the Election Officers
- Dates should be in UTC time, use a [world clock service](https://www.timeanddate.com/worldclock/fixedtime.html?msg=Election+Test&iso=20181101T00&p1=%3A&ah=10) in documentation and email announcements so that end users see the correct time and date based on where they live.
-- The steering committee was structured in a way so that it does not turn over all at once with staggered terms, therefore all new elections are for two(2) year terms.
+- The steering committee was structured in a way so that it does not turn over all at once with staggered terms, therefore all new elections are for two(2) year terms
### Election Officers select the following dates
@@ -21,24 +21,26 @@ eligibility for voting, eligibility for candidacy, maximal representation, etc.
- Election period start
- It takes time to create the poll in CIVS, so don’t give a specific hour, instead say “Morning of the 10th” or something vague.
- Election period stop
- - CIVS needs to be manually stopped, so an actual person needs to click for the poll to stop, so this needs to be a human friendly time.
+ - CIVS needs to be manually stopped, so an actual person needs to click for the poll to stop, so this needs to be a human friendly time
- Results announcement date
- Draft dates will then be passed to the Steering Committee for final approval
+- Once Steering approves the dates election officers will work with SIG Contributor Experience to put the election dates on the community calendar
+- Election officers coordinate with SIG Docs and appropriate subprojects to coordinate election results blog post
## Process
1. Election officers prepare the election repository
- Make github.com/kubernetes/community/elections/$YEAR
- - Make github.com/kubernetes/community/elections/$YEAR/README.md, this is the voter’s guide.
- - Copy over the voter’s guide from the previous year. The voter’s guide is the single source of truth for the election that year! All announcements and notices should link to this document.
- - Update with new dates, candidates, and procedures (if necessary).
+ - Make github.com/kubernetes/community/elections/$YEAR/README.md, this is the voter’s guide
+ - Copy over the voter’s guide from the previous year. The voter’s guide is the single source of truth for the election that year! All announcements and notices should link to this document
+ - Update with new dates, candidates, and procedures (if necessary)
- Make github.com/kubernetes/community/elections/$YEAR/OWNERS with all the election officers for the election year.
- Make github.com/kubernetes/community/elections/$YEAR/voters.md
- Initial list is generated via the [eligibility for voting requirements][eligible to vote]
- - Officers will update this list as voters submit the voting exemption form.
- - Announce to the candidates to submit PRs with their platform statement (if they desire), 300 word limit. Each platform document lives in the elections/$YEAR directory, with the voter’s guide (README.md) acting as the index.
- - Ensure officers are members of election@kubernetes.io Google Group and that prior officers are removed.
- - Start a shared postmortem document to log the lessons learned so this process can be improved.
+ - Officers will update this list as voters submit the voting exemption form
+ - Announce to the candidates to submit PRs with their platform statement (if they desire), 300 word limit. Each platform document lives in the elections/$YEAR directory, with the voter’s guide (README.md) acting as the index
+ - Ensure officers are members of election@kubernetes.io Google Group and that prior officers are removed
+ - Start a shared postmortem document to log the lessons learned so this process can be improved
2. Announce voting schedule to community
@@ -51,28 +53,31 @@ eligibility for voting, eligibility for candidacy, maximal representation, etc.
- Name of the poll - “Kubernetes Steering Committee Election for $YEAR”
- Name of supervisor - “Kubernetes Election Officers”
- Email - election@kubernetes.io : Googlegroups doesn’t work here. This mail should resolve to the election officers.
-- Date and Time: Write in the date and time the election will stop. This field is not programmatic, the election is stopped by hand, so you can write this in plain text.
-- Description: Use the following text, modify it for either 3 or 4 positions, depending on the amount of open seats: This election is to nominate the steering committee for the Kubernetes project. Order the candidates by preference, the top $NUMBER candidates will be selected. Please see the voter's guide for more information. PLEASE NOTE: "No opinion" is also a voting option if you do not feel comfortable ranking every single candidate.
+- Date and Time: Write in the date and time the election will stop. This field is not programmatic, the election is stopped by hand, so you can write this in plain text
+- Description: Use the following text, modify it for either 3 or 4 positions, depending on the amount of open seats: This election is to nominate the steering committee for the Kubernetes project. Order the candidates by preference, the top $NUMBER candidates will be selected. Please see the voter's guide for more information. PLEASE NOTE: "No opinion" is also a voting option if you do not feel comfortable ranking every single candidate
- Add the candidate list to the form
- How many choices will win: This number needs to be set to the amount of open seats of a given election
- More options, check the boxes for:
- - Do not release results to all voters.
- - Enable detailed ballot reporting.
- - Allow voters to select “no opinion” for some choices.
-- Click create poll, this will send election@kubernetes.io an email with instructions.
-- It will send you a link to “Poll Control”, bookmark this generated page as this is where you will add voters and also resend ballots to people if their ballot gets lost or filtered.
-- This page is where the “Start Poll” and “Stop Poll” buttons are, start the poll.
+ - Do not release results to all voters
+ - Enable detailed ballot reporting
+ - Allow voters to select “no opinion” for some choices
+- Click create poll, this will send election@kubernetes.io an email with instructions
+- It will send you a link to “Poll Control”, bookmark this generated page as this is where you will add voters and also resend ballots to people if their ballot gets lost or filtered
+- This page is where the “Start Poll” and “Stop Poll” buttons are, start the poll
- WARNING: This is the point of no return:
- - Paste in the registered voters and click add voters.
- - It will mail the ballots to the participants.
- - It does duplicate detection so multiple entries are fine.
- - This might take a while and the web page will not update, this has taken up to 10m in the past as it's sending each ballot. Don't panic or refresh the page.
-- Leave the poll open for the duration of voting.
- - Remember to send a 24 hour reminder before closing the poll.
- - Click "Stop poll" at the end of the election, wait a minute then refresh the page for results.
- - Select "Condorcet IRV" on the right hand side of the page to select the results method.
- - Mail results of the election to the steering committee private list and await instructions.
-- Push election results into the community repo under events/elections _after_ the Steering Commmittee has announced the results.
+ - Paste in the registered voters and click add voters
+ - It will mail the ballots to the participants
+ - It does duplicate detection so multiple entries are fine
+ - This might take a while and the web page will not update, this has taken up to 10m in the past as it's sending each ballot. Don't panic or refresh the page
+- Leave the poll open for the duration of voting
+ - Remember to send a 24 hour reminder before closing the poll
+ - Click "Stop poll" at the end of the election, check the previously generated URL that CIVS mailed you when you started the poll
+ - Select "Condorcet IRV" on the right hand side of the page to select the results method
+- Reporting
+ - Mail results of the election to the incumbent Steering Committee members who are NOT running in the election
+ - Steering Committee announces the results to the entire community at once at the end of the election, currently during the Community Meeting
+ - Submit election results blog to the official Kubernetes blog after the announcement
+- Push election results into the community repo under events/elections _after_ the Steering Commmittee has announced the results, typically a week after the election
## Roles and Responsibilities:
@@ -87,6 +92,8 @@ eligibility for voting, eligibility for candidacy, maximal representation, etc.
### Election Officers
- Must be [eligible to vote]
+- May be delegated election-related tasks from the Steering Committee as they see fit
+- Post on behalf of the steering committee if necessary
- Cannot be running for office in the current election
- Cannot be a current member of the steering committee that is a candidate in the election or whose term extends beyond the election period
- [Recuse themselves from public election activities][election-recusal] except those required to run the election
@@ -109,10 +116,8 @@ eligibility for voting, eligibility for candidacy, maximal representation, etc.
- Accept/Review pull requests for the candidate platforms
- The community generally assists in helping with PRs to give the candidates a quick response time
- Update the community regularly via the community meeting
-- Post on behalf of the steering committee if necessary
- Post deadlines and reminders to the kubernetes blog, kubernetes-dev, twitter, and slack.
- Reissue ballots from CIVS to voters who might have not received their ballot.
-- Miscellaneous election related tasks as decided by the steering committee.
- Guard the privacy of the email addresses of voters
- It is impossible for the election officers to see the results of the election until the election ends; for purposes of transparency with the community it is encouraged to release some statistics during the election (ie. “65% of the community has voted so far!”)
- Ensure that the election results are handed over to the steering committee.