// Deployment model
deployment {

  cloud otc-edp-per-tenant 'OTC EDP per tenant cluster' {
    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'

    kubernetes cce 'OTC CCE' {
      description 'OTC Container Cluster Engine'
      icon tech:kubernetes
      technology 'Kubernetes'

      cluster edp 'EDP' {
        instanceOf edp.argoCD
        instanceOf forgejoRunner 
        instanceOf edp.forgejo {
          -> cloudServices.elasticsearch
          -> cloudServices.objectstorage
          -> cloudServices.postgres
          -> cloudServices.redis
        }
        instanceOf edp.externalSecrets
        instanceOf edp.ingressNginx
      }
    }

    paas cloudServices 'EDP Cloud Services' {
      description 'EDP Cloud Services'
      technology 'Cloud Services'

      instanceOf postgres
      instanceOf redis
      instanceOf objectstorage
      instanceOf elasticsearch
    }
  
    computeressource forgejoRunnerInfrastructure 'EDP ForgejoRunner infrastructure' {
      description 'Infrastructure for Forgejo runners like pods, vms, lxds, etc'
      instanceOf forgejoRunner {
        -> cce.edp.forgejo 'registers'
      }
    }
  }
}

              