Skip to content

Commit

Permalink
Add more Knative GSoC 23 ideas (#782)
Browse files Browse the repository at this point in the history
* More Knative ideas

---------

Signed-off-by: Ali Ok <aliok@redhat.com>
  • Loading branch information
aliok authored Feb 3, 2023
1 parent d717b7d commit 7eb8f5c
Showing 1 changed file with 34 additions and 1 deletion.
35 changes: 34 additions & 1 deletion summerofcode/2023.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,9 @@ If you are a project maintainer and consider mentoring during the GSoC 2023 cycl
- [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)
- [Dataplane migration for Apache Kafka communications: From Vert.x to Project Loom](#dataplane-migration-for-apache-kafka-communications-from-vertx-to-project-loom)
- [Porting Knative Serving to Microshift](#porting-knative-serving-to-microshift)
- [Self-Balancing Knative Kafka Broker partitions](#self-balancing-knative-kafka-broker-partitions)
- [KubeVela](#kubevela)
- [IDE Plugins](#vela-ide-plugins)

Expand All @@ -41,7 +44,7 @@ If you are a project maintainer and consider mentoring during the GSoC 2023 cycl
- 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.
- Recommended Skills: Golang, Kubernetes, Knative, Kubernetes Controllers
- Mentor(s): Ali Ok @aliok (aliok AT redhat DOT com)
- Mentor(s): Ali Ok @aliok (aliok AT redhat DOT com), Christoph Stäbler @creydr (cstaebler AT redhat DOT com)
- Expected project size: 350h
- Difficulty: Hard
- Upstream Issue (URL): https://github.com/knative/eventing/issues/6601
Expand Down Expand Up @@ -76,6 +79,36 @@ If you are a project maintainer and consider mentoring during the GSoC 2023 cycl
- Difficulty: Medium
- Upstream Issue (URL): https://github.com/knative/eventing/issues/6247

#### Dataplane migration for Apache Kafka communications: From Vert.x to Project Loom

- Description: The Knative Broker's data-plane communication with Apache Kafka for consuming and producing records is currently done via the Vertx Kafka client [library](https://github.com/vert-x3/vertx-kafka-client). The library is basically a wrapper for communications with Apache Kafka inside of the Vertx threading model. This project requires an evaluation the OpenJDK 19 ["Project Loom"](https://wiki.openjdk.org/display/loom) itself and how to leverage it for efficient communications with an Apache Kafka cluster. The goal of the project is to migrate the usage of Vertx for any communications with Apache Kafka to pure OpenJDK 19's Loom, and reduce the number of 3rd party frameworks, such as vertx for Apache Kafka communication.
- Expected outcome: OpenJDK 19 gets evaluated for our use case, Knative Kafka Broker gets migrated to use Loom for Apache Kafka communication.
- Recommended Skills: Java, Apache Kafka, understanding of Kubernetes
- Mentor(s): Matthias Wessendorf @matzew (matzew AT redhat DOT com), Pierangelo Di Pilato @pierDipi (pierdipi AT redhat DOT com)
- Expected project size: 350h
- Difficulty: Medium
- Upstream Issue (URL): https://github.com/knative-sandbox/eventing-kafka-broker/issues/2928

#### Porting Knative Serving to Microshift

- Description: More and more workload is moving towards running on the edge. We saw experiments running Kubernetes on vehicles, fighter jets, 5G antenna and various far edge, near edge and fat edge environments. We would like to see what the challenges are when Knative is run in a resource limited environment. While there are multiple edge-friendly Kubernetes distributions, we would like to see [Microshift](https://github.com/openshift/microshift) used as the base platform. Knative consists of Serving and Eventing modules but focusing on Knative Serving as a first step should be more approachable. The project consists of 2 stages. First one is to run Knative on Microshift with minimal resources. This requires finding out problems here, solving them. A stretch goal is to find out what happens with architectures other than x86_64.
- Expected outcome: Having Knative Serving with an ingress layer running on top of Microshift. Having a Hello-World Knative Service running on top. Finding issues blocking the edge setup, and possibly fixing them.
- Recommended Skills: Golang, Kubernetes, Knative, good understanding of networking, good understanding of CI/CD
- Mentor(s): Reto Lehmann @ReToCode (rlehmann AT redhat DOT com), Stavros Kontopoulos @skonto (skontopo AT redhat DOT com)
- Expected project size: 350h
- Difficulty: Hard
- Upstream Issue (URL): https://github.com/knative/serving/issues/12718

#### Self-Balancing Knative Kafka Broker partitions

- Description: Creating a Knative Kafka Broker requires developers to specify the number of partitions the backing Kafka topic should have, however, this is not an easy decision to make and it requires planning based on the expected load the Knative Broker could receive. This project aims to remove this configuration setting by having an autoscaler that is responsible to add or remove partitions based on the effective load the Knative Kafka Broker receives while preserving [ordered and unordered delivery features](https://knative.dev/docs/eventing/brokers/broker-types/kafka-broker/#configuring-the-order-of-delivered-events) for Triggers.
- Expected outcome: A Knative Kafka Broker can be created without setting the number of partitions and the number of partitions for a topic backing the Knative Kafka Broker increases or decreases based on the observed load received.
- Recommended Skills: Kubernetes, Apache Kafka, Go, Java
- Mentor(s): Pierangelo Di Pilato @pierDipi (pierdipi AT redhat DOT com), Ali Ok @aliok (aliok AT redhat DOT com)
- Expected project size: 350h
- Difficulty: Hard
- Upstream Issue (URL): https://github.com/knative-sandbox/eventing-kafka-broker/issues/2917

### KubeVela

#### Vela IDE Plugins
Expand Down

0 comments on commit 7eb8f5c

Please sign in to comment.