website-and-documentation/resources/edp-likec4/models/code/workflow-edpbuilder.c4
Stephan Lo 3239cfbc62 refactor(architecture): reorganize LikeC4 projects and consolidate webcomponents
Renamed resources/likec4 to resources/edp-likec4 to better reflect that this
directory contains the Enterprise Developer Platform architecture models,
not documentation platform architecture.

Extended element kinds in edp-likec4/models/spec.c4 to support documentation
platform modeling:
- Added person, tool, process, repository element kinds
- These allow modeling of documentation workflows and processes

Consolidated webcomponent generation:
- Combined both architecture projects (edp-likec4 and doc-likec4) into a
  single webcomponent output at static/js/likec4-webcomponent.js
- Updated Taskfile.yml to generate from edp-likec4 directory
- Removed duplicate webcomponent script loading in head-end.html
- Fixed CustomElementRegistry duplicate registration issue

Embedded TeleNeoOffice corporate fonts:
- Added font files to static/fonts/ and static/ root
- Required for correct rendering of diagrams in webcomponent
- Fonts are embedded in webcomponent but also served from Hugo static paths
- Fixed 404 errors for font loading

Updated architecture documentation:
- Fixed markdown linting issues (trailing spaces, fence spacing)
- Updated all references from resources/likec4 to resources/edp-likec4
- Enhanced setup.md with correct directory structure

This refactoring enables:
1. Clear separation between EDP architecture and documentation platform models
2. Single consolidated webcomponent containing all architecture views
3. Proper font loading for corporate branding in diagrams
4. Foundation for future architecture documentation expansion

Breaking changes: None (paths updated in documentation)
2025-11-07 11:50:17 +01:00

103 lines
5.8 KiB
Text

model {
workflow edfbuilder_workflow "EDFbuilder" {
step runEDP "Run edpbuilder script" {
style {
opacity 25%
}
step createCrossplaneNS "Create Crossplane namespace"
step installCrossplaneHelm "Install Crossplane Helm Chart"
step installCrossplaneFunctionsAndProviders "Install Crossplane Functions and Providers"
step waitForCrossplaneFunctionsAndProviders "Wait for Crossplane Functions and Providers to become available"
step setupCrossplaneServiceAccount "Apply cluster-admin role to crossplane shell provider service account"
step createArgoCdNS "Create ArgoCD namespace"
step createGiteaNS "Create Gitea namespace"
step createArgoCdTlsCert "Create TLS Cert for Argo"
step createGiteaTlsCert "Create TLS Cert for Forgejo"
step createEDFBuilderDefinition "Create EDFbuilder crossplane definition (defines API)"
step createEDFBuilderComposition "Create EDFbuilder crossplane composition (defines what happens when EDFbuilder is applied)"
}
step applyEDFBuilder "Applies EDFbuilder resource (and triggers creation)" {
style {
opacity 15%
}
step setEnvVars "Set required environment variables"
step readWriteKubeConf "Make kube.conf write/readbale"
step setWorkDir "Set workdir to /tmp/rundir"
step cloneStacksRepo "Clone steps repo and checkout desired branch"
step hydrateStacksWithValues "Hydrate Stacks with values"
step createNamespaces "Create all required namespaces"
step createGiteaAdminPass "Create Admin Password for Forgejo"
step createGrafanaPass "Create Grafana Admin Password"
step applyServiceMonitorCRD "Apply ServiceMonitor CRDs for Prometheus"
step cloneIngressNginxChart "Git clone ingress-nginx helm chart"
step isntallIngressNginx "Install ingress-nginx from cloned chart"
step waitForIngress "Wait till ingress-nginx is ready"
step cloneArgoCDHelm "Git clone ArgoCD Helm Chart"
step installArgoCD "Install ArgoCD Helm Chart"
step installArgoCDIngress "Install ingress for ArgoCD"
step cloneForgejoHelmChart "Git clone Forgejo Helm Chart"
step installForgejo "Install Forgejo Helm Chart"
step installForgejoIngress "Install ingress for Forgejo"
step waitForArgoCD "Wait till ArgoCD is available"
step waitForForgejo "Wait till Forgejo is available"
step createForgejoUser "Create technical user for Forgejo"
step createForgejoRepo "Create repository for EDP state in Forgejo"
step installForgejoRunner "Install Forgejo Runner deployment"
step registerForgejoRunner "Create registration token secret for runner"
step configGitIdentity "Configure Git identity"
step configCrossplaneArgoCDProvider "Configure Crossplane ArgoCD provider"
step configCrossplaneKindProvider "Configure Crossplane Kind provider"
step uploadStacksToForgjo "Git push hydrated stacks to Forgejo isntance"
step configArgoDockerRegistry "Configure Docker Registry for Argo Workflows"
step createPackagesForgejoUser "Create packages user and token in Forgejo (unused?)"
step installArgoCDStacks "Apply all selected ArgoCD stacks"
step cleanup "Cleanup work folder and unset all env vars"
setEnvVars -> readWriteKubeConf
readWriteKubeConf -> setWorkDir
setWorkDir -> cloneStacksRepo
cloneStacksRepo -> hydrateStacksWithValues
hydrateStacksWithValues -> createNamespaces
createNamespaces -> createGiteaAdminPass
createGiteaAdminPass -> createGrafanaPass
createGrafanaPass -> applyServiceMonitorCRD
applyServiceMonitorCRD -> cloneIngressNginxChart
cloneIngressNginxChart -> isntallIngressNginx
isntallIngressNginx -> waitForIngress
waitForIngress -> cloneArgoCDHelm
cloneArgoCDHelm -> installArgoCD
installArgoCD -> installArgoCDIngress
installArgoCDIngress -> cloneForgejoHelmChart
cloneForgejoHelmChart -> installForgejo
installForgejo -> installForgejoIngress
installForgejoIngress -> waitForArgoCD
waitForArgoCD -> waitForForgejo
waitForForgejo -> createForgejoUser
createForgejoUser -> createForgejoRepo
createForgejoRepo -> installForgejoRunner
installForgejoRunner -> registerForgejoRunner
registerForgejoRunner -> configGitIdentity
configGitIdentity -> configCrossplaneArgoCDProvider
configCrossplaneArgoCDProvider -> configCrossplaneKindProvider
configCrossplaneKindProvider -> uploadStacksToForgjo
uploadStacksToForgjo -> configArgoDockerRegistry
configArgoDockerRegistry -> createPackagesForgejoUser
createPackagesForgejoUser -> installArgoCDStacks
installArgoCDStacks -> cleanup
}
createCrossplaneNS -> installCrossplaneHelm
installCrossplaneHelm -> installCrossplaneFunctionsAndProviders
installCrossplaneFunctionsAndProviders -> waitForCrossplaneFunctionsAndProviders
waitForCrossplaneFunctionsAndProviders -> setupCrossplaneServiceAccount
setupCrossplaneServiceAccount -> createArgoCdNS
createArgoCdNS -> createGiteaNS
createGiteaNS -> createArgoCdTlsCert
createArgoCdTlsCert -> createGiteaTlsCert
createGiteaTlsCert -> createEDFBuilderDefinition
createEDFBuilderDefinition -> createEDFBuilderComposition
createEDFBuilderComposition -> applyEDFBuilder
}
}