From 3b8a569dee2f6bcd56ed3dc4f779d12c1b3fa61b Mon Sep 17 00:00:00 2001 From: Philippe Merle Date: Wed, 26 Feb 2025 17:05:43 +0100 Subject: [PATCH] Add support for VerticalPodAutoscaler resources --- README.md | 3 ++- bin/icons/vpa.png | Bin 0 -> 8675 bytes bin/kube-diagrams.yaml | 5 +++++ 3 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 bin/icons/vpa.png diff --git a/README.md b/README.md index 11b8341..f0cec62 100644 --- a/README.md +++ b/README.md @@ -105,7 +105,7 @@ options: ### Kubernetes resources -Supported `kind`/`apiVersion` resource types are 47 ones: +Supported `kind`/`apiVersion` resource types are 48 ones: * APIService/apiregistration.k8s.io/v1 * ClusterRole/rbac.authorization.k8s.io/v1 * ClusterRoleBinding/rbac.authorization.k8s.io/v1 @@ -152,6 +152,7 @@ Supported `kind`/`apiVersion` resource types are 47 ones: * StorageClass/storage.k8s.io/v1 * User/rbac.authorization.k8s.io/v1 * ValidatingWebhookConfiguration/admissionregistration.k8s.io/v1 +* VerticalPodAutoscaler/autoscaling.k8s.io/v1 * VolumeAttachment/storage.k8s.io/v1 **Note**: The mapping between these supported Kubernetes resources and architecture diagrams is defined into [bin/kube-diagrams.yml](https://github.com/philippemerle/KubeDiagrams/blob/main/bin/kube-diagrams.yaml#L65). diff --git a/bin/icons/vpa.png b/bin/icons/vpa.png new file mode 100644 index 0000000000000000000000000000000000000000..17b39b87664473c3d818f73ec1320dda41706e9e GIT binary patch literal 8675 zcmW++Wmr_-*F8fsQqm2gNVkGCf^-dybW4ns!~g;#B`GQ0f)Wza9Y2tgmX48|M~yQ82J0RYTE`PEBZ zgxRhsE`nTdz7^l$$s>GaJp5d%pJAU%v6XKw=6X?u-jm#`~+H98chnA6dIqHq?wr9on{Yz6Cx{Hd6HhI-9 zIgqES^iwxKC0(^IMr$}PN~`>j^zEz1*O>CLIf&NqRa11iY8O)K-9C|WS% z;R0U@W?$8!-C7uwEJ6zpxPwRL8`Yn`UdiJFcngzPF4X{gl9OI@d`g_zL2vS{&jxYM z;3@IRIcIdl!LXCJpM{cP+%!*-vAP}_FCgdBkpMEz*uhJGRfdlfSgc|S><6%SY4Pfm zy_}i~7IjOM?r)HKB-viqdKwXNpqzT}YBR5A`dXw1J)4}MVWb%n3jXtn**0D-H6;ff zJ<}a3=RX2gt#wPYFRxLVrmNEG&8(88m0yz?@QDvK7$$k(n$7bV2$rH8<(@z5d4m`v z!wwD=EYrmk_g^box#8v!=(~_N)UTP}_05X-_+0J2rh>{Y%!Vw1{hbfQ*u9=k4;MOq zsTOI*sMR!5+tMOkd$P{B{uBC43T7_sxlynrs!2sp%lH?q?$%R(gxdSz@P3{W=Wdqk zE8o9ojt17f@6NHOk54HLisovT&I{QqF!A22>vERp-UBdqSiIOcpvg7aYLPwM|F&Iq zmxi{sJH82GVG{D{?Cou?G}z9~x@9bSxV6vKPXZ4^noBAAV9LC(S3ujK%SUm7wLTHf8&yMQHjG%PR5Vg}!ItCwg%53gg{ zDNLm?G5YrREbMofn7`bLv=W;7ek|{Yy5xMkG5>ahF3+rSXtkWKWS{2RMoGiN z{yB<%qJ}7tnwS|b;5tI^wq${Fc$T{|kNo!$(H~{gSUU9F#@1!~o>X9S9@ny^HIx~) zRA4r(elhO>mc@yi1#S+Zm|(j;l}-w$Fzw1P^x&!UN>xoR!$%$w+BPVTFyi=gz(=+d zJaIq0XyT3B0M^?N?X6Kq933zVi+X1fy*&U6cVe@mlsNjFd(Ud!9TTZ%a*ai4$vxm%f?Z{?>iy}4 zy%u#C^8U28l>2O?Qi?a~B!X#L=!6~FVGwN8gun>Qh&Y01ggglIEcucrhzo?J@K(2@ z1ThM;9ly_t#~Q9Y!9r`pQx)60qxrs3|ms9>qPV+9T9-vOj5Id78?07oz+# z_|-1LX~?jk%3dd#_tOrg(c=zHlZt;r#O*qR5)?8oEY=VNm_RtYL`Tp|QVYJA zbFs$iB$z=(siH5Yw`PHDA9m*YyCbWsIZU7Uh)Sfiq~B`2zo>pOT>gX_K#LjFD|RBC z+Go?>YN|PQU-11CHVIGTFwMkchAr#}HxdH41h&wc;l9DCSyEDb``eYO=%u$G-6!z8 z{Bl!{f-7NS63hJugQ@&{(18g*g`dBf!E%GR(;6kHygbjZc7Y+jr4%pOxZkZCq!fPK z7j@Qh>RX^Oo)jvfXee&mA5(61d^#O_v>Z|Le&}fGfJCO!Y(IYs2MFh6_2wtJo^jB~ zyJ4PSt~ ztIhYpwj;!gZQTe1f2k_zK&7@5rZ1%9{H_ZwA!0!9ARzc7AmAlLGnA9_8wK9MVb#r* z-JnBg#2hDB5-95$BLMVh8!>wvo(TAce@gAvms%Qcr`@8GY#*)z*>7<%{^B_Gm1l7u zMqJCzaD0Kx1NyYi${PB#IKSfl{h@i;5hEhP6Xk19Uvd|lBZv1~;2y!t;dHwyLL?s!w` zcQ{+5pRm-8J-<839$ni(*PN8&0(Ab%{y%%CBSLllwH#4jHS}~}>MtEqb{Z>s5y!vf z&;%geMlc-!oCEj4W2SABD6wc&C1qv40^?*$kJZ0z`3k41a+*m#d9WRH3RG&fNPoyt zxs+{EpElJ5ha}T|GFTrZEuh~WcSo#ut!y_t8t$X12xG|WP1P&*qH^vo#0@0G6Q#cP zjDMQ-)bREDjF9)n1$P@IxMd(UIBYY7gQ#}{jk0zm-8~~Lt^J7+EYhpYNj&*h&tecl=dyH0n36yO=(=dMUOv5(G(lD9Bbr%(nULuOFc zgauIOPWuoH=6<${jhX^$yO~V`NXMjp;~hFC<(lF0;;)h@3$$x)0t>H*!$ZjkbS$Yz z8yhP*Nvx@b)96d;0oT^fa>vo{@ZRs#&JFa$c`;lRKPZ8kOfcE3sBGyD!qp^!W9onJ z)wa&vwXdJ1HuS+N#LH@XAwWk$5<)Fqfk}61X*_&&m{U+UB~0#LJ3tCvH-x>F&g812 z?~BKoy$J(jYhuz5O%$eK)y|O22fE!qU=M#`S(j}G%n!xsJ6no=tu3;Y| zMw*bV8gg)+_Wp;P%cq%uJ{B*AAqpStx<{b(QII`s+Td9$%Dkq5LuSGKb56(S0dhey z@Yeak!tGhLWz~iU?Nbs6$!O{XuV@wvaOKL*kB4yV?=8PMa(6FOG6_o@14_R*$z6rW z<|~)m_p8GTp7{?qSazZ??%wA+UhIo*#wo}Fi;8AI zjl`vS7zNGshk-P^?F|k9{ctGv?YO%xnDPhY&xvI3J8XIw!I#o}|5v}l5PE>b+hmpP zeQ9H$L@GYeK&(cK;bPo&6HfJ?;{ud7706k6Id>VwfXnmacB3%$D{#jJ#c82dLa0@` zbEASUlB+FUiNpNNm3jXH%vO@QZeK-ZV7}Tm#(1UH(Du6%4!G$_Dg3UVOC6aBbg)`K zZa#(P7Q6XNiQYyg)dm3MzZJuxG zb-GW-KrqG>vxIGhfp1OO58GE8wC-wa)&R8DolnV>p*#1u8bZRbo_Nu<#%^oUB?dk$8io<& zL4iltQu`7Xbx_%C9KsPx@+soKx!b8GF-XVzNa;hfjrzc@Yymu8FQ* zg&tTy(P?!!UrxY-wm!9K>P<5SFrRbkr2*89LA;9?V`9RdevkXDuiHV3IIbi)3+k@Q zg8<6_z=-cW+&^?LS06~_Wa-qgVQ#o{T>!z*7BQ4-n%BIcBA{NB)E&HfDwkQ0kfLG_ z6P6R`Uch^Tlb!p`i^ClU$xy@-YG__1?6jJ>FQEhC-O^{JO(qD+pEk93BB|@v2*9ee z6r1BJt(OR@!ln)J#y}f_kaoYNJO7(HK-c%jT`=$_`TBB(m&t`C(2_pmY$N=YiTLtQ z>+@gRc)&b5f|Ojl^@a3LYZ>Bg(yHZt;m#^6dvRbfjqK$G-?i#FUd34~ZVy!}p63iU z_hfwu9~m9B9!9#3Rkr2i$|&#wUkzz4q7TcD<2#$k&X1F4uoTbVp@_T~c-n}L!j|@S zWoD-rMXsXeo~ypQu4;L?Xb|k%W_8Kl)5ESl3|u{Fu{+1 zb@UKqe6!h`ziZJ!Sq!~T{|(hWIt}hnvbxK~b5qYkqhb{>WkmBvnO(*%npU&;;rcFY8RF5NBU#C)Li=28RymPOYCVLUzfCX-N+*7mE43^=q&3hv#AM(T=0MtUQ2jxOwuU zxNH4HZSSR>3D*#;$DpGQt&D-UUZ5lqYL;wf!umuSuFDeV zpFshfPpVetBqxy@aXcos>q5LBS*96b6|Nu|@AxxL67Uycl0A(-GH%VZ=pW$F?SZ(8 zg^7_w@lw-s{8QK@ixqRy?Z^7}8Yp`DL?I5BNe(AkpLvm5&GNmr8m^}ax(U*{@6)}L zc-L|nG5kBpQq#MKn;V`1tI^a(a|3_6GXU~-;BFU!?98I9Bqf)@%>@acp}f8R@=38L zLn7MmdNg8i!2H@eu}{s6tKIrE&5AX$LrIVp&>O2LJVFH7M8r?2WY|rJhUDrHem~8@ z1X3Q@$U+k){WwSH%$txYYi&UHmLqx(@6g`HTxpHmo8nOP=_6D5!;=-*&Ux z+M}qExi+zrU^A%aNg?Emk1!*B1<^YEHnQ-& z1*%+TzpYzcOVc_on9M~-}C5!`T?hp+04}@s%>Zk~lW$de* zm)QoJP6}WGe}Md;4+d{}<+#m^8#RE>P!TJ`**&T>k5{E;F>@F=rU9Qv0H7Y#VR;Tx zMUAy--(ML|g?a1S_6^Dv*X7t#JW-IKVp;?;lg5>Nw)Keu(_q2f0Gw0tv(S7=yTgQeP0j?4Ms&KRevj zpLU2Y_3@*C=TLM-Klz!!_sD34e5Q{n30Sb;D!=aNh-K)>j&D^p3E&Z1&@xpE;QXHS zbog&DEmx`=#z}K~*d}o`4?d6vppaY`0U7;Wg)C{2SPHvpL1ji>BD9dzYz;)2alL9c$% z9jzY*iTc_cVQrY8z%_6j-$DoccK)?Tuuq8o<%=P7z98h zhnab7=_FVMfRb`WJ}I^-bfL?!Xz!Uf&R+VIxEe~w*H248H`9#_X=doKzGu_1r@bdmPZNR^zma?Di+6!J)CGX*YrCb7FcbJfbrL^aIP`-TlFPb9k z1Cnz{i|O<5#}mg9e&qsq?0xz_=rv5Go3mqb{)Eg$4EtRnA5lJ&x@WDL4Y`YX>Gn^= zJYGhI2Wx&|tMO6D>beVH<+!?MILZd_zZ?^SzdzUd71ma*O^-s?5_QCfH?-_PCRW!8 zks=V%|3!{|@?{576ZyV2+Q0vxh>&nQg*}Y&zK?AHy)5Q<7J5-HEkpW}=XV|!OjXgH z!A~Xs-p=;{_6N*|I2{?tcpEHm!tP%aeY@rLT$nhZAgrbSBLs~ zu%gMj@yp$sXIHFD?#s|6^!X2Qfbg6ZJzOQSCUeq;DmgGm$TCBNqYH3pj~&1N;WiP@ z`!biJkarR(7@7L>WE)@W2sM7moDL9J((i{fm|v^dKYM|CTKwf<78jxX0tEER=#+`V z=ErU3@bVdvSKtezgK%v(e{okh?Fb&WGr+yT&_!J4gzV~;YF;6F}9JJE6b*5QwHW4*&d&K_i@w+Wio zAAZYrE5(wf!w0@GD!q3s-QfL52sLs5GA>*c^Bi}ymj<36F)B{lGhGjyI3Jg+hyE?tCdK|iDH4F;3wwp)&F%kzJ8(! znCmq+@XfZ`Q0}P02oatj+iKUKk6s^!!}m|?>h-9C5C2uNeIFB4Y}D|<07OL@9Yq7# zC^QLRHIsRfN|r&WPQVu{A)^3f%q*I8wJPPp#jA!4*ko$C;brI9)3*NAysGy+BPMb5+McdXg|%h$k{)3kuP3^lx(rW z+0#Tw{V_J_a-aGNwTByEpVBF4`#>ySrHm3v&Lwq|t|$4D0kuB?Sn`74Cr8|z!}|o* zWs^1?CyU2a-Q1whx`5!rAJ^HRnSllvONr*y-Oc8=xZvsq%wTDUcfbGU7bZAm#=5eT zC1*ANInH;Hoxi{x6~sZ1Us!bF=T$y4fA?9);4x#YwL=&im&L|wAq`+FLO^rQWrknf zxvTRi6hJW``WW16fQt(o5oyo29K*=l}b35nw{31#^qTS+Q5;dPSsYY<94Bvk?|=)uix3-9*~+IO-K z`BK%G5>-+nDKv^5aInSPsEZ#3_m1F#!_tBr{8D50Vfkz?wK)M)O6X%p&XkE z+&5qeP0dkLdb6am3H_R0z;zE@0Hj{nAa>-2;N$&5tKtl@yN_Jnw;vK1}5qwQIe%SlXE5f z$5xtN!LoC7L5!f1SEtWAh3<;+b@$WMB>BOD)27YztZ{LxTYvAXdVRHMv8-M^0-nT4 z0&BbfGe=Bxf<4xNu6xbzZ@)jLQ2bF`Iqse_{h1)r^UUgBS~1sncWvLl$+IZ{ zdB@QyRw``!xT~nF`x)n;u>?xcF!KGd*Rmw*Urrn0@v5(id(b(lHbwTr%Bt4!oQq3m zc-tz8B`?m_!~3-{A1i)^4aX)-9uHMVeAHMM9n^c%{a?%uEhl3zc5JLC2erK4T%~qLYST`0@v6?)0bn`az z1HNC?G{%ZPZ>eJaW(zE~ACfC&EN@h_!2>Ta_yhTtR~dYs^>4|$5l3q_sH+xO zqZUGbxb!fibEvA2ue&X5j#&Dg|4O`0CyF??*-X#2-OJg3IvE*7bgDIAWcJ^>P+3l| z4fQ=Qh9M(TM@0dbLT_&SLW|2J84D9}%z8?ZTB^!I`h`({+ig|%|K)sBh{8m#N3;p0 z-4vuEpc2-ec>V~h{1;hA<~T&QqwF;FyUQy>A!Fw7K2kr8HD#Yr!+rf0Bc*@BgQ*+h zBZ}W$JgZ|0_Q~J@d|$5ajoXQUMWr%LnLM6oyPj&Fk2hPl%lH} zo9v2%oPT)XyF6+&JC)L&L*;^0PKp42`4luSjlcee1CKUw#C!vrY`O*gk<@O_$oc(* zjEU7`XebALbX;n)XwAuSfhL<6`)Yni+~d%#chy6(5P?>Hmo*kTo*8mfK`i zJY0>5L5$#W7sLV^l0}^64HM&9PI9YSZ3xMoh?aeA@OB1kh9ps@_1MJiw*)qIVX*V6 zOXswi@~{SA+~0rnlOaOu1x?WDN99^OuF2JYko;bV`0;YytwA2&?37=dt2az?e}%2jL|umwCIww4_AU_s_ZA@N zZTgfInvGXYLX=Z*!k~Kuy|=b%e>4-nti<^$_MZ^`w>~1|dpw)%@IRUQflCt%V|n6e zB8~XaMp9$MRu+wJe{gtmHFOnwS&a)Wjfc@%&Xw*aNqE8aB*9wo-prUU$~4{L*nH{a zmRZXc>AQShuo}j8>pCA=Jo!9WFm)(aBH}HBfFIMr;aAC)$2n&;rivpOgg_x+tyIQK zl~b0wiANzcPe(&#{f48)ja*O72V-rGB0@f#Rc3ia=X@#-b^L8fXvVMSHHRtJ%OAcf z9uc|yV;EJ=&0}>fVa*wnt?~y`T8nb26)#a#=_|DuK#fd19eS_q9S1@-(7z^UR98bP zq94|V(|?aSn8Lzr9}8{T%O!!n7v{R|`x`$rxBe8#7YjG~((INhZd(*HCce@U?uc_g z#!*la30gam<&WA53#n|rgrenC6<>|Y84Fjdc8|nVUVf_?{*&eV6|)11p}=@eC~q~{ zNuIs;LiiE*abQzH;oW2Qk0u*K&3J>oF`pDVl`h zaGTeO+L%&{7{1p8y19fcr;kG^$0F2KQfIUrWcM_W(&a?`eTn2)AXK)Ldv(K^Wj)rs<_u;GCTPDGz zwryvPpQqNUVT#Z&|3_NmiV@~M<3hV~!i2sr42fpC^G5N%#iXg___o>pf62pbYzC)< zw*Y`-|L-gS^lxT}=2Olrmrf>TO3lBf7X0 zB@Zh}bjG84sI}R#mdRwb8d%JJTml0y@S)B?mxU&~?JGTHHW6LRDqF*Li{*MMn&}}M XQw!O5&$;`<8$elJ<5jt=MbQ5N+O1gO literal 0 HcmV?d00001 diff --git a/bin/kube-diagrams.yaml b/bin/kube-diagrams.yaml index 7f46426..b478ddf 100644 --- a/bin/kube-diagrams.yaml +++ b/bin/kube-diagrams.yaml @@ -455,6 +455,11 @@ nodes: edges: | edges.add_webhooks() ValidatingWebhookConfiguration/admissionregistration.k8s.io/v1beta1: ValidatingWebhookConfiguration/admissionregistration.k8s.io/v1 + VerticalPodAutoscaler/autoscaling.k8s.io/v1: + scoped: Namespaced + custom_icon: $KD/icons/vpa.png + edges: | + edges.add_resource("spec.targetRef") VolumeAttachment/storage.k8s.io/v1: scope: Cluster diagram_node_classname: diagrams.k8s.storage.Volume