Skip to content

Commit d09814f

Browse files
authored
Merge pull request #2011 from castrojo/community-forum
KEP-0007 - Community forum
2 parents afc5171 + 9e4e30c commit d09814f

File tree

2 files changed

+199
-1
lines changed

2 files changed

+199
-1
lines changed

keps/NEXT_KEP_NUMBER

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
7
1+
8
Lines changed: 198 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,198 @@
1+
---
2+
kep-number: 0007
3+
title: A community forum for Kubernetes
4+
authors:
5+
- "@castrojo"
6+
owning-sig: sig-contributor-experience
7+
participating-sigs:
8+
reviewers:
9+
- "@jberkus"
10+
- "@joebeda"
11+
- "@cblecker"
12+
approvers:
13+
- "@parispittman"
14+
- "@grodrigues3"
15+
16+
editor: TBD
17+
creation-date: 2018-04-03
18+
last-updated: 2018-04-17
19+
status: provisional
20+
---
21+
22+
# A community forum for Kubernetes
23+
24+
## Table of Contents
25+
26+
* [Table of Contents](#table-of-contents)
27+
* [Summary](#summary)
28+
* [Motivation](#motivation)
29+
* [Goals](#goals)
30+
* [Non-Goals](#non-goals)
31+
* [Proposal](#proposal)
32+
* [User Stories [optional]](#user-stories)
33+
* [Story 1](#story-1)
34+
* [Story 2](#story-2)
35+
* [Implementation Details/Notes/Constraints](#implementation-details)
36+
* [Risks and Mitigations](#risks-and-mitigations)
37+
* [Graduation Criteria](#graduation-criteria)
38+
* [Implementation History](#implementation-history)
39+
* [Drawbacks](#drawbacks)
40+
41+
42+
## Summary
43+
44+
Kubernetes is large enough that we should take a more active role in growing our community. We need a place to call our own that can encompass users, contributors, meetups, and other groups in the community. Is there a need for something between email and real time chat that can fulfill this? The primary purpose of this KEP is to determine whether we can provide a better community forum experience and perhaps improve our mailing list workflow.
45+
46+
The site would be forum.k8s.io, and would be linked to from the homepage and major properties. [See KEP005](https://github.com/kubernetes/community/blob/master/keps/sig-contributor-experience/0005-contributor-site.md) for related information on a contributor website.
47+
48+
## Motivation
49+
50+
- We're losing too much information in the Slack ether, and most of it does not show up in search engines.
51+
- Mailing lists remain mostly the domain of existing developers and require subscribing, whereas an open forum allows people to drive by and participate with minimal effort.
52+
- There's an entire universe of users and developers that we could be reaching that didn't grow up on mailing lists and emacs. :D
53+
- Specifically, hosting our lists on google groups has some issues:
54+
- Automated filtering traps Zoom invites for SIG/WG leads
55+
- Cannot use non-google accounts as first class citizens (Google Account required to create/manage group, join a group)
56+
- Hard to search across multiple lists
57+
- There's no way to see all the kubernetes lists in one view, we have to keep them indexed in sigs.yaml
58+
- Filtering issues with the webui with countries that block Google
59+
- Non-kubernetes branding
60+
- As part of a generic community portal, this gives people a place to go where they can discuss Kubernetes, and a sounding board for developers to make announcements of things happening around Kubernetes that can reach a wider audience.
61+
- We would be in charge of our own destiny, (aka. The Slack XMPP/IRC gateway removal-style concerns can be partially addressed)
62+
- Software is 100% Open Source
63+
- We'd have full access to our data, including the ability to export all of it.
64+
- Kubernetes branded experience that would look professional and match the website and user docs look and feel, providing us a more consistent look across k8s properties.
65+
66+
### Goals
67+
68+
- Set up a prototype at discuss.k8s.io/discuss.kubernetes.io
69+
- Determine if the mailing list feature is robust enough to replace our google groups
70+
- References: [Mailing list roadmap](https://meta.discourse.org/t/moss-roadmap-mailing-lists/36432), [Discourse and email lists](https://meta.discourse.org/t/discourse-and-email-lists-like-google-groups/39915)
71+
- Heavy user engagement within 6 months.
72+
- Clear usage growth in metrics
73+
- Number of active users
74+
- Number of threads
75+
- Amount of traffic
76+
- SIG Contributor Experience can analyze analytics regularly to determine growth and health.
77+
- A feedback subforum would enable us to move quickly in addressing the needs of the community for the site.
78+
79+
### Non-Goals
80+
81+
- This is not a proposal to replace Slack, this is a proposal for a community forum.
82+
- The motivation of having searchable information that is owned by the Kubernetes community comes from voiced concerns about having so much of Kubernetes depend on Slack.
83+
- You are encouraged to propose a KEP for real-time communication if you would like to champion that, this KEP is not about Slack.
84+
- This does not replace Stack Overflow or kubernetes-users for user support.
85+
- However inevitably users who prefer forums will undoubtedly use it for support.
86+
- Strictly policing "this should be posted here, that should be posted there" won't work.
87+
- I believe our community is large enough where we can have a support section, and there are enough people to make that self sustaining, we can also encourage cross posting from StackOverflow to integrate things better as both sites have good integration points.
88+
- Over time as community interaction and knowledge base builds people will end up with a better experience than in #kubernetes-users on slack and will naturally gravitate there.
89+
- Other large OSS communities have a presence on both StackOverflow and do support on their user forums already and it doesn't appear to be a big issue.
90+
- This will not replace kubernetes-devel or SIG mailing lists.
91+
- They work, but we could experiment with mailing list integration. (See below)
92+
- Let's concentrate on an end-user experience for now, and allow SIGs and working groups who want a more user-facing experience to opt-in if they wish.
93+
94+
## Proposal
95+
96+
### User Stories
97+
98+
- A place for open ended discussion. For example "What CI/CD tools is everyone using?"
99+
- This would be closed as offtopic on StackOverflow, but would be perfect for a forum.
100+
- Post announcements about kubernetes core that are important for end users
101+
- An announcements subforum can be connected to Slack so that we have a single place for us to post announcements that get's propagated to other services.
102+
- Post announcements about related kubernetes projects
103+
- Give the ecosystem of tools around k8s a place to go and build communities around all the tools people are building.
104+
- "Jill's neat K8s project on github" is too small to have it's own official k8s presence, but it could be a post on a forum.
105+
- Events section for meetups and Kubecon
106+
- Sub boards for meetup groups
107+
- Sub boards for non-english speaking community members
108+
- Developer section can include:
109+
- Updated posting of community meeting notes
110+
- We can inline the youtube videos as well
111+
- Steering Committee announcements
112+
- Link to important SIG announcements
113+
- Any related user-facing announcements for our mentorship programs
114+
- Job board
115+
- This might be difficult to do properly and keep classy, but leaving it here as a discussion point.
116+
- reddit.com/r/kubernetes has some great examples
117+
- "What are you working on this week?" to spur activity
118+
- "So, what's the point of containerization?" would be hard to scope on StackOverflow, but watercooly enough for a forum.
119+
- [Top discussions](https://www.reddit.com/r/kubernetes/top/?t=month) over the last month.
120+
121+
### Implementation Details
122+
123+
- Software
124+
- Discourse.org - https://www.discourse.org/features
125+
- Free Software
126+
- Vibrant community with lots of integrations with services we already use, like Slack and Github
127+
- Rich API would allow us to build fun participatory integrations (User flair, contributor badges, etc.)
128+
- Facilities for running polls and other plugins
129+
- SSO with common login methods our community is already using.
130+
- Moderation system is user-based on trust, so we would only need to choose 5 people as admins and then as people participate they build trust and get more admin responsibilities.
131+
- Other developer and OSS communities such as Docker, Mozilla, Ubuntu, Twitter, Rust, and Atom are already effectively, software is mature and commonly used.
132+
- Friendly upstream with known track record of working with other OSS projects.
133+
- Hosting
134+
- We should host with a Discourse SaaS paid plan so we can concentrate on building the community and k8s itself.
135+
- [Pricing information](https://payments.discourse.org/pricing)
136+
- If other CNCF projects are interested in this we could help document best practices and do bulk pricing.
137+
- Schedule regular dumps of our data to cloud provider buckets
138+
- Exporting/Self Hosting is always available as an option
139+
- Google Analytics integration would allow us to see what users are interested in and give us better insight on what is interesting to them.
140+
- Data explorer so we can run ad hoc SQL queries and reports on the live data.
141+
- Mailing list import would allow us to immediately have a searchable resource of our past activity.
142+
143+
### Risks and Mitigations
144+
145+
- One more thing to check everyday(tm)
146+
- User fatigue with mailing lists, discourse, slack, stackoverflow, youtube channel, kubecon, your local meetup, etc.
147+
- This is why I am proposing we investigate if we can replace the lists as well, two birds with one stone.
148+
- Lack of developer participation
149+
- The mailing lists work, how suitable is Discourse to replace a mailing list these days? CNCF has tried Discourse in the past. See [@cra's post](https://twitter.com/cra/status/981548716405547008)
150+
- [Discussion on the pros and cons of each](https://meta.discourse.org/t/discourse-vs-email-mailing-lists/54298)
151+
- We have enough churn and new Working Groups that we could pilot a few, opt-in for SIGs that want to try it?
152+
- A community forum is asynchronous, whereas chat is realtime.
153+
- This doesn't solve our Slack lock-in concerns, but can be a good first step in being more active in running our own community properties so that we can build out own own resources.
154+
- Ghost have [totally migrated to Discourse](https://twitter.com/johnonolan/status/980872508395188224?s=12) and shut down their Slack.
155+
- We should keep an eye on this and see what data we can gleam from this. Engage with Ghost community folks to see what lessons they've learned.
156+
- Not sure if getting rid of realtime chat entirely is a good idea either.
157+
- [GDPR Compliance](https://www.eugdpr.org/)
158+
- Lots of data retention options in Discourse.
159+
- We'd need to engage with upstream on their plans for this, we would want to avoid having to manage this ourselves.
160+
161+
#### References from other projects
162+
163+
- [Chef RFC](https://github.com/chef/chef-rfc/blob/master/rfc028-mailing-list-migration.md)
164+
- [Blog post](https://coderanger.net/chef-mailing-list/) from a community member - good mailing list and community feedback here.
165+
- [Swift's Plan](https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20170206/031657.html) - Long discussion, worth reading
166+
- [HTM Forum](https://discourse.numenta.org/t/guidelines-for-using-discourse-via-email/314)
167+
- [Julia](https://discourse.julialang.org/t/discourse-as-a-mailing-list/57) - It might be useful for us to investigate pregenerating the mail addresses?
168+
- [How's Discourse working out for Ghost](https://forum.ghost.org/t/hows-discourse-working-out-for-ghost/947) - We asked them for some direct feedback on their progress so far
169+
170+
171+
## Graduation Criteria
172+
173+
There will be a feedback subforum where users can directly give us feedback on what they'd like to see. Metrics and site usage should determine if this will be viable in the long term.
174+
175+
After a _three month_ prototyping period SIG Contributor Experience will:
176+
177+
- Determine if this is a better solution than what we have, and figure out where this would fit in the ecosystem
178+
- There is a strong desire that this would replace an existing support venue, SIG Contributor Experience will weigh the options.
179+
- If this solution is not better than what we have, and we don't want to support yet another tool we we would shut the project down.
180+
- If we don't have enough information to draw a conclusion, we may decide to extend the evaluation period.
181+
- Site should have a moderation and administrative policies written down.
182+
183+
184+
## Implementation History
185+
186+
Major milestones in the life cycle of a KEP should be tracked in `Implementation History`.
187+
Major milestones might include
188+
189+
- the `Summary` and `Motivation` sections being merged signaling SIG acceptance
190+
- the `Proposal` section being merged signaling agreement on a proposed design
191+
- the date implementation started
192+
- the first Kubernetes release where an initial version of the KEP was available
193+
- the version of Kubernetes where the KEP graduated to general availability
194+
- when the KEP was retired or superseded
195+
196+
## Drawbacks
197+
198+
- Kubernetes has seen explosive growth without having a forum at all.

0 commit comments

Comments
 (0)