From ef50c4f93c5760229d214435b9edc12961da8425 Mon Sep 17 00:00:00 2001 From: "James E. Blair" Date: Tue, 24 Sep 2024 09:15:13 -0700 Subject: [PATCH] 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 --- doc/source/docker-image.rst | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/doc/source/docker-image.rst b/doc/source/docker-image.rst index fcc959e..ab2b382 100644 --- a/doc/source/docker-image.rst +++ b/doc/source/docker-image.rst @@ -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] }