Project 1. Support for Azure in Meshery
Description:
Enhance Meshery’s orchestration capabilities to include support for Azure using Azure Service Operator. The Azure Service Operator (ASO) provides a wide variety of Azure Resources via Kubernetes custom resources as first-class Meshery Models. This involves enabling Meshery to manage and orchestrate Azure services and their resources, similar to how it handles other Kubernetes resources. The project will also include generating support for Azure services and their resources in Meshery’s Model generator.
Expected outcomes:
- Meshery will be able to orchestrate and manage all Azure services supported by ASO. This includes the ability to discover, configure, deploy, and operate the lifecycle of Azure services through Meshery.
- The Meshery Model generator will be updated to automatically generate models for Azure services, simplifying their integration and management within Meshery. This will be an officially supported feature of Meshery.
- Recommended Skills: Golang, Kubernetes, Azure, well-written and well-spoken English
- Expected project size: large (~175 hour projects)
- Mentors: Mia Grenell, Lee Calcote
- Issue: https://github.com/meshery/meshery/issues/11244
Project 2. End-to-End testing of Meshery CLI using BATS
Description:
Meshery CLI is the command line interface for Meshery. Meshery CLI, otherwise known as mesheryctl, is a client of Meshery Server’s REST API. The other client is Meshery UI and just like Meshery UI, Meshery CLI is a user experience. It provides a way to interact with Meshery and perform various operations such as installing, configuring, and managing cloud native infrastructure.
Each test case is designed to mimic the experience that a Meshery CLI user might have while interacting with mesheryctl in their terminal of choice. In this sense, mesheryctl tests run end-to-end with each pull request submitted containing changes to either the /mesheryctl or the /server directories in the meshery/meshery repository, ensuring that changes included in those pull requests do not break the existing CLI functionality.
Expected outcomes:
- New test cases for Meshery CLI
- Test coverage defined in the Meshery Test Plan
- A significant set of new test cases written for `mesheryctl`.
- Tests need to be implemented using [BATS framework](https://bats-core.readthedocs.io/en/stable/).
- Development of tests using best practices defined in the [end-to-end testing guide](https://docs.meshery.io/project/contributing/contributing-cli-tests) of Meshery CLI.
- Recommended Skills: Golang, Krew, Kubernetes, English
- Expected project size: medium (~175 hour projects)
- Mentors: Matthieu Evrin, Lee Calcote
- Issue: https://github.com/meshery/meshery/issues/11869
Project 3. Kubectl Plugin for MeshSync Snapshot
Description:
Develop a kubectl plugin via krew that allows users to temporarily deploy MeshSync, capture the state of their cluster, and then import the snapshot into Meshery for offline infrastructure management. The plugin will serve as a lightweight alternative to a full Meshery deployment while still enabling Meshery Server to understand the state and configuration of Kubernetes cluster, simplifying common networking challenges between the cluster and Meshery Server. See https://github.com/meshery/kubectl-meshsync-snapshot
Expected outcomes:
- A functional kubectl plugin that facilitates capturing a MeshSync snapshot of Kubernetes cluster resources.
- Improved networking efficiency, reducing the complexity of connecting Kubernetes clusters with Meshery Server.
- Support for selective snapshot capture, including single resources, namespaces, or entire cluster visualizations.
- Read-only access mode to generate snapshots without requiring full Meshery deployment.
- Recommended Skills: Kubernetes, Golang, well-written and well-spoken English.
- Expected project size: medium (~175 hour projects)
- Mentors: Marcus Ringblom, Lee Calcote
- Issue: https://github.com/meshery/meshery/issues/14031
Project 4. Distributed client-side inference with WASM and OPA in Meshery
Description:
Meshery’s highly dynamic infrastructure configuration capabilities require real-time evaluation of complex policies. Policies of various types and with a high number of parameters need to be evaluted client-side. With policies expressed in Rego, the goal of this project is to incorporate use of the https://github.com/open-policy-agent/golang-opa-wasm project into Meshery UI, so that a powerful, real-time user experience is possible.
Expected outcomes:
- The goal of this project is to enhance Meshery's infrastructure configuration capabilities by incorporating real-time policy evaluation using the golang-opa-wasm project.
- This project will integrate the capabilities of golang-opa-wasm into the Meshery UI, enabling users to experience the existing, powerful, server-side policy evaluation client-side.
- Recommended Skills: WebAssembly, Golang, Open Policy Agent, well-written and well-spoken English.
- Expected project size: large (~350 hour projects)
- Mentors: Edward Corley, Lee Calcote
- Issue: https://github.com/meshery/meshery/issues/13555
Project 5. Meshery Model Support for kro ResourceGraphDefinitions (RGDs)
Description:
Enhance Meshery’s existing orchestration capabilities to include support for kro ResourceGraphDefinitions (RGDs) as first-class Meshery Models. This involves enabling Meshery to manage and orchestrate RGDs, similar to how it handles other Kubernetes resources. The project will also include generating support for ResourceGraphDefinition in Meshery’s Model generator.
Expected outcomes:
- Meshery will be able to orchestrate and manage kro RGDs. This includes the ability to deploy, configure, and manage the lifecycle of RGDs through Meshery.
- The Meshery Model generator will be updated to automatically generate models for kro RGDs, simplifying their integration and management within Meshery.
- This will be an officially supported feature of Meshery.
- Recommended Skills: Golang, Cuelang, Well-written and well-spoken English, Kubernetes, DevOps
- Expected project size: large (~350 hour projects)
- Mentors: Cooper Fitzgerald, Mia Grenell
- Issue: https://github.com/meshery/meshery/issues/13520
Project 6. Hands-on tutorials using Meshery Playground
Description:
Learning paths with hands-on labs are a crucial resource for DevOps engineers and cloud-native practitioners. The Meshery Playground provides a live cluster environment, making it an ideal platform for learning every kind of cloud and cloud native technology. Meshery Docs is in need of comprehensive tutorials and scenarios covering common infrastructure management use cases. Mission is to create and publish a series of hands-on tutorials using Meshery Playground. Each tutorial will include step-by-step guides, live demonstrations, and interactive labs using the Playground allowing learners to apply their knowledge directly without the hassle of any configuration.These tutorials will be reviewed by various project maintainers and then published in guides/tutorials.
Expected outcomes:
- 10+ new tutorials published in Meshery Docs.
- Each tutorial should be interactive, guiding users through infrastructure.
- Tutorials should vary in complexity, catering to beginners and advanced learners.
- Recommended Skills: written English, Markdown, Kubernetes, DevOps, and hands-on experience with cloud-native tools.
- Expected project size: medium (~175 hour projects)
- Mentors: Sangram Rath, Lee Calcote
- Issue: https://github.com/meshery/meshery/issues/13521
Project 7. Snapshots Kubectl Plugin
Description:
Kubernetes manifests, especially collections of them, can be complex. This plugin will bridge the gap between Kubernetes cluster and workflow configurations and their visual representation in snapshots. The plugin will allow users to generate a visual snapshot of the combination of multiple Kubernetes manifest files, each containing one or more Kubernetes resources. Users will be able to receive these snapshots either via email or as a URL displayed directly in the terminal. See https://github.com/meshery-extensions/kubectl-kanvas-snapshot
Expected outcomes:
- A functional kubectl plugin that integrates with Meshery to generate snapshots from Kubernetes manifests.
- Support for both synchronous and asynchronous delivery, allowing users to receive snapshots via email or directly in the terminal.
- Recommended Skills: Golang, Krew, Kubernetes, well-written and well-spoken English
- Expected project size: large (~175 hour projects)
- Mentors: Jamie Plu, James Horton
- Issue: https://github.com/meshery/meshery/issues/12036
Project 8. Expanding E2E test coverage in Meshery using Playwright
Description:
Meshery integrates with many other CNCF projects and technologies. Sustaining those integrations is only possible through automation. To automate functional integration and end-to-end testing, Meshery now uses Playwright as one of the tools for browser testing. End-to-end tests run with each pull request to ensure that changes do not break existing functionality. Expanding the coverage of E2E tests is crucial to improving the reliability of Meshery’s UI and workflows. This project focuses on writing Playwright-based tests for more Meshery components, ensuring robust test coverage across the platform.
Expected outcomes:
- Development of comprehensive E2E test cases for additional Meshery components using Playwright.
- Recommended Skills: JavaScript, Playwright, GitHub Workflows, familiarity with React or Nextjs would be helpful, CI/CD.
- Expected project size: medium (~175 hour projects)
- Mentors: Ian Whitney, Lee Calcote
- Issue: https://github.com/meshery/meshery/issues/13514