Skip to content

Latest commit

 

History

History
787 lines (612 loc) · 67.1 KB

File metadata and controls

787 lines (612 loc) · 67.1 KB

Term 01 - 2023 March - May

Status: Complete

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

activity date
project proposals January 16 - 31, 5:00 PM PDT
mentee applications open February 1 - 21, 5:00 PM PDT
application review/admission decisions/HR paperwork February 22 - March 7, 5:00 PM PDT
Mentorship program begins with the initial work assignments March 8 (Week 1)
Midterm mentee evaluations and first stipend payments April 12 (Week 6)
Final mentee evaluations and mentee feedback/blog submission due, second and final stipend payment approvals May 24, 5:00 PM PST (Week 12)
Last day of term May 31

Project Instructions

Project proposals open Jan 16th, 2023.

Once opened, 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/2023/01-Mar-May/project_ideas.md, by January 31, 2023.

Application instructions

Mentee application instructions can be found on the Program Guidelines page.



Accepted Projects

Cilium

Website Use Cases pages

  • Description: Cilium would like to have use case pages built out on its website to make it easy for people to find the information and relevant content to the problems they are trying to solve with Cilium.
  • Expected Outcome: The mentee will read through relevant docs, blogs, case studies, user stories, and labs to understand the use cases which will drive the content for each of the pages being built. The finished product will be a new use cases section on the Cilium website.
  • Recommended Skills: Content Writing, Javascript, CSS
  • Mentor(s): Bill Mulligan (@xmulligan, bill@isovalent.com)
  • Upstream Issue: cilium/cilium.io#226
  • LFX URL: https://mentorship.lfx.linuxfoundation.org/project/81a0e506-1c05-45fa-90c4-6bde8bdc0e61

Cloud Native Buildpacks

Pack Performance enhancements

  • Description: Pack is the reference implementation of a Cloud Native Buildpacks platform used to build application images in multiple organizations. Because all developers want their code to build and deploy as quickly as possible, small speedups in pack can have significant benefits, and slow-downs in pack are undesirable. Today, pack has no benchmark suite that would safe-guard against regressions in execution speed.
  • Expected Outcome: The mentee will create a benchmark suite around some critical path sections identified with help from maintainers. The mentee will be supported in applying profiling tools to identify possible speedups, hopefully leading to at least one user-facing performance improvement.
  • Recommended Skills: Golang, git, software development. (Mentee does not need prior experience in profiling or performance tuning)
  • Mentor(s): Natalie Arellano (@natalieparellano, narellano@vmware.com); Joe Kimmel (@joe-kimmel-vmw, jkimmel@vmware.com)
  • Upstream Issue: buildpacks/pack#1610
  • LFX URL: https://mentorship.lfx.linuxfoundation.org/project/33e0747c-4ab8-4074-aa90-3b908b3a588e

Multi-Architecture Builds Support

  • Description: The rise of ARM processors has created new binary targets for pre-compiled executables. Additionally, there are tales of widespread use of operating systems that aren't linux? In the ideal case a pack user could create a build for an abritrary architecture and operating system, regardless of the host system they used to run the command.
  • Expected outcome: Improved multi-architecture (including ARM) and multi-os "cross-compilation" support in pack
  • Recommended Skills: Golang, software development literacy. Familiarity with buildpacks will be helpful.
  • Mentor(s): Aidan Delaney (@AidanDelaney); Jerico Pena (@jpena-r7); Juan Bustamante (jbustamante@vmware.com, @jjbustamante)
  • Expected project size: 350 Hours
  • Difficulty: Medium
  • Upstream Issue (URL): buildpacks/pack#1459 and buildpacks/pack#1460
  • LFX URL: https://mentorship.lfx.linuxfoundation.org/project/ee387e1b-de4e-4c1e-9bef-0239a2e9ca40

CNCF Landscape

