-
Notifications
You must be signed in to change notification settings - Fork 643
Blog: Meshery Umbrella Expands #2139
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Changes from all commits
165463c
de8eed4
a72a459
1434de5
bbe8d37
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,150 @@ | ||
--- | ||
title: Meshery Ecosystem Expansion | ||
subheading: Partitioning Platform From Extensions | ||
author: Meshery Authors | ||
date: 2025-04-17 | ||
categories: | ||
- meshery | ||
- open-source | ||
- governance | ||
- extensions | ||
featured-image: /assets/images/posts/2025/meshery-extensions-org/meshery-extensions-github-dark.png | ||
permalink: /blog/2025/meshery-ecosystem-expansion | ||
--- | ||
<link href="https://fonts.googleapis.com/css2?family=Baloo+Bhaina+2:wght@600&display=swap" rel="stylesheet"> | ||
|
||
<style type="text/css"> | ||
.highlighted-text { | ||
font-family: 'Baloo Bhaina 2', cursive; | ||
text-align: center; | ||
} | ||
ul, li { line-height: 1rem;} | ||
ol li { line-height: 1rem;} | ||
.circular-callout { | ||
height: content-fit; | ||
text-align: center; | ||
align-content: center; | ||
block-size: fit-content; | ||
background-color: var(--color-primary-super-dark); | ||
> p { | ||
margin: 1rem 3rem; | ||
color: var(--color-primary-dark-light); | ||
} | ||
} | ||
</style> | ||
|
||
Meshery, a high-velocity Cloud Native Computing Foundation (CNCF) project, serves as a cloud native management platform facilitating multi-player collaboration in designing and operating modern infrastructure. As part of its ecosystem expansion, Meshery maintainers have opted to partition its numerous GitHub repositories into two distinct organizations: [Meshery](https://github.com/meshery) for the core platform and [Meshery Extensions](https://github.com/meshery-extensions) for extensions. This post outlines the rationale, suggested governance structure, support expectations, and project mechanics behind this decision, drawing parallels with similar strategies employed by the Kubernetes and Crossplane projects as two relevant examples. | ||
|
||
## Rationale for Repository Partitioning | ||
|
||
The decision to split Meshery’s repositories into two GitHub organizations is driven by several strategic considerations, each aimed at enhancing the project’s structure, manageability, scalability, and community engagement. | ||
|
||
### Project Architecture | ||
|
||
Let's first acknowledge Meshery architectural project structure being that of a highly extensible, self-service, management platform. With every feature developed grueling consideration is given to extensibility as is evident by the ubiquitiy of [extension points](https://docs.meshery.io/extensibility#extension-points). | ||
|
||
### Modularity and Focus | ||
|
||
Separating the core platform from extensions allows the Meshery core team to concentrate on maintaining and enhancing the primary platform, which includes critical components like Meshery Operator and MeshSync. Extensions, such as adapters for specific cloud native technologies, can be developed and maintained independently by community contributors or specialized teams. This modularity ensures that the core platform remains robust and focused. | ||
|
||
### Scalability | ||
|
||
As Meshery supports over 300 integrations and continues to grow, the number of extensions is expected to increase. Managing these within a single organization could become unwieldy. A separate organization for extensions simplifies permission management, contribution processes, and release cycles, making the ecosystem more scalable. **Community Ownership and Maintenance:** Projects within `meshery-extensions` are generally initiated, developed, and maintained by members of the wider Meshery community, rather than the core Meshery maintainers. This allows the ecosystem to scale beyond what the core team can directly support. **Clearer Support Expectations:** Separating community contributions makes it clearer that projects in `meshery-extensions` might have different maintenance levels, release cadences, and support guarantees compared to the core Meshery components. Users understand they are relying on community support for these specific integrations. | ||
|
||
### Community Engagement | ||
|
||
By providing a dedicated space for extensions, Meshery encourages community contributions. Developers can create and maintain extensions without needing deep involvement in the core platform’s development, fostering a vibrant ecosystem. This approach aligns with Meshery’s emphasis on collaborative design and operation, as highlighted in its documentation (Meshery Overview). In essence, `meshery-extensions` fosters a vibrant ecosystem around Meshery by providing a designated, community-centric space for extensions, integrations, and tooling, keeping the core project focused and manageable while enabling broad community participation. | ||
|
||
**Incubation and Experimentation:** The separate organization acts as an incubator for new ideas, providers, or tooling related to Meshery. Projects might start here and, if they gain significant traction and stability, could potentially be considered for migration or closer integration with the core project (though this isn't always the goal or outcome). | ||
|
||
**Ecosystem Growth:** Part of Meshery's power lies in its ability to manage *any* infrastructure via Providers, [Models](https://docs.meshery.io/concepts/logical/models), Adapters, and its other extension points. Since there are countless APIs and services, `meshery-extensions` serves as the place for the community to build and share Providers for less common cloud services, specific SaaS platforms, or even internal company APIs, without needing official endorsement or maintenance from the core maintainers. | ||
|
||
## Suggested Governance Structure | ||
|
||
This expansion allows for different governance models or maintainer structures for community projects compared to the core project. To effectively manage the two organizations, Meshery can adopt a governance model that balances control over the core platform with flexibility for extensions, drawing from its existing governance (Meshery Governance) and Kubernetes’ SIG model. | ||
|
||
### Core Platform (github.com/meshery) | ||
|
||
- **Governance**: Governed by the core Meshery maintainers, as outlined in the project’s governance document. Roles include contributors, organization members, and maintainers, with clear processes for becoming a maintainer (e.g., nomination, voting by existing maintainers). | ||
- **Responsibilities**: Maintainers review, approve, and merge pull requests, manage releases, and ensure the platform’s stability and alignment with CNCF standards. | ||
- **Decision-Making**: Decisions are made through consensus among maintainers, with regular meetings and transparent communication via Slack and community forums. | ||
|
||
### Extensions (github.com/meshery-extensions) | ||
|
||
- **Governance**: Each extension may have its own maintainers, potentially with a lighter governance structure to encourage innovation. A review process by the core team ensures extensions meet quality and compatibility standards. | ||
- **Maintainer Selection**: Extension maintainers can be nominated by community members or self-nominated, with approval from the core team based on contribution history and technical expertise. | ||
- **Autonomy**: Extension teams have autonomy over their development processes, provided they adhere to Meshery’s code of conduct and integration guidelines. | ||
|
||
### Oversight and Coordination | ||
|
||
- **Steering Committee**: A steering committee, comprising core maintainers and representatives from active extension teams, could oversee cross-organization alignment, resolve conflicts, and approve new extensions. | ||
- **Transparency**: Both organizations should maintain open communication, with public meeting notes, discussion forums, and regular updates to the community, similar to Kubernetes SIGs (Kubernetes Governance). | ||
|
||
| Aspect | Core Platform | Extensions | | ||
| --- | --- | --- | | ||
| **Governance** | Structured, led by core maintainers | Flexible, per-extension maintainers | | ||
| **Maintainer Selection** | Nomination, 2/3rds majority vote | Nomination, core team approval | | ||
| **Decision-Making** | Consensus among maintainers | Extension team consensus, core oversight | | ||
| **Communication** | Public meetings, Slack, forums | Public issues, Slack, optional meetings | | ||
|
||
## Delineated Support Expectations | ||
|
||
Support expectations differ between the core platform and extensions to reflect their distinct roles and maintenance models. | ||
|
||
### Core Platform | ||
|
||
- **Full Support**: The core team provides regular updates, bug fixes, and feature enhancements, ensuring stability for critical components like Meshery Operator and MeshSync. | ||
- **Documentation**: Comprehensive guides, such as installation instructions and CLI usage, are maintained (Meshery Documentation). | ||
- **Community Support**: Active engagement through Slack, forums, and weekly newcomer meetings supports users and contributors. | ||
|
||
### Extensions | ||
|
||
- **Variable Support**: Support depends on the extension’s maintainers. Core team-maintained extensions (e.g., Istio adapter) receive robust support, while community-maintained ones may have limited support. | ||
- **Clear Labeling**: Documentation should indicate the support level (e.g., “Official” vs. “Community”) for each extension to set user expectations. | ||
- **Integration Support**: The core platform provides stable APIs and extension points, ensuring compatibility, with guidelines for developers (Meshery Extensions). | ||
|
||
### User Guidance | ||
|
||
- **Documentation**: Both core and extension documentation should be accessible, with clear instructions on installation, usage, and troubleshooting. | ||
- **Community Channels**: Users can seek help via Slack, GitHub issues, or the Layer5 community forum (Layer5 Community). | ||
|
||
## Project Mechanics | ||
|
||
The mechanics of managing two organizations involve distinct development, testing, and integration processes to ensure a cohesive ecosystem. | ||
|
||
### Development Process | ||
|
||
- **Platform**: Follows a structured release cycle with [stable and edge channels](https://docs.meshery.io/project/contributing/build-and-release). Changes undergo rigorous review to maintain stability. Notify platform extenders and system integrators of upcoming changes in underlying framework to ensure time is afforded to maintain compatibility. | ||
- **Extensions**: Operate on independent release cycles, allowing rapid iteration. Developers use Meshery’s extension points to integrate with the core platform, following contribution guidelines (Meshery Contributing). | ||
|
||
### Integration Testing | ||
|
||
- **Compatibility Testing**: Extensions are tested against multiple core platform versions to ensure compatibility, using tools like MeshSync for resource discovery. | ||
- **Automated Pipelines**: GitHub Actions automate testing and snapshot generation, as seen in extensions like Helm Kanvas Snapshot (Meshery v0.8.0 Release). | ||
- **Performance Testing**: Meshery’s performance management features can be used to benchmark extensions, ensuring they meet efficiency standards. | ||
|
||
### Documentation and Onboarding | ||
|
||
- **Comprehensive Guides**: Documentation covers core platform usage, extension development, and integration (Meshery Docs). The Newcomers’ Guide and MeshMates program aid onboarding (Meshery Community). | ||
- **Catalog and Templates**: Meshery’s catalog of design templates includes extension configurations, promoting best practices (See Meshery Catalog). | ||
- **Community Resources**: Weekly meetings, Slack channels, and the community handbook provide ongoing support (See Community Handbook). | ||
|
||
## Reflections on Other Projects | ||
|
||
Meshery's expansion strategy mirrors successful models in other CNCF projects. BuildPacks and Argo https://github.com/argoproj-labs. Crossplane uses github.com/crossplane for its core platform and github.com/crossplane-contrib for community-contributed providers and functions. Similarly, Kubernetes maintains github.com/kubernetes for core components and github.com/kubernetes-sigs for Special Interest Groups (SIGs). These separations enable focused development, decentralized governance, and easier contribution, which Meshery aims to emulate. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This part appears repeated, we have the same below as well. |
||
|
||
Autonomy: Extension teams have autonomy over their development processes, provided they adhere to Meshery’s code of conduct and integration guidelines, akin to Argo’s labs model where projects operate independently but align with broader project goals. | ||
|
||
### Crossplane | ||
|
||
Crossplane’s separation of github.com/crossplane and github.com/crossplane-contrib facilitates a clear distinction between the core platform and community contributions. Providers and functions in the contrib organization allow third-party developers to extend Crossplane’s capabilities without impacting core stability. This model supports Meshery’s approach by demonstrating how a separate organization can foster innovation while maintaining a reliable core. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Crossplane’s separation of |
||
|
||
### Kubernetes | ||
|
||
Kubernetes’ use of github.com/kubernetes for core components and github.com/kubernetes-sigs for SIGs provides a robust model for decentralized governance. Each SIG operates as a mini-community with its own charter, leadership, and processes, yet aligns with overarching project goals (Kubernetes SIGs). Meshery’s extension organization can adopt a similar approach, allowing extension teams to function autonomously within defined guidelines. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Kubernetes’ use of |
||
|
||
## Meshery Umbrella Expands | ||
|
||
See the curent list of repositories under each organization: [meshery org repos](https://github.com/orgs/meshery/repositories) and [meshery-extensions org repos](https://github.com/orgs/meshery-extensions/repositories). | ||
|
||
Meshery’s partitioning of repositories into github.com/meshery and github.com/meshery-extensions is a strategic move to enhance modularity, scalability, and community engagement. By adopting a governance structure that balances control and flexibility, delineating clear support expectations, and implementing robust project mechanics, Meshery can effectively manage its growing ecosystem. Drawing inspiration from Crossplane and Kubernetes, this approach positions Meshery to remain a leading CNCF project, empowering collaborative cloud native management. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As Meshery supports over 300 integrations and continues to grow, the number of extensions is expected to increase. Managing these within a single organization could become unwieldy. A separate organization for extensions simplifies permission management, contribution processes, and release cycles, making the ecosystem more scalable.
Community Ownership and Maintenance: Projects within
meshery-extensions
are generally initiated, developed, and maintained by members of the wider Meshery community, rather than the core Meshery maintainers. This allows the ecosystem to scale beyond what the core team can directly support.Clearer Support Expectations: Separating community contributions makes it clearer that projects in
meshery-extensions
might have different maintenance levels, release cadences, and support guarantees compared to the core Meshery components. Users understand they are relying on community support for these specific integrations.