diff --git a/likec4/doc/developer-landscape/cicd-outerloop-2.png b/likec4/doc/developer-landscape/cicd-outerloop-2.png new file mode 100644 index 0000000..6199ff1 Binary files /dev/null and b/likec4/doc/developer-landscape/cicd-outerloop-2.png differ diff --git a/likec4/doc/developer-landscape/cicd-outerloop-draft.png b/likec4/doc/developer-landscape/cicd-outerloop-draft.png new file mode 100644 index 0000000..f56ef30 Binary files /dev/null and b/likec4/doc/developer-landscape/cicd-outerloop-draft.png differ diff --git a/likec4/doc/developer-landscape/cicd-outerloop.png b/likec4/doc/developer-landscape/cicd-outerloop.png new file mode 100644 index 0000000..29b5122 Binary files /dev/null and b/likec4/doc/developer-landscape/cicd-outerloop.png differ diff --git a/likec4/doc/developer-landscape/desc.md b/likec4/doc/developer-landscape/desc.md index db6ebbc..766557b 100644 --- a/likec4/doc/developer-landscape/desc.md +++ b/likec4/doc/developer-landscape/desc.md @@ -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) \ No newline at end of file +![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) \ No newline at end of file diff --git a/likec4/doc/developer-landscape/developer-landscape-view-c4-2.png b/likec4/doc/developer-landscape/developer-landscape-view-c4-2.png new file mode 100644 index 0000000..eb9b073 Binary files /dev/null and b/likec4/doc/developer-landscape/developer-landscape-view-c4-2.png differ diff --git a/likec4/models/containers/forgejo.c4 b/likec4/models/containers/forgejo.c4 index 65d2b99..d6e205b 100644 --- a/likec4/models/containers/forgejo.c4 +++ b/likec4/models/containers/forgejo.c4 @@ -9,12 +9,26 @@ model { collaboration and ticketing and security scanning ' - component forgejo 'Forgejo' { - technology 'Golang' - icon tech:go + 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' } } diff --git a/likec4/models/context/localbox.c4 b/likec4/models/context/localbox.c4 index 4290aed..3b1dea6 100644 --- a/likec4/models/context/localbox.c4 +++ b/likec4/models/context/localbox.c4 @@ -12,5 +12,11 @@ model { color primary } } + + git = component 'git' { + description 'local git' + technology 'Git' + icon tech:git + } } } diff --git a/likec4/models/deployment/git.c4 b/likec4/models/deployment/git.c4 new file mode 100644 index 0000000..ebdd689 --- /dev/null +++ b/likec4/models/deployment/git.c4 @@ -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 + } +} \ No newline at end of file diff --git a/likec4/views/gitops-inner-outer-loop.c4 b/likec4/views/gitops-inner-outer-loop.c4 new file mode 100644 index 0000000..3f906dc --- /dev/null +++ b/likec4/views/gitops-inner-outer-loop.c4 @@ -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' + } + +} \ No newline at end of file