Skip to content

Latest commit

 

History

History
350 lines (255 loc) · 29.1 KB

README.md

File metadata and controls

350 lines (255 loc) · 29.1 KB

Q3 - Fall'2021

Status: Planned

Timeline

Fall Term: September 1st - November 31st

  • mentorships available on LFX Mentorship: August 15th, 2021 (by PT EOD)
  • applications open: August 16th - August 22nd
  • application review/admission decisions/HR paperwork: August 23rd - August 31st

Mentorship duration - three months (12 weeks - full-time schedule)

Project Instructions

Project maintainers and potential mentors are welcome to propose their mentoring project ideas via submitting a PR to GitHub here (https://github.com/cncf/mentoring/blob/main/lfx-mentorship/2021/03-Fall/project_ideas.md), by August 11th.

Participating Projects

Kubernetes

Improvements to Cluster API provider for GCP (CAPG)
  • Description: The Cluster API is a Kubernetes project to bring declarative, Kubernetes-style APIs to cluster creation, configuration, and management. CAPG provides this Kubernetes-native declarative infrastructure for GCP. The project would start with some help wanted issues around quick start and documentation, this will help with understanding mentee with CAPI/CAPG concepts and current implementation. Then we will move on to some long pending improvements documented in the issues link below.
  • Recommended Skills: Golang, unit and feature testing.
  • Mentor(s): Davanum Srinivas (@dims), Carlos Tadeu Panato Junior (@cpanato)
  • Issue: https://github.com/kubernetes-sigs/cluster-api-provider-gcp/issues
  • Apply: https://mentorship.lfx.linuxfoundation.org/project/9e7f18e3-68ee-44f8-ac74-55e802fce8e3
Improve SIG-Node testing using Kubetest2

Kubernetes Policy Working Group (WG)

The Kubernetes policy working group focuses on developing tools and solutions that make Kubernetes secure and easiser to use.

KubeArmor support for Policy Report CRD

Vitess

Add complete parsing support for MySQL constructs
  • Description: Vitess is a database clustering system for horizontal scaling of MySQL. One of the key goals of Vitess is to emulate MySQL behavior even while running multiple MySQL instances so that ORMs and frameworks work seamlessly. Vitess has its own in-built SQL-parser which it uses to understand the query and represent as structs for further processing. As of now, a lot of MySQL constructs are not parsed and result in syntax errors. For example, we do not have complete support to parse partition constructs. Parsing for a lot of the newer features in MySQL 8.0 is also missing. The task of the mentee would be to add parsing support for such constructs.
  • Recommended Skills: go, SQL, yacc, compilers and lexers
  • Mentor(s): Manan Gupta (@GuptaManan100)
  • Issue: vitessio/vitess#8604
  • Apply: https://mentorship.lfx.linuxfoundation.org/project/bc94a28d-ca38-4df1-9a19-7bee42efa08c
Add support for comparing strings using collations and character-sets
  • Description: Vitess does not yet have support for collations and character-sets. So, to compare varchar strings Vitess needs to rely on WEIGHT_STRING function for now. As per MySQL documentation, WEIGHT_STRING is a debugging function, meant only for internal use. Having the ability to compare strings using collation and character set support we will be able to better implement ORDER BY, GROUP BY, JOIN. It will also allow us to leverage more advanced join techniques than what we currently implement.
  • Recommended Skills: go, SQL
  • Mentor(s): Vicent Marti (@vmg)
  • Issue: vitessio/vitess#8606
  • Apply: https://mentorship.lfx.linuxfoundation.org/project/058a41fd-79e8-43f7-a5f7-1840c1f759be
Add support for Upgrade/Downgrade Testing
  • Description: Currently Vitess has a rich set of functional tests that are run as part of every commit to catch regressions early. However, they are not sufficient to assess the quality of the product for production rollout. We currently do not test for incompatibilities introduced via upgrade, and ensuring that users can downgrade one level if they need to backout of a failed upgrade. The scenarios will need to be written down, and then tests can be written using GitHub actions:
    • Document Supported Upgrade/Downgrade Scenario
    • Author GitHub actions tests to checkout 2 versions, test scenarios.
  • Recommended Skills: go, GitHub Actions, docker
  • Mentor(s): Harshit Gangal (@harshit-gangal)
  • Issue: vitessio/vitess#4989
  • Apply: https://mentorship.lfx.linuxfoundation.org/project/57c710e5-4498-48f1-a2ab-b920183b4982

Kyverno

Scalability testing for Kyverno
Extend Kyverno test command to cover generate policies & improve test coverage
Security model and processes for Kyverno

Chaos Mesh

Monitoring Metrics about Chaos Mesh

KubeVela

Integration with developing time to provide consistent experience
  • Description: Users can use KubeVela to do application delivery and management. In this project, we hope to integrate KubeVela with developing time. So developers can have a consitent experience between local development and production deploy. There're multiple developing tools such as Tilt or Nocalhost, both of them can integrate with KubeVela by supporting KubeVela Application YAML.
  • Recommended Skills: Golang, Kubernetes
  • Mentor(s): Jianbo Sun (@wonderflow)
  • Upstream Issue (URL): kubevela/kubevela#795
  • Apply: https://mentorship.lfx.linuxfoundation.org/project/15bb5d46-4d54-4a81-a5e4-016450cc780c
Building An Machine Learning Platform on KubeVela
  • Description: Data scientists need a ML platform to develop, test, and deploy ML models easily. In this project, we will design and build a self-service ML platform on top of KubeVela. We will use KubeVela to provide high level workflow and APIs to glue and simplify deployment pipelines. We will also use Cloud resources to support deployment and operations tasks like domain routing, monitoring, health checking, etc.
  • Recommended Skills: Golang, Kubernetes
  • Mentor(s): Hongchao Deng (@hongchaodeng)
  • Upstream Issue (URL): kubevela/kubevela#2061
  • Apply: https://mentorship.lfx.linuxfoundation.org/project/4ac88eda-21e8-4b15-97dd-1cd3caa045c5

Support remote Terraform HCL (Git repo or ConfigMap) in Terraform Controller

Build Gitops continuous deployment tools on kubevela

WasmEdge

Support WASI-Crypto proposal
  • Description: After WasmEdge provides an experimental API, WASI Socket, for supporting Berkeley Sockets API in Wasm. WasmEdge enabled a new way to open a new socket, listen to an existed socket, and send and receive data. Moreover, it will be nice if we can do more things in the related features such as SSL support. To achieve this feature, one possible way is to compile the OpenSSL library to Wasm and link it as a library. However, the performance may be not good, because all the computation jobs are done at the wasm level. Here is an alternative way, instead of the previous one, we can wrap the OpenSSL library to Wasm external functions. For example, binding ssl_connect to (import "openssl" "ssl_connect" ... ). Unfortunately, this is not an easy way to do it. To simply the workload, we decide to implement the WASI-crypto proposal first, and then use this proposal to make the above things happen.
  • Recommended Skills: C++, Rust
  • Mentor(s): Hung-Ying Tai (@hydai), Shen-Ta Hsieh (@ibmibmibm)
  • Upstream Issue (URL): WasmEdge/WasmEdge#345
  • Apply: https://mentorship.lfx.linuxfoundation.org/project/2d95e888-ef43-4710-b505-56b3682d5741
Support Wasm-Signature proposal
  • Description: The wasm-Signature proposal is specifically about embedded digital signatures in WebAssembly modules, not about package/OCI signatures. When distributing WebAssembly modules, it will be nice if we can have a way to verify. To achieve this target, we choose a Wasm-Signature proposal as our implementation standard. With this proposal, WasmEdge can provide sign and verify features.
  • Recommended Skills: C++, Rust
  • Mentor(s): Hung-Ying Tai (@hydai), Shen-Ta Hsieh (@ibmibmibm)
  • Upstream Issue (URL): WasmEdge/WasmEdge#344
  • Apply: https://mentorship.lfx.linuxfoundation.org/project/9101857e-88c7-4fd9-b166-a18cf698003a
Support WASI-NN proposal
Support Wasm-C-API proposal
  • Description: The wasm-c-api proposal provides the C and C++ API for WASM runtimes. Even though WasmEdge already provided the C API, it's proper to implement the wasm-c-API proposal for the general C/C++ API. In the current status, we've already implemented the non-runtime data structures on the branch. Then, we need to finish the runtime implementation.
  • Recommended Skills: C++
  • Mentor(s): Hung-Ying Tai (@hydai), Yi-Ying He (@q82419)
  • Upstream Issue (URL): WasmEdge/WasmEdge#306
  • Apply: https://mentorship.lfx.linuxfoundation.org/project/90e18b5c-0ac5-4b24-aa06-ca7affc4da7e

LitmusChaos

Develop E2E dashboard with CI/CD pipeline details and enhance litmus e2e website
Develop/Enhance E2E test-cases for ChaosCenter
  • Description: This project aims to develop/enhance the E2E test cases for ChaosCenter. The ChaosCenter is a single source of truth to control all the different Chaos Activities happening around Litmus. From the ChaosCenter you get the freedom to manage every single part of Litmus and shape your workflows exactly the way you want them.

  • Recommended Skills: Golang, JavaScript, Kubernetes

  • Mentor(s): Vedant Shrotria (@Jonsy13), Raj Babu Das (@rajdas98)

  • Upstream Issue (URL): litmuschaos/litmus#3114

  • Apply: https://mentorship.lfx.linuxfoundation.org/project/8e9537fe-fdea-4f92-941d-e86d2fcb48ba

Tremor

Solidify and generalize error handling code in the runtime
AWS (S3) connectors

Thanos

Add groupcache (and improve) backend for the caching bucket in Thanos Store
  • Description: This project is about implementing the groupcache back-end for the caching bucket. Caching bucket is a generic mechanism for caching requests to remote object storage. All of the other caching mechanisms currently suffer from the cache stampede problem and it is impossible to "properly" solve this problem with them. This is where groupcache comes in. Some work has already been done so you will have to something work off of. Groupcache also needs some improvements with regards to fetching multiple keys at once to improve the performance even more. In the end your work will make not just Thanos faster but also cheaper because less requests will need to be made to the remote object storage.
  • Recommended Skills: Go
  • Mentor(s): Giedrius Statkevičius (@GiedriusS), Prem Saraswat (@onprem)
  • Upstream Issue (URL): thanos-io/thanos#2962
  • Apply: https://mentorship.lfx.linuxfoundation.org/project/ea9d68a3-7201-4395-a6bc-66ccd939f9ee
Migrate Thanos to the New Protocol Buffers v2 API
  • Description: This project is about updating and optimizing the protocol buffers implementation used for communication throughout the Thanos project. Thanos relies heavily on gRPC and protocol buffers for communication between its many components, and now with the release of the new Golang API for protocol buffers and the deprecation of the old API, Thanos should be updated to benefit from the improvements in the ecosystem. As part of this project, the protocol buffers generator used in Thanos will be migrated to one that supports the new API and brings other improvements, such as reducing memory allocations. This project will help make Thanos faster and ensure that we stay up to date with the latest libraries.
  • Recommended Skills: Go, protocol buffers
  • Mentor(s): Lucas Servén Marín (@squat), Kemal Akkoyun (@kakkoyun), Giedrius Statkevičius (@GiedriusS)
  • Upstream Issue (URL): thanos-io/thanos#4557
  • Apply: https://mentorship.lfx.linuxfoundation.org/project/32c7f43b-b580-4236-bc8f-dd934a6ea940
Add metrics to track the progress for compaction and downsampling
  • Description: This project is about improving the observability of the Thanos compactor component to help user track the current progress. Thanos compactor usually has to deal with large TSDB blocks for compaction and downsampling. When the data are large, it takes a long time to finish the compaction or downsampling. Now users have to check the bucket UI manually to see whether the work is done. It would be better to have a more fine-grained way to tell the progress of compaction and downsampling. We can have some metrics to track the work and even integrate the stats into the UI.
  • Recommended Skills: Go
  • Mentor(s): Ben Ye (@yeya24)
  • Upstream Issue (URL):
  • Apply: https://mentorship.lfx.linuxfoundation.org/project/4c06915e-8e72-4321-95c5-ed0ee9428a32

etcd

Etcd.io Docs/SEO Improvement Plan Continuation

Buildpacks

Update Builder implementation to 0.1 Builder Spec
  • Description: In Cloud Native Buildpacks, Builders are distributed OCI images that act as the complete context for the building of an application. They came into existance by necessity and have risen to be an essential concept that now needs a specification. As part of this project, you will help us make the necessary changes to pack to adhere to the specification as well as finalize the specification itself. This will have to be done with consideration to existing implementations in efforts to prevent unintentionally breaking anyone's existing workflow.
  • Recommended Skills: Go, OCI Containers
  • Mentor(s): Javier Romero (@jromero)
  • Upstream Issue (URL): buildpacks/pack#945
  • Apply: https://mentorship.lfx.linuxfoundation.org/project/98f6b50e-d097-42ca-b42f-3f51e6f91f0b
Web Redesign of Feature Comparison
  • Description: Cloud Native Buildpacks is a specification and set of tools that help you take source code and convert them into OCI images. Sound familiar? Maybe you've heard of Docker, Source-2-Image, Kaniko, etc. Well you are not alone. The goal of this project is to refactor our existing "features" page to provide an easier to comprehend comparison across other similar solutions. Through this project, you'll research each alternative, learn how they compare and aim to provide that information to the users in an easy to digest format. This will include designing and implementing a better format to compare projects and their features side-by-side.
  • Recommended Skills: OCI Containers, JavaScript, CSS, HTML, Design
  • Mentor(s): Javier Romero (@jromero)
  • Upstream Issue (URL): buildpacks/docs#389
  • Apply: https://mentorship.lfx.linuxfoundation.org/project/386ea576-b9a6-4fad-b76d-f954daefbf1f

OpenEBS

A Kubernetes operator to remove stale PVs of failed statefulset replicas
  • Description: When using StatefulSets with Local Volumes on Ephemeral Nodes - the StatefulSet Pods will get stuck in pending state when the Node is taken out of the cluster. In such cases, manual steps are required to verify that Node is out of the cluster, remove the PV and PVC and delete the failed StatefulSet replica to trigger the re-creation of a new replica with a new PVC/PV on a new node. This enhancement request is to build a generic operator that is driven by a configuration to automate the manual steps.
  • Recommended Skills: Go, Kubernetes, Statefulsets, Local Volumes, OpenEBS
  • Mentor(s): Kiran Mova (@kmova), Amit Kumar Das (@AmitKumarDas)
  • Upstream Issue (URL): openebs/dynamic-localpv-provisioner#87
  • Apply: https://mentorship.lfx.linuxfoundation.org/project/927caaff-2278-4c56-92f5-4b22d0e2c24f
Enhance OpenEBS CLI with a sub-command to upgrade Jiva Volumes
  • Description: After upgrading the OpenEBS control plane, user/admin is required to upgrade the Jiva Volumes by launching a Kubernetes Job. This enhancement request is to improve the existing OpenEBS CLI jiva sub-commands that will help users with required information to create Kubernetes Jobs, as well as to add a sub-command that will automatically launch the upgrade jobs.
  • Recommended Skills: Go, Kubernetes, OpenEBS
  • Mentor(s): Kiran Mova (@kmova), Harsh Vardhan (@vharsh)
  • Upstream Issue (URL): openebs/openebsctl#81
  • Apply: https://mentorship.lfx.linuxfoundation.org/project/64e3add3-060b-4ffa-9408-1289e2f2fdc5

Service Mesh Performance

Definition of MeshMark
  • Description: Create MeshMark provides a universal performance index to gauge your mesh’s efficiency against deployments in other organizations’ environments. MeshMark functions as a service mesh performance index (a scale) to provide people the ability to weigh the value of their service mesh versus the overhead of their service mesh and assess whether they are getting out of the mesh what they are “paying” for in it. Work with maintainers from Layer5, Intel, Red Hat, and HashiCorp on researching cloud native infrastructure performance. Internship involves: machine learning, adaptive algorithms, running and analyzing performance statistics.
  • Recommended Skills: Analytics, Algorithms, Data Science, (Golang and/or C++ helpful, but not necessary)
  • Mentor(s): Lee Calcote (@lcalcote), Navendu Pottekkat (@navendu-pottekkat)
  • Issue: service-mesh-performance/service-mesh-performance#227
  • Apply: https://mentorship.lfx.linuxfoundation.org/project/278ad0b0-ec8a-474a-863b-a8a01956d99c

Meshery

Service mesh playground
Workflow engine

Service Mesh Interface

Conformance Program