UX UI improvement

  • Description: In an effort to better the user experience, the CNCF Landscape is actively seeking ways to improve and enhance its features.
  • The aim is for the mentee to carry out a User Research to validate existing user personas, gain a deeper understanding of user needs, and conduct a thorough heuristic evaluation to gain insights into user experiences. Using the results, the mentee will establish a solid foundation to start an iterative process of ideation, prototyping, and testing possible solutions. The ultimate goal is to initiate a continuous cycle of improvement and further development of features that enhance the user experience of the CNCF Landscape.
  • Recommended skills: Design Thinking, UX research methodology. In this stage of the project, we are seeking candidates with a background and/or training in user research. Supporting materials, such as the following recommended deliverables, that demonstrate your understanding and experience in this area are ideal:
  1. Proto-Personas
  2. Validated Personas with Supporting Findings
  3. Brief Explanation of the Difference between Proto-Personas and Validated Personas
  4. List of UX Research Techniques for Kickstarting the Discovery of Landscape Users
  5. Figma and Visual Design are a plus.

CNCF Tag Contributor Strategy - ii

Mentoring Workspaces - GITHUBUSER.PROJECT.cncf.io (w/ VSCode)

  • Description: pair.sharing.io is a mentoring / pair environment used by ii.nz that brings up clusters to co-learn and co-author via tmate+emacs and a live cluster with many features useful to cloud native development. However, while many folks find the ideas useful, it would be good to reach a wider audience by bringing up workspaces w/ VSCode as an alternative to emacs. The request is for a PoC deploying coder.com to CNCF Infrastructure (likely Packet) and bringing over some of the methods of collaboration learned by ii on pair to a wider audience. "If you want to go fast, go by yourself. If you want to go far, go together." African Proverb – Martha Goedert
  • Recommended Skills: shell, terminals, VSCode, k8s, System Administration
  • Mentor: Hippie Hacker (@hh, hh@cncf.io)
  • Issue: https://github.com/sharingio/pair/issues/173
  • LFX URL: https://mentorship.lfx.linuxfoundation.org/project/632ab03f-a970-44ce-b451-fac0a7349f71

CNCF TAG Network

Representing Kubernetes ontology in MeshModel

  • Description: Network topologies and graph databases go hand-in-hand. The OpenAPI specifications for Kubernetes provides taxonomy, but augmenting a graph data model with formalized ontologies enables any number of capabilities, one of the more straightforward is the inferencing requisite for natural language processing, and consequently, a human-centric query / response interaction becomes becomes possible. More importantly, more advanced systems can be built when a graph data model of connected systems is upgraded to be a knowledge semantic graph. Deliverables (among other items):

  • MeshModel capabilities browser

  • Import/export of MeshModel models and components as OCI images

  • augmentation of cuelang-based component generator

  • Recommended Skills: cuelang, golang, OCI

  • Mentor(s): Lee Calcote (@leecalcote, leecalcote@gmail.com)

  • Issue: cncf/tag-network#24

  • LFX URL: https://mentorship.lfx.linuxfoundation.org/project/96080e3d-83e2-46ed-928c-b6e7f3154bf3

Cortex

Experimental Auth Gateway

  • Description: Cortex server has a simple authentication mechanism (X-Scope-OrgId) but users can’t use the multi tenancy features out of the box without complicated proxy configuration. It’s hard to support all the different authentication mechanisms used by different companies but plan to have a simple but opinionated auth-gateway that provides value out of the box.
  • Expected Outcome: A new experimental cortex component called auth-gateway that validates tenants requests and proxies valid requests to distributors and query-frontend.
  • Recommended Skills: Golang, HTTP proxies
  • Mentor: Friedrich Gonzalez (@friedrichg, friedrichg@gmail.com)
  • Upstream Issue: cortexproject/cortex#5106
  • LFX URL: https://mentorship.lfx.linuxfoundation.org/project/820f9269-ddef-44e9-bf77-95a8d2444c1e

API to import Prometheus & Thanos blocks

