Inital draft of architecture documentation

This commit is contained in:
Waldemar 2025-03-31 14:27:02 +02:00 committed by Stephan Lo
parent 089273c038
commit 7437b22a08
4 changed files with 158 additions and 0 deletions

1
likec4/README.md Normal file
View file

@ -0,0 +1 @@
Run ´npx likec4 start´ to start dev server

26
likec4/deployment.c4 Normal file
View file

@ -0,0 +1,26 @@
// Deployment model
deployment {
node customerNode {
instanceOf developer
}
environment local 'Local' {
technology 'Kind'
icon tech:kubernetes
instanceOf edp.ui
instanceOf edp.forgejo
}
}
views {
deployment view index {
title 'Local Deployment'
include
*,
local.**
}
}

110
likec4/model.c4 Normal file
View file

@ -0,0 +1,110 @@
model {
developer = actor 'Developer' {
description 'The regular user of the platform'
}
edp = system 'EDP' {
container ui 'Backstage' {
description 'Deeveloper Portal'
style {
icon tech:react
shape browser
}
}
container forgejo 'CI/CD Service' {
description '
Fully managed DevOps Platfrom
offering capabilities like
code version controling
collaboration and ticketing
and security scanning
'
component forgejo 'Forgejo' {
technology 'Golang'
icon tech:go
}
component forgejoRunner 'CI Runner'{
technology 'Golang'
icon tech:go
style {
multiple true
}
}
forgejoRunner -> forgejo 'executes pipelines'
}
container keycloak 'Keycloak' {
description '
Single Sign On for all EDP products
'
component keycloak 'Keycloak' {
technology 'Keycloak'
icon tech:java
}
component postgres 'Postgres' {
technology 'Postgresql'
icon tech:postgresql
}
// -> db 'reads/writes'
}
container crossplane 'Crossplane' {
description 'Managing cloud infrastructure'
component crossplane 'Crossplane'
component crossplaneFunction 'Function Patch and Transform'
component crossplaneRbacManager 'RBAC Manager'
component providerArgoCD 'ArgoCD Provider'
component providerKind 'Kind Provider'
component providerShell 'Shell Provider'
}
/*db = component 'Database' {
icon tech:postgresql
style {
shape storage
}
}*/
// UI requests data from the Backend
// ui -> backend 'fetches via HTTPS'
}
developer -> ui 'manages project'
developer -> forgejo 'manages code'
developer -> keycloak 'authenticates'
}
views {
view overview {
title 'Landscape view'
include *
}
view edp of edp {
title 'Context view'
include *
style * {
opacity 25%
}
style developer {
color muted
}
}
view keycloak of keycloak {
include *
}
view forgejo of forgejo {
include *
}
view crossplane of crossplane {
include *
}
}

21
likec4/spec.c4 Normal file
View file

@ -0,0 +1,21 @@
specification {
element actor {
style {
shape person
}
}
element system
element component
element container {
style {
opacity 20%
}
}
deploymentNode node
deploymentNode environment {
style {
color gray
}
}
}