@startuml
!includeurl https://raw.githubusercontent.com/michiel/plantuml-kubernetes-sprites/master/resource/k8s-sprites-unlabeled-25pct.iuml

!define ICONURL https://raw.githubusercontent.com/tupadr3/plantuml-icon-font-sprites/v2.0.0
!includeurl ICONURL/common.puml
!includeurl ICONURL/devicons/docker.puml
!includeurl ICONURL/devicons/git.puml
!includeurl ICONURL/font-awesome-5/jenkins.puml
!includeurl ICONURL/font-awesome-5/sync.puml

!define CLOUDOGUURL https://raw.githubusercontent.com/cloudogu/plantuml-cloudogu-sprites/master
!includeurl CLOUDOGUURL/tools/k8s.puml

!define CLOUDOGU_BLUE #23a3dd
!define COLOR_ABOVE_TRANSPARENT_BACKGROUND #777

skinparam backgroundcolor TRANSPARENT
skinparam DefaultFontColor COLOR_ABOVE_TRANSPARENT_BACKGROUND
skinparam sequenceArrowColor COLOR_ABOVE_TRANSPARENT_BACKGROUND

skinparam actorStyle awesome

together {
    actor " " as user
    rectangle "<$git>\nApp Repo" as appRepo
    rectangle "<$git>\nConfig Repo" as configRepo
    rectangle "<$jenkins>\nCI Server" as ciServer
}

rectangle "<$k8s>\nK8s Cluster" as k8s {
    rectangle "<$sync>\nGitOps\noperator" as operator
}
rectangle "<$docker>\nOCI Registry" as registry

user -[#red]> appRepo : push\ncode\n<color:red>+config   
appRepo -[hidden]> configRepo
appRepo <-[#red] configRepo : <color:red>point to 
appRepo <-- ciServer : pull
ciServer -> registry : "                   push image            "
k8s --> registry : pull image
configRepo <- k8s : pull\nconfig
appRepo <-[#red] k8s : <color:red>pull config
k8s -> k8s : deploy


skinparam actor {
    BackgroundColor CLOUDOGU_BLUE
    BorderColor #16688d
}

skinparam rectangle {
    BackgroundColor CLOUDOGU_BLUE
    BorderColor #16688d
    FontColor WHITE
    backgroundColor<<node>> WHITE
    FontColor<<node>> CLOUDOGU_BLUE
}

@enduml