Contributing to Models Quick Start
Meshery Models are a way to represent the architecture of a system or application. Models are defined in JSON and can be used to visualize the components and relationships between them. This guide will walk you through the process of creating a new model.
Meshery Components are the building blocks of a model. Each component represents a different part of the system or application. Components can be anything from a database to a microservice to a server. Relationships define how components interact with each other. For example, a database component might have a relationship with a microservice component that represents the microserviceβs dependency on the database.
Creating your first Meshery Model
The following instructions are a no-fluff guide to creating your own Meshery Models quickly. For more detailed information, see the Contributing to Models documentation.
Prerequisites
- Fork the meshery/meshery repository.
- Install the Meshery CLI by following the installation instructions.
Create a Model Definition
- In your meshery/meshery fork, open the template [spreadsheet](https://docs.google.com/spreadsheets/d/19JEpqvHrG8UL-Bc-An9UIcubf1NVhlfnQSN1TD7JOZ4/edit?gid=1308482975#gid=1308482975).
- Or, optionally, use CSVs by navigating to
mesheryctl/templates/templates-csvs
directory. - Edit the
models sheet
file to include your model definition.- [Annotation-only Components] For models that contain annotation components, edit the
components sheet
file to include your component definitions.
- [Annotation-only Components] For models that contain annotation components, edit the
- Generate your neww using a Meshery Server (optionally, use the Meshery Playground). Click the "Generate" button after navigating to Meshery UI --> Settings --> Registry.
-
Or use Meshery CLI
Or, opttionally, use Meshery CLI by executing the following command:mesheryctl registry generate --directory templates-csvs
Review the generated components inside of theserver/meshmodel
directory under your model's name. - Verify that your model is displayed in the Meshery UI under Settings->Registry->Models.
Congratulations! You have successfully created a new model.
Contributing a Model Definition
- Fork the meshery/meshery.io repository.
- Create a new branch in your fork of the meshery/meshery.io repository.
- Add your model definition to the
collections/_models
directory. - Create a pull request to the meshery/meshery.io repository.
- Once your pull request is merged, your model will be available in the next Meshery release.
Next Steps
Contributing to Models
See the full Contributing to Models documentation for a detailed understanding of models and the many ways in which you can customize them.We encourage you to get involved in the development of Meshery Models and to share your feedback.
Meshery Models are extensible
Meshery Models are designed to be extensible, allowing you to define new components as needed. If you have an idea for a new component, please create one and share it with the Meshery community.Suggested Reading
- Build & Release (CI) - Details of Meshery's build and release strategy.
- Contributing to Meshery Adapters - How to contribute to Meshery Adapters
- Contributing to Meshery CLI - How to contribute to Meshery Command Line Interface.
- Contributing to Meshery's End-to-End Tests using Cypress - How to contribute to End-to-End Tests using Cypress.
- Contributing to Meshery Docker Extension - How to contribute to Meshery Docker Extension
- Contributing to Meshery Docs - How to contribute to Meshery Docs.
- How to write MeshKit compatible errors - How to declare errors in Meshery components.
- Contributing to Meshery using git - How to contribute to Meshery using git
- Meshery CLI Contributing Guidelines - Design principles and code conventions.
- Contributing to Model Components - How to contribute to Meshery Model Components
- Contributing to Model Relationships - How to contribute to Meshery Models Relationships, Policies...
- Contributing to Models - How to contribute to Meshery Models, Components, Relationships, Policies...
- Contributing to Meshery Policies - How to contribute to Meshery Policies
- Contributing to Meshery Server Events - Guide is to help backend contributors send server events using Golang.
- Contributing to Meshery UI - Notification Center - How to contribute to the Notification Center in Meshery's web-based UI.
- Contributing to Meshery UI - Sistent - How to contribute to the Meshery's web-based UI using sistent design system.
- Contributing to Meshery's End-to-End Tests - How to contribute to End-to-End Tests using Playwright.
- Contributing to Meshery UI - How to contribute to Meshery UI (web-based user interface).
- Contributing to Meshery Server - How to contribute to Meshery Server
- Setting up Meshery Development Environment on Windows - How to set up Meshery Development Environment on Windows