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

View file

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