kubeapps icon indicating copy to clipboard operation
kubeapps copied to clipboard

Define architecture diagram of Kubeapps as code

Open castelblanque opened this issue 2 years ago • 1 comments

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

  • [ ] Definition of architecture in the chosen format and kept in Kubeapps Git repo
  • [ ] Instructions on how to export diagrams to PNG/SVG
  • [ ] Background/architecture documentation updated

castelblanque avatar Aug 22 '22 11:08 castelblanque

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.

castelblanque avatar Aug 22 '22 11:08 castelblanque