model {

    extend edp {
        container argoCD 'ArgoCD' {
            description 'GitOps Service'

            component argocdServer 'ArgoCD Server'
            component argocdAppController 'ApplicationController'
            component argocdAppSetController 'ApplicationSeetController'
            component argocdRedis 'Redis' {
                technology: 'Redis'
                icon: tech:redis
            }
            component argocdRepoServer 'Repo Server'

            argocdServer -> argocdRedis 'read/write'
            argocdRepoServer -> argocdRedis 'read/write'
            argocdAppController -> argocdRedis 'read/write'
            argocdAppSetController -> argocdRedis 'read/write'

            argocdRepoServer -> edp.forgejogit 'Syncs git repo'
        }
    }
}