Switch Cortex Ruler to query Query Frontend

  • Description: Cortex Ruler queries ingester directly for rule evaluation. This is okay but if Cortex Ruler could query Query Frontend instead for rule evaluation, it can benefit from more features in the Query Frontend like vertical sharding. This also simplifies the Cortex ruler to not embed a querier and uses less resources. For this project, we would like to switch Cortex Ruler to query Query Frontend. You are expected to work with a microservice architecture and write unit tests and end to end tests to make sure the feature works correctly.
  • Expected Outcome: Cortex Ruler talks to Query Frontend for rules evaluation.
  • Recommended Skills: Golang, distributed systems
  • Mentor: Alvin Lin (@alvinlin123, alvinlin123@gmail.com), Yijie Qin (@qinxx108, qinyijie1994@gmail.com)
  • Upstream Issue: cortexproject/cortex#5105
  • LFX URL: https://mentorship.lfx.linuxfoundation.org/project/fe5c060e-420b-4c0f-90ae-389d893c50b6

Automated nightly benchmarks

  • Description: In order to make sure Cortex doesn’t introduce performance regressions across releases and major changes, we would like to introduce an automated way to run some nightly macro/micro benchmarks for Cortex clusters. This project could potentially involve setting up Kubernetes clusters, Cortex components, and load generators. We’d love to keep track of performance metrics for each test run and visualize them through a UI.
  • Expected Outcome: An automated workflow that runs performance macro/micro benchmarks everyday or on demand and performance metrics can be visualized through a UI.
  • Recommended Skills: Golang, Kubernetes
  • Mentor: Ben Ye (@yeya24, yb532204897@gmail.com)
  • Upstream Issue: cortexproject/cortex#5107
  • LFX URL: https://mentorship.lfx.linuxfoundation.org/project/0071e2ff-f538-4817-978b-07b267cfcd6a

Harbor

Regex replication rules

An official Golang API client and CLI for Harbor

Implement per project and/or for the whole instance vulnerability overview

Harbor Robot accounts with full Harbor API access

Kubernetes

Cluster API Provider GCP (CAPG)

Add telemetry and profiling support
  • Description: Cluster API Provider GCP (CAPG) enables the creation of Kubernetes clusters in GCP with Cluster API. With increasing adoption of Cluster API (CAPI) in general and of CAPG we want to improve the supportability of CAPG, especially for production environments. The first part of this is to add telemetry/tracing using OpenTelemetry so that we can understand and visualize the flow of reconciliation within the provider. The next part is to add a pprof endpoint that can be optionally enabled to enable operations/support users to collect profiling information from a running instances of CAPG.
  • Expected Outcome: This work will enable tracing and profiling of a running instance of CAPG (along with supporting docs) to supports operations/support engineers.
  • Recommend Skills: Golang, Kubernetes
  • Mentors(s): Carlos Panato (@cpanato ctadeu@gmail.com), Richard Case (@richardcase richmcase@gmail.com)
  • Upstream Issue: kubernetes-sigs/cluster-api-provider-gcp#810
  • LFX URL: https://mentorship.lfx.linuxfoundation.org/project/55469b74-0c98-44f1-b8e1-4244a736bf82

Cluster API Provider AWS (CAPA)

Reimagining how we handle AWS account preparation
  • Description: Cluster API Provider AWS (CAPA) can create and manage the lifecycle of Kubernetes clusters in AWS (with the help of Cluster API in general). For each target AWS account where a user wants to create clusters it must be prepared for usage first. This is currently done using clusterawsadm which creates/updates a CloudFormation stack that in turn creates/updates IAM resources. This approach has caused issues as CloudFormation is region specific but IAM is global and users often run the tool in different regions which results in failed stacks that cannot easily be deleted. As a project we want to move away from using CloudFormation and instead use API calls (like the rest of CAPA). We also want to make the process idempotent so it doesn't matter if you run it against different regions. This account preparation is key to CAPA and with out it CAPA cannot run.
  • Expected Outcome: A new approach to handling the prerequisites required for CAPA. We need to continue to support the cli based approach (so clusterawsadm will be updated) but we can also explore a declarative approach with an operator.
  • Recommend Skills: Golang, Kubernetes
  • Mentors(s): Richard Case (@richardcase richmcase@gmail.com)
  • Upstream Issue: kubernetes-sigs/cluster-api-provider-aws#3715
  • LFX URL: https://mentorship.lfx.linuxfoundation.org/project/2d76dbe6-43eb-465e-a852-64b2e48f2c68

