From def4e348d79ae2343ce47ea5f03b46a95d83b023 Mon Sep 17 00:00:00 2001 From: Michael Barroco Date: Tue, 9 Jan 2024 11:29:44 +0100 Subject: [PATCH] [deploy] Consolidate deployment documentation (#984) * [deploy] Consolidate documentation * Update deploy/infrastructure/README.md Co-authored-by: Benjamin Pelletier * Update deploy/infrastructure/README.md Co-authored-by: Benjamin Pelletier * Address PR comments --------- Co-authored-by: Benjamin Pelletier --- assets/deploy_infrastructure_modules.puml | 23 ++++++++++ assets/deploy_overview.puml | 37 ++++++++++++++++ .../deploy_infrastructure_modules.png | Bin 0 -> 37345 bytes assets/generated/deploy_overview.png | Bin 0 -> 64408 bytes deploy/README.md | 41 +++++++++++++++--- deploy/infrastructure/README.md | 19 +++++++- deploy/services/README.md | 5 --- 7 files changed, 111 insertions(+), 14 deletions(-) create mode 100644 assets/deploy_infrastructure_modules.puml create mode 100644 assets/deploy_overview.puml create mode 100644 assets/generated/deploy_infrastructure_modules.png create mode 100644 assets/generated/deploy_overview.png delete mode 100644 deploy/services/README.md diff --git a/assets/deploy_infrastructure_modules.puml b/assets/deploy_infrastructure_modules.puml new file mode 100644 index 000000000..8f0669987 --- /dev/null +++ b/assets/deploy_infrastructure_modules.puml @@ -0,0 +1,23 @@ +@startuml + +frame "Infrastructure" #lightblue { + package "terraform-*-dss" as TD #lightblue { + [terraform-*-kubernetes] as TK #lightblue + [terraform-common-dss] as TCD #lightblue + } +} + +cloud "Cloud Provider" as C { + package "Kubernetes Cluster" as K #lightblue { + component "Kubernetes Node" as KN #lightblue { + } + component "Kubernetes Node" as KN2 #lightblue { + } + } +} + +TD -down-> K #blue: 1. Prepare the Infrastructure +TK -> TCD: harmonized\noutputs +TCD -right-> ( ): 2. Generate Services configuration + +@enduml diff --git a/assets/deploy_overview.puml b/assets/deploy_overview.puml new file mode 100644 index 000000000..dbc46bdad --- /dev/null +++ b/assets/deploy_overview.puml @@ -0,0 +1,37 @@ +@startuml + +frame "Infrastructure" #lightblue { + package "terraform-*-dss" as TD #lightblue { + [terraform-*-kubernetes] as TK #lightblue + [terraform-common-dss] as TCD #lightblue + } +} + +frame "Services" #lightgreen { + [Helm Charts] as H #lightgreen +} + +frame "Operations" as O #lightyellow { + [Scripts] as S #lightyellow +} + +cloud "Cloud Provider" as C { + package "Kubernetes Cluster" as K #lightblue { + component "Kubernetes Node" as KN #lightblue { + () pods as P #lightgreen + } + component "Kubernetes Node" as KN2 #lightblue { + () pods as P2 #lightgreen + } + } +} + +TD -> K #blue: 1. Prepare the Infrastructure +TK -> TCD: harmonized\noutputs +TCD -right-> H: 2. Generate Services configuration +H -down-> P #green: 3. Deploy the Services +H -down-> P2 #green +S -up-> P #orange +S -> P2 #orange: 4. Operate the Services + +@enduml diff --git a/assets/generated/deploy_infrastructure_modules.png b/assets/generated/deploy_infrastructure_modules.png new file mode 100644 index 0000000000000000000000000000000000000000..b3dc3e71ec8ab153312fb9716d7ff6babf7332d5 GIT binary patch literal 37345 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 literal 0 HcmV?d00001 diff --git a/assets/generated/deploy_overview.png b/assets/generated/deploy_overview.png new file mode 100644 index 0000000000000000000000000000000000000000..c1d2c23879f9c4f5836e6549a5845f289e6cb6be GIT binary patch literal 64408 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 z z-{ujEg3Vy-g&>30seK>0i$EJqr4VX;5|_b~V`Jz%=xi)4F=kB^HpW&_`(IUG-L8`? zeCs313o}dWzZZHm7Y6$)I2Ag6?Yw^u5$Xm~Qd_pZzW(R-IDV??c2(QIdAdF1zqg{H4hpoDnc2-j!#?5Z zj8@afmTm{71hRU9b>G6Pvmv1v$B--*t)_-AC+cf6ZJKnJU~|lGLvOd^AwU zot>S>Mn>3S3xIfPtqf)D0n+Asy{pY>^;c-tY*UfF3`U`e78enLx!fkG^uTiUPkEeO zUUmqb;hy$F-D%wef+e#Jz<}jvV9ZSDkG2K?3NG~m$Nx4tmDl{ur%&wTQMQbb0?${L zqqMgltG>vLvgm=zzO%eM3Vc6k+~9TZ>FKG+cW9vZC7D2v459K@4YrSujQj>i*G5V? zd>;K$&Eq0{i%YkEyV$Gt{Q2`F?x&roSx%L*AFD@)PF^&)f3%rC7H#%rUg?fa zA<99Q!$(vNF1}mU2uJj)KM{Uy88L~O>-MJOL!I17VNi`h5AnZ z_9Tyn$fyo|!OCr+x1v#Q(Fa6ga&q$J#YMP1XJ;Oye*2!v{s3%}$?W7LX?4+;FI$sE z$zYSQd+j6s*X@gD7=@7_ji1MznKFbkVtyk|E>|U?^M%H|I?u2No06>T&00iXJcbzn z@2k-oJo#C{+h-HepE3kP-56NNMECkZB!c4RdyjOb&B!{zM#VcJ{&+A&%vB|x|DE&cj^6Zpknd{C9 zgVuTUj$!Ta&`>nu)gmHrsHvZ8RHdb*t!960WAeT@4*OFx_{Qul*S8s)LXawFo}T(< z@0=(BP%f2(u~#9~UBsZuJi=U%^KT6~EG2T>(TtLIA4O6O^y41-lrd47iapU_`p6~b z7R>t~j#?acw&7b-9&IGL)8VqhnWx6O530ko*2jT|eD*XWqYSl5x1h+Af$=m>vG&MHr_KX54>NW^3h~&0C zQTPI|ju6{LT`f%Iu4koaFM-#JORthd#@eo0ZH=jX<0zEWS->hTG4VbtfxKMZ)mHVSbx{eq@#gD1#P0<7BIdsL zP!aV;i0V_%qt~s%D96X_hJ!Z&6$V|MdZt}c}r@R7#NzE|H%P38W3 z(Sc~%fgD9R3|8*P_2}~fEX@jj`}P62FQ^p=RGBzLKbP6BRDQ`4=?a1W+UhZ0WT1mN z)&-w96olT{9{AzH<2Y1}9^O?DfQJx>0b=2FA49(hC9Co#Z&;4ph(vFJ1G)?t$nynM zHAjbO0i?6Evvc0Zv^JAVp8?N=3$U}ZqoJYo*YPj~5;MG@O`k9-Nj=XF^_>{;IKck1 zE+8O~^KW%TnOJVw*ocOiPpY-ePxr&!*S#vZ$f1w);h@p$!WFjYJW5ds8mJYSxwi;L-Z-dkxy zoaYG31vLp8m5}QCx$|g?^vDRkM-@K=PB@^4jqPp3%r7R2hI4s&g^Tb;nwo?vYd9GY zGCAOu0LM&rb~}X6IhB|^g&@P=;OefyzhC+3?Bb%nwiXsh!#U6%)xf?gFIxd0!HumC zkaKbt0*fj}k0WBM5IB_H7eSt*MqTd8i3pz&B^cS8gyyQZS4k{@&icWtC$ETFSO|w0 zHsnW;Bhh(4;&Is;--LG2MfR@4bT|PoZ;mSEdSU}U&A+w!hI}o&J6Fg5XGjGiS8|4+ zDf5vft(ZO&ggmy*X)CXNN&wj2~G~GQGY1u2MkkEv%Gj1eNG$PfrM} z6vYu>wX2B}bEEFzFa}Ht{4O{bq5=ZiKnUD;9RrwLK~uB0H9+1VIYnGCAAo>BnBVm| zqVs}XcDX4t9;r=O2*Z%_if^H?6R$!)MoLNwL_#Lf&7h7aE&)6SE8U$Vv20V@41j18 zfD3fpnLfPyy^r|MA<bIyjGJRTf4%1{ zX>7tYLXD&g%>$?u4+fqQSajMsp4w=MyKzyZrf|Tvg8&F-NFBEAMTcpEqXYWQ`Q(kQ zxG{yR>LrXoOBUl6-(8rPhunkca$VZ3sS(tf@c#3IH=dGL^!k0UO z`7EI0&7bs2fpQmi=QWZ)Z+|z+63Fv=fWisb0T`)-_wSW{!V^3X&lPY>D2AjZ^NA1- zaXJ9Q25>{F9|bN9s&cSc6)T~M8sBUFGW=D`1pMl zEhZ)cB*}A4H+j{-c7vmD6NUDUQF*0D*ewS6wNF~P{VAf(SY9n1c>x53?o6rP*_bTc&W1RI*` z;E)K|-ms8%*gW-N(@vc2HYt>9iD%Pj@9us>qu^>X-lp+(kS8k}g91Mo?z=cRI)e7C z0RTfP(Jd+=CfbE&=65Wy->bq(cov*)!z$3-y*oTQs#z<&ju>fUx>bk1kLh=CGxy@- z@+S5Q#24=?I_+e1d)o2S;?$3ckRnh%5L<+d90Ubs6tk_>RL+7yDy?qk^Rov|OE(ZX zslg5sB{Y?nvb`^|VbGTbYbJO0x1)_=JeKuPQ_hy4H4d#*3XRf4w`oa7KPTrVTO2Y4 zezTH_N_kn?;qh?}5!8q`#QtOXVF5^G)hxWc|5lj91IlxA^EJY=gi?}ms4jj&%ljG5 zehA0h9!>54|Io1>Gi8QDM-i^sGI{xOcYps8E6R-!Ty`=&J*K-cJc*L{K6 zx&;PL(6krIpJAsiQ5GK_O#4{;$V*M;UNm$6-ObGNz41Y!O<85+Kz}@^v`>|^aBdV< zJsH2()pNzEbGiJ%YoE36x#I0LiqaT50X20Jt2c0FfCAen)6%}!+iAG|{z@$T4+UX^D5AT?UJ(Rn zCeK$<3L?2tvottyny8G2sSxRAXFRB>Hi}%yTOCXDQVwEmNaT3D{&PO(dadS})DQR@ zpQz%EJlCF07r3CQZI)>%XT@bxTnecTY3@@ZVPjF?FL;9G54zBF2~Sy857ZFc*!28I zeWj)YJBs&i5H69P0}ep#7#vg+#SYD-jQ&(O*->3r#YNmOhxI;gnWWAeuJl1Qni_GH z5@t?seI^rRB9Zc(2dAEl$cfR^vp0YjJJD-bl60_VR;#f?j^!c8)B0m5Q=31uBqVdQQ!6k5e}DpRbJ)zh?8d;3H*Eby2032t&*#tg=KpQCRcBXMmCY2lxOlP}hClI2 z8OI;_&GKj4f_C*QV$NZNoI$5gBK5bp@g*^4DIY1c3t28+5g&%Fkb3H#oadS)e0E?s zBR%~x{60i7M09G@TD{ne`Kp=}?rAq$*=_h8FqVIATe#I2Q_Hl-F)z&>XUlR=5OBzwuewk5^_(JtE+jFd3m83VjkQOr3v}uo1JGiM# z>|SD1R#6JXNuWmEUK_XzeC_?#ntLZhq#Il~5i?1HRfKH)Gu(nNC%#`K$%xytuDddI z8q`$0e)@Dw=&DDRue#h#uUY@7s7$|+Il}V+1K~89oluIoM2}JNeYE*G_bIN-*kj3BEu>PUnhl$&G`L$=On4US1?^@`3FIp#9N68 z6|2uAboD7d?nFKy&Ci*d*$ES4S*I8Nd;ROrNq9nG>mG55>sPm(kjQ0b6%@t!pbqQt zBJ>6V;&jb?)0LARo(Dpj4Za<%*uqI6G#0aqq|`jQgaw-lw{*CbMawlOtg})+;jrsO zMH;Lk^$>F!rMy}(>$8(MdL=p|j(BmWw7n-;@?k$Yylvt;Fhg*WaVo<2SoX##;MHRj z6Y~lSFSjN*#oCBOY%zu`p2taF)9LG5Y^XB~Fa`lT>SPLT1c>hZ?Dm+X!@K1hos+}J ztZE5g+;higv=rS98hhcQkT1mKTxm3BIyb#%YS%ukZa^K8ZKDcbl(56 z`sy2@dyatY#Gz)?j-WU3tjYX+)m9VrT#3TXLgZ=l>Zc7u-`+ScLNxo;L%r}o+BEjF=i5Oi=LzMH3@7ly1LSTmQ?7S%4YPX4JAsUnQONB*$lue6QyoeagQ9kMHj2n3*jBXpAjv)q>BF!TE3^OMyu+VGvQHdVzXEsPn!T zB-m3Pr4>|<8z;*eiktmPyIdAyS4`YJH`?kWKZZIzk$CiLhOM}wi}gDm&7jn)67Sr8 z2kzP4b)BkqU+Glvt%`TI}8RP1mc8dv3m zL^HbtgFIVN{%t!OymXQlZswAvo{!s<O@Hu=B8*ht!pHX&Zcv zg1_T%oI%R5skf>6=c7D};wUB){;&r|NOW|xLq(5>ZK!5IoXN4JW+7?C&DAm1f9M`# zVPT>DDpT!N@nNsd<#IZ@QEgx3TN2XbPBjfs_f^t7P!`hm~PN|FPi7s--?QE4AV?)1}K8vY7fPRE6 zC0--kitY0S$beH&Xr!2;qM*mQ8FjI(gLoAN+Qk+>dw^70TEu`;L?h5uTr0W6n!(Zv z?0im7Rm|DPLv5R?$)cp14HU%lP#A!#>Fi|U<&9N4fD)i-IoI-tib`p|zOyI9`&<@L z0#=uxD}o*aRF-_A#=veW%lj}T<#D7eFQX+lKT)Sx0wN^GPto7!%dTBE2S!M=GkLLa zYGIs_desiAYBAsM`jblN5S1-z>g^aa*9OHa+2`6&+_Ow zjkt)9nCD?2A|ZN1Yiit~)eZL0N+~Jf@xsEx@OivuIDnv%J;a-3|16rr$os zKpgXf?r7RaisxwXtgJ@wKC);i8#&6Wn~(qPJ2u>@2(BdnO47c6GMup-jyE*e@a_*8 z)VnB(sHm|t@`Wp4E$K<1Umd$v^UakuTZ}lj+oimKl%N=27O*a%HTkv`0yV4 zm$b~mE4K!R6*fJT?jXu>vO0UL;KjQt$;bY;`2+-r_eksGG7j&J`$yCEeb&w~k{oRi zu5$=Ltb`IP3kwik@;W-dC%JrS68yW7b2Dz*85Qp6`E1XN*kLih6`1vC-6uW6MQ(Yq zVJvx*fP`eC-gO(%%+upoN)S}hOQza>mv?bdYH+jo>zhSUW2^`k1ySGTuUuo!XilK(b z6dTswyEry2Zqcv8N|y+w>-~EU6G`yOI5;?NJJYcrJ}Bp(1DB*isApS7>u7=`92NHz zy73=iWPnT8%BriM4A$cz;&Tg^%vDiweS~%_pXi!2iUA|5I43U;k4B;vHUKPKInI9q zx{;Y{ytCAFet)ju=Z;O5?c;{#_FYWOFmMadxr1&NIfx1UsXURAGJVAhe&H4hkr=i^ z6$Oxy--3uU`~5qp3nHAHZwC(n_{Y!j;a5_7S)d9>am0XPs0e~INZ?Rc65PJt!4jYe zT|YSC)N4trv{n9I&1`Ba|DN*>^m7_ufrRP66}UGIIw|-#DNlK-PgS2~rmvXnu(ati z4`Y(yNyGQp4!LoWw=|^ab(N zMT>0MBV+Zkjo(-09-lf#Et%kMIY)5k@WYH7BV#uB6R<0(qOjpX=3!y-Uc=Dcc z69QErB_Kp2EcmNRvKKKg4S64e@3z}7f&O%f(w+f> zfo^ki6E@>-!CX&h*5N%8rLjk7mL_HT#BY;~|na202*shwRK zl0w`KSXKh3OCcz?T16^URK0c12(zw7jruEX-FtKI!{jb%x>sQ4h9%uityB zil|VWRY-Ru9(>u;?qS^$5DwN>k*qE-s%^Xm0`ML|u*YHG7kveAOeH2-{CdvNiq9TMcaHdF|AYtNgVjeT z?0?%g$tpUourv3_(|jMucqPZ?XTx*z&Skjbc}GW0*)45w2_g>Q9% z(RZtNH1GgTVwdeF%+c1#c8kk->fV^JrFV>*y+M<6i3ey$hmoF>8#~{iJd~EB!MMDB ze|dQWnE-__6sm#kd_CkSVB2`&6CBsQn%Q7j4mLpXFi~x4Y55*#MbzP? z&;;5&@0LJYJ+VQg`5D5cc#!_g+L|Mk;D!KAK_julFa2jjTL$~xj*r=B5V?V{ZNV&- zq9-`)0x=#~Fp*2AjeqHzL$%pAdaeTeV}NeG%cpnm9=o{-0iZ)XWc*oj$C6L+oQKR> z#oyO;+WD{a^<87yw;!;cK^$}F6uoWMdiLyF%ruJK=Zu?E zywWC|!ck`0q5L%0`3$>MiZgg*1FDC)vH~>Vny2P}jzhf$L_9{87SPup1#_N?uPf7W za}Su05Tg8u1;=&r$B$T7v_equip!_Xq?cQ7+8N?a*bh5EGxG1j-N=>OgXUy(b}2k0 ziHBz}9Dj0h0&dYw1US4G)BfYod>Q`IL4;BenngFxdY&#u;DM}*OC^x0p#J{%Q;usy zuJ!dgsi}@(bMaK44QjZBLvIy2L@L&{B5SdAGlB>Rx)u2EG7vx(SqAIFnMb(?@5m&} zw~w*szxw7I5H*cB9ufiWo~59|NL_-ijjeb9`DG7{UR&f>R+(*mTttaROoL=+XAj$~ zB9`^D!#3#${ty8x+2iBhIOf&;mQ4tv*i;}o0)B_WL?scTd@1xXE-MvjvB`>D>!`qF`Lqy8bIxP6o=f55 zO9_9d5s(`bpqZ#003t!rpd20TZ3_ZE1upj8{Ej#T(j>E^LHtsF^5luSdJKqM`T0L# zG-g9!5yB@wo+##?DBh&!^r6oY13^`AbuxI?Tx1bv>OHTOcU4b>-CJryk~Izg z?PFJ@V)3k|mP-UWT$gQWYkQ|N8=xMjJ%?w!a9OO&-oPDHM+dshOz74w$WTUZz#t4@ z*JZ2~Svh#o;hdG`qARXCN2CAUIi+?<|3Zdm68_-I0ozkve*PF{7c3MV#n3=EEXXjjjj;fWfLVKN5?7q`T)PL?$u{3Tk`S2^Doa3vX{93D3+A(A5}wg8aI$C!777XqDHzdHW4i${#x4uAUBwG%t8z@` zva;o#4_dgLrzt8Bv|(an!!&SqwhBt5BH`3vZReJet524i<701Sm8aWfm%Z((;=)gx zyY}`X9~f17CV4qrKT!R@)c~WwM>irA9W1_xl<$7`IeR!s-Owqi8(u9x7mSZmDY}d& z%=uIkP08_7=;4hgUv$g7&z;0R-+&V?C)DXm46Y^jWO=pLpJOb&UiVsA`Ir|YD-gVF zAKt%*J0_CV*a!t^6b#kSZ|mAtuXKCH$JbYvMbUU)`5M)e+^(?Zzsj4n;@&M1}*(EUHd!H8*8)x~^QY?iGMl_wU~agyJG= z1o5Gy@pE4MInqTaA@~MIKa)5=GD<;{(fZ*0bMWfuE02p-UB)3>KUSD(!IqxQQDrn7V3-Hg4jAKkrkXT@~147;&7d)wPiMXIbDnXINaC=y5mJh=LV zMrSM&qI>nPVMF)BAeW8She7wOZj*(M(S`Px!A!yr8arl2ONsDus?$1sd+LG6U!3f& zMbpw>u%tEWZD(FZChyf=-%Am+w4W%*-8&i%Ds4K{VzLc7oqt4_j?q=Goo>wWOl;cys`GirPb@rgK>zl*dFbN_ zimKy**)Tr>rSk&8qhy5YW6HG4dpweq8>b++VbizyI~aovn1 zMr$1G$T_uI{T{XT^>1Fk9@g+gKsP1s(0m!|39~$z=R+(%2Y(1)WZlv=Fj#EzN{Zr0 zf}*q;SL%%PvmKm>0so6 zqL-%GZbA3s@>>rN>_726%jkc>s9u}IrWfu?{J&zsT`t?CkJZ*MufAra))4&?yR}?2 ztJhv!Y(-g$+x=vc`>W1_X2CMu6{Heu^zHZWD+&$eZ*_Md*ksw?UoMW#7p;1lub9R4 z%C$bJxgocTggKc+DjGHQYyZoX_``!=zg7+xoEV^mRL{iy)B6b6UAYV{Dk=p80?G~el1mQ#RU}u} z7yZ&&jLMuyrc;-z>}H~_N;Mkg!VVEkyERFmT#0#>K?= z<;xtOge6n*;|2~XD#k}-X8wSmlT%E1Ku-~UflHwo%%WoT-Q^Midu3{l4Dn0<16GE3 zkcu;-i@jMy1_JmgBHD;gCMW?lVh5)obq77_Y3)rRm3X$9`c&ou!{G4cj_JoNo@bgR zQdV6Q(+l2fLbKQFq2j>kM})*PwuzSFPQDzsm}7`;WTDbsDZ3mb`YF1Xm9mMQKZC6x z9oci%m6nxKSb92V&Rv347pwlo!!h)s@vii@7ujq*Pj?zmLN{AFDe&3<&z8Oi=nmH( zZ5A{ljyHLlVk73gy#WEGT$O<_Or2t;kr5{GWGNgOj~=k#gH;jg4RO{XLFJsx|3}$d zM^(9Y?W33|C}1K83y=;$kdOvZN{~{JMj9#U1}Q0NkQSt+yF)~}L8QC8yUtt-_xJma zZ=5mCID3rukIlQ+6ZbRkdC$1!b&1GjcS`M+QSi{tjOmH{XC=VxApnnNn9)NfuWmDGL?5u}>8%r}qzB)V45^imkG_6qZ=8Gi{cv`{GO{YJ{da_T)c6Z#Iqi(FZ220Gd%WuJ zc7@;EQwU;KL{8;uf0DFTbI#4YdJX7gqwG+vPk)Wk(n_np%QxlGz{=YRN@A9#+OUx; zQ-Q|WRR5g_5Nt!AC6?DI`OYRXhQ=AS-tk@@7ODS2A|7@7@#D#PVHekps(05qGL*~z zj*P_k(cm&8A~VZMrHq72y)Ex8=wczy;F*9BOR`sI(3C!(RDELOjH8u!#zOE*PCIhW}gpjWw^mA*z~urq8m{j6UZ zVH=Q{xx{SHO0S1=!i-q<0^`k>xjaMr_Osc5AggMrVONWalBZm@GJ2ZRs=m}Mktvd- zz&Ia9!TT{V8+^4U)b6x-NqAn<_5R?pmXucW*QfcbMYHSj8%v_z3$AV(Xel+L6BuHc z4-dAEEi`EL|61K+kczJ~G~Nj2nB6yiESDQZ)u5Imr*fe)_Wycw&yD@%8%+AUa>^E`5LP}S_WcD%1x?Hw@$T<0v`#1#UlxmghByWBHr7<{>AB5L#E3S z`)X_h_c!jB%~`|Ji7^fv9hVq}r|au5;OwL1NZki?0yO474$*Dg<3==0Q7ZcSE-Q}$jpxY(iEHjbKs+<%JywEI1qt2BK`4CikIntnD z0A)x7;5TTzVM3(LQcE^TQ6cE1PuyqHvFaY7N1k_q4r~+(x*TaQI<0ln$aqyYb|ceu z(layipZb+z-?r^Mdr1DHG5!fN?YXlf%&0R97KL9h4ip^@v|M;;Tc#E7Rx|fiS9H^$x5FFx`!t5gzw;7X-Mt8tZ&oLluO(rh(QE3fjs*z!if7CC5k_ z%Xon=tDjkABxY>{-fmD!TmE<9^>*MVfK1E*a4Z}(v?$|v#bd8_-?{Z$TZVYHq;q&w z@DCY0#m(vK4rK8INL(inZ~@B?st_lTU+37k)#1Us**k(OF=ocv=eji*s%T%B@BR?*A#>HOEpJ=mQ3l>XEO9B;@O-Zkw;YpJL37r5C z5YD#80Ek^=&JFtS+CCA>sdB}CrlsFPj-p8KT8+Rhlu}Ur6*4TT(qJx6k5WvP(4aP=EGvvnd{g%zvVb10eM{k2PjYl z;U72}aEjQzdAk{QRvooA>+Qav`kQ%pES)R*_Sr3aOgmZK*4l5i(fWEURN%uM6)`th zUj2XKmW~gm2OB*jFafTHovoN8DE^FbTJX7wkjv>a+>s#@b2vrd2pd!*B#6GG;zQ5# zLZ1oHsc?{>r5PY0V;S-im>+Db6XwYC0si2;eEbuqf0x_T?{O!&uMmJ_TE1pWrkU&Y z)5~V`Lwq{HZh6IW0?kZcu|IVrE^wOqBiFHFniyW{=D@YPtK_0z)d^o>Ueef2GBdm^ zhB=g!oT;FA#-uy9^1H&%&3ei5YfifU;8g?H+|a_7&E6nmak?Vx^|JMBKQH$3=9gse zxx_e!e$tzFq)G7Z##k;7spbWfzY6`p-kdnCOF@39$F;eLiUY6Q{^#GEV`F1|eZ`T5 z;B)^*TzZK|bFSUVK^T&H6Aeh5TeTF>v6+_oZiPM~A*uQKlNj`0USD&id5HZL&>xbP zue7&V5RyMUhL4Xrw)$vgvo4kceB$v?E)lDD7}YHT3v8@(sba+Pb4h#An9sg_MAdWy z!YhY2;iOf9*uv0B(Yzu=@aJ<+GWxIxtN z=V(`JwO_H4BRBUweGkTU605bK47x+>7kU*=XH_sKKk-?(ll9Br$|($-v9pwL;-k5$i+CnHgjbfYbXPkYW!S5=ZE}JNZr>_1yIy#(FH-@W8 z^H$Qt@-nEBGI7w5ffdJ56cKVMg_xE8Ip($U%!i0|*OtsjWjA4tL1Sov@wZ3@`OvPZ z#P>&&zX(|Y-GzLa{|%W64e7W3xxrDd9Z$eO0%j)IrhIYe9*vxKiuf<};GYqm_yVyf zj*7FFelUf$yj7I9Yb(r0;$yN+Lqjgm1pF5tfOw5QfZah9iK7PDL;;M~_z;`v)Ya=4 z>WH|}B+REo0B>0s2#&ZtP!;q0_Y(>B7jDGN%mv`JeWeZTjq0$kX?ehzbwxFGsJn*bvhAjQOiqHykyT`jx4L z@&+CDsPCRUvi$pK6>kp>$|EZl4fLTjGM^0tSP+f>w?sh zn>86N$|Cup*Hmh;miAV&5l3BDSTu~n*0y!T4wsJDZZD|+T?K~^Ixquk>grmnE_8f; zV={GN=;3R@9Na5~%*^kNhcyR=5SCCM>B$JaVCNM$UtOPITDbT+|NeYL@tqkZ`DrH( zjJ!d?)`|;>2I!m|VwQ$Ig`E1zn#ebQpY7^G&tCrctLgM;iRQXgC83bS&gjo7OzX$1 zL%4g+EQkqqws!UM8hmWslpo)CmOrrQU8T-UZhK$eA3v$M_5}O(kDmBI-LI+UC#G;J zjIZQVx@{&R!rHTsrn@A4mrhE6CI1-8iq!doA5Pq)DQ;931Mu0_xgwO*?O_s!NAN9pF6M+uOjxBSz^a#NsPdHHdr0wf;-o zNGT(ypUg7e)qAZptYG7fW@B4*X-Z>O1^)FibDtf`ZvV@;w?59M^}nHtMoInrTxkcY{w`skB=m+xj_#aoj+!6wN?^AZ$|+GZ@dY8H?x6R44MDF&b4OiS z5X!}zAqoohmJJ_QYo5PCWhWq4*9+lPfB!p<@2K2||Bd^$`RrAByFDhh6+&ju2yB>V zX4V(9-J|G9zUAa(x=L{Cv?lLEEwm=>w&x*JbBV;qzAGnL{Z&QwFU@|K%JF6Wyc3G0S^aLpKsSPviVseLD(NBiNjLCh}G z3_v*ZH;gFnn96+pIv}U=Y*`|nIGZmEf9TUj(5M@|{(Ms-t7|adBjUlqaRg5~)e}&f zbNZ;^egPlb_tu|m$d39WNACE94efgEWt8?XDN|FH0PcTgy|{!hWCq@=mnvomhb8JvGN zXV-D{DaX|j%52@-yxFJAP=!;^Eq493`KLF(t$|{^`{&P3el(~g5l4Ldz|3@)?qCXg za#8ef=g4Zq*7fS|!N@O!uei7)N&}t#bo z_64wjHW_FbF9#Hk4HxGcukNwQxLhVAzQ>3lo9kPKDXaNZR7!ri>mAIkL_D4D;B8tS zXdQ+*y&rG9{$z*@7Lp2hFum$`b$L)O{h%e^CJtsUjWHHPe08~)10X=z$2 zvjn8=Z{k3_@+}&R{&LtmbrBHO`RxjHyC$Dz`&{cnp0&iS8iIg!q?BO7 z)o+VwY4v#b4(IV>={&OI1_1+u#&AZ>1!Z z)45rtB=pP)WkS?Lgtf2eA9Iu0-)Bo=zRtl11q7H%dDTLywhmowt3= zDOe^Y+$Zlo9r5eetv6uCJ<-~v{%e782N#;jtXQ7qC83@@{!G9%z?%n+!Is z=f<@gH=?=iSP9?WKz-F~v6@+&$t$HMu8a>Q z|GI9V9bKUK-TLKEw#17^v#NLQbmvnZdkEcUpm@j@m%RE!@ahd>S=m+tk%jI=(R76$tJOqkakqj$?r)l<+MSIba8P+OAJr%I_vTWx%@r z{;S{5GcRbf+gWv|b`3FUskjQHDo4#PFt)?wp9zJU^3MnuoupTRBGU9x%SZr8tLp^q z8{(PflQBm?$6~HH-W@X@Ww1GkP?Anp&BSBXz%RbS{<{wi66vyZ$*ZVka5v%t@zB(S zgssCJeU9%)^bth%g$)3*?e5;J_nj_zRv%$7*8VK`rOyK$b>ofttih$EjOWx{%rGSgW%p>2ndUETjj!sw1M{@gX`Y=l%Zs7tXdlb3Y`a0qiES9+V>i zOo-&TOH3r=pnN*c(fn0Qo4vKQabxOC1hA`^>~tp6$Y-5eQd9XLi#qWCD7!PA@64(V zw0vZb0%j#sMCnb=Yf!|VS2uyh1H@B{fl#HbZROsc2*JUHtOUWEv#am+)_SO2>IKA^ zo6WqJTQ0HkT$|IfK|`IQi&@X{UdV&@p&qbSD*0G5JPehS8E}W@e#YkyjNbx4Bv3)g zNJ-h7ti$98W82u!-1)FMdy^2?wO-(H!S3?)2xHFz%X$t~6(i68WwfGC5lu}^8uecm zI={Q#R`Ef#U#`XHy1Bc<*V@P%6#$&YVmyC-jF!#i7vntwem%n_DJ>-DQ4U`-(fPwQ zSOazMI|&Kn@t@9IqrRl7{}xjO7@;B}Kb-=q!QFU$ba8e`D{(!TF173pcq^`9Khm1fU2gg#yjW@@VA|R3aCmQTR&O z4>xz65wJ(%kyToO%7TNRprdS2f^ zrgQh#%#5G|dK#eeKr)HWUq<3-klV}~YNL1$9spyx@9TARd~A!5vmcFKKHOmpgq+&# z>No}hZg$}=(0zkbul6_AqZ>q=eiv_|tTV)z>l3m7q^O8_h=Yyl8UZR7Xn$Zj_uhjC z!bp(3N95w~nDmHp8ie1g@#Ov6=Rp_sgPK<583~w25T_Q0UGx0`_RpRk0BnAPQHPW} zNbEB(8FUdG17+ae8VVr~7aAdXdRt-HHj#*}F6`X13M>07#S$tU%UEL?iRvLYOp7%d zJv}{=e>vg5tKdLxJOoq6$ok~E8DH!UA;u-ZH9SieNfSxF<0poomZ+kIqUCH zjlTZpFPOb5>$Cdp82VZ2T`;I%lX>57 zR@|%16;%F!ETevS_!uZsmOuFsTZ5j37~Q*^age4}D}Thd9-u^6=|EYtKpP3l=gYK@ zM!RIo2Kmbr{ExkNm7A;LkF&%~kH73@e2n0tlCqNIxr%MN_=lR7mNt++$7dXPqD_%7 zAWhA?w{QQ#@&q1f(|d=-;x00Hjzy7W*_}JDTHIUa6U_@<%?l9+y>GJ%sgHb4qDU}> zqE|_kD6mEU5QbFOxWe~^+H~;WPR8sW~ai!Iag<;d#~X7OPwy z5gI0?6DFqbG-h=B=hNIaOO>tY=_{a}!g@2kd*6C#lY2#L;#d6FR8FcfSD_CdJ|qbG z8jV&oVNK(^prfHR)<8}H6odU)&v3ZN-V_h7lvJi&PGJhO-$RrWhK#>EocMwGQ@X&Y zTJmxA)%lCaEAJ`r*N~3>Xsy$y_j;`wU1C9cX#H?7svyiA(?=nGHO?Lzp$Vix;ORBW zOFyF){|RU;f5u=i_c>bTInWAvkh`LXnugv|3#%zker`*K6K{bF4Fy!GhX4W}r}`AV}| zH|$&4FGlzeakzksNUGe@uqaCZ8UhWC7~KbWdW#J3hVFp^;)|sq|JvZG%>ALhioZ&g z2HA*3=JCF!T_+5pc*BJc=nEgXO=*nRczb`iE)Gc1`lq)qmJ7K&cgid5YI@!J8ou~8 zi8YRlOb?`GMNypRH&|U=1?Hi1ThdkDQNT4hq})-CY)mu8rB)~y8lU*(p{saq^3mS$ z?z1C}!GtV(aXzb->Xu-giIg=7KuQdx@CIyF=QaeB3O8@u0Gi)gl)=Z(IGGqVmX7sW zVPD~u9{bxH{r3EWn!Jo&b?DX4)E1KCWaK1Y#Oe+ne{W!Le0*T`-_zXz53T|YsiAxP zJXigJ>WZl3WXv3|?oZ9Q@OzmNY|DpMN53@RkC7*^>uaYs$46iMMeB5wnG@@J+d?IM zE_C3l&f#|*^pSO?#DP9o18w9QkXb_@3);;&Bg6d2?G)kZ=f}#-Y!74|oN@XG54gT8 zDj0BtrO2&yoqgyzn$uRc#fq(-bb6bPODol#Cd1~jw6{-^qIhe>k#M8!jOISQbmHgl zUTdpGY+Sfo0)7`Jwtse1?dNUxX&rruluZ42YbV+wbm>5Fg`+Et=O}NxV=DQYle#vG z&C1vNG3D2f*r}xE3T@vFjCti-KHEIuoD({Tjg8-m32(b?fxaNHj-0y(La(7Vmdn_n zoZt@>OQ*X-#s+eI;J^Bh84FuJ)%cyh|3y;wRYW6Qz3x>Awd(h|fG!H(4Bfs?f)Jt) zLk(q;-+w(W+r!IM)7s$>Y}a@rM38dA_NGMm==2h0#;AdsHow1ghrE7-;+xY^wZ-}v zQrygMMS5ZDlo&14#P*wmnJh~W24gpI{AS}`#Plt`*K(q~PbI15wRL@Q%rZ95>T52R zRlF?nD|(DifT$O6&i!Y^M1aHuR@vO*VjXmI8X{M8@sFH}*vCa53NhBR&OTSRso|d&HUBya#e{>HKW3S09${ z6x$DZox3v_H32FRSxrqc&VX}=zy^qKHbzDhGcyfzbI>Kq_KwNlB@(vNDPD__cUnz( zSUZ<3iOoGC{X5a}Wf`Ns2kA{;mCZ4h!0@dg%8UW&O21o=6HZ-i5n-vYY#GaIzt_IB zHNQ;@vb5`Kw(1s=^bGUOFCYJ>e}_iC6vp+hbai=0)Z{G^WEIsaxRs9LVEPg zy95ME(CdY%v7Afb#d$6C%WOcyq>>O&{od+ZHKk^!^TYC zSf{4kzCa!Q`PLlv5_en{weueHQsJ@Vy6+gO$|(g$vwsaK3rlZ(y*5Cd{|g@sUcPt% zoZi~dlm=DM<#+VN*7I+>qC+WS#_*!LUQbY#pk?s2-knLSiM&Z5_tDCkAW zStZN+VS=ZxTQw}n(W`@p2=;2Adfgwhzs+O4bdov5H{WKy)oK1*?Z(Rpfq_jXLYCD^ zeIqEzAfTym zHojedCnvA;4vWN{>W?S=Eu{Ak3h%re;Xk;?ML<9RlbP{AoOWRZAi!@;%%-T5k~vu}iVE}){B9>D7ZGz3^w2b{rQ1gMXk z*{zHFAN;Cv{0iI5<`3T4t2L}-hhVj;5QvD3U4(#J6R2?k$qwo$?=8icQD-q5@LNIf zlAo7{fsL)xV1A)SzhI<_P2@*FCBCAN0^{P{0Pl>it6 z$Saq_!%?4FR$4{|c&m`nJkXxzXmEhITb-?CfmcKCrT=-Rrce4N=-pKwJgUeb6TQZD z7zlKriV2vAmX>8_E&glJAffkOTNDUi9a5)8d$Fmvs?0AzJ>@&55C}Ng8m|!da(kGt~mjR%X|sICBR~2 z2ZDi|aWdzD5Rl-<0t+oF(wbhZ7+dJ`5O;H^%sh`eg!_el&=S=q%J5mw7{9EDldZap zod<^&GI>u<&bw3wI`(L2L6BJc3>NBFJDx-m;y}nY-Q1$n0U;Y)=y5{X{it^3Tf0(= zus<39JN(Pijxms#H2@sO3iR%9#+}DyHo*D^wKArmdpF@Ki-$>XCsK|uj%*cKoy1m{ z)N&G>!arWClY^&7`Ly1oU;H;iL)WQU;8|LFbM`ntg4-4vZd9W??5HIfL_(L^+P20E zgpo`6Hty&T1R0ocHRhTX1Mc;qv|buMip9S)4-0c~hVIG#J6uzL)RL>Zq66{Lm&!`+ zp-4vHjJMYI&i?>H44lWlE$Z&#{2^XX~WXqi3ba!VZi3dhWB3*zYik{mrnC{#mM zHjo82O(q8}sa%!w(Q-nfBJ9aJg0#oTUvXRa4-SIh&zF_Oi|6+OswY;1{-2h0ZsR1S z-rVnY3eL2U567{#x3^SV|EuZ-4XB)d!FyU{Jl1Y$aiIpJZ4(XQWCuQMwQ_Z^P9^d+ z2FMED^b3g;(<||wZVGe1SG^j#R)b^+fU$Co^7E6Zdv<(0Ku49Z5jMOm;mwNR`F-~s z{~+^HRnE;{h0Zw)uFZSn&H|YbJuuw|9ikEw4b%$g^$t8-HCFzBaYQ8&1{<=&PvQCz zQz|I5gB3ve3&dgGqr={Z2P5m~?hcwnN7+C@b5GyG0;5g4WT;Y@Jwf7*;r2i_{0LY9 zVU|>@9QHWU0E;!7f?zl~Pq~ZOS~wjtU9V>&its9BS=Po5_Idfp#~K@Fv|b;7tXPzz zOo;N-P0+G}(Yrul+;6zB0F;mclkDr`gZZCvqeDRWSfK!C zL6q*sWo*5-(@lP(az&W1AbpRm%FE}3t|1o$0|C`0Jdl$c>ODUOygq$GgGnct`TDaM??Tm zWX>fHclfP0r{sj@PYbY(g)%FncR%aok+!ks+5lyWNH*is?FE_tJc_K6lG0*dHW5C4 zGuAwoi-+4{XN(8+kv9Q`BN@SSkut=w;nZB|3*_5stpk=Xnn_C(TssUyHu-s>AwT4F zJ$ze8IRLav*a_R{dN0cRo>GE6t6)p)Y*$vOAb&2u?)l}*@}D0)pdbV#lNLX(OUR#V zHum-PK|v1=hviQYPY9=iVeW2vBJIugC6V#UOui8E=i=)hO-vYBSVl@rNI8jNx50Kz z0evc%_<|yl*qjFr^0#0KflGa@)D=_`%{!47)X{1$d6*$BhAkIg|zRBFkB|CQ<;6J6akp}@f(n_duU4=wNMd1YSBVdOD3pQ%C zjiIs(yc)pTu*`?LsS4o_+PsEdi+;3Q@`4>b1o z_ivF3A{F>Jj*aM$cSTPzg+mT!R|>={E>x{yzq!9VBV~ib)p&fcMJXQn+wvu<(vTM# z5~68n$PFqH-bARNPdEt+-Gg$C!IEk}_v1D41*8XxsulcI#YF=F0IV03JE58PKi>%k z_~F*z&nPG<^EFCc$4NptR-D*()!u@Q?vzcJuQlb)p8py>%<=01RI^dO5z02-fbGL} zd;a@S2Z!}Fgfz8(I{G)l!n??o(pO2ZmDsz5eCGRH^B~TA6CbIaMu>A0wax(`OA1Fb z($=u%L2mxdVq{;WXAkf7BdQ;AaYx&*7cq`DQ@Jn^njkd;LtqAS|6&!$_<=_Ql&n#4 zuW*vfFvaC^UtHup1M;g6>{{<2?}^6+;gW`?<~E=jE%^vgCoL_|mLq|t#YTkS5TM%6 z{5X6oEdOKur|xtN-jTV(q)?Q7&1;@VJ~n?^4eb_GAAowoZY;v&3&e-uh7IKYT`ems z3o5Fe2iIpJf%Z;M;feXG^u(77Npd^Gg}EsVo8NCN9drreW|v-r7mk^2kRPr7)8Gs?ScNRu&^8N^RmQ`pr?+~TfkqqZ+Ih;iP@#}L zvciOgg#~X6btf3sD?vM4Y%Z$T081|0$B!^$O*{2d9rWFU@h$)DTKJo!yUGm7}qH(rxl?FM&DQ=nH2yc#(jPKxjmih@_}`Ls6-oO*$}m&fyO3$8PL(TIXmU%L=&Cjv~c zIk>iom6Z-UpOoL5nNhD(L)`%E*O6un*}3A4KY$wZ0Y3h04V(2k>bZ@8az_h_bD+Ef z@A&B8(%id?echoXgDJ0*N)q1{VY3HCMsj={{|OmH?xlECSb;ZK#O{OI`VO(;CEmMKn7YqoW%I&XI1s-VLDV3fvfASl}fdvGH7alfGGhW z_I;xv9}wo@QQ|YwPtnLXeZ4)Cd&rGo03_Lyl4hVv*na`SQ7Fe6l$Msl_+|!7s8dsW zt%-#{c@IIvwyF{)rVq?MJ61evtXmRMx&f{n3@^yZ!7IYpJ<>g<#e3`59 z2vzZ6_xbYW_+Ty;$XS*^s@KZZ)fGZ$khT!|@&G#Ot@JlHKhDU}Ytjx~#w*!;h?^H- z=)wxk5}1JpVAxNjmY~KY>PiP@78ZtoQg4w5fH&A%=$QlZe&~*<06TX%L1XQJ_HZyJ z@>7Le*&B{Be7;*@y`c_7l)#4q6dlX&R8VXA65>+rxv;O5|Kg1F`L zgyl<{1W2Dr^_q|G(~lo|RRoha;_Yl=IQ8nmVXPX@RiNjI@Ap9)6FQ{eRF5$3(Lh92 z28}v!*1&V-SY=5Z|gM{%unlDk{%!b3l64f5G%uxSd6? zq0662aLnm#tY`P|@kOh#w-sx!=6?Yjbh-J$=JLSP$j+r>Hu*UKrxk(9T2VS1YIl|b zRSF0Ll!4_yc@A8eZre?K=5ScnPZuurzdsR>0JpvhdPvAHmh&qnED1C94J<5ebW<9j zi0ban13v;sj&_4|@Uw>7N}K3K*tWA98jrKB2+D%D4kHYc6Rb?YH#r@x6a(qS(s9pA zjAEEyMyfpyfmstV>*AEZcwGrtP{SGg%9iOqY2r4sjJ(bV)?&dL*KdXpJu53I^-mChYFN?=u&|7PT6Bz3 zb+{}D*y-!&garif-Dv|d343OOJHH88_ERq%QgU%c=got#Q@=CaK32c~KW?NwAe-4qNGTz$hty+sf+K*^(=rxh?|SdJtnD!npt9&lUsF9N?+`P zT?hGsXx&-Yd!U>JD!UNQzY0f;B+-WLwOKB4LUiq|zBP9_fawP5wzZPj}#Lqf&i*^HYJz+0t( z+staK4vLK1(=1WU#z#ASs-O>*I`9Yd=)^$51$=JOYUky2U=33&GU$3IiU}ygEV*oi z+2j!~QGdQL-M?Zo1IyT|lnKDQT1#{u^r!>m{e{N^X4oy3t9-EL8Y?S!Wf*hRaxN$1gXYuR6JS%5YcXwMIAvqJS5k5T=_=e00@E{)gYAl7>z}bVEzCJ7Pq2TM_umFo>;mmLr z)Y~luW=>1Khe#Iy92*d0{UKyyV*^+bX!H0c6+Ce|J&tue6nXYAxs*w~#>{fo0SblS z9NbkY_%^;g>VcFr;*_$qtSmAjVgv^A358=nom!O~n~<)u9LdXA4wssF{FR{gGul$E zsizO*WUfqp_lgbV6k+109&7FzchmdY&t1M?;G494-{HNjR)-^=Q;XL`)cTr!ss36E z&Zw8rn;9w_30%8g0po1Wm`bSw&uliy#0wWj(gxln5HUk`1&k(h5FBh-8S5hevDZV7?sO%h3qiBX2D!6+=Kx&AdkFl@l_4j2w##t$ZJ{08OC$b@S; zS$7?EM>BXZS)+6>GK0dWC~gGz0hnZ=;gBVKwq?GrlarIWGzUxB)!Nod@*n~X8i+6z zceGG#mXbhO3c)huf0`!BbdjIBWgU*6&_T#Rt#D?;Lrna0csM%mrV|?lMKW~c28~+j zU@9X421$j|y57 z295(r1j6;$$W<157~bDM3ga9JusiIae7LO*s3ejTp3a9`Q||A!qp1Up2J&9+pSIy} z-$6(BSg!Ve9m^xW1jxKm%8obRouuJ~G<0?6r>B4WB_Y*U4c7^jx+WlY+U5iMvE)-l z#(QX*pD5a(g$>19W5_f?-kaJ3S#kgv3-i!Z(LE5e%2qCyEvMZ|gi1R}TLr{j(GwMr z&ms^M6ciC{uc^8_mwhQL2P(oT+Uf;??kbyV>6J#8E-;H-#YRN8^-5>OiR^;9k{i+Y zRH^obp<-ij`8)@5Dv`-O{;L2HqRi$#1Y($-6}4#Vc}~l586d?IlVO`Ro`b=>EXCqg zC!vos7u%>G)6qeK+8YD%Tb+)rZB0nGkuaCRzLh*CprF(4cU!ZQ;p&O3xl$!9r~lT{Nw|z5VVE`c3?h9U-3&1p`ns zp?*6!G^DeEW7`A_j44*+Ckl>C9lG(VExf1uu79gxO5lbS)yX5NFW;TG=Y1n~!VW-G znpOX=0W_@eoH%{aDjD@AzCKo*9gmH(KR4U!%v0Y*T&t_A!@_XeLe0)Hf5L8F?oG!P zpMM&iajh%SsXI}Gxw`2PUl!EWfwCm24*Xr{j;f7=y*;SLvjC-DhCk&*R~l?)p*tIZ zt;*5Br_zJ)so~EbW=!nvH@C?%YEK@u_t~MBS?8VGp1UCbd)=kFx1_63#=-c+!SCYr@o<4m#5om!Vhg%Mu z=+ae)cxLjbZ8@TY9OTAyI}jY^!ub&n%nSgcX+2E57WunpHIDnWO}JyA(O8vuhcm@$ z$Hm=h9<}EYZjaE(<1@xC;>9bAY{Y@20SHARS$f^Yvds(XPLH=bfL97EH6JS1zj|Kg zd3{@if0-{%0zVJI2NX<>S%wvgjl>TEo?EkaRC)UND1t0I(a(z)FZNG3NwFsEkycvi zG7^4s3`T`=Xqy+r({yD;w{Azi(=iF{1ZU^R4cvaDfIPHv20-|$3XUu= zs;+zsQ6V#a+f&FPLwxd1Nf~L?EW?-3BG0;(SArW%AdOjumts}HXmul0Hy{HDN_ zr<9e%_F7xfLpG!6fgNdBV9^1Ip=Ex~kl8U1o>oKeE(H;hZ*AIrVCD?apo_oqoMK# zOrPJ2FI7^{_l5pi1h%FHy}lnZIz&V zJf){^@9iywuDsZss5^0x&^GWH~9>c@|EyqE@&aX%jFlp~2&C8+?>)(qE z57(p|K`OU?J)Y*k11YsM)#_8q>RPv=AvmZHBo_1f@!<@HoweP~#2Ld;ep|(?UG-xV zUM$|lAXHR>)-7ZvlMP~HFtnj8p3+Op^${P4$v7>d&!%bAG+dS0&gke*+*h6 zwAuM*k=a0pdJJAXQzivVyd>Yo@kz(fP&w2hkY=zf5DHY8mau%lJ2!APz65dcv6Y6- z9Kk2(D?@0mzf*S?a;gGT+uZE}YR<0D4$#(BQ;SPUp&VHmt>nDfb&-8^@XYJkPv!aF zto(VX$eZs_MQP%7uSQgv;L`_leddRSqXS zh@b*es~RCk3lSkQ4P?})m*72lG4x%ly2+(K_Q$v!M^=d=qFFwt>!1{1TZNq7gfMt1Lw?AD~D~2+xItR+Jc8 zHyM)OFU|zOQPB~_#(*A{+$NK4^s(VXu6O{dN{<#$_GVR0ezo$xj_jw)m+2?7{57J8 zwa%|+!jNs+aC3k{cw`{CxgsFz3o1(Z^!uP=+DPnu6tP}OKo-Hjzr`?5eY1nB7ObB{ z+vyZtzwLnx($J*uKWr}znUa?2=Mjz+!lpN;9J=g`)+p^(=L3cVX;iD4T5cdYC&J1De+^%}@! z(VI{H+Jl?(Aa@^HK!#A(@IjH-8rV3Tj`lF3(SvIXAt`_jfZTX@%AdDAoKYZFXBV{v|U2-X@G|>vmI;frq8d;0+ZQK&c z{0&%FNIrkONrRxWtqPelr9lV@@SLV#%AtXQ-c+ds5dEBVh$xoeD2ig&K8U{J9}*G* zm6s|w)B#eEY_A3C!1UjfKwrCaR=vE;;!L7_i?Zl?9;yt97G#k{j(bw9odBK<&{`d@ z*XM^zw{TVMH^yr&ovy+a(%$@#251v>Jp6H6`7FP_XEqwP20*yjQ=gqDEjol;Oo|(Y@ zR9hi5Z@q(Bp|=ANf_Fg7B_kta%T(|)Q6zYN6}+*LnpzIrtMzXJh0-^d2G|h*so~3Q z1};#@Lym*wvm07kd{n@@_=G!t_V2d82Ry*V`S~&o65^-yj|H;*jDZ)g1Y&;Jdr2vx z9Zz|9zO`t!g*ZjB8Y)1?8_))jZ$;KH`!0X>{CN*uv0y7gA_;=y8i_CB4- z+9>y;owfCP%Q{g7898}GR8$zXj5fsT&^?0U7_>(5vLX)ezW$6wh=2dSpbc;*(=i0u z8DE;)c{+5t6xEkNYZ{dEJX_?8MDH;l9vqA`(xJ4L9h60@+U}m6S`%s4dlv)>z)^7aWkD&>@lzXsE~}`}?b%ct^fHGl>rjyfr3= zj_pX!{2LTEv)EZ!3L&(H*kgdhX*LmWZ<_1>Jh~}eJGs+%H+EjUo)KhuP+T$8(t25} zH|YrU!{b z^ZxbEegG2yseE%7gTyQC2e4iIDc-M3o_Ru9ZL5Zqb7^9v+UX3!!Z(^jv?C!qfgBF_s^evp{F%1usxZHHUsBIhr1#P!hE&_ z_^Qv{r6yr|UESrLGxRH03{S&A6M*K#)n|OX;QNhAK)XD;;Pf+S5W*fP%88kouTIHZ zLuHue1c&aF;Sg%*J@$9^Hhw{-R?rIh%)&0{JhHfY9Fm5>RuVC@p${GpjM+(5uCk9% zeU>l8Sfc?IfV*!187i5lDYCO6wWzgUDD^;wp+oDy9?(s2`&XefEHD~qDb{9(gIf@7 z=<)?s#QCIIYBhmCsN0^Np3?XVWKxKQtLf_>Z9LKg{zv{hOW+Owx^)U2KxSnmuLZPG z52PaBLwwlK(Xj@jHxRZnclmpJPf8d-(HXQ^#q8~mVHcA=dbID}E3*r~?2+I#o%Zzb z@PLE^9Or12_>p5R1a?VK-o9&H;v^A(lO+^9yQxG`GZnl9SWTFH0Hwrt1_sN3dtbN$ zB@*pjDhlgPR%+!k=E|=yG@Kr_sHIB|)fuD^GdKWfY4{+@*dVs0P88JeTN}&^pw>v${+08TK}q3fv*S$rhE%Re$MCq$H^C2t!!_ z$XcN14o231g@n@kb_2_oN?x4|P&8tmpRa%QomS`f3}haHD}#ur66F0jOxO2$S9<2* zn?#U64Lo?KFPaw`owu)zfFpbSxRnk3cSNC9C1PSTqDh^5`=hNz0m72FMM!H50)8Yy zgV|jlQkz0sPR(UE#=Y$XvlD*D^Vp}^4?i&`BtyT|M2I*`C#*z6FBa3e;(RlNT*;oM zAIfP{8UlgL`?z%%3Cp=YVXCyT@>~A<@og1T^yZI5OzdW8+hZP-dUj8oxm7Ty(UAZJ zG_uvh{ep{Ln^BF*M|0}x#K!-E7ozx5SJf#2Y!Pp#Z$)dPyxK>^LjU5V{Z4^+qt{dR zLOJ3AC^!sSKve-Ych$tG&d08IovPQfyLnbUwW_&pO=F<$p-G~~igKV1g5}H2#s+t$ zG5`IY`YWfByPXNNKOIHwYYFLEDlxT=h*i&Tgo|xyqJwXyL^FiWefNpS7NU`r|L^%b zu}YWr+$`-RGv4X6@Bx}qhkaB=$-t`aJDtv+YCqw90&Rzb1jj1!I zQiP9F%`VBo z4Tv_ow4w_5u8E@B)o4sRhxg~C{p{?*Rs^c7r<(~+cvkEX{6EfrR`tBdlv1qwHCtbI zp*~NhB3t&mT=grRS8CUqUmDZ(CrROz8R`vu1P)>%p7AtU@AF(E&vJkQeJnuyM{TbK zXM=k}D%Im_QG=m6lJvD29GKkn*o{NFrpp6hzv z{;u;o=Um_OT|VFK94=p+lK?n+Cg12~jd`7@$1{MDc@4>)IAnISwvsGD?aBlyUcr!?Dey$_^)=OH)R6w3gaa;eugQY2Z{KRD_^84)E zZWps312-OOv{zYh74^dtjZT(ap{)@j?rb)7OMg;lK^^m1$%<{HeGHK+k%GKN zUSz6n<_b1a?|p7P{C*Kupx$O9?gdr!9{g6v_d@y8!<+R$^ottzs$JuwyB7BQG-1>XOjynkP5 zy5n&CW1eRl7F;>*m_N|^PAnEG}h z>hi{PwzvX?&4o`KKK}lxhhkq|tmsHKi&~(!u?m3x(b0=%X*{-R^!Qht&HKWo9v$gV zh26Y3QhmPf>p-E5%=!19Fm3`l@;fHtnEVj8@R^oU@^y5FNR)~{Dt?q zv}KmQqsE)Q;%hD3<({7s$ja`EyTamD=aaq0@Rmy~SL0S2M5O2YA_bau)3(@uGsS51 zs2@_gDr3siA@o*WoqMmgRrO%;F2(6i;ELnE0KcJSY-)NfE{^}&*l6T~*PHzahn|s< z8pNgA86y=CIC?7-V^y`dH6yFk&z)=b_wboO;<|VvmR(Xv2yx{5Vte;SO$@uGkkHla z!?4;~`*q~Z?9Dr5sCsp3eGqlkW+fWrwb9G(lKIE6m+KaBnZ@<=aBpzqqO6jVQJt$J zz$8O&#)BL+^Vw70rFuP{$Q2}MQ{cz=hPTD!aos%x(LjMb%384{=TEtQ!@k>eU>CEA zM^`dP>$I89Y}9n<@yrvHvTN!$dzwbkvLoUk5Z)g5C|6?(HowG)mZuA!36MqxLqW2=~FQ(7%abLPRP`%?hYyDLe9#Jqi5_7H7kbPRK72p>GxcY(e!eX3eeFgO+? zv#BQ!x`RJ|L$6)x=M?y|G=Y^c6l`hnpTUIbBn~{K5i=LUh}{p`pwGQyN(&x zQ4B2mBXG;KBHcs~268;_ySorYWfrDM78XryvDBm_$li66`>h%)v%NRx37_(on~Lsp zmRiRr52Gh^#Q9?6wmAL8LG>*?t1Wg|#(_9fp_^plWwgPH#0beLr1hEZ(~WfP zN`MW{Rz~niwQ+;Ie>mABNl~$>HBF-~d29b>i4`92j&*+`g@`adh;kZS>|F$KJb zPL6eXD`L*00QTua>QR=c*YFaho}bD<^e?A}yO^DGMc?4&ha9s@Xt#Hd(}Cy@mV4M~ z6rF5nYIac=p^@_CB(7NIMh8efAdNL;$H}FeRBo-+`${1Q3yE4wC6GrQot(2pcePfs zFW?69tU|qe{l?SnTpL26F0R%{pexw0N+82#ot;iELcc$4AZUMR`s3Z29=#9U3!bwkQ{!7xr*-k(GPBp|V@Zv+FTbk~nXUw-|xR}+DI6p1I` zOpzMZkHh)ed+pP|D}F;{r{C$4i%US&JGb(KYA$KZ98lIA3X+#@eIH)_!KseEo$WRJ zf`uKD5g8SgPbt~IKOTgnTha+y+}}Qx>R86eX=YVrxl%IDos*j8ZhJOO%(akOF_1oO zC^$jveBv$^gWL2wJZ8!tf@RJfVg;Ofr{}G%Pb+6tvO?dZeR9Wu6DQ-~fS~*BbJeFc zXlrZh-{*iA0l$B8xUw=VzrO%yTHM;gx=`8FD4ToDLihZ4H|TNEg4eIlEI;ob13reK z30E-X%~BJ#hGfEJp*M83t6cKn)>vRZ1_b4Pi3dcSembx%q(&`i%e!G;s2+dwQ5DgT zZH^=qIeL|IN`86>9rxSnWEee^Cw_X7QYjOkRNzH9q~Hpl?ke19w=yX6O;B@^^TD?H znALou;~11)N%SZ#xEQ?fcGaqlW4i5B(a{%?C{41PKY5h7BK^^C{Q`d#v%709el8+B zp-&p2CBJVUeo)Q-1d9)@Q*}$;Q!~g4bcx*jX|^Y%m~BEwae~4s%w*b0$(!+ zA}g+s7R)RPw9#n0;%{T;JwVe0d)5y?6TW6j$p~MWH0k?to9*+LV(P2BjKkYVrXhXa z!-jF310}<-w)2wP`&5sP;CCb{6=EhFp*nc2YHifhfy%gaR0x|DX;&9UI&d9BEDdcu zU1m;dFeK~il2gToyUl)EL2;-6Y(1P1yUI7xpzsNQK+;JhFb8(<@0L|RTZX0MeZUs$ zQdXz<(llQPVnmO|dgzkJ?b}GJlZ}kS+`$g_PTVf6a#nghh#V5Ov0ff6YiF;&?n14S z`mGO|+a*yHz6v!jH8e(IINnCx$0#VVo9iXbo{`YOYAASf%HJkOe4&EA7%v-j84Z7! zzZ11uoN*>=&@{tcQ%$!c^cSUlb;f30j!`*xLGWk@_V`Z`m~;VEczktYGC}K{Q|9DS zodYsYEZDH)nfgCqPX>y>!kxD+Kx_^mN;nH%zOFoGxY^eLi1ZW7iKh(!P4`%r_@vF= z{N!*v{Nqzx{4rnBIAD2$9~J>(Iy}Cgmlu@ye~pzw7TKKkZ)QJZFi42CxYsFt_0y}v zX=%2Y%rgvZInd;S-aT!=XgE4#(F2bv-C z!w$n?*(}^&O1UPO8?`A+UcV?OA%k+$*z&~l@8q4R@yw0Q(hXZ4*jc+@glFFemAW3u_Q2>D72O*`D<}oVu5L4GV*=;%?9x?g`*H z_Af9LhlXG)vgi5F{tHszwXi+Vk`gUC9Vc>J7MBI%i8L(QIj>j%1%w@}a?M4pW0f~dUadGF#@G7BBh+(bsEHkxsDF_J-&J9LI38<|1WQR63zsgBe zXa&#T8Vw<@PItxj;-Vm{&Eka>OpF}+j5SIDxte2{N2AV%>5vSKIeC>!XOOCd=Xycl zy32z2k5=yGEULS?b$^=RX0YV?Mry{myk|oBb#Yh z;-P&DYnmhZ2tC^uz!Tu$H-gZYi80o8cXTN56TcYDER-!aENrh!ltm;-v;uLL;ySJ%6>U~ zy7AzR;#!PQL6z^N*qwp|`XKDTSMg(L<&#U@7l4oO2DlymMB=Ii5*&PM@iH^Av#Cl=ao4o6CPMjN~#L*Bzu@?)WH6))A*hI7>{fS&9g2%5-YV8JFtwBdEP_*}gtB)AI-Yry_yrrMJ`;Qvj$XRO?Su%HDA zyb9E}G>sNek%i}4MjSMqz=|LEFoF+0<4`+Oi>aqQ5gAt1D!Za~qelNpV+6l3n)1ev zOk4m-!!&tkh~_zC+u`?5&y3a8q$V9vc6xiqxs|?;bH!~8Z&T�APo_skBOVKmQK3 z+BZJ&wN{H(KE)>$C#2k=CQIhhgz)kX;Y_DPSU7s%@1sT6BStISon74BGpkrTxmcpE z_DgP2LM7C*&faAP*Y%ne%fN{F-j_s3y{8~BQr||JLuszNmqyRb%Q6Bpqn!YaG_RKx z+J#`0hDUMd+LlY!eAFWU0*xSvvxjp9(v@JQCLxCN0++fws;Iq7 z{b?CTLs*v1M{ce(VS^eC6eLyngoGx))^-jJsj8|bjLaMh{ACJ3ZUN*r@#7XANmhAmA+rFuRuF1I~ I?JFVw0VP)9GXMYp literal 0 HcmV?d00001 diff --git a/deploy/README.md b/deploy/README.md index fdbcdc1b2..edf4f4d08 100644 --- a/deploy/README.md +++ b/deploy/README.md @@ -1,13 +1,40 @@ # DSS Deployment -This folder contains the increments toward the new deployment approach as described in [#874](https://github.com/interuss/dss/issues/874). +> This folder contains the increments toward the new deployment approach as described in #874. -The infrastructure folder contains the terraform modules to deploy the DSS to kubernetes clusters of various cloud providers: +An operational DSS requires two different services: the DSS core-service API and the Cockroach database. +This folder contains the tools to prepare the infrastructure in multiple cloud providers, deploy the services and operate it. -- Amazon Web Services: [terraform-aws-dss](./infrastructure/modules/terraform-aws-dss/README.md) -- Google Cloud Engine: [terraform-google-dss](./infrastructure/modules/terraform-google-dss/README.md) +The deployment tools are conceptually broken down in three phases: -The service folder contains the scripts required to deploy the DSS to a Kubernetes cluster: +- [Infrastructure](#infrastructure) +- [Services](#services) +- [Operations](#operations) -- Helm Charts: [services/helm-charts](./services/helm-charts) -- Tanka: [../build/deploy/](../build/deploy) +## [Infrastructure](./infrastructure) +It is responsible to prepare infrastructure on various cloud providers to accept deployment of Services below. It includes the Kubernetes cluster creation, cluster nodes, load balancer and associated fixed IPs, etc. This stage is cloud provider specific. + +Terraform modules are provided for: +- [Amazon Web Services (EKS)](infrastructure/modules/terraform-aws-dss) +- [Google (GKE)](infrastructure/modules/terraform-google-dss) + +## [Services](./services) +It is responsible for managing Kubernetes resources and **deploying** the Services required by an operational DSS. The ambition is to be cloud provider agnostic for the Services part. + +Services can be deployed using those approaches: + - [Helm Charts](services/helm-charts/dss) + - [Tanka](../build/deploy) + +## [Operations](./operations) +It is responsible to provide diagnostic capabilities and utilities to **operate** the Services, such as certificates management may be simplified using the deployment manager CLI tools. It also contains the Infrastructure and Services configurations [used by the CI](../.github/workflows/dss-deploy.yml). + +The following diagram represents the modules provided in this repository per phase and their impact on the various resources. +![Deploy Overview](../assets/generated/deploy_overview.png) + +## Getting started + +If you wish to deploy a DSS from scratch, "Getting Started" instructions can be found in the terraform modules and covers all steps to get a running DSS: +- [Amazon Web Services (EKS)](infrastructure/modules/terraform-aws-dss/README.md#Getting-started) +- [Google (GKE)](infrastructure/modules/terraform-google-dss/README.md#Getting-started) + +For a real use case, you can look into the configurations of the [CI job](../.github/workflows/dss-deploy.yml) in operations: [ci](operations/ci) diff --git a/deploy/infrastructure/README.md b/deploy/infrastructure/README.md index 6b84c0e51..d04cda999 100644 --- a/deploy/infrastructure/README.md +++ b/deploy/infrastructure/README.md @@ -1,6 +1,21 @@ -# DSS Deployment +# Infrastructure -The `modules` directory contains the terraform modules required to deploy the DSS using cloud providers. +As a phase in [DSS deployment](..), this folder contains the terraform modules required to prepare the infrastructure to host a DSS deployment. +See [Services](../README.md#services) to deploy the DSS once the infrastructure is ready. + +## Modules +The [modules](modules) directory contains the terraform public modules required to prepare the infrastructure on various cloud providers. - [terraform-aws-dss](./modules/terraform-aws-dss/README.md): Amazon Web Services deployment - [terraform-google-dss](./modules/terraform-google-dss/README.md): Google Cloud Engine deployment + +## Dependencies +The [dependencies](dependencies) directory contains submodules used by the public modules described above. They are not expected to be +used directly by users. Those submodules are the combination of the cloud specific dependencies `terraform-*-kubernetes` +and `terraform-common-dss`. `terraform-common-dss` module aggregates and outputs the infrastructure configuration +which can be used as input to the `Services` deployment as shown in the diagram below. + +![Infrastructure Modules](../../assets/generated/deploy_infrastructure_modules.png) + +## Utils +This [utils folder](utils) contains scripts to help manage the terraform modules and dependencies. See the README in that folder for details. diff --git a/deploy/services/README.md b/deploy/services/README.md deleted file mode 100644 index 1e90fb6f1..000000000 --- a/deploy/services/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# Services - -This folder contains the tools to deploy a DSS to a Kubernetes cluster. - -- [helm-charts/dss](./helm-charts/dss/README.md): Helm chart to deploy the DSS.