meshery / meshery

Meshery, the cloud native manager
https://meshery.io
Apache License 2.0
5.87k stars 1.82k forks source link

[MeshModel] Kubernetes Ontology Browser #7465

Open leecalcote opened 1 year ago

leecalcote commented 1 year ago

Description

Network topologies and graph databases go hand-in-hand. The OpenAPI specifications for Kubernetes provides taxonomy, but augmenting a graph data model with formalized ontologies enables any number of capabilities, one of the more straightforward is the inferencing requisite for natural language processing, and consequently, a human-centric query / response interaction becomes becomes possible. More importantly, more advanced systems can be built when a graph data model of connected systems is upgraded to be a knowledge semantic graph.

Desired Behavior

Represent this ontology in a graph database and a https://github.com/meshery/meshery/issues/6665

Implementation

Using Reactjs, Golang, OpenNebula

Acceptance Tests

Deliverables (among other items):

Phase 1 Use Cases:

  1. How many of each of the MeshModel objects are registered?

MeshModel

 - Models (73)
   - Components (122)
   - Relationships (3)
   - Policies (0)
  1. What version of the models are present?
  2. How many components are registered duplicately? The same components from different Kubernetes clusters have been registered. The API should provide this. See @harkiratsm and @Revolyssup about this.
Other related implementations to reference and reuse:
  1. MeshMap Designer has what is essentially a MeshModel browser.
  2. Meshery UI Design Configurator has what is essentially a MeshModel browser.

Phase 2 Use Cases:

  1. (MeshSync integration) What are the most popular components present in the currently connected Kubernetes clusters?
  2. (Connection/Credential integration) Which models are are not currently supported by a missing connection or missing credential?
  3. Import and Export of Models
  4. (Meshery Catalog integration) For each component, how many designs reference this component? The Meshery Catalog has this need as well.
  5. (Meshery Catalog integration)What are the most popular components referenced in Designs?

For the initial set of use cases, use the REST-based MeshModels API: /api/meshmodels/models/components/?search=envoy&v1&apiversion=1

When POSTing, follow up with a GET.

FYI: Server Side Events (SSE) are used under /api/events.

Mockups

See https://www.figma.com/file/SMP3zxOjZztdOLtgN4dS2W/Meshery-UI?node-id=12835-37612&t=R391PMgNPxdKOFMK-4

MeshModel Browser

MeshModel Browser by Object Type


Contributor Guides and Handbook

github-actions[bot] commented 1 year ago

This issue has been labeled with 'design-required'. Note that prior to commencing on implementation, a design specification needs to be created and reviewed for approval. See Creating a Functional Specification to create a design spec.


        Be sure to join the community, if you haven't yet and please leave a :star: star on the project :smile:

MdSahil-oss commented 1 year ago

Hi, @leecalcote I'm interested in this project and I'm also familiar with the skill set that this project requires like React.js and Golang, Going to make my proposal for this project as very less time remaining to apply for GSoC. Hopefully will be accepted as a GSoC contributor at meshery for this project :)

leecalcote commented 1 year ago

Hi @MdSahil-oss, let's explore. Jump into the community slack and start familiarizing with the Meshery project. Let's chat when you've built it and gotten some sense of it. Ping me when ready.

leecalcote commented 7 months ago

@Yashsharma1911 questions to review and ensure these use cases are covered