refactor(c4): added infrastructureressource as deploymentNode, renamed models and views in hierarchical naming syntax

This commit is contained in:
Stephan Lo 2025-05-07 11:10:12 +02:00
parent 95cbf775f2
commit 06c4eb08fa
10 changed files with 123 additions and 65 deletions

View file

@ -2,7 +2,10 @@
deployment { deployment {
cloud otc-edp-per-tenant 'OTC EDP per tenant cluster' { cloud otc-edp-per-tenant 'OTC EDP per tenant cluster' {
description 'OTC cluster environment for EDP' description 'OTC environment for EDP. EDP is the environment a customer gets from us.
This is kubernetes clusters and other infrastructure like nodes and vms, and platform services. All is set up by IaC-pipelines in the Foundry.
'
technology 'OTC' technology 'OTC'
kubernetes cce 'OTC CCE' { kubernetes cce 'OTC CCE' {
@ -33,6 +36,13 @@ deployment {
instanceOf objectstorage instanceOf objectstorage
instanceOf elasticsearch instanceOf elasticsearch
} }
computeressource forgejoRunnerInfrastructure 'EDP ForgejoRunner infrastructure' {
description 'Infrastructure for Forgejo runners like pods, vms, lxds, etc'
instanceOf forgejoRunner {
-> cce.edp.forgejo 'registers'
}
}
} }
} }

View file

@ -1,9 +1,9 @@
// Deployment model // Deployment model
deployment { deployment {
cloud otc-edpFoundry 'OTC EDP Foundry kubernetes clusters' { cloud otc-edpFoundry 'OTC EDP Foundry Central Service clusters' {
description ' description '
OTC kubernetes cluster environment for EDP Foundry, set up by IaC terraform. OTC environments for the central EDP Foundry services. This is kubernetes clusters and other infrastructure like nodes and vms, and optionally platform services. All is set up by IaC terraform and edpbuilder.
A tenant is a folder in Foundry-Config-Forgejo. On merge triggers reconciliation to EDP. A tenant is a folder in Foundry-Config-Forgejo. On merge triggers reconciliation to EDP.
Optionally we will have a WebUI/API/CLI Optionally we will have a WebUI/API/CLI
@ -19,7 +19,7 @@ deployment {
instanceOf edp.argoCD instanceOf edp.argoCD
instanceOf edp.forgejo { instanceOf edp.forgejo {
-> workflowSetupEDPInfrastructure.forgejoRunner 'invokes' -> workflowSetupEDPInfrastructure.forgejoRunner 'invokes'
-> workflowSetupArgoCD.forgejoRunner 'invokes' -> workflowSetupArgoCDInfrastructure.forgejoRunner 'invokes'
} }
instanceOf edp.externalSecrets instanceOf edp.externalSecrets
instanceOf edp.openbao instanceOf edp.openbao
@ -32,7 +32,7 @@ deployment {
instanceOf edp.loki instanceOf edp.loki
} }
} }
node workflowSetupEDPInfrastructure 'EDP infrastructure Workflow' { computeressource workflowSetupEDPInfrastructure 'EDP infrastructure Workflow' {
description 'EDP infrastructure Workflow' description 'EDP infrastructure Workflow'
instanceOf forgejoRunner { instanceOf forgejoRunner {
@ -48,7 +48,7 @@ deployment {
} }
} }
node workflowSetupArgoCD 'EDP ArgoCD Workflow' { computeressource workflowSetupArgoCDInfrastructure 'EDP ArgoCD Workflow' {
description 'EDP Setup ArgoCD Workflow' description 'EDP Setup ArgoCD Workflow'
instanceOf forgejoRunner { instanceOf forgejoRunner {
-> forgejoRunnerWorker 'runs' -> forgejoRunnerWorker 'runs'
@ -61,6 +61,14 @@ deployment {
} }
} }
computeressource forgejoRunnerInfrastructure 'EDP ForgejoRunner infrastructure' {
description 'Infrastructure for Forgejo runners like pods, vms, lxds, etc'
instanceOf forgejoRunner {
-> cce.internalServices.forgejo 'registers'
}
}
} }
} }

View file

@ -25,7 +25,7 @@ specification {
deploymentNode cloud deploymentNode cloud
deploymentNode environment deploymentNode environment
deploymentNode node deploymentNode computeressource
deploymentNode paas deploymentNode paas
deploymentNode kubernetes deploymentNode kubernetes
deploymentNode cluster deploymentNode cluster

View file

@ -1,14 +0,0 @@
views {
deployment view edp-foundry-central-service {
title 'EDP Foundry Central Service'
include
otc-edpFoundry.*,
otc-edpFoundry.internalServices,
otc-edpFoundry.internalServices.*,
otc-edpFoundry.centralObservability,
otc-edpFoundry.centralObservability.*,
otc-edpFoundry.workflow.*
}
}

View file

@ -8,10 +8,17 @@ views {
otc-edp-per-tenant.cce, otc-edp-per-tenant.cce,
otc-edp-per-tenant.cce.*, otc-edp-per-tenant.cce.*,
otc-edp-per-tenant.cce.**, otc-edp-per-tenant.cce.**,
otc-edp-per-tenant.cce.forgejoRunner,
otc-edp-per-tenant.cce.externalSecrets, otc-edp-per-tenant.cce.externalSecrets,
otc-edp-per-tenant.forgejoRunnerInfrastructure,
otc-edp-per-tenant.forgejoRunnerInfrastructure.*,
otc-edp-per-tenant.cloudServices, otc-edp-per-tenant.cloudServices,
otc-edp-per-tenant.cloudServices.* otc-edp-per-tenant.cloudServices.*
style otc-edp-per-tenant {
color slate
}
style otc-edp-per-tenant.cce {
color red
}
} }
} }