Kubescape

Implement security controls based on penetration testing best practices

Build debugging capabilities for Helm

  • Description: The Go standard templating package (text/template) is the base on which Helm templates are built. We wish to be able to backtrack lines and fields in objects after rendering Helm charts. This would help users of Helm to be able to understand quickly where different security issues in the final object are coming from in the source. To do this, the text/template package should be extended to include debug markers that point from the output lines to the input lines.
  • Expected Outcome: Propose and implement an extension to the Go package which solves this.
  • Recommended Skills: Go
  • Mentor(s): Ben Hirschberg (@slashben, ben@armosec.io)
  • Upstream Issue: helm/helm#11552
  • LFX URL: https://mentorship.lfx.linuxfoundation.org/project/570b1bba-206d-47ac-9667-22268ff7a6d9

Release engineering: add Kubescape to commonly-requested package managers

  • Description: The Kubescape client binary is built from GitHub using standard patterns. Support for homebrew and krew exists, but users have requested RPM and DEB packages. In this project you will stabilize the delivery of new builds to existing package managers, and implement support for RPM and DEB packages using GitHub Actions.
  • Expected Outcome: When a new Kubescape version is released, it is available in homebrew, krew, RPM and DEB repositories.
  • Recommended Skills: Release management, scripting
  • Mentor(s): Craig Box (@craigbox, craigb@armosec.io)
  • Upstream Issue: kubescape/kubescape#400
  • LFX URL: https://mentorship.lfx.linuxfoundation.org/project/138e9cac-ec86-43cb-a04f-c2980e3c2865

KubeVela

Extend the capability of KubeVela by making several useful addons

Support auto generation of CUE schema and docs from Go struct

Support auto generation of multiple languages SDK from CUE

Kyverno

Pod Security Admission Integrations

Kubernetes Validating Admission Policy Support

OCI references support

Artifact Hub listing of Kyverno Policy Library

Karmada

Provide interactive environments for Karmada users

Enhance Karmada testing coverage

Bundle third-party resources into the Resource Interpreter framework

Konveyor

Move2Kube: Allow customizations be added as remote git repo path

  • Description: Move2Kube is a command-line tool for automating creation of Infrastructure as code (IaC) artifacts. It has inbuilt support for creating IaC artifacts for replatforming to Kubernetes/OpenShift. Currently, in the CLI we can use the -c flag to point to the folder containing customizations and in UI we could upload a zip file containing the customizatoins. It would be better to consume customizations when specified as a git repo path. The use case can also be extended to take source code input taken directory from a remote git repository.
  • Expected Outcome: Move2Kube should be able to consume git repo path as input.
  • Recommended Skills: Golang
  • Mentor(s): Mehant Kammakomati (@kmehant, mehant.kammakomati2@ibm.com), Harikrishnan Balagopal (@HarikrishnanBalagopal, harikrishnan.balagopal@ibm.com)
  • Upstream Issue: konveyor/move2kube#604
  • LFX URL: https://mentorship.lfx.linuxfoundation.org/project/fc06da19-fadd-499f-ae71-3da2caba5aea

Move2Kube: Implement a test suite

  • Description: Move2Kube is a command-line tool for automating creation of Infrastructure as code (IaC) artifacts. It has inbuilt support for creating IaC artifacts for replatforming to Kubernetes/OpenShift. The project is actively developed with new features and bug fixes being added and it is being actively used by many users. There is a need for a concrete test suite to test various components of Move2Kube and integrate it to the existing CI/CD pipeline.
  • Expected Outcome: A test suite for Move2Kube
  • Recommended Skills: Golang, testing package, jest and/ react testing library.
  • Mentor(s): Harikrishnan Balagopal (@HarikrishnanBalagopal, harikrishnan.balagopal@ibm.com), Mehant Kammakomati (@kmehant, mehant.kammakomati2@ibm.com)
  • Upstream Issue: konveyor/move2kube#957
  • LFX URL: https://mentorship.lfx.linuxfoundation.org/project/6d457c37-68cb-4d52-b9d6-798b09350255

