Added edpbuilder workflow
This commit is contained in:
parent
c81132d2d9
commit
47c0d84d6e
2 changed files with 109 additions and 0 deletions
|
@ -19,6 +19,9 @@ specification {
|
|||
}
|
||||
}
|
||||
|
||||
element workflow
|
||||
element step
|
||||
|
||||
deploymentNode node
|
||||
deploymentNode environment
|
||||
deploymentNode namespace
|
||||
|
|
106
likec4/workflow.c4
Normal file
106
likec4/workflow.c4
Normal file
|
@ -0,0 +1,106 @@
|
|||
model {
|
||||
workflow edfbuilder "EDFbuilder" {
|
||||
step runEDP "Run edpbuilder"
|
||||
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
|
||||
}
|
||||
|
||||
runEDP -> createCrossplaneNS
|
||||
createCrossplaneNS -> installCrossplaneHelm
|
||||
installCrossplaneHelm -> installCrossplaneFunctionsAndProviders
|
||||
installCrossplaneFunctionsAndProviders -> waitForCrossplaneFunctionsAndProviders
|
||||
waitForCrossplaneFunctionsAndProviders -> setupCrossplaneServiceAccount
|
||||
setupCrossplaneServiceAccount -> createArgoCdNS
|
||||
createArgoCdNS -> createGiteaNS
|
||||
createGiteaNS -> createArgoCdTlsCert
|
||||
createArgoCdTlsCert -> createGiteaTlsCert
|
||||
createGiteaTlsCert -> createEDFBuilderDefinition
|
||||
createEDFBuilderDefinition -> createEDFBuilderComposition
|
||||
createEDFBuilderComposition -> applyEDFBuilder
|
||||
}
|
||||
}
|
||||
|
||||
views {
|
||||
view edpbuilderworkflow of edfbuilder {
|
||||
description 'Describes the process how to create an EDP instance'
|
||||
include edfbuilder.**
|
||||
autoLayout LeftRight 120 110
|
||||
}
|
Loading…
Reference in a new issue