feat(c4-arch): added cicd-outerloop dynamic view

This commit is contained in:
Stephan Lo 2025-04-06 23:58:25 +02:00
parent 1192c02435
commit c37cff7665
9 changed files with 102 additions and 7 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 467 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

View file

@ -6,12 +6,31 @@
* [What software delivery leaders need to know about inner & outer loops](https://curiositysoftware.medium.com/what-software-delivery-leaders-need-to-know-about-inner-outer-loops-9da765b0ca2c)
## Draft
* (original articale is here](https://www.curiositysoftware.ie/blog/software-delivery-leaders-guide-inner-outer-loops)
## Landscape
### Draft
![alt text](developer-landscape-view-draft.png)
## C4 Result
### C4
See [developer-landscape](../../views/landscape.c4)
![alt text](developer-landscape-view-c4.png)
![alt text](developer-landscape-view-c4-2.png)
## CI/CD Outerloop
### Draft
![alt text](cicd-outerloop-draft.png)
ArgoCD and Cloud are CD, Forgejo is CI
### C4
![alt text](cicd-outerloop.png)
![alt text](cicd-outerloop-2.png)

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 KiB

View file

@ -9,12 +9,26 @@ model {
collaboration and ticketing
and security scanning
'
component forgejo 'Forgejo' {
technology 'Golang'
icon tech:go
component forgejo 'Git' {
// this is ugly ... basically there should be a logical git component type
// which gets deployed and then can have multiple deployed repos
component application_gitrepo 'Git App Repo' {
description 'Git Application Repository'
technology 'Git'
icon tech:git
}
component applicationspec_gitrepo 'Git AppSpec Repo' {
description 'Git Application Specification Repository'
technology 'Git'
icon tech:git
}
}
component forgejoRunner 'CI Runner' {
component forgejoRunner 'Forgejo Actions' {
description 'Continuous Integration like Github Actions'
technology 'Golang'
icon tech:go
style {
@ -22,6 +36,12 @@ model {
}
}
component imageregistry 'OCI Image Registry' {
description 'Container Image Registry'
technology 'Golang'
icon tech:go
}
forgejoRunner -> forgejo 'executes pipelines'
}
}

View file

@ -12,5 +12,11 @@ model {
color primary
}
}
git = component 'git' {
description 'local git'
technology 'Git'
icon tech:git
}
}
}

View file

@ -0,0 +1,24 @@
deployment {
environment apprepo 'application_repo' {
description 'Git repository for application'
technology 'Git'
icon tech:git
instanceOf edp.forgejo.application_gitrepo
}
environment appspecrepo 'appspec_repo' {
description 'Git repository for application specification'
technology 'Git'
icon tech:git
instanceOf edp.forgejo.application_gitrepo
}
}
views {
deployment view view_git_35 {
title 'Untitled'
include apprepo, appspecrepo
}
}

View file

@ -0,0 +1,26 @@
views {
dynamic view view_gitops-inner-outer-loop_15 {
title 'outer-ci-loop'
include localbox, edp
include edp.forgejo with {
color gray
title 'Forgejo'
}
style edp._ {
color secondary
}
localbox.git -> edp.forgejo.forgejo.application_gitrepo 'git push'
edp.forgejo.forgejo.application_gitrepo -> edp.forgejoRunner 'on push'
edp.forgejoRunner -> edp.forgejo.imageregistry 'pushes new image'
edp.forgejoRunner -> edp.forgejo.forgejo.applicationspec_gitrepo 'pushes new appspec'
edp.forgejo.forgejo.applicationspec_gitrepo -> edp.argoCD 'triggers deployment'
edp.argoCD -> cloud 'deploys application'
cloud -> edp.forgejo.imageregistry 'pulls image'
}
}