Skip to content

Latest commit

 

History

History
279 lines (211 loc) · 22.9 KB

selected_projects.md

File metadata and controls

279 lines (211 loc) · 22.9 KB

Selected Projects

Project maintainers and mentors, please submit the selected below (under the Selected Projects section) section using the template below.

Template

### CNCF Project Name
#### Title

-	Description:
-	Recommended Skills:
-	Mentor(s):
-       Mentee (Communty Bridge URL):
-	Upstream Issue (URL):
-       Community Bridge project (URL):

Sample

Prometheus

Refactor the APIs for better readability and less maintenance overhead

List of Selected Projects

Service Mesh Interface

SMI Conformance with Meshery

Kubernetes

Kubernetes working group for CSI driver

Kubernetes working group for Multi-tenancy: Multi-tenancy benchmark project
  • Description: The Kubernetes Multi-Tenancy Working Group is chartered with exploring and defining multi-tenancy models for Kubernetes. An overview of working group activities can be found in this Kubernetes Multi-Tenancy Working Group . The Multitenancy Benchmarks effort focuses on measuring and validating the desired behaviors for multitenancy. Part of this effort is to automate behavioral and configuration checks on existing clusters, which will be the focus of this project. This automated test suit will help all Kubernetes users validate whether their clusters are setup correctly for multi-tenancy.
  • Recommended Skills: Go, Kubernetes
  • Mentor(s): Tasha Drew @tashimi, Ryan Bezdicek @rjbez17, Jim Bugwadia @JimBugwadia
  • Mentee: Divya Rani
  • Upstream Issue (URL):
  • Community Bridge project: Kubernetes

Linkerd

Service Topologies

  • Description: It is valuable to have metadata related to the topology of a cluster when making load balancing decisions. This metadata can be used to control egress costs between regions or even make advanced routing decisions in multicluster situations. As part of Kubernetes 1.17, service topology landed. This provides extra metadata as part of endpoints for a service to control weighting. Imagine transparently failing over to nodes running in a different zone if the pods locally are no longer running. Linkerd should implement support for this functionality.
  • Recommended Skills: golang, Kubernetes, rust, Tokio
  • Mentor(s): Thomas Rampelberg (@grampelberg)
  • Mentee: Matei David
  • Issue:
  • Community Bridge project (URL): https://people.communitybridge.org/project/65742dc0-7217-4c4a-a609-f5f0fcde5c0a

KubeEdge

Support metrics-server in cloud

Add certificate rotation for edge node

TiKV

Full Chunk-based Computing

Envoy

Improve Envoy observability for http module

CoreDNS

External health check and orchestration of CoreDNS in Kubernetes clusters**
  • Description: CoreDNS is the cluster DNS server for Kubernetes and is very much critical for the overall health of the Kubernetes cluster. It is very important to monitoring the health of CoreDNS itself and restarting or repairing any CoreDNS pods that are not behaving correctly. While CoreDNS exposes a health check itself, the health check is not UDP (DNS) based. The existing health check is also launched locally which could be very much different when accessed by other pods remotely. This project intends to build an application that checks CoreDNS health through UDP (DNS) externally, and, restart CoreDNS pods by interacting with Kubernetes API through golang. This is an important project that will greatly improve the overall health of Kubernetes clusters through automation.
  • Recommended Skills: Go, DNS, Kubernetes
  • Mentor(s): Yong Tang (@yongtang), Paul Greenberg (@greenpau)
  • Mentee: Jayesh Sharma
  • Implementation: The deliverable of this project is a golang program that could be deployed in a Kubernetes cluster independently while at the same time, monitoring CoreDNS pods in the same cluster and interacting Kubernetes API (server) to restart CoreDNS pods as needed.
  • Related Issues:

OPA

OPA - MongoDB query translator

  • Description: MongoDB is a general-purpose, document-based, distributed database with a rich query language. OPA features a high-level declarative language called Rego purpose-built for expressing policies over complex hierarchical data structures. OPA is often used to enforce policies over incoming API requests, but using OPA's "partial evaluation" feature it is also possible to enforce policies when data is accessed inside of document-oriented databases like MongoDB. In this model, callers query OPA to obtain a set of conditions to apply to the database query and then rewrite the database query accordingly. There are existing projects that translate "partial evaluation" results to SQL and Elasticsearch. This project would involve designing and implementing a Rego to MongoDB query translator that supports basic relational operations like ==, !=, >, <, etc. This project would hugely benefit the community to perform authorization and data-filtering in MongoDB using OPA.
  • Recommended Skills: Go/Python, MongoDB (not required, but nice to have)
  • Mentor(s): Ash Narkar (@ashutosh-narkar)
  • Mentee: Vineeth Pothulapati
  • Upstream Issue: open-policy-agent/opa#2059
  • Community Bridge project (URL): https://people.communitybridge.org/project/12a9270f-8673-4acb-92ec-fd539fc2b567

