added seqeuence diagram
Some checks failed
Hugo Site Tests / test (push) Failing after 1s
ci / build (push) Successful in 53s

This commit is contained in:
Manuel Ganter 2025-12-03 11:54:26 +01:00
parent c345d3b3b5
commit 92a1f4c1c5
No known key found for this signature in database
5 changed files with 70 additions and 28 deletions

View file

@ -2,8 +2,8 @@
deployment {
cloud otc-edp-per-tenant 'OTC EDP per tenant cluster' {
description 'OTC environment for EDP. EDP is the environment a customer gets from us.
description 'OTC environment for EDP. EDP is the environment a customer gets from us.
This is kubernetes clusters and other infrastructure like nodes and vms, and platform services. All is set up by IaC-pipelines in the Foundry.
'
technology 'OTC'
@ -15,7 +15,7 @@ deployment {
cluster edp 'EDP' {
instanceOf edp.argoCD
instanceOf forgejoRunner
instanceOf forgejoRunner
instanceOf edp.forgejo {
-> cloudServices.elasticsearch
-> cloudServices.objectstorage
@ -24,6 +24,7 @@ deployment {
}
instanceOf edp.externalSecrets
instanceOf edp.ingressNginx
instanceOf edp.garm
}
}
@ -36,7 +37,7 @@ deployment {
instanceOf objectstorage
instanceOf elasticsearch
}
computeressource forgejoRunnerInfrastructure 'EDP ForgejoRunner infrastructure' {
description 'Infrastructure for Forgejo runners like pods, vms, lxds, etc'
instanceOf forgejoRunner {
@ -45,5 +46,3 @@ deployment {
}
}
}

View file

@ -0,0 +1,5 @@
model {
component edgeConnect 'Edge Connect' {
description 'Provides an API to run applications on the edge'
}
}

View file

@ -0,0 +1,24 @@
model {
extend edp {
container garm 'Garm Image' {
icon tech:docker
component garm 'Garm' {
description 'Provisions runners for Forgejo'
icon tech:go
}
component providerEdgeConnect 'Garm Provider for EdgeConnect' {
icon tech:go
description 'Acts as abstraction layer for EdgeConnect'
}
component providerKubernetes 'Garm Provider for Kubernetes' {
icon tech:go
description 'Acts as abstraction layer for Kubernetes'
}
garm -> providerEdgeConnect 'calls binary'
garm -> providerKubernetes 'calls binary'
}
}
}

View file

@ -0,0 +1,35 @@
views {
dynamic view forgejoGarmInteraction {
title 'Forgejo <-> Garm'
include edp, edp.garm
include edp.forgejo with {
title 'Forgejo'
}
include edp.garm.garm
include edp.garm.providerEdgeConnect
include edgeConnect
edp.forgejo -> edp.garm.garm '(Webhook) A new job is pending'
edp.garm.garm -> edp.garm.providerEdgeConnect 'Create new runner'
edp.garm.providerEdgeConnect -> edgeConnect 'Create App (Runner)'
edp.garm.providerEdgeConnect -> edgeConnect 'Create AppInstance (Runner)'
edgeConnect -> forgejoRunner 'Deploys'
forgejoRunner -> edp.garm.garm 'Get runner registration token'
edp.garm.garm -> edp.forgejo 'Get runner registration token'
edp.forgejo -> edp.garm.garm 'Token'
edp.garm.garm -> forgejoRunner 'Token'
forgejoRunner -> edp.forgejo 'Register runner'
forgejoRunner -> edp.forgejo 'Fetch job'
forgejoRunner -> forgejoRunner 'Work on job'
forgejoRunner -> edp.forgejo 'Send result'
edp.forgejo -> edp.forgejo 'Deregister Runner'
forgejoRunner -> forgejoRunner 'Terminate'
edp.forgejo -> edp.garm.garm '(Webhook) A job finished'
edp.garm.garm -> edp.garm.providerEdgeConnect 'Delete runner'
edp.garm.providerEdgeConnect -> edgeConnect 'Delete AppInstance (Runner)'
edp.garm.providerEdgeConnect -> edgeConnect 'Delete App (Runner)'
}
}