@startuml

!includeurl https://raw.githubusercontent.com/michiel/plantuml-kubernetes-sprites/master/resource/k8s-sprites-unlabeled-full.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
!includeurl CLOUDOGUURL/dogus/cloudogu.puml  

!define CLOUDOGU_BLUE #23a3dd
!define COLOR_ABOVE_TRANSPARENT_BACKGROUND BLACK

' Remove this line for transparent background
skinparam backgroundColor WHITE

title <color:blue><$k8s></color> **GitOps ** <color:blue><$k8s></color>\n

skinparam actorStyle awesome

actor Developer as user

together {
    rectangle "<$git>\nGit Repo" as gitRepo
    rectangle "<$jenkins>\nCI Server" as ciServer
}

rectangle "<$docker>\nOCI Registry" as registry

rectangle "<$k8s>\nK8s Cluster" as k8s {
    rectangle "<$sync>\nGitOps\noperator" as operator
    rectangle "<$k8s>\nAPI-Server" as apiServer
    rectangle "<$k8s>\nkubelet" as kubelet
}

user -> gitRepo : push
gitRepo <-- ciServer : pull & push (image version)
ciServer -> registry : push
gitRepo <- operator : pull
operator -> apiServer : deploy
kubelet -> registry : pull
apiServer <- kubelet : watch


skinparam arrow {
    Color COLOR_ABOVE_TRANSPARENT_BACKGROUND
    FontColor COLOR_ABOVE_TRANSPARENT_BACKGROUND
}

skinparam actor {
    BackgroundColor CLOUDOGU_BLUE
    BorderColor #16688d
    FontColor COLOR_ABOVE_TRANSPARENT_BACKGROUND
}

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

skinparam interface {
    BackgroundColor WHITE
    BorderColor #16688d
}

skinparam note {
    BackgroundColor WHITE
    BorderColor #16688d
}

skinparam legend {
    BackgroundColor WHITE
    BorderColor #16688d
}

@enduml