Fine-tune graphviz sequence diagrams

This uses a box shape for the sequence headers; they take up less
horizontal space than ovals which allows the image to be larger.

This also adjusts the edges so that the virtal lines are straight.

More newlines are used in order to further shrink the horizontal
space (and produce a more square aspect ratio for better legibility).

The note is horizontally compressed and moved to be closer to both
edges that it references.

Change-Id: Ib0d403d4f94ea06c86fdc1a6d7d02970b7f9961f
This commit is contained in:
James E. Blair 2024-09-24 09:15:13 -07:00
parent eb8826b605
commit ef50c4f93c

View File

@ -41,7 +41,7 @@ following workflow for a single change:
// Set things up like a spreadsheet grid as I found that simplifies
// remembering which nodes have edges between them.
ir_start [label="Intermediate Registry"]
ir_start [label="Intermediate\nRegistry" shape="box"]
ir_end [style=invis]
ir_0 [label="" shape=point height=.005]
ir_1 [label="" shape=point height=.005]
@ -51,7 +51,7 @@ following workflow for a single change:
ir_5 [label="" shape=point height=.005]
ir_start -> ir_0 -> ir_1 -> ir_2 -> ir_3 -> ir_4 -> ir_5 -> ir_end [arrowhead="none" style="bold"]
br_start [label="Buildset Registry"]
br_start [label="Buildset\nRegistry" shape="box"]
br_end [style=invis]
br_0 [label="" shape=point height=.005]
br_1 [label="" shape=point height=.005]
@ -62,7 +62,7 @@ following workflow for a single change:
br_start -> br_0 -> br_1 -> br_2 -> br_3 -> br_4 -> br_5 [arrowhead="none" style="bold"]
br_5 -> br_end [arrowhead="none" style="dashed"]
ij_start [label="Image Build Job"]
ij_start [label="Image\nBuild Job" shape="box"]
ij_end [style=invis]
ij_0 [label="" shape=point height=.005]
ij_1 [label="" shape=point height=.005]
@ -74,7 +74,7 @@ following workflow for a single change:
ij_1 -> ij_2 [arrowhead="none" style="bold"]
ij_2 -> ij_3 -> ij_4 -> ij_5 -> ij_end [arrowhead="none" style="dashed"]
tj_start [label="Deployment Test Job"]
tj_start [label="Deployment\nTest Job" shape="box"]
tj_end [style=invis]
tj_0 [label="" shape=point height=.005]
tj_1 [label="" shape=point height=.005]
@ -106,10 +106,7 @@ following workflow for a single change:
br_end -> ij_end [weight=0 style=invis]
// Flows between second and fourth column
ij_0 -> tj_0 [style=invis]
ij_4 -> tj_4 [weight=0 label="Current and previous images"]
br_4 -> ij_4 [weight=0 arrowhead="none"]
ij_end -> tj_end [weight=0 style=invis]
br_4 -> tj_4 [weight=0 xlabel="Current and previous images" ]
}
The intermediate registry is always running and the buildset registry
@ -213,14 +210,14 @@ the additional tasks performed by the "upload" and "promote" jobs:
// Set things up like a spreadsheet grid as I found that simplifies
// remembering which nodes have edges between them.
dh_start [label="Docker Hub"]
dh_start [label="Docker Hub" shape="box"]
dh_end [style=invis]
dh_0 [label="" shape=point height=.005]
dh_1 [label="" shape=point height=.005]
dh_2 [label="" shape=point height=.005]
dh_start -> dh_0 -> dh_1 -> dh_2 -> dh_end [arrowhead="none" style="bold"]
ui_start [label="upload-image"]
ui_start [label="upload-image" shape="box"]
ui_end [style=invis]
ui_0 [label="" shape=point height=.005]
ui_1 [label="" shape=point height=.005]
@ -228,15 +225,16 @@ the additional tasks performed by the "upload" and "promote" jobs:
ui_start -> ui_0 [arrowhead="none" style="bold"]
ui_0 -> ui_1 -> ui_2 -> ui_end [arrowhead="none" style="dashed"]
pi_start [label="promote-image"]
pi_start [label="promote-image" shape="box"]
pi_end [style=invis]
pi_0 [label="" shape=point height=.005]
pi_1 [label="" shape=point height=.005]
pi_2 [label="" shape=point height=.005]
pi_start -> pi_0 -> pi_1 [arrowhead="none" style="dashed"]
pi_1 -> pi_2 [arrowhead="none" style="bold"]
pi_1 -> pi_2 [arrowhead="none" style="bold" xlabel="Only the manifest\nis transferred,\nnot the actual\nimage layers"]
pi_2 -> pi_end [arrowhead="none" style="dashed"]
{rank=same;dh_start;ui_start;pi_start}
{rank=same;dh_0;ui_0;pi_0}
{rank=same;dh_1;ui_1;pi_1}
@ -249,10 +247,9 @@ the additional tasks performed by the "upload" and "promote" jobs:
// Flows between first and third column
dh_1 -> ui_1 [weight=0 arrowhead="none"]
ui_1 -> pi_1 [weight=0 label="Current Image Manifest with Temporary Tag"]
pi_1 [xlabel="Only the manifest is transferred,\nnot the actual image layers"]
pi_2 -> ui_2 [weight=0 label="Current Image Manifest with Final Tag" arrowhead="none"]
ui_2 -> dh_2 [weight=0 label=""]
ui_1 -> pi_1 [weight=0 label="Current Image Manifest\nwith Temporary Tag"]
pi_2 -> ui_2 [weight=0 label="Current Image Manifest\nwith Final Tag" arrowhead="none"]
ui_2 -> dh_2 [weight=0]
dh_end -> pi_end [weight=0 style=invis]
}