feat(c4-arch): created edp-as.idp.view. added new elemenst api and garfana. refactored forgejo, it also contains git and collaboration. rmeoved repos from forgejo
This commit is contained in:
parent
e5d387ba3c
commit
3d43f58742
11 changed files with 84 additions and 45 deletions
16
likec4/models/components/application-specification.c4
Normal file
16
likec4/models/components/application-specification.c4
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
model {
|
||||||
|
component applicationspecification "application-specification" {
|
||||||
|
description 'The application specification describes the application and its components. It is used to generate the application and its components.'
|
||||||
|
|
||||||
|
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
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
9
likec4/models/containers/api.c4
Normal file
9
likec4/models/containers/api.c4
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
model {
|
||||||
|
|
||||||
|
extend edp {
|
||||||
|
container api 'API' {
|
||||||
|
description 'API for the EDP platform'
|
||||||
|
icon tech:swagger
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -18,7 +18,7 @@ model {
|
||||||
argocdAppController -> argocdRedis 'read/write'
|
argocdAppController -> argocdRedis 'read/write'
|
||||||
argocdAppSetController -> argocdRedis 'read/write'
|
argocdAppSetController -> argocdRedis 'read/write'
|
||||||
|
|
||||||
argocdRepoServer -> edp.forgejo.forgejo 'Syncs git repo'
|
argocdRepoServer -> edp.forgejo.forgejogit 'Syncs git repo'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -12,19 +12,12 @@ model {
|
||||||
technology 'Golang'
|
technology 'Golang'
|
||||||
icon tech:go
|
icon tech:go
|
||||||
|
|
||||||
component forgejo 'Git' {
|
component forgejogit 'Git' {
|
||||||
// this is ugly ... basically there should be a logical git component type
|
icon tech:git
|
||||||
// which gets deployed and then can have multiple deployed repos
|
}
|
||||||
component application_gitrepo 'Git App Repo' {
|
|
||||||
description 'Git Application Repository'
|
component forgejocollaboration 'Collaboration' {
|
||||||
technology 'Git'
|
icon tech:github
|
||||||
icon tech:git
|
|
||||||
}
|
|
||||||
component applicationspec_gitrepo 'Git AppSpec Repo' {
|
|
||||||
description 'Git Application Specification Repository'
|
|
||||||
technology 'Git'
|
|
||||||
icon tech:git
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
component forgejoRunner 'Forgejo Actions' {
|
component forgejoRunner 'Forgejo Actions' {
|
||||||
|
@ -42,7 +35,7 @@ model {
|
||||||
icon tech:go
|
icon tech:go
|
||||||
}
|
}
|
||||||
|
|
||||||
forgejoRunner -> forgejo 'executes pipelines'
|
forgejocollaboration -> forgejoRunner 'executes pipelines'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
9
likec4/models/containers/grafana.c4
Normal file
9
likec4/models/containers/grafana.c4
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
model {
|
||||||
|
|
||||||
|
extend edp {
|
||||||
|
container grafana 'Grafana' {
|
||||||
|
description 'Data visualization and monitoring'
|
||||||
|
icon tech:grafana
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -10,7 +10,7 @@ model {
|
||||||
icon tech:nginx
|
icon tech:nginx
|
||||||
}
|
}
|
||||||
|
|
||||||
ingressNginx -> edp.forgejo.forgejo 'https'
|
ingressNginx -> edp.forgejo 'https'
|
||||||
ingressNginx -> edp.keycloak.keycloak 'https'
|
ingressNginx -> edp.keycloak.keycloak 'https'
|
||||||
ingressNginx -> edp.openbao.openbao 'https'
|
ingressNginx -> edp.openbao.openbao 'https'
|
||||||
ingressNginx -> edp.argoCD.argocdServer 'https'
|
ingressNginx -> edp.argoCD.argocdServer 'https'
|
||||||
|
|
|
@ -7,6 +7,10 @@ model {
|
||||||
-> edp.forgejo 'manages code'
|
-> edp.forgejo 'manages code'
|
||||||
-> edp.keycloak 'authenticates'
|
-> edp.keycloak 'authenticates'
|
||||||
-> edp.argoCD 'manages deployments'
|
-> edp.argoCD 'manages deployments'
|
||||||
|
-> edp.grafana 'monitors'
|
||||||
|
-> edp.backstage 'create and maintain apps'
|
||||||
|
-> edp.imageregistry 'pushes and pull images'
|
||||||
|
-> edp.api 'uses API'
|
||||||
}
|
}
|
||||||
platformdeveloper = actor 'Platform Developer' {
|
platformdeveloper = actor 'Platform Developer' {
|
||||||
description 'The EDP engineer'
|
description 'The EDP engineer'
|
||||||
|
|
|
@ -19,7 +19,7 @@ deployment {
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace gitea {
|
namespace gitea {
|
||||||
instanceOf edp.forgejo.forgejo
|
instanceOf edp.forgejo
|
||||||
instanceOf edp.forgejo.forgejoRunner
|
instanceOf edp.forgejo.forgejoRunner
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,24 +0,0 @@
|
||||||
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
|
|
||||||
}
|
|
||||||
}
|
|
32
likec4/views/edp-as-idp.c4
Normal file
32
likec4/views/edp-as-idp.c4
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
views {
|
||||||
|
view idp of edp {
|
||||||
|
title 'EDP as IDP'
|
||||||
|
|
||||||
|
include developer
|
||||||
|
exclude element.tag = #internal
|
||||||
|
|
||||||
|
style * {
|
||||||
|
opacity 25%
|
||||||
|
}
|
||||||
|
group 'EDP' {
|
||||||
|
group 'Developer Control Plane' {
|
||||||
|
group 'Frontend' {
|
||||||
|
include backstage, api
|
||||||
|
}
|
||||||
|
group 'Version Control' {
|
||||||
|
include forgejocollaboration, forgejo.forgejogit, applicationspecification.application_gitrepo, applicationspecification.applicationspec_gitrepo
|
||||||
|
}
|
||||||
|
}
|
||||||
|
group 'Integration & Delivery Plane' {
|
||||||
|
include forgejo.forgejoRunner, imageregistry, argoCD
|
||||||
|
}
|
||||||
|
group 'Monitoring Plane' {
|
||||||
|
include monitoring, grafana
|
||||||
|
}
|
||||||
|
group 'Security Plane' {
|
||||||
|
include keycloak, velero, externalSecrets, openbao
|
||||||
|
}
|
||||||
|
}
|
||||||
|
autoLayout TopBottom
|
||||||
|
}
|
||||||
|
}
|
|
@ -12,13 +12,13 @@ views {
|
||||||
color secondary
|
color secondary
|
||||||
}
|
}
|
||||||
|
|
||||||
localbox.git -> edp.forgejo.forgejo.application_gitrepo 'git push'
|
localbox.git -> edp.forgejogit 'git push'
|
||||||
edp.forgejo.forgejo.application_gitrepo -> edp.forgejoRunner 'on push'
|
edp.forgejo.forgejogit -> edp.forgejoRunner 'on push'
|
||||||
|
|
||||||
edp.forgejoRunner -> edp.forgejo.imageregistry 'pushes new image'
|
edp.forgejoRunner -> edp.forgejo.imageregistry 'pushes new image'
|
||||||
edp.forgejoRunner -> edp.forgejo.forgejo.applicationspec_gitrepo 'pushes new appspec'
|
edp.forgejoRunner -> edp.forgejo.forgejogit 'pushes new appspec'
|
||||||
|
|
||||||
edp.forgejo.forgejo.applicationspec_gitrepo -> edp.argoCD 'triggers deployment'
|
edp.forgejo.forgejogit -> edp.argoCD 'triggers deployment'
|
||||||
edp.argoCD -> cloud 'deploys application'
|
edp.argoCD -> cloud 'deploys application'
|
||||||
cloud -> edp.forgejo.imageregistry 'pulls image'
|
cloud -> edp.forgejo.imageregistry 'pulls image'
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue