Coder Social home page Coder Social logo

schemas's Introduction

Meshery Logo

If you like Meshery, please β˜… this repository to show your support! 🀩

MESHERY IS A CLOUD NATIVE COMPUTING FOUNDATION PROJECT


A self-service engineering platform, Meshery, is the open source, cloud native manager that enables the design and management of all Kubernetes-based infrastructure and applications (multi-cloud). Among other features, As an extensible platform, Meshery offers visual and collaborative GitOps, freeing you from the chains of YAML while managing Kubernetes multi-cluster deployments.



Try Meshery in the Cloud Native Playground (teaser video)


Β 

Functionality

Cloud Native Lifecycle Management

Meshery manages the provisioning, configuration and operation of your Kubernetes clusters while supporting hundreds of different types of cloud native infrastructure integrations. Meshery also offers a catalog of curated design templates filled with configuration best practices.

Using a GitOps-centric approach, visually and collaboratively design and manage your infrastructure and microservices. Extend Meshery as your self-service engineering platform by taking advantage of its vast set of extensibility features, including gRPC adapters, hot-loadable Reactjs packages and Golang plugins, subscriptions on NATS topics, consumable and extendable API interfaces via REST and GraphQL.

Meshery cloud native management

Multi-Cluster Kubernetes, Multi-Cloud, and Cloud Native Configuration Management

Meshery supports 250+ integrations.

Assess your cloud native infrastructure configuration against deployment and operational best practices with Meshery's configuration validator. Manage your workloads with confidence. Check your Kubernetes configuration for anti-patterns and avoid common pitfalls.

Layer5 Service Mesh Configuration Management



OPA Logo

Context-Aware Policies For Applications



Leverage built-in relationships to enforce configuration best practices consistently from code to Kubernetes. Enhance development process by building custom rules in Open Policy Agent's Rego query language. Meshery and Open Policy Agent Integration



WebAssembly Logo

Manage data plane intelligence with WebAssembly filters

Dynamically load and manage your own WebAssembly filters in Envoy-based service meshes.



WebAssembly filters

See Image Hub.



Performance Management

Adhering to Cloud Native Standards

Shows an illustrated light mode meshery logo in light color mode and a dark mode meshery logo dark color mode.

In an effort to produce service mesh agnostic tooling, Meshery uses the Service Mesh Performance specification as a common format to capture and measure your infrastructure's performance against a universal cloud native performance index. As an implementation of Service Mesh Interface (SMI), Meshery participates in advancing cloud native infrastructure adoption through the standardization of APIs.

Standardized Cloud Native Performance Management

Meshery is the cloud native utility for uniformly managing the performance of microservices and the infrastructure that run them. As an implementation of the Service Mesh Performance (SMP), Meshery enables you to measure the value provided by Docker, Kubernetes, or a service mesh in the context of the overhead incurred.

Performance Management

Meshery Architecture

You may deploy Meshery internal to your cluster or external to your cluster.

Learn more about Meshery's architecture.

Get Started with Meshery

Using `mesheryctl`

Meshery runs as a set of containers inside or outside of your Kubernetes clusters.

curl -L https://meshery.io/install | bash -

Use the quick start guide.

See all supported platforms

See the getting started section to quickly deploy Meshery on any of these supported platforms:

Platform Supported?
Docker βœ”οΈ
Β Β Β  Docker - Docker App βœ”οΈ
Β Β Β  Docker - Docker Extension βœ”οΈ
Kubernetes βœ”οΈ
Β Β Β  Kubernetes - AKS βœ”οΈ
Β Β Β  Kubernetes - Docker Desktop βœ”οΈ
Β Β Β  Kubernetes - EKS βœ”οΈ
Β Β Β  Kubernetes - GKE βœ”οΈ
Β Β Β  Kubernetes - Helm βœ”οΈ
Β Β Β  Kubernetes - kind βœ”οΈ
Β Β Β  Kubernetes - Minikube βœ”οΈ
Β Β Β  Kubernetes - OpenShift In Progress
Linux βœ”οΈ
Mac βœ”οΈ
Β Β Β  Mac - Homebrew βœ”οΈ
Windows βœ”οΈ
Β Β Β  Scoop βœ”οΈ
Β Β Β  WSL2 βœ”οΈ
Raspberry Pi In Progress

