Page MenuHomeSoftware Heritage

No OneTemporary

diff --git a/sysadmin/docs/gitlab/gitlab_infrastructure.png b/sysadmin/docs/gitlab/gitlab_infrastructure.png
deleted file mode 100644
index 73c3dcf..0000000
Binary files a/sysadmin/docs/gitlab/gitlab_infrastructure.png and /dev/null differ
diff --git a/sysadmin/docs/gitlab/gitlab_infrastructure.svg b/sysadmin/docs/gitlab/gitlab_infrastructure.svg
new file mode 100644
index 0000000..e5152f2
--- /dev/null
+++ b/sysadmin/docs/gitlab/gitlab_infrastructure.svg
@@ -0,0 +1,218 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.43.0 (0)
+ -->
+<!-- Title: Gitlab infrastructure Pages: 1 -->
+<svg width="1100pt" height="1791pt"
+ viewBox="0.00 0.00 1100.00 1791.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(144 1647)">
+<title>Gitlab infrastructure</title>
+<polygon fill="white" stroke="transparent" points="-144,144 -144,-1647 956,-1647 956,144 -144,144"/>
+<text text-anchor="middle" x="406" y="-9" font-family="Sans-Serif" font-size="15.00" fill="#2d3436">Gitlab infrastructure</text>
+<g id="clust1" class="cluster">
+<title>cluster_zone&#45;gitlab&#45;instance resource group</title>
+<path fill="#e5f5fd" stroke="#aeb6be" d="M20,-931C20,-931 268,-931 268,-931 274,-931 280,-937 280,-943 280,-943 280,-1454 280,-1454 280,-1460 274,-1466 268,-1466 268,-1466 20,-1466 20,-1466 14,-1466 8,-1460 8,-1454 8,-1454 8,-943 8,-943 8,-937 14,-931 20,-931"/>
+<text text-anchor="middle" x="123.5" y="-1452.4" font-family="Sans-Serif" font-size="12.00" fill="#2d3436">zone&#45;gitlab&#45;instance resource group</text>
+</g>
+<g id="clust2" class="cluster">
+<title>cluster_zone&#45;gitlab&#45;instance&#45;internal resource group</title>
+<path fill="#e5f5fd" stroke="#aeb6be" d="M167,-33C167,-33 792,-33 792,-33 798,-33 804,-39 804,-45 804,-45 804,-911 804,-911 804,-917 798,-923 792,-923 792,-923 167,-923 167,-923 161,-923 155,-917 155,-911 155,-911 155,-45 155,-45 155,-39 161,-33 167,-33"/>
+<text text-anchor="middle" x="295.5" y="-909.4" font-family="Sans-Serif" font-size="12.00" fill="#2d3436">zone&#45;gitlab&#45;instance&#45;internal resource group</text>
+</g>
+<g id="clust3" class="cluster">
+<title>cluster_Internal Virtual network 10.0.0.0/8</title>
+<path fill="#ebf3e7" stroke="#aeb6be" d="M175,-393C175,-393 784,-393 784,-393 790,-393 796,-399 796,-405 796,-405 796,-736 796,-736 796,-742 790,-748 784,-748 784,-748 175,-748 175,-748 169,-748 163,-742 163,-736 163,-736 163,-405 163,-405 163,-399 169,-393 175,-393"/>
+<text text-anchor="middle" x="273.5" y="-734.4" font-family="Sans-Serif" font-size="12.00" fill="#2d3436">Internal Virtual network 10.0.0.0/8</text>
+</g>
+<g id="clust4" class="cluster">
+<title>cluster_swh&#45;resource Resource Group</title>
+<path fill="#e5f5fd" stroke="#aeb6be" d="M322,-1103C322,-1103 637,-1103 637,-1103 643,-1103 649,-1109 649,-1115 649,-1115 649,-1483 649,-1483 649,-1489 643,-1495 637,-1495 637,-1495 322,-1495 322,-1495 316,-1495 310,-1489 310,-1483 310,-1483 310,-1115 310,-1115 310,-1109 316,-1103 322,-1103"/>
+<text text-anchor="middle" x="407" y="-1481.4" font-family="Sans-Serif" font-size="12.00" fill="#2d3436">swh&#45;resource Resource Group</text>
+</g>
+<g id="clust5" class="cluster">
+<title>cluster_swh&#45;net/default Virtual Network (192.168.200.x/24)</title>
+<path fill="#ebf3e7" stroke="#aeb6be" d="M330,-1111C330,-1111 629,-1111 629,-1111 635,-1111 641,-1117 641,-1123 641,-1123 641,-1454 641,-1454 641,-1460 635,-1466 629,-1466 629,-1466 330,-1466 330,-1466 324,-1466 318,-1460 318,-1454 318,-1454 318,-1123 318,-1123 318,-1117 324,-1111 330,-1111"/>
+<text text-anchor="middle" x="479.5" y="-1452.4" font-family="Sans-Serif" font-size="12.00" fill="#2d3436">swh&#45;net/default Virtual Network (192.168.200.x/24)</text>
+</g>
+<!-- cec6880253f64b24aee6e8edca7bd72d -->
+<g id="node1" class="node">
+<title>cec6880253f64b24aee6e8edca7bd72d</title>
+<image xlink:href="/home/vsellier/src/swh/swh-environment/.venv/lib/python3.9/site-packages/resources/azure/compute/kubernetes-services.png" width="101px" height="101px" preserveAspectRatio="xMinYMin meet" x="16" y="-1418.5"/>
+<text text-anchor="middle" x="66.5" y="-1303.1" font-family="Sans-Serif" font-size="13.00" fill="#2d3436">zone&#45;gitlab&#45;instance kubernetes</text>
+</g>
+<!-- 5c5a20f1c56c4b4c92630138a8d393f0 -->
+<g id="node2" class="node">
+<title>5c5a20f1c56c4b4c92630138a8d393f0</title>
+<image xlink:href="/home/vsellier/src/swh/swh-environment/.venv/lib/python3.9/site-packages/resources/azure/network/private-endpoints.png" width="101px" height="101px" preserveAspectRatio="xMinYMin meet" x="171" y="-1418.5"/>
+<text text-anchor="middle" x="221.5" y="-1303.1" font-family="Sans-Serif" font-size="13.00" fill="#2d3436">Kubernetes API endpoint</text>
+</g>
+<!-- cec6880253f64b24aee6e8edca7bd72d&#45;&gt;5c5a20f1c56c4b4c92630138a8d393f0 -->
+<g id="edge1" class="edge">
+<title>cec6880253f64b24aee6e8edca7bd72d&#45;&gt;5c5a20f1c56c4b4c92630138a8d393f0</title>
+<path fill="none" stroke="#7b8894" d="M117.25,-1413.67C134.47,-1413.67 153.69,-1413.67 170.9,-1413.67"/>
+</g>
+<!-- dc36d24e6c314b43bee9208de655348a -->
+<g id="node6" class="node">
+<title>dc36d24e6c314b43bee9208de655348a</title>
+<image xlink:href="/home/vsellier/src/swh/swh-environment/.venv/lib/python3.9/site-packages/resources/azure/compute/container-instances.png" width="101px" height="101px" preserveAspectRatio="xMinYMin meet" x="429" y="-875.5"/>
+<text text-anchor="middle" x="479.5" y="-760.1" font-family="Sans-Serif" font-size="13.00" fill="#2d3436">Node Pool</text>
+</g>
+<!-- cec6880253f64b24aee6e8edca7bd72d&#45;&gt;dc36d24e6c314b43bee9208de655348a -->
+<g id="edge3" class="edge">
+<title>cec6880253f64b24aee6e8edca7bd72d&#45;&gt;dc36d24e6c314b43bee9208de655348a</title>
+<path fill="none" stroke="#7b8894" d="M117.05,-1390.83C139.95,-1390.83 162,-1390.83 162,-1390.83 162,-1390.83 162,-825 162,-825 162,-825 418.84,-825 418.84,-825"/>
+<polygon fill="#7b8894" stroke="#7b8894" points="418.84,-828.5 428.84,-825 418.84,-821.5 418.84,-828.5"/>
+</g>
+<!-- 31cfb1ad24ea4fac88d8c125d5986dbd -->
+<g id="node7" class="node">
+<title>31cfb1ad24ea4fac88d8c125d5986dbd</title>
+<image xlink:href="/home/vsellier/src/swh/swh-environment/.venv/lib/python3.9/site-packages/resources/azure/network/load-balancers.png" width="101px" height="101px" preserveAspectRatio="xMinYMin meet" x="429" y="-353.5"/>
+<text text-anchor="middle" x="479.5" y="-238.1" font-family="Sans-Serif" font-size="13.00" fill="#2d3436">kubernetes LB</text>
+</g>
+<!-- cec6880253f64b24aee6e8edca7bd72d&#45;&gt;31cfb1ad24ea4fac88d8c125d5986dbd -->
+<g id="edge8" class="edge">
+<title>cec6880253f64b24aee6e8edca7bd72d&#45;&gt;31cfb1ad24ea4fac88d8c125d5986dbd</title>
+<path fill="none" stroke="#7b8894" d="M117.22,-1322.33C122.51,-1322.33 126,-1322.33 126,-1322.33 126,-1322.33 126,-303 126,-303 126,-303 331.11,-303 428.85,-303"/>
+</g>
+<!-- 76d7acb44d0b42f88ffba77a307b6105 -->
+<g id="node11" class="node">
+<title>76d7acb44d0b42f88ffba77a307b6105</title>
+<image xlink:href="/home/vsellier/src/swh/swh-environment/.venv/lib/python3.9/site-packages/resources/azure/network/load-balancers.png" width="101px" height="101px" preserveAspectRatio="xMinYMin meet" x="429" y="-620.5"/>
+<text text-anchor="middle" x="479.5" y="-505.1" font-family="Sans-Serif" font-size="13.00" fill="#2d3436">kubernetes&#45;internal LB</text>
+</g>
+<!-- cec6880253f64b24aee6e8edca7bd72d&#45;&gt;76d7acb44d0b42f88ffba77a307b6105 -->
+<g id="edge12" class="edge">
+<title>cec6880253f64b24aee6e8edca7bd72d&#45;&gt;76d7acb44d0b42f88ffba77a307b6105</title>
+<path fill="none" stroke="#7b8894" d="M117.33,-1345.17C131.94,-1345.17 144,-1345.17 144,-1345.17 144,-1345.17 144,-560 144,-560 144,-560 335.18,-560 428.91,-560"/>
+</g>
+<!-- 55e3a375b170469191ddac3a6fd10102 -->
+<g id="node13" class="node">
+<title>55e3a375b170469191ddac3a6fd10102</title>
+<image xlink:href="/home/vsellier/src/swh/swh-environment/.venv/lib/python3.9/site-packages/resources/azure/network/network-interfaces.png" width="101px" height="101px" preserveAspectRatio="xMinYMin meet" x="171" y="-700.5"/>
+<text text-anchor="middle" x="221.5" y="-585.1" font-family="Sans-Serif" font-size="13.00" fill="#2d3436">Kube API Interface</text>
+</g>
+<!-- cec6880253f64b24aee6e8edca7bd72d&#45;&gt;55e3a375b170469191ddac3a6fd10102 -->
+<g id="edge11" class="edge">
+<title>cec6880253f64b24aee6e8edca7bd72d&#45;&gt;55e3a375b170469191ddac3a6fd10102</title>
+<path fill="none" stroke="#7b8894" d="M117.07,-1368C136,-1368 153,-1368 153,-1368 153,-1368 153,-650 153,-650 153,-650 160.73,-650 171,-650"/>
+</g>
+<!-- 15b9ce5e2e3d4c29b75dab807aace82f -->
+<g id="node16" class="node">
+<title>15b9ce5e2e3d4c29b75dab807aace82f</title>
+<image xlink:href="/home/vsellier/src/swh/swh-environment/.venv/lib/python3.9/site-packages/resources/azure/network/network-interfaces.png" width="101px" height="101px" preserveAspectRatio="xMinYMin meet" x="429" y="-1418.5"/>
+<text text-anchor="middle" x="479.5" y="-1303.1" font-family="Sans-Serif" font-size="13.00" fill="#2d3436">Kubernetes API VLAN1300</text>
+</g>
+<!-- 5c5a20f1c56c4b4c92630138a8d393f0&#45;&gt;15b9ce5e2e3d4c29b75dab807aace82f -->
+<g id="edge16" class="edge">
+<title>5c5a20f1c56c4b4c92630138a8d393f0&#45;&gt;15b9ce5e2e3d4c29b75dab807aace82f</title>
+<path fill="none" stroke="#7b8894" d="M272.16,-1368C317.51,-1368 383.64,-1368 428.95,-1368"/>
+</g>
+<!-- 83a5e7ac831240ee918e07b535ab88b1 -->
+<g id="node3" class="node">
+<title>83a5e7ac831240ee918e07b535ab88b1</title>
+<image xlink:href="/home/vsellier/src/swh/swh-environment/.venv/lib/python3.9/site-packages/resources/azure/network/private-link-services.png" width="101px" height="101px" preserveAspectRatio="xMinYMin meet" x="16" y="-1238.5"/>
+<text text-anchor="middle" x="66.5" y="-1123.1" font-family="Sans-Serif" font-size="13.00" fill="#2d3436">Internal LoadBalancer Link Service</text>
+</g>
+<!-- c952b8baf6f244fd81cfb54e4222889c -->
+<g id="node4" class="node">
+<title>c952b8baf6f244fd81cfb54e4222889c</title>
+<image xlink:href="/home/vsellier/src/swh/swh-environment/.venv/lib/python3.9/site-packages/resources/azure/network/private-endpoints.png" width="101px" height="101px" preserveAspectRatio="xMinYMin meet" x="171" y="-1238.5"/>
+<text text-anchor="middle" x="221.5" y="-1123.1" font-family="Sans-Serif" font-size="13.00" fill="#2d3436">Internal LoadBalancer endpoint</text>
+</g>
+<!-- 83a5e7ac831240ee918e07b535ab88b1&#45;&gt;c952b8baf6f244fd81cfb54e4222889c -->
+<g id="edge2" class="edge">
+<title>83a5e7ac831240ee918e07b535ab88b1&#45;&gt;c952b8baf6f244fd81cfb54e4222889c</title>
+<path fill="none" stroke="#7b8894" d="M117.25,-1210.83C134.47,-1210.83 153.69,-1210.83 170.9,-1210.83"/>
+</g>
+<!-- e7de425ac57f4be0aa109b31abfd29ef -->
+<g id="node14" class="node">
+<title>e7de425ac57f4be0aa109b31abfd29ef</title>
+<image xlink:href="/home/vsellier/src/swh/swh-environment/.venv/lib/python3.9/site-packages/resources/azure/network/network-interfaces.png" width="101px" height="101px" preserveAspectRatio="xMinYMin meet" x="171" y="-520.5"/>
+<text text-anchor="middle" x="221.5" y="-405.1" font-family="Sans-Serif" font-size="13.00" fill="#2d3436">Private Link Service Interface</text>
+</g>
+<!-- 83a5e7ac831240ee918e07b535ab88b1&#45;&gt;e7de425ac57f4be0aa109b31abfd29ef -->
+<g id="edge14" class="edge">
+<title>83a5e7ac831240ee918e07b535ab88b1&#45;&gt;e7de425ac57f4be0aa109b31abfd29ef</title>
+<path fill="none" stroke="#7b8894" d="M117,-1165.17C127.27,-1165.17 135,-1165.17 135,-1165.17 135,-1165.17 135,-470 135,-470 135,-470 152,-470 170.93,-470"/>
+</g>
+<!-- 125a3bf4cb2d42509244ee33b252198d -->
+<g id="node15" class="node">
+<title>125a3bf4cb2d42509244ee33b252198d</title>
+<image xlink:href="/home/vsellier/src/swh/swh-environment/.venv/lib/python3.9/site-packages/resources/azure/network/network-interfaces.png" width="101px" height="101px" preserveAspectRatio="xMinYMin meet" x="429" y="-1238.5"/>
+<text text-anchor="middle" x="479.5" y="-1123.1" font-family="Sans-Serif" font-size="13.00" fill="#2d3436">LB VLAN1300</text>
+</g>
+<!-- c952b8baf6f244fd81cfb54e4222889c&#45;&gt;125a3bf4cb2d42509244ee33b252198d -->
+<g id="edge15" class="edge">
+<title>c952b8baf6f244fd81cfb54e4222889c&#45;&gt;125a3bf4cb2d42509244ee33b252198d</title>
+<path fill="none" stroke="#7b8894" d="M272.16,-1188C317.51,-1188 383.64,-1188 428.95,-1188"/>
+</g>
+<!-- da65523fbab44570841b38b5c9f1553d -->
+<g id="node5" class="node">
+<title>da65523fbab44570841b38b5c9f1553d</title>
+<image xlink:href="/home/vsellier/src/swh/swh-environment/.venv/lib/python3.9/site-packages/resources/azure/storage/storage-accounts.png" width="101px" height="101px" preserveAspectRatio="xMinYMin meet" x="16" y="-1058.5"/>
+<text text-anchor="middle" x="66.5" y="-943.1" font-family="Sans-Serif" font-size="13.00" fill="#2d3436">Storage Account</text>
+</g>
+<!-- b2443a5b8bc6434eaaa2df7fd64ea873 -->
+<g id="node10" class="node">
+<title>b2443a5b8bc6434eaaa2df7fd64ea873</title>
+<image xlink:href="/home/vsellier/src/swh/swh-environment/.venv/lib/python3.9/site-packages/resources/azure/compute/vm.png" width="101px" height="101px" preserveAspectRatio="xMinYMin meet" x="687" y="-520.5"/>
+<text text-anchor="middle" x="737.5" y="-405.1" font-family="Sans-Serif" font-size="13.00" fill="#2d3436">Nodes[1&#45;5]</text>
+</g>
+<!-- dc36d24e6c314b43bee9208de655348a&#45;&gt;b2443a5b8bc6434eaaa2df7fd64ea873 -->
+<g id="edge6" class="edge">
+<title>dc36d24e6c314b43bee9208de655348a&#45;&gt;b2443a5b8bc6434eaaa2df7fd64ea873</title>
+<path fill="none" stroke="#7b8894" d="M530.31,-825C566.59,-825 609,-825 609,-825 609,-825 609,-526.17 609,-526.17 609,-526.17 676.71,-526.17 676.71,-526.17"/>
+<polygon fill="#7b8894" stroke="#7b8894" points="676.71,-529.67 686.71,-526.17 676.71,-522.67 676.71,-529.67"/>
+</g>
+<!-- 216d730631634c069d27c6deb310727e -->
+<g id="node8" class="node">
+<title>216d730631634c069d27c6deb310727e</title>
+<image xlink:href="/home/vsellier/src/swh/swh-environment/.venv/lib/python3.9/site-packages/resources/azure/network/public-ip-addresses.png" width="101px" height="101px" preserveAspectRatio="xMinYMin meet" x="687" y="-160.5"/>
+<text text-anchor="middle" x="737.5" y="-45.1" font-family="Sans-Serif" font-size="13.00" fill="#2d3436">Outbound public Ip</text>
+</g>
+<!-- 31cfb1ad24ea4fac88d8c125d5986dbd&#45;&gt;216d730631634c069d27c6deb310727e -->
+<g id="edge4" class="edge">
+<title>31cfb1ad24ea4fac88d8c125d5986dbd&#45;&gt;216d730631634c069d27c6deb310727e</title>
+<path fill="none" stroke="#7b8894" d="M480,-234.41C480,-178.94 480,-110 480,-110 480,-110 611.94,-110 686.93,-110"/>
+</g>
+<!-- 05198819fafa429286063a7e9d7fa752 -->
+<g id="node9" class="node">
+<title>05198819fafa429286063a7e9d7fa752</title>
+<image xlink:href="/home/vsellier/src/swh/swh-environment/.venv/lib/python3.9/site-packages/resources/azure/network/public-ip-addresses.png" width="101px" height="101px" preserveAspectRatio="xMinYMin meet" x="687" y="-340.5"/>
+<text text-anchor="middle" x="737.5" y="-225.1" font-family="Sans-Serif" font-size="13.00" fill="#2d3436">Inbound public Ip</text>
+</g>
+<!-- 31cfb1ad24ea4fac88d8c125d5986dbd&#45;&gt;05198819fafa429286063a7e9d7fa752 -->
+<g id="edge5" class="edge">
+<title>31cfb1ad24ea4fac88d8c125d5986dbd&#45;&gt;05198819fafa429286063a7e9d7fa752</title>
+<path fill="none" stroke="#7b8894" d="M530.16,-296.5C575.51,-296.5 641.64,-296.5 686.95,-296.5"/>
+</g>
+<!-- 31cfb1ad24ea4fac88d8c125d5986dbd&#45;&gt;b2443a5b8bc6434eaaa2df7fd64ea873 -->
+<g id="edge9" class="edge">
+<title>31cfb1ad24ea4fac88d8c125d5986dbd&#45;&gt;b2443a5b8bc6434eaaa2df7fd64ea873</title>
+<path fill="none" stroke="#7b8894" d="M530.26,-365C605.54,-365 738,-365 738,-365 738,-365 738,-381.51 738,-401.43"/>
+</g>
+<!-- 76d7acb44d0b42f88ffba77a307b6105&#45;&gt;b2443a5b8bc6434eaaa2df7fd64ea873 -->
+<g id="edge7" class="edge">
+<title>76d7acb44d0b42f88ffba77a307b6105&#45;&gt;b2443a5b8bc6434eaaa2df7fd64ea873</title>
+<path fill="none" stroke="#7b8894" d="M530.16,-513.83C530.16,-513.83 676.95,-513.83 676.95,-513.83"/>
+<polygon fill="#7b8894" stroke="#7b8894" points="676.95,-517.33 686.95,-513.83 676.95,-510.33 676.95,-517.33"/>
+</g>
+<!-- 9649959be39f43b8854814712bc751de -->
+<g id="node12" class="node">
+<title>9649959be39f43b8854814712bc751de</title>
+<image xlink:href="/home/vsellier/src/swh/swh-environment/.venv/lib/python3.9/site-packages/resources/azure/network/reserved-ip-addresses-classic.png" width="101px" height="101px" preserveAspectRatio="xMinYMin meet" x="687" y="-700.5"/>
+<text text-anchor="middle" x="737.5" y="-585.1" font-family="Sans-Serif" font-size="13.00" fill="#2d3436">Internal Kube API IP</text>
+</g>
+<!-- 76d7acb44d0b42f88ffba77a307b6105&#45;&gt;9649959be39f43b8854814712bc751de -->
+<g id="edge10" class="edge">
+<title>76d7acb44d0b42f88ffba77a307b6105&#45;&gt;9649959be39f43b8854814712bc751de</title>
+<path fill="none" stroke="#7b8894" d="M530.16,-610C575.51,-610 641.64,-610 686.95,-610"/>
+</g>
+<!-- e7de425ac57f4be0aa109b31abfd29ef&#45;&gt;76d7acb44d0b42f88ffba77a307b6105 -->
+<g id="edge13" class="edge">
+<title>e7de425ac57f4be0aa109b31abfd29ef&#45;&gt;76d7acb44d0b42f88ffba77a307b6105</title>
+<path fill="none" stroke="#7b8894" d="M272.16,-520C317.51,-520 383.64,-520 428.95,-520"/>
+</g>
+</g>
+</svg>
diff --git a/sysadmin/docs/gitlab/infra.py b/sysadmin/docs/gitlab/infra.py
index 9fbad8e..df76d65 100644
--- a/sysadmin/docs/gitlab/infra.py
+++ b/sysadmin/docs/gitlab/infra.py
@@ -1,79 +1,78 @@
# diagram.py
from diagrams import Cluster, Diagram
from diagrams.azure.compute import ContainerInstances, KubernetesServices, VM
from diagrams.azure.network import (
LoadBalancers,
NetworkInterfaces,
PrivateEndpoints,
PrivateLinkServices,
PublicIpAddresses,
ReservedIpAddressesClassic,
ServiceEndpointPolicies,
VirtualNetworkClassic,
)
from diagrams.azure.general import Resourcegroups
from diagrams.azure.storage import StorageAccounts
from diagrams.azure.network import PrivateEndpoints
from diagrams.azure.network import PrivateLinkServices
-with Diagram("Gitlab infrastructure", show=False):
+with Diagram("Gitlab infrastructure", show=False, outformat="svg"):
rg = Cluster("zone-gitlab-instance resource group")
rg_internal = Cluster("zone-gitlab-instance-internal resource group")
internalLBEndpoint = None
apiEndpoint = None
with rg:
aks = KubernetesServices("zone-gitlab-instance kubernetes")
storageAccount = StorageAccounts("Storage Account")
lbLinkService = PrivateLinkServices("Internal LoadBalancer Link Service")
internalLBEndpoint = PrivateEndpoints("Internal LoadBalancer endpoint")
apiEndpoint = PrivateEndpoints("Kubernetes API endpoint")
aks - apiEndpoint
lbLinkService - internalLBEndpoint
with rg_internal:
np = ContainerInstances("Node Pool")
inboundPublicIp = PublicIpAddresses("Inbound public Ip")
outboundPublicIp = PublicIpAddresses("Outbound public Ip")
publicLB = LoadBalancers("kubernetes LB")
aks >> np
publicLB - outboundPublicIp
publicLB - inboundPublicIp
with Cluster("Internal Virtual network 10.0.0.0/8"):
internalIp = ReservedIpAddressesClassic("Internal Kube API IP")
internalLB = LoadBalancers("kubernetes-internal LB")
kubeApiInterface = NetworkInterfaces("Kube API Interface")
VMs = VM("Nodes[1-5]")
np >> VMs
internalLB >> VMs
aks - publicLB
publicLB - VMs
internalLB - internalIp
# internalLB << internalIp
aks - kubeApiInterface
aks - internalLB
-
privateLinkServiceLBInterface = NetworkInterfaces("Private Link Service Interface")
privateLinkServiceLBInterface - internalLB
lbLinkService - privateLinkServiceLBInterface
with Cluster("swh-resource Resource Group"):
with Cluster("swh-net/default Virtual Network (192.168.200.x/24)"):
internalLBInterface = NetworkInterfaces("LB VLAN1300")
apiInternalInterface = NetworkInterfaces("Kubernetes API VLAN1300")
internalLBEndpoint - internalLBInterface
apiEndpoint - apiInternalInterface

File Metadata

Mime Type
image/svg+xml
Expires
Tue, Apr 30, 3:27 PM (1 d, 23 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3155424

Event Timeline