From ed0436649497f3ddef6a386bf73779768579e184 Mon Sep 17 00:00:00 2001 From: Stephan Lo Date: Tue, 6 May 2025 21:53:46 +0200 Subject: [PATCH] doc(c4): added overarching otc deployment view --- likec4/deployment/otc-edp-foundry.c4 | 35 ++++++++++++++++- .../{workflow.c4 => workflow-edpbuilder.c4} | 0 .../models/code/workflow-setup-edp-argocd.c4 | 6 +++ .../code/workflow-setup-edp-infrastructure.c4 | 7 ++++ .../otc/edp-foundry-central-service.c4 | 1 + likec4/views/deployment/otc/otc.c4 | 39 +++++++++++++++++-- 6 files changed, 83 insertions(+), 5 deletions(-) rename likec4/models/code/{workflow.c4 => workflow-edpbuilder.c4} (100%) create mode 100644 likec4/models/code/workflow-setup-edp-argocd.c4 create mode 100644 likec4/models/code/workflow-setup-edp-infrastructure.c4 diff --git a/likec4/deployment/otc-edp-foundry.c4 b/likec4/deployment/otc-edp-foundry.c4 index c96bfa2..99e0a90 100644 --- a/likec4/deployment/otc-edp-foundry.c4 +++ b/likec4/deployment/otc-edp-foundry.c4 @@ -17,8 +17,10 @@ deployment { cluster internalServices 'EDP Foundry Internal Services' { instanceOf edp.argoCD - instanceOf edp.forgejo - instanceOf forgejoRunner + instanceOf edp.forgejo { + -> workflowSetupEDPInfrastructure.forgejoRunner 'invokes' + -> workflowSetupArgoCD.forgejoRunner 'invokes' + } instanceOf edp.externalSecrets instanceOf edp.openbao instanceOf edp.ingressNginx @@ -30,6 +32,35 @@ deployment { instanceOf edp.loki } } + node workflowSetupEDPInfrastructure 'EDP infrastructure Workflow' { + description 'EDP infrastructure Workflow' + + instanceOf forgejoRunner { + -> forgejoRunnerWorker 'runs' + } + instanceOf forgejoRunnerWorker { + -> edpworkflow 'executes' + } + instanceOf edpworkflow { + -> otc-edp-per-tenant.cce.edp 'deploys edp to otc.cce' + -> otc-edp-per-tenant.cloudServices 'deploys edp to otc.paas' + + } + } + + node workflowSetupArgoCD 'EDP ArgoCD Workflow' { + description 'EDP Setup ArgoCD Workflow' + instanceOf forgejoRunner { + -> forgejoRunnerWorker 'runs' + } + instanceOf forgejoRunnerWorker { + -> edpworkflow 'executes' + } + instanceOf edpworkflow { + -> otc-edp-per-tenant.cce.argoCD + + } + } } } diff --git a/likec4/models/code/workflow.c4 b/likec4/models/code/workflow-edpbuilder.c4 similarity index 100% rename from likec4/models/code/workflow.c4 rename to likec4/models/code/workflow-edpbuilder.c4 diff --git a/likec4/models/code/workflow-setup-edp-argocd.c4 b/likec4/models/code/workflow-setup-edp-argocd.c4 new file mode 100644 index 0000000..b47b9f6 --- /dev/null +++ b/likec4/models/code/workflow-setup-edp-argocd.c4 @@ -0,0 +1,6 @@ +model { + workflow argocdworkflow "EDP ArgoCD Setup Workflow" { + + } +} + diff --git a/likec4/models/code/workflow-setup-edp-infrastructure.c4 b/likec4/models/code/workflow-setup-edp-infrastructure.c4 new file mode 100644 index 0000000..456dfa4 --- /dev/null +++ b/likec4/models/code/workflow-setup-edp-infrastructure.c4 @@ -0,0 +1,7 @@ +model { + workflow edpworkflow "EDP Infrastructure Setup Workflow" { + // step createS3bucket "Create s3 bucket for state" {} + // step setupRedis "Setup Redis" {} + } +} + diff --git a/likec4/views/deployment/otc/edp-foundry-central-service.c4 b/likec4/views/deployment/otc/edp-foundry-central-service.c4 index 73863bf..db179c8 100644 --- a/likec4/views/deployment/otc/edp-foundry-central-service.c4 +++ b/likec4/views/deployment/otc/edp-foundry-central-service.c4 @@ -8,6 +8,7 @@ views { otc-edpFoundry.internalServices.*, otc-edpFoundry.centralObservability, otc-edpFoundry.centralObservability.*, + otc-edpFoundry.workflow.* } } diff --git a/likec4/views/deployment/otc/otc.c4 b/likec4/views/deployment/otc/otc.c4 index fb6c4fe..46ae200 100644 --- a/likec4/views/deployment/otc/otc.c4 +++ b/likec4/views/deployment/otc/otc.c4 @@ -1,9 +1,42 @@ views { - deployment view otc { - title 'OTC' + /** + * @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.*, + 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.* } }