feat(c4-context): added/changed context of EDFoundry/EDP

This commit is contained in:
Stephan Lo 2025-04-06 17:13:31 +02:00
parent d8a5101efb
commit 884be568ab
14 changed files with 210 additions and 7 deletions

21
.vscode/settings.json vendored
View file

@ -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"
}
}

View file

@ -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"
}
}

View file

@ -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'
}
}

6
likec4/context/cloud.c4 Normal file
View file

@ -0,0 +1,6 @@
model {
cloud = system 'Cloud' {
description 'Cloud environments'
technology 'IaaS/PaaS'
}
}

View file

@ -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 {

View file

@ -0,0 +1,6 @@
model {
enterprise = system 'Customers Enterprise Systems' {
description 'The customers enterprise systems'
-> cloud 'probably some app specific dependencies'
}
}

6
likec4/context/desc.md Normal file
View file

@ -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)

View file

@ -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"
}
}

View file

@ -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'
}
developer -> ui 'manages project'
developer -> forgejo 'manages code'
developer -> keycloak 'authenticates'
developer -> argoCD 'manages deployments'
developer -> edp 'outer loop development'
-> localbox // inner-outer loop synchronization
}
}

View file

@ -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'
}
}

BIN
likec4/context/localdev.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 238 KiB

14
likec4/devbox.json Normal file
View file

@ -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"
]
}
}
}

73
likec4/devbox.lock Normal file
View file

@ -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"
}
}
}
}
}