View file

@ -0,0 +1,53 @@
views {
deployment view forgejo-as-a-service {
title 'Forgejo as a Service'
include
otc-edpFoundry.*,
otc-edpFoundry.internalServices,
otc-edpFoundry.internalServices.*,
otc-edpFoundry.centralObservability,
otc-edpFoundry.centralObservability.*,
otc-edpFoundry.workflowSetupEDPInfrastructure,
otc-edpFoundry.workflowSetupEDPInfrastructure.*,
otc-edpFoundry.workflowSetupArgoCDInfrastructure,
otc-edpFoundry.workflowSetupArgoCDInfrastructure.*,
otc-edpFoundry.forgejoRunnerInfrastructure,
otc-edpFoundry.forgejoRunnerInfrastructure.*,
otc-edp-per-tenant,
otc-edp-per-tenant.*,
otc-edp-per-tenant.cce,
otc-edp-per-tenant.cce.*,
otc-edp-per-tenant.cce.**,
otc-edp-per-tenant.cce.externalSecrets,
otc-edp-per-tenant.forgejoRunnerInfrastructure,
otc-edp-per-tenant.forgejoRunnerInfrastructure.*,
otc-edp-per-tenant.cloudServices,
otc-edp-per-tenant.cloudServices.*
style otc-edp-per-tenant {
color slate
}
style otc-edpFoundry {
color slate
}
style otc-edpFoundry.workflowSetupEDPInfrastructure {
color amber
}
style otc-edpFoundry.workflowSetupArgoCDInfrastructure {
color amber
}
style otc-edpFoundry.forgejoRunnerInfrastructure {
color green
}
style otc-edp-per-tenant.cce {
color red
}
style otc-edpFoundry.cce {
color red
}
}
}

View file

