Plantuml:如何避免自箭头与组件的方向和选择侧重叠

问题描述

问题

  • 第 3 步和第 4 步重叠
  • 我想移动组件左侧第 3 步的箭头
  • 我找不到将它移到另一边的方法

enter image description here

@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.2.0
!includeurl ICONURL/common.puml
!includeurl ICONURL/devicons/docker.puml
!includeurl ICONURL/devicons/git.puml
!includeurl ICONURL/font-awesome-5/gitlab.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 #FFFFF0

title <color:blue><$k8s></color> **GitOps (with Application Repo)**<color:blue><$k8s></color>\n

skinparam actorStyle awesome

actor Developer as user

together {
    rectangle "<$git>\nService Repo" as appRepo
    rectangle "<$git>\nService-Deploy Repo" as configRepo
}

rectangle "<$gitlab>\nGitlab CI" as ciServer
rectangle "<$docker>\nGitlab\nContiner\nRegistry" as registry

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

user -> appRepo : 1. git push
appRepo <-[#blue;dotted] ciServer : 2. git pull
ciServer <- ciServer : 3. docker build
ciServer -> registry : 4. docker push
configRepo <-- ciServer : 5. git push
configRepo <-[#blue;dotted] operator : 6. git pull
operator -> apiServer : 7. kubectl apply
kubelet -> registry : 9. docker pull
apiServer <-[#blue;dotted] kubelet : 8. watch

legend
<color:#23a3dd><$cloudogu></color> [[https://super.cash super.cash]]
end legend

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

尝试解决

  • 我尝试在箭头指示器上使用 left 开关,但它改变了整体方面,完全出乎意料
ciServer -left-> ciServer : 3. docker build

结果如下:

  • 它影响了另一个组件,而不是所描述的那个

enter image description here

解决方法

这个怎么样

ciServer -down-> registry : 4. docker push

enter image description here

正如我之前尝试过的,方向问题仅在指向自身时发生

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...