mirror of https://github.com/knative/community.git
Remove ideas list, add guides (#1252)
This commit is contained in:
parent
8b5e75706e
commit
e5c5ef070c
|
@ -4,50 +4,77 @@ Knative community is participating in [Google Summer of Code](https://summerofco
|
|||
|
||||
As CNCF is driving the participation, Knative community is following their guidelines for the program in general. Please check [CNCF mentoring repository](https://github.com/cncf/mentoring) for up-to-date information.
|
||||
|
||||
However, we collect ideas in our community until Google announces the program and accepts CNCF as a participating organization. Afterwards, all the ideas here will be copied to CNCF mentoring repository.
|
||||
List of ideas for 2023 is in CNCF ideas document: [https://github.com/cncf/mentoring/blob/main/summerofcode/2023.md#knative](https://github.com/cncf/mentoring/blob/main/summerofcode/2023.md#knative)
|
||||
|
||||
## Ideas
|
||||
- [Multiple Knative Eventing control planes](#multiple-knative-eventing-control-planes)
|
||||
- [Eventing Sender Identity](#eventing-sender-identity)
|
||||
- [NetworkPolicy support for Knative Serving](#networkpolicy-support-for-knative-serving)
|
||||
- [Improving Observability in Knative Eventing](#improving-observability-in-knative-eventing)
|
||||
## Contributors
|
||||
|
||||
### Multiple Knative Eventing control planes
|
||||
If you are a contributor looking forward to participating in the GSoC 2023 with the Knative community, feel free to
|
||||
browse the growing idea list at the CNCF [ideas page](https://github.com/cncf/mentoring/blob/main/summerofcode/2023.md#knative).
|
||||
|
||||
- Description: We see more users asking for complete isolation in Knative Eventing deployments. While there are Knative Eventing components that support isolated data planes, we are interested in to see isolated control planes as well. There were discussions about this in the community before and many of the asks were left unadressed. However, we have tools that support multitenancy today, such as [kcp](https://github.com/kcp-dev/kcp). We see this project as an experiment.
|
||||
- Expected outcome: Finding issues blocking multiple control planes, and possibly fixing them.
|
||||
- Expected size of the project: 350h
|
||||
- Difficulty rating: Hard
|
||||
- Recommended Skills: Golang, Kubernetes, Knative, Kubernetes Controllers
|
||||
- Mentor(s): Ali Ok @aliok
|
||||
- Upstream Issue (URL): https://github.com/knative/eventing/issues/6601
|
||||
What should I do before to get accepted:
|
||||
|
||||
### Eventing Sender Identity
|
||||
* Check out the program [website](https://summerofcode.withgoogle.com/).
|
||||
* Understand how the program [works](https://summerofcode.withgoogle.com/how-it-works).
|
||||
* Read the [contributor guide](https://google.github.io/gsocguides/student/) of the program.
|
||||
* Make sure you are [eligible](https://summerofcode.withgoogle.com/terms/contributor) to participate in the program.
|
||||
* Try Knative by going through the [getting started](https://knative.dev/docs/getting-started/) page.
|
||||
* Interact with the community using the [communication channels](#communication).
|
||||
* Browse the [idea list](https://github.com/cncf/mentoring/blob/main/summerofcode/2023.md#knative). The earlier, the better.
|
||||
* Check out the Knative community [website](https://knative.dev/docs/community/).
|
||||
|
||||
- Description: Leveraging Kubernetes Service Account identity and OAuth audiences, users should be able to configure Knative Eventing components to authenticate CloudEvent deliveries using the identity of the Subscription, Trigger, or Source. Additionally, Brokers and Channels can leverage the OAuth identity associated with incoming CloudEvents to implement policy.
|
||||
- Expected outcome: At least the following components are able to use service accounts for authentication: in-memory-channel, multitenant broker, apiserver source, ping source. Ideally, the primitives from this project could be re-used by other channel and broker implementations.
|
||||
- Expected size of the project: 360h
|
||||
- Difficulty rating: Medium
|
||||
- Recommended Skills: Golang, Kubernetes, OAuth or OIDC
|
||||
- Mentor(s): Evan Anderson @evankanderson
|
||||
- Upstream Issue (URL): https://github.com/knative/eventing/issues/5047
|
||||
Tips:
|
||||
|
||||
### NetworkPolicy support for Knative Serving
|
||||
* Ask for help if you need assistance. The community will select the contributors who are not only good technically.
|
||||
The community expects the contributors to have interaction.
|
||||
* The preferred way of asking for assistance is using the [communication channels](#communication). In specific cases,
|
||||
you can privately contact the mentor if you feel uncomfortable about the public communication.
|
||||
* Start exploring early!
|
||||
* Have good interaction, so that the community recognizes your name! Start by introducing yourself to the community.
|
||||
* Be polite!
|
||||
* Help others! Help like-minded potential contributors in the public channels.
|
||||
* Check out the projects from [previous years](https://summerofcode.withgoogle.com/archive).
|
||||
|
||||
- Description: Implement port-level network routing for Knative Serving internal addresses. This will be an extension of https://github.com/knative-sandbox/net-kourier/pull/852 to other Knative Ingress implementations, along with implementation of default NetworkPolicies for the activator and Knative Revisions to enforce that requests are routed through the Knative Ingress.
|
||||
- Expected outcome: Users will be able to use NetworkPolicy to restrict access to their Knative Services at a network (L4 / TCP) level.
|
||||
- Expected size of the project: 320h
|
||||
- Difficulty rating: Hard
|
||||
- Recommended Skills: Golang, Kubernetes networking, Envoy or protocol familiarity with HTTP
|
||||
- Mentor(s): Evan Anderson @evankanderson
|
||||
- Upstream Issue (URL): https://github.com/knative/serving/issues/6520
|
||||
|
||||
### Improving Observability in Knative Eventing
|
||||
## Mentors
|
||||
|
||||
- Description: We see users struggling to observe what happens inside Knative Eventing and we want that to be improved by providing easy to use tools. The idea is divided into stages. First stage is to write code (python and/or golang) that implements a plugin for Knative command-line interface (kn CLI). The plugin takes output from observability data gathered by Knative and answers simple questions such as: where did my event go based on event id? Show clusters/groups of common traces and show exceptions? The plugin should be able to verify that necessary Knative configuration for observability is enabled, access server side components. Possible next stages may be to create active probes that add to CLI capability to send probe events to specific Knative components (such as Kafka source or broker) and report if they work as expected (health checks). Another area to explore is using conversational AI to improve the plugin by using AI to parse natural language input and/or process available observability data for common Knative questions. As part of the work there may be proposed fixes and improvements for identified gaps in Knative observability that may be discovered when testing the plugin.
|
||||
- Expected outcome: Improved Knative Eventing observability, improved documentation and published one or more blog posts
|
||||
- Expected size of the project: 320h
|
||||
- Difficulty rating: Medium
|
||||
- Recommended Skills: Python, data science skills, Golang, Kubernetes
|
||||
- Mentor(s): Aleksander Slominski @aslom, Ansu Varghese @aavarghese, and Lionel Villard @lionelvillard
|
||||
- Upstream Issue (URL): https://github.com/knative/eventing/issues/6247
|
||||
Any Knative community member can submit ideas and volunteer to mentor contributors. However, Google gives a limited number of
|
||||
slots, so, the community will have to select the best idea+contributor+mentor combination.
|
||||
|
||||
What should I do in the application period?
|
||||
|
||||
* First of all, make sure you are aware of the expectations from you (see below).
|
||||
* Check out the program [website](https://summerofcode.withgoogle.com/).
|
||||
* Understand how the program [works](https://summerofcode.withgoogle.com/how-it-works).
|
||||
* Read the [mentor guide](https://google.github.io/gsocguides/mentor/) of the program.
|
||||
* Add your idea to the [idea list](https://github.com/cncf/mentoring/blob/main/summerofcode/2023.md#knative). The earlier, the better.
|
||||
|
||||
Expectations from mentors:
|
||||
|
||||
* Make sure you have the capacity to mentor a contributor. It is not the entire Knative community mentoring a
|
||||
contributor; it is YOU mentoring the contributor. This depends on the complexity of the project and the technical
|
||||
knowledge of the contributor, but expect to spend 4 hours a week as a general rule.
|
||||
* Help the contributor to not only finish their projects but also teach about matters that are part of an open source
|
||||
community such as how project governance is, how communication in the community works and similar.
|
||||
* Read the [mentor guide](https://google.github.io/gsocguides/mentor/) of the program.
|
||||
* Do NOT share any private information about the contributor candidates publicly, such as if you would like to mentor a
|
||||
specific candidate or if you think the candidate is not good enough for the program. Reach out to the administrators for
|
||||
that.
|
||||
|
||||
Tips:
|
||||
|
||||
* Be polite and understanding! Not everyone has your knowledge of the technology we are working on at Knative community.
|
||||
* Be professional! Don't forget that the contributors could be part of the community one day.
|
||||
* Send a link to this page to the contributors when you think they can benefit from the tips written here.
|
||||
|
||||
## Communication
|
||||
|
||||
Contributors are welcome to participate in any talks and discussions in the Knative community channels.
|
||||
|
||||
* Knative users group: https://groups.google.com/g/knative-users
|
||||
* Preferred communication channel. Introduce yourself here as a candidate contributor.
|
||||
* CNCF Slack: https://slack.cncf.io/ Explore the channels yourselves, however, make sure you're checking these:
|
||||
* `#knative`: General channel for the Knative community.
|
||||
* `#knative-serving`: Knative Serving related discussions
|
||||
* `#knative-eventing`: Knative Eventing related discussions
|
||||
* We don't have a specific GSoC channel. Feel free to post questions to relevant channels instead.
|
||||
* Check out the [Slack guidelines](https://github.com/knative/community/blob/main/SLACK-GUIDELINES.md).
|
||||
|
|
Loading…
Reference in New Issue