Google Summer of Code

Meshery Participation for 2025

As a self-service engineering platform, Meshery enables collaborative design and operation of cloud native infrastructure.

As a mentee, you will learn cloud native infrastructure management techniques, and will increase your understanding of distributed systems challenges and how to properly implement best-practice patterns of modern software design.

To best position your candidacy, start participating in the project so that you can self-assess your readiness and interest. We work hard to guarantee your success. That starts with your own internal reflection of whether the project and community are a fit for you.

Engage in an area in which you think you can make an impact. And if you are being impactful and consistent, eventually we will bring the internship to you. Moreover you will take away exactly the same real value that an internship offers: experience and relationships.

2025 Program Timeline

  • January 27 - Organization applications open
  • February 27 - Accepted GSoC Organizations announced
  • March 24 - Students submit their proposals
  • May 8 - Accepted GSoC contributor projects announced
  • June 2 - Contributor coding officially begins
  • November 19th - Successful GSoC contributor projects are announced
See complete timeline

GSOC 2025 Projects

Project 1. Support for Azure in Meshery

Description:

Enhance Meshery's existing orchestration capabilities to include support for Azure. 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:

  1. 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.
  2. 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.

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:

  1. A significant set of new test cases written for `mesheryctl`.
  2. Tests need to be implemented using BATS framework
  3. Development of tests using best practices defined in the end-to-end testing of Meshery CLI contributing guide
  4. Implementation of test cases defined within Meshery's Test Plan.

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, simplyfying common networking challenges between the cluster and Meshery Server.

See https://github.com/meshery/kubectl-meshsync-snapshot

Expected outcomes:

  1. - A functional kubectl plugin that facilitates capturing a MeshSync snapshot of Kubernetes cluster resources.
  2. - Improved networking efficiency, reducing the complexity of connecting Kubernetes clusters with Meshery Server.
  3. - Support for selective snapshot capture, including single resources, namespaces, or entire cluster visualizations.
  4. - Read-only access mode to generate snapshots without requiring full Meshery deployment.

Project 4. Distributed client-side inference (policy evaluation) with WebAssembly (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.

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:

  1. 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.
  2. The Meshery Model generator will be updated to automatically generate models for kro RGDs, simplifying their integration and management within Meshery.
  3. This will be an officially supported feature of Meshery.

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:

  1. 10+ new tutorials published in Meshery Docs.
  2. Each tutorial should be interactive, guiding users through infrastructure.
  3. Tutorials should vary in complexity, catering to beginners and advanced learners.

Project 7. Kanvas Snapshot 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 Kanvas 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/kubectl-kanvas-snapshot

Expected outcomes:

  1. A functional kubectl plugin that integrates with Meshery to generate Kanvas Snapshots from Kubernetes manifests.
  2. Support for both synchronous and asynchronous delivery, allowing users to receive snapshots via email or directly in the terminal.

Project 8. Expanding end-to-end 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:

  1. Development of comprehensive E2E test cases for additional Meshery components using Playwright.