vmware-tanzu / kubeapps

A web-based UI for deploying and managing applications in Kubernetes clusters
https://kubeapps.dev
Other
4.85k stars 703 forks source link

Define architecture diagram of Kubeapps as code #5226

Open castelblanque opened 1 year ago

castelblanque commented 1 year ago

Summary Define architecture diagram/s of Kubeapps as code, in a file living in the Git repo.

Background and rationale There is no clear diagram (or set of diagrams) that defines the complete architecture of Kubeapps. There are chunks here and there, smaller parts drawn and explained. It is something that will evolve over time, so it makes sense to keep it together with the Kubeapps source code. From that definition, there can be different renderings used throughout documentation.

Description Define the so-called "architecture diagram" of Kubeapps and keep it in the Git repo so that it can be evolved and tracked in time. A good methodology for modelling software systems is the C4 model. There is a tool called Structurizr that allows to define that as code. The file contains a model and multiple views.

Acceptance criteria

castelblanque commented 1 year ago

As with every representation of a living system, we need to make sure that we represent the different scenarios correctly. For example: Pinniped is an optional scenario for Kubeapps, as is actually pure OIDC. This kind of nuances should be properly defined in the model.