diff --git a/likec4/README.md b/likec4/README.md new file mode 100644 index 0000000..dcb10cc --- /dev/null +++ b/likec4/README.md @@ -0,0 +1 @@ +Run ´npx likec4 start´ to start dev server \ No newline at end of file diff --git a/likec4/deployment.c4 b/likec4/deployment.c4 new file mode 100644 index 0000000..d1bb2ae --- /dev/null +++ b/likec4/deployment.c4 @@ -0,0 +1,26 @@ +// Deployment model +deployment { + + node customerNode { + instanceOf developer + } + + environment local 'Local' { + technology 'Kind' + icon tech:kubernetes + + instanceOf edp.ui + instanceOf edp.forgejo + } +} + +views { + deployment view index { + title 'Local Deployment' + + include + *, + local.** + } +} + diff --git a/likec4/model.c4 b/likec4/model.c4 new file mode 100644 index 0000000..3779f90 --- /dev/null +++ b/likec4/model.c4 @@ -0,0 +1,110 @@ +model { + developer = actor 'Developer' { + description 'The regular user of the platform' + } + + edp = system 'EDP' { + container ui 'Backstage' { + description 'Deeveloper Portal' + style { + icon tech:react + shape browser + } + } + container forgejo 'CI/CD Service' { + description ' + Fully managed DevOps Platfrom + offering capabilities like + code version controling + collaboration and ticketing + and security scanning + ' + component forgejo 'Forgejo' { + technology 'Golang' + icon tech:go + } + component forgejoRunner 'CI Runner'{ + technology 'Golang' + icon tech:go + style { + multiple true + } + } + forgejoRunner -> forgejo 'executes pipelines' + } + container keycloak 'Keycloak' { + description ' + Single Sign On for all EDP products + ' + component keycloak 'Keycloak' { + technology 'Keycloak' + icon tech:java + } + component postgres 'Postgres' { + technology 'Postgresql' + icon tech:postgresql + } + // -> db 'reads/writes' + } + + container crossplane 'Crossplane' { + description 'Managing cloud infrastructure' + component crossplane 'Crossplane' + component crossplaneFunction 'Function Patch and Transform' + component crossplaneRbacManager 'RBAC Manager' + component providerArgoCD 'ArgoCD Provider' + component providerKind 'Kind Provider' + component providerShell 'Shell Provider' + } + + /*db = component 'Database' { + icon tech:postgresql + style { + shape storage + } + }*/ + + // UI requests data from the Backend + // ui -> backend 'fetches via HTTPS' + } + + developer -> ui 'manages project' + developer -> forgejo 'manages code' + developer -> keycloak 'authenticates' +} + +views { + + view overview { + title 'Landscape view' + + include * + } + + view edp of edp { + title 'Context view' + include * + + style * { + opacity 25% + } + style developer { + color muted + } + } + + view keycloak of keycloak { + include * + } + + view forgejo of forgejo { + include * + } + + view crossplane of crossplane { + include * + } + +} + + diff --git a/likec4/spec.c4 b/likec4/spec.c4 new file mode 100644 index 0000000..da792ce --- /dev/null +++ b/likec4/spec.c4 @@ -0,0 +1,21 @@ +specification { + element actor { + style { + shape person + } + } + element system + element component + element container { + style { + opacity 20% + } + } + + deploymentNode node + deploymentNode environment { + style { + color gray + } + } +} \ No newline at end of file