Move2Kube: Consume Move2Kube through a plugin on Eclipse

  • Description: Move2Kube is a command-line tool for automating creation of Infrastructure as code (IaC) artifacts. It has inbuilt support for creating IaC artifacts for replatforming to Kubernetes/OpenShift. Users currently have to use move2kube command line tool or UI to access move2kube and use it in their replatforming workflows. Allow Move2Kube to be accessible from Eclipse as a plugin. It can start with simple functionality like right clicking on a docker-compose file, and generating all Kubernetes artifacts. An eclipse plugin for Move2kube will promote fast integration in replatforming workflows.
  • Expected Outcome: An end to end working eclipse plugin with a demo video showcasing the functionality.
  • Recommended Skills: Eclipse, Java, Golang.
  • Mentor(s): Harikrishnan Balagopal (@HarikrishnanBalagopal, harikrishnan.balagopal@ibm.com), Mehant Kammakomati (@kmehant, mehant.kammakomati2@ibm.com)
  • Upstream Issue: konveyor/move2kube#396
  • LFX URL: https://mentorship.lfx.linuxfoundation.org/project/9976a49b-0aa4-49db-ae71-6180f85218ef

Move2Kube: Consume Move2Kube through a plugin on VSCode

  • Description: Move2Kube is a command-line tool for automating creation of Infrastructure as code (IaC) artifacts. It has inbuilt support for creating IaC artifacts for replatforming to Kubernetes/OpenShift. Users currently have to use move2kube command line tool or UI to access move2kube. Allow Move2Kube to be accessible from VSCode as a plugin. It can start with simple functionality like right clicking on a docker-compose file, and generating all Kubernetes artifacts. A VSCode plugin for Move2kube will promote fast integration in replatforming workflows.
  • Expected Outcome: An end to end working VSCode plugin with a demo video showcasing the functionality.
  • Recommended Skills: VSCode plugins, TypeScript, Golang.
  • Mentor(s): Harikrishnan Balagopal (@HarikrishnanBalagopal, harikrishnan.balagopal@ibm.com), Mehant Kammakomati (@kmehant, mehant.kammakomati2@ibm.com)
  • Upstream Issue: konveyor/move2kube#395
  • LFX URL: https://mentorship.lfx.linuxfoundation.org/project/d8a7022f-8c62-4776-9e7c-4cc12f306177

KubeArmor

KubeArmor Telemetry Monitoring and Dashboards

Adding OpenTelemetry Support

  • Description: To integrate KubeArmor with OpenTelemetry, an adapter needs to be created. OpenTelemetry is a standard for telemetry data, including distributed tracing, metrics, and logs, and has an SDK and a collector component that can run on Kubernetes. Applications can directly expose OpenTelemetry data through in-app instrumentation using the OpenTelemetry SDK. The collector can then gather data from multiple applications in a cluster and send it to various backends for storage and visualization, such as Jaeger.
  • Expected Outcome: The mentee's task is to develop an OpenTelemetry adapter for KubeArmor that can receive logs, alerts, and telemetry from the kubearmor-relay-service and convert it into the OpenTelemetry format. They are also expected to create documentation and usage guides that describe how to set up and use the adapter, as well as demonstrate the integration with a backend that supports OpenTelemetry.
  • Recommended Skills: OpenTelemetry, Go
  • Mentor(s): Anurag Kumar (@kranurag7, contact.anurag7@gmail.com), Ankur Kothiwal (@Ankurk99, ankur.kothiwal99@gmail.com), Barun Acharya (@daemon1024, barun1024@gmail.com), Rahul Jadhav (@nyrahul, nyrahul@gmail.com)
  • Upstream Issue: kubearmor/KubeArmor#894
  • LFX URL: https://mentorship.lfx.linuxfoundation.org/project/369f081d-398e-4ce8-b645-e9605b62326a

Rancher Plugin Integration