Meshery documentation offers thorough installation guides for your platform of choice.

Β 

Β 

Join the Meshery community!

Our projects are community-built and welcome collaboration. πŸ‘ Be sure to see the Contributor Journey Map and Community Handbook for a tour of resources available to you and the Repository Overview for a cursory description of repository by technology and programming language. Jump into community Slack or discussion forum to participate.

MeshMates

Find your MeshMate

MeshMates are experienced Layer5 community members, who will help you learn your way around, discover live projects, and expand your community network. Connect with a Meshmate today!

Find out more on the Layer5 community.



Layer5 Cloud Native Community

βœ”οΈ Join any or all of the weekly meetings on community calendar.
βœ”οΈ Watch community meeting recordings.
βœ”οΈ Fill-in a community member form to gain access to community resources.
βœ”οΈ Discuss in the Community Forum.
βœ”οΈ Explore more in the Community Handbook.





Β Β Β Β  Not sure where to start? Grab an open issue with the help-wanted label.



Β 

Contributing

Please do! We're a warm and welcoming community of open source contributors. Please join. All types of contributions are welcome. Be sure to read the Contributor Guides for a tour of resources available to you and how to get started.

Β 

Stargazers

If you like Meshery, please β˜… star this repository to show your support! 🀩

License

This repository and site are available as open-source under the terms of the Apache 2.0 License.

schemas's People

Contributors

aabidsofi19 avatar betelgeuse-code avatar codekraken19 avatar codesafari10 avatar ctcarrier avatar humblenginr avatar leecalcote avatar muzairs15 avatar shubham251972 avatar sudhanshutech avatar thebeginner86 avatar yashsharma1911 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

schemas's Issues

Feature: Relationships add type

Current Behavior

Relationships have kind and subtype, which is not enough to accurately identify a given relationship definition.

Desired Behavior

Add type as a first-class property of the Relationship schema.

Implementation

  • 1. Revise Relationship schema to include new property. Include field validation and description.
  • 2. Version and release this new schema.
  • 3. Open issue in github.com/meshery/meshkit to support this new property.
  • 4. Open issue in github.com/meshery/meshery to support type in REST API.
  • 5. Add field type and initial values to existing relationship definitions in Meshery Integrations sheet.
  • 6. Support type in Registry in Meshery UI

Acceptance Tests

  1. Users can see all Relationships by type in Meshery Registry.

Contributor Guides and Handbook

Core Schema to support SemVer version string

Desired Behavior

https://schemas.meshery.io/v1alpha1/core.json#versionString - should support semver and should support rc in addition to alpha, beta versioning.

Implementation

Acceptance Tests

Mockups


Contributor Guides and Handbook

[Relationships] Schema update: move from "rego_query" to "evalPolicy"

Current Behavior

Example - https://github.com/meshery/meshery/blob/047800b0c42b9c100821f59601e11ac20d30b568/server/meshmodel/kubernetes/relationships/edge_mount.json#L18C1-L19C1

Desired Behavior

Change from "rego_query" to "evalPolicy"


Contributor Guides and Handbook

[MeshModel]: Relocate Design schema to this schemas repo

Current Situation

Meshery Designs are a first-class construct of the tool.

Proposed Change

Add a formal OpenAPI-compatible definition in this repo.


Contributor Guides and Handbook

How to make updates to MeshModel

Instructions for Models

  1. Forthcoming

Instructions for Components

While the default shape for new components is a circle, each component should be considered for its best-fit shape.

  1. Review and familiarize with the available set of predefined relationship types. Refer the Cytoscape node types for a list of possible shapes.
  2. Propose a specific shape, best-suited to visually represent the Component. Example - Deployment as a pentagon.
  3. Proposee a specific icon, best-suited to visually represent the Component. Example - DaemonSet as a skull icon.

Instructions for Relationships

  1. Identify the relationship and any specific constraints to be enforced between the two specific components, their models or potentially other components, models, or environmental considerations.
  2. Propose a specific visual representation for the relationship. Visual representation examples:
  3. Prospose the appropriate relationship type, using one of the predefined set of relationship types or suggest a new relationship where an existing type does not fit.
  4. Create a Relationship Definition (yaml). See the Relationship Schema in MeshModel and examples.
  5. Create a policy for evaluation of the relationship (rego). See examples.