KubeVirt

Kernel boot

  • Description: KubeVirt allows to boot from regular (virtual) disks, an alternative booting method is to directly provide a kernel, initrd, and cmdline to a VM for booting. Such a feature is generally useful for many unikernel projects like the European Project Unicore. This project is about defining the relevant API and adding the necessary kernel boot support to KubeVirt.
  • Recommended Skills: golang, Kubernetes, virtualization
  • Mentor(s): Daniel Belenky (@danielBelenky), Daniel Hiller (@dhiller)
  • Mentee: Hritvi Bhandari
  • Issue:

Improve Observability

  • Description: KubeVirt is running VMs on Kubernetes, in order to simplify operations, KubeVirt should expose more metrics about the VMs (workloads) and it's infrastructure components, in order to improve serviceability by integrating with projects like prometheus. This project is about adding a couple of more metrics to different KubeVirt components.
  • Recommended Skills: golang, Kubernetes
  • Mentor(s): Daniel Belenky (@danielBelenky), Daniel Hiller (@dhiller)
  • Mentee: Arthur Silva Sens
  • Issue:

OpenEBS

A easy to use command-line interface (CLI) for OpenEBS.

  • Description: OpenEBS is completely Kubernetes native and is implemented using microservices. OpenEBS can be installed via kubectl or helm chart and managed via custom resources. To improve the usability of OpenEBS, the proposal is to have a easy to use OpenEBS CLI (similar to kubectl) to perform operations mentioned below.
    • install => Install OpenEBS
    • upgrade => Upgrade OpenEBS components
    • status => Print the readiness of various components, verify prerequisites are met to run openebs pools and volumes.
    • version => Print the OpenEBS version and associated images
    • describe => Describe OpenEBS resources like pools and volumes.
    • create => Create OpenEBS resources
    • delete => Delete OpenEBS resources
  • Recommended Skills: Go, Kubernetes
  • Mentor(s): Kiran Mova (@kmova), Amit Kumar Das (@AmitKumarDas)
  • Mentee(s): Vani Singh, Harsh Thakur
  • Related Issues:

New storage backend using raw disk images

  • Description: OpenEBS Dynamic Local PV with Hostpath are great for use cases with low latency requirements and running on nodes with few attached drives or block devices. Using bare hostpath has the limitation of enforcing the capacity limits requested by PVC. The proposal is to implement a new type of storage, backed by a raw disk image on the host, that is mounted inside the pod. The storage backend should:
    • have near-zero performance overhead, compared to using local disks
    • be thin-provisioned
    • be able to enforce storage size limits
    • be able to expose volume metrics
  • Recommended Skills: Kubernetes, Linux, Python, Go
  • Mentor(s): Kiran Mova (@kmova)
  • Mentee: Mehran Kholdi
  • Related Issues:

Prometheus

Persist Retroactive Rule Reevaluations

  • Description: Right now one of the biggest issues with recording rules is that data is only available since the rule was created. Which means any dashboards that use the recording rule will not have data prior to the recording rules create time. We can already reevaluate queries on old data, but we should be able to persist that for a certain window from [Oldest, Now)
  • Recommended Skills: Go
  • Mentor(s): Bartlomiej Plotka (@bwplotka), Callum Styan (@cstyan)
  • Mentee (Communty Bridge URL): Jessica Grebenschikov
  • Upstream Issue (URL): prometheus/prometheus#11
  • Community Bridge project (URL): https://people.communitybridge.org/project/9595fbe7-6a8d-43d4-aebb-a54d57f33fdd

Remote Write WAL Pointer + Other Improvements

  • Description: Remote write has gone through a rewrite in the last year, but there are still open improvements and feature additions that can be explored. For example, because remote write now sends data via Prometheus' WAL, the pointer for each remote write queue into the WAL should be persisted across restarts. The addition of new record types, or a new remote write specific WAL, so that new data not currently part of the WAL can be remote written coulda also be investigated.
  • Recommended Skills: Go, database and dist. systems nice to have.
  • Mentee (Communty Bridge URL): Nicole Jingco
  • Mentor(s): Callum Styan (@cstyan), Chris Marchbanks (@csmarchbanks)
  • Upstream Issue (URL): prometheus/prometheus#6333
  • Community Bridge project (URL): https://people.communitybridge.org/project/9595fbe7-6a8d-43d4-aebb-a54d57f33fdd