@ -0,0 +1,37 @@
views {
deployment view edp-foundry-central-service {
title 'EDP Foundry Central Service'
include
otc-edpFoundry,
otc-edpFoundry.*,
otc-edpFoundry.internalServices,
otc-edpFoundry.internalServices.*,
otc-edpFoundry.centralObservability,
otc-edpFoundry.centralObservability.*,
otc-edpFoundry.workflowSetupEDPInfrastructure,
otc-edpFoundry.workflowSetupEDPInfrastructure.*,
otc-edpFoundry.workflowSetupArgoCDInfrastructure,
otc-edpFoundry.workflowSetupArgoCDInfrastructure.*,
otc-edpFoundry.workflowSetupArgoCDInfrastructure.*,
otc-edpFoundry.forgejoRunnerInfrastructure,
otc-edpFoundry.forgejoRunnerInfrastructure.*
style otc-edpFoundry.forgejoRunnerInfrastructure {
color green
}
style otc-edpFoundry.workflowSetupEDPInfrastructure {
color amber
}
style otc-edpFoundry.workflowSetupArgoCDInfrastructure {
color amber
}
style otc-edpFoundry {
color slate
}
style otc-edpFoundry.cce {
color red
}
}
}

View file

@ -1,43 +0,0 @@
views {
/**
* @likec4-generated(v1)
* iKRoYXNo2SgxYWM2ZTU2ZTY5MjgxZDY3YWQ0Y2EzOTNkZmE3MWM4MDExNWY0ZWJjqmF1dG9MYXlvdXSBqWRpcmVjdGlvbqJUQqF4JqF50fndpXdpZHRozRRepmhlaWdodM0NjKVub2Rlc94AIa5vdGMtZWRwRm91bmRyeYKhYpQmKM0MIc0FN6Fjw7JvdGMtZWRwLXBlci10ZW5hbnSCoWKUzQO40fndzQYdzQV0oWPDsm90Yy1lZHBGb3VuZHJ5LmNjZYKhYpROX80H3M0EmKFjw9ktb3RjLWVkcEZvdW5kcnkud29ya2Zsb3dTZXR1cEVEUEluZnJhc3RydWN0dXJlgqFilM0IY8yDzQGyzQPHoWPD2SJvdGMtZWRwRm91bmRyeS53b3JrZmxvd1NldHVwQXJnb0NEgqFilM0Kbc0BcM0Bss0Dx6Fjw7ZvdGMtZWRwLXBlci10ZW5hbnQuY2NlgqFilM0D4NH6FM0D0M0E7KFjw9kg
* b3RjLWVkcC1wZXItdGVuYW50LmNsb3VkU2VydmljZXOCoWKUzQfm0fpCzQHHzQTnoWPD2SNvdGMtZWRwRm91bmRyeS5jY2UuaW50ZXJuYWxTZXJ2aWNlc4KhYpR2zKfNA+rNBCihY8PZJ290Yy1lZHBGb3VuZHJ5LmNjZS5jZW50cmFsT2JzZXJ2YWJpbGl0eYKhYpTNBJzMls0DZs0CeqFjw9k7b3RjLWVkcEZvdW5kcnkud29ya2Zsb3dTZXR1cEVEUEluZnJhc3RydWN0dXJlLmZvcmdlam9SdW5uZXKCoWKUzQiczMrNAUDMtKFjwtlBb3RjLWVkcEZvdW5kcnkud29ya2Zsb3dTZXR1cEVEUEluZnJhc3RydWN0dXJlLmZvcmdlam9SdW5uZXJXb3JrZXKCoWKUzQiVzQIXzQFNzLShY8LZOW90Yy1lZHBGb3VuZHJ5LndvcmtmbG93U2V0dXBFRFBJbmZyYXN0cnVjdHVyZS5l
* ZHB3b3JrZmxvd4KhYpTNCJnNA2TNAUbMtKFjwtkwb3RjLWVkcEZvdW5kcnkud29ya2Zsb3dTZXR1cEFyZ29DRC5mb3JnZWpvUnVubmVygqFilM0Kps0Bt80BQMy0oWPC2TZvdGMtZWRwRm91bmRyeS53b3JrZmxvd1NldHVwQXJnb0NELmZvcmdlam9SdW5uZXJXb3JrZXKCoWKUzQqfzQMEzQFNzLShY8LZLm90Yy1lZHBGb3VuZHJ5LndvcmtmbG93U2V0dXBBcmdvQ0QuZWRwd29ya2Zsb3eCoWKUzQqjzQRRzQFGzLShY8K6b3RjLWVkcC1wZXItdGVuYW50LmNjZS5lZHCCoWKUzQQI0fpLzQOAzQSNoWPD2SlvdGMtZWRwLXBlci10ZW5hbnQuY2xvdWRTZXJ2aWNlcy5wb3N0Z3Jlc4KhYpTNCBDR/k3NAWLMtKFjwtkmb3RjLWVkcC1wZXItdGVuYW50LmNsb3VkU2Vydmlj
* ZXMucmVkaXOCoWKUzQge0fp5zQFnzLShY8LZLm90Yy1lZHAtcGVyLXRlbmFudC5jbG91ZFNlcnZpY2VzLm9iamVjdHN0b3JhZ2WCoWKUzQgY0fuazQFAzLShY8LZLm90Yy1lZHAtcGVyLXRlbmFudC5jbG91ZFNlcnZpY2VzLmVsYXN0aWNzZWFyY2iCoWKUzQgL0f0IzQFyzLShY8LZM290Yy1lZHBGb3VuZHJ5LmNjZS5pbnRlcm5hbFNlcnZpY2VzLmV4dGVybmFsU2VjcmV0c4KhYpTM5czezQFAzLShY8LZMG90Yy1lZHBGb3VuZHJ5LmNjZS5pbnRlcm5hbFNlcnZpY2VzLmluZ3Jlc3NOZ2lueIKhYpTNAu7M3s0BQMy0oWPC2SpvdGMtZWRwRm91bmRyeS5jY2UuaW50ZXJuYWxTZXJ2aWNlcy5hcmdvQ0SCoWKUzQGOzQPyzQFAzLShY8LZK290Yy1lZHBGb3VuZHJ5LmNj
* ZS5pbnRlcm5hbFNlcnZpY2VzLmZvcmdlam+CoWKUzQLkzQIqzQFUzLShY8LZK290Yy1lZHBGb3VuZHJ5LmNjZS5pbnRlcm5hbFNlcnZpY2VzLm9wZW5iYW+CoWKUzJ7NAirNAUDMtKFjwtkvb3RjLWVkcEZvdW5kcnkuY2NlLmNlbnRyYWxPYnNlcnZhYmlsaXR5LmdyYWZhbmGCoWKUzQVRzN7NAVnMtKFjwtkyb3RjLWVkcEZvdW5kcnkuY2NlLmNlbnRyYWxPYnNlcnZhYmlsaXR5LnByb21ldGhldXOCoWKUzQTOzQIqzQFAzLShY8LZLG90Yy1lZHBGb3VuZHJ5LmNjZS5jZW50cmFsT2JzZXJ2YWJpbGl0eS5sb2tpgqFilM0GkM0CKs0BQMy0oWPC2SdvdGMtZWRwLXBlci10ZW5hbnQuY2NlLmVkcC5pbmdyZXNzTmdpbniCoWKUzQRe0fqCzQFAzLShY8LZIW90Yy1lZHAt
* cGVyLXRlbmFudC5jY2UuZWRwLmFyZ29DRIKhYpTNBDDR/fzNAUDMtKFjwtkib3RjLWVkcC1wZXItdGVuYW50LmNjZS5lZHAuZm9yZ2Vqb4KhYpTNBcbR+87NAVTMtKFjwtkob3RjLWVkcC1wZXItdGVuYW50LmNjZS5lZHAuZm9yZ2Vqb1J1bm5lcoKhYpTNBajR/SnNAUDMtKFjwtkqb3RjLWVkcC1wZXItdGVuYW50LmNjZS5lZHAuZXh0ZXJuYWxTZWNyZXRzgqFilM0GINH6gs0BQMy0oWPCpWVkZ2Vz3gAUpzE3a3J1MDGDomNwkYKheMtAhdJvQ4csNKF5y0B8pmZmZmZmoWyEoXjNAnqhec0CrKV3aWR0aCKmaGVpZ2h0EqFwmpLNAvrNAZGSzQKuzQHLks0CYc0CH5LNAmHNAoOSzQJhzQKDks0CYc0Cg5LNAmHNBnqSzQJhzQbAks0CYc0HD5LNAmHNB0ynMTcwcGMzbIKh
* bISheM0DjqF5zQHZpXdpZHRoIqZoZWlnaHQSoXCUks0Djs0BkZLNA47NAb2SzQOOzQHzks0Djs0CIKZ1NW9xYXSCoWyEoXjNAkShec0BvaV3aWR0aCKmaGVpZ2h0EqFwl5LNAu7NAXCSzQKrzQGKks0CXs0BrJLNAhzNAdOSzQH0zQHqks0BzM0CCJLNAanNAiSmcXlreGxtgqFshKF4zQW4oXnNAdmld2lkdGjMiqZoZWlnaHQSoXCUks0F180BkZLNBcTNAb6SzQWtzQHzks0Fmc0CIaZ5djQ5ejWCoWyEoXjNBpOhec0B2qV3aWR0aDWmaGVpZ2h0EqFwlJLNBlDNAZGSzQZ6zQG+ks0GrM0B9ZLNBtfNAiOmODQzOTd3g6JjcJGCoXjLQJJszMzMzM2hectAfjJNLaa3HKFshKF4zQZYoXnNAY+ld2lkdGgzpmhlaWdodBKhcJeSzQQTzQLeks0ENM0C8ZLNBFjNAwSSzQR8zQMQ
* ks0F480Dk5LNB6XNA8OSzQiVzQPVpzFobmlsNjKDomNwkYKheMtAoneXhjoecqF5y0B6vmZmZmZmoWyEoXjNCTyhec0By6V3aWR0aB+maGVpZ2h0EqFwlJLNCT/NBDmSzQk/zQRlks0JP80EmpLNCT/NBMimZWt6enR3g6JjcJGCoXjLQKJ3aHnF4Y6hectAh8czMzMzM6FshKF4zQk8oXnNAxild2lkdGg8pmhlaWdodBKhcJSSzQk/zQWGks0JP80FspLNCT/NBeeSzQk/zQYVpzF5NHBzNmWDomNwkYKheMtAlN8zMzMzM6F5y0CBGHkzS6GFoWyEoXjNB2uhec0CEaV3aWR0aDOmaGVpZ2h0EqFwmpLNBAzNAt6SzQQuzQLzks0EVc0DBZLNBHzNAxCSzQTKzQMnks0J6s0DJZLNCjjNAz6SzQpkzQNMks0Kj80DZZLNCrTNA4CnMXU2ZXdxeYOiY3CRgqF4y0Cmi5eGOh5yoXnL
* QITHMzMzMzOhbISheM0LRqF5zQK4pXdpZHRoH6ZoZWlnaHQSoXCUks0LI80EOZLNCyPNBGWSzQsjzQSaks0LI80EyKcxZnlhNHNrg6JjcJGCoXjLQKaLaHnF4Y6hectAjy8zMzMzM6FshKF4zQtGoXnNBAWld2lkdGg8pmhlaWdodBKhcJSSzQsjzQWGks0LI80FspLNCyPNBeeSzQsjzQYVpmd3b2p3dYKiY3CRgqF4y0CiYiJdbgMYoXnLQIUFmZmZmZqhcJSSzQvGzQbNks0MHM0G+JLNDITNBy2SzQzbzQdZpzFpcjcwZGSDomNwkYKheMtAk7lbeDvUR6F50fwLoWyEoXjNBOehedH8maV3aWR0aCKmaGVpZ2h0EqFwmpLNDYTNAZGSzQ2EzQHUks0NhM0CMZLNDYTNAoOSzQ2EzQKDks0NhM0Cg5LNDYTNBnqSzQ2EzQbAks0NhM0HD5LNDYTNB0ynMWtyMXdnMYOiY3CRgqF4
* y0CWVHtfnU0coXnLwJJxmZmZmZqhbISheM0Ft6F50fuCpXdpZHRoIqZoZWlnaHQSoXCUks0N580BkZLNDhrNAb6SzQ5XzQH2ks0Oi80CJKY4bXN1MXGComNwkYKheMtAnQ072oBcTqF5y8CHomZmZmZmoXCaks0Pcs0C3pLND7nNAx2SzRAFzQN3ks0QBc0D3pLNEAXNA96SzRAFzQPeks0QBc0GepLNEAXNBtWSzRBJzQceks0Qk80HUacxMjBxZTVvgqJjcJGCoXjLQJ2cyL78i++hecvAkYkzMzMzM6Fwl5LND6DNAtiSzQ/MzQLuks0P+80DB5LNECbNAx+SzRBazQM9ks0Qks0DYJLNEMPNA4CmZWFsaWF4gqJjcJGCoXjLQJ2YzMzMzM2hecvAj29gFnGfNqFwl5LND6DNApaSzRBQzQKsks0RZ80C3JLNEkXNAz6SzRJrzQNPks0Skc0DZ5LNErPNA3+nMXRyajV1NoKiY3CR
* gqF4y0CdmjTUoHLLoXnLwIqw18vE5YuhcJeSzQ+gzQKHks0Qns0CjpLNEobNAq+SzRQHzQM+ks0UMs0DTpLNFF7NA2eSzRSEzQOApzFhc20zOHqDomNwkYKheMtAokM666dVuaF5y0CA+MzMzMzNoWyEoXjNCRShec0BR6V3aWR0aMyYpmhlaWdodBKhcJqSzQm8zQbTks0J3s0G55LNCgTNBvqSzQoqzQcFks0LdM0HaZLNDuXNBxiSzRA4zQdWks0QRc0HWJLNEFPNB1uSzRBgzQdfpzFvcjgzMXmDomNwkYKheMtAoNEui0/cGKF5y0CANmZmZmZmoWyEoXjNB/ihec0BHqV3aWR0aMyPpmhlaWdodBKhcJ2SzQnizQY1ks0J+s0GLJLNChLNBiWSzQoqzQYfks0LT80F1pLNDKTNBluSzQykzQUtks0MpM0Cg5LNDKTNAoOSzQykzQKDks0MpM0CbJLNDKjNAlWSzQyvzQI+
*/
deployment view forgejo-as-a-service {
title 'Forgejo as a Service'
include
otc-edpFoundry.*,
otc-edpFoundry.internalServices,
otc-edpFoundry.internalServices.*,
otc-edpFoundry.centralObservability,
otc-edpFoundry.centralObservability.*,
otc-edpFoundry.workflowSetupEDPInfrastructure,
otc-edpFoundry.workflowSetupEDPInfrastructure.*,
otc-edpFoundry.workflowSetupArgoCD,
otc-edpFoundry.workflowSetupArgoCD.*,
otc-edp-per-tenant,
otc-edp-per-tenant.*,
otc-edp-per-tenant.cce,
otc-edp-per-tenant.cce.*,
otc-edp-per-tenant.cce.**,
otc-edp-per-tenant.cce.forgejoRunner,
otc-edp-per-tenant.cce.externalSecrets,
otc-edp-per-tenant.cloudServices,
otc-edp-per-tenant.cloudServices.*
}
}