Kubewarden

Kubewarden SDKs feature parity

  • Description: Kubewarden currently allow policy writers to use 4 different programming languages. Therefore, there are 4 SDKs to be maintained. However, they lack feature parity. In other words, some SDK have feature that have features not available in other SDKs. It's necessary to map what are the features missing between the Go and Rust SDKs and implement some of them. For that, it is necessary to read and understand what is done in the Rust SDK and implement the equivalent in the Go SDK.
  • Expected Outcome: Map all the features missing between the Go and Rust SKDs and implement some of the missing features
  • Recommended Skills: Rust, Go, Kubernetes
  • Mentor(s): José Guilherme Vanz (@jvanz), Victor Cuadrado Juan (@viccuad)
  • Upstream Issue: kubewarden/kubewarden-controller#392
  • LFX URL: https://mentorship.lfx.linuxfoundation.org/project/ddc368b7-1e24-42ed-9e30-02abdf6fcd33

Kubewarden policies enhancements

  • Description: Kubewarden has many policies to validate and mutate Kubernetes resources. Therefore, there are many enhancements to be made on them. However, these improvements are still to be made. Thus, it's necessary to fix the open issues in the policies repositories and implement new policies to add more value to the Kubewarden users.
  • Expected Outcome: Fix as many open issues in the Kubewarden policies as possible and create new policies requested by the community
  • Recommended Skills: Rust, Go, Kubernetes
  • Mentor(s): José Guilherme Vanz (@jvanz), Victor Cuadrado Juan (@viccuad)
  • Upstream Issue: kubewarden/kubewarden-controller#393
  • LFX URL: https://mentorship.lfx.linuxfoundation.org/project/9b8a3840-1355-4301-894b-7271c597f0cf

KubeEdge

Design and implement the KubeEdge Dashboard

Re-design and implement the KubeEdge website

Cloud-Robotic AI Benchmarking for Edge-cloud Collaborative Lifelong Learning

  • Description: Based on real-world datasets provided by industry members of KubeEdge SIG AI, the issue aims to build a lifelong learning benchmarking on KubeEdge-Ianvs. Namely, it aims to help all Edge AI application developers to validate and select the best-matched algorithm of lifelong learning.
  • Expected Outcome: The benchmark includes: 1) Work together to release a new dataset to the public! 2) Implement critical algorithm or system metrics, e.g., BWT, FWT and thoughput; 3) (Optional) Develop a baseline algorithm for this benchmark.
  • Recommended Skills: TensorFlow/Pytorch, Python, Kubernetes
  • Mentor(s): Siqi Luo (@luosiqi, luosiqi2@huawei.com), Fisher Xu (@fisherxu, fisherxu1@gmail.com)
  • Upstream Issue: kubeedge/ianvs#48
  • LFX URL: https://mentorship.lfx.linuxfoundation.org/project/50cdbd65-e0cd-4c0f-8c63-6bd5c603ba89

Meshery

Distributed workflow engine
Multi-user cloud native playground

Distributed client-side policy evaluation in WASM and Rego

Linkerd

Linkerd Dashboard Improvements

Add dynamic profiling to Linkerd Rust controllers

Prototype multi-cluster service discovery and operations

  • Description: When deploying a multi-cluster resource one has to perform certain contortions such as providing a list of other clusters to each cluster. This places a dependency ordering on spinning up new clusters and a requirement for application operators to coordinate with cluster operators.
  • Expected Outcome: Develop a prototype where each cluster only needs to reference a common service definition to discover peers without knowledge of the names or even number of other clusters.
  • Recommended Skills: Go, Rust, Kubernetes
  • Mentor(s): Oliver Gould (@olixOr, ver@buoyant.io), Matei David (@mateiidavid, matei@buoyant.io)
  • Upstream Issue: linkerd/linkerd2#7566
  • LFX URL: https://mentorship.lfx.linuxfoundation.org/project/ce8883ce-9e32-4337-8fe0-5c51fed758e4

LitmusChaos

Improve code quality and add unit tests of litmus chaos components

NATS