Thanos

Versioned Website Docs

  • Description: The Thanos website includes a documentation area that contains per-component docs and configuration built by rendering the markdown files from the tip of master of the Thanos repository. This frequently causes confusion for users, as breaking changes are often merged into master that conflict with the APIs of previous releases. To solve this user-facing issue, we would like to allow the website to show a different set of docs for every Thanos release. This project will involve designing a documentation structure and version picker in the website to select different versions of documents. We will also need to design a workflow for managing docs that integrates with our Git workflow, i.e. updating corresponding docs on pull requests, cherry-picks, etc.
  • Recommended Skills: go, HTML, JavaScript, CSS
  • Mentor(s): Lucas Servén Marín (@squat), Bartlomiej Plotka (@bwplotka)
  • Mentee (Communty Bridge URL): Uchechukwu Obasi
  • Upstream Issue (URL): thanos-io/thanos#2488
  • Community Bridge project (URL): https://people.communitybridge.org/project/f51284ab-f652-47b1-9819-cd4135e75c00

Per Request Query Tracking and Limiting

  • Description: Thanos is at the very high-level: durable and cheap database capable of storing a very large amount of metric data. This means that querying that data can be expensive. Imagine someone queries years of data for millions of series. No matter how fast or efficient our indexing is, even the amount of data being passed through the network can get expensive. This is why users should have control, potentially someday per tenant to tell what query was performed, for how long and how much data it was using, and what happened or error. Users should also be able to limit such large queries.
  • Recommended Skills: go, distributed systems, Linux
  • Mentor(s): Bartek Plotka (@bwplotka), Kemal Akkoyun (@kakkoyun)
  • Mentee (Communty Bridge URL):Yash Sharma
  • Upstream Issues (URL): thanos-io/thanos#1706 and thanos-io/thanos#2527
  • Community Bridge project (URL): https://people.communitybridge.org/project/f51284ab-f652-47b1-9819-cd4135e75c00

Complete Katacoda tutorials

  • Description: This is a great project for a writer with some passion for Docker and Kubernetes, interested in doing interactive docs: specifically learning to build Katacoda Course. Currently, we have a single Katacoda tutorial, which helps Thanos users to start up quickly and understand the concepts. To help improve the user experience further we have planned five more tutorials. The Katacoda tutorials are written in YAML format and don't require a lot of custom tooling. We have a moderate amount of docs on our website thanos.io, which should help you to get started quickly. Also, there are many youtube videos explaining the concepts. We can offer friendly community support and technical guidance and feedback. We're looking for one contributor to explore interactive tutorials and learn some technical concepts along the way. We are definitely not looking for perfection on the first try. Writing interactive tutorials:
    • Intro: Downsampling and unlimited metric retention for Prometheus
    • Intro: Global and meta alerts with Thanos
    • Advanced: Connecting remote Prometheuses to Thanos using simple Envoy setup.
    • Advanced: Using Prometheus remote write to stream metrics to Thanos
    • Advanced: Query low tail latency with low cost: Introducing caching to Thanos
  • Recommended Skills: Distributed systems, Linux, Kubernetes, Docker
  • Mentor(s): Bartek Plotka (@bwplotka), Povilas Versockas (@povilasv)
  • Mentee (Communty Bridge URL): Sonia Singla
  • Upstream Issues (URL): thanos-io/thanos#2041
  • Community Bridge project (URL): https://people.communitybridge.org/project/f51284ab-f652-47b1-9819-cd4135e75c00

Fluentd

Fluent Bit Monitoring Web UI

  • Description: Fluent Bit exposes internal metrics from the data processing pipeline through its HTTP interface. This project aims to build a Web UI to show the components of the data pipeline and its continuous metrics with dashboards and further info. The metrics are exposed in JSON format and should be scrapped by the UI. The UI can be deployable on any HTTP server without the need for NodeJS.

  • Please refer to the Upstream Issue link for more details and candidate requirements:

    • Recommended Skills: Javascript, VueJS, CSS, HTML & general design skills
    • Mentor(s): Eduardo Silva (@edsiper)
    • Upstream Issue (URL): fluent/fluent-bit#2147
  • Mentor(s): Eduardo Silva (@edsiper)

  • Mentee: Shivam Singhal

  • Issue: fluent/fluent-bit#2147

  • Community Bridge project (URL): https://people.communitybridge.org/project/d24ab158-e4e5-4042-91ad-b30ae52941d2

Argo

Enhancing Developer Experience with Open Application Model Delpoyment using Argo CD