[layer5-maintainers] RFC: Designs v1beta draft

0 views
Skip to first unread message

Lee Calcote

unread,
May 20, 2024, 5:03:34 PMMay 20
to Layer5 Maintainers, cncf-meshery...@lists.cncf.io, devel...@meshery.io
All,

Meshery Designs are: "Like a Google Doc, Designs are your primary tool for collaborative authorship of your infrastructure and services. A Design describes all the resources and their properties that you want for a single deployment based on Meshery’s declarative syntax (see Meshery Schemas repo). By default, Designs are stored in your user account, but can be manually exported, programmatically snapshotted, or automatically synchronized to any OCI-compatible registry (e.g. Docker Hub, AWS ECR, and so on), or Git-based repositories (coming in v0.8). You can share designs and collaborate in real-time on their creation. Designs can be imported, exported, versioned, forked, merged, snapshotted, published, shared, embedded, templatized, and more. As the deployable unit in Meshery, a Design consists of Components and Relationships. Designs are how you can describe your desired infrastructure state."

Aabid Sofi (aabidsofi19) has drafted a new version of the Designs schema. Please review and comments on the draft of Meshery Designs v1beta1 - https://github.com/meshery/schemas/pull/75.


Notes for Reviewers

This PR is a proposal for v1beta1 for designs . some parts might not be technically correct !!

Motivation

The current design schema, although undocumented, is a mix of our internal model constructs, deprecated Open Application Model (OAM) elements, and Cytoscape objects. This inconsistency makes it difficult to manage and analyze data effectively.

This revision proposes a stricter schema based on our well-defined internal constructs like models, components, and relationships.

Example of Current Design (replace with an actual example)

Much of the current content, particularly traits, lacks a defined schema and acts as a repository for Cytoscape-specific information.

New in V1 Beta 1

Removal of Services and Traits:

The revamped component schema in V1 Beta 1 enhances component versatility for representing infrastructure entities, annotations, and presentation. This allows us to remove the need for both services and traits.

Design-Level Control:

V1 Beta 1 introduces the ability to store design-level preferences, including specifying permitted relationships between components.

Explicit Relationships:

The current schema relies on implicit Cytoscape constructs to define relationships. V1 Beta 1 introduces a dedicated "relationships stanza" for explicitly defining connections. This stanza uses a structured format with attributes like <from><to><kind><type><subtype>, and <status> to improve clarity.

Versioning of Design

Designs now have version information stored as an integer (int) independent of the specific versioning system used. This means the version number itself is an integer, and the logic for assigning and incrementing it can differ depending on the chosen system.


Reply all
Reply to author
Forward
0 new messages