From 0674d6e5380671e3440357361d952ae13828253c Mon Sep 17 00:00:00 2001 From: Viktor Barzin Date: Mon, 23 Mar 2026 00:55:41 +0200 Subject: [PATCH] deploy priority-pass app to cluster via private registry - SvelteKit frontend + FastAPI backend in single pod with sidecar pattern - Images pushed to 10.0.20.10:5050 private registry (v4/v1) - SvelteKit server route proxies /api/transform to backend on 127.0.0.1:8000 - Exposed at priority-pass.viktorbarzin.me (Cloudflare-proxied, no auth) - Uses imagePullSecrets for authenticated registry pulls --- config.tfvars | Bin 9885 -> 9902 bytes stacks/priority-pass/main.tf | 123 ++++++++++++++++++++++++++++ stacks/priority-pass/terragrunt.hcl | 1 + stacks/priority-pass/tiers.tf | 10 +++ 4 files changed, 134 insertions(+) create mode 100644 stacks/priority-pass/main.tf create mode 120000 stacks/priority-pass/terragrunt.hcl create mode 100644 stacks/priority-pass/tiers.tf diff --git a/config.tfvars b/config.tfvars index 9ec90c1f01c7c683f53dbe3967b365f3bf4ac04a..d0725a2f9f2179371a959144e74b3b2c13f45ff6 100644 GIT binary patch literal 9902 zcmV;fCQ;b{M@dveQdv+`0E1cCQpx5Sj91uNt4DxCGQq4f(3fd$kZG^=d<8G&yhO?% z)%MSAG_n$(OWf2&Ky1$oXzkR6#ol-MO^rYKY%dnAs-kC4v-dxCX^DD$3V!qM-}Ey< zQNovA1~#SrXZQH52nL76{s=#FCl~r{5J}*$o9ic3#AP-x6Ssv1!4=uGkN%XAG5s;O z%Kaotrz^3gMjCc-(_PHu|59MekRB}tC?@Y@mS<0ia_V0gH*CVa6h>GD#)I?^TKZzl z2XAk+>zVe{fT`O>l?Di})rBk-AZUR7YabVCh{uFB7x6Ql!WTne8+51W%yPJ=_Mp>F z#zNu_oLi9tWs%!%XfcSpH1(iF;2es^)_ECzRVy-A&FJ&jrEt9Z9)8yU&$bRxGT4y0 zgg;p0_~aX0{7XQFOEadhp?^Yk?h=qNGi3r!uT3VP+F{?F@2|HdH9lvmU)@t@ z1Dgi@<*@L%On+u(@K#a*UhvEh+)^3sduku@R8|DpQ)U!BoMDJt+Y1NJQyN~!R!1ql8vwUb*%|Tqd*XK zsOn?)CwcEEP{L#YvFzh--PttMzZX%6Q-Y<|2~nMWe5PoXdGk)EmTfq!VuG~SseHat zvqTafSKEAzEIiS(bMGznsWp=L?dQQzem8I%-Ot>$D00VY1dzSJm}K5ZC|q)Fus)r1 zI>8}?wu16H9Zi`y<*_&t&BvI;am*9?Bq=QZeeebEMntuG(Wuz9Y!!X;a2MVDIhSE{ zz+NMYyL=-oplNi-&<`m|6nzoy(@S3^4hD*(myg48b7h!UBksg7u?sSHmnznKsE~$pGzEe?Ur?H zA|&}BnQ{KqfoKv zA*m{F+sCUtLZE%WN`U;v438>_+!eU(VVk-TB4<^WN!Qfh(e$%zVAQd!FKu0 zJzjS13Sz&he@g;pKS3zkx<`{2Hh<}Utj9wj*iJ!t>@PLWf%;`z#Fm#r@dsp*UhcQB zZJ^g_^jjPEGwO7w_+%f>0Zhx}mc^I00EhqFc`)!-qNgp7X#jzA`@q?u7Dk2AIt zMdb9$uiS#FGS!khXEZod3JPr^KATyV7A*a_LM`Bl={IrS2a~UMw$3X}e+{B{SeJI8 zqMuR4sCx#Epoe+BF~F`)_7LL8Y_@vFuOy9Kx~nO5=~`l^Dnc&H)J)jJ#1RsxRnnZq zX0}{TX@8L*0`;p8D{bNl$jIDV!L)@YR$)0aP;#dhT&Q6D)p-gqD z4gmFv{IUp{G`egGA(OOa>-6!z_|K{+|N8wl2p#T;+iv<8!(kegC|pP$Zpotx*FAr= zz_TB_&dGj=C|_vaC!Jbwr%t~?o0U>{U983HwOuCk5YDq(PONPI*%y6A#Cu_}h0&*N zu~@eHM&W99j@bMHz5%qM4!T|B9SKHLD`0^?@yXC1)f9->8u4cyFi_^0_`tidmiKD% zAMNjV555bOo!~SyH*UlN>RZD5kY`xi8Lgw{ftq5Kd*N$23kqi!hukzyHOQ`}^pO-w zBVJ7FHUG24ur5HP+46Yu4fKx1*pf|sBrHdrT%S?9)w!_(n#K9W$)1|2NTZi|h%NFh zQKu>$sAWCF{yP*w`VOQDE=}g@qDy`b!vX&86_8a6(DG|1eOJ{uZbc4q)6$yFePY5I z@(LX8!rIqwpWon8hiTE|_J?y!hR3+FD+P7i8L&Nlj*tqs32l|?X$Poi;U#;25s}vT zj{1&bAe_)Tfg?&TCVZ15Of0nF6}-5_fa*Gt76@omulZ^TFGSZjypXfDznAt#hQa;jd6JBe{%cbtqMyoGgE% zqAD8Fo-Eg+6S>pp@AxrK;;Gac@yb&JvXwP2K>p>=Lj&zGP%G~F)_eP`&6Ole+g7Yd z(A2eyWYGrvXut4Br=k=L5wJK{S0{3?Nzr#Vi5sDHiaWd{Oz07iZBGNJg=6A5-YIoxX-K>^F5spOb3=5_F#O zgFQQ8x|dM(%b2%~-QXtN)cU}rx%97ngwUIaE@M3a=-^*jbi}$`fMYfPS}VZq?R-{; zIlsxtpOVdd2kns(q^1M;7`9{1+Gf+KDoVacXmO{%VE%Ep0rv%(+^mt7WOb}{2giB7 z`Y234>cHSOGj%!h#96=?S+r_?DK)x%3akgIC?=XS+XglVgkFE?FL$hOl+^BXgcLc8TIy(>() z#Z=D$ZZ?7dph6vUbc;dzx9k42_g2LSzhB6t+4{`h5JVl*veFq`pWaDJT^K1#@xPJq z?fhU%(NHn&E}zFyMEhr><33Np-=$rZm{uknU;JhU?R)P^?XzqzKR~}Q3%`ks+SgCk zk;1&wu{zDDFrO5{V9U*+VcE-3{+7p^<2v3THXrvYhVc!>sRP`Fmenntq*m%35$?Jg zMk5&ZAZ7~~mQTojL^#^Bp@qHao>U&bGWgi>?}ViD=lstg3!qOgENzz9T<$)b_M0e1?YK1kJHOaVzl5X2h-YeWs?8eThSY(ZW{$C2vwn; zZ;)Jae^2Sy$Zv;A3%b-UF^lY@<0cSd3E^g-AycW`)HGHof{?-8C{R{ePodNYe^e`w zafix-Jm5H8eaf)fv8|7j31waD+3j<(?MXm{2d?fAkLl=O;gpjY!7P8@FqIXlbd36r zu8ZbBdVdy&Zb|ih>@gP}ZOJfx>}y2%aJj-U*avvx`&*tg-sV;~%?JgTDmP3JIaL%C z>deyIA*=pp&oHL~(ol3stO@LiBe0H3tIIOxyaD<7YSo$V!#uQJ?`?hsc8ejlqz>vb zJEmQQXz#yc2dITWsJ&$C>vg&Hr#$`YDn50_ zHbAjs0%b9c@s1f^qlsD!e(Pom7gXkluApA016k;5M(K#-RVTHPTSE74YeuHq7Q0NpVXUpZ&X%_fGEw zAGab`$%1O>0;>eKi=&q1(5TIPJ{0=n!Yn}Y?_fnzi6r&-BL;OITv}IQXeFezwq+R? zqaOM|K~Bn0gdgASKVo6PAh ze*#TwxQT->YGKTk8uf7yr~yJUac9O)%MLva!_A^>47^RwT3faosQC@jz^|q3KVmgy zkTes0v$QkFN0;tM8D|F(i>`(98=9egCu$3+bK|I$k`X-cZB7*Vau0|CDvn*fGTI|j z!LsxCc+W3|oJ!X0+SRMG+Q#cF2L0K1)a_7LqM4vABLqF=CHB~bpVky&1mk8!fuF~T zn)}gX#=Qls1!5>pm(NfuPF8W*cte%I#>BrY;*KN|jlVWQof@CVu9S%7pv=9j!#({B zXIf7YgMc|h#bBp9dyfUm3Le5RSaz*VZA&R2klDGKg$;=aZ#TK<^cb}V;0)i;kTZ6T zwaH)xFAB#}N-%4yo?qLwz=Gmcv;~Pf{R~+2pG+luQ|*xQv@xY6R8F+j$m3vj*O*7^ zy=rE71o~Hq)YWFGSXFV_NMCK69{$9}09T*!GBxiD->Sgv)zPRUi`x#OQsB%=Q zB@{zXv&b~i7wGZT6_|W*_RkMh@F*M`ZTp}M$9(S3I#yJ*F@B$&mHmSaOL@Ow_hRrR z9O-qOQ)P82a(*D?&_hRDBVSjgoE&TKXho^|k)^N$w~_1M^MFDi(i8$wfb|`S z5}%&!>Mw+_c0)#8@Xw3$r9(AMNy&}nxTBu@Yw7LjR?xC%jeHs%4prdx*$~jb*rgZl ze-J_}Q^;WY>uJni9JZta<{h^le56mR+~nmFy3uU-{Dd*VOOp-$3T}7 zuf3+(X$ax%?{~09A$Z*7?sFb5SdLd1o-G-Z_rPisr*#3pXQ2(;Nnd)s!QPsGk_3i| zOcg=unn2T$D!c=;jdV{>l@)oDn>^a)RJzq`%MjD;{hlk^S*mGZK>_griL_|#%8L7O zpP-E!CYA)d#R-3;>?y!J^S@+4u<>I=gfDSHU_*nGJ2lJ0S?hL?zh{i}pZ_L)J{hj) zF|#Y(wnh;@!<>sm0ovCa_=6)=QeUq|mQ{|IOV^B8%E2Z3(1Uj%1x-|KU>4K|tF1Rg zD%XllHGWs@+oS291QcU(KH*r5Fh_@l?A>S(?TaZnm>g4F?iyBCuhg4;Y|*RyKN&AD zmBuc$+$lofP;O@&W$Dr8dsH2u*;0UG%d)_0moLB5{UA{p51T#$ZlDo!^NC#n=xz;! zf@)C9-$qofBGm{_cw}`S!{x8KuD%)->Jin($K!mUHP(euv1Tao@m>%^I5BemDJ>>l z_4G+CPB&!<HjZ@vx(*OLtoU*YW%< z0(RnNb1RfY`M}3P!B-F)OYRxQn%0lXgq~4wCKp%aCgn?_@|b69XBkz!>4J5Lg?SBV zs8u42YT@+cZ)(>OWhHD*Bk%bat`OqI_i8@)ZTB*-NXnb&%9XYtc=N{LT0QG*6|Jf? zZYl96rWt$S00^uMuiIUJrJ`DLR9dVAX*x9^#SY}k;QXO5Q9LTfrHUkT4h+9XxRie5 z%SYQCBpoKx5!!lT{fcW%Hw$VFy7x zemqTG7=ffI>!F}pGgfp@ROo);KyJOF?qHqTSm$*kuBsVz zZy0+p69)is;kxr$C9#WYxqS?Hbs^GzT-8AC8;%9d;vDn1-xHDjx zqd+#<*PmiXt4D=gd(fa$`A$;q1x0S(_xQGgKsF>&Q^i03rr+u!8Wl5l2i6T06?{ws zO3xryy4^4ADSEc)`Wc8uZvYhvwp`?C9h$yjWpz5~8Sr9nQ1aLsC!K)uZj!TzWwh2u zoHDI6OI5Pr`qB9)%yy`-R*(SzlX*E zp*F(G`r{n39SGU{3l^wz%c>bILUm^%NRs&vNRu}; z2JhtjWZGp7q!8_L*hKl4p;>%J8lS;%;Bs3x^OQNk&(D;gw82_PiQ7~b0S$uhBgPJ9 zX(6FDfiGB@>f?3lr@#Bp#puQr)vs7*WR%&#CeQZn+ybwuDX@-53c|~-L#5SU*P2X zi+hHXe{b1?qKM+DR|G-Nem4`7gtfG4xfOwCTyC(jj8aqrkXfsj2ZQT>G!$8xm;ugM zrtQCh*VRi4`YJ=ZgF-bzPKL5+Vi#tcU%961Uaoro#&eZ~GGv)xMv)r*EFpIzzkAiX`MIoKXYix>Zfm-De5t)L7*CL8 z45D<1My|^A4dEjQBvN=|qzopS*sD35IT@oem$>{773D~#H7wy8jGI`#VZiPF@nU*eoR8O_|wF5_@&pn+o9@kXYe9aaiS_U#mU zxi;|phb&=UC#Z%xH#zU$Au7CPKT*iW)L%<&ucMsCj5CUP=kDH-8x3i|Egi_PkVcLb za2Pn7Q0vGZmHgOMHM`1>(!S0+hV5MnnMOe!(mV*hmU2;?W|^Gm-$SJRgHvssX2N&t z`g^>}$?L1~N&TUY?$@F;2RxBmP$7T5UUa$4&Yc#Cr-CksVOcBhN{9cu4}4?!w)N9u|Xu*$@-=s_#k4`UeCrv0bPN@nM#nl*)D% zi)aJhPeVyx)$%u6OMm7n;in>>qZgMq=nU>iy9xB-z#dz1Id_h~5flc=&7g{{%bqp@ zi5gOTsk5Q2S6*>d@i+xo%HDGKzf_y#4iQDnCG6?wf6xZFdGr&QaSeOGQ69RcL>S|6 zb&oc8fM2^yGqxB>I9zGC>#k;tY(`EsaU^WpQd)Ws=CMSjnUVsF(yPF5RNk_lcZ~Un z*#A)oRECl|Lq%vD0BjD;NX9g6Nf~o>s94I$uEfs_d5_6FrT8Jut@#>a4BHTN0=y3* zmlj3tJ3~AD+brt8l|>X>RIP3*>tV#K`x%(%e^~`u^9rIJzeMzj8&}o*1VksBxO5}` zcd5}fj4lCAVBit5yD=hm$-29q)fZ9TLpE0AU^9Uo%!usl0`9OhKOaSD_YyCp#Gz7t zNp6K`zD3!~+Ye$ZW9Dz5u(@)(l^QDD1rKn4So{@0RA5iJVi{4Q)c_)Px^bfeS%Xzhtb_(mO7G)sUT7(mTJ0-(AZOe6DhcG2zt zH83?kQ=-AQTcEAT*(ab-0(4`6ATBp^;eW8<-VUFZK3^&KgRiqmT2AZIDz3mLu*?UPsiXlKW@L4E{9N~5D~t+>Xj3#lKIMx>Or z61Myd%0yaJ9UwFd^&3(c@WdLz>nPm^ZP`KMs9NLn7#1Gk9d83Om`JKCyFIMOoSclThcIHUGT<3f`IzoG4LLxW2L zo?dxZ<6yVvLeDl)!-`>9-@EUS&8GOW zvZYw6R-s1#s&I3BMrJlMzCX*xB6Y&`344(mFDZ?~-S z7{`S7#F%K-|NAa8#gi(>dV{u+dzGy2g?dn2lt4OdlafGOObU>SK8wB(3RzEp;rk5v z0lT>6EZEF`L}VABxBJ7$T@kM5_5J0SoNA8)DjzNgF+vdhh2hYpSQM_Rwdk|_aiwCE zYt5#olST|}3)?0^7JMw4Q(2Sn<~gV@7;Nt?Y=@4v$zjWz2>;`eMcI~eql^mzAwpY- zwR5!1B)R0tttDVjRH7$UJ zUX#aa*imH^pvlJ{6vGZ3=qMbo4d6yi!5tuuY}?apV&w}>XbB)_YYaStF5VyK=^>rS zQjK1L+E$`e%s!Bfy0*6aYc=&~!@EQC)g&{X^NT-5p=+4OHXGe2~8)_LWtkX;SS zHoK?O-Y&swNu6_C+?j1`vi+~~v>4heXcEQhR~d^o+?A+O*KaU@yq~$PN5D~~mZVne zK?-Cd-1Fm)YGc9g!nYRTCy^SazL0#{bbi2#014N2uK5TE(F`I2D4hhvY++P_YfbG5uFq(yq$i-3TL{iQJzVdh z%O)5}eTAT}(Nggj&$`_m?<1vEOOkU(he`LzbunmQR|-|EBo38CvtvlKR2H0g+V(I@ zXgB(5&mGolKMOs{Y@~f2ud_?~|KVIo1FUyHQymZ$wfk`%w`><<@eda?Ydp{Wqy5>a z@g&a6Y~v}8Y$7!A#ivO-e4Q^S9(EHrdgZO(7>3;}B7_YidK?@&;clSfiCf4yLhe%} z>W_=`{Q4moXJZx_PXASzVON@Rqz#`d)cmdpeZ_IOIlh-%In8^d7#U67jYLyS<~V}- zW!NepV@L(j0>k5})sDaVnGT@~9hyhmv}Y-L?ot%uX0Bp*ctQ z><9s#j}doo3(8^|-#Z?n5WJNc<6%ee^Jg7T2el!Pr6&MJCmeER1K*4(MQL^0i^&!~My6r_a+g6k`dwJLXLzRn z-*jP@>EX1ARNVr6g_)#`V^1Tl#{F<^cx1kXa-sqiPBJsA_@NF>Ce6la&hvn_KAJk+ zuNbkb&R@0?5qrp3v0q`c%ksh$NM8MkHo0SD*1hN1ifi1(3?k(IV=~{2&4(f&6Om# zaB;??a_hx5w2hx;y(JMU%pK->wFzP4$@KI8G`)J9&%wLEAzyW|1~TKRae#L7jFdn3 z`TWov?VOZ4K$hHat)l%Q1nxwxtbea*9U;8J8QeVKSh$#YD9BBxsJ4fLp9yrGc1#!d zc_^7^P150x6k(fmO@}_F=FCkw6;3tIvOt?b1gP9jlqN#yWk_{47)%RLmi?he=C6Q> z-!SOrp1(qKAFE3L36A+lU%22KeLqZwj$d96O%ZQ}nKp24O8-FxG# zXB7%*d{OO_5G?DgAJ2McI?GX&>9KY6O1^1AVQAfs+72P$L>y9&F)7(v&90aoVi!g( zU+%u9=nrEQ$5axU=SdHJq{}=sT)ga{El~jkdbUyjg~ofYV}lbzt1bz^FD)^P_xcTG znBtyBbG0+eD9_axckPCju9GHF5z*Y_nK-Pn764NvE`ud<|6I66I~4xR0dk^S83{p> zv~^7-yr_;v{6Ad#NG}CMWS7}E+wjRTHMQSnb<@&e=Zz0{)kLh`1BOmoS$4ojm~Ugz zmu$}df5^5F7PJ+!odX15SYhQx1uSP#wc?BW9>DL?n?&u$(FMVQ!j$3A0vd#*ekKn7 zDKEN@U=l_K)i|AwX6m#l=vM~{HJS0HNM(K@^?E$9XrGY1a9Gn6$_<1GC^4Vwi?FxY z^NJ@u{92MtgcgpG*v8SPb0cs*C2$}J2~i+@`Hc2syxmKrQ!R)btHpSD32w?M;x{$N zhLud^&j^dWS2}jBtX?|y$%!U*rO96#qq4Ae-Z=m-gE>uC)Z9{iZAXHDfVZw1B7qEK z+d?94_G466-RA15LUds%;WCFN;??3uaI$IzGsc1`$PLGqd;1(3jCaap0kt~bafP1t zX|nN+1di-mZZ{zKb6)Zh5nNu*p4&G6<0c*qK6aX)m|G$+TRI6I0$!S)8h@oTQ=_(p zQ`5r8nwTvin22m#x)zkh`@q97RsD>`o=XZ9hYL_ksb}guJJ84G>>Wb*Kl3v{1FbwN zsm0X3=AwnH$so1lr(u!k^jDofSiW`{t(FNnf#Guad;A1DUGSpQBgMCFz~^*bFwJEE?8yM{sq#wh7_kA^Y4EhuHZ0q-oF zXhy6usBmW`v!zP%_JRMQ7x_;IL%cLhRfH+<8{b-h$BWa;4H<#!&j<#|mG_p$(QRL8 zo8g(?5ob@|WF7j*>Na69%Y(wG&n&>B+V7}kR}B671__Tl_q48G` z^p#}ELCT&n4MX!c;yE6O15ld$f#bXVjD%~$<3nm6N#g!y z6<_0wXXJqZFv@?bNIcQ*+3^&h4NZD&r@U``c>-jjImN(Qr|fI;#dIG!O!g^nE}DwB z2>pD!Rc_Y4X1|lJjYt|E1Pd4h@(WPosBn7|6>;9ylmp{}f*>ZX1Sm4EM>mFvjvQ+Y gVK5DsF)%wvZ*O;?EbuK6@YU|ANRXXUdlOfhA}NASPXGV_ literal 9885 zcmV;OCSutDM@dveQdv+`0Qy-I`2^dPUrOhoX5t4slqbcKxPAq0i5K@9bb&yht4pXL z{tn>;Z8e*N&r|0kz7^Q3$s>{bpsxbYSSTQNKOl6B6$h2pijDSSPL!8s?7cX+7g(ykzwPEaCL&XRV+asv zcf-A}Zk7A4tGi0?7o08>cQT^0q!YWjh9e`@>36z^O1^ruVg}h6fE?$sc|2t|u{}K+ zfe|X4kxR#HH_S`t#dFE`oFrEou|vg8>C~Z%;$MlqKk>om*C@X1tt>qq8Dw^V=hpwH zKFfm+WTy}52_*?y=3q?a*vGWY*011{P3?`s`Qbz(v!2@SV~KBf_tIGPGH#QV8_U{4 zOgz`Fv+L_&j^eVbEB5H`s_+d|yK=XKxJ>{SoAV5l<-SKebWofCdi8=pP9c-macbg* zA0cp7%E}3fcy@c{!3Kw7`N-OotC@N*szw9hY3y{=cG;cl9h#b15g5HY#lX)@!(n%A&3>R`~S z!{s)SmI9pA?lc^FLAG^nM7+I3L#o&EAX}bML;v>PL!&Z9KFWE#hC2l>6yy*Ly8dx_ z78@ii$(X8+`^W*L=$}z;?>dQ6FyW(Hnh%gpvXDP4Xsqr&0y^t^Fq}BgYE@ zHn~YLj)C&w%`M_9oW;uyacmdh`=%wYZdxQBxX z+r01^km7EWD;t;s%*84(<1#|+b^vA{r3! zxaMK0%_@Eu=ZK)6W5UW;=h~>-7ME^!(#;P;9iK+Bc#uC7v|$d9v3G0doKH`qR8`L- z9@2dsV9af|+?p`g=t^{)t$JSL3Tk1=*KcGvIhOzyk2w=qzZt^}c8H?Q*Yx8SgDsb3QZ%lj=y6vDKP&Wmtq;_m#+ z;9Tlh!s~-7^90|>$F;X+@Qy|A&-6nnZ5BIl@<#EacLrAKS7jMpRio@Yk*4hxFi8lJ z&_FRGI?7`~BYQe5J$PZkFXC65w2RMrmfx8dSi2Kvb=`GE;xwitlm14w10q>5OS$Yb zjrhj96(b6W5HqvT>`gG!1F^Y;QT)ApOEn)*(*JsXU|aB|QZo&V=a+9nu3C4uk=O_9 zBZWRp|HA+bT@wz4HF6W2Ft$%;=*8*{<4X9U->y_3xlL zddR7%wF{Q!yt9{no&JDbBAj2@?)6W|Nx@Fv304DN<<8sNsji%)@Fg=4*zyS@qmiIro2<2$=zmi&w0hQKckC7fyVcer2e;X<10DxVj#Z4sAnA({LQkO$F|f!t zZ_sJss{N)m?lghw5ipVmSv^%pi}z6cJtkRi>G-+!jIxLp{l?NW=PjZX*^6?y3@emR znE4H6m6}P=C#lG$Ri;mv_p|D(l%*y)p_oj|7N*ZOuA3^%_ggEMIJnb=?S@Qmou&fc zHz)qgibjj6;p5Vr2a;ml)a_(IR(A|JfJBL2F$v4)Ke+8?4oe?df5&gx2fQeEb%Wn6 zB(noUQA`$zaUal)ONS9FiLGpGOF50KVHQL-;pmK)`NC2rq(i(Ft2n>y_7q?`S|#`x zoxcQ4LWJRtKyiE^j*i^yO(bZ#GqdrT4+i<1Sbr~j23y&~YsKiG=xr|??mZ;22JFv-XH zi8!1Vzp|^<3NiXs-!q_UD~3T8C(R>*I;h%_j>EgqOavvnFO-$5R)hPAZ;R4za{ydm zHHLL_o^}OA{%bVr)-P~ADlzSwXGDsek#S`-PTB(Z09>0zJ*-YFn@${3<&d&n^ryjg zflSa#^lzgjt41L9GuJxe^bp6>rRWf|jz(5q_fW+E;{X!HFfGG(7d`U*vzk{lox1yT?YUi$Z#Vh{moIc z$XbT*IHv;6!-!*R9}nTV2EwdK;$iLQj#~QqZIb4yW$*F%_st)u=Kbd92$TX`@LmcB z+m6!)aOIPy)?u^}rB>=iZoj{k!|+ndRD~WZh(~gqay_#pBPCsgz!vOi&QTLSL&kvz z2qXQr!9>iOH?L1$){b^AVLeEFWTE2mhzx?e%ZdH4sKZHm|3|j6Uy{6Xy1ppSgzx}E z*}7(#vNP!s#G_2X$Ux$|#5kHp7{?6*3Ni7IZr?< zq_M5Pt`OMG#?plT`jmmhakpHAp3OG}AJ!RC-TK$(n%&kw|Cu za4PZRsT@C^(lQ8nuiUO-I>BmzT-;;(25VXg1(KvvO4gIeKV{-7pKG}Y$!nbt->T;A zI6XekpDV27)QJQ5>ilN!idU3a1xWqhJoZ@YS8SsKa2&nQm@jbE5G+48lk@Vyq3GF@JWcJ zWl6~$DC>yBr4m5F=z+HT&@(dnZQY48M15|!ggo#3c@X^m9&IoKUFk}HJ$v&0BVcIe z*xWb}8Usn~s+Rs9<5y})0yCKYMV>2b*;?*Cv(g^W!A^diLBd}Az!^wq5G~o2GpXck z2U4wYIA$id@Vi3x^mvPib1TKLFll&)jjg`d`GPe-kjTxN?}BUcj_-?&FqeK=pQvp= z`~aeWTO0{ zcckfa?qs^Dejx#R!N5XwsikW3f! zumTPi-=X&JX8se=;vh;LCCk*O7r=W-2(U(H9xWjn*9+L4)?v}?Uje#yeIUc(Acr9e zHEYUIs_#5RmzYl{c*KY2*93T79wPa!mpNIg`mnv($dK8JA~(Dos0K)ZXuWw+di&$f zHhO4uNexk##QHp>YnFqYSDQea$DI~$JZSy3x%`|4LQ}w15_4o&eVpL$U<=dUT|2)K=URjSP~I2tfz zEbH(gHwogi3DEQSNV>8vp(gqHX0v2WV@E^Ly~PB%NL7`6`m8V;@>=W6V3;w4sS3?c zwfGHHQ`UdWVAWy6C6*EShB&L!6D&hi163zxR6ku|MzRq|86sBN(o4^e_z3?oR6gyw zrg>033L?Y4hrS;>c$22n@Lz38066fwxB+$p`Hr5sx)D-WgK|ouj}J#`fGgq68W!rj zd@73us-mRj^9p4=XuFmlXZ<^Q_W1A%)+(j~k!uqtwG)Yeeb{DI4kW>eJY=@$>oO6P8FL z6wdu!N^51CJ2301m`5csj`!M+ux0Nhg&g^sPo`C+;VOXtn zi%18qW31`u`S{BIp`iG8;Wp0aE)gt?Uu>ocRPM?F~bT3;#Az1lbgOA4(vZ@_c$gaLKJ0RK|k- zP^cn9=N?y2LOq^wv&H)>IEEzFw(o`l=8O}y%)_zPFD++Q@)VroYAUe&DAZ(c?e&^f zBrtzcp5vpF+TXwCe1LpQgW>XUtz}(o8XARrqWr5(qeMw$p(#PiOIOGRJt_vjLUHB^ zeApMImc8$|;?jdVD20}2Z8>6{7`!Ly6|{C=U6DD`6b~eE;agPb)PA`U{gX;^b?CUv z*xryNh{JymU3DL{rq19E_X;Dp$;TUdXG-0ctvV6b+XncI-)B=C!YUX*fxs)q*5U`u zzKJ{4_cjmvSC#j|cy$Mwu$4LE00a;uk!W7CI zw@9Z8QGUueq#B^SIc)T&O9`9oX+H%16N?ff!vhqpP^3A9Lrrij(eH5IkfEnq|^uo|;iohxCOwWLkQ=jEA9%=?=Om;&w)Cyop4m#-z$cwF1>mmMn2?zaI4FtX<}nPqKMZ zgOWkHB2jdz<-G8=Os~4*Vb1!IRv_uAT}7Df1ZFWx)y0+5Nb_tUGy}wQuXLGClUsPB z22u@k@#Hql{l+=JhQ(H34PmM= zn*#01_pa(6f>0S0I1l?ns&SgkIp*W?YPP!MpLl&CjBK-Hgtya^r}Flr%x(j2=wJ(`OM@Pm#Hu42^EJpa&RsbEK_QCz z`lMV%Q>RV>4$E1B33BUwyLLMnSthn5;hhJs;&qeDB*)-$@EmSO)n?qJ=MDNUi;3vc z7P^pO+_w%>u~QmPPG}lDX=9n1qDPF{R$5YkbJ>);Gk4;Um;CMxcq#iLp2>3|M~+tZ09K|Uu)6THFhS=mHdv8Rj+_`|})i3iU zT*pc+@8%4SMzyZpgBqtB%hzFz8kAv9Y;)c+3gG!%KJ_stg1!EbPi;yM$*Ay{crjEx z1lTaIl814VCu*>eo?5Uu) z)<=6M3?BIHdaH!*_yt&l^9OD7a)W|SJL#)SvgT)#$v$B@JY<+Z4Im^2k3)0zv@NkCs0L}NN)79;_0U=?ptEU2Hkt|DgscXX5md-vA*Ob^@?MT zhWAjEPZ7srBZV6KSd*z{{yq-wyUz}Qvquo!!xe!+`P*bK#0il!fL{y0e~EBg1rbz z0fw*YHr@o9GWr|BWKIFme_SJ#2D7O?2kFGNOm_*r3JVs*Xuu)6Wy&oWg`-Q|1Fm+7KVL9jMT?UJ7}Y;C z=vPdb%S>tC7xw{&T(T&}*Viz%Ny7xl9Tcymz@tV4ucc;)<}M2nmU_|0+z#{wGZDFh zo;DakTDKl{4RfV5gf7FM^A*LxCcMX2J=ZFFGXqNzhy6mP*X z5A1k#$mqIZXJu1#71UZBk>;T@?>UTQ^p8(^(s8cO(k`urIBxWlwucv!IiP(Na1(i; zSgU18+x`AbRoepH#3T=dgem+jMdY9IqUjyQ^~mQ&)TNtF;rTBkrD4^gp@qFHounmt)m{V+2nup5STtithUK-Q^0J_S&AAvoaoYqT7PvKh{N?=GP;s&-N=Tt-(U{t+48hwiFXL=bQdzk<0}=F&HBFo zG!++U;Y^u;EnS+uxrTMCzk>)p&!g2r#Rmo=6IQ@=hPz|MAw!{kjnh#GgoYipp5*qJ z@lx)b1eo0)WpVDaD#yRrtR19&Ax&S1ls_tD2ykWsaL`%od1emDG@|7FQnAnls*(Ly zG|&5lWbFe8L~e3C7TemN$_FmrjUwpI;`YOUYQLaCW-aeZ|3A}TvO5BWhB*$@7B$ih9-a1e9OP)mpwzGH8Ir^_ zi>o&RWwx@?udpe3H8nH8qB2KYC(YFSZ^{<5upO)Q{p+LVe-<3#96N*O!KZr8V2H0X zPZ7=&uM(_ZQz67+gCL_Kl#vBxz1vT?Cr2z>fE3L`7ZKag$*>0muIJ0D9ABEgIHiqV?@zQ85!XPK;l#QaMuN4rYOv?>rjzh`(}QIJYHnnDBIL01E)&L}sbOaAJ!UY2pObeJXw zh~UK`vKgIH_F(BLoatIrYzSvQY^i8!*)Xf3v!q@nx-aWSWrbtFv^NRZZV5%^tQ(>W zmX|2L_yL)55{8pOs^?8;Xd0!D%;{iiKw5b&vxCd{*&r49{P;~H3H^EE9-gX+)7YI- zuiuUBcO0_EGKq=PZrywQS%>ZFBvVC3cx(Xd9x+g<>(ZP>!yYCU(hDaoOlo#>W#cIrins^ z;dVhZ{FEUJ+aq~L*c5kzq3f`rMj-;XW(k}d!_DW`2`WK)W+8CZ(O(Rtd{cjeBpCEd zI#4%D6X7|F1N0_+qS6Gn@-`bOd=44hRNNrQ>Tw<@ye2!Q>MP45@d*jN2SW@NuSvcl{MxS|@B zG9(TJ;)|;V?fj2()MM`Qe^%MI>NdMP&e<)|xOfD^=30$!MbOi7#*x>`WuAEAd^4w- zVoblq{5YMsVLWOKzOIJD!J)Lrp8~zDuhYvAqD_rfS#sWYoJw6HZxiy6&@MDtWVUBm z)~ra7_rOb5{}(LeaP6b*WS-^S@zWgfrv(v80Ec;pwNVvr$%qn%xtB zB&I6yOB-3j+&C*l)Vsc(_#jcv3duUIcdB5`N`{8s`;m0oP|rA-G0CDMICFc8-N(Ut zp{iCPh*by}QJ%0&BVwH!_PGsj%}k<4YLUr?&uzk2no(Zd+cOtBzQoS=?87|q)I*y= zz+?tH==JG>F)jq4LAXE1>12hvUR(`2dXzKW4V&wtc`sgnL>OA-*C6Hq*Cn3jBNUt~ zVg=0p{jdchFo+&xvp-K%Z>d+5H_{gzdeGNd;=rV;5AQL(M!saOioB+9Hg^bF+q{HWTW(JPvW{-h{6RuJLZ1ah$1p} zZaG_GjESXx18whj+Uwr{C<6?@LZZucEOA~Mqh76<(&+-Ty$$QPORCl)%@ej+Zrtz9 z($cq6nyJaE8>DOHQLNvXPZ&KKv`FKqdD$Uu)*9({M*>n~JE6fH`qK z=PV%QzEmX@C4>i#bQV{WLy7q>7HNG&^&B&_#9k3bt&Of35QYG5{(7=N?jab`c^e}0 zjkc|V?4XyUxiUA-FqHBzwd$}#b$kFKW4!O`^UJRK))UCwSOIEDU&W_>h1&~sFIG5# z=m3xdcF8Ff`P8E)*o|&B`CXIT_p*^hKA35DVN=WGQLOI8>0O|)epC+5T$j_Zqwbic z@Wp}f`YknIpzs3ZA?-Tf)V{DsDwpdG!~5ccO5(b$(AaHHyo9sC1=9zQoPx1NA@Ph4 z=6ASUbu7MR6~9D|`ZXrKvL^cBb&aJrQCNMhfhvv3UTMfyjzO2Yy_FATKJ2|l+|lxj zXJiBq2&Az{AXDstdMXdZ{y(Lh+-n2qaW^9f>0V#V136O*@|vA@l)q;X50~ULBeb%! zHKpUA1cS?_(ZL1cXh>88yx1YU^2ykc#Iq^j7Q?fFk^xLDJRp-!E5K>=5Z5X&b4jmZn5a$!$#$IoUk1`&D=Hmlep?D5ShQ)Bym@- zYi6p*o$aDSaD;+!*#OV%Ue^ zd+=z3qyMJo-pFe0g+8dRXB%P_adnR(K&Hn6$Sj<0m+%8x{uIW$MX1SNXX!PbH zse`D{MH?EM68xLKT~1hA%LB2ofcZ;qe1?z(XnTj!L!6G`t^Ncb*uH5F2D6S4t2FLl zUDd$>;xG8QxvOvZi9_#>)RwQr^S{9!+HsZqGBLhFLNoeM)KUsP^}Ik+H>3w8A@Ap| zjuZlk$N(>d<_FL}Q=;DWnOJCVFKecewL*@v!0x}u^och}lx$;(aC#4JhHmIXMEhP} z&o0Dfj){Yt-C%*A7+5;_v*y!Tey{g&R)EyZ=>KVP(E5#&-OeR`|~Ys z_iZuo-5`G$&IhnlE?SYnzD*tVh_TErryoNcL#RSXpweLssI6dWEP(wQ*e5mA577?6V$$l4?$}v<8kO@UdkcjcA743wCy5 z)+|IXwtYRoLR}2<#IYJ2O9_2d)>dfdgx(qKZ7}t%%1^HuIjhKm41u)osP}is_;urhSCwUC%VFQh% zSLl#jzaSEPeD8cn*2qTa8=7I&l+3{$ zONI8jzEJA@-VW0&FKT`ZR~n(csCkOk9>9L}4&13?>gC90cMAZ7)s)H*Roq_2(3xri zh{W4Jzi75&I!^i5O{O(V9x@J9$yK}wRP_?R8IwxzbxZ^vbZ8eRB4eGCC9{fVh6=}Sd;IY~36@a2ew#W&!FHZf6 zRB)K>heu?6hI+&5Jqw2Dsd+Yva1`p?^v$~eA%^Ftu1@j9CH&C-{6rqnv^OObOG>`k zh2~!dyam0fy*7iV*lD3jUmZ_lIb~LZS@tf*g_w{;+^OOwDNFY#*8A%;wH*lifxFR; zn_e+#!Fl{(!+@p>I}TI84s8wh!7TasF(x^@B+%c6m=1RVSP= zv)K!tH^n;rLbQ)>F|ZMY<%A#7Y1v&4_Yo9InW(8SO{7?UN_~Op2Dvx!WErF;4CZeF PBXJzlAImwsW~|rTOXFT0 diff --git a/stacks/priority-pass/main.tf b/stacks/priority-pass/main.tf new file mode 100644 index 00000000..c0a6e778 --- /dev/null +++ b/stacks/priority-pass/main.tf @@ -0,0 +1,123 @@ +variable "tls_secret_name" { + type = string + sensitive = true +} + +resource "kubernetes_namespace" "priority-pass" { + metadata { + name = "priority-pass" + labels = { + "istio-injection" = "disabled" + tier = local.tiers.aux + } + } +} + +module "tls_secret" { + source = "../../modules/kubernetes/setup_tls_secret" + namespace = "priority-pass" + tls_secret_name = var.tls_secret_name +} + +resource "kubernetes_deployment" "priority-pass" { + metadata { + name = "priority-pass" + namespace = "priority-pass" + labels = { + run = "priority-pass" + tier = local.tiers.aux + } + } + spec { + replicas = 1 + selector { + match_labels = { + run = "priority-pass" + } + } + template { + metadata { + labels = { + run = "priority-pass" + } + } + spec { + image_pull_secrets { + name = "registry-credentials" + } + container { + name = "frontend" + image = "10.0.20.10:5050/priority-pass-frontend:v4" + port { + container_port = 3000 + } + env { + name = "BACKEND_URL" + value = "http://127.0.0.1:8000" + } + env { + name = "ORIGIN" + value = "https://priority-pass.viktorbarzin.me" + } + resources { + limits = { + memory = "128Mi" + } + requests = { + cpu = "10m" + memory = "128Mi" + } + } + } + container { + name = "backend" + image = "10.0.20.10:5050/priority-pass-backend:v1" + port { + container_port = 8000 + } + resources { + limits = { + memory = "256Mi" + } + requests = { + cpu = "10m" + memory = "256Mi" + } + } + } + } + } + } + lifecycle { + ignore_changes = [spec[0].template[0].spec[0].dns_config] + } +} + +resource "kubernetes_service" "priority-pass" { + metadata { + name = "priority-pass" + namespace = "priority-pass" + labels = { + run = "priority-pass" + } + } + spec { + selector = { + run = "priority-pass" + } + port { + name = "http" + port = 80 + target_port = 3000 + } + } +} + +module "ingress" { + source = "../../modules/kubernetes/ingress_factory" + namespace = "priority-pass" + name = "priority-pass" + tls_secret_name = var.tls_secret_name + protected = false + max_body_size = "10m" +} diff --git a/stacks/priority-pass/terragrunt.hcl b/stacks/priority-pass/terragrunt.hcl new file mode 120000 index 00000000..af58a92e --- /dev/null +++ b/stacks/priority-pass/terragrunt.hcl @@ -0,0 +1 @@ +../../terragrunt.hcl \ No newline at end of file diff --git a/stacks/priority-pass/tiers.tf b/stacks/priority-pass/tiers.tf new file mode 100644 index 00000000..eb0f8083 --- /dev/null +++ b/stacks/priority-pass/tiers.tf @@ -0,0 +1,10 @@ +# Generated by Terragrunt. Sig: nIlQXj57tbuaRZEa +locals { + tiers = { + core = "0-core" + cluster = "1-cluster" + gpu = "2-gpu" + edge = "3-edge" + aux = "4-aux" + } +}