Instructions for Policies

  1. Forthcoming

[Question] Is catalog schema in the proper directory?

Current Behavior

From the perspective of the layout and organization of this repo, is this where it belongs?

Desired Behavior

Ideally, there is a description of the organization of this repo by top-level folder in the README.


Contributor Guides and Handbook

[Chore] Change versioning Schemas to semver and start making releases, so that the Golang package can be imported.

Current Behavior

Schemas are versioned as v1alpha1 and so on.

Desired Behavior

Change versioning Schemas to semver and start making releases, so that the Golang package can be imported.


Contributor Guides and Handbook

Catalog schema: Proposal to shift classes from `enum `to `oneof` type string

Current Behavior

Regarding this discussion, meshery/meshkit#542 (comment), the current approach to having Catalog content class descriptions in a separate, single property makes extraction of the enum value and its corresponding description a bit more challenging than is perhaps necessary.

Proposal:

{
    "type": "string",
    "oneOf": [
        { "const": "open", "description": "The issue is currently open." },
        { "const": "closed", "description": "The issue has been resolved." },
        { "const": "pending" } // Waiting for more information
    ]
}

Contributor Guides and Handbook

Enhancement to Relationship Selectors

Current Behavior

Relationship Selectors v1alpha2 have an unnecessary copy of Model version as a property.

Relationship Selectors v1alpha2 are missing a property to capture their declared (Designs) or realized instances (Views).

Desired Behavior

Proposed enhancement in Relationship Selectors as a v1alphav3:

  1. Remove version field of Selector schema (https://github.com/meshery/schemas/blob/a7561a749e4dd8b9312fd39f4d11b8b0aac08f74/schemas/constructs/v1alpha2/selectors.json#L19C1-L21C11)
  2. Relationship Definitions need To: From: Declaration ID property.

Contributor Guides and Handbook

[Relationships] Operators in Version field

Current Behavior

Many relationships are defined with a specific value in the Version field; e.g.

version: v1.25.2

Desired Behavior

The Relationships schema should support ">" and ">=" in the Versions field.


Contributor Guides and Handbook

New Schema: Activity

Current Behavior

Meshery will embed a workflow engine.

Desired Behavior

Consequently, Meshery will need a Workflow and Activity schemas defined (or similar constructs).

Implementation

Design spec needed

Acceptance Tests

Design spec needed

Mockups


Contributor Guides and Handbook

New Schema: Workflows

Current Behavior

Meshery will embed a workflow engine.

Desired Behavior

Consequently, Meshery will need a Workflow and Activity schemas defined (or similar constructs).

Implementation

Design spec needed

Acceptance Tests

Design spec needed

Mockups


Contributor Guides and Handbook

Treating Designs as an abstraction, applying DRY

Current Behavior

Designs are declarations (see Contributing to Mehery Models for a definition of what a declaration is) and are largely abstracts amalgamating existing component and relationship definitions into a document.

Desired Behavior

In doing so, Designs should avoid recreating / redefining properties of existing Meshery resources.

Implementation

  1. Includes $refComponent and $refRelationship.
  2. Make β€œcomponents” an array of $refComponents (
    "description": "Map of component instances to their corresponding component declarations",
    "additionalProperties": {
    "type": "string",
    "format": "uuid"
    },
    )

Contributor Guides and Handbook

Enhancement to Components: Configuration property

Current Behavior

In adherence to Meshery Model's design principles:

  1. Treat 3rd-party-authored content/manifests/schemas as hermetically sealed objects.
  2. Treat all Definitions similarly within Meshery’s object model.

Components need a way of capturing declared configuration.

Implementation

  1. Move β€œconfiguration” from Designs to Components (
    "configuration": {
    "$comment": "The configuration of the component. The configuration is based on the schema defined within the component definition.",
    "additionalProperties": {
    "type": "string"
    },
    )
  2. Move β€œid” from Designs to Components (
    "additionalProperties": {
    "type": "string",
    "format": "uuid"
    },
    )

Contributor Guides and Handbook

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.