website-and-documentation/resources/edp-likec4/views/dynamic/cicd/garm-arch.c4

73 lines
2.2 KiB
Text

deployment {
environment otcKubernetes 'OTC Kubernetes' {
description 'OTC Container Cluster Engine hosting EDP platform'
technology 'Kubernetes'
icon tech:kubernetes
cluster edpCluster 'EDP Cluster' {
description 'EDP platform cluster'
instanceOf edp.forgejo {
description 'Forgejo - Git platform with Actions'
}
instanceOf edp.forgejoActions {
description 'CI/CD orchestration for Forgejo'
}
garmContainer = instanceOf edp.garm {
description 'GARM container with runner orchestration'
}
environment edpCluster 'GARM pod' {
technology 'Kubernetes'
garmService = instanceOf edp.garm.garm {
description 'GARM - Runner lifecycle manager'
}
instanceOf edp.garm.providerEdgeConnect {
description 'GARM Provider for Edge Connect'
}
}
}
}
environment edgeConnectEnv 'Edge Connect' {
description 'Edge infrastructure for ephemeral runner deployment'
technology 'Edge Connect Platform'
icon tech:docker
computeressource runnerInfrastructure 'Runner Infrastructure' {
description 'Dynamically provisioned runner instances'
instanceOf forgejoRunner {
description 'Ephemeral Forgejo Actions runner'
-> otcKubernetes.edpCluster.forgejo 'registers with and picks up jobs'
-> otcKubernetes.edpCluster.garmService 'retrieves bootstrap information'
}
}
}
}
views {
deployment view forgejoGarmArchitecture {
title 'Architecture of Forgejo, Garm and Edge Connect'
description 'Deployment architecture showing GARM orchestrating ephemeral runners on Edge Connect for Forgejo Actions'
include
otcKubernetes,
otcKubernetes.*,
otcKubernetes.**,
edgeConnectEnv,
edgeConnectEnv.*,
edgeConnectEnv.**
style otcKubernetes {
color blue
}
style edgeConnectEnv {
color green
}
}
}