Added more models

This commit is contained in:
Waldemar 2025-03-31 16:26:46 +02:00 committed by Stephan Lo
parent 9d757a7432
commit f9a7d18df4
3 changed files with 166 additions and 14 deletions

View file

@ -11,6 +11,8 @@ deployment {
instanceOf edp.ui instanceOf edp.ui
instanceOf edp.forgejo instanceOf edp.forgejo
instanceOf edp.keycloak
instanceOf edp.crossplane
} }
} }

View file

@ -4,13 +4,28 @@ model {
} }
edp = system 'EDP' { edp = system 'EDP' {
container ui 'Backstage' { container ui 'Backstage' {
description 'Deeveloper Portal' description 'Deeveloper Portal'
style {
icon tech:react component backstage 'Backstage' {
shape browser style {
icon tech:react
shape browser
}
} }
component database 'Database' {
technology 'Postgresql'
icon tech:postgresql
style {
shape storage
}
}
backstage -> database 'reads/writes'
} }
container forgejo 'CI/CD Service' { container forgejo 'CI/CD Service' {
description ' description '
Fully managed DevOps Platfrom Fully managed DevOps Platfrom
@ -23,6 +38,7 @@ model {
technology 'Golang' technology 'Golang'
icon tech:go icon tech:go
} }
component forgejoRunner 'CI Runner'{ component forgejoRunner 'CI Runner'{
technology 'Golang' technology 'Golang'
icon tech:go icon tech:go
@ -30,25 +46,42 @@ model {
multiple true multiple true
} }
} }
forgejoRunner -> forgejo 'executes pipelines' forgejoRunner -> forgejo 'executes pipelines'
} }
container argoCD 'ArgoCD' {
description 'GitOps Service'
component argocdServer 'ArgoCD Server'
component argocdAppController 'ApplicationController'
component argocdAppSetController 'ApplicationSeetController'
component argocdRedis 'Redis'
component argocdRepoServer 'Repo Server'
}
container keycloak 'Keycloak' { container keycloak 'Keycloak' {
description ' description '
Single Sign On for all EDP products Single Sign On for all EDP products
' '
component keycloak 'Keycloak' { component keycloak 'Keycloak' {
technology 'Keycloak' technology 'Java'
icon tech:java icon tech:java
} }
component postgres 'Postgres' {
component database 'Database' {
technology 'Postgresql' technology 'Postgresql'
icon tech:postgresql icon tech:postgresql
style {
shape storage
}
} }
// -> db 'reads/writes' keycloak -> database 'reads/writes'
} }
container crossplane 'Crossplane' { container crossplane 'Crossplane' {
description 'Managing cloud infrastructure' description 'Declarative management of ressources'
component crossplane 'Crossplane' component crossplane 'Crossplane'
component crossplaneFunction 'Function Patch and Transform' component crossplaneFunction 'Function Patch and Transform'
component crossplaneRbacManager 'RBAC Manager' component crossplaneRbacManager 'RBAC Manager'
@ -57,12 +90,86 @@ model {
component providerShell 'Shell Provider' component providerShell 'Shell Provider'
} }
/*db = component 'Database' { container externalSecrets 'external-secrets' {
icon tech:postgresql description 'Provider to access externally stored Kubernetes secrets'
style {
shape storage internalComponent externalSecrets 'external-secrets controller'
internalComponent certController 'cert-controller'
internalComponent webhook 'webhook'
}
container minio 'Minio' {
description 'S3 compatible blob storage'
component minio 'S3 Blob Storage' {
technology 'Minio'
style {
shape storage
}
} }
}*/ }
container velero 'Velero' {
description 'Backup Kubernetes resources'
component velero 'Velero'
}
velero.velero -> minio.minio 'store backups'
container openbao 'OpenBao' {
description 'Secure secret storage'
component openbao 'Openbao' {
technology 'Openbao'
style {
shape storage
}
}
component agentInjector 'Agent Injector'
}
container monitoring 'Monitoring' {
description 'Observability system to monitor deployed components'
component alloy 'Alloy' {
description 'Open Telemetry Collector'
style {
multiple true
}
}
container loki 'Loki' {
description 'Log aggregation system'
component queryFrontend 'Query Frontend'
component distributor 'Distributor'
component gateway 'Gateway'
component ingestor 'Ingestor'
component querier 'Querier'
}
alloy -> loki 'pushes logs'
}
container ingressNginx 'Ingress' {
description 'Ingress Controller for incoming http(s) traffic'
component ingressNginx 'ingress-nginx'{
technology 'Nginx'
icon tech:nginx
}
ingressNginx -> forgejo 'Ingress'
ingressNginx -> keycloak 'Ingress'
ingressNginx -> openbao 'Ingress'
ingressNginx -> argocdServer 'Ingress'
ingressNginx -> backstage 'Ingress'
ingressNginx -> minio 'Ingress'
ingressNginx -> alloy 'Ingress'
}
// UI requests data from the Backend // UI requests data from the Backend
// ui -> backend 'fetches via HTTPS' // ui -> backend 'fetches via HTTPS'
@ -84,6 +191,7 @@ views {
view edp of edp { view edp of edp {
title 'Context view' title 'Context view'
include * include *
exclude ingressNginx ->
style * { style * {
opacity 25% opacity 25%
@ -94,14 +202,49 @@ views {
} }
view keycloak of keycloak { view keycloak of keycloak {
include * include
*,
ingressNginx ->
} }
view forgejo of forgejo { view forgejo of forgejo {
include * include
*,
ingressNginx ->
} }
view crossplane of crossplane { view crossplane of crossplane {
include
*,
ingressNginx ->
}
view externalSecrets of externalSecrets {
include
*,
ingressNginx ->
}
view velero of velero {
include
*,
ingressNginx ->
}
view minio of minio {
include
*,
ingressNginx ->
}
view monitoring of monitoring {
include
*,
ingressNginx ->,
loki.*
}
view ingressNginx of ingressNginx {
include * include *
} }

View file

@ -2,6 +2,7 @@ specification {
element actor { element actor {
style { style {
shape person shape person
color green
} }
} }
element system element system
@ -11,6 +12,12 @@ specification {
opacity 20% opacity 20%
} }
} }
element internalComponent {
style {
color muted
opacity 15%
}
}
deploymentNode node deploymentNode node
deploymentNode environment { deploymentNode environment {