Skip to content

Instantly share code, notes, and snippets.

@dims
Last active February 11, 2026 19:00
Show Gist options
  • Select an option

  • Save dims/8fdfd022d555525490384eddd6aed611 to your computer and use it in GitHub Desktop.

Select an option

Save dims/8fdfd022d555525490384eddd6aed611 to your computer and use it in GitHub Desktop.
Kubernetes Dependency Analysis (v1.36.0-alpha) -- depstat
Display the source blob
Display the rendered blob
Raw
<?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 13.1.0 (20250701.0955)
-->
<!-- Pages: 1 -->
<svg width="1172pt" height="5579pt"
viewBox="0.00 0.00 1172.00 5579.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(4 5574.75)">
<polygon fill="white" stroke="none" points="-4,4 -4,-5574.75 1168.25,-5574.75 1168.25,4 -4,4"/>
<text xml:space="preserve" text-anchor="middle" x="582.12" y="-5551.55" font-family="Times,serif" font-size="16.00">Dependency Diff: v1.34.0..v1.35.0</text>
<!-- cyphar.com/go&#45;pathrs -->
<g id="node1" class="node">
<title>cyphar.com/go&#45;pathrs</title>
<polygon fill="#ccffcc" stroke="black" points="979.5,-36 869,-36 869,0 979.5,0 979.5,-36"/>
<text xml:space="preserve" text-anchor="middle" x="924.25" y="-14.3" font-family="Times,serif" font-size="11.00">cyphar.com/go&#45;pathrs</text>
</g>
<!-- golang.org/x/sys -->
<g id="node76" class="node">
<title>golang.org/x/sys</title>
<polygon fill="#ffffcc" stroke="black" points="1164.25,-36 1066.5,-36 1066.5,0 1164.25,0 1164.25,-36"/>
<text xml:space="preserve" text-anchor="middle" x="1115.38" y="-21.05" font-family="Times,serif" font-size="11.00">golang.org/x/sys</text>
<text xml:space="preserve" text-anchor="middle" x="1115.38" y="-7.55" font-family="Times,serif" font-size="11.00">v0.31.0 → v0.38.0</text>
</g>
<!-- cyphar.com/go&#45;pathrs&#45;&gt;golang.org/x/sys -->
<g id="edge29" class="edge">
<title>cyphar.com/go&#45;pathrs&#45;&gt;golang.org/x/sys</title>
<path fill="none" stroke="green" stroke-width="2" d="M979.95,-18C1003.39,-18 1030.83,-18 1054.78,-18"/>
<polygon fill="green" stroke="green" stroke-width="2" points="1053.2,-21.5 1063.2,-18 1053.2,-14.5 1053.2,-21.5"/>
</g>
<!-- github.com/Masterminds/semver/v3 -->
<g id="node2" class="node">
<title>github.com/Masterminds/semver/v3</title>
<polygon fill="#ccffcc" stroke="black" points="683.75,-144 509.5,-144 509.5,-108 683.75,-108 683.75,-144"/>
<text xml:space="preserve" text-anchor="middle" x="596.62" y="-122.3" font-family="Times,serif" font-size="11.00">github.com/Masterminds/semver/v3</text>
</g>
<!-- go -->
<g id="node55" class="node">
<title>go</title>
<polygon fill="#ffffcc" stroke="black" points="967.88,-225 880.62,-225 880.62,-189 967.88,-189 967.88,-225"/>
<text xml:space="preserve" text-anchor="middle" x="924.25" y="-210.05" font-family="Times,serif" font-size="11.00">go</text>
<text xml:space="preserve" text-anchor="middle" x="924.25" y="-196.55" font-family="Times,serif" font-size="11.00">1.24.0 → 1.25.0</text>
</g>
<!-- github.com/Masterminds/semver/v3&#45;&gt;go -->
<g id="edge30" class="edge">
<title>github.com/Masterminds/semver/v3&#45;&gt;go</title>
<path fill="none" stroke="green" stroke-width="2" d="M684.24,-134.7C715.37,-138.86 750.54,-144.79 782,-153 812.48,-160.95 845.41,-173.31 871.8,-184.2"/>
<polygon fill="green" stroke="green" stroke-width="2" points="868.95,-186.8 879.52,-187.43 871.65,-180.34 868.95,-186.8"/>
</g>
<!-- github.com/armon/go&#45;socks5 -->
<g id="node3" class="node">
<title>github.com/armon/go&#45;socks5</title>
<polygon fill="#ffcccc" stroke="black" stroke-dasharray="5,2" points="668,-360 525.25,-360 525.25,-324 668,-324 668,-360"/>
<text xml:space="preserve" text-anchor="middle" x="596.62" y="-338.3" font-family="Times,serif" font-size="11.00">github.com/armon/go&#45;socks5</text>
</g>
<!-- github.com/aws/aws&#45;sdk&#45;go&#45;v2 -->
<g id="node4" class="node">
<title>github.com/aws/aws&#45;sdk&#45;go&#45;v2</title>
<polygon fill="#ffffcc" stroke="black" points="264.62,-414 110.62,-414 110.62,-378 264.62,-378 264.62,-414"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-399.05" font-family="Times,serif" font-size="11.00">github.com/aws/aws&#45;sdk&#45;go&#45;v2</text>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-385.55" font-family="Times,serif" font-size="11.00">v1.30.1 → v1.36.3</text>
</g>
<!-- github.com/aws/aws&#45;sdk&#45;go&#45;v2/config -->
<g id="node5" class="node">
<title>github.com/aws/aws&#45;sdk&#45;go&#45;v2/config</title>
<polygon fill="#ffffcc" stroke="black" points="280,-468 95.25,-468 95.25,-432 280,-432 280,-468"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-453.05" font-family="Times,serif" font-size="11.00">github.com/aws/aws&#45;sdk&#45;go&#45;v2/config</text>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-439.55" font-family="Times,serif" font-size="11.00">v1.27.24 → v1.29.14</text>
</g>
<!-- github.com/aws/aws&#45;sdk&#45;go&#45;v2/credentials -->
<g id="node6" class="node">
<title>github.com/aws/aws&#45;sdk&#45;go&#45;v2/credentials</title>
<polygon fill="#ffffcc" stroke="black" points="290.5,-522 84.75,-522 84.75,-486 290.5,-486 290.5,-522"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-507.05" font-family="Times,serif" font-size="11.00">github.com/aws/aws&#45;sdk&#45;go&#45;v2/credentials</text>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-493.55" font-family="Times,serif" font-size="11.00">v1.17.24 → v1.17.67</text>
</g>
<!-- github.com/aws/aws&#45;sdk&#45;go&#45;v2/feature/ec2/imds -->
<g id="node7" class="node">
<title>github.com/aws/aws&#45;sdk&#45;go&#45;v2/feature/ec2/imds</title>
<polygon fill="#ffffcc" stroke="black" points="303.25,-576 72,-576 72,-540 303.25,-540 303.25,-576"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-561.05" font-family="Times,serif" font-size="11.00">github.com/aws/aws&#45;sdk&#45;go&#45;v2/feature/ec2/imds</text>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-547.55" font-family="Times,serif" font-size="11.00">v1.16.9 → v1.16.30</text>
</g>
<!-- github.com/aws/aws&#45;sdk&#45;go&#45;v2/internal/configsources -->
<g id="node8" class="node">
<title>github.com/aws/aws&#45;sdk&#45;go&#45;v2/internal/configsources</title>
<polygon fill="#ffffcc" stroke="black" points="315.25,-630 60,-630 60,-594 315.25,-594 315.25,-630"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-615.05" font-family="Times,serif" font-size="11.00">github.com/aws/aws&#45;sdk&#45;go&#45;v2/internal/configsources</text>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-601.55" font-family="Times,serif" font-size="11.00">v1.3.13 → v1.3.34</text>
</g>
<!-- github.com/aws/aws&#45;sdk&#45;go&#45;v2/internal/endpoints/v2 -->
<g id="node9" class="node">
<title>github.com/aws/aws&#45;sdk&#45;go&#45;v2/internal/endpoints/v2</title>
<polygon fill="#ffffcc" stroke="black" points="312.25,-684 63,-684 63,-648 312.25,-648 312.25,-684"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-669.05" font-family="Times,serif" font-size="11.00">github.com/aws/aws&#45;sdk&#45;go&#45;v2/internal/endpoints/v2</text>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-655.55" font-family="Times,serif" font-size="11.00">v2.6.13 → v2.6.34</text>
</g>
<!-- github.com/aws/aws&#45;sdk&#45;go&#45;v2/internal/ini -->
<g id="node10" class="node">
<title>github.com/aws/aws&#45;sdk&#45;go&#45;v2/internal/ini</title>
<polygon fill="#ffffcc" stroke="black" points="290.12,-738 85.12,-738 85.12,-702 290.12,-702 290.12,-738"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-723.05" font-family="Times,serif" font-size="11.00">github.com/aws/aws&#45;sdk&#45;go&#45;v2/internal/ini</text>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-709.55" font-family="Times,serif" font-size="11.00">v1.8.0 → v1.8.3</text>
</g>
<!-- github.com/aws/aws&#45;sdk&#45;go&#45;v2/service/internal/accept&#45;encoding -->
<g id="node11" class="node">
<title>github.com/aws/aws&#45;sdk&#45;go&#45;v2/service/internal/accept&#45;encoding</title>
<polygon fill="#ffffcc" stroke="black" points="338.5,-792 36.75,-792 36.75,-756 338.5,-756 338.5,-792"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-777.05" font-family="Times,serif" font-size="11.00">github.com/aws/aws&#45;sdk&#45;go&#45;v2/service/internal/accept&#45;encoding</text>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-763.55" font-family="Times,serif" font-size="11.00">v1.11.3 → v1.12.3</text>
</g>
<!-- github.com/aws/aws&#45;sdk&#45;go&#45;v2/service/internal/presigned&#45;url -->
<g id="node12" class="node">
<title>github.com/aws/aws&#45;sdk&#45;go&#45;v2/service/internal/presigned&#45;url</title>
<polygon fill="#ffffcc" stroke="black" points="331.38,-846 43.88,-846 43.88,-810 331.38,-810 331.38,-846"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-831.05" font-family="Times,serif" font-size="11.00">github.com/aws/aws&#45;sdk&#45;go&#45;v2/service/internal/presigned&#45;url</text>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-817.55" font-family="Times,serif" font-size="11.00">v1.11.15 → v1.12.15</text>
</g>
<!-- github.com/aws/aws&#45;sdk&#45;go&#45;v2/service/sso -->
<g id="node13" class="node">
<title>github.com/aws/aws&#45;sdk&#45;go&#45;v2/service/sso</title>
<polygon fill="#ffffcc" stroke="black" points="290.88,-900 84.38,-900 84.38,-864 290.88,-864 290.88,-900"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-885.05" font-family="Times,serif" font-size="11.00">github.com/aws/aws&#45;sdk&#45;go&#45;v2/service/sso</text>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-871.55" font-family="Times,serif" font-size="11.00">v1.22.1 → v1.25.3</text>
</g>
<!-- github.com/aws/aws&#45;sdk&#45;go&#45;v2/service/ssooidc -->
<g id="node14" class="node">
<title>github.com/aws/aws&#45;sdk&#45;go&#45;v2/service/ssooidc</title>
<polygon fill="#ffffcc" stroke="black" points="300.25,-954 75,-954 75,-918 300.25,-918 300.25,-954"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-939.05" font-family="Times,serif" font-size="11.00">github.com/aws/aws&#45;sdk&#45;go&#45;v2/service/ssooidc</text>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-925.55" font-family="Times,serif" font-size="11.00">v1.26.2 → v1.30.1</text>
</g>
<!-- github.com/aws/aws&#45;sdk&#45;go&#45;v2/service/sts -->
<g id="node15" class="node">
<title>github.com/aws/aws&#45;sdk&#45;go&#45;v2/service/sts</title>
<polygon fill="#ffffcc" stroke="black" points="289.75,-1008 85.5,-1008 85.5,-972 289.75,-972 289.75,-1008"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-993.05" font-family="Times,serif" font-size="11.00">github.com/aws/aws&#45;sdk&#45;go&#45;v2/service/sts</text>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-979.55" font-family="Times,serif" font-size="11.00">v1.30.1 → v1.33.19</text>
</g>
<!-- github.com/aws/smithy&#45;go -->
<g id="node16" class="node">
<title>github.com/aws/smithy&#45;go</title>
<polygon fill="#ffffcc" stroke="black" points="253.75,-1062 121.5,-1062 121.5,-1026 253.75,-1026 253.75,-1062"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-1047.05" font-family="Times,serif" font-size="11.00">github.com/aws/smithy&#45;go</text>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-1033.55" font-family="Times,serif" font-size="11.00">v1.20.3 → v1.22.3</text>
</g>
<!-- github.com/containerd/containerd/api -->
<g id="node17" class="node">
<title>github.com/containerd/containerd/api</title>
<polygon fill="#ffffcc" stroke="black" points="277.75,-1116 97.5,-1116 97.5,-1080 277.75,-1080 277.75,-1116"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-1101.05" font-family="Times,serif" font-size="11.00">github.com/containerd/containerd/api</text>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-1087.55" font-family="Times,serif" font-size="11.00">v1.8.0 → v1.9.0</text>
</g>
<!-- github.com/containerd/ttrpc -->
<g id="node18" class="node">
<title>github.com/containerd/ttrpc</title>
<polygon fill="#ffffcc" stroke="black" points="256.38,-1170 118.88,-1170 118.88,-1134 256.38,-1134 256.38,-1170"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-1155.05" font-family="Times,serif" font-size="11.00">github.com/containerd/ttrpc</text>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-1141.55" font-family="Times,serif" font-size="11.00">v1.2.6 → v1.2.7</text>
</g>
<!-- github.com/containerd/typeurl/v2 -->
<g id="node19" class="node">
<title>github.com/containerd/typeurl/v2</title>
<polygon fill="#ffffcc" stroke="black" points="268.38,-1224 106.88,-1224 106.88,-1188 268.38,-1188 268.38,-1224"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-1209.05" font-family="Times,serif" font-size="11.00">github.com/containerd/typeurl/v2</text>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-1195.55" font-family="Times,serif" font-size="11.00">v2.2.2 → v2.2.3</text>
</g>
<!-- github.com/coredns/corefile&#45;migration -->
<g id="node20" class="node">
<title>github.com/coredns/corefile&#45;migration</title>
<polygon fill="#ffffcc" stroke="black" points="280.38,-1278 94.88,-1278 94.88,-1242 280.38,-1242 280.38,-1278"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-1263.05" font-family="Times,serif" font-size="11.00">github.com/coredns/corefile&#45;migration</text>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-1249.55" font-family="Times,serif" font-size="11.00">v1.0.26 → v1.0.29</text>
</g>
<!-- github.com/cyphar/filepath&#45;securejoin -->
<g id="node21" class="node">
<title>github.com/cyphar/filepath&#45;securejoin</title>
<polygon fill="#ffffcc" stroke="black" points="688.62,-36 504.62,-36 504.62,0 688.62,0 688.62,-36"/>
<text xml:space="preserve" text-anchor="middle" x="596.62" y="-21.05" font-family="Times,serif" font-size="11.00">github.com/cyphar/filepath&#45;securejoin</text>
<text xml:space="preserve" text-anchor="middle" x="596.62" y="-7.55" font-family="Times,serif" font-size="11.00">v0.4.1 → v0.6.0</text>
</g>
<!-- github.com/cyphar/filepath&#45;securejoin&#45;&gt;cyphar.com/go&#45;pathrs -->
<g id="edge31" class="edge">
<title>github.com/cyphar/filepath&#45;securejoin&#45;&gt;cyphar.com/go&#45;pathrs</title>
<path fill="none" stroke="green" stroke-width="2" d="M688.76,-18C742.41,-18 809.03,-18 857.54,-18"/>
<polygon fill="green" stroke="green" stroke-width="2" points="855.81,-21.5 865.81,-18 855.81,-14.5 855.81,-21.5"/>
</g>
<!-- github.com/docker/docker -->
<g id="node22" class="node">
<title>github.com/docker/docker</title>
<polygon fill="#ffffcc" stroke="black" points="299.5,-1332 75.75,-1332 75.75,-1296 299.5,-1296 299.5,-1332"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-1317.05" font-family="Times,serif" font-size="11.00">github.com/docker/docker</text>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-1303.55" font-family="Times,serif" font-size="11.00">v26.1.4+incompatible → v28.2.2+incompatible</text>
</g>
<!-- github.com/gkampitakis/ciinfo -->
<g id="node23" class="node">
<title>github.com/gkampitakis/ciinfo</title>
<polygon fill="#ccffcc" stroke="black" points="262.38,-1386 112.88,-1386 112.88,-1350 262.38,-1350 262.38,-1386"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-1364.3" font-family="Times,serif" font-size="11.00">github.com/gkampitakis/ciinfo</text>
</g>
<!-- github.com/gkampitakis/go&#45;diff -->
<g id="node24" class="node">
<title>github.com/gkampitakis/go&#45;diff</title>
<polygon fill="#ccffcc" stroke="black" points="264.62,-1440 110.62,-1440 110.62,-1404 264.62,-1404 264.62,-1440"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-1418.3" font-family="Times,serif" font-size="11.00">github.com/gkampitakis/go&#45;diff</text>
</g>
<!-- github.com/gkampitakis/go&#45;snaps -->
<g id="node25" class="node">
<title>github.com/gkampitakis/go&#45;snaps</title>
<polygon fill="#ccffcc" stroke="black" points="269.12,-1494 106.12,-1494 106.12,-1458 269.12,-1458 269.12,-1494"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-1472.3" font-family="Times,serif" font-size="11.00">github.com/gkampitakis/go&#45;snaps</text>
</g>
<!-- github.com/go&#45;logr/logr -->
<g id="node26" class="node">
<title>github.com/go&#45;logr/logr</title>
<polygon fill="#ffffcc" stroke="black" points="247.38,-1548 127.88,-1548 127.88,-1512 247.38,-1512 247.38,-1548"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-1533.05" font-family="Times,serif" font-size="11.00">github.com/go&#45;logr/logr</text>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-1519.55" font-family="Times,serif" font-size="11.00">v1.4.2 → v1.4.3</text>
</g>
<!-- github.com/goccy/go&#45;yaml -->
<g id="node27" class="node">
<title>github.com/goccy/go&#45;yaml</title>
<polygon fill="#ccffcc" stroke="black" points="254.12,-1602 121.12,-1602 121.12,-1566 254.12,-1566 254.12,-1602"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-1580.3" font-family="Times,serif" font-size="11.00">github.com/goccy/go&#45;yaml</text>
</g>
<!-- github.com/gogo/protobuf -->
<g id="node28" class="node">
<title>github.com/gogo/protobuf</title>
<polygon fill="#ffcccc" stroke="black" stroke-dasharray="5,2" points="660.88,-1872 532.38,-1872 532.38,-1836 660.88,-1836 660.88,-1872"/>
<text xml:space="preserve" text-anchor="middle" x="596.62" y="-1850.3" font-family="Times,serif" font-size="11.00">github.com/gogo/protobuf</text>
</g>
<!-- github.com/google/cadvisor -->
<g id="node29" class="node">
<title>github.com/google/cadvisor</title>
<polygon fill="#ffffcc" stroke="black" points="665.38,-2655 527.88,-2655 527.88,-2619 665.38,-2619 665.38,-2655"/>
<text xml:space="preserve" text-anchor="middle" x="596.62" y="-2640.05" font-family="Times,serif" font-size="11.00">github.com/google/cadvisor</text>
<text xml:space="preserve" text-anchor="middle" x="596.62" y="-2626.55" font-family="Times,serif" font-size="11.00">v0.52.1 → v0.53.0</text>
</g>
<!-- github.com/moby/sys/atomicwriter -->
<g id="node35" class="node">
<title>github.com/moby/sys/atomicwriter</title>
<polygon fill="#ccffcc" stroke="black" points="1008.75,-2655 839.75,-2655 839.75,-2619 1008.75,-2619 1008.75,-2655"/>
<text xml:space="preserve" text-anchor="middle" x="924.25" y="-2633.3" font-family="Times,serif" font-size="11.00">github.com/moby/sys/atomicwriter</text>
</g>
<!-- github.com/google/cadvisor&#45;&gt;github.com/moby/sys/atomicwriter -->
<g id="edge32" class="edge">
<title>github.com/google/cadvisor&#45;&gt;github.com/moby/sys/atomicwriter</title>
<path fill="none" stroke="green" stroke-width="2" d="M665.49,-2637C712.55,-2637 775.87,-2637 827.98,-2637"/>
<polygon fill="green" stroke="green" stroke-width="2" points="826.23,-2640.5 836.23,-2637 826.23,-2633.5 826.23,-2640.5"/>
</g>
<!-- go.opentelemetry.io/otel/sdk -->
<g id="node65" class="node">
<title>go.opentelemetry.io/otel/sdk</title>
<polygon fill="#ffffcc" stroke="black" points="994.5,-2601 854,-2601 854,-2565 994.5,-2565 994.5,-2601"/>
<text xml:space="preserve" text-anchor="middle" x="924.25" y="-2586.05" font-family="Times,serif" font-size="11.00">go.opentelemetry.io/otel/sdk</text>
<text xml:space="preserve" text-anchor="middle" x="924.25" y="-2572.55" font-family="Times,serif" font-size="11.00">v1.34.0 → v1.36.0</text>
</g>
<!-- github.com/google/cadvisor&#45;&gt;go.opentelemetry.io/otel/sdk -->
<g id="edge24" class="edge">
<title>github.com/google/cadvisor&#45;&gt;go.opentelemetry.io/otel/sdk</title>
<path fill="none" stroke="red" stroke-dasharray="5,2" d="M665.6,-2627.77C700.46,-2622.85 743.56,-2616.49 782,-2610 801.64,-2606.69 822.76,-2602.82 842.53,-2599.06"/>
<polygon fill="red" stroke="red" points="843.02,-2602.53 852.18,-2597.21 841.7,-2595.65 843.02,-2602.53"/>
</g>
<!-- github.com/google/go&#45;cmp -->
<g id="node30" class="node">
<title>github.com/google/go&#45;cmp</title>
<polygon fill="#ffcccc" stroke="black" stroke-dasharray="5,2" points="663.12,-2736 530.12,-2736 530.12,-2700 663.12,-2700 663.12,-2736"/>
<text xml:space="preserve" text-anchor="middle" x="596.62" y="-2714.3" font-family="Times,serif" font-size="11.00">github.com/google/go&#45;cmp</text>
</g>
<!-- github.com/google/pprof -->
<g id="node31" class="node">
<title>github.com/google/pprof</title>
<polygon fill="#ffffcc" stroke="black" points="373.75,-2790 1.5,-2790 1.5,-2754 373.75,-2754 373.75,-2790"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-2775.05" font-family="Times,serif" font-size="11.00">github.com/google/pprof</text>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-2761.55" font-family="Times,serif" font-size="11.00">v0.0.0&#45;20241029153458&#45;d1b30febd7db → v0.0.0&#45;20250403155104&#45;27863c87afa6</text>
</g>
<!-- github.com/joshdk/go&#45;junit -->
<g id="node32" class="node">
<title>github.com/joshdk/go&#45;junit</title>
<polygon fill="#ccffcc" stroke="black" points="254.12,-2844 121.12,-2844 121.12,-2808 254.12,-2808 254.12,-2844"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-2822.3" font-family="Times,serif" font-size="11.00">github.com/joshdk/go&#45;junit</text>
</g>
<!-- github.com/maruel/natural -->
<g id="node33" class="node">
<title>github.com/maruel/natural</title>
<polygon fill="#ccffcc" stroke="black" points="253.75,-2898 121.5,-2898 121.5,-2862 253.75,-2862 253.75,-2898"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-2876.3" font-family="Times,serif" font-size="11.00">github.com/maruel/natural</text>
</g>
<!-- github.com/mfridman/tparse -->
<g id="node34" class="node">
<title>github.com/mfridman/tparse</title>
<polygon fill="#ccffcc" stroke="black" points="257.88,-2952 117.38,-2952 117.38,-2916 257.88,-2916 257.88,-2952"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-2930.3" font-family="Times,serif" font-size="11.00">github.com/mfridman/tparse</text>
</g>
<!-- github.com/onsi/ginkgo/v2 -->
<g id="node36" class="node">
<title>github.com/onsi/ginkgo/v2</title>
<polygon fill="#ffffcc" stroke="black" points="253.38,-3006 121.88,-3006 121.88,-2970 253.38,-2970 253.38,-3006"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-2991.05" font-family="Times,serif" font-size="11.00">github.com/onsi/ginkgo/v2</text>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-2977.55" font-family="Times,serif" font-size="11.00">v2.21.0 → v2.27.2</text>
</g>
<!-- github.com/onsi/gomega -->
<g id="node37" class="node">
<title>github.com/onsi/gomega</title>
<polygon fill="#ffffcc" stroke="black" points="249.25,-3060 126,-3060 126,-3024 249.25,-3024 249.25,-3060"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-3045.05" font-family="Times,serif" font-size="11.00">github.com/onsi/gomega</text>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-3031.55" font-family="Times,serif" font-size="11.00">v1.35.1 → v1.38.2</text>
</g>
<!-- github.com/opencontainers/cgroups -->
<g id="node38" class="node">
<title>github.com/opencontainers/cgroups</title>
<polygon fill="#ffffcc" stroke="black" points="273.62,-3114 101.62,-3114 101.62,-3078 273.62,-3078 273.62,-3114"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-3099.05" font-family="Times,serif" font-size="11.00">github.com/opencontainers/cgroups</text>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-3085.55" font-family="Times,serif" font-size="11.00">v0.0.1 → v0.0.3</text>
</g>
<!-- github.com/opencontainers/runc -->
<g id="node39" class="node">
<title>github.com/opencontainers/runc</title>
<polygon fill="#ffffcc" stroke="black" points="266.12,-3168 109.12,-3168 109.12,-3132 266.12,-3132 266.12,-3168"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-3153.05" font-family="Times,serif" font-size="11.00">github.com/opencontainers/runc</text>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-3139.55" font-family="Times,serif" font-size="11.00">v1.2.5 → v1.3.0</text>
</g>
<!-- github.com/opencontainers/runtime&#45;spec -->
<g id="node40" class="node">
<title>github.com/opencontainers/runtime&#45;spec</title>
<polygon fill="#ffffcc" stroke="black" points="285.25,-3222 90,-3222 90,-3186 285.25,-3186 285.25,-3222"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-3207.05" font-family="Times,serif" font-size="11.00">github.com/opencontainers/runtime&#45;spec</text>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-3193.55" font-family="Times,serif" font-size="11.00">v1.2.0 → v1.2.1</text>
</g>
<!-- github.com/opencontainers/selinux -->
<g id="node41" class="node">
<title>github.com/opencontainers/selinux</title>
<polygon fill="#ffffcc" stroke="black" points="272.12,-36 103.12,-36 103.12,0 272.12,0 272.12,-36"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-21.05" font-family="Times,serif" font-size="11.00">github.com/opencontainers/selinux</text>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-7.55" font-family="Times,serif" font-size="11.00">v1.11.1 → v1.13.0</text>
</g>
<!-- github.com/opencontainers/selinux&#45;&gt;github.com/cyphar/filepath&#45;securejoin -->
<g id="edge33" class="edge">
<title>github.com/opencontainers/selinux&#45;&gt;github.com/cyphar/filepath&#45;securejoin</title>
<path fill="none" stroke="green" stroke-width="2" d="M272.46,-18C336.5,-18 425.05,-18 493.27,-18"/>
<polygon fill="green" stroke="green" stroke-width="2" points="491.44,-21.5 501.44,-18 491.44,-14.5 491.44,-21.5"/>
</g>
<!-- github.com/pkg/errors -->
<g id="node42" class="node">
<title>github.com/pkg/errors</title>
<polygon fill="#ffcccc" stroke="black" stroke-dasharray="5,2" points="653,-2277 540.25,-2277 540.25,-2241 653,-2241 653,-2277"/>
<text xml:space="preserve" text-anchor="middle" x="596.62" y="-2255.3" font-family="Times,serif" font-size="11.00">github.com/pkg/errors</text>
</g>
<!-- github.com/prometheus/client_golang -->
<g id="node43" class="node">
<title>github.com/prometheus/client_golang</title>
<polygon fill="#ffffcc" stroke="black" points="278.12,-3276 97.12,-3276 97.12,-3240 278.12,-3240 278.12,-3276"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-3261.05" font-family="Times,serif" font-size="11.00">github.com/prometheus/client_golang</text>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-3247.55" font-family="Times,serif" font-size="11.00">v1.22.0 → v1.23.2</text>
</g>
<!-- github.com/prometheus/client_model -->
<g id="node44" class="node">
<title>github.com/prometheus/client_model</title>
<polygon fill="#ffffcc" stroke="black" points="686,-306 507.25,-306 507.25,-270 686,-270 686,-306"/>
<text xml:space="preserve" text-anchor="middle" x="596.62" y="-291.05" font-family="Times,serif" font-size="11.00">github.com/prometheus/client_model</text>
<text xml:space="preserve" text-anchor="middle" x="596.62" y="-277.55" font-family="Times,serif" font-size="11.00">v0.6.1 → v0.6.2</text>
</g>
<!-- github.com/prometheus/client_model&#45;&gt;go -->
<g id="edge34" class="edge">
<title>github.com/prometheus/client_model&#45;&gt;go</title>
<path fill="none" stroke="green" stroke-width="2" d="M686.11,-279.05C716.77,-274.9 751.17,-269.05 782,-261 812.48,-253.05 845.41,-240.69 871.8,-229.8"/>
<polygon fill="green" stroke="green" stroke-width="2" points="871.65,-233.66 879.52,-226.57 868.95,-227.2 871.65,-233.66"/>
</g>
<!-- github.com/prometheus/common -->
<g id="node45" class="node">
<title>github.com/prometheus/common</title>
<polygon fill="#ffffcc" stroke="black" points="267.25,-3330 108,-3330 108,-3294 267.25,-3294 267.25,-3330"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-3315.05" font-family="Times,serif" font-size="11.00">github.com/prometheus/common</text>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-3301.55" font-family="Times,serif" font-size="11.00">v0.62.0 → v0.66.1</text>
</g>
<!-- github.com/prometheus/procfs -->
<g id="node46" class="node">
<title>github.com/prometheus/procfs</title>
<polygon fill="#ffffcc" stroke="black" points="671.38,-252 521.88,-252 521.88,-216 671.38,-216 671.38,-252"/>
<text xml:space="preserve" text-anchor="middle" x="596.62" y="-237.05" font-family="Times,serif" font-size="11.00">github.com/prometheus/procfs</text>
<text xml:space="preserve" text-anchor="middle" x="596.62" y="-223.55" font-family="Times,serif" font-size="11.00">v0.15.1 → v0.16.1</text>
</g>
<!-- github.com/prometheus/procfs&#45;&gt;go -->
<g id="edge35" class="edge">
<title>github.com/prometheus/procfs&#45;&gt;go</title>
<path fill="none" stroke="green" stroke-width="2" d="M671.51,-227.87C731.65,-222.89 815.14,-215.96 869.18,-211.48"/>
<polygon fill="green" stroke="green" stroke-width="2" points="867.88,-215.1 877.56,-210.79 867.3,-208.13 867.88,-215.1"/>
</g>
<!-- github.com/rogpeppe/go&#45;internal -->
<g id="node47" class="node">
<title>github.com/rogpeppe/go&#45;internal</title>
<polygon fill="#ffffcc" stroke="black" points="267.25,-3384 108,-3384 108,-3348 267.25,-3348 267.25,-3384"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-3369.05" font-family="Times,serif" font-size="11.00">github.com/rogpeppe/go&#45;internal</text>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-3355.55" font-family="Times,serif" font-size="11.00">v1.13.1 → v1.14.1</text>
</g>
<!-- github.com/spf13/cobra -->
<g id="node48" class="node">
<title>github.com/spf13/cobra</title>
<polygon fill="#ffffcc" stroke="black" points="247.38,-3438 127.88,-3438 127.88,-3402 247.38,-3402 247.38,-3438"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-3423.05" font-family="Times,serif" font-size="11.00">github.com/spf13/cobra</text>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-3409.55" font-family="Times,serif" font-size="11.00">v1.9.1 → v1.10.0</text>
</g>
<!-- github.com/spf13/pflag -->
<g id="node49" class="node">
<title>github.com/spf13/pflag</title>
<polygon fill="#ffffcc" stroke="black" points="246.25,-3492 129,-3492 129,-3456 246.25,-3456 246.25,-3492"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-3477.05" font-family="Times,serif" font-size="11.00">github.com/spf13/pflag</text>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-3463.55" font-family="Times,serif" font-size="11.00">v1.0.6 → v1.0.9</text>
</g>
<!-- github.com/stretchr/testify -->
<g id="node50" class="node">
<title>github.com/stretchr/testify</title>
<polygon fill="#ffffcc" stroke="black" points="253.75,-3546 121.5,-3546 121.5,-3510 253.75,-3510 253.75,-3546"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-3531.05" font-family="Times,serif" font-size="11.00">github.com/stretchr/testify</text>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-3517.55" font-family="Times,serif" font-size="11.00">v1.10.0 → v1.11.1</text>
</g>
<!-- github.com/tidwall/gjson -->
<g id="node51" class="node">
<title>github.com/tidwall/gjson</title>
<polygon fill="#ccffcc" stroke="black" points="250,-3600 125.25,-3600 125.25,-3564 250,-3564 250,-3600"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-3578.3" font-family="Times,serif" font-size="11.00">github.com/tidwall/gjson</text>
</g>
<!-- github.com/tidwall/match -->
<g id="node52" class="node">
<title>github.com/tidwall/match</title>
<polygon fill="#ccffcc" stroke="black" points="251.88,-3654 123.38,-3654 123.38,-3618 251.88,-3618 251.88,-3654"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-3632.3" font-family="Times,serif" font-size="11.00">github.com/tidwall/match</text>
</g>
<!-- github.com/tidwall/pretty -->
<g id="node53" class="node">
<title>github.com/tidwall/pretty</title>
<polygon fill="#ccffcc" stroke="black" points="251.12,-3708 124.12,-3708 124.12,-3672 251.12,-3672 251.12,-3708"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-3686.3" font-family="Times,serif" font-size="11.00">github.com/tidwall/pretty</text>
</g>
<!-- github.com/tidwall/sjson -->
<g id="node54" class="node">
<title>github.com/tidwall/sjson</title>
<polygon fill="#ccffcc" stroke="black" points="249.62,-3762 125.62,-3762 125.62,-3726 249.62,-3726 249.62,-3762"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-3740.3" font-family="Times,serif" font-size="11.00">github.com/tidwall/sjson</text>
</g>
<!-- go.etcd.io/bbolt -->
<g id="node56" class="node">
<title>go.etcd.io/bbolt</title>
<polygon fill="#ffffcc" stroke="black" points="231.25,-3816 144,-3816 144,-3780 231.25,-3780 231.25,-3816"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-3801.05" font-family="Times,serif" font-size="11.00">go.etcd.io/bbolt</text>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-3787.55" font-family="Times,serif" font-size="11.00">v1.4.2 → v1.4.3</text>
</g>
<!-- go.etcd.io/etcd/api/v3 -->
<g id="node57" class="node">
<title>go.etcd.io/etcd/api/v3</title>
<polygon fill="#ffffcc" stroke="black" points="243.25,-3870 132,-3870 132,-3834 243.25,-3834 243.25,-3870"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-3855.05" font-family="Times,serif" font-size="11.00">go.etcd.io/etcd/api/v3</text>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-3841.55" font-family="Times,serif" font-size="11.00">v3.6.4 → v3.6.5</text>
</g>
<!-- go.etcd.io/etcd/client/pkg/v3 -->
<g id="node58" class="node">
<title>go.etcd.io/etcd/client/pkg/v3</title>
<polygon fill="#ffffcc" stroke="black" points="258.25,-3924 117,-3924 117,-3888 258.25,-3888 258.25,-3924"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-3909.05" font-family="Times,serif" font-size="11.00">go.etcd.io/etcd/client/pkg/v3</text>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-3895.55" font-family="Times,serif" font-size="11.00">v3.6.4 → v3.6.5</text>
</g>
<!-- go.etcd.io/etcd/client/v3 -->
<g id="node59" class="node">
<title>go.etcd.io/etcd/client/v3</title>
<polygon fill="#ffffcc" stroke="black" points="248.88,-3978 126.38,-3978 126.38,-3942 248.88,-3942 248.88,-3978"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-3963.05" font-family="Times,serif" font-size="11.00">go.etcd.io/etcd/client/v3</text>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-3949.55" font-family="Times,serif" font-size="11.00">v3.6.4 → v3.6.5</text>
</g>
<!-- go.etcd.io/etcd/pkg/v3 -->
<g id="node60" class="node">
<title>go.etcd.io/etcd/pkg/v3</title>
<polygon fill="#ffffcc" stroke="black" points="244.38,-4032 130.88,-4032 130.88,-3996 244.38,-3996 244.38,-4032"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-4017.05" font-family="Times,serif" font-size="11.00">go.etcd.io/etcd/pkg/v3</text>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-4003.55" font-family="Times,serif" font-size="11.00">v3.6.4 → v3.6.5</text>
</g>
<!-- go.etcd.io/etcd/server/v3 -->
<g id="node61" class="node">
<title>go.etcd.io/etcd/server/v3</title>
<polygon fill="#ffffcc" stroke="black" points="250.38,-4086 124.88,-4086 124.88,-4050 250.38,-4050 250.38,-4086"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-4071.05" font-family="Times,serif" font-size="11.00">go.etcd.io/etcd/server/v3</text>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-4057.55" font-family="Times,serif" font-size="11.00">v3.6.4 → v3.6.5</text>
</g>
<!-- go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp -->
<g id="node62" class="node">
<title>go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp</title>
<polygon fill="#ffffcc" stroke="black" points="327.62,-2682 47.62,-2682 47.62,-2646 327.62,-2646 327.62,-2682"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-2667.05" font-family="Times,serif" font-size="11.00">go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp</text>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-2653.55" font-family="Times,serif" font-size="11.00">v0.58.0 → v0.61.0</text>
</g>
<!-- go.opentelemetry.io/otel/sdk/metric -->
<g id="node66" class="node">
<title>go.opentelemetry.io/otel/sdk/metric</title>
<polygon fill="#ffffcc" stroke="black" points="682.62,-2601 510.62,-2601 510.62,-2565 682.62,-2565 682.62,-2601"/>
<text xml:space="preserve" text-anchor="middle" x="596.62" y="-2586.05" font-family="Times,serif" font-size="11.00">go.opentelemetry.io/otel/sdk/metric</text>
<text xml:space="preserve" text-anchor="middle" x="596.62" y="-2572.55" font-family="Times,serif" font-size="11.00">v1.34.0 → v1.36.0</text>
</g>
<!-- go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp&#45;&gt;go.opentelemetry.io/otel/sdk/metric -->
<g id="edge36" class="edge">
<title>go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp&#45;&gt;go.opentelemetry.io/otel/sdk/metric</title>
<path fill="none" stroke="green" stroke-width="2" d="M327.8,-2651.77C344.13,-2648.04 360.28,-2643.21 375.25,-2637 393.72,-2629.33 392.79,-2617.69 411.25,-2610 438.54,-2598.64 469.84,-2591.95 498.8,-2588.04"/>
<polygon fill="green" stroke="green" stroke-width="2" points="497.7,-2591.71 507.2,-2587 496.84,-2584.76 497.7,-2591.71"/>
</g>
<!-- go.opentelemetry.io/otel -->
<g id="node63" class="node">
<title>go.opentelemetry.io/otel</title>
<polygon fill="#ffffcc" stroke="black" points="248.88,-4140 126.38,-4140 126.38,-4104 248.88,-4104 248.88,-4140"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-4125.05" font-family="Times,serif" font-size="11.00">go.opentelemetry.io/otel</text>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-4111.55" font-family="Times,serif" font-size="11.00">v1.35.0 → v1.36.0</text>
</g>
<!-- go.opentelemetry.io/otel/metric -->
<g id="node64" class="node">
<title>go.opentelemetry.io/otel/metric</title>
<polygon fill="#ffffcc" stroke="black" points="264.62,-4194 110.62,-4194 110.62,-4158 264.62,-4158 264.62,-4194"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-4179.05" font-family="Times,serif" font-size="11.00">go.opentelemetry.io/otel/metric</text>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-4165.55" font-family="Times,serif" font-size="11.00">v1.35.0 → v1.36.0</text>
</g>
<!-- go.uber.org/goleak -->
<g id="node69" class="node">
<title>go.uber.org/goleak</title>
<polygon fill="#ccffcc" stroke="black" points="1163.88,-2601 1066.88,-2601 1066.88,-2565 1163.88,-2565 1163.88,-2601"/>
<text xml:space="preserve" text-anchor="middle" x="1115.38" y="-2579.3" font-family="Times,serif" font-size="11.00">go.uber.org/goleak</text>
</g>
<!-- go.opentelemetry.io/otel/sdk&#45;&gt;go.uber.org/goleak -->
<g id="edge37" class="edge">
<title>go.opentelemetry.io/otel/sdk&#45;&gt;go.uber.org/goleak</title>
<path fill="none" stroke="green" stroke-width="2" d="M994.87,-2583C1014.67,-2583 1036.05,-2583 1055.17,-2583"/>
<polygon fill="green" stroke="green" stroke-width="2" points="1053.42,-2586.5 1063.42,-2583 1053.42,-2579.5 1053.42,-2586.5"/>
</g>
<!-- go.opentelemetry.io/otel/sdk/metric&#45;&gt;go.opentelemetry.io/otel/sdk -->
<g id="edge38" class="edge">
<title>go.opentelemetry.io/otel/sdk/metric&#45;&gt;go.opentelemetry.io/otel/sdk</title>
<path fill="none" stroke="green" stroke-width="2" d="M682.75,-2583C732.04,-2583 793.72,-2583 842.28,-2583"/>
<polygon fill="green" stroke="green" stroke-width="2" points="840.67,-2586.5 850.67,-2583 840.67,-2579.5 840.67,-2586.5"/>
</g>
<!-- go.opentelemetry.io/otel/trace -->
<g id="node67" class="node">
<title>go.opentelemetry.io/otel/trace</title>
<polygon fill="#ffffcc" stroke="black" points="261.62,-4248 113.62,-4248 113.62,-4212 261.62,-4212 261.62,-4248"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-4233.05" font-family="Times,serif" font-size="11.00">go.opentelemetry.io/otel/trace</text>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-4219.55" font-family="Times,serif" font-size="11.00">v1.35.0 → v1.36.0</text>
</g>
<!-- go.uber.org/automaxprocs -->
<g id="node68" class="node">
<title>go.uber.org/automaxprocs</title>
<polygon fill="#ccffcc" stroke="black" points="252.25,-4302 123,-4302 123,-4266 252.25,-4266 252.25,-4302"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-4280.3" font-family="Times,serif" font-size="11.00">go.uber.org/automaxprocs</text>
</g>
<!-- go.yaml.in/yaml/v2 -->
<g id="node70" class="node">
<title>go.yaml.in/yaml/v2</title>
<polygon fill="#ffffcc" stroke="black" points="238,-4356 137.25,-4356 137.25,-4320 238,-4320 238,-4356"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-4341.05" font-family="Times,serif" font-size="11.00">go.yaml.in/yaml/v2</text>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-4327.55" font-family="Times,serif" font-size="11.00">v2.4.2 → v2.4.3</text>
</g>
<!-- golang.org/x/crypto -->
<g id="node71" class="node">
<title>golang.org/x/crypto</title>
<polygon fill="#ffffcc" stroke="black" points="238.38,-4410 136.88,-4410 136.88,-4374 238.38,-4374 238.38,-4410"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-4395.05" font-family="Times,serif" font-size="11.00">golang.org/x/crypto</text>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-4381.55" font-family="Times,serif" font-size="11.00">v0.36.0 → v0.45.0</text>
</g>
<!-- golang.org/x/mod -->
<g id="node72" class="node">
<title>golang.org/x/mod</title>
<polygon fill="#ffffcc" stroke="black" points="1164.25,-4626 1066.5,-4626 1066.5,-4590 1164.25,-4590 1164.25,-4626"/>
<text xml:space="preserve" text-anchor="middle" x="1115.38" y="-4611.05" font-family="Times,serif" font-size="11.00">golang.org/x/mod</text>
<text xml:space="preserve" text-anchor="middle" x="1115.38" y="-4597.55" font-family="Times,serif" font-size="11.00">v0.21.0 → v0.29.0</text>
</g>
<!-- golang.org/x/net -->
<g id="node73" class="node">
<title>golang.org/x/net</title>
<polygon fill="#ffffcc" stroke="black" points="236.5,-4788 138.75,-4788 138.75,-4752 236.5,-4752 236.5,-4788"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-4773.05" font-family="Times,serif" font-size="11.00">golang.org/x/net</text>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-4759.55" font-family="Times,serif" font-size="11.00">v0.38.0 → v0.47.0</text>
</g>
<!-- golang.org/x/oauth2 -->
<g id="node74" class="node">
<title>golang.org/x/oauth2</title>
<polygon fill="#ffffcc" stroke="black" points="239.12,-2736 136.12,-2736 136.12,-2700 239.12,-2700 239.12,-2736"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-2721.05" font-family="Times,serif" font-size="11.00">golang.org/x/oauth2</text>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-2707.55" font-family="Times,serif" font-size="11.00">v0.27.0 → v0.30.0</text>
</g>
<!-- golang.org/x/oauth2&#45;&gt;github.com/google/go&#45;cmp -->
<g id="edge25" class="edge">
<title>golang.org/x/oauth2&#45;&gt;github.com/google/go&#45;cmp</title>
<path fill="none" stroke="red" stroke-dasharray="5,2" d="M239.35,-2718C309.39,-2718 436.33,-2718 518.25,-2718"/>
<polygon fill="red" stroke="red" points="518.24,-2721.5 528.24,-2718 518.24,-2714.5 518.24,-2721.5"/>
</g>
<!-- golang.org/x/sync -->
<g id="node75" class="node">
<title>golang.org/x/sync</title>
<polygon fill="#ffffcc" stroke="black" points="236.5,-4842 138.75,-4842 138.75,-4806 236.5,-4806 236.5,-4842"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-4827.05" font-family="Times,serif" font-size="11.00">golang.org/x/sync</text>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-4813.55" font-family="Times,serif" font-size="11.00">v0.12.0 → v0.18.0</text>
</g>
<!-- golang.org/x/telemetry -->
<g id="node77" class="node">
<title>golang.org/x/telemetry</title>
<polygon fill="#ffffcc" stroke="black" points="375.25,-4896 0,-4896 0,-4860 375.25,-4860 375.25,-4896"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-4881.05" font-family="Times,serif" font-size="11.00">golang.org/x/telemetry</text>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-4867.55" font-family="Times,serif" font-size="11.00">v0.0.0&#45;20240521205824&#45;bda55230c457 → v0.0.0&#45;20251008203120&#45;078029d740a8</text>
</g>
<!-- golang.org/x/term -->
<g id="node78" class="node">
<title>golang.org/x/term</title>
<polygon fill="#ffffcc" stroke="black" points="236.5,-4950 138.75,-4950 138.75,-4914 236.5,-4914 236.5,-4950"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-4935.05" font-family="Times,serif" font-size="11.00">golang.org/x/term</text>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-4921.55" font-family="Times,serif" font-size="11.00">v0.30.0 → v0.37.0</text>
</g>
<!-- golang.org/x/text -->
<g id="node79" class="node">
<title>golang.org/x/text</title>
<polygon fill="#ffffcc" stroke="black" points="236.5,-5004 138.75,-5004 138.75,-4968 236.5,-4968 236.5,-5004"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-4989.05" font-family="Times,serif" font-size="11.00">golang.org/x/text</text>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-4975.55" font-family="Times,serif" font-size="11.00">v0.23.0 → v0.31.0</text>
</g>
<!-- golang.org/x/tools -->
<g id="node80" class="node">
<title>golang.org/x/tools</title>
<polygon fill="#ffffcc" stroke="black" points="236.5,-5058 138.75,-5058 138.75,-5022 236.5,-5022 236.5,-5058"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-5043.05" font-family="Times,serif" font-size="11.00">golang.org/x/tools</text>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-5029.55" font-family="Times,serif" font-size="11.00">v0.26.0 → v0.38.0</text>
</g>
<!-- golang.org/x/tools/go/expect -->
<g id="node81" class="node">
<title>golang.org/x/tools/go/expect</title>
<polygon fill="#ccffcc" stroke="black" points="994.5,-4626 854,-4626 854,-4590 994.5,-4590 994.5,-4626"/>
<text xml:space="preserve" text-anchor="middle" x="924.25" y="-4604.3" font-family="Times,serif" font-size="11.00">golang.org/x/tools/go/expect</text>
</g>
<!-- golang.org/x/tools/go/expect&#45;&gt;golang.org/x/mod -->
<g id="edge39" class="edge">
<title>golang.org/x/tools/go/expect&#45;&gt;golang.org/x/mod</title>
<path fill="none" stroke="green" stroke-width="2" d="M994.87,-4608C1014.49,-4608 1035.66,-4608 1054.65,-4608"/>
<polygon fill="green" stroke="green" stroke-width="2" points="1053.13,-4611.5 1063.13,-4608 1053.13,-4604.5 1053.13,-4611.5"/>
</g>
<!-- golang.org/x/tools/go/packages/packagestest -->
<g id="node82" class="node">
<title>golang.org/x/tools/go/packages/packagestest</title>
<polygon fill="#ccffcc" stroke="black" points="1030.5,-4572 818,-4572 818,-4536 1030.5,-4536 1030.5,-4572"/>
<text xml:space="preserve" text-anchor="middle" x="924.25" y="-4550.3" font-family="Times,serif" font-size="11.00">golang.org/x/tools/go/packages/packagestest</text>
</g>
<!-- google.golang.org/genproto/googleapis/rpc -->
<g id="node83" class="node">
<title>google.golang.org/genproto/googleapis/rpc</title>
<polygon fill="#ffffcc" stroke="black" points="373,-5112 2.25,-5112 2.25,-5076 373,-5076 373,-5112"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-5097.05" font-family="Times,serif" font-size="11.00">google.golang.org/genproto/googleapis/rpc</text>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-5083.55" font-family="Times,serif" font-size="11.00">v0.0.0&#45;20250303144028&#45;a0af3efb3deb → v0.0.0&#45;20250528174236&#45;200df99c418a</text>
</g>
<!-- google.golang.org/grpc -->
<g id="node84" class="node">
<title>google.golang.org/grpc</title>
<polygon fill="#ffffcc" stroke="black" points="246.25,-5166 129,-5166 129,-5130 246.25,-5130 246.25,-5166"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-5151.05" font-family="Times,serif" font-size="11.00">google.golang.org/grpc</text>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-5137.55" font-family="Times,serif" font-size="11.00">v1.72.1 → v1.72.2</text>
</g>
<!-- google.golang.org/protobuf -->
<g id="node85" class="node">
<title>google.golang.org/protobuf</title>
<polygon fill="#ffffcc" stroke="black" points="254.88,-5220 120.38,-5220 120.38,-5184 254.88,-5184 254.88,-5220"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-5205.05" font-family="Times,serif" font-size="11.00">google.golang.org/protobuf</text>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-5191.55" font-family="Times,serif" font-size="11.00">v1.36.5 → v1.36.8</text>
</g>
<!-- gopkg.in/evanphx/json&#45;patch.v4 -->
<g id="node86" class="node">
<title>gopkg.in/evanphx/json&#45;patch.v4</title>
<polygon fill="#ffffcc" stroke="black" points="265.38,-5274 109.88,-5274 109.88,-5238 265.38,-5238 265.38,-5274"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-5259.05" font-family="Times,serif" font-size="11.00">gopkg.in/evanphx/json&#45;patch.v4</text>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-5245.55" font-family="Times,serif" font-size="11.00">v4.12.0 → v4.13.0</text>
</g>
<!-- gopkg.in/yaml.v2 -->
<g id="node87" class="node">
<title>gopkg.in/yaml.v2</title>
<polygon fill="#ffcccc" stroke="black" stroke-dasharray="5,2" points="233.5,-5328 141.75,-5328 141.75,-5292 233.5,-5292 233.5,-5328"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-5306.3" font-family="Times,serif" font-size="11.00">gopkg.in/yaml.v2</text>
</g>
<!-- k8s.io/api -->
<g id="node88" class="node">
<title>k8s.io/api</title>
<polygon fill="white" stroke="black" points="217,-4734 158.25,-4734 158.25,-4698 217,-4698 217,-4734"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-4712.3" font-family="Times,serif" font-size="11.00">k8s.io/api</text>
</g>
<!-- k8s.io/kube&#45;openapi -->
<g id="node110" class="node">
<title>k8s.io/kube&#45;openapi</title>
<polygon fill="#ffffcc" stroke="black" points="782,-4599 411.25,-4599 411.25,-4563 782,-4563 782,-4599"/>
<text xml:space="preserve" text-anchor="middle" x="596.62" y="-4584.05" font-family="Times,serif" font-size="11.00">k8s.io/kube&#45;openapi</text>
<text xml:space="preserve" text-anchor="middle" x="596.62" y="-4570.55" font-family="Times,serif" font-size="11.00">v0.0.0&#45;20250710124328&#45;f3f2b991d03b → v0.0.0&#45;20250910181357&#45;589584f1c912</text>
</g>
<!-- k8s.io/api&#45;&gt;k8s.io/kube&#45;openapi -->
<g id="edge40" class="edge">
<title>k8s.io/api&#45;&gt;k8s.io/kube&#45;openapi</title>
<path fill="none" stroke="green" stroke-width="2" d="M217.37,-4714.62C254.55,-4712.21 320.98,-4705.77 375.25,-4689 441.77,-4668.45 513.15,-4630.13 556.09,-4605.1"/>
<polygon fill="green" stroke="green" stroke-width="2" points="556.4,-4608.98 563.25,-4600.89 552.85,-4602.95 556.4,-4608.98"/>
</g>
<!-- k8s.io/apiextensions&#45;apiserver -->
<g id="node89" class="node">
<title>k8s.io/apiextensions&#45;apiserver</title>
<polygon fill="#e8e8e8" stroke="black" points="262.75,-2466 112.5,-2466 112.5,-2430 262.75,-2430 262.75,-2466"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-2444.3" font-family="Times,serif" font-size="11.00">k8s.io/apiextensions&#45;apiserver</text>
</g>
<!-- k8s.io/apiextensions&#45;apiserver&#45;&gt;github.com/pkg/errors -->
<g id="edge9" class="edge">
<title>k8s.io/apiextensions&#45;apiserver&#45;&gt;github.com/pkg/errors</title>
<path fill="none" stroke="gray" stroke-dasharray="1,5" d="M263.04,-2445.56C298.14,-2442.35 339.96,-2435.46 375.25,-2421 454.09,-2388.7 530.68,-2322.1 569.43,-2285.14"/>
<polygon fill="gray" stroke="gray" points="571.71,-2287.81 576.47,-2278.34 566.85,-2282.77 571.71,-2287.81"/>
</g>
<!-- k8s.io/apimachinery -->
<g id="node90" class="node">
<title>k8s.io/apimachinery</title>
<polygon fill="white" stroke="black" points="240.25,-2088 135,-2088 135,-2052 240.25,-2052 240.25,-2088"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-2066.3" font-family="Times,serif" font-size="11.00">k8s.io/apimachinery</text>
</g>
<!-- k8s.io/apimachinery&#45;&gt;github.com/gogo/protobuf -->
<g id="edge26" class="edge">
<title>k8s.io/apimachinery&#45;&gt;github.com/gogo/protobuf</title>
<path fill="none" stroke="red" stroke-dasharray="5,2" d="M240.69,-2070.18C279.39,-2068.51 332.63,-2062.36 375.25,-2043 459.9,-2004.55 536.98,-1923.38 573.45,-1881.02"/>
<polygon fill="red" stroke="red" points="576.02,-1883.4 579.83,-1873.51 570.69,-1878.87 576.02,-1883.4"/>
</g>
<!-- k8s.io/apimachinery&#45;&gt;github.com/pkg/errors -->
<g id="edge27" class="edge">
<title>k8s.io/apimachinery&#45;&gt;github.com/pkg/errors</title>
<path fill="none" stroke="red" stroke-dasharray="5,2" d="M240.69,-2070.79C279.15,-2072.95 332.08,-2079.32 375.25,-2097 454.09,-2129.3 530.68,-2195.9 569.43,-2232.86"/>
<polygon fill="red" stroke="red" points="566.85,-2235.23 576.47,-2239.66 571.71,-2230.19 566.85,-2235.23"/>
</g>
<!-- k8s.io/apiserver -->
<g id="node91" class="node">
<title>k8s.io/apiserver</title>
<polygon fill="#e8e8e8" stroke="black" points="230.88,-2412 144.38,-2412 144.38,-2376 230.88,-2376 230.88,-2412"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-2390.3" font-family="Times,serif" font-size="11.00">k8s.io/apiserver</text>
</g>
<!-- k8s.io/apiserver&#45;&gt;github.com/pkg/errors -->
<g id="edge10" class="edge">
<title>k8s.io/apiserver&#45;&gt;github.com/pkg/errors</title>
<path fill="none" stroke="gray" stroke-dasharray="1,5" d="M231.33,-2391.62C269.7,-2388.59 327.24,-2381.83 375.25,-2367 441.77,-2346.45 513.15,-2308.13 556.09,-2283.1"/>
<polygon fill="gray" stroke="gray" points="557.71,-2286.21 564.55,-2278.12 554.16,-2280.18 557.71,-2286.21"/>
</g>
<!-- k8s.io/cli&#45;runtime -->
<g id="node92" class="node">
<title>k8s.io/cli&#45;runtime</title>
<polygon fill="#e8e8e8" stroke="black" points="234.62,-2034 140.62,-2034 140.62,-1998 234.62,-1998 234.62,-2034"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-2012.3" font-family="Times,serif" font-size="11.00">k8s.io/cli&#45;runtime</text>
</g>
<!-- k8s.io/cli&#45;runtime&#45;&gt;github.com/gogo/protobuf -->
<g id="edge11" class="edge">
<title>k8s.io/cli&#45;runtime&#45;&gt;github.com/gogo/protobuf</title>
<path fill="none" stroke="gray" stroke-dasharray="1,5" d="M234.75,-2014.5C273.3,-2012.04 329.22,-2005.63 375.25,-1989 448.07,-1962.7 522.85,-1910.51 563.86,-1879.29"/>
<polygon fill="gray" stroke="gray" points="565.82,-1882.2 571.61,-1873.32 561.55,-1876.65 565.82,-1882.2"/>
</g>
<!-- k8s.io/client&#45;go -->
<g id="node93" class="node">
<title>k8s.io/client&#45;go</title>
<polygon fill="#e8e8e8" stroke="black" points="229.75,-198 145.5,-198 145.5,-162 229.75,-162 229.75,-198"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-176.3" font-family="Times,serif" font-size="11.00">k8s.io/client&#45;go</text>
</g>
<!-- k8s.io/client&#45;go&#45;&gt;github.com/Masterminds/semver/v3 -->
<g id="edge1" class="edge">
<title>k8s.io/client&#45;go&#45;&gt;github.com/Masterminds/semver/v3</title>
<path fill="none" stroke="gray" stroke-dasharray="1,5" d="M229.89,-174.53C292.26,-166.25 412.34,-150.32 497.89,-138.97"/>
<polygon fill="gray" stroke="gray" points="498.24,-142.45 507.69,-137.67 497.32,-135.51 498.24,-142.45"/>
</g>
<!-- k8s.io/cloud&#45;provider -->
<g id="node94" class="node">
<title>k8s.io/cloud&#45;provider</title>
<polygon fill="#e8e8e8" stroke="black" points="242.5,-2358 132.75,-2358 132.75,-2322 242.5,-2322 242.5,-2358"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-2336.3" font-family="Times,serif" font-size="11.00">k8s.io/cloud&#45;provider</text>
</g>
<!-- k8s.io/cloud&#45;provider&#45;&gt;github.com/pkg/errors -->
<g id="edge12" class="edge">
<title>k8s.io/cloud&#45;provider&#45;&gt;github.com/pkg/errors</title>
<path fill="none" stroke="gray" stroke-dasharray="1,5" d="M242.76,-2333.57C280.14,-2328.79 330.9,-2321.62 375.25,-2313 427.18,-2302.9 485.28,-2288.54 528.78,-2277.16"/>
<polygon fill="gray" stroke="gray" points="529.55,-2280.58 538.33,-2274.65 527.77,-2273.81 529.55,-2280.58"/>
</g>
<!-- k8s.io/cluster&#45;bootstrap -->
<g id="node95" class="node">
<title>k8s.io/cluster&#45;bootstrap</title>
<polygon fill="#e8e8e8" stroke="black" points="247.38,-4680 127.88,-4680 127.88,-4644 247.38,-4644 247.38,-4680"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-4658.3" font-family="Times,serif" font-size="11.00">k8s.io/cluster&#45;bootstrap</text>
</g>
<!-- k8s.io/cluster&#45;bootstrap&#45;&gt;k8s.io/kube&#45;openapi -->
<g id="edge2" class="edge">
<title>k8s.io/cluster&#45;bootstrap&#45;&gt;k8s.io/kube&#45;openapi</title>
<path fill="none" stroke="gray" stroke-dasharray="1,5" d="M247.71,-4654.94C284.54,-4650.17 332.83,-4643.25 375.25,-4635 422.46,-4625.82 474.76,-4613.12 516.56,-4602.34"/>
<polygon fill="gray" stroke="gray" points="517.24,-4605.78 526.04,-4599.88 515.48,-4599 517.24,-4605.78"/>
</g>
<!-- k8s.io/code&#45;generator -->
<g id="node96" class="node">
<title>k8s.io/code&#45;generator</title>
<polygon fill="#e8e8e8" stroke="black" points="243.62,-144 131.62,-144 131.62,-108 243.62,-108 243.62,-144"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-122.3" font-family="Times,serif" font-size="11.00">k8s.io/code&#45;generator</text>
</g>
<!-- k8s.io/code&#45;generator&#45;&gt;github.com/Masterminds/semver/v3 -->
<g id="edge3" class="edge">
<title>k8s.io/code&#45;generator&#45;&gt;github.com/Masterminds/semver/v3</title>
<path fill="none" stroke="gray" stroke-dasharray="1,5" d="M243.94,-126C308.99,-126 418.15,-126 497.63,-126"/>
<polygon fill="gray" stroke="gray" points="497.62,-129.5 507.62,-126 497.62,-122.5 497.62,-129.5"/>
</g>
<!-- k8s.io/component&#45;base -->
<g id="node97" class="node">
<title>k8s.io/component&#45;base</title>
<polygon fill="#e8e8e8" stroke="black" points="246.25,-1980 129,-1980 129,-1944 246.25,-1944 246.25,-1980"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-1958.3" font-family="Times,serif" font-size="11.00">k8s.io/component&#45;base</text>
</g>
<!-- k8s.io/component&#45;base&#45;&gt;github.com/gogo/protobuf -->
<g id="edge13" class="edge">
<title>k8s.io/component&#45;base&#45;&gt;github.com/gogo/protobuf</title>
<path fill="none" stroke="gray" stroke-dasharray="1,5" d="M246.41,-1956.78C283.58,-1952.66 332.72,-1945.77 375.25,-1935 434.21,-1920.07 499.3,-1895.03 543.34,-1876.74"/>
<polygon fill="gray" stroke="gray" points="544.53,-1880.04 552.4,-1872.94 541.82,-1873.58 544.53,-1880.04"/>
</g>
<!-- k8s.io/component&#45;helpers -->
<g id="node98" class="node">
<title>k8s.io/component&#45;helpers</title>
<polygon fill="#e8e8e8" stroke="black" points="252.25,-1926 123,-1926 123,-1890 252.25,-1890 252.25,-1926"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-1904.3" font-family="Times,serif" font-size="11.00">k8s.io/component&#45;helpers</text>
</g>
<!-- k8s.io/component&#45;helpers&#45;&gt;github.com/gogo/protobuf -->
<g id="edge14" class="edge">
<title>k8s.io/component&#45;helpers&#45;&gt;github.com/gogo/protobuf</title>
<path fill="none" stroke="gray" stroke-dasharray="1,5" d="M252.67,-1899.5C325.42,-1889.85 444.01,-1874.12 520.92,-1863.91"/>
<polygon fill="gray" stroke="gray" points="521,-1867.43 530.46,-1862.65 520.08,-1860.49 521,-1867.43"/>
</g>
<!-- k8s.io/controller&#45;manager -->
<g id="node99" class="node">
<title>k8s.io/controller&#45;manager</title>
<polygon fill="#e8e8e8" stroke="black" points="252.62,-2304 122.62,-2304 122.62,-2268 252.62,-2268 252.62,-2304"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-2282.3" font-family="Times,serif" font-size="11.00">k8s.io/controller&#45;manager</text>
</g>
<!-- k8s.io/controller&#45;manager&#45;&gt;github.com/pkg/errors -->
<g id="edge15" class="edge">
<title>k8s.io/controller&#45;manager&#45;&gt;github.com/pkg/errors</title>
<path fill="none" stroke="gray" stroke-dasharray="1,5" d="M253.12,-2281.72C328.38,-2276.73 452.23,-2268.51 528.57,-2263.45"/>
<polygon fill="gray" stroke="gray" points="528.68,-2266.95 538.43,-2262.79 528.22,-2259.96 528.68,-2266.95"/>
</g>
<!-- k8s.io/cri&#45;api -->
<g id="node100" class="node">
<title>k8s.io/cri&#45;api</title>
<polygon fill="white" stroke="black" points="224.88,-2628 150.38,-2628 150.38,-2592 224.88,-2592 224.88,-2628"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-2606.3" font-family="Times,serif" font-size="11.00">k8s.io/cri&#45;api</text>
</g>
<!-- k8s.io/cri&#45;api&#45;&gt;go.opentelemetry.io/otel/sdk/metric -->
<g id="edge41" class="edge">
<title>k8s.io/cri&#45;api&#45;&gt;go.opentelemetry.io/otel/sdk/metric</title>
<path fill="none" stroke="green" stroke-width="2" d="M225.1,-2607.58C286.22,-2603.53 411.26,-2595.23 499.12,-2589.4"/>
<polygon fill="green" stroke="green" stroke-width="2" points="497.68,-2593.01 507.43,-2588.85 497.22,-2586.02 497.68,-2593.01"/>
</g>
<!-- k8s.io/cri&#45;client -->
<g id="node101" class="node">
<title>k8s.io/cri&#45;client</title>
<polygon fill="#e8e8e8" stroke="black" points="230.5,-1872 144.75,-1872 144.75,-1836 230.5,-1836 230.5,-1872"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-1850.3" font-family="Times,serif" font-size="11.00">k8s.io/cri&#45;client</text>
</g>
<!-- k8s.io/cri&#45;client&#45;&gt;github.com/gogo/protobuf -->
<g id="edge16" class="edge">
<title>k8s.io/cri&#45;client&#45;&gt;github.com/gogo/protobuf</title>
<path fill="none" stroke="gray" stroke-dasharray="1,5" d="M230.65,-1854C299,-1854 435.18,-1854 520.49,-1854"/>
<polygon fill="gray" stroke="gray" points="520.41,-1857.5 530.41,-1854 520.41,-1850.5 520.41,-1857.5"/>
</g>
<!-- k8s.io/csi&#45;translation&#45;lib -->
<g id="node102" class="node">
<title>k8s.io/csi&#45;translation&#45;lib</title>
<polygon fill="#e8e8e8" stroke="black" points="249.25,-4626 126,-4626 126,-4590 249.25,-4590 249.25,-4626"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-4604.3" font-family="Times,serif" font-size="11.00">k8s.io/csi&#45;translation&#45;lib</text>
</g>
<!-- k8s.io/csi&#45;translation&#45;lib&#45;&gt;k8s.io/kube&#45;openapi -->
<g id="edge4" class="edge">
<title>k8s.io/csi&#45;translation&#45;lib&#45;&gt;k8s.io/kube&#45;openapi</title>
<path fill="none" stroke="gray" stroke-dasharray="1,5" d="M249.56,-4603.96C289.91,-4601.28 345.29,-4597.61 399.92,-4593.98"/>
<polygon fill="gray" stroke="gray" points="399.94,-4597.49 409.69,-4593.34 399.48,-4590.5 399.94,-4597.49"/>
</g>
<!-- k8s.io/dynamic&#45;resource&#45;allocation -->
<g id="node103" class="node">
<title>k8s.io/dynamic&#45;resource&#45;allocation</title>
<polygon fill="#ccffcc" stroke="black" points="682.62,-5382 510.62,-5382 510.62,-5346 682.62,-5346 682.62,-5382"/>
<text xml:space="preserve" text-anchor="middle" x="596.62" y="-5360.3" font-family="Times,serif" font-size="11.00">k8s.io/dynamic&#45;resource&#45;allocation</text>
</g>
<!-- k8s.io/endpointslice -->
<g id="node104" class="node">
<title>k8s.io/endpointslice</title>
<polygon fill="#e8e8e8" stroke="black" points="239.5,-1818 135.75,-1818 135.75,-1782 239.5,-1782 239.5,-1818"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-1796.3" font-family="Times,serif" font-size="11.00">k8s.io/endpointslice</text>
</g>
<!-- k8s.io/endpointslice&#45;&gt;github.com/gogo/protobuf -->
<g id="edge17" class="edge">
<title>k8s.io/endpointslice&#45;&gt;github.com/gogo/protobuf</title>
<path fill="none" stroke="gray" stroke-dasharray="1,5" d="M239.76,-1806.78C310.62,-1816.19 439.14,-1833.24 520.8,-1844.07"/>
<polygon fill="gray" stroke="gray" points="520.13,-1847.51 530.5,-1845.36 521.05,-1840.57 520.13,-1847.51"/>
</g>
<!-- k8s.io/externaljwt -->
<g id="node105" class="node">
<title>k8s.io/externaljwt</title>
<polygon fill="white" stroke="black" points="235.38,-2574 139.88,-2574 139.88,-2538 235.38,-2538 235.38,-2574"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-2552.3" font-family="Times,serif" font-size="11.00">k8s.io/externaljwt</text>
</g>
<!-- k8s.io/externaljwt&#45;&gt;go.opentelemetry.io/otel/sdk/metric -->
<g id="edge42" class="edge">
<title>k8s.io/externaljwt&#45;&gt;go.opentelemetry.io/otel/sdk/metric</title>
<path fill="none" stroke="green" stroke-width="2" d="M235.71,-2559.12C299.76,-2563.37 415.87,-2571.08 498.9,-2576.58"/>
<polygon fill="green" stroke="green" stroke-width="2" points="497.16,-2579.98 507.36,-2577.14 497.62,-2572.99 497.16,-2579.98"/>
</g>
<!-- k8s.io/gengo/v2 -->
<g id="node106" class="node">
<title>k8s.io/gengo/v2</title>
<polygon fill="#ffffcc" stroke="black" points="781.25,-198 412,-198 412,-162 781.25,-162 781.25,-198"/>
<text xml:space="preserve" text-anchor="middle" x="596.62" y="-183.05" font-family="Times,serif" font-size="11.00">k8s.io/gengo/v2</text>
<text xml:space="preserve" text-anchor="middle" x="596.62" y="-169.55" font-family="Times,serif" font-size="11.00">v2.0.0&#45;20250604051438&#45;85fd79dbfd9f → v2.0.0&#45;20250922181213&#45;ec3ebc5fd46b</text>
</g>
<!-- k8s.io/gengo/v2&#45;&gt;go -->
<g id="edge43" class="edge">
<title>k8s.io/gengo/v2&#45;&gt;go</title>
<path fill="none" stroke="green" stroke-width="2" d="M781.37,-195.24C813.38,-197.89 844.29,-200.45 869.04,-202.51"/>
<polygon fill="green" stroke="green" stroke-width="2" points="867.04,-205.85 877.3,-203.19 867.62,-198.88 867.04,-205.85"/>
</g>
<!-- k8s.io/kms -->
<g id="node107" class="node">
<title>k8s.io/kms</title>
<polygon fill="white" stroke="black" points="219.25,-2520 156,-2520 156,-2484 219.25,-2484 219.25,-2520"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-2498.3" font-family="Times,serif" font-size="11.00">k8s.io/kms</text>
</g>
<!-- k8s.io/kms&#45;&gt;go.opentelemetry.io/otel/sdk/metric -->
<g id="edge44" class="edge">
<title>k8s.io/kms&#45;&gt;go.opentelemetry.io/otel/sdk/metric</title>
<path fill="none" stroke="green" stroke-width="2" d="M219.49,-2505.54C256.63,-2510.01 320.78,-2518.41 375.25,-2529 422.46,-2538.18 474.76,-2550.88 516.56,-2561.66"/>
<polygon fill="green" stroke="green" stroke-width="2" points="514.02,-2564.62 524.58,-2563.74 515.78,-2557.84 514.02,-2564.62"/>
</g>
<!-- k8s.io/kube&#45;aggregator -->
<g id="node108" class="node">
<title>k8s.io/kube&#45;aggregator</title>
<polygon fill="#e8e8e8" stroke="black" points="246.25,-2250 129,-2250 129,-2214 246.25,-2214 246.25,-2250"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-2228.3" font-family="Times,serif" font-size="11.00">k8s.io/kube&#45;aggregator</text>
</g>
<!-- k8s.io/kube&#45;aggregator&#45;&gt;github.com/pkg/errors -->
<g id="edge18" class="edge">
<title>k8s.io/kube&#45;aggregator&#45;&gt;github.com/pkg/errors</title>
<path fill="none" stroke="gray" stroke-dasharray="1,5" d="M246.51,-2235.84C320.97,-2240.78 450.07,-2249.34 528.68,-2254.56"/>
<polygon fill="gray" stroke="gray" points="528.18,-2258.03 538.39,-2255.2 528.65,-2251.05 528.18,-2258.03"/>
</g>
<!-- k8s.io/kube&#45;controller&#45;manager -->
<g id="node109" class="node">
<title>k8s.io/kube&#45;controller&#45;manager</title>
<polygon fill="#e8e8e8" stroke="black" points="265,-4572 110.25,-4572 110.25,-4536 265,-4536 265,-4572"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-4550.3" font-family="Times,serif" font-size="11.00">k8s.io/kube&#45;controller&#45;manager</text>
</g>
<!-- k8s.io/kube&#45;controller&#45;manager&#45;&gt;k8s.io/kube&#45;openapi -->
<g id="edge5" class="edge">
<title>k8s.io/kube&#45;controller&#45;manager&#45;&gt;k8s.io/kube&#45;openapi</title>
<path fill="none" stroke="gray" stroke-dasharray="1,5" d="M265.18,-4559.08C303.44,-4561.62 351.68,-4564.82 399.38,-4567.98"/>
<polygon fill="gray" stroke="gray" points="399.12,-4571.47 409.33,-4568.64 399.59,-4564.49 399.12,-4571.47"/>
</g>
<!-- k8s.io/kube&#45;openapi&#45;&gt;golang.org/x/tools/go/expect -->
<g id="edge45" class="edge">
<title>k8s.io/kube&#45;openapi&#45;&gt;golang.org/x/tools/go/expect</title>
<path fill="none" stroke="green" stroke-width="2" d="M782.32,-4596.31C803.36,-4598.06 823.9,-4599.76 842.51,-4601.31"/>
<polygon fill="green" stroke="green" stroke-width="2" points="840.56,-4604.66 850.82,-4601.99 841.14,-4597.68 840.56,-4604.66"/>
</g>
<!-- k8s.io/kube&#45;openapi&#45;&gt;golang.org/x/tools/go/packages/packagestest -->
<g id="edge46" class="edge">
<title>k8s.io/kube&#45;openapi&#45;&gt;golang.org/x/tools/go/packages/packagestest</title>
<path fill="none" stroke="green" stroke-width="2" d="M782.32,-4565.69C790.42,-4565.01 798.45,-4564.35 806.32,-4563.7"/>
<polygon fill="green" stroke="green" stroke-width="2" points="805.04,-4567.31 814.72,-4563 804.46,-4560.34 805.04,-4567.31"/>
</g>
<!-- k8s.io/kube&#45;proxy -->
<g id="node111" class="node">
<title>k8s.io/kube&#45;proxy</title>
<polygon fill="#e8e8e8" stroke="black" points="235,-4518 140.25,-4518 140.25,-4482 235,-4482 235,-4518"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-4496.3" font-family="Times,serif" font-size="11.00">k8s.io/kube&#45;proxy</text>
</g>
<!-- k8s.io/kube&#45;proxy&#45;&gt;k8s.io/kube&#45;openapi -->
<g id="edge6" class="edge">
<title>k8s.io/kube&#45;proxy&#45;&gt;k8s.io/kube&#45;openapi</title>
<path fill="none" stroke="gray" stroke-dasharray="1,5" d="M235.24,-4505.47C273.12,-4510.23 327.85,-4517.79 375.25,-4527 422.46,-4536.18 474.76,-4548.88 516.56,-4559.66"/>
<polygon fill="gray" stroke="gray" points="515.48,-4563 526.04,-4562.12 517.24,-4556.22 515.48,-4563"/>
</g>
<!-- k8s.io/kube&#45;scheduler -->
<g id="node112" class="node">
<title>k8s.io/kube&#45;scheduler</title>
<polygon fill="white" stroke="black" points="244,-5382 131.25,-5382 131.25,-5346 244,-5346 244,-5382"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-5360.3" font-family="Times,serif" font-size="11.00">k8s.io/kube&#45;scheduler</text>
</g>
<!-- k8s.io/kube&#45;scheduler&#45;&gt;k8s.io/dynamic&#45;resource&#45;allocation -->
<g id="edge47" class="edge">
<title>k8s.io/kube&#45;scheduler&#45;&gt;k8s.io/dynamic&#45;resource&#45;allocation</title>
<path fill="none" stroke="green" stroke-width="2" d="M244.36,-5364C309.83,-5364 419.57,-5364 498.99,-5364"/>
<polygon fill="green" stroke="green" stroke-width="2" points="497.45,-5367.5 507.45,-5364 497.45,-5360.5 497.45,-5367.5"/>
</g>
<!-- k8s.io/kubectl -->
<g id="node113" class="node">
<title>k8s.io/kubectl</title>
<polygon fill="#e8e8e8" stroke="black" points="226.38,-90 148.88,-90 148.88,-54 226.38,-54 226.38,-90"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-68.3" font-family="Times,serif" font-size="11.00">k8s.io/kubectl</text>
</g>
<!-- k8s.io/kubectl&#45;&gt;github.com/Masterminds/semver/v3 -->
<g id="edge7" class="edge">
<title>k8s.io/kubectl&#45;&gt;github.com/Masterminds/semver/v3</title>
<path fill="none" stroke="gray" stroke-dasharray="1,5" d="M226.55,-77.03C287.9,-85.17 410.81,-101.48 497.91,-113.04"/>
<polygon fill="gray" stroke="gray" points="497.28,-116.48 507.65,-114.33 498.2,-109.54 497.28,-116.48"/>
</g>
<!-- k8s.io/kubelet -->
<g id="node114" class="node">
<title>k8s.io/kubelet</title>
<polygon fill="#e8e8e8" stroke="black" points="226.38,-4464 148.88,-4464 148.88,-4428 226.38,-4428 226.38,-4464"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-4442.3" font-family="Times,serif" font-size="11.00">k8s.io/kubelet</text>
</g>
<!-- k8s.io/kubelet&#45;&gt;k8s.io/kube&#45;openapi -->
<g id="edge8" class="edge">
<title>k8s.io/kubelet&#45;&gt;k8s.io/kube&#45;openapi</title>
<path fill="none" stroke="gray" stroke-dasharray="1,5" d="M226.56,-4448.02C264.82,-4450.86 325.2,-4457.54 375.25,-4473 441.77,-4493.55 513.15,-4531.87 556.09,-4556.9"/>
<polygon fill="gray" stroke="gray" points="554.16,-4559.82 564.55,-4561.88 557.71,-4553.79 554.16,-4559.82"/>
</g>
<!-- k8s.io/kubernetes -->
<g id="node115" class="node">
<title>k8s.io/kubernetes</title>
<polygon fill="white" stroke="black" points="234.25,-360 141,-360 141,-324 234.25,-324 234.25,-360"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-338.3" font-family="Times,serif" font-size="11.00">k8s.io/kubernetes</text>
</g>
<!-- k8s.io/kubernetes&#45;&gt;github.com/armon/go&#45;socks5 -->
<g id="edge28" class="edge">
<title>k8s.io/kubernetes&#45;&gt;github.com/armon/go&#45;socks5</title>
<path fill="none" stroke="red" stroke-dasharray="5,2" d="M234.52,-342C302.2,-342 429.79,-342 513.76,-342"/>
<polygon fill="red" stroke="red" points="513.53,-345.5 523.53,-342 513.53,-338.5 513.53,-345.5"/>
</g>
<!-- k8s.io/metrics -->
<g id="node116" class="node">
<title>k8s.io/metrics</title>
<polygon fill="#e8e8e8" stroke="black" points="226.75,-1764 148.5,-1764 148.5,-1728 226.75,-1728 226.75,-1764"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-1742.3" font-family="Times,serif" font-size="11.00">k8s.io/metrics</text>
</g>
<!-- k8s.io/metrics&#45;&gt;github.com/gogo/protobuf -->
<g id="edge19" class="edge">
<title>k8s.io/metrics&#45;&gt;github.com/gogo/protobuf</title>
<path fill="none" stroke="gray" stroke-dasharray="1,5" d="M226.97,-1749.19C265.02,-1752.9 324.79,-1760.23 375.25,-1773 434.21,-1787.93 499.3,-1812.97 543.34,-1831.26"/>
<polygon fill="gray" stroke="gray" points="541.82,-1834.42 552.4,-1835.06 544.53,-1827.96 541.82,-1834.42"/>
</g>
<!-- k8s.io/pod&#45;security&#45;admission -->
<g id="node117" class="node">
<title>k8s.io/pod&#45;security&#45;admission</title>
<polygon fill="#e8e8e8" stroke="black" points="261.62,-2196 113.62,-2196 113.62,-2160 261.62,-2160 261.62,-2196"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-2174.3" font-family="Times,serif" font-size="11.00">k8s.io/pod&#45;security&#45;admission</text>
</g>
<!-- k8s.io/pod&#45;security&#45;admission&#45;&gt;github.com/pkg/errors -->
<g id="edge20" class="edge">
<title>k8s.io/pod&#45;security&#45;admission&#45;&gt;github.com/pkg/errors</title>
<path fill="none" stroke="gray" stroke-dasharray="1,5" d="M262.02,-2186.95C296.52,-2191.58 338.13,-2197.79 375.25,-2205 427.18,-2215.1 485.28,-2229.46 528.78,-2240.84"/>
<polygon fill="gray" stroke="gray" points="527.77,-2244.19 538.33,-2243.35 529.55,-2237.42 527.77,-2244.19"/>
</g>
<!-- k8s.io/sample&#45;apiserver -->
<g id="node118" class="node">
<title>k8s.io/sample&#45;apiserver</title>
<polygon fill="#e8e8e8" stroke="black" points="248.5,-2142 126.75,-2142 126.75,-2106 248.5,-2106 248.5,-2142"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-2120.3" font-family="Times,serif" font-size="11.00">k8s.io/sample&#45;apiserver</text>
</g>
<!-- k8s.io/sample&#45;apiserver&#45;&gt;github.com/pkg/errors -->
<g id="edge21" class="edge">
<title>k8s.io/sample&#45;apiserver&#45;&gt;github.com/pkg/errors</title>
<path fill="none" stroke="gray" stroke-dasharray="1,5" d="M248.93,-2127.93C286,-2131.51 334.12,-2138.29 375.25,-2151 441.77,-2171.55 513.15,-2209.87 556.09,-2234.9"/>
<polygon fill="gray" stroke="gray" points="554.16,-2237.82 564.55,-2239.88 557.71,-2231.79 554.16,-2237.82"/>
</g>
<!-- k8s.io/sample&#45;cli&#45;plugin -->
<g id="node119" class="node">
<title>k8s.io/sample&#45;cli&#45;plugin</title>
<polygon fill="#e8e8e8" stroke="black" points="248.88,-1710 126.38,-1710 126.38,-1674 248.88,-1674 248.88,-1710"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-1688.3" font-family="Times,serif" font-size="11.00">k8s.io/sample&#45;cli&#45;plugin</text>
</g>
<!-- k8s.io/sample&#45;cli&#45;plugin&#45;&gt;github.com/gogo/protobuf -->
<g id="edge22" class="edge">
<title>k8s.io/sample&#45;cli&#45;plugin&#45;&gt;github.com/gogo/protobuf</title>
<path fill="none" stroke="gray" stroke-dasharray="1,5" d="M248.96,-1694.53C286.26,-1697.6 334.61,-1704.32 375.25,-1719 448.07,-1745.3 522.85,-1797.49 563.86,-1828.71"/>
<polygon fill="gray" stroke="gray" points="561.55,-1831.35 571.61,-1834.68 565.82,-1825.8 561.55,-1831.35"/>
</g>
<!-- k8s.io/sample&#45;controller -->
<g id="node120" class="node">
<title>k8s.io/sample&#45;controller</title>
<polygon fill="#e8e8e8" stroke="black" points="249.25,-1656 126,-1656 126,-1620 249.25,-1620 249.25,-1656"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-1634.3" font-family="Times,serif" font-size="11.00">k8s.io/sample&#45;controller</text>
</g>
<!-- k8s.io/sample&#45;controller&#45;&gt;github.com/gogo/protobuf -->
<g id="edge23" class="edge">
<title>k8s.io/sample&#45;controller&#45;&gt;github.com/gogo/protobuf</title>
<path fill="none" stroke="gray" stroke-dasharray="1,5" d="M249.44,-1638.27C287.15,-1640.46 335.75,-1647.06 375.25,-1665 459.9,-1703.45 536.98,-1784.62 573.45,-1826.98"/>
<polygon fill="gray" stroke="gray" points="570.69,-1829.13 579.83,-1834.49 576.02,-1824.6 570.69,-1829.13"/>
</g>
<!-- k8s.io/system&#45;validators -->
<g id="node121" class="node">
<title>k8s.io/system&#45;validators</title>
<polygon fill="#ffffcc" stroke="black" points="249.25,-5436 126,-5436 126,-5400 249.25,-5400 249.25,-5436"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-5421.05" font-family="Times,serif" font-size="11.00">k8s.io/system&#45;validators</text>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-5407.55" font-family="Times,serif" font-size="11.00">v1.10.1 → v1.12.1</text>
</g>
<!-- k8s.io/utils -->
<g id="node122" class="node">
<title>k8s.io/utils</title>
<polygon fill="#ffffcc" stroke="black" points="373,-5490 2.25,-5490 2.25,-5454 373,-5454 373,-5490"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-5475.05" font-family="Times,serif" font-size="11.00">k8s.io/utils</text>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-5461.55" font-family="Times,serif" font-size="11.00">v0.0.0&#45;20250604170112&#45;4c0f3b243397 → v0.0.0&#45;20251002143259&#45;bc988d571ff4</text>
</g>
<!-- sigs.k8s.io/json -->
<g id="node123" class="node">
<title>sigs.k8s.io/json</title>
<polygon fill="#ffffcc" stroke="black" points="374.5,-5544 0.75,-5544 0.75,-5508 374.5,-5508 374.5,-5544"/>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-5529.05" font-family="Times,serif" font-size="11.00">sigs.k8s.io/json</text>
<text xml:space="preserve" text-anchor="middle" x="187.62" y="-5515.55" font-family="Times,serif" font-size="11.00">v0.0.0&#45;20241014173422&#45;cfa47c3a1cc8 → v0.0.0&#45;20250730193827&#45;2d320260d730</text>
</g>
</g>
</svg>
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

