More tweaks to architecture diagrams

This commit is contained in:
Waldemar 2025-04-01 09:59:19 +02:00 committed by Stephan Lo
parent bc96681b7d
commit 3bbd29b47a
3 changed files with 80 additions and 29 deletions

View file

@ -1,18 +1,66 @@
// Deployment model
deployment {
node customerNode {
instanceOf developer
}
environment local 'Local' {
technology 'Kind'
icon tech:kubernetes
instanceOf edp.ui
instanceOf edp.forgejo
instanceOf edp.keycloak
instanceOf edp.crossplane
namespace backstage {
instanceOf edp.ui.backstage
instanceOf edp.ui.database
}
namespace gitea {
instanceOf edp.forgejo.forgejo
instanceOf edp.forgejo.forgejoRunner
}
namespace keycloak {
instanceOf edp.keycloak.keycloak
instanceOf edp.keycloak.keycloakDB
}
namespace crossplane 'crossplane-system' {
instanceOf edp.crossplane.crossplane
instanceOf edp.crossplane.crossplaneFunction
instanceOf edp.crossplane.crossplaneRbacManager
instanceOf edp.crossplane.providerArgoCD
instanceOf edp.crossplane.providerKind
instanceOf edp.crossplane.providerShell
}
namespace externalSecrets 'external-secrets' {
instanceOf edp.externalSecrets.certController
instanceOf edp.externalSecrets.externalSecrets
instanceOf edp.externalSecrets.webhook
}
namespace velero {
instanceOf edp.velero.velero
}
namespace minio 'minio-backup' {
instanceOf edp.minio.minio
}
namespace monitoring {
instanceOf edp.monitoring.alloy
instanceOf edp.monitoring.distributor
instanceOf edp.monitoring.gateway
instanceOf edp.monitoring.ingestor
instanceOf edp.monitoring.loki
instanceOf edp.monitoring.querier
instanceOf edp.monitoring.queryFrontend
}
namespace ingressNginx 'ingress-nginx'{
instanceOf edp.ingressNginx.ingressNginx
}
namespace openbao {
instanceOf edp.openbao.openbao
instanceOf edp.openbao.agentInjector
}
}
}

View file

@ -6,7 +6,7 @@ model {
edp = system 'EDP' {
container ui 'Backstage' {
description 'Deeveloper Portal'
description 'Developer Portal'
component backstage 'Backstage' {
style {
@ -69,17 +69,18 @@ model {
icon tech:java
}
component database 'Database' {
component keycloakDB 'Database' {
technology 'Postgresql'
icon tech:postgresql
style {
shape storage
}
}
keycloak -> database 'reads/writes'
keycloak -> keycloakDB 'reads/writes'
}
container crossplane 'Crossplane' {
#internal
description 'Declarative management of ressources'
component crossplane 'Crossplane'
@ -91,11 +92,12 @@ model {
}
container externalSecrets 'external-secrets' {
#internal
description 'Provider to access externally stored Kubernetes secrets'
internalComponent externalSecrets 'external-secrets controller'
internalComponent certController 'cert-controller'
internalComponent webhook 'webhook'
component externalSecrets 'external-secrets controller'
component certController 'cert-controller'
component webhook 'webhook'
}
container minio 'Minio' {
@ -110,6 +112,7 @@ model {
}
container velero 'Velero' {
#internal
description 'Backup Kubernetes resources'
component velero 'Velero'
@ -137,12 +140,14 @@ model {
description 'Open Telemetry Collector'
style {
icon tech:grafana
multiple true
}
}
container loki 'Loki' {
description 'Log aggregation system'
icon tech:grafana
component queryFrontend 'Query Frontend'
component distributor 'Distributor'
@ -155,6 +160,7 @@ model {
}
container ingressNginx 'Ingress' {
#internal
description 'Ingress Controller for incoming http(s) traffic'
component ingressNginx 'ingress-nginx'{
@ -162,13 +168,13 @@ model {
icon tech:nginx
}
ingressNginx -> forgejo 'Ingress'
ingressNginx -> keycloak 'Ingress'
ingressNginx -> openbao 'Ingress'
ingressNginx -> argocdServer 'Ingress'
ingressNginx -> backstage 'Ingress'
ingressNginx -> minio 'Ingress'
ingressNginx -> alloy 'Ingress'
ingressNginx -> forgejo.forgejo 'https'
ingressNginx -> keycloak.keycloak 'https'
ingressNginx -> openbao.openbao 'https'
ingressNginx -> argoCD.argocdServer 'https'
ingressNginx -> ui.backstage 'https'
ingressNginx -> minio.minio 'https'
ingressNginx -> monitoring.alloy 'https'
}
// UI requests data from the Backend
@ -192,13 +198,11 @@ views {
title 'Context view'
include *
exclude ingressNginx ->
exclude element.tag = #internal
style * {
opacity 25%
}
style developer {
color muted
}
}
view keycloak of keycloak {

View file

@ -20,9 +20,8 @@ specification {
}
deploymentNode node
deploymentNode environment {
style {
color gray
}
}
deploymentNode environment
deploymentNode namespace
tag internal
}