Relationship between models, components, categories and relationships

Hi everyone. Can anyone explain the relationship between models, components, categories and relationships?/api/meshmodels/models/{model}/components/ returns multiple components with multiple Kind. Does Kind refer to component’s name?

1 Like

While I strongly think this needs to be documented visually, but I would just scratch the surface here to give you enough context to move ahead.

Categories: Higher level constructs which defines the behavior and use case of models inside it.

Models: Each Model corresponds to a category, so the category shows the high-level use case of that model, e.g., prometheus is under “Observability and Analysis category”.

Components:
They are the atomic constructs of MeshModel and each model have some components within them.
They are the fundamental entities that can constitute a design-file.

components has its own definition like:

  1. version
  2. API version
  3. Kind
  4. DisplayName
  5. Metadata
  6. Model
  7. schema

Kind is the Kuneretes kind, if it pod, its kind would be Pod(kubernetes understands it as a Pod resource), or if it is cluster-role then its kind would be ClusterRole (the one you see in k8s manifest)

Does Kind refer to component’s name?

Internally yes, externally No. The display name is used as a human facing name instead, but the components internally are identified via Kind.

3 Likes

Hi @usman_siddique , are we good to mark Maintainer Abhi’s explanation as the solution?

Thank you @Abhi for the detailed explanation.
Yep @vishalvivekm, please mark it as a solution.

1 Like