End-to-end example of a multiplayer game using NATS in Unity

Notary

HashiCorp Vault plugin for Notary

  • Description: Notary is a CNCF incubating project that aims to provide signing and verification capabilities to ensure delivery integrity and security. It supports creating and storing signatures for container images, SBOM, vulnerability scanning results, etc. to ensure the artifacts someone produced have not been tampered by others. Notary only has an Azure Key Vault plugin for storing keys in Azure Key Vault, which is used to sign and verify artifacts in the OCI registry. HashiCorp Vault is a popular KMS and we see more and more users rely on it in the on-premise environment.
  • Expected Outcome: Develop a Key Management System (KMS) plugin with HashiCorp Vault for Notary CLI (Notation), which can be used to store the keys for Notation signing and verification.
  • Recommended Skills: Golang programming language, Notary knowledge.
  • Mentor(s): Patrick Zheng (@patrickzheng200, patrickzheng@microsoft.com), Shiwei Zhang (@shizhMSFT, shiwei.zhang@microsoft.com)
  • Upstream Issue: https://github.com/notaryproject/notation/issues/521
  • LFX URL: https://mentorship.lfx.linuxfoundation.org/project/9710c834-913d-487d-9ebf-8205cdf48ab4

OpenKruise

Bring progressive delivery to daemon workload

  • Description: Kruise Rollout enable progressive delivery of various workload ranging from stateless workload such as Deployment to stateful workload such as StatefulSet or customized operators. This project aims to bring progress delivery capability to daemon workload, which is run on each node of a k8s cluster. The project involves implementing common API of progressive delivery for OpenKruise Advance DaemonSet, and integrate with the Kruise Rollout framework.
  • Expected Outcome: Support progressive delivery for OpenKruise Advance DaemonSet(along with supporting test cases and docs) , that is, update new version of daemon pods in batches with user defined pause strategy. Traffic scheduling is not required for this project.
  • Recommended Skills: Go, Kubernetes
  • Mentor(s): Zhang Zhen (@furykerry, furykerry@gmail.com), Zhang Lei(@resouer, resouer@gmail.com)
  • Upstream Issue: openkruise/rollouts#69
  • LFX URL: https://mentorship.lfx.linuxfoundation.org/project/d3a1507a-b132-4c7c-aead-dfe78fd34eb8

Support customize arbitary fields of workload subset in UnitedDeployment

  • Description: UnitedDeployment in OpenKruise enable users to manage a set of k8s workloads in whole while be able to customize the topology and replicas of each workload. This project extends the customization capability to arbitary workload fields by adding common patch fields, so that each subset of UnitedDeployment can have different metadata, container configuration etc.
  • Expected Outcome: Support generate patches for new creating pods of each subset workload while the users can rollout and scale the UnitedDeployment in whole.
  • Recommended Skills: Go, Kubernetes
  • Mentor(s): Zhang Zhen (@furykerry, furykerry@gmail.com), Zhang Lei(@resouer, resouer@gmail.com)
  • Upstream Issue: openkruise/kruise#811
  • LFX URL: https://mentorship.lfx.linuxfoundation.org/project/9e0f01ab-615f-44ed-b65b-0f1296037a48

ORAS

Develop .NET SDK for ORAS

  • Description: ORAS is a tool for working with OCI artifacts and OCI registries. It allows users to distribute OCI artifacts across OCI Registries. Users seeking a generic registry client can benefit from the ORAS CLI, while developers can build their own clients on top of one of the ORAS client libraries. ORAS has Python and Golang SDK that allow developers to build their own clients on top of one of the library. Similarly, developing a .NET SDK will enable .Net developers to use ORAS API and enhance the ORAS ecosystem.
  • Expected Outcome: Develop a .NET SDK in a new repository and write the examples and API document on GoDoc. Write unit test for this SDK and make sure the testing coverage is qualified.
  • Recommended Skills: C#/.NET, ORAS conceptual knowledge.
  • Mentor(s): Sylvia Lei (@Wwwsylvia, lixia.lei@microsoft.com), Shiwei Zhang (@shizhMSFT, shiwei.zhang@microsoft.com)
  • Upstream Issue: https://github.com/oras-project/oras/issues/774
  • LFX URL: https://mentorship.lfx.linuxfoundation.org/project/5d331c88-fc2d-4635-a92c-5d25fb42f47d

