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, by default Meshery automatically deploys components that are sourced from Artifact Hub (utilizing Helm Charts). (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.