Kubernetes Dependency Analysis

Generated by depstat — a Go dependency analysis tool from kubernetes-sigs. Analysis performed on commit 411c4499fa5 (branch dump-from-utils, based on v1.36.0-alpha.1).


1. Executive Summary

Metric Value
Direct Dependencies 179
Transitive Dependencies 224
Total Dependencies 257
Max Dependency Depth 19
Test-only Dependencies 31
Non-test Dependencies 226
Dependency Cycles 19
Archived Dependencies 6
Main Modules (go.work) 32 (1 root + 31 staging)

Key findings:

  • Kubernetes has a large but well-managed dependency surface — 257 total deps across a 32-module monorepo with staging modules
  • Depth of 19 is the deepest observed across similar projects (etcd: 12, containerd: 11), reflecting the layered architecture
  • All 19 cycles are external — no internal (k8s.io ↔ k8s.io) cycles detected
  • The v1.34.0 → v1.35.0 release saw a net +16 dependencies (+17 added, -1 removed, 69 version bumps)
  • 6 archived dependencies remain, notably github.com/json-iterator/go and github.com/pkg/errors
  • The gopkg.in/yaml.v2 dependency was finally removed in v1.35.0, replaced by go.yaml.in/yaml/v2

2. Module Architecture

Kubernetes is a 32-module monorepo using go.work for workspace management:

  • Root module: k8s.io/kubernetes
  • 31 staging modules: k8s.io/api, k8s.io/apimachinery, k8s.io/apiserver, k8s.io/client-go, etc.

