Skip to content

Commit a7de9ec

Browse files
authored
Merge pull request #7395 from jberkus/2023EOs
Adds the 2023 Election officers
2 parents 1f7d6dd + a89e88e commit a7de9ec

File tree

6 files changed

+388
-0
lines changed

6 files changed

+388
-0
lines changed

elections/steering/2023/OWNERS

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# See the OWNERS docs at https://go.k8s.io/owners
2+
3+
# replace with election officers once election starts
4+
approvers:
5+
- committee-steering
6+
- kaslin
7+
- bridgetkromhout
8+
- dims
9+
labels:
10+
- committee/steering

elections/steering/2023/README.md

Lines changed: 311 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,311 @@
1+
# {{YEAR}} VOTERS GUIDE - KUBERNETES STEERING COMMITTEE ELECTION
2+
3+
## Important Links
4+
5+
* [Kubernetes Steering Committee]
6+
* [Steering Committee Election Charter]
7+
* [election app]
8+
* [election page]
9+
* [voter exception form]
10+
* [schedule](#schedule)
11+
12+
## Table of Contents
13+
14+
* [Purpose](#purpose)
15+
* [Changes](#changes)
16+
* [Background](#background)
17+
* [Eligibility](#eligibility)
18+
* [Voter Exception](#voter-exception)
19+
* [Schedule](#schedule)
20+
* [Candidacy](#candidacy-process)
21+
* [Voting](#voting-process)
22+
* [Officers](#officers)
23+
* [Election Decision](#decision)
24+
* [Nominees](#nominees)
25+
26+
## Purpose
27+
28+
The role of this election is to fill out the {{NUM (#)}} seats due for
29+
reelection this year on the [Kubernetes Steering Committee]. Each elected
30+
member will serve a two (2) year term.
31+
32+
## Election Platform
33+
34+
We will be using [Elekto] to conduct the election. Elekto relies entirely on GitHub Oauth for
35+
voting, and as such does not use email at all. Elekto also handles exceptions,
36+
eligibility checks, and other aspects of the election. See the [Elekto voting documentation]
37+
for how to use it.
38+
39+
## Background
40+
41+
This election will shape the future of Kubernetes as a community and project.
42+
While SIGs and WGs help shape the technical direction of the project, the
43+
[Steering Committee Charter] covers the health of the project and community
44+
as a whole. Some direct responsibilities of steering members to consider as
45+
you are deciding whether to run or who to vote for:
46+
47+
* Through the chartering review process, delegate ownership of, responsibility
48+
for and authority over areas of the project to specific entities
49+
* Define, evolve, and defend the non-technical vision / mission and the values
50+
of the project
51+
* Charter and refine policy for defining new community groups and establish
52+
transparency and accountability policies for such groups
53+
* Define and evolve project and group governance
54+
structures and policies
55+
* Act as a final non-technical escalation point for any Kubernetes repository
56+
* Request funds and other support from the CNCF (e.g. marketing, press, etc.)
57+
* Define and enforce requirements for community groups to be in good standing
58+
such as having an approved charter
59+
60+
For more context, please see the [current steering committee backlog] or a
61+
previous [governance meeting video] which led to this whole process.
62+
63+
## Eligibility
64+
65+
Please refer to the [Steering Committee Election Charter] for [Eligibility for candidacy]
66+
67+
Eligibility for voting in {{YEAR}} is defined as:
68+
69+
* People who had at least {{NUM}} contributions to the Kubernetes project over
70+
the past year, according to a snapshot taken {{DATE OF SNAPSHOT}} of the data driving
71+
the [devstats developer activity counts dashboard][devstats-dashboard],
72+
who are also [Org Members].
73+
Contributions include GitHub events like creating issues, creating PRs,
74+
reviewing PRs, commenting on issues, etc. For full details see
75+
[the SQL query used by devstats for developer activity counts][devstats-sql].
76+
77+
* Full members of the Code of Conduct Committee (CoCC) and Security Response Committee
78+
(SRC), as listed in [SIGs.yaml], at any time between August {{YEAR-1}} and {{YEAR}},
79+
regardless of contribution count.
80+
81+
* People who have submitted the [voter exception form] and are accepted by
82+
the election committee.
83+
84+
Corporate affiliation is applied after the election. If an organization finds
85+
itself with too many representatives it is up to those individuals to come
86+
to a consensus on who should serve on the committee.
87+
88+
### Voter exception
89+
90+
We *explicitly* believe that the above heuristic will be inaccurate
91+
and not represent the entire community. Thus we provide the form
92+
for those who have contributed to the project but may not meet the above
93+
criteria. Acceptance of a form submission will be defined by a simple
94+
majority vote, and the criteria used during this process will be used to
95+
help refine further elections.
96+
97+
If you otherwise qualify to vote but have not yet applied for Org Membership,
98+
then please [request an exception][voter exception form] (and please apply for
99+
Org Membership as well).
100+
101+
Note that, if you are already eligible, instead of the voter exception form you
102+
will see "You are already eligible to vote in the election."
103+
104+
Only contributions to projects and artifacts that fall under Steering
105+
Committee's governance will be considered for voter exception.
106+
107+
Examples of contributions that would be considered:
108+
* Slack admins who are not active in GitHub
109+
* K8s Infra staff doing mostly support
110+
* Working Group or User Group leads without a lot of GitHub activity
111+
112+
Examples of contributions that would NOT be considered:
113+
* Contributions to ecosystem projects and products
114+
* Organizing meetups or podcasts
115+
116+
### Schedule
117+
118+
<!-- While finalizing the dates in the schedule, ensure that:
119+
- The Steering Committee and candidate Q+A occurs at a public SC meeting
120+
(usually a Monday).
121+
- Deadline to submit voter exception forms and request a
122+
replacement ballot is ~3 days before voting closes.
123+
- Private announcement of results to SC members is at least ~2 days
124+
before private announcement to all candidates.
125+
- The interval between private announcement to all candidates and the
126+
public announcement is a weekend.
127+
-->
128+
129+
| Date | Event |
130+
|:------------------------|:----------------------------------------------------------------------|
131+
| DATE HERE | Steering Committee selects Election Committee |
132+
| DATE HERE | Announcement of Election and publication of voters.md |
133+
| DATE HERE | Steering Committee Q+A for the candidates |
134+
| DATE HERE | Candidate nominations due at the end of the day in AoE time |
135+
| DATE HERE | All candidate bios due at the end of the day in AoE time |
136+
| DATE HERE | Election Begins via email ballots |
137+
| DATE HERE | Deadline to submit voter exception requests |
138+
| DATE HERE | Election Closes at the end of the day in AoE time |
139+
| DATE HERE | Private announcement of Results to SC members not up for election |
140+
| DATE HERE | Private announcement of Results to all candidates |
141+
| DATE HERE | Public announcement of Results at Public Steering Committee Meeting |
142+
| DATE HERE | Election Retro |
143+
144+
Candidate nomination, bio, and election close deadlines will be done using Anywhere on Earth timing, meaning it is still valid to submit new nominations/bios/votes as long as it is still the last day anywhere on the planet (i.e. at the end of that day in UTC-12).
145+
146+
## Candidacy Process
147+
148+
**Nomination**
149+
150+
1. If you want to stand for the election, create an issue in this GitHub repo
151+
(kubernetes/community) with the title `Steering Committee Nomination: Your Name (@yourgithub)`.
152+
If you want to nominate someone else, you may do so, but PLEASE talk to them
153+
first.
154+
155+
2. After creating the issue, send an email to [email protected]
156+
with a link to the issue. The subject line of the email should be same as
157+
the title of the issue. This email should encourage people to second your
158+
nomination on GitHub, as +1s via email will not count. Here's an example email:
159+
160+
Hi! I'm nominating _candidate_ for steering committee this year.
161+
If you are an eligible voter and think they should run, please add your +1 as
162+
a comment on the issue _link_ and mention the organization you work for.
163+
While supportive replies are very nice, only comments on the issue will count
164+
towards their eligibility.
165+
166+
3. If you wish to accept a nomination from someone else, reply to the nomination
167+
**issue** saying something like "I accept the nomination".
168+
169+
4. Finally, the candidate closes the **issue** (`#NNN`) by opening a Pull Request
170+
to add their bio (see below). The PR body must contain the text `Fixes #NNN` to
171+
automatically close the issue once the PR is merged.
172+
173+
5. Create the PR for your bio by copying the `nomination-template.md` file in
174+
this directory, and creating a new file titled `candidate-githubid.md`. Fill
175+
out all the fields in the template, but avoid making and format changes.
176+
177+
**Endorsement**
178+
179+
Once nominated, you must get the endorsement of three (3) different eligible
180+
voters from three (3) different employers. If you are eligible to vote
181+
yourself, you count as one of the three. Endorsements from non-voting members
182+
does not count towards the final count.
183+
184+
[Eligible voters] may endorse candidates of their choosing by replying to the
185+
candidate's nomination **issue** saying something like "I endorse this nominee,
186+
and I work for <COMPANY>" or "+1". Please state that you an eligible voter,
187+
and include your employer's name so that we see can which candidates have
188+
sufficient endorsements.
189+
190+
Note that **only endorsements on the GitHub issue will be considered**.
191+
Endorsements on the nomination email will NOT be considered.
192+
193+
When a candidate has reached the necessary three endorsements, one of the
194+
Election Officers will announce that on the GitHub issue.
195+
196+
**Running**
197+
198+
Eligible candidates can submit a pull request with a biography in this
199+
directory with their platform and intent to run. This PR will copy `nomination-template.md`
200+
to a file named `candidate-YourName.md`. It will fill out the fields in
201+
that template.
202+
203+
All biographical statements should be brief and to the point, with a guideline of around
204+
**300 words** total for all text. If your statement is excessively long, you
205+
will be asked to abbreviate it before it is merged.
206+
207+
Please refer to the [prior candidate bios] for examples of content.
208+
Biography statements are optional.
209+
210+
Missed deadlines by the candidates will be addressed by the election committee
211+
on a per case basis to determine eligibility.
212+
213+
**Campaigning**
214+
215+
Please refer to the [Steering Committee Election Charter] and understand
216+
that we care deeply about [limiting corporate campaigning]. The election
217+
officers and members of the steering committee [pledge to recuse] themselves
218+
from any form of electioneering.
219+
220+
You should be running as a "brand free" individual, based on your contribution
221+
to the project as a member of this community, outside of whatever corporate
222+
roles you may hold.
223+
224+
## Voting Process
225+
226+
Contributors may check their voter eligibility at any time once the election
227+
process starts, by going to the [election app], logging in, navigating to
228+
the current year election, and seeing if the screen there says that they are eligible.
229+
That screen takes its data from the [voters.yaml] file.
230+
231+
If the app does not say that you are eligible, because you have worked on
232+
Kubernetes in a way that is NOT reflected in GitHub contributions, you can use
233+
the exception form built into the same app to ask to participate in the election.
234+
235+
Elections will be held using time-limited [Condorcet] ranking on [Elekto].
236+
The most preferred candidates will be elected to the open seats.
237+
238+
Employer diversity is encouraged, and thus maximal representation will be
239+
enforced as spelled out in the [Steering Committee Election Charter].
240+
241+
You will be ranking your choices of the candidates with an option for
242+
"no opinion". In the event of a tie, a non-involved SC member will flip
243+
a coin.
244+
245+
The election will open for voting starting on the dates specified on the calendar
246+
at the top of this document. You will be reminded that voting has opened by an
247+
email to kubernetes-dev, but no email is required for you to vote.
248+
249+
### Officers
250+
251+
The Steering Committee has selected the following people as [election officers]:
252+
253+
- Kaslin Fields
254+
- Davanum Srinivas
255+
- Bridget Kromhout
256+
257+
In addition, the following contributors are helping with the election:
258+
259+
- Alternate Officers: Christoph Blecker, Lachlan Evenson
260+
- Infra Liaison: {{K8s INFRA LIAISON}}
261+
- Contributor Comms Liaison: {{COMMS LIAISON}}
262+
263+
Please direct any questions via email to <[email protected]>.
264+
265+
### Decision
266+
267+
- First, the results are privately announced to the incumbent Steering Committee
268+
members (who are not up for election) and all the candidates.
269+
270+
- The newly elected body will be publicly announced in the scheduled monthly
271+
[public Steering Committee Meeting].
272+
273+
- Following the meeting, the raw voting results and winners will be published on the
274+
[Kubernetes Blog].
275+
276+
For more information, definitions, and/or detailed election process, please refer to
277+
the [Steering Committee Election Charter]
278+
279+
## Nominees
280+
281+
Nominees may be found in the [election app].
282+
283+
[Kubernetes Steering Committee]: https://github.com/kubernetes/steering
284+
[Steering Committee Charter]: https://github.com/kubernetes/steering/blob/master/charter.md
285+
[current steering committee backlog]: https://github.com/kubernetes/steering/projects/1
286+
[governance meeting video]: https://www.youtube.com/watch?v=ltRKXLl0RaE&list=PL69nYSiGNLP1pkHsbPjzAewvMgGUpkCnJ&index=23
287+
288+
[Steering Committee Election Charter]: https://git.k8s.io/steering/elections.md
289+
[Eligibility for voting]: https://github.com/kubernetes/steering/blob/master/elections.md#eligibility-for-voting
290+
[Eligibility for candidacy]: https://github.com/kubernetes/steering/blob/master/elections.md#eligibility-for-candidacy
291+
[limiting corporate campaigning]: https://github.com/kubernetes/steering/blob/master/elections.md#limiting-corporate-campaigning
292+
[pledge to recuse]: https://github.com/kubernetes/steering/blob/master/elections.md#steering-committee-and-election-officer-recusal
293+
294+
[Condorcet]: https://en.wikipedia.org/wiki/Condorcet_method
295+
[prior candidate bios]: https://github.com/kubernetes/community/tree/master/elections/steering/2022
296+
[election officers]: https://github.com/kubernetes/community/tree/master/elections#election-officers
297+
[Kubernetes Community Meeting]: https://github.com/kubernetes/community/blob/master/events/community-meeting.md
298+
[Kubernetes Blog]: https://kubernetes.io/blog/
299+
300+
[devstats-sql]: https://github.com/cncf/devstats/blob/master/metrics/shared/project_developer_stats.sql
301+
[devstats-dashboard]: https://k8s.devstats.cncf.io/d/13/developer-activity-counts-by-repository-group?orgId=1&var-period_name=Last%20year&var-metric=contributions&var-repogroup_name=All
302+
[Org Members]: https://github.com/kubernetes/community/blob/master/community-membership.md
303+
[Elekto]: https://elekto.dev
304+
[election app]: https://elections.k8s.io
305+
[Elekto voting documentation]: https://elekto.dev/docs/voting/
306+
[voters.yaml]: https://github.com/kubernetes/community/blob/master/elections/steering/2022/voters.yaml
307+
[election page]: https://elections.k8s.io/app/elections/steering---2022
308+
[voter exception form]: https://elections.k8s.io/app/elections/steering---2022/exception
309+
[public Steering Committee Meeting]: https://github.com/kubernetes/steering/#meetings
310+
[Eligible voters]: https://github.com/kubernetes/community/tree/master/elections/steering/2022#eligibility
311+
[SIGs.yaml]: https://github.com/kubernetes/community/tree/master/sigs.yaml
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
## RENAME THIS FILE TO election.yaml
2+
name: {{YEAR}} Steering Committee Election
3+
organization: Kubernetes
4+
start_datetime: {{DATETIME VOTING STARTS IN UTC}}
5+
end_datetime: {{DATETIME VOTING ENDS IN UTC}}
6+
no_winners: {{# BEING ELECTED}}
7+
allow_no_opinion: True
8+
delete_after: True
9+
show_candidate_fields:
10+
- employer
11+
- slack
12+
election_officers:
13+
- {{EO 1}}
14+
- {{EO 2}}
15+
- {{EO 3}}
16+
eligibility: Kubernetes Org members with {{NUM}} or more contributions in the last year can vote. See [the election guide](https://github.com/kubernetes/community/tree/master/elections/steering/{{YEAR}})
17+
exception_description: Not all contributions are measured by DevStats. If you have contributions that are not so measured, then please request an exception to allow you to vote via the Elekto application.
18+
exception_due: {{DATETIME 3-4 DAYS BEFORE VOTING ENDS}}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# Vote for the {{YEAR}} Steering Committee
2+
3+
As is now customary, this fall is [Steering Committee](https://github.com/kubernetes/steering) election season for Kubernetes. {{Number (#)}} elected members ({{LIST OF NAMES}}) will stay on for the remaining year of their terms, and there will be {{Number (#)}} positions open for election. Every election term will be 2 years. More complete information on the election may be found [in the voter's guide](https://github.com/kubernetes/community/tree/master/elections/steering/{{YEAR}}).
4+
5+
Instructions on using Elekto can be found [in its docs site](https://elekto.dev/docs/voting/)
6+
7+
If you’d like to vote or run for a seat, all details and next steps are outlined in the [election process doc](https://git.k8s.io/steering/elections.md) and this application. The application will be the single source of truth of information for this cycle. It will be updated live as new bios of candidates get committed.
8+
9+
Please pay attention to the [scheduled dates](https://github.com/kubernetes/community/tree/master/elections/steering/{{YEAR}}#schedule).
10+
11+
Eligibility for voting will be determined by {{NUM}} contributions to a Kubernetes project over the past year and [Kubernetes Org membership](https://github.com/kubernetes/community/blob/master/community-membership.md). Eligible voters will be shown as such by this site when logged in. If you should be eligible, but are not, you may also [file for an exception](https://elections.k8s.io/app/elections/steering---{{YEAR}}/exception).
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
-------------------------------------------------------------
2+
name:
3+
ID: GitHubID
4+
info:
5+
- employer: Your Employer or "Independent"
6+
- slack: slack handle
7+
-------------------------------------------------------------
8+
9+
<!-- Please make a copy of this template as "candidate-githubid.md" and save it to
10+
the election directory -->
11+
12+
## SIGS
13+
14+
- SIGS/WG/UGs you're a member of
15+
16+
## What I have done
17+
18+
## What I'll do
19+
20+
## Resources About Me
21+
22+
- Links to KubeCon or other conference talks or other related material
23+
- Links to social media

elections/steering/2023/voters.yaml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# {{YEAR}} Steering Committee Election
2+
##################################
3+
#
4+
# The process for determining elegible voters can be found in
5+
# https://github.com/kubernetes/community/tree/master/elections/steering/2022
6+
#
7+
# If you feel you meet the eligibility criteria but do not see your GitHub username
8+
# below, please fill out an exception request and the elections team will get back to
9+
# you as quickly as possible: https://elections.k8s.io/app/elections/steering---2022/exception
10+
#
11+
# History:
12+
# Log of changes to the file
13+
#
14+
eligible_voters:
15+
-

0 commit comments

Comments
 (0)