Develop ORAS Website

Service Mesh Performance

Adaptive Load Controller II

  • Description: The adaptive load controller is to execute optimization routines recursivley to determine the maximum load a system can sustain. The maximum load is usually defined by the maximum requests per second (rps) the system can handle. The metrics (CPU usage, latency etc) collected from the system under test are the constraints we provide to judge whether a system under test (SUT) is sustaining the load.

A use-case that fits very well is be the ability to use it to run performance tests on a schedule and track the maximum load a system can handle over time. This could give insights to performance improvements or degradations.

TestGrid

Frontend development inside Lit Component Framework

Thanos

Add query observability for new promql engine

Series Cardinality API

Querying Apache Parquet files with PromQL

Vitess

Implement a benchmarking and load testing framework for the VReplication module in Vitess

  • Description: Vitess is a distributed database system built around MySQL. VReplication is core technology built into Vitess that is used to enable many features like vertical and horizontal sharding, change data capture and materialized views. The project involves designing and implementing a customizable framework that enables us to test different VReplication workflows at scale and to obtain benchmarks that can be used to monitor performance improvements and regression from code changes. The framework will consist of a custom DSL (Domain Specific Language) which will be used to define each test case and a driver which will read the DSLs and execute the tests. The DSL will be based on the Hashicorp Configuration Language (https://github.com/hashicorp/hcl). The driver will be written in Golang and target AWS using Terraform for provisioning and Ansible for automation. The results and benchmarks will be stored in PlanetScale (https://planetscale.com/) in the existing vitess benchmark database.
  • Expected Outcome: The test framework with at least one working test and stored benchmark metrics for a MoveTables workflow.
  • Recommended Skills: golang
  • Mentor: Rohit Nayak (@rohit-nayak-ps, rohit@planetscale.com)
  • Upstream Issue: vitessio/vitess#12136
  • LFX URL: https://mentorship.lfx.linuxfoundation.org/project/b903d812-c3ff-47bf-8626-0b9274fec742

Add complete parsing support for Spatial MySQL functions

WasmEdge

Streaming data processing with WasmEdge

A Rust library crate for mediapipe models for WasmEdge NN

  • Description: WasmEdge would like to build a Rust library crate that enables easy integration of Mediapipe models in WasmEdge applications. Each Mediapipe model has a description page that describes its input and output tensors. The models are available in Tensorflow Lite format, which is supported by the WasmEdge Tensorflow Lite plugin.
  • Expected Outcome: We need at least one set of library functions for each model in Mediapipe. Each library function takes in a media object and returns the inference result.
  • Recommended Skills: basic knowledge of Rust and experience in working with AI models and image processing.
  • Mentor(s): Michael Yuan (@juntao, michael@secondstate.io)
  • Upstream Issue: WasmEdge/WasmEdge#2229
  • LFX URL: https://mentorship.lfx.linuxfoundation.org/project/e4e6d486-e6df-475d-8074-a363d0361076

Unified WasmEdge tools

  • Description: WasmEdge provides two tools in the release assets: wasmedgec and wasmedge. However, providing multiple tools will make it too complicated to use. That's why we want a simple entry point, wasmedge. As its subcommands, all the tools above should be collected into this new tool.
  • Expected Outcome: A document to explain the new WasmEdge tools, a test suite covers the implementation details, and implement wasmedge run and wasmedge compile featues.
  • Recommended Skills: C++ programming language, WebAssembly knowledge.
  • Mentor(s): Hung-ying Tai (@hydai, hydai@secondstate.io)
  • Upstream Issue: WasmEdge/WasmEdge#2226
  • LFX URL: https://mentorship.lfx.linuxfoundation.org/project/2ebb39fd-3497-44f3-90d7-e95b444b2bc8

WasmEdge C++ SDK