The staging modules are published as separate repositories but developed in-tree under staging/src/k8s.io/.


3. Dependency Statistics

3.1 Overall Stats

Direct Dependencies:     179
Transitive Dependencies: 224
Total Dependencies:      257
Max Depth:                19

3.2 Test-only Split

Test-only Dependencies:   31
Non-test Dependencies:   226

Roughly 12% of dependencies are test-only, a healthy ratio indicating most deps are production-critical.


4. Graph Characteristics

4.1 Full Dependency Graph

Full Dependency Graph

The graph shows the dense interconnection between staging modules (k8s.io/*) and the major external dependency clusters: etcd, gRPC, OpenTelemetry, Prometheus, and the Go standard library extensions.


5. Dependency Cycles

19 cycles detected — all involving external dependencies:

Cycle Modules
protobuf github.com/golang/protobufgoogle.golang.org/protobuf
ginkgo/gomega github.com/onsi/ginkgo/v2github.com/onsi/gomega
prometheus github.com/prometheus/client_golanggithub.com/prometheus/common
testify github.com/stretchr/objxgithub.com/stretchr/testify
OTel auto/sdk (5 cycles) go.opentelemetry.io/auto/sdkotelotel/metricotel/trace
OTel core (3 cycles) otelotel/metricotel/trace
OTel SDK otel/sdkotel/sdk/metric
golang.org/x (5 cycles) x/cryptox/netx/textx/toolsx/mod
gRPC/genproto google.golang.org/genproto/googleapis/apigoogle.golang.org/grpc

Notable: Zero internal cycles between k8s.io modules — the staging module hierarchy is clean.


6. Archived Dependencies

6 archived dependencies found:

Module Version Status
github.com/flynn/go-shlex v0.0.0-20150515145356 Archived
github.com/google/btree v1.1.3 Archived
github.com/google/gofuzz v1.0.0 Archived (superseded by sigs.k8s.io/randfill)
github.com/json-iterator/go v1.1.12 Archived
github.com/kr/pty v1.1.1 Archived (superseded by github.com/creack/pty)
github.com/pkg/errors v0.9.1 Archived (superseded by fmt.Errorf wrapping)

11 modules were unresolvable (non-GitHub hosts: bitbucket.org, buf.build, cyphar.com, gonum.org, google.golang.org, gopkg.in).

Recommendations:

  • google/gofuzz → already being replaced by sigs.k8s.io/randfill
  • json-iterator/go → migrate to encoding/json or go.yaml.in/yaml/v3
  • pkg/errors → use fmt.Errorf with %w wrapping
  • kr/pty → already has github.com/creack/pty in the tree
  • flynn/go-shlex → consider go-shellwords or stdlib alternatives

7. Release Diff: v1.34.0 → v1.35.0

7.1 Summary

Metric v1.34.0 v1.35.0 Delta
Direct Deps 183 187 +4
Transitive Deps 212 228 +16
Total Deps 250 266 +16
Max Depth 18 19 +1

7.2 Dependencies Added (+17)

Module Category
cyphar.com/go-pathrs Container runtime (path resolution)
github.com/Masterminds/semver/v3 Semantic versioning
github.com/gkampitakis/ciinfo CI detection (test tooling)
github.com/gkampitakis/go-diff Diff library (test tooling)
github.com/gkampitakis/go-snaps Snapshot testing
github.com/goccy/go-yaml YAML processing
github.com/joshdk/go-junit JUnit report parsing
github.com/maruel/natural Natural sort
github.com/mfridman/tparse Test output parser
github.com/moby/sys/atomicwriter Atomic file writes
github.com/tidwall/gjson JSON path queries
github.com/tidwall/match Pattern matching
github.com/tidwall/pretty JSON formatting
github.com/tidwall/sjson JSON mutations
go.uber.org/automaxprocs GOMAXPROCS tuning
golang.org/x/tools/go/expect Test expectations
golang.org/x/tools/go/packages/packagestest Package testing

7.3 Dependencies Removed (-1)

Module Notes
gopkg.in/yaml.v2 Replaced by go.yaml.in/yaml/v2 (fork with maintained module path)

7.4 Notable Version Bumps

  • Go: 1.24.0 → 1.25.0
  • Docker: v26.1.4 → v28.2.2
  • runc: v1.2.5 → v1.3.0
  • etcd: v3.6.4 → v3.6.5
  • gRPC: v1.72.1 → v1.72.2
  • OTel: v1.35.0 → v1.36.0
  • Prometheus client: v1.22.0 → v1.23.2
  • AWS SDK: v1.30.1 → v1.36.3
  • cobra: v1.9.1 → v1.10.0

7.5 Diff Visualization

Dependency Diff v1.34.0 → v1.35.0


8. Why-Traces

8.1 Why is gRPC included? (32 direct dependents)

gRPC is the most connected external dependency, used by 32 modules including 16 k8s.io staging modules and key external deps (etcd, OTel, containerd, konnectivity).

Key paths:

  • k8s.io/apiservergo.etcd.io/etcd/client/v3google.golang.org/grpc
  • k8s.io/cri-apigoogle.golang.org/grpc (CRI protocol)
  • k8s.io/kmsgoogle.golang.org/grpc (KMS protocol)
  • k8s.io/component-basegoogle.golang.org/grpc (base infrastructure)

Why gRPC

8.2 Why is OpenTelemetry included? (29 direct dependents)

OTel is the second most connected dependency with 29 direct dependents — including 17 k8s.io modules. It enters primarily through gRPC (which depends on OTel for instrumentation) and through direct k8s.io tracing support.

Key paths:

  • k8s.io/apiservergo.opentelemetry.io/otel (direct tracing)
  • google.golang.org/grpcgo.opentelemetry.io/otel (gRPC instrumentation)
  • k8s.io/component-basego.opentelemetry.io/otel (base tracing)

Why OTel

8.3 Why is Prometheus client_golang included? (21 direct dependents)

Prometheus metrics is deeply embedded with 21 direct dependents — 15 k8s.io modules plus etcd, cadvisor, grpc-middleware, and konnectivity.

Key paths:

  • k8s.io/component-basegithub.com/prometheus/client_golang (metrics framework)
  • k8s.io/apiservergithub.com/prometheus/client_golang (API metrics)
  • go.etcd.io/etcd/server/v3github.com/prometheus/client_golang (etcd metrics)

Why Prometheus

8.4 Why is cel-go included? (11 direct dependents)

CEL (Common Expression Language) is used for admission control validation and is depended on by 11 modules — 10 k8s.io modules plus grpc-middleware.

Key paths:

  • k8s.io/apiextensions-apiservergithub.com/google/cel-go (CRD validation)
  • k8s.io/apiservergithub.com/google/cel-go (admission webhooks)
  • k8s.io/kube-schedulergithub.com/google/cel-go (scheduling policies)

Why cel-go

8.5 Why is etcd client/v3 included? (9 direct dependents)

The etcd client is used by 9 modules — 7 k8s.io modules plus the etcd server itself.

Key paths:

  • k8s.io/apiservergo.etcd.io/etcd/client/v3 (storage backend)
  • k8s.io/apiextensions-apiservergo.etcd.io/etcd/client/v3 (CRD storage)
  • k8s.io/cloud-providergo.etcd.io/etcd/client/v3 (cloud integration)

Why etcd client/v3


9. Recommendations

High Priority

  1. Replace github.com/json-iterator/go — archived; standard encoding/json with Go 1.24+ performance improvements is viable
  2. Replace github.com/pkg/errors — archived; use fmt.Errorf("%w", err) wrapping
  3. Complete google/gofuzzsigs.k8s.io/randfill migration — already in progress

Medium Priority

  1. Monitor OTel cycle complexity — 9 of the 19 cycles involve OTel modules; upstream cleanup would benefit the ecosystem
  2. Track gopkg.in/yaml.v2 removal — successfully replaced in v1.35.0, confirm no regressions
  3. Evaluate test tooling additions — v1.35.0 added 7+ test-related deps (gkampitakis/*, mfridman/tparse, joshdk/go-junit)

Low Priority

  1. Replace github.com/flynn/go-shlex — archived, 2015-era code
  2. Replace github.com/kr/ptygithub.com/creack/pty is already in the dependency tree

10. Reproducibility

All commands run from the Kubernetes checkout at commit 411c4499fa5:

# Statistics
depstat stats -d .
depstat stats -d . --split-test-only
depstat stats -d . --verbose

# Dependency graph
depstat graph -d . --svg > k8s-full-graph.svg

# Cycle detection
depstat cycles -d . --json

# Archived dependencies
GITHUB_TOKEN="$(gh auth token)" depstat archived -d . --json

# Version diff
depstat diff -d . v1.34.0 v1.35.0
depstat diff -d . v1.34.0 v1.35.0 --svg > k8s-diff-v134-v135.svg

# Why-traces (SVG)
depstat why -d . google.golang.org/grpc --svg --max-paths 50 > k8s-why-grpc.svg
depstat why -d . go.opentelemetry.io/otel --svg --max-paths 30 > k8s-why-otel.svg
depstat why -d . github.com/prometheus/client_golang --svg --max-paths 50 > k8s-why-client_golang.svg
depstat why -d . github.com/google/cel-go --svg --max-paths 50 > k8s-why-cel-go.svg
depstat why -d . go.etcd.io/etcd/client/v3 --svg --max-paths 50 > k8s-why-etcd-v3.svg

Tool version: depstat built from source at sigs.k8s.io/depstat.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment