diff --git a/.vscode/settings.json b/.vscode/settings.json index dabfedd..2e858b6 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,3 +1,22 @@ { - "peacock.color": "#832561" + "peacock.color": "#832561", + "workbench.colorCustomizations": { + "activityBar.activeBackground": "#ab307e", + "activityBar.background": "#ab307e", + "activityBar.foreground": "#e7e7e7", + "activityBar.inactiveForeground": "#e7e7e799", + "activityBarBadge.background": "#25320e", + "activityBarBadge.foreground": "#e7e7e7", + "commandCenter.border": "#e7e7e799", + "sash.hoverBorder": "#ab307e", + "statusBar.background": "#832561", + "statusBar.foreground": "#e7e7e7", + "statusBarItem.hoverBackground": "#ab307e", + "statusBarItem.remoteBackground": "#832561", + "statusBarItem.remoteForeground": "#e7e7e7", + "titleBar.activeBackground": "#832561", + "titleBar.activeForeground": "#e7e7e7", + "titleBar.inactiveBackground": "#83256199", + "titleBar.inactiveForeground": "#e7e7e799" + } } \ No newline at end of file diff --git a/likec4/components/tools.c4 b/likec4/components/tools.c4 new file mode 100644 index 0000000..8484713 --- /dev/null +++ b/likec4/components/tools.c4 @@ -0,0 +1,13 @@ +model { + component edfbuilder "edfbuilder" { + description 'EDP Foundry Builder' + technology 'Golang' + icon tech:go + style { + shape rectangle + } + -> edf "boots one" + platformdeveloper -> edfbuilder "runs" + } + +} \ No newline at end of file diff --git a/likec4/context/actors.c4 b/likec4/context/actors.c4 index 6409c13..116d2d1 100644 --- a/likec4/context/actors.c4 +++ b/likec4/context/actors.c4 @@ -1,5 +1,30 @@ model { developer = actor 'Developer' { description 'The regular user of the platform' + -> localbox 'inner loop development' + -> edp 'outer loop development' + -> edp.ui 'manages project' + -> edp.forgejo 'manages code' + -> edp.keycloak 'authenticates' + -> edp.argoCD 'manages deployments' + } + platformdeveloper = actor 'Platform Developer' { + description 'The EDP engineer' + style { + color gray + shape person + } + } + otherProductLifecycleRoles = actor 'Reviewer, Tester, Auditors, Operators' { + description 'The EDP engineer' + -> edp 'act according to responibility' + } + customers = actor 'End Customers' { + description 'Consumers of your Application' + style { + color amber + shape person + } + -> cloud 'uses your app' } } \ No newline at end of file diff --git a/likec4/context/cloud.c4 b/likec4/context/cloud.c4 new file mode 100644 index 0000000..4dd09b3 --- /dev/null +++ b/likec4/context/cloud.c4 @@ -0,0 +1,6 @@ +model { + cloud = system 'Cloud' { + description 'Cloud environments' + technology 'IaaS/PaaS' + } +} diff --git a/likec4/context/context-view.c4 b/likec4/context/context-view.c4 index 8d789e9..3f1598f 100644 --- a/likec4/context/context-view.c4 +++ b/likec4/context/context-view.c4 @@ -2,9 +2,33 @@ views { view overview { title 'Landscape view' + autoLayout LeftRight 100 100 include * + exclude developer, localbox, edp, otherProductLifecycleRoles exclude element.kind = workflow + + group 'developer-scope' { + color green + opacity 20% + border none + include developer + include otherProductLifecycleRoles + + group 'Devops inner-loop' { + color gray + opacity 30% + border none + + include localbox + } + group 'Devops outer-loop' { + color gray + opacity 30% + border none + include edp + } + } } view edp of edp { diff --git a/likec4/context/customer-systems.c4 b/likec4/context/customer-systems.c4 new file mode 100644 index 0000000..b1f7c64 --- /dev/null +++ b/likec4/context/customer-systems.c4 @@ -0,0 +1,6 @@ +model { + enterprise = system 'Customers Enterprise Systems' { + description 'The customers enterprise systems' + -> cloud 'probably some app specific dependencies' + } +} diff --git a/likec4/context/desc.md b/likec4/context/desc.md new file mode 100644 index 0000000..70d35a3 --- /dev/null +++ b/likec4/context/desc.md @@ -0,0 +1,6 @@ +# Containers + +## Inner loop, outer loop + +![alt text](localdev.png) +* [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) \ No newline at end of file diff --git a/likec4/context/edfoundry.c4 b/likec4/context/edfoundry.c4 new file mode 100644 index 0000000..fdc777b --- /dev/null +++ b/likec4/context/edfoundry.c4 @@ -0,0 +1,9 @@ +model { + edf = system 'EDF' { + description 'EDP Foundry, the EDP builder' + technology 'Kubernetes' + icon tech:kubernetes + -> edp 'builds many' + platformdeveloper -> edf "develops EDP and EDF" + } +} \ No newline at end of file diff --git a/likec4/containers/edp-views.c4 b/likec4/context/edp-views.c4 similarity index 100% rename from likec4/containers/edp-views.c4 rename to likec4/context/edp-views.c4 diff --git a/likec4/containers/edp.c4 b/likec4/context/edp.c4 similarity index 96% rename from likec4/containers/edp.c4 rename to likec4/context/edp.c4 index fa37086..55d0f2e 100644 --- a/likec4/containers/edp.c4 +++ b/likec4/context/edp.c4 @@ -1,5 +1,9 @@ model { edp = system 'EDP' { + description 'EDP Edge Development platform' + technology 'Kubernetes' + -> enterprise 'integrates' + -> cloud 'deploys and observes' container ui 'Backstage' { description 'Developer Portal' @@ -216,12 +220,8 @@ model { // UI requests data from the Backend // ui -> backend 'fetches via HTTPS' + + -> localbox // inner-outer loop synchronization } - - developer -> ui 'manages project' - developer -> forgejo 'manages code' - developer -> keycloak 'authenticates' - developer -> argoCD 'manages deployments' - developer -> edp 'outer loop development' } diff --git a/likec4/context/localbox.c4 b/likec4/context/localbox.c4 new file mode 100644 index 0000000..11ea30e --- /dev/null +++ b/likec4/context/localbox.c4 @@ -0,0 +1,8 @@ +model { + localbox = system 'localbox' { + description 'A local development system' + technology 'Linux/Windows/Mac' + -> edp 'inner-outer-loop synchronization' + -> enterprise 'compyny integration' + } +} diff --git a/likec4/context/localdev.png b/likec4/context/localdev.png new file mode 100644 index 0000000..6de1218 Binary files /dev/null and b/likec4/context/localdev.png differ diff --git a/likec4/devbox.json b/likec4/devbox.json new file mode 100644 index 0000000..045ef14 --- /dev/null +++ b/likec4/devbox.json @@ -0,0 +1,14 @@ +{ + "$schema": "https://raw.githubusercontent.com/jetify-com/devbox/0.14.0/.schema/devbox.schema.json", + "packages": ["nodejs@latest"], + "shell": { + "init_hook": [ + "echo 'Welcome to devbox!' > /dev/null" + ], + "scripts": { + "test": [ + "echo \"Error: no test specified\" && exit 1" + ] + } + } +} diff --git a/likec4/devbox.lock b/likec4/devbox.lock new file mode 100644 index 0000000..80ac876 --- /dev/null +++ b/likec4/devbox.lock @@ -0,0 +1,73 @@ +{ + "lockfile_version": "1", + "packages": { + "github:NixOS/nixpkgs/nixpkgs-unstable": { + "resolved": "github:NixOS/nixpkgs/250b695f41e0e2f5afbf15c6b12480de1fe0001b?lastModified=1743814133&narHash=sha256-drDyYyUmjeYGiHmwB9eOPTQRjmrq3Yz26knwmMPLZFk%3D" + }, + "nodejs@latest": { + "last_modified": "2025-03-16T16:17:41Z", + "plugin_version": "0.0.2", + "resolved": "github:NixOS/nixpkgs/8f76cf16b17c51ae0cc8e55488069593f6dab645#nodejs_23", + "source": "devbox-search", + "version": "23.10.0", + "systems": { + "aarch64-darwin": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/dihlffh62qmgzsrxq1igwxicdyr3fn8a-nodejs-23.10.0", + "default": true + }, + { + "name": "libv8", + "path": "/nix/store/ks94i4365833bykrzg3d3mqxnciygyrn-nodejs-23.10.0-libv8" + } + ], + "store_path": "/nix/store/dihlffh62qmgzsrxq1igwxicdyr3fn8a-nodejs-23.10.0" + }, + "aarch64-linux": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/m7j1lf8a4z5bfla1m78pa3y12888hl7b-nodejs-23.10.0", + "default": true + }, + { + "name": "libv8", + "path": "/nix/store/kfvlfxx83n2w2fyb8hiz4p4dc165r035-nodejs-23.10.0-libv8" + } + ], + "store_path": "/nix/store/m7j1lf8a4z5bfla1m78pa3y12888hl7b-nodejs-23.10.0" + }, + "x86_64-darwin": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/nj0d1lc4nanqj7v4ibcgd26m3p5yfb0h-nodejs-23.10.0", + "default": true + }, + { + "name": "libv8", + "path": "/nix/store/k5rvmvqyibamfxa7cfzjfd5ldmi38kf3-nodejs-23.10.0-libv8" + } + ], + "store_path": "/nix/store/nj0d1lc4nanqj7v4ibcgd26m3p5yfb0h-nodejs-23.10.0" + }, + "x86_64-linux": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/m7imcmwi4hschl257dzc33gxciqlf4bm-nodejs-23.10.0", + "default": true + }, + { + "name": "libv8", + "path": "/nix/store/wy7ysxmd2ygdc5zpbhf9ripwgvvvnwsd-nodejs-23.10.0-libv8" + } + ], + "store_path": "/nix/store/m7imcmwi4hschl257dzc33gxciqlf4bm-nodejs-23.10.0" + } + } + } + } +}