From 11599a008e81cfd00d13ccc8470c5d6488768236 Mon Sep 17 00:00:00 2001 From: Janelle Law Date: Fri, 1 Aug 2025 14:15:07 -0700 Subject: [PATCH] Add architecture diagram Signed-off-by: Janelle Law --- ...policy-controller-architecture-diagram.png | Bin 0 -> 49703 bytes ...policy-controller-architecture-diagram.svg | 577 ++++++++++++++++++ 2 files changed, 577 insertions(+) create mode 100644 images/config-policy-controller-architecture-diagram.png create mode 100644 images/config-policy-controller-architecture-diagram.svg diff --git a/images/config-policy-controller-architecture-diagram.png b/images/config-policy-controller-architecture-diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..3126eb9c2524804511d3dfe602e2599e3d2bf4bf GIT binary patch literal 49703 zcmeFZcR1Jm|33T{DSMQeT~R8dMP(-~Wn_hnRFs4gva?5MNkfQ)Y*O|fZIqQgQbI-% z5$^M;>$;BL_qgx>?&G-sxR0-+>+|6~UgJ3)kMnV!=i?Qmd2~M$Juf|lLSZ_1KvkPU zp&rD4LMv(UN+$OKdHf%p-GSqmC=}*O@*h>LZPF>c$m6ijz~Pwf83!lxi>E10PEHbM zFIZo)FtDQtg#bT_39jsE+GbnL3XuO3`Rz5DNPH)y2( zdy(@0lNXCPsO0zTS#wMDh>D$^l)~)bT1wfMcMm4IT*rDRzkO_Kdy$>JwWH|Ds+J7X z6%@YR4lA!-z1mvp>6!cMaPaLz>)BVWvY#G3G4b{B<8>YRml6vKf4%4^^%RVhIN>td zzh>uor4+q1yU~t(&sikIW}w%+3DuFBrZfRxAcia7a$nYMJ3;(|kM z9VPC2?(eh-##^O!g)QkPKFS`vG|{(jvuO!mx96gJ#N^&B7|I7Swlzgpem;G6LWKN0 zb=hIEKmPac--AslEywiPaD^dBNgGlPbLl$^oic9PaBy+;SNJhdy!;rr;@szcQM`6t z`eIfWEx(e1!8O4#Cp(*!i)*^^hpFd0hwJocb@H)9Gh5rm7wr$Xo~GZtWs9`KV7>lO zi)m0`U>OE)`<>ILPm`(R-fqQuXY+CG)9v(3O#4hs1dLCd=>7KX`04KpM$PFbLOy>! z75jrbly4V%TU%R(d*RQob+u02?g8WDcJ`mVmoto)F3z*`*M{#;Jo@nIc_YjBQRR;h z-ZDFV+V6PI8QtTBOS7pnW%7n&a^tZlJs%PdUw?IqTh3YP*I0M>7Nh5}_*nhNk3ONH zp?T@r$yEbyBJIDt<@qyFE6Dr3qu7g zq)-kYJ}l=p!%8u;whno;H=qJ5B>r6hi=fEPot)Lx)dw^*_8S}Xjdm7JceqRM+^Oc^ zustq5exiGEflE|Wbi;-X^?7}U+S=ZC?{Y`UyK?T@wM$ZN=a(;EW+p#sn46nF%97i( zi2=)@I{(sFO>OOE6tZyo`ugnVe%aU;cXSw6RaXm3NHB{>9EuNpxW_5Dw`gAoXKTUb zP0W05xHv9>l&=S| z=o{kq+yDIXE-}m;x2mnJU1ei=>XckgXb6|2$gW*Hw6wJK4Gqd?&WIj;xH}>1=*g2J zxPj}pZuuC!xX_FBykXO(Rf6H+;kCHj4FZXZt7xc77Z>(;%zhJF&BYb+#=0dvRCuqy zlBua+LPA1cmg_}90Xb)(^q2<^LRN_#?ZI4pwA!B*7q=`@(zFH#3B)$HzjEkM@JyFh zvQA(~$ST|1!0>P~69S4Jj5;L}WL7T@&{JY#W0l-u=)Aoa=f^zzEGU`=27wp0s@EO^Ya_i5uX$vVFBIUe)eXb`n+kHVJ?j_ ztFMCl>`Hn+mAgBv@8DapI^uqGt3(5b^YinAY~J77_BDClAnWAP@mH)^5jrsB=sGpD zexX zoqYWKeq*JJCfxEa&v3=QceWS>55K>^{xzc>D_tu7QF$29;|Z%U%!gs zkmmh0q4U~g6_oH=!B<%t4^2ItZJg6`|&oX3?08O)NmV1)=E8+AB(KKw6Kg0v-@k|AcV`zD5+~#LhpU;J3#)|-gev>c z3L{D5DwQr=kf2dkI&fg6$L|3y14F|;T%mtjT3TzQfV@jAR;<#%n2EEq?CjL=w07<6 zL6UsEsHl7T`+er7$1GYi%`r<<{){}{TJdVwIfBB%!gc&nd#}H zms;8jog^1#`dPN0Z)F8kkbjn&+dDWIh>U--v*0qfl$lrF1wajH*I(z8bi~Q0)~{dx z^5shCy9xlBLt2sE# zaZ$W)cx5hJ!_A-XF5w66z@FQ$qqF+dR-SW+_PQy0<~ZeGTkf!_Kt`^0%Q6Zri@;{u zci4Yr<>gcZ0|S}QpQ~X-Voxo@8a;L9jLQD~E8J%%8?3&*>K%1)ajEMxL8f{CaL)=1 zKh|jLr%$~||5n{4^2lA=MOSUxwr$m%)BNn^sNI+8F*iOrIoqNhKFqrE^UQ{bLz9CI z)QAbqtzo&jJB~)l3YV;)W#pzPvr3tjQ8pVrXG~(eZdn&y{p834Rvw<;75(d0ddp^+ z0B~uQdbm#xH8JRCm{jAwx6dNH*r@K`A0o!OaDH)NeuKEUcS(r?K+z-ZWNZNZZ>H0j ziLbA(RjQ)LA7@{G|78)CznfN#+H@9h05k$6D0z64)TFJ!NYuQJ*hEDk`OA5tZ<}pG z=Cfy2Z|`lh|Mp@1sZ*zfq@-AnB_3T)QB_k@N!F?O`0-d#?IM610jKx2S@sMKi60Gi z#%7e=wM$q`Yy}4g2RTBlvQKPAM)=^M6*mu$`Ioo%B;{)Aay%D3CO*HB>2~ueDw31k zy*m!jLTP~R84`Qn%NuJo=F?e8&C&2C<%iek=g;dF=Bk2Lk$mKto|IGuRA!FFo|?MZ z-hHad7=co0z&%ex+jQfdHv>{qQc4F8202G8obCh=r;r39G51sVi{+KAjB9v!5D1rJ z-2AXLWgisg&b6f;-)4W$$A_AtWMs4k0JRpm#C~#6%U&f16Rvof zr4T#syp4_hSeHD)?J{hwX6HW$i&dLuJ);Ll0dsh#7mN%HNEpo%*){Xz$&-q=ZyA&1*q$sD zZktQI9h*O96kdN%uFa6S6!F4Go2IN76Jb&FF;)wyo1x*FGz& z4c>?C(gO<`~p_^>qU!ydjs{ynIboJH0L5zo+yXTE$X;q}DM-aez zELQ8unPV@0|EyD7ivxNK1)8!oCuzk;4n?|{dd~E&xE&FJoG&6Se#p&OesZy|Iz-lC zkX3V6(R>~DB{Jelimc~?98i%R@X+V4U;B|n{9n9~0j~2?3*}W7y(KIusZlihv_xcc z3;6XZIX=*upmA-v%-@Y|FdzMb8BqKW~ z=SDl6W!c%;3l~?@ES1y6t=9Ld-3MMr zka&X&7gfLOg^-SowW`~Fn*YOx4}d~`CdDr0$VWK$`1JICGc%!`wq1+}JD5`Ov5$A9 zEhrSERqtE3Rz*ccu?h+E~*^m1-Xb2BGJ>dKE(&n|Qt zuH|0%1Tg+6B_-sRm_|i+x1fT8!U1)4--LwqYGHi8BinJa71wySQ78c2swn*$kW8PQ z|D-L~FuoPZkd}f3%#2?!K0D1S{h3-z+zYvXH0ig-?0cjc*ln-iIAVZhO=1-ATI1b; zKV#b6J|*Urv^YO6pkrC4d8L_!g->g%0glUF>^kiq8Oeq9rm3gr-+cGt`P*reYHl1F#T+^k+>YZrora1!h^95~&V1 zZrqsp;zcdCs>!Ttd2vxurcL`!l8-PcFWkMq}Mt6{0Z~G#KZ(}PkCeVG3m1(9+&1W=2+JG`}r-WXJD|O zpPl0Ba_s5p@xrYbQ&2lHq_mfrUpFs2@7LJnHQUu7K;29{AgPD z8vh(Xt3aH9JZz_SFThV>naw$^@`NC6T|HyYu6Gic>DJ49uOaWbg89r7-1|55m{Mo zkR8*)K7#S(bxas*t zMe${^An`em6;EG}in@m2D0jK;S9b*J$(uLXL+36pGApxQzju$0n%XBZ{iGz2wW-_0 z^2w;7#7p&Dufj341E4v z_URK3>ihkN4$))L_X3@QGdZv|D*ne~6%P*uyfy(|#G>ul*{06*OU1E>%aN{on+7$+ zB_#YyN<1z*^(Wv~l=StdbD8JGmOc_UG<}rT;qRwKlCNyZ$@_=0Z0N4^I=Zy|RM$~4 z4*va3mA&kLUj+a7zXL+n!~ZS@G7A5@7|1B7vTMc{?9tQ(I(u5kpgPH!iC;z~SlNn? z8C0@q={g&olQmKP8*@Z%QvM4$bY@EbFJJWZ(bdt>apGFnuz~{KX{)<1qM3_+mcZIs z%X2zTE4t3e*mhN+40)uvq382wntSTM!rP3BU3L&G1Ysgd(NlnbkE1WZNy)}VC#>HuMuEdx=Y-_TZ5eE zn*H@XT)IZt_1|y>}yyfZ?ckw~)dQ%^e8s@-IvR8gQ&U=e$ z`|zF3%7AmG$?piG@b3PO%-r04z_UWPUTNl>IRa8b&%Dlbv#>A~7;9j%Jr$Lej}j85 z!sj%BCAx}Ttv7%C@IeKouk@84pT8=gM(ITn5&#_LGBpI2?<$a`{%GxRJyO)&`}a?R zWN7N-AcK5lw7WDMT&R$Of{8IFH+LYYHkC)3e>S;e1P7bb)|@|o9-z@5In}h(gAmD{ zcQ8(P12yc=iV$_^Cw6vrWw_xg7xlx3cl$WZO@8x1mRH@kPuEF5&?MNw!?lYYXaGV+ z<*Qp_y~D#Hfq^SQBrZ=*PUaQt;NjspaNvNKcJk`T&iqR&f`WoHlXVUpIkHbpjg}%L zBg4fdX+lHUZr#iXGRDtXq88P-^r@Gu6TihH=+B-#iwiw)^r+gobK;s;)-M9Z_U*u3z_plF(P~vx2~Ib7o64DSBH78wjmrKUkEk%fov1F-oQtc{yDtDZl<8AwA*OG`LCCOSF{Xa(Owt!mma3dP~ZojXsYY1HR;-@bE4 zL_t9ShoX2*PCD2ZYP^2^n&8CXkPtROK}mr+tY>4;ZTIfo;~nN&y;=y`33gPYtUsoO zz*lW;b{+AEJh}DjmoEu?fEeUjr^mX%oA#BU80tld({~A~Kx~8415A(FE(Hc$H8nNCo{3`}`92U&CTxofo)@^!?F9HHUjxpZ$Wm-M zEjep+;p9ngaIq)Ly_Z`xCM^{N+brJ)+Q_H)U->ZJTZxTJP;hKEbKaGoqCnK!!~ABs zljd$lMg7q+0#ku?$2y$@xnM*_-1^v*{l3%1>;Rz6d_z;%P*sL%Ckm5?s~Q`1LTA^3 zK!m(Q5V)J096ddKl|_2j=q*xIhLiNEBA4XoDAI?c%#pgvcn&XR&I*B|SyxvU$G>2}pAK2`CPy>5*ff6>!+ zA_HkC&aY->W^RQ@I74+AMb>td(pdNqOxZKiAq2Sn9*BfKQq`JeVL#Nkal+>WD4Q71 zg1WF-HmqpDrWdLbxZ?Yd6pXxGTE2x1{xPJ2{ z5z7cEO@vt#RasUIBHL}d_%07O`=zH#K;4>{pYDza-QhelE=(a6hN;Kz^Cy29@yF~{J8>3um^N+4P>4w_u1cH zW28^NUOhowgeAR_g=N2{Cabr%cc$C#izBUB)I=%1c1;!apEP2Gv{zwap~a`{(<|xe zKgc2?q^Xd1AO{hdoKpYn>@gzlqNo`E@xvP>zJr5<-Ei|3(1PWt0ubl}z_mk}^+pm4 z{=VgSHjUBq^U4TX_TxRuU>D<1>duVh)K#rwK>fB)Rh34q%l82MkDuwyOfI?!S26$0)K;NSK9dfZ@`mON;_?21Q<0R#t(CD4@4#btl^=#$1;`V#Y~i z2nxm2)Kof(nzb7gk!>wfzciTrRD-N#2w&jPoARFW@bO&(<^8Crh!1c_1^Z25@y{iS z68^}9u9WzE52O$zPBVZFs8bEHbHDUqBJqKQZjP;&bUa5?MMWjkzF+Mx9e)y{CLtZ9 zE`3p_5Y;3TYE9zkz&&}_om;nUW8>iolD4SnneO%^gm!f;%mpO4Iec&92p5pAK&)M- z@T;esTK%pR6>=K*wLO!QlSJwPwciJR+93NB9nLroUY1BUk{vOUB{Rzo9y~}CDi~%~ zfJ_7@6Nll*bNI%N4LV-QqDY|thOJl7NY*(CW~&}7AEAt~=F98q#{4P^!UW`l!8s7Z z2*|9G_$v?&fp@7RJcS&`x(G%2HU<>+Xa`aqgA{mIxDt957k`Jh-Z_*|0r>%zjv$Eg zpe-zZjeJ6u<mPx^?UJqcp__fSzcXczu^MaP~lZZhdxk71T-+b7+S$P472YpS>| zyq8>P>hT;}vPWt{*O=Sbgd&(xQxF9Rp$Hw60|lE86dD-#eJ-W!35PtIhax@ zq&lQc653`4B2A^vHE!69B!ufjtg2xMPrF~>Z(8EEi%bQg%yyf$)tmIwRp)+v@BQ+{ zALHB)z5cGOy$Fe_9R-&ekOC_JOMy7UQIhl*j+Ip66WxP$3p;z|2X)_8R4k*A3>Z29 z)QL@?f-$9-VPV#{wA4bE&a&-R2<<&eMMWhA;ZQLO%7rGBJ_;nI^@v|P+9bAYfm*b6 z*|KF-W%=hnWk-(Y6c-me3+4fn>FIHX2`Vyg+O!Gx)IZT*E45?CK5)ifuTvI0M}1tJ zBVuA=oH?BkIs2N9Qy@0@r=)Cxy-l7^&RNr9LnyWpHXIcNSfmEt1AvCB*iVEvFE1}= zrJ;hp%o*PM)40Tq2l6xbZil3rACP6tp+e)2Nn8%KLnOAFVc`|ls8p+G!B)K(gJbzdwz9CzH&*-0uT zAThjE4mAXyZ{ps$@K{6PHx0OPV&y_*0S1*CrF&pyBuPlX*@(3)xcK^}rhR~Jy(1&n zK=z}846gl#+k(}tfqQ65?@q>iKnit!Mt81aP|7$|lqlwO|NN_6HVxsRT>u4^!c z5m6Ktpb(t3yt0xS-$m+}fAgK4jqPBNi$Jtuci5AXbMv3&w-r-|3nl!-AJaUU~m^J~|xX~wHDL9&Ll_2}R&QKf-{6iZ7>`@r1N zQbkbqD=COrA!?lsaIv_-GsZj5Nu!)v3#(5M6*Vo%I(crtx8C1j?GIU!nu5$L8g|_^ z8n=A+!2=6O%t`|tazl%z*sx+6(N)NSNTia{^%SqSZ`Gl8#$i->*HTC8Gf;Wqj3x8G zjMQTk_%G)3*|a^oiWP!|_b4rm2~2OOODe$E$#(#U5}|D$T3fkMsQchc9t*!M5o&}$ znj@*ZUJwL>z<^v0wGTl;xrjse#IX~&035L#Ngay9x|ahN-DY|NpyckwCIIa#?J{YF zfhUGUv7=G-+;IzX8qMRxGet!q))4G1l-KfoD)RJ7#pl5fTh+%>Av1(x%~rm9#}vxD zgMHfyT|wGOaZXlN3IhWJ;Y45pQYm!&4m~WKM0l((KWOcmze9$QEuaJ9G9XtRi+@zu)*(<17NL>t9AgBv7)Usi#As+e*t>mq(ham@dRe^%S zerDX9Pr;2F>C7K9acb+mnt&ACBC*&31CnUx`DbDUf^^K#V#?cJwo3xRDq!8-l#G&P z;$ziMp{Ox3GG?t5vbU@jJb>we{nK1YrbPPEO7PhY$OxJn{l!hiIq; z4_ie=MX6g|l4&?LsPmO8#EnIqIkPL>SfsR2T$K%}RTk4XO1p!=k-83q% zT3qFghYv%ciO662HF^8?Y9d7vxvn*9EwKmIHs<;ijDmH7^I-Lu*8A75U6KplHa1S) zo4Okj!GRIIj?IXC0cZuA&xD^1SczWjATl>ZdqbcvLu5kaBN+xc)CWdLAab4fUs=zd z`65FSb|E;ps{e_A%`{wIpzo}FPwVUJpKpK8L|_VTkxUNFiWTu-ZBELIu3QF*8wCT& z0Pt>6yoGuo&gnW11PPsymia`+&OwgL94T8AEl;_B%E`ea{WepC{0f}2xbKcoyZGC5{{0J?)#pJ zLV?sHg!Y07(|&uBOV#G3eRBp#_Vk-O=6zK`LH?+`ZVJ0JKNR z9_kb1%Y`lH?fo4Lm@-gZ#NV{zT%%%J23~es`2E!xpL(Pt{s?{%wzXdGf>Gz^s0nrA7-&CZHpRcdk%y{qMr<_FD6jvCnMn*>J zb!LC3_Ich|*rC9^}Du+3FqBYD9H8JZZ=u+Mnwb~%p=eR=uGz^52RD(e z0YZu2$!(&V%kJ{!eSk(}g&>2rwzc)4EFSDGRRkNMsiWij?PKCz(OczBO&oM|bdtK2 zaH#~48i6FjiLPI$c=|tTC|2X7gi3-MD-39cWaO=#tP0$!_2R+_1XK8L7&NCoM*sZG zc-%HKl85$(Z59}8e1O2H-Is@Av7Jc;?B?cXcK-Y|unU2e&3jc;s#ruL4lQ?eb)EVB zJ4l}h_wY|45YQw45XR}(uU|?7^^Q~h5)u*^17gRh2^S1UMl47EC02v*a29oSb@Hvu zOsT=);rJ^*zkrVho2;61=3UR|D6@`7Aa>VEBor_;-o?f8Fz?f&*~I>3cvhA)t_UVU zrUY#|gkP`|l?dAefo|XK3-%lce4~F8*+;fr#vNSnhN5IC!_Gqmi_Hhd;nT6&52$^> zSxIf(>Wv%(fKF~`r8fn423%#oAriK?`!cr7d-m)hAPX)ftFEG5xDQF@I?u^LHnJ2Q zhMSoLVI4Wv&H$Aj+#WnTK`e@YSV`rL{8V3X*&27(kLbT2`~-%T3USTZ)wQy%jTdMI zs~QH&0_P`NVcbArVD;fK9Y7MfDPqb{Q&StCm?+2GS1Sr=2-Jdqh7)*Zb{2jqbqmEN zEMqep8zvl*8`-P&HT*IzE-r*nL2zEaX3ZMdp)^P0L6?x41aPYYS~?0AAB-Rnk~Cb{ zSkucQZcXs;@QyQvUSigpaR1iVw@fG6ZKy4G)4AqUIt-16h{; z#IIj97}H)j^Azd;(UAclM%Z1v$ez*Rft^GGAy%Q(g$~(?x!$H#4UU8Ly~%W=n!6sI zKmZ};Jr;!-3UPd3Ad$|O z!K?59>N~Zpvj8AO6-C^+=&BHk9u#u<(7u&=16#v`KAVhQpd)Y4M;5RdbIaP9U3N-r z+hS70t@vl08t%bNkerEMc8Iv>+8$=A6&|$>g1!b_4gwSj`15nq86SFg+xno>1p&+) zQJV29N~XySl!$&XKGyi!k7WZy85kH4$^&oKm2HAsLc`hUeF-~T@y7quPY;&=?_0nc zlSY~Uw1Xi@DP)+G+_ZVK+c}=@6=Tts#Vmn=gYU{qJI4f??R=dw{rfroHG%xUS7iSm z1l=U9PX1VZY}kz>ZMh6sX~eJ>qu>r>sa9uaT#Gu`Erf)?&``fScR25FKkE%$Egs>p zsdEQW8tGDdyN;yx4xS#TpIsvk5|~h3Xkf^M9hf99LcM~!xa<^ak`u8>zvAV~m8Aa3 z0`~ytp&61n#fw1QyVCuV?GR@v;JJQEPTqk9FuIC&w6mHw%*6i}^6eKLC$Xn0=H|VJ z(-Pz3f40s2u$8?$v>MPH1vLW&m{=8=8$}laz*U@;WMFA&X{gsLOVnTf3eBC=)Lz^Q^6w`j1%a!E5Nf@H0Qk9M#WiI*sWer6M6G)V8ij<5@Et)LGKUu~Qb0H$oG75Zu;4ImZlEFXn zJC3wc;d0TzP+~Y8YLbfFv67Lo3Jp3$zBfk=Z`J;M3&Ou2mZ~rc3m8Qy6q2Z6nkQ0z z*;Q)N;6Z3S*e;`cAtjqufX^cZ4WWs&wAj#UxL)BG>I)TE34V<57xMtllJ=6=SRry! zK=5iP@X?00)xjJD2xC}?a*Z}Axg7Z^*PeqYs<8=_06P2n`-x{1q|J}q5f&K73w{4y z(L4w3qzsC*)yQnDe0+>L3m1Vy;=sbAi$WDGM|q=|c|vp}3lVIEju*na0T_S~#y^5b zW@enhMG*%xN+6)}ro4bjIcNq|5dY0AEmu&89EeDTYJv%?Jao>1NKlBs)D%KL`ufsL zWQnz)`7B&e(H}|=`YYB+Tmo1_zCsHI;NtIILJzZK`MWx0`Nv0=doB38fX*jlM+!^A z9zX~NpriqS!#?T5+9E<7h7qH}#?HQsLby-VWyIwQY@>c}>vGUm)o4sYr9cJh?emu} zCqKWu0WA1*wDYm$4ET8>6Jv=GRsbQ3u(Om{R0|M?m0_@iA2>W+w+#64|XS0n( zDI957S6@G#J3Y|-SVtW6*b2xI_BHPbO^c9(q7TJkUDWrjU@?&8HMU4@+;}xQx~ufV zwC9_gGXd^vx>jI~veNV>w`e73KYIL_2Ew`0fUBzLEoF&F>r{PXV@68fNG8DQ)_Wt# zy_fgx+lS4nA-{O!XLb&a(edNOze-ry8Wt^>YI#Sm7*uBYSMD*WoIrd&ie3+}>TX{w z@XdVFeG{oHjuhL@6?5(C^S$$yo(n=AU9LT^GHkRI$BsLju3=--YO-LO9zDslU$Vk$ zf%77|O?+sXo))gby{k^jWcsfap`CnjJva9?!S%Ox^(LG z*s$d1DW&j%k4eMU`BUxAd{`v9l5$R~ocXTv_wfIdPvgYB=>AFkS{!9G5C48IiQdfn zXvA}5FVcF#ua>|aszxeMwRo)&P4bZ>?`vvnQSxejpS5esDpl9@sWRvcb7YUuOCgO0 zc$28C`Nk5C2RO2E81iK_JMJ)X`L;f*l31YP=##?S^M=|?pFF+lRG+L(sxokFO0f69 z8^EzAiXJYJDo{^U6d07%&@$O7jK$2>uvVuA%YV_z%#=w_y-v# z96KYc(&aIvoY>4vR!S@yWU$4u_Tro(ar^%}sSn+5-Bx7O*pJ_QTXsKW2D5P^Nm~98 z>>_%p2ExYny2(1|n_PaOyJU-_6`5(Bu%Whql(6~JPYv(J9`hqYiQ@d^Ejx}?l*V&A zNJVd4Prg+1I40$V(yJju9R{jJxuzB$%;4g7WZ2M z?#5M3Ztz_AO&b;Z@Lw;0*hveEBk3pm79!q)@77mf^$2mQvhy=s$+O707OMWzt0+!l~8;=^Jox6#aa^=d{NX^kLtB`Fo{q?ZQ^w zBW`bbbq!CQT1PRfxyExc01#YNb*BW%EU+af1GF}dNZ!hKUh!~54NC^YdsGm zZPs3)Y+lj9Q!)rfRm@9EJ}}8xz5dmO+cJ?$OYdp=i!PVLBdmd`{{Jj5-Q%z@~X|{&P7= zH#sFuHve->a?ycLQxSec{<)q)X>@A+{c7By;IJ^xe}}~a()z!{vK^L!|AqxJ|CYa3 zrK&n`5(C(u|22Bm-&+-lyC|(JR%kB8{m)#8Z$uZ){~UYCqH%9b;Bh8$nYP7KcmAEt zG=nUae?Iyt6hbhDjO;Sq57>Ft%vWEYyBm9}6TOlx+NWl9-v*kH7SIS;g!X_|oJw@FfyBX3UCA|xj)`GG zc4d`Mhpr#^@9JO=LT?R(QZG+A+Ip+)^cne4Z}2ar{|8jE1MAo^*=!IvmhSQf_u+*d z>z{h{sqk+*^Okkb?L(hn$|3!Qj@(!?J0$@|*@I}nequZA?7?#uQXDnD@iJal(@RdzQe#2K2g;J+ZWH)!>I9 ztN&>pWH>le4NjZxe)#^2KgD`GFU70DYW0EKeg|^^o7x7dNdRqIw@|jf%Nl7E|C}wax zpxW~~-cC+)(C9sk4EpKD$&EYV9wJt$oL?Gua8;_RUwT^)Wv{_T0n_M@DW}8a^YQan zGsm|XLa8TDmmpnw5N%159qC`+Z1`*?$i9fKE(9KF^wJj1^o3w`1K6qfDY^pnlV^pX zOz~;3sscV9f4wQg3FW) z2%b*kM70?tW#pUC$+^`sU4>nrK~Bf4G~2LRy5bt&w3Sc8A17%Y;55 zk#=~U*ZnhlSlADNzljeG+LyPn#0moStq1Y1%?0pi>`Rla5u-qC4)9(= zk(ihpEA58?j6iN^>*@-TF)`ujuOnkh@q%d712TFgGjq)`4S7FQw((FL?HnCxmmU}c zYtvQqVcB^acp#fX*r5YEN>PGPz=mfXjKrfTBzJ~j1go2zoE(LMqMT4$9*gr%gv2Br ze85M3O9jQ}i@Oj|u0eeRFelFfAw)h}XppCt$2VZ-tOS`GIcLNZszwxXSM3X1ZMU0W%uaV<_rdmwF)8@ab4nUY8gNK4L{PI<= z&GF8&v;q0I)Md=Ly&bPE$jXk}B|cpb4H(`$z=AFO_y!1Swwpga4?z_|y+>NT zA+0j14-$@x9_515mYN# z@kJ9gYhJ#2<7(xG$8pe72u}xx*$f=tgvrG7R(j!m6&Cg~i*opIy&FW7y6xTG&0rOw56a*0H& za&vblnSIG5IsQs4#tbfn@YMHF=uE|PLE@q4&x{t15zi%&T~MAIJU`Dv5kf%(*5B`F zB2Ij{$1 zunNHh#7xO^8WX@Fh#~0ubymVXQS8v&&8O(W2RD}p5sSc3#-VOJpsv39c`l$aajk(I zqIjXv`A&Xaox&U=j)TA=_cVW$2$F;u~tCFEuazdppY{&zCnzUcj}3FBv=ynOYl zoWv*yJ!H!wOhfYKeEzd$jjfVIqy=1QPvOsBh8!f*Ey={aoAtca&1ntR@PXv$ac^a&fcM&VuplHq zFHbJJ&B??h`g)Y&TQUi3Z06aUv1g$QahS}_%s^5teOtFCR1HAFe1mHi%57ZPI!Lc5 zwZTo5yqW`%L<)08+P(K)U4Rp9x5J=NQ92NEa^Z}#su6jv$ukwa4(0w_b}_uc5x?`F zJ=+eBfcW$(vSD~yHoc$gwoLXna8)%ZpKP+#6ST`aJ5O+L{SMJVQBjfTfyhirXmq&O zE@F>y!1ZKR3azpK{E}@ckB9wUUr3&bwFCk5>}5=`c+pSkYd)A~%6+bcvNgNp6Rj{a_-3woOz1(li&_! z2{jVAaeMCWv+U>kChd^8RWe#E{>)6=mAkT)G*rWnrRdN-V1MzVcexp>#4}=Sz_SSu zs;pYlA4(meOn;5Pl}C`tOSvK+ph?`y-91j}B#RnU&ri5bHR%&onmn5X+miUliTH-q zNr*GVQbMV`tg8d@E{`XGr0iFiP2CLQMgXQ`Z$jom5<;sq$3iOFjk}!tnHc$GS+So` z0V3l{zCPiJr=5@|gdks&9(5FJWOtM!q=lntn+thl%g;+=ML(GVHx?hkNdf+b7(j@} zN^bGbPpghRX~Ho9$*D+0#=|;|r)iY!?Po^MiFHP?Kg#2iuWqgv9h<_+CQcw&hk$?U zW0k2Vhg&kDRifqDhuGDiDiZ^kFlMZ+c8>yu!Bw~{*CSCim zE0c$wHCoY%JS{oY+$ofOnSJfyhuZ5o6g7$pv={OSaCO73TF~d)F#0eO|t-D*5AAWe0 zWF?rE@4r1J>5<`l)M=lE6mRH&LRV6D`X{5Vsf3?x4@5g^I8(hiKeZgF`wl2=5{L)9MmGEl(4vJug`x=gKd?XiPGU>gjePAN82*35{s`iv z{{9F1KSMc4{`|Kb4>`%HdQ#!~EgkNTA;jX3E4I1Z^w{(&OunZbL&{>1OFY18>{ z_@GlS6^5s{u)jBd!;{j;Q0ySvJl=D0f&Af(8+@skg)iT@vQ*1n{2cgijR8K$y0akn ze~cAMmBX{ZM@z-8EVvJUNRI!0;crp$ST6;D5!Ka8adN~wyIxXT-^98*FT!mXp%~uSPFj!&e-QJeJ^p zoKE$W0Qm|WOk~XeogGA-f68-`%x>(%4IcjhwcwwU`&K8O%|RByJwR4GW#a`Y6OS8% z+=8iy)P<^gdV~Y`O9)_H=!R-1`>NL%K1AKevWk;abZLI0mngU6t5Gqn=iuaAn!u&S z2vGb_o)8oHKNjO!2?@f0{5w}uqn$=ebM==4`g@!-So;5Y@l)tOtAfroxo>oXlhP5E z{8n>=hblF{U+CN~=HntI;O)D2|CWFv_NQdPiILm(Mg6?TcdMU_L-pgtKU#JAS08WQ zq9<^$_WjRYXKXgL8eP5nN?4XNCj6cedzOpCiOIRyf@%wix;SNJ1C9q_IYHt%FN7lx zjaQ~j`L_5OQa_J*SN`SWfa0%2EvEfN-G!q583k8$u3yFQiU#dfVPMm-r_Ee5U+) zKBl66vC}tY2bt71?NirrzdTrf_2BMLOrp?X*KvO;UtzJ>AM$DqyPZNlYpC^x39W9! z1FstT-hTH!WGh+pXj6&eouJ=^$AoWC#%$)C#*%i7AM1N)NiF60eG8@RL-&}7@Ufo; z?GD!|k9P3030zrD>FHfp{ozr$<}l;Tz*x4VvFz=g0bb2Ej8huXZjk`UJJHRdiuqE^lYn!hgVT3%3bts zG6fPQhMeIuli89rvK@jilA6{?U$TxnBKDQc)Z>P6+YO&snC-<18=&Bml3J_jX`buu z!xN*Is0MSkGh43GtzUC3@2+-WnwZFukM%aw;)!}^`Z_F zmA91NQ@q|Y88`IPIXz=^tl9L?-F*8prg_0@yh#HaYXg}T2HRdTEz;Th#XMl_lGy5C zJtCU=@p(FfchPFi*Xss5JE-}G3S+x(McZAcoLH0JJ9S~fxx{b9I(DJ@V`07DiyP$X z>G~_(d;3N9+DPu=8`yWy`>nD!myt_f)B6(9y`yt4CRM!(`N-U)hYE}ot}CW`DPF%e zMJfCN5ASAqJN>|%JBfT5j=!oyw#W-#+VJptPiHW3`>?9`0axyHWmveG?Q*=WFYb~1eghwur`Xf+kN3_yobOo{I~e!gSHeTI z)b^mT2g|}1=fam#**+}(&wu(S=Bzf)eORA*=hnCfwc`5SjZRmt-FdD+=$ox9ggS&j zf&=+#m2O(Ft8?Hc<`eJshCLmrI64}p{byEfeCyapqWG5CM#fz=2%%lxdr#A; z)!p&p!6d$!V{!YO_@EG?H@Pf)E*en;okBv!-sOeTa_^XICt4rYyc~5OezJ^B|u3 zvo@XM(F=jICG?+@rwnAJRvH$wnKIF_D{Lz&mbp(Odne!2XjP9yK*|TIuQ$~b1qT_` z&MQ9fv3!tUsrAK+qjEUb=@QH56s8#$E2(H}z1y0KO)r^Di}-x2Hg7RG_ubDanu$W0 zWcpbqHoweXMq@=@bS}%6pL+{vsScriZ^%#M?>ly6Z(#(GavSpELi#FtN7k&u?}fZCvk}< zNj;+*s;_R!7j3`)Tb&|mdw|uSE1=oMLEA+}!*c7$m2YFbGkFIlCf=`3-W(r@$HmsQ#{_SeT zGjgqyYgBmS;SfdJFZ~WGRM9qHu43u-&J^5xRP)wy+4$@G4=BN5ED_HgQtNyR7;2YO zHt%s>+OY5H&E#?hd4Dw0VikoJf8;IiP8*SEc{aL3N>X&+U5N>s^SkX9m-%O;F!DZR z!_Jj<>`be*vKii#-XjrlNHAZ5qhWXo*!lXaR{6z5Jd5vd2EVxZQz+c}As`U|2Yk?< z!jNIxk#`lnW2Vjz(T%qI3_Znwy(RT6*Y5H;f!P~UZ z!g#e<%Wp#?SI$x2{t-|opY}bWEcaRV*Kc>GU;Sa{Vwrt5UgmE8X{x?4B?Yh+9P&o|bCS>xggUH6vxWNi>$w0zJg zo_NwdHjz*N&CL6huqPI$RtP>z@4uF}$L~O0%ICi3Rr z*~Ro|q(6SpX*;jhnTyPnLdmXGVIk3`CY7_R_8rrE%*_5dS

%A-$kOjEBZ0!reG^ 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 P(fVU1jSd}Yx$%DiJ5~MX literal 0 HcmV?d00001 diff --git a/images/config-policy-controller-architecture-diagram.svg b/images/config-policy-controller-architecture-diagram.svg new file mode 100644 index 00000000..d108ce45 --- /dev/null +++ b/images/config-policy-controller-architecture-diagram.svg @@ -0,0 +1,577 @@ + + + + + + + + + + + + + + + + + + + Config Policy Controller Architecture + + + ConfigurationPolicy custom resources + + + Spec + + Status + + + OperatorPolicy custom resources + + + Spec + + Status + + + Config Policy Controller Pod + + + Configuration PolicyController + + + Operator PolicyController + + + Target Kubernetes Resources + + + Spec + + Status + + + OLM Resources + + + Spec + + Status + + + + + + + + + + Events for policy + + + + + Watch + + + Watch + + + Create/Update + + + Manage + + + Update Status + + Update Status + + + + + + + + + + + + Generate Events +