Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md18
-rw-r--r--doc/img/architecture.svg465
2 files changed, 17 insertions, 466 deletions
diff --git a/README.md b/README.md
index 4edd3efa4..860601a89 100644
--- a/README.md
+++ b/README.md
@@ -49,7 +49,23 @@ GitLab end up in Gitaly.
High-level architecture overview:
-![Gitaly architecture](doc/img/architecture.svg)
+```mermaid
+graph LR
+
+ subgraph "Gitaly Service"
+ Gitaly == git ==> Filesystem
+ Gitaly -- "libgit2 / Rugged" --> Filesystem[(Filesystem)]
+ end
+
+ subgraph "Clients"
+ Rails[gitlab-rails] --> Gitaly
+ Workhorse --> Gitaly
+ Shell[gitlab-shell] -- command-line\nclient --> Gitaly
+ Gitaly -. Authorization .-> Rails
+ end
+
+ Rails -. Rugged .-> Filesystem
+```
### Gitaly clients
diff --git a/doc/img/architecture.svg b/doc/img/architecture.svg
deleted file mode 100644
index e9e3b3d3e..000000000
--- a/doc/img/architecture.svg
+++ /dev/null
@@ -1,465 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
- width="166.88525mm"
- height="166.6875mm"
- viewBox="0 0 166.88525 166.6875"
- version="1.1"
- id="svg5"
- sodipodi:docname="gitaly.svg"
- inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:svg="http://www.w3.org/2000/svg">
- <sodipodi:namedview
- id="namedview7"
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1.0"
- inkscape:pageshadow="2"
- inkscape:pageopacity="0.0"
- inkscape:pagecheckerboard="0"
- inkscape:document-units="mm"
- showgrid="true"
- inkscape:lockguides="false"
- showguides="true"
- inkscape:guide-bbox="true"
- inkscape:zoom="1.5554293"
- inkscape:cx="442.64307"
- inkscape:cy="346.52813"
- inkscape:window-width="2556"
- inkscape:window-height="2120"
- inkscape:window-x="0"
- inkscape:window-y="0"
- inkscape:window-maximized="1"
- inkscape:current-layer="layer1">
- <inkscape:grid
- type="xygrid"
- id="grid194"
- originx="-7.9374996"
- originy="-39.6875" />
- </sodipodi:namedview>
- <defs
- id="defs2">
- <marker
- style="overflow:visible"
- id="Arrow1Mend"
- refX="0"
- refY="0"
- orient="auto"
- inkscape:stockid="Arrow1Mend"
- inkscape:isstock="true">
- <path
- transform="matrix(-0.4,0,0,-0.4,-4,0)"
- style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
- d="M 0,0 5,-5 -12.5,0 5,5 Z"
- id="path132273" />
- </marker>
- <marker
- style="overflow:visible"
- id="Arrow1Mstart"
- refX="0"
- refY="0"
- orient="auto"
- inkscape:stockid="Arrow1Mstart"
- inkscape:isstock="true">
- <path
- transform="matrix(0.4,0,0,0.4,4,0)"
- style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
- d="M 0,0 5,-5 -12.5,0 5,5 Z"
- id="path132270" />
- </marker>
- <marker
- style="overflow:visible"
- id="Arrow1Sstart"
- refX="0"
- refY="0"
- orient="auto"
- inkscape:stockid="Arrow1Sstart"
- inkscape:isstock="true">
- <path
- transform="matrix(0.2,0,0,0.2,1.2,0)"
- style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
- d="M 0,0 5,-5 -12.5,0 5,5 Z"
- id="path132276" />
- </marker>
- <marker
- style="overflow:visible"
- id="Arrow2Mstart"
- refX="0"
- refY="0"
- orient="auto"
- inkscape:stockid="Arrow2Mstart"
- inkscape:isstock="true">
- <path
- transform="scale(0.6)"
- d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
- style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round"
- id="path132288" />
- </marker>
- <marker
- style="overflow:visible"
- id="Arrow1Send"
- refX="0"
- refY="0"
- orient="auto"
- inkscape:stockid="Arrow1Send"
- inkscape:isstock="true">
- <path
- transform="matrix(-0.2,0,0,-0.2,-1.2,0)"
- style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
- d="M 0,0 5,-5 -12.5,0 5,5 Z"
- id="path132279" />
- </marker>
- <marker
- style="overflow:visible"
- id="Arrow2Lend"
- refX="0"
- refY="0"
- orient="auto"
- inkscape:stockid="Arrow2Lend"
- inkscape:isstock="true">
- <path
- transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
- d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
- style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round"
- id="path132285" />
- </marker>
- <inkscape:path-effect
- effect="powerstroke"
- id="path-effect131343"
- is_visible="true"
- lpeversion="1"
- offset_points="1,4.99214"
- not_jump="false"
- sort_points="true"
- interpolator_type="CubicBezierJohan"
- interpolator_beta="0.2"
- start_linecap_type="zerowidth"
- linejoin_type="extrp_arc"
- miter_limit="4"
- scale_width="1"
- end_linecap_type="zerowidth" />
- <rect
- x="60"
- y="270"
- width="150"
- height="60"
- id="rect55112" />
- <marker
- style="overflow:visible"
- id="Arrow1Send-9"
- refX="0"
- refY="0"
- orient="auto"
- inkscape:stockid="Arrow1Send"
- inkscape:isstock="true">
- <path
- transform="matrix(-0.2,0,0,-0.2,-1.2,0)"
- style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
- d="M 0,0 5,-5 -12.5,0 5,5 Z"
- id="path132279-5" />
- </marker>
- <marker
- style="overflow:visible"
- id="Arrow1Send-9-3"
- refX="0"
- refY="0"
- orient="auto"
- inkscape:stockid="Arrow1Send"
- inkscape:isstock="true">
- <path
- transform="matrix(-0.2,0,0,-0.2,-1.2,0)"
- style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
- d="M 0,0 5,-5 -12.5,0 5,5 Z"
- id="path132279-5-4" />
- </marker>
- </defs>
- <g
- inkscape:label="Layer 1"
- inkscape:groupmode="layer"
- id="layer1"
- transform="translate(-7.9375,-39.6875)">
- <g
- id="g37487"
- transform="translate(24.010246)">
- <rect
- style="fill:#ffcc00;fill-rule:evenodd;stroke-width:0.272862"
- id="rect31-2"
- width="39.48975"
- height="15.874998"
- x="111.32275"
- y="39.6875" />
- <text
- xml:space="preserve"
- style="font-size:4.23333px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
- x="119.47247"
- y="48.792885"
- id="text16486"><tspan
- sodipodi:role="line"
- id="tspan16484"
- style="stroke-width:0.264583"
- x="119.47247"
- y="48.792885">gitlab-shell</tspan></text>
- </g>
- <g
- id="g37487-7"
- transform="translate(-23.8125)">
- <g
- id="g45759">
- <rect
- style="fill:#ffcc00;fill-rule:evenodd;stroke-width:0.385885"
- id="rect31-2-6-7"
- width="39.48975"
- height="31.749996"
- x="63.697746"
- y="39.6875" />
- <text
- xml:space="preserve"
- style="font-size:4.23333px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
- x="72.228844"
- y="56.730385"
- id="text41837"><tspan
- sodipodi:role="line"
- id="tspan41835"
- style="stroke-width:0.264583"
- x="72.228844"
- y="56.730385">gitlab-rails</tspan></text>
- </g>
- <g
- id="g45754">
- <rect
- style="fill:#ffcc00;fill-rule:evenodd;stroke-width:0.385885"
- id="rect31-2-6"
- width="39.48975"
- height="31.749996"
- x="111.32275"
- y="39.6875" />
- <text
- xml:space="preserve"
- style="font-size:4.23333px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
- x="119.83834"
- y="57.140694"
- id="text44535"><tspan
- sodipodi:role="line"
- style="stroke-width:0.264583"
- x="119.83834"
- y="57.140694"
- id="tspan44537">Workhorse</tspan></text>
- </g>
- </g>
- <g
- id="g37482"
- transform="translate(24.010246)">
- <rect
- style="fill:#ff6600;fill-rule:evenodd;stroke-width:0.272862"
- id="rect31-2-8"
- width="39.48975"
- height="15.874998"
- x="111.32275"
- y="55.5625" />
- <text
- xml:space="preserve"
- style="font-size:4.23333px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;stroke-width:0.264583"
- x="131.06349"
- y="62.432365"
- id="text25738"><tspan
- sodipodi:role="line"
- id="tspan25736"
- style="text-align:center;text-anchor:middle;stroke-width:0.264583"
- x="131.06349"
- y="62.432365">command-line</tspan><tspan
- sodipodi:role="line"
- style="text-align:center;text-anchor:middle;stroke-width:0.264583"
- x="131.06349"
- y="67.72403"
- id="tspan25740">client</tspan></text>
- </g>
- <rect
- style="fill:#cccccc;stroke-width:0.264583"
- id="rect45814"
- width="87.3125"
- height="15.875"
- x="87.510246"
- y="71.4375" />
- <text
- xml:space="preserve"
- style="font-size:4.23333px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
- x="101.67065"
- y="80.542885"
- id="text47962"><tspan
- sodipodi:role="line"
- style="stroke-width:0.264583"
- x="101.67065"
- y="80.542885"
- id="tspan60642">Gitaly gRPC Go Client Stubs</tspan></text>
- <text
- xml:space="preserve"
- transform="scale(0.26458333)"
- id="text55110"
- style="font-size:16px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect55112)" />
- <rect
- style="fill:#cccccc;stroke-width:0.264583"
- id="rect56238"
- width="39.6875"
- height="15.875"
- x="39.885246"
- y="71.4375" />
- <text
- xml:space="preserve"
- style="font-size:4.23333px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
- x="41.522369"
- y="77.897057"
- id="text57716"><tspan
- sodipodi:role="line"
- id="tspan57714"
- style="stroke-width:0.264583"
- x="41.522369"
- y="77.897057">Gitaly gRPC</tspan><tspan
- sodipodi:role="line"
- style="stroke-width:0.264583"
- x="41.522369"
- y="83.188721"
- id="tspan57718">Ruby client stubs</tspan></text>
- <rect
- style="fill:#cccccc;stroke-width:0.264583"
- id="rect67015"
- width="134.9375"
- height="15.875"
- x="39.6875"
- y="111.125" />
- <rect
- style="fill:#aaccff;fill-opacity:1;stroke-width:0.264583"
- id="rect67017"
- width="134.9375"
- height="39.6875"
- x="39.6875"
- y="127" />
- <text
- xml:space="preserve"
- style="font-size:4.23333px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
- x="47.113335"
- y="119.0625"
- id="text90321"><tspan
- sodipodi:role="line"
- id="tspan90319"
- style="stroke-width:0.264583"
- x="47.113335"
- y="119.0625">Gitaly gRPC server interfaces</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
- x="46.875622"
- y="137.07538"
- id="text94009"><tspan
- sodipodi:role="line"
- id="tspan94007"
- style="font-size:8.46667px;stroke-width:0.264583"
- x="46.875622"
- y="137.07538">Gitaly Service</tspan></text>
- <g
- id="g112939"
- transform="translate(-15.875,-23.8125)">
- <rect
- style="fill:#2a7fff;fill-opacity:1;stroke-width:0.264583"
- id="rect105228"
- width="95.25"
- height="15.875"
- x="71.4375"
- y="166.6875" />
- <text
- xml:space="preserve"
- style="font-size:4.23333px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
- x="91.491081"
- y="175.79289"
- id="text107586"><tspan
- sodipodi:role="line"
- id="tspan107584"
- style="stroke-width:0.264583"
- x="91.491081"
- y="175.79289">git integration (git spawn)</tspan></text>
- </g>
- <rect
- style="fill:#cccccc;fill-opacity:1;stroke-width:0.264583"
- id="rect113115"
- width="134.9375"
- height="15.875"
- x="39.6875"
- y="190.5" />
- <text
- xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
- x="46.520088"
- y="200.77327"
- id="text121676"><tspan
- sodipodi:role="line"
- id="tspan121674"
- style="font-size:8.46667px;stroke-width:0.264583"
- x="46.520088"
- y="200.77327">Filesystem</tspan></text>
- <path
- style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1Send)"
- d="m 55.562499,87.312499 c 0,23.812501 0,23.812501 0,23.812501"
- id="path131345" />
- <path
- style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1Send)"
- d="m 103.1875,87.312499 c 0,23.812501 0,23.812501 0,23.812501"
- id="path131347" />
- <path
- style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1Send-9)"
- d="m 103.1875,166.6875 c 0,23.8125 0,23.8125 0,23.8125"
- id="path131347-5" />
- <path
- style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1Send-9-3)"
- d="m 55.5625,166.6875 c 0,23.8125 0,23.8125 0,23.8125"
- id="path131347-5-1" />
- <path
- style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1Send)"
- d="m 150.8125,87.312499 c 0,23.812501 0,23.812501 0,23.812501"
- id="path131349" />
- <path
- style="fill:none;stroke:#000000;stroke-width:0.367288;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.367288, 0.367288;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#Arrow1Mstart)"
- d="m 39.862302,63.379804 c -21.350354,55.732036 0,79.617186 0,79.617186"
- id="path132843" />
- <text
- xml:space="preserve"
- style="font-size:4.23333px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
- x="-119.42251"
- y="35.543396"
- id="text141289"
- transform="rotate(-90)"><tspan
- sodipodi:role="line"
- id="tspan141287"
- style="stroke-width:0.264583"
- x="-119.42251"
- y="35.543396">Authorization</tspan></text>
- <g
- id="g152703"
- transform="translate(-15.875,-0.4402771)">
- <rect
- style="fill:#ffcc00;fill-opacity:1;stroke-width:0.499999;stroke-miterlimit:4;stroke-dasharray:0.499999, 0.499999;stroke-dashoffset:0"
- id="rect141855"
- width="55.5625"
- height="7.9375"
- x="23.8125"
- y="175.06528" />
- <text
- xml:space="preserve"
- style="font-size:4.23333px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
- x="34.849567"
- y="180.20192"
- id="text151136"><tspan
- sodipodi:role="line"
- id="tspan151134"
- style="stroke-width:0.264583"
- x="34.849567"
- y="180.20192">libgit2 / Rugged</tspan></text>
- </g>
- <path
- style="fill:none;stroke:#000000;stroke-width:0.264583;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.264583, 0.793749;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
- d="M 39.6875,55.562499 C 0,119.0625 31.75,174.625 31.75,174.625"
- id="path152774" />
- </g>
-</svg>