Infrastructure Management
Using Meshery Designs to Manage Your Infrastructure
Meshery is a versatile platform designed to streamline the lifecycle, configuration, and performance management of infrastructure across Kubernetes clusters.
Designs in Meshery
Meshery employs the concept of Designs as a fundamental construct for managing infrastructure. Designs provide a structured way to organize and deploy various components of your infrastructure. To do so, Meshery utilizes a declarative approach to infrastructure management, similar to Kubernetes manifests. Meshery Designs are written in YAML and are validated against a schema.
Importing Existing Infrastructure and Applications
Meshery facilitates the import of infrastructure in multiple formats, including Kubernetes manifests, Helm Charts, and Docker Compose files. Import existing infrastructure definitions by directly from filesystem, via URL, or import directly from a GitHub repository.
- Kubernetes Manifest
- Meshery Design
- Helm Charts
- Docker Compose
See Importing Applications for more information.
Meshery Internals Provisioning Process
When a request is made to provision a design, it undergoes the following stages:
1. Import of Referenced Designs
A Design may reference any number of other Designs, in essence, a Design may import any number of other Designs. As an editor of a Design, you can make reference to another Design, while following principles of reusing and DRY (Do Not Repeat Yourself). Any referenced Design will subsequently be imported during the provisioning moment. To reference another design, do so by adding the following annotation
type: $(#use \<url-of-remote-pattern\>)in your Design file. The referenced design will be expanded from the source.
2. Identification
Meshery relies on components registered at boot time. Only registered models and components can be managed with Meshery. Currently, models from the ArtifactHub repository are supported.
3. Validation
Components in the design are validated against the schema, ensuring consistency, similar to Kubernetes object validation but tailored for Designs.
4. Dependency Detection and Resolution
Meshery identifies and resolves dependencies among components. The order of provisioning is critical for successful deployment, and circular dependencies result in the termination of the request.
5. Provisioning
A Directed Acyclic Graph (DAG) generated in the previous step is processed. Dependent components are processed sequentially, while others are processed in parallel. Meshery intelligently handles the deployment order to ensure successful deployment.
Auto-Deployment of CRDs and Operators
Meshery automates the deployment of Custom Resource Definitions (CRDs) and operators based on the source from which a particular component was registered. Currently, all components are sourced from the ArtifactHub repository, and the auto-deployment strategy utilizes HelmCharts. (Support for OCI registries is expected in the near future.)
Upcoming Features
Meshery is actively developing the ability to import custom models and components, expanding the platform's flexibility. Support for OCI registries is expected in the near future.
1. Custom Models and Components: Meshery is actively developing the ability to import custom models and components, expanding the platform's flexibility.
2. OCI Registry Support: Meshery will soon be adding support for OCI registries in addition to ArtifactHub.
Suggested Reading
- Deploying Sample Applications - This guide is to help users get a better understanding of sample apps
- Infrastructure Discovery - MeshSync supports both greenfield and brownfield discovery of infrastructure. Greenfield discovery manages infrastructure created and managed entirely by Meshery, while brownfield discovery identifies separately created infrastructure.
- Managing Connections - Manage the lifecycle of your infrastructure by registering each infrastructure element with Meshery.
- Managing Events with Notification Center - Meshery tracks operations performed on your infrastructure and workloads, and provides notification of environment issues, application conflicts with infrastructure configuration, policy violations, and so on.