From 2d3660cccd73760550d9b5b5212fafccb3da473f Mon Sep 17 00:00:00 2001 From: samuelarogbonlo Date: Fri, 10 Jan 2025 19:44:40 +0100 Subject: [PATCH 1/5] feat: add support for custom monitoring metrics writer role --- main.tf | 11 ++++++++--- modules/beta-private-cluster/sa.tf | 2 +- modules/beta-private-cluster/variables.tf | 6 ++++++ terraform-google-kubernetes-engine | 1 + test-implementation/main.tf | 11 +++++++++++ 5 files changed, 27 insertions(+), 4 deletions(-) create mode 160000 terraform-google-kubernetes-engine create mode 100644 test-implementation/main.tf diff --git a/main.tf b/main.tf index a5c03c9281..95d17d19db 100644 --- a/main.tf +++ b/main.tf @@ -21,11 +21,16 @@ *****************************************/ data "google_compute_zones" "available" { count = local.zone_count == 0 ? 1 : 0 +} - provider = google +provider "google" { + project = "rare-style-447407-s1" + region = "us-central1" +} - project = var.project_id - region = local.region +provider "google-beta" { + project = "rare-style-447407-s1" + region = "us-central1" } resource "random_shuffle" "available_zones" { diff --git a/modules/beta-private-cluster/sa.tf b/modules/beta-private-cluster/sa.tf index 8082a60312..9e932179ff 100644 --- a/modules/beta-private-cluster/sa.tf +++ b/modules/beta-private-cluster/sa.tf @@ -56,7 +56,7 @@ resource "google_project_iam_member" "cluster_service_account_node_service_accou resource "google_project_iam_member" "cluster_service_account_metric_writer" { count = var.create_service_account ? 1 : 0 project = google_service_account.cluster_service_account[0].project - role = "roles/monitoring.metricWriter" + role = var.monitoring_metric_writer_role member = google_service_account.cluster_service_account[0].member } diff --git a/modules/beta-private-cluster/variables.tf b/modules/beta-private-cluster/variables.tf index 160af23f15..aaa5f4613c 100644 --- a/modules/beta-private-cluster/variables.tf +++ b/modules/beta-private-cluster/variables.tf @@ -968,3 +968,9 @@ variable "fleet_project_grant_service_agent" { type = bool default = false } + +variable "monitoring_metric_writer_role" { + description = "The monitoring metrics writer role to assign to the GKE node service account" + type = string + default = "roles/monitoring.metricWriter" +} diff --git a/terraform-google-kubernetes-engine b/terraform-google-kubernetes-engine new file mode 160000 index 0000000000..70a28a04e8 --- /dev/null +++ b/terraform-google-kubernetes-engine @@ -0,0 +1 @@ +Subproject commit 70a28a04e870f2cbc2c6bc3f20ff2bd6ae0b15a9 diff --git a/test-implementation/main.tf b/test-implementation/main.tf new file mode 100644 index 0000000000..2f0de6651b --- /dev/null +++ b/test-implementation/main.tf @@ -0,0 +1,11 @@ +module "gke" { + source = "../modules/beta-private-cluster" + project_id = "rare-style-447407-s1" + name = "test-custom-role" + region = "us-central1" + network = "default" + subnetwork = "default" + ip_range_pods = "gke-pods" + ip_range_services = "gke-services" + monitoring_metric_writer_role = "projects/rare-style-447407-s1/roles/custom_metrics_writer" +} From c591bb3e6b69a7f59a8a06b9b75594078cf62ab2 Mon Sep 17 00:00:00 2001 From: samuelarogbonlo Date: Wed, 15 Jan 2025 22:28:05 +0100 Subject: [PATCH 2/5] style: fix terraform formatting --- test-implementation/main.tf | 12 ++++++------ test-implementation/plan.tfplan | Bin 0 -> 41244 bytes test-implementation/tfplan | Bin 0 -> 47796 bytes 3 files changed, 6 insertions(+), 6 deletions(-) create mode 100644 test-implementation/plan.tfplan create mode 100644 test-implementation/tfplan diff --git a/test-implementation/main.tf b/test-implementation/main.tf index 2f0de6651b..f266d934b8 100644 --- a/test-implementation/main.tf +++ b/test-implementation/main.tf @@ -1,11 +1,11 @@ module "gke" { source = "../modules/beta-private-cluster" project_id = "rare-style-447407-s1" - name = "test-custom-role" - region = "us-central1" - network = "default" - subnetwork = "default" - ip_range_pods = "gke-pods" - ip_range_services = "gke-services" + name = "test-custom-role" + region = "us-central1" + network = "default" + subnetwork = "default" + ip_range_pods = "gke-pods" + ip_range_services = "gke-services" monitoring_metric_writer_role = "projects/rare-style-447407-s1/roles/custom_metrics_writer" } diff --git a/test-implementation/plan.tfplan b/test-implementation/plan.tfplan new file mode 100644 index 0000000000000000000000000000000000000000..3535a687ae140ee225b5fe0b0a5135ecaee6b434 GIT binary patch literal 41244 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 Qg$22^AdzoD@~=<-2kgQSmjD0& literal 0 HcmV?d00001 diff --git a/test-implementation/tfplan b/test-implementation/tfplan new file mode 100644 index 0000000000000000000000000000000000000000..2c6cbc62ce47ae59069d4e9d6b8d49a1187af92b GIT binary patch literal 47796 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 YdufD6^HmraoX11wQKR>^?&quj0gy9*761SM literal 0 HcmV?d00001 From 7916c38ed3f6901a8f5d68ff8b5e21904d63be54 Mon Sep 17 00:00:00 2001 From: samuelarogbonlo Date: Thu, 16 Jan 2025 09:53:16 +0100 Subject: [PATCH 3/5] chore: remove test files and cleanup unintended changes Signed-off-by: samuelarogbonlo --- main.tf | 11 +++-------- test-implementation/main.tf | 11 ----------- test-implementation/plan.tfplan | Bin 41244 -> 0 bytes test-implementation/tfplan | Bin 47796 -> 0 bytes 4 files changed, 3 insertions(+), 19 deletions(-) delete mode 100644 test-implementation/main.tf delete mode 100644 test-implementation/plan.tfplan delete mode 100644 test-implementation/tfplan diff --git a/main.tf b/main.tf index 95d17d19db..a5c03c9281 100644 --- a/main.tf +++ b/main.tf @@ -21,16 +21,11 @@ *****************************************/ data "google_compute_zones" "available" { count = local.zone_count == 0 ? 1 : 0 -} -provider "google" { - project = "rare-style-447407-s1" - region = "us-central1" -} + provider = google -provider "google-beta" { - project = "rare-style-447407-s1" - region = "us-central1" + project = var.project_id + region = local.region } resource "random_shuffle" "available_zones" { diff --git a/test-implementation/main.tf b/test-implementation/main.tf deleted file mode 100644 index f266d934b8..0000000000 --- a/test-implementation/main.tf +++ /dev/null @@ -1,11 +0,0 @@ -module "gke" { - source = "../modules/beta-private-cluster" - project_id = "rare-style-447407-s1" - name = "test-custom-role" - region = "us-central1" - network = "default" - subnetwork = "default" - ip_range_pods = "gke-pods" - ip_range_services = "gke-services" - monitoring_metric_writer_role = "projects/rare-style-447407-s1/roles/custom_metrics_writer" -} diff --git a/test-implementation/plan.tfplan b/test-implementation/plan.tfplan deleted file mode 100644 index 3535a687ae140ee225b5fe0b0a5135ecaee6b434..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41244 zcmaI618`+Q*Df5}C$??dwr!l)w#|v1Op=L{iESGb+nQivo+Xr&n)fIdBMc5SZ^TPYazc$p7|%0)Yi_13KB6IB2Ltf`A5`gjinqY&hbNyFbM} zQ9iY5t*5Uv2ublpclTT%$o$Z^IU8c8VCnoLdmB>3SODVKN8xmBEgm&lxZRb1L|MrIcuOaJOHYQtctNLoI_cMG3w(w$Xn z=7ZLseCuJd=_dAm=Mzx>s9N#j41(NNKCNQhLN6#Fw*|Y~8H;2h{Uy&(RWRil1Yq+* zA;|GSP4y{A@@86n2k=yNx-L^9g!2gl=! z?-E=sEv=ZD$5z2a?nEAx5d{mAQ+m!89cDzGG>+_3i{JUAPL*C~uu_`T?sC#2BvQ#Qf8@LVdT02RhaI zNwoq;!eDLo;7Wt}2y+y_K{TDl{Ot|;%@?Y%$WsIjTHh#Uy=ZnUQV_x>-tdz;6kDD+ zGZmjqgjP^`)YNrzzXXDRRHRLiYY$A?&Lr9ukSo1gEVY4qv%Vzc*ep7Rg?dpaoDCkz zvmcS0L;$x+13xX49sVg9{uJNDlJ+Tpb5`RNed^F!%ExSiG9-(rC?8B{+ytL!(G(;z zp!#)fmF`1YZ{8tqIuLY1Pi4vEA*xoVab-mWDCqWW?oR^u^EdNYg@} z0c+k-EqrliRGYo{z;M;*WX_b<0eDvhN02|ewYpj4uPa2a)`@}OjGg0c{bJaFD3KQq zgP{B&F~rRZDI&6My;lE*w{fo=tc;?nQ7o2zwb`f;4A*1TC@bTT2tHxvy7`3Cg7Hri zOd=yCCPqJoe?@dPqn4S4Vk$qsa;0OsD3!2?u|=6sZEC9Y1%s5_ne2AOvW_XXYA|DT zTLg8coNdBW%$fhs(4o#@`^Y{Gr? zvlQ|pqh>a0kUs4Aoo^n-l9{P}IHl4q`qU_{mL$6E8M0fP1|%vV@wqwmDF+jK`-pi1Bvf8)ek$K>%+g=|o!Qam5# zET-wN6OYMc!ZqChgNvysqUu){@=VG6mqI}|gR;ayjlP(TMjUe|JiI87X4v5TcYH(< z(pJ)iXc^4&?DQJO-NOEhZ!bxP`i20V*GiP+WQ48Gl}TUcdCqj&^=Xi&$fc$hG{!Ms znRJp*Z}0F~CRlx6Y?Z9YhYI)Mt`A2V1xD?6lxNEz?0O>1G}+z>q_j+CcO&X_Q2aFO zfVbV1xH*1-EL!w0%pEu?@gE?~eQ>031 z&5#wU&}=uVD1DuTDnmKeHR8CTdVpO`pY8+&<-(aY_SFnMDAv8X<$t&;Y&U2Z76E4LXlOfu4EQkf(Qu`? zXS`bv!s|}VCTQ5e%1y}953h}Zuyhp{n-J#7yv&{+;}?Coh74Jn`F8Qj*sMz&?7wI2 zX`7%a6En06wa(1`wb?^S^6qQ>Dt{RicUGCd^&s2GA=8F5&fQww*%LDCNyCuK-G^sX zxjB(6@_IzIa@wL_KW$-A)m4;Lh;pOEkJ@k;X=(5a-3>j3(Nmg+?iYcnSZKw3c$EhZ zn}&Lx`jRD+c)2YNR(U)7<S~@= zGHCFO8Yw2QJt$m!fMZldGsC_yiJSAh1zEH*AIb{kOg*?xE-rJ4Zx}>{-7@blnln1t zubJrup`I|sujl>M>$O<2VoQh0%(5g9B3BVqt!iqMPjXrALLZ@|v^4xVu=5gpg<49C z8+Vs(J)%l69D>zm?w{$*RGH&1Y-EAFelPE(y0NK5N6RjkNprRUaxOuqPiH{|1Lt84p(sv^qQ=(J|y=~b}1U>kfekmgGppEJ7k8(-J^_1HbuL#SY4eD{guk+5fuVM)-57nK`}?#kHd5 z?m^a>ZpIB)j1n!tpVWq-w5$aURiCJ5o)VsXR=2_AgVW^aNAbY`s2*dn#bLXCk&_7; zWtd7$_8Uml$bcg&7rll16q^9Y$&2^iNtsYW`wRw5T3=No9C=OwJrsk!@Ik()vMxCW zBjT3HL(8a)jMja*Ff{!q??Cyy9|WJRo&o?=yqidKwJ`fEj!ZYc(U(tuIc8ClAH=|C z5PqW>I6@oGnMhMefEm1Ad2&L-l5+k};yhZ*2M~@W7Hoywk==pA$#&DO7Z1*-Y6JU* z`GZ%8A(zM3`g!r?2iwzu21NnuF1HocJ?W7X61sX75R=7BxUB4W(CDt1%+W|th`(dH z-&qbtf-pwRt&HN#4-@%WG|x11aSwy{F&!i&G!CH3?MH*N#EQn9t=^(2mWu$gD4aiE>z?8SYUb4krs+3^jG zJBIlWcj`flRc8rv<=WLcwcvuDGqVXTK(qQ}wJkB$^mf5Zc6jRZ#zS%{Iys9heWbBC zu;5dm`+%Dz(`)=jlCn;JvaZ1tcq$$^Xl%S#+PqS0@DXrc zY-Ig;6;5_myVGNQ(S7ax_ta&OW6?&f6Yrih1=h-LYmw<~|KvX1jiR*NS%U%BURy5* zdCBUGFhsH&5lx9GXlTQuR0%)-w-kyn;wQ54y%Hf}v7UQa&xMYT1w6d#c_5j3Zx5Qr zYm0$xH-nw~<$>rs73j5)pnl%vbv7%Wey_y=olf38vRX@Vi;0hrR_Y&s*wz*R0GQ^2 zv@vN7U`dXT`Y=kFFCBk={HY*$kwrCc&AxlI+;X5?zS=?+eKRzAc_R)c)6~SYz{PpD zs1*#=m#i>dG%+}E!darVq*O5c?@<+A)P=sEan`Vd|MgM2=nLn=U<0>6Cig&Ji4kX} zeY?M>CqE_B@c|JS!I~%GaU5+D8EQO`h!hHY13P>6{6@ThrkF*i)oaOL%%-+dH8OwB zMwmXF4W&9TNJ$)fyO1DVaSp8uOl(`b^qZeS+dlTDPPhg>&3cKID7o%M% ztrlPLM`-A*toXaefz{ha+=Q@YS3XBRXOD38L?+8>y-aAtGjp-v#CU@2LFj&yw`=8X z!VNYNr3cOk>cQIXUHU}Q{5%%}qVLY7{DmX-Xq*QBa$8 z*AX_jxQRs?_BZU0g!r(Y7lV!kuy$1u^PZ6V87HYUHrzqhP^7zYVOFq zYf*8vp!mp~hrE`(bVm;hupOHn{KjVWJ5|%_XPyHlpT!RPnUd)=E!Ck3{m{R|C$RHpJ%pf4j z|JN-v^nbR{u5Ko77XNDxou`+$A=xmx^Fb5lEr8SRXr2-<$-{z#go01s09z-FhH!|p zzO0*$AY(Sf^1g+I_NH3$W+Y+uu}l9-;Zzz>*`uMQ!9}w)N>#Nq{kG?|PWZ?*t9jKq z`Be~k;Cy%M;Y!_wZh4cF!t(RPn7KeA^a;o~5U+S~L7 zU9)%Z+7&00hxldZ!QRKC3Af?U%}(#9hbz9Jz0%1+q(I zn<=+rKdA529w;jf8VyRR`M0)_-|n0n7r1s5mh>rY z)*pz83);7)1UUe`yTeai&qveZuW!|%CSe)<=_A}kv)qU9(+IC_+qpzc#oIzx9^&`b z9o&PTO#+TP$etsOIhG>~%0;9tDJ&tI6I zj;l9=*DiN$d^=nJ2$fFuxF6&-Yc@8t93z??UNvbrjK-V+*cRD(zZ{zlaXzLVX7zio zy3cbBKQdHhYXV+g0*?ze?Pmth{GL42tki#Rt(IHM#z!PxAtMiB1zbDz@=Pwj3}g1< zahB~}eLetti99@=MO{|}XIgje0^i@?zXH8J2a9A3Ya9YzKOMiG2L0kX8ZDk*zCLdc zo`e{dKAsACzy1*wP<7y(wftkchxjB%;IE#%bv|!K6tj-!c4*WzA>L-fZY}raygH+= zKM3euvnK+k>$&X}NzCA^#3JZEP>7Yrsmcf5r?KdAM5&xB+R?FLKJu`Y0&teBrk?xU zkk|$^3*$JaRtG6>vT;`2$m-)nO|Yq0(Vz}P^7<(TMOS&|+|g|iOj6h9800dl8u=>qWN{tvyVtc{6RAK%nF=71J|sn(_~yY2`St9c-$XF zn$959S62&Vz5Ya=*=jB03yPV-7HYCn7J^15(!m<*``HMch28Vl7Oe?-JUr z(aZim?3v@@f0z7*PrHE^78er7dI}AqqZsUdaMqb7ekL72gj)@x+y(EZj!85jFz3lX z(0ESrw!zMGqrefyxzIcOh0$kIV|ns8;Cf7b^^XnJ%{J98y~0t}j~i$GsgU8e_AnLJ z&^y4wsF!8?7B==Ej!s-ndR76p9>eVk8`N2JeYK^BtvNy?CX3<&?(<)q&{uh!ikeAw zIUn7T{*u)RW)j6_Lm;kSscf7p;ZqiC2;mm%6=S|Fqu>OC@tlu}!mPlhGEU+a(ve*g#EmUqD{**Z*(eMn+Mb{&RUka1U-%!a_BPcOz2D82A@Wne1s z-6X24CG_q+ey4@r+F>tkDg?ev;)xTNuwf-J(g;*O38YdU`ap$P>+(&2v}<;e+JFph@b2X*#J)Vm76-#AcaL3%@Qv4AyPyQu zs;h0r46**`!CrK883@kB5lonYYXo~2S*|cVJ59V|r7Mh0j1-|)dVyF2r9;jrnNnoJ zo~!ht+nT59C`KpGf{uMZx;}{tK(N;1Cdr}==M*bb-yC;Dk+c|_?Ppw}RR3fO4%wNC ze8E9~l3s%wvw5ah;UIMRP&s_)aU`p>5;s1N7fAumWmrea9 z5yF^T53?jP0KkW3Qi;so9eXgYmo;0cxWY5sblE{jKTjdm3BE)ApBfCej{ICjgpQa3 z5oI-gHGO?;p6wZ88Gx&RNFh|j6Ar{m!gtXQ$#8axSS3ZLDB67j)Ov-I;g|hVG(7IY&E_VkS3{jPzAPbFy&b|o@6(o*ojfhq%8;pY@T))N7 zq*bbxgPW|>eNs^$%3+QSMXIT|(L=nQnYUE!Rzf8Ti=_NaKUW7TK^m4RhoW!3_a+;s zb|D1Vo?#=E9NBi|;)b~2joDZt;492Zn3V-PstG3s10K;pjt)3E(F#?tHvHaT3(9A| zXK+RfwgjKG0*BnXL+~hr*P)(`Tp8LmABWuLc8(7f#z-7>tgn#en-!aJ{=Knel2D>g zbLoS!05<8xFu)~(!ECaHCwFLJX=Zi*N+(Ro^?Zad66M!_N%M4aQc(OTM2K73PaT|y zZDs!U)fgbua<4b@wCzJP;r!v&u^p!%ZS_DMm=6_xF6vTX^4l#TWG4MJ zL`)q8@Ii?Bp@E_ct=}W%LF|ff%Y*_Xvr-H(`w+2ZMEpSDf+%<5cf|m~*CS)fu?sN> zdt9tEVM+)P1Hep@6{cXP#R(L^I;;6Qq*@>U4|0@*Km{bS=kkT5vXZ%A6d0idG87~- zh1+wa-coVmTpg}?i{i@_anI@1mg8<|fIq1lS(b1BIqDoD`(b%_)ch}8I*_*L1WyRm zKG!1($V*m`M3y{iub>+ZMctTrQ(j_ETY-c>-0ukNVlCmA^2F~EY7q!MVkAl7e0jpF zpqA1H(C82YXYj$hzOxVm!jtQ{a!8Puf>;EQn*~|Il6wt}sIWllek>NV`aj0u+Lz>k z$1Z=PVTbw9s9s62^yAY&fY1-`k{&#KhoI02*oTynO0P{tAltm)8`7m^7b53_* zQD!3Wmc<)kJtN0q8stg-$C}J@*O*r02AJgdj$zTld|Q&e6ZfPS=)k4q6N#Yoba4tc zXz|&%P?%j4w?B4L8BvFZx^Z>8Uc=#Rt<#1W4C%Wb_EVtFRBA}t0kWb&E=2O{!ALa{ zlJtM2B#n=MpmHCz#WDHxSOC^NgfwtK7uqAHIV`1&ah#?5wwe> ztc8f3n^fVx)AdY4m=z&PAI8iX3b0aF$q8COU(?Tn2{L21#4&I@8Z&m)kxY=y@g&uK z?nF^42#J z+(KswA7{aMiDgGg+CgqxQG$(xi1#f7QV#Kid;dbao7jYdf`G0}_PwYhu?gs;zG;^t z-RLP|27eQ>*hyDXkwFvW&1QrySj$-`4Iv-q<3G3D>17jSPCA@tp%3i%d z46(3q7>U{ky(V9H$OP!CQU{8tdpsUk2RQ*78NPCjxwwSJf0jC z^JQ3`c(OFC5Zvck{9cvJ%9R{MDMK;(mwcfl80Z!vMPY*C;ylArf84Kw_%^bqD`n_F zHYFG*Fvu&~iC<;o0;Du$lr<>d7JYum#(YvoKpvX&&gJd`LHqo55zuMoaC~il3)HQfl zlM{-vq$m+{3_Q;J!DQ=)-zJ12n4Q`u7zE^mOoY;`@eg-OFabzn2;D#8UgrB*DDF*T z0zj~EBPM~f=`gW;K|m3bTf7WRec35m3d(+mFy1W0I#p_tB>^Z&;TXjFt)a^g!#1o% z!~37#Kf&Gv@L;FWY4(Ag5KGa}i~!28Ik*KxKztc~3xB&5!yBe-UqS=&iu?PzZLC(! z37<$0OO$-5pD*G=sNaG7a?xA~PomZdB6`CT^)!ClT?tpj0?{+RuCZ}Ly)w)+WX7qePqeM&v{KQx>&y~ zq)>XRN>wIrp2BpTjZ#bhl{f8z{tKg?Mfk{<^R@v5_jvMu&%{x|<<#x%tTURoH)2DV zov{p~0yz_A>fqY^z$&{XsSZ-kN-m-WPZP-WEMlvBvi4tml*sN-O2Mef0E+1OKHmUC zACJ{NC(sfCzSD%}$Rw{KWZ%cZ1iS{alZM+|iX!M79#94ED#~`c-#Y0Th?JAzj|OYz z4f>}A434ezSg(%ZuuY<0HFJSv_sH1(>F}3$KmB(TlJONBXLWv?g_@+2E}5v2ED;FR zqR340aYoOVhhi)6;*}O>uEYzTd%Gr#svE`~Pu&$izLy{P)1Zu+QPD{bA`wCTd9H%* z!gioCn!kus`^Q7q(w}G^aCsT84A`a%)v%O^OsrGcz^QTO{Z7XaLi%}U!Mr2ryn5bIjf*fTRgDXPT%R? zy~pBf*LWjguX(RzpTLL8)Oa&8Hy`s%E@q$btJ&teR;ZkM)p#4)=EKX^c+apkAHRS} z+EjhJ<0)O{H|ir6U`hBkr2kfB`rrO;Hy?Zd#|ZgbU)eVQyJ=rN(Y?#Hw3&9zui%)? z5dLqCMlGvv;rGxe4iCzCec`j*L=4T@L&M+6nSJyWGx9zkmsgjJ|H%-Iqx_9^hQx2ER zo#pJ4AYtIQ_Y6=&v2Rgs#Ww|*-w-VS`;M<;@GXQDk@}8IMo#dZ!WT^KcTQmcaqRXD zPpb&v?k4B{U%f(%l^Tqhg!G=4H1Yev zYepw?aC^G-%h~BYpamp|2#uk}H0;2^h3bc!?XB(?B=V#+Pq8NjO*G5E_7AyVZe=_l zK8>F(wb&+jjA2b#=GlK;+|!6s3#yWE-*n=6;;s?@8}A-29=82A`lRpc|6Z&E{0Fa@ zqXW>|lF6Qd$=<};fzb{4KViEi_1g?Gqlo|egxl-f#{}bf&_J%^ zZcpjYH<9QCTs-)6_H0#man(O>);Q#gE=JJGuCY?EN7jqe`j^EZQcnn8V$4z9tPflI zy=FK4RQ>1wiV>e%L!1HzqtVg`+xC+^MCSVX=}k`X6NqeX5sR` zvvlEa??~4E+pRS*z=#C( zXM(K0g5cHF)I(|+Q93ujxq9xj4LhU7!-Ug(-6y4!&k(F0zsAc99kl z!3iXSYFHrU^httx(911ARtl{+?ZZtBh_A!ebgzG?D{{y8%Hd9ji0FgE#FTCY1FgZp z#!BY)8-dmSo<6Vl_ikX}LsW=5d71+B0v}HP-tMlR5673|SwpY-T2ZRPbB+X*R`)G6$LQBHp6L9`}7M~w4w3TOx6%Ag2uQ~^PxpBD;p5o zB!kW1^G<~Kqy4K_hneX2%hv@XN1;Hlz|QCAoBiX3hb4lx4;V&A$8Dp)j-Kvz@K&MV z*qq+bueKgTCv5 zj#{lk3G+~zf0}T{1}>}^+s05?&l3x=Y`l5Xic0-dTb)WtV5{{&a2!Tsjmti`r6}Rr zr(||K5Kyt4mJkGIv;16_U5rX4E|itVwX>%bAvO?3*nKy~oNQzi@jibBekVUkVH!8h(zS?GDb2S1FWL8RIL5xSc3iHWLPl}Enc9O zox(ZGfzIvE+Gl)}Slo4gT#u!kz6Qa)ps$FMxAKZm(`pU((UuSfX-@!gBhZELl^5xl z<0mNCVYh&qZm<^*YQshQc7 zX@SR-A<15$=YHVBi<`2ZB~mU>%-llI?phkVPdjGQYbQCKMzxH;zZaWNK`_y;ErR`j z5RYc9!X=Uj^TFplW6ueaIHMTVrge`fN$~Ju80*B6BN@bqS&asmJ-7x^?Nz1UrA_Ni!>?ImWc?jR7 zSsW_rT>7(5;X5k3do#E~{IiHC(r>j;;<8Zqp^r1+D)ojS4s9z--RcsX5?a4O-`AEO zKzb@9xp&md62k2#@QK|XY!`6np$S+U63TAuX|okV2|Lz|k;}bC9^(?RQO4$4161vz z@kR13sVi?3!*cN(Au80RzBT-JCl3!hwI9B#?6mmYIib}IJIYY!XvwU6ghR>6cRyy7 zZWkNqE#B)o)+>6cuGOh?kG4({g^Vmpow=^%6!{uNcf^&Su|ERgpUlHTfZ5aiYb;(= z$Bks_T7wKjX)tc@lVPlxxM!c_y`OiG|yJm(S5EBO{R+An;=`51+RX zb4~Onm<*(ll{orm(++5{p!Q)s{HNF9-bAn9x?!Jp^p7j9R;b0cag}IkJhk3b=wnZA zO*x_}^QftJ4}MlT#O;as)4qY1tCk_Q5t`!Maz2*Zp)xQ6%~5x1n)4psdLk`$V?a1M ztVksuSI7~(Hqn%od(iBK_O9+pCPzm>1N|L+f4|=u>;1FmPi)aM0&u9AalQy7r$Sc0 zy@{$liQguNBV%(WtDdq@hN2eB>+rXCqofwz&?pU{<%*tTe?+8Ux?jJlefa}}Es%l8 z2MVn}0wv}tGNWO7*#Ut;b`ZsDyP6f$k5P2@^|LndsOlkwVAIH=ImH= z`SLf2)zhr(#Ly_=539zsB)d3fgz9yU`_6@MY$u%!(0^uo4J|oYv24Mn@cSp3pZtF_ zDM3tdaucoV0Zs&O_5sP$;9d#s;3z5dgc;N(_kU-3YB6~(G5>fs{(8tpTm;i<+bBQJ zpwcI$db}Fa8|`DbQ&mSP*&i@Zwje;)PTzh<2$pZKSI!O7$>>dU|APw(LMIHhq)Ca1 z))O+Wd`Yg>1mQ>`##1@j($AsBvZOJ8Y~Nb$M8fD#EyPDAtC1@=`?V9uH5lP+;uK-WapCXO02IGnS^bEAs8Mq|9m`zZe)- zs0OEg*TB`piL|d^O4y|m$eH#-tN0{bMeyg4)1tv~fJvoC(Z`gQ&b!R8$WNU<{h&Uyx()KD#*` zaQn_mN%0*d=&@%M-eL>x2GwO$OFs0bi$oVae0Bysb!=n`##BPfNjMVBn{M$O*=80q zDw-3yU})*pLC{u7k7WNJg%Ru$5^5Pq7cOAu7=LGRY(ATACtGNI0~L9F*yE0kX^efB z`x}Pz@y|SAl~+XKDGIRL((Oh!T`WKI5`O@*AYn z0a0=z6J7~~I-y3>sJKSM=qwUVhBRE-CvU@~BjAR9;@xD0ZW{sCT52`6=RElrh;*z0 zk&(AYRF}!9d^wc3cXv^9LoaRzFHfFc-g5ZavvKl}G?jW4bC!pbvGrW|b-l>9Qbp^t-4Ov3&}iwqRTOmn zE3)dUs2L;~x^lLg3cf_KM@bLvfsf1&**@U09JPb@DT@l?ibUQ1jUp6RoZ!|^MFFg5 z*Y^I26<6B0WEr^)5q%i4Y6`?1#yNB;#9^h=m z#lPGhgH0}<*f*BjyxJAP^mG`U7+6KD6ipl2vs~$-tZShW;E3`U5j-e3^K%Jbu?Y?@auif^@8^ha9QpBoEOQ|E z7#%W@w$Z#iwWXhl$O1!**A_8^+|WuzsYoyDY3?vHnv@2aZ#fcE2O25eCkEd{2ExRztQ+Wv~u0SmBobuZhlTudFZ&g*{ zNqD??PCgWVxoo@CKi)7X+o5%@+&TFLKK5BUz4NL~UA)k-yooSRs+(vB?cCu_u5G3W zRMXBZ=$kHJe>w~b7{`Wj_QC}@lJq-OI}#Z8$anX?p6%a7Dv1pgZ#%fnxrAcVliV?J zp_w4|uZhV29%2>6IjB7NXJJ~U&aI0-*i<=9!HEDJ6sM)}7lA8@Xfr-62ES89*i$zlJK#3q*C2boJO0gF^2-Ps zkbi?))K4_O9zc52Xu&s;sD2u|3YN?g&kRSDi(Zcp&qN6@L9`I0Db-D$iy@|sU`L~+ zrE`efq=IfbF;QDEMORShRM@aIrp?A|CN7s)ND}ZYt<5 zZIn}0b;bN0aE`KeL{WsW;-7!XoQL46w11JwC77@AC%1=LKHj_{aiButvtG#I(ql`A z1@4ZyMe!ikln$nu;66+K)g3x-9Jq-PMoiuz$I)6j)4E?1OFeWbfcBbJaBlI;u+`(S)T6`BM`O1fX(2_nKw zLv*NI3?#%g|Bgf`Y{OHAGHd6QD3tC-e zb{UCAB5IrdzUV}nIX)+ZNDh#%Yojm^qT3`q=Q0OjY!^&*rjodmQ$-pz2;nzMqBPYs zl+$6RrZAe6IUFbp)d4pcH7jNlc&!{(QE{Kgi&>P(7JE~ZD}tV^U9c4S4si!(qa467 zwR}=V16lsK zw3rMZ^zXZ~y~^~^&q-fAaa4H5Ke!C!HBx$Jl9)E#`=^#r^4J+eB!mFk zlOHfTh1iQ98pjs9`nLbIXM#|-yfw%#=O8C6$mkIuI;e;IyA8HTH4cIVdazv_haMeQ zgv6&-A@ttPOyQ?xIo}*SggveH{XeLYg2)SkygBOox?$5wf_$0c`2eE+Uzw(9f8>Ub z_P3ox>C&j)(A?QsnFVzP^s0%a8lOTzv%H=sTf#Gn(PxxzTl0lgRkL|L8r2y<^{0iWpmT8%s-h9;zZLzEtcG( zGMK_5ye+fkMR2o9#;FBTZ`cRLml8m^d_MF=|H4Ny6UevaR=K`GA1nzn^f6IxGB(^} z2bKB*>kmG93!`Q;$e zMyXZuVkyWkB^(K{dgB`A!~>elMCwes@0)G5&%I;`;4;(}yc z_5~)DbCk&H2kK`A+DM0n?$n8sR!GO)5bq;X4} z^5p?Ag^on3I2?t#LsOtdtu|231drVB@!)2yLX zd4|%(xbpew+fGu`$CEn2DMU#=Ae0krPO2cI2wUZ;*s}Bf)k(;yI%b zMt^Un`u<*64mt%8$nQo{DM_MA@dJB>Mw)SjWWvl}fW8;@kt=_Mem2*5C{=GeBo$Jl zEf|)zm$Hah<9Rsx14KtPKFQk7*IP*9z+k9rwJ^Y5>k)p)F;e1b7lL`92M5|2`$C*= z-3axS79&*ewR{P1O$bB>XrMoVQ?*D$LUX&Bz7YOYB;pBZ;D;4XTveqQ?PWOP*AoKRof%!9V7tQ&BkbvhOiaO0_~fLu%gW3L-= zP;U=DfW$TLF}9NECT&Z33{QSeMg9KKiT%M5bJ_yzPq23stF91BjTRrT4BW83wPJGu zYxJPcCyY`|Xv8t4$WHJc<;_ZH9KW5dyu8Ikqa=)T4!9dAIskuF`RMPkFEjK5Xb@{y z90M&hGXsYTd(bJ z-_^0~!PMJay-f6XLC%JZN>tyI_ouDhUY%*r&!kSdxMMdd_~YU6r@{Ew5fRbwv1=?P zVcA+z|1drxBZ(3W^h!HpxT`yHO;8e}5iar57s%McrhL50ot0;Y(aT5zWl1$w%q|gs z=b;dcBFI~_G%{ee(%IY)yOMgQ-U7F}Zf&5wbyJMK57Qa$ZBlOvHDLzI*`FJf>G^DD z&+fWpUYk3qRH?jWWnF0{6IGAkL@u83KB@Scxc#pYBcyw_AtK<{Mt*sYfKtuoX~BKT zN9uZOh!_cS%B}MF&-9vO<#FfoLu{>jL3I~=S{|e{{I^uW|Ivw*O%S6P{h16-@Skyk zdNGQ~!u|M%@5XlbTVnO~KLnAoNM!QQ$%~KH66n6mivOqa!GHWqQ~Q-4My;7S@^z(u zF5G!!|HtwFkX-{WwfR4k$8SO!BK|WxxD$??hX3EuzmIpqODvOY?fv(L$3xCh0*n-3~B3=`wnSYBzK(OOdaAVp$ z^{BI8V(YGnAL2M_j6!Z(+`yw<|M8!ZMU-JT+%+6@M=o|&JU%C1PL5ZVdpaN?0SV0O z?T5Uyj;u;WD#B(|ol%UrxY{Id0GZh@%~dtyJ#cpCjTzRt{3xbRG2>&OYTO=(>O z3&lcY*fbOa~M0)Enu*G$i!syS2^B=e=|J zb$(c#`1Dp*_BQ%)Wr9pq#?8$WuyE3<`{H4yGoQ8^w!rD`O&*^N_Ihp7l5jxrQ@rUD7T zV66D3;2~2(gq$$r^D($kpey9D^S+4Yop5!tu`p=J1QPLQE>kFrmWn*WPdXHK`_m;# z3km4iMJc&ooAfxd`vq|s^og36C7Su%pMI6BsevqXu^Pwf&>V1xPrWc~*`;ywE2WrpiOM?-Pzf1Wr7k=JK#KN?03a9m^h{<7KI4mN2q! zX=jX;2cld=JXIQ=+tusewA9CYmz-DUPmt%1uG+o%8bH8PF%=JNX>M*lPfsjes$Q}w zf(uHuGc_O2h{*e*O&$BI&c`Z=&`k5(rhM8oVU6|XT{}wcZj)6fjwSKSd;n{x3M|?j z;__dIa)r=^=yh_JruBUE`5J z5SezqA}vF+IwPSCfG#iDpw}X`1}a8BcWiO-ICfa&m!jEr9DNQ2xN$uASM9ifnTm}q zg{`4=(?ax&ck1i>_gcZ|*~>eg+O zRFaBaZ)~e#+qP}{jcwbuZB%SmY}>YTYq!(Ry=S+5?)P{7Ue6qD_4$mxpd!&bV zSq@*w44AMG6pqH*#E%yhh-+%aN3*iBw&rTLX=_yf)}qsWK`v?|8L6qt(Hzy*@aBCz z>)~qDD^mR1&=R1Zz3nWvUK}4xpU9fqMpN6;MK+XE5Lv4PR8_#a;y5E3b~PozO;TOi z+7c{}ZrpGJ@AbrrYU*y9^;vr`VV@bt%sw{0z(t||>3Q1&zrlC$QP+Hb;IzyYJ|fdb zP4G2>--tXh#p?*m1nX{cl`1z|3E~=M=wdkbF<3Bkm?MXnk+T9T=-mdZ?_2TSmL_MZ zY>aq}&Q^5jqms^a*pb9nsO$Scu(6S<{6nXl`RNG+ZWku_yZ8CKjyV48_HI2d#X+Hc zTwZA=8(GMQ37+E!^bbS4CD!a)0u7fNu=kAKD7P`~dWFc)u`R>EmB5jU=`riq%g9CUY<0PIe0fLajTqy7@}ew3Hig0{xIqom z6=?_~EVhh(-z{Cw`;-wcyr-wUO3uDnmYzQPF=D#Yu9~4g*rv+wti(Re|EI5i|KSgg$5N;p^E}E1nAvG&$!X93TWk2@E=5U%1OX8x{7*9u@IPmqje(=X|2f~H zlnw0GShmRXWHboU7!7X$UJKi&(BFyFo)<#ZjBlhgs5184fs_kIB_d*O6rmj=YJ8nsO zc-6d_Glcw(M`Yb=>MsSREJ!UXF*6YA@D|*Tux81Yf7TW-{)Oth+VkfoPuC1SS!{`{ z73^?R-u=~w6(_)|Rj6(D;@_hdpotXZw=ZikQEICwl#N@pLk5SvdALIQ~IW!O>ikC@2Wb;l7^jPnMTNLxX z^>!-aBUt<;vW%L|REjt)-RaaUR6!Il*1EFK{GbaW>x#+=O;@vZ267fx*{!rt@mi&n zKo}-Els^VaO+`^iLyN9-pp!g^oVFW^Za7K0!AyKWy!3|M8uo3?g_Hzx))r z+H>Yp9}`~BzChwJXgQzZe8l*5X}G!)+H=2C4S4a{V!EJn%k|QX(XIKZx2Gakv{RJc zon1v&U=-z6Pmh*2(s0H$CAZ5(`H{Q3C%!E>{cz^7Zxy3mV~@1QxadIBaE8GsYDYrF z)9xli@d~y^#^_i01N;^@`5oyWRLycGFEk6+{K8hR!76mH@Aq+RqTqHfqg^cGtXG|Bo-KnK>!1K z9aDN%Rm%w=Z(sC`xcsuNv06oW00rBANC-MbFMn zr!xZiQE-Uo0{f@y4?|)_^+b64d_onphX_jbx-_s)tU2Ky`$!SaC`|oAFwfGp_IN*w zP4vBh^n=={!~Xmf3GiVew;}{m+$ZI0D&ki!Qbok-fGREfwsQPm$^K4 z*&PaM+$EC!Mc?A-MaYwE{0Stcgy|z_hCoC?Fbzpb;+cMZZ@P3-uT^kTz*~;EWv{Tb z#n@5#Z-&47qspfceg5|5P9^kdtUEGhoN27^aj}7`?-P}nUKi42*|XL&x&4RW?Wu)Z z`mAj@GP`%QPNKOx1NsYAU?v_Sq%*bQ%xF;1lXZ!rqaBpRq-cQtf+7^G1_)R}GOzRm z(%|B@!UU%7prCOUB~y)GNO+j^3|dSw%s$ORsp(~(2NE6djn>ZB;a~}t^<){rBr$At zMOl)DC%WSGkYE`#iD~ARX{(l*si{e=%R#r~a#vx-qpzYwL)#W*KL9K{>!=`I5)^H| zwSDx7bh#kH%E1YwkV0O|UFo#J&%mQZZW=BiuERn89OH`i@y ztxVf&C$-5pCio7^Y3NkQORjsJ>~Ya$Y)8okdXLIFkaMx}yEOK@QlCV!cN=7*Sxf|AF16Y8&U|~f0 z3&%51msJ!V(vXR2#`hB-$7>km3!*S}SHJLxv}uedAOVrDb9EJP3w3gdY) zS16<*p#iMTmuk|ZWOM_CQElA}Oo>%X59|#+#Ej&b35U~IC4)|X?b{paLQhhkl?bL^ z*e->cCm?mfWO*cxhN7G|FIhbKNT%xwJ6MG ze1r>O*nPNou!RM?r$$kxjZoXUQaJO7r!^hhh@UJm&fZNMRu9& zAPBv?heD1knj~=hdaDMNSaLAtogve5a65K#7vQq!tQ+@C zOc#@IRy(lUnQ|a4fOT7jUkiil;U~ytzD=k};%?$#j>Z9LlNKzpkl6ziI&sEyOtjiY zwrLpwsh^gTu9uh6el-IY z&aO9j}r%#K#?p$wPUy|DqXd#2B;~)p$HXI!Jbts~04&D$7k7-Tb zo9@O=IEa)403rg8ssSr#sgg#~lx$hk5J_LZF-jG3jJFf$-fQBXg01iFYAVzNH{0@w zedS&rSYF(~sK`ce%idC}VbS(W1&AO_)9;rXqM_KU5$OQ~ENPaqOA;f|YF)kxgb5L_~Doj}rt`vl3*v0y-D=o}G2q7065xk!2r zZ}0-i3{axIjIp;+8R(_)cetDMxKS*p$^t;yo7D-hC?8JJus3cUx`aGQ#z_+3_(; z3y?T`Dv6Anh|zLkWhDCQkoiP6#x%RHjL*T!L4EKJf|o`yrsle%)MGgvdnhT3WpY#2 z%3yQhxS7L}xB@zIF*PxHDcobxHnd*6a0%tUxLUqy-M!!|>W*~32{&B6nN&wUYO#e> zrQQ44T9(Cq$t4-4;*i#8@lGPo*Vz~CX01GFH2c@S?n&2`)+^kf;>`Xr2eG{-v>ZJe z^D-%g*G~k5qe|BegUCs~#aai?yz$yTvG?plbx0<7B+|0o?CZb;5r`n3eiI zv<`eXF!+1gL}K82`TgCqRZF5D?Mgi`X>-I(Li#~))OlYVz`0F@UQAn)rQMEti8j?6 zY9$30@L1fEwP5|iB%Mn|78O3#_(Hq3j#xw&G5q45QZXlP^PFEv} z|7D3d97j0((on%$etXdw{N4P$W-hqD+QVbV^A69)=NY5d$*lLW=yR`S#CB^!MlU)Q z66zK<(Q!7nAfy1`LkM$mR!ytYQmpYemst+~OPwy^X91zZeG)BQD3DfNP;XUXNZpfd zS31sp#IWD$&oP9rAXh0erF*uI%^E7x2f{1V8z<)VN839CpBw`>QH}5v| z*09pri$bF!P`^h$!w^Ink&*8gTnk$;{emV**hJ2Th|hR|Bc{okqo{Ojth$W)DLcDh zoF8dyjy2D+2y}FcXiDUWSQ=qiXNsB+6ZBnhXS#UKn8B9b)Dx|i<&!b{jNAb-e<+v6 zkOL-)Z|${ppD`9DzZ?b{1!)$345ejhhBL?1ZGvvIR$2G?RN(Yh6Sw|3eh;{XBOm7H zZI<2%P*Vmngi!uc9yHMhsB#eW+e`C;_jbmtHkZts2aeQ)7w?EHb z72s*kbLzLGEDp$IB2ZBhCt6r{L5yl2#-}HI_OW13Lf-G!_%>-pf&2*yO2V{6(g)D3-AjQi>>; zmo$bIXO#U>VV$Di$SLD196fa?3{pmrMEynBM?e8ex{J8D4MY7mzys|B(T6Pj7yWbb>2ED zsj;i%{7w5>N`itG+g&f%cENHZTNoWziRN<=iIg$r;$|M1lQp%dw|h+!3~nC4(q^z- z)#85KXfypq7h^D>4TYcU?P4059UQ)7@luYHG;c`gA;||L_~b`S+XNT3FW$KN|v!&w4?OGBNBzL`5Z4M^&ZXSd{+yF2 z)2dpd3dUkZtRRL$?Vp4!ps5J3TsSeCKHmrkA))=fc) zZEZk>h?w9ZI~jMC2w&gyp?%6RK|(~rFna85iGD-MH=d@zNInVPbF zjJBr{Yqm9)VI$doL9f+I;f^1!M!rKC))BO2%y(U}zX^0I4a_}@19KODy*ti0(&!8u z%I=9hivoh@U^9e%C%s&9+3svu##7xRkL234bSu^R=$eXL^YNAK4I<(bXM z?Kn3-C|XDpTNI~sVE43#?x@{b(B87(lK`EK5UG%FoGNQ4Hp4nxurzk3=|6#{{vU{r z7weNj4Bls9*pYCkO*ZVq4MXG1artwp^lOm3MkRUh5f+tTXIddG(FEBKl2gg*y)sMs z;w=SIn(iI*%@ey`Y`KoHpHfnr!L+7-J2U4u7v}I_^LC#ViWPN~nyE4zLw}vuxLwj$ zTXDJSJZO|Jv?$O5Woyg^EXE$F)Yev^)js7T5bRsoPsIG%i+55jpsyg zB}dSvt@O66WgD&=$D>tW_O7^O;brgG5A?xL3%X*GWz!dhD`fok7aJ!ZPTr#P7zl4cb^ZD_>eQ`KrsJ;VU-_=;974mDFg;vo{|w=(2HyF z?9`32_at^pDYV`{=3FIV;}r>!5{~7|mYHz-N8CM#cIvDI0I|9v%xI8g^J`c`=0G-Y zCPv@_=})NJ%f-is7a|zxK`f%?+rwEEmkUjQlFPww2}{qIqcvd@T)W6Ln%$$mp(Y-O z_uy+tS@Ei%c*?`bg4;d|m)>N-)UbTw_sLyt-RlH4rS#3u^GNg_=8PG))35J~<$JU5 zmh2%GippQ%gP*Yxr3%Xc#h5b*Q!eD>-BuB(HON)hv^-!b|6dvl(zjR?&B75zX>Jf= z4wa@|X4c+}u8g0FhMsIcce#ww=c+{ysLj1z?+#JvsS-q%AYMX>Y4dkf3I8l#g<0d4 z;C^LpsvLP!6~`TwjVLAkSlL#Yi3`{!_4pgtwbdzOq zUj6YD`THeH`_$nqNk+4JTE*xJZ-`W?Y%HOzt6P>7)g!#S6-YNnt~PK?WpVbDtyiw! zRPZI8YyU+8PgK#;F7LsxJWm=?P~(^l-^}j@!R!f+uoyo>LGkg??5S^+4>$GsGMV`r z)&?{_i1#$OREP`#syVPfhdwWTA4KVa3bFP6ef0WH>``sc3B_?kG&-J+yE!5cV#pUn z!Z$;+_!`2oBdup%kAwlj6vWBzq{e4Dp3h`3qj;5kOy||jvFBZvqe(K~_$WcRM3z^l zxC!H2PayuwY6A+sbM8zS2&TC}x{^PigNnA5rY(4nVvS$M+?dj?+MPVTu{%mEL6=s) zFT+nJTz?FW8G#MH&Q_?ox4UzmP1ZF`>+Y+;RA2^E0v@jz)_u#|n%uiW?tYf%d4+~? zi)Cj*wmLbgj&l1+4kR=9*>&3Wj%9HEnU=4-8FLv3)oxq)iMnBBLyH2yJFkB4$Q?fI zgMV zT1!?YQ4=!oWli6JXq8kd%v>_+kn6@Q67YT4X zMB9d|PMtp_xEl0`kaN$KNOqZpBQXQK1TcT|&W{U>YJ!oQ;dIj8~I}8H#{!B37zn=6(!<=v5A%U zI*ViS7L4ki&$%Lb$xS(@pIPE{jE-4IV{lZo+Up_ z8x^LEB_E8z2tsqP!mw}aI=szeLE>u`a`H8u?XO3ng^!jE$H_uK#f0AOU^ShpYgB0V z>iWc($jo`qr8d0TQODKIT?P7s=seYW-mrIr2v)t$69(Aq)KE$sD6+v$P9NH%KjBclTeZBkMyjhhTem&0J zaIY1Ermx73^03U|o||8S1uDhve0^zda`6 zfg~PDjtQyihsTlILBUWG&WQ7Al0!))+Cs7A>w^2E3oRDCepXcIBt`af*$A@vp(l%s z-6{DnfO3zl>BBLP<;#KfN{gNo^LiTcKb~q!U-MOdE41)OB%LyeAQMV1j`}R|o`L*G z&>tLNRnG1>E<-zI3>E+joGLt2bS;H6PLP}KAGrJbpX{;;)?l8u4RMGiaMZR*V>6Js z)37jhxa}t;Gma->7rx$lhCo49`_ma$8p=(1U>fyL+i}XRTtx}>ueJoFZ@2TXC2JXx z_HWLF&)^jog1P-<0UraGAkbWho1kg!HC#5_wSde z^={GmGJg!p+>WzhyVB7Orxt$wTaFhr<2r90k;w4CSR2pI0W zCsI~V3>j_uMUNV`mzr*l*0b>|VGfD<_fYLtEZ0!%{)FzW5t(!`9aBBkz!Z4Zi!&MY z5Z$I>Dw3;}ZbsSrRlzQ=kAt`xYM-N&YeZsxjMOD;BU}lxzp>;O6Z%TK$;ZW!m z`#%UK`gvt-&(V-uI{(~-f(UPedF#7}urWQ7+xdyNVxf}RI5~Pr9#Xu>bsW0}mJH0L zJMDJf);#AtE~SQz2oR2FuIHR5E->B1ZJc<{md##1rEy-r9 z24ko;wO$~R9+`%k{DOMo4SRD^(U&OT>L1vXdwbC$o3y+dY3cv)fzpvM0t$1M0UDt0 z>GhtE-(Y)M#P$vpVx&`c=$M_I;HtQX+dY-;#LbW2_Pbbzbmy}YOv~{pNjB&WWcxNx z&1o|)$eSc>2$w*jwQcWG9m7UTj*<~;_*H8WLcdLEK@3o3E{;~*U6uiGf%lllwiGJ&wbWM5txyI#Rzk{^@wR4zE z(Gj-wCp(<_ZldW*P1{X9!}x$+J;(l@ga0=7T`kc8JXYcls>VlD*1ry3xY!!D0TaHm z^MN;gD9L)4-@CO+om5qT@W?d9OFEZ|tqBhJr+|`bz^Sz^c(O_CC$3EM^G404RzGc> z8oNpBG!3OMl3u59rC;WEv3V}jc$>NIpT5YA<876nx>4@ z^%1%ikL)sF(#$I0r`w+_IJh0jh}Nr$iJH&>gD}LDmEBD&-clP@R84xV>XGKuN`qB} zw!Xhp@5p8>Z};Cn|F^(oE9ffEod5*HGT=W|8A$#^l|j$g#MHpq+UdV_8ZJ^5?Dj;_ zg10}ZV>%HxqoHE%+7@|dtk()eg<-7KDxvZxUe@p|xS6ssNAeZEJXs)F{ZUeEizz;0Cv3XzMxWZO5wRB%HQyYk!n0>i> z==5zldn@|oi8$iRJm(Pe3T9lL5O5TcUl#0;H^*=cMb>Vc4X2pOYMIawI zpT$__GopVB*bXU-<*9@F#dXu=>;Se;KrB1OY_E={O=Q zrPJR~SsYvM5jRyBmC*c8$1CQWNv)eiDv@Gv$FiBiT?SoJLI6S8%s-ZaJM;(E%n}J~ zSyf>NsxfzHfb_hItUU1mei#QU(ks6_1&jlIq0Em<5&qpaf(ytPvOlZ(UrXn{P-#qF z%d2kX69<2REBu_~sl;`T${1?II<2+EN@&pl2SG(fngn4?f$@Dp(55kW(`W^s67#9? z{U4Stq&+fwsh6NdXuLbS$gy3EiOFXc);!VG*pGb0)nmUq{MXs1mbr*xxPYIfQnz2_ z9+{RE9NDs-p=^BIvK<502tA$2oNU#(UE_nY@w7~trfP1eJ30+xoAqqbs9tb8_-QXO zAT8|IQUzo(q#YW0cWEO6WV(qXj%!?sOZ#ncx_2{gL8W?o%mi$ z-v|eKEKj13)=z!IK2p+Y@1#1p{`5TTaVYZfA80MOcALSmKgB71N=>m; zar$a{JZ_`0?>l1y%DOc{2V`Io$9=Zrw6vECU!U;LLOD|Of*@JQ3cAKH zl4Tj(V@iUnPPhh3r!kJhV4~*C%R}-2GnPlFI!hngU;7ky;Y}TC_ibjg7AUJXeCyH? zEu6}(SQ2&KwKUx5;ZB_E(g@k0Tt08I9E zL2Dq!gu_q8s`Xb0cZvQvT&8e<*j+gfHM(id*{X zitOIRBh$bk^wiKN@%Q`?_rM;V^ik{!TlO{_{{EZiS|JPQ9t{g{ZQWk-b@`HlUtLp1sxm^^}16^8+iI zu3#3#cc-;$=MaipJ05jg?7E20_|~_BhcF{|CvvMmo zOL+gs%(q^ouca69?(JlkRAEF*2{|Q}FWzp2tps+;)UX}7w;R@z-+-}D0;yE{!)QKh zCvr@P`=+KC*;dv!O7v5_Zb0ge)jz$}|B{!*07vdc|JB}7!2i>0`Rjkq3giF&Ms6et z*kQ9F1z*2Y>jn{t!aEa4}rby$Xl1`Kk;JjcO|Me(ALvKJ2_w0tdHEtbAI4Flx00>oZk1^ArXHSBh?wJb9cB*R%Obq(XI43Gr)ogI{bBI@fi=uwZ92il* zXfgkeLt$dt$wzOTEY5|L^nz>rS&o#1AoFaNnBc3TvVPf8)V;4LsFmKus=7QMS-HA* zHdMyV$Njj38H4Qad+oFXS&2L9S@^3OZeRw0!f&H*8%N^W1u2TNW@sL@%@@le#^<{rlDy=*W~#TdD>-X=l%nt0S8_ z|7z|3iY;w=eLLXf!U2BXvliqs17}Z!SA_^+%xJx>Uq0SQ2B{kz2xSB55<#Rl72Ls|( zJcPpU87HVBwOo=(FCz*#-$zP8d`MEsU#hikBZoyO9IQ4q@9KMx@%VBoD8R%{0}SC9 zsn}(4&Uva@4*vZf!C5FA^4(*zjlFjSOn&Z95JMCNWAT|Giq^Ii0tmNv1i7ccKW&9{ zi;FP_u-T~uq-o%25C>A8H9SRAeM(eR*MSuO^k5sEAyMft?uq3yrpS5>)aEIoDR-g~k^Ks__ zUH^jp8%I5vf5agsGu5!l0(R?&{glnJ-(s;@z*FUnJnptzqB$J(s>$E*puM8S)p^Y zHcd`W&e5PGH+q9Qy;vonXQR8z-PhI8hok4F%V!@h87%x;O(~qC%7wooVm7J@1B_UX zfFw?k=qN8Z{!Kzr#+~5@>C#)cI5Rzmisqb3wU#6-qv9eF5)M@8!5f0@HOkBF+trh; zDZfw8=fgI>&pUXJp6`d-=hyt@UtF&jC_BDRU)T53r-65_mmBmppKrF8*Qd`8OoB!1 zB)?p03sC|R`9j&r>Z>axEuyMmR0)-|S(d+k$hr$f{1k%#($Y>p7!!%)bXAC;W5|%% z1j~ZU(y2DM!Xe`Z_1;obm)tNgMJojq8K(Xf1egPgaLi}T2oxxD8fsByER(5!9D%=^ z0{Sp1CE>L(dN%fi_K7V6b4DC0G;&A>#UMRfdC zn{yZi|SGF^{^{7|L3k55hCiQ!slsMEmF z_m=*+NZ15Im1Q0jtDC7nGi6+|UcL9Sqt2X3l{$J3>Uc{rgKbTMsqe3#So+(NJE?`l zfvxO)cpzi%nyl^pS@Ow)FvbVcC$!XiX!6(B9--oOxUMgHQZDK77+jJAo>_&Vat9*A zjuRw0Q(Km7wv%Z*OPCLwz3r#oJnRW4hA3~Nj3+F>RD@4qUk`o(pEip%!a2=~DjCvP zooLxFx0xhe)JR18APo|}{7Rom0HXp9Q{`<^nsMwwBak=SKc$0-w20SgeeI)nE{c%- zN7~fRmjP#R@v{04*1%;Z{ZZJiaCW!oPwiTH;6j=HIng+H9?25(M`#oBdh}lXDGJ4o zoLU@4Y=P4rc|)kVyZ%bwQXG1c5rLAflw)XWi^(a>@ljcQsc(zDs5`O9j}^Mpz*Sc~ z1M$BTUoKpVY*u_rNr(J-B*_}9q~%Gk+ZedYg7m+%yBO%^iByOC%JtJ?OzF1Jt*$y5 zr`E%;kZJwZmKJ*#v4w8ALEQ?t(dDS3N82%YgmtQ*dou{nng)TviZaRix71B(x`#BoiT-M+{W1jU0ytJPZc=>u!uA&{O!-mNl zq$EV5gRC^&9#jV`5WElkC%~<})G!T_&@G@O%m1PUltORu6l4*z*%G%-g_;THZf4%- z?}rM_binMwBve(Pt}80aPPAKVIN$>%+%r_1GoUSq6EvW6M;=LX5j}XP_4%t%qzGN< zQYRm!A{Qe`BRzTfCLt{%D{PMhWImbGF|?>@#~0c%nUAT`f{rhA?uf6F9w#K1E1A*B z5S8XBJN+Y}`E@91lx>6X#LTW$5N%QKBJ*%fp1nq3Y(LHD_=c z_-^M>7I&gr0C-i%`bN#B!ZVSxLy;9A3@%Y}ghbmY&s5DVvEEk+-Wjwyq=lw`;C}7n z3)TF7z5I9lvf0^v13mAjq}x+i`camGD6@o7i_dKW}a-Rc$5e`F7=-c>H3xtRpLVhT(* zoBfMfLcC&kESif;n1&SV?A($qFxN!RB#v^dty6OWX4z}|k)_YPj{7G1JR4+%EzzG5 zMBSl%(OR~5;UXhc3G2j~i%_(W%~VXLTJVm^3NN6S2>V%YC2oJP7L2!VPjseeUlGhbo1e-^3r!Aj zBpOV52ERmgAV+pNuH0S|EoL?B73bp&9YZl>3XDyw5r0xwqoj;Gr*QEc1r0zy*R&{b z&}noM(u5Wqpd?}^Y$EAUR;CCC+<{cG*zh>Xe)@hf1*y!-u?7x0%9+|CDG|?uI1{Va ztwx1&raBvGNXK#OAd9*IdK_rTgRWKo^>8oq#>bXhv#sOX zE_-du`}KHKSkAmRJqBm{^}LMe%GR=Lv#>M1Oy=}(1EWA-%lO7M*I(sQVJ*?Zo@2;zec^-$%>O_uWzgoN(2*tF zSEguXKDWk-I&kuvW6JXe;~caA&-^W!Ixi4DqYOqXTRjhkkEOXS8zFe7&CDgw)b@S% zLEpu;r~xGKD-`Drf2~a%^*iT6-0lcu1m&L6FG%{R z{_|BXgoU<)E!HAp5gYMygk^jwR6fJz3Vkq`u&P`lM>jScP6$dA)j)lMjFwLx>QECU zbI-b5Q^6Ft6!Vya*7tJ+fZ=S;L*tl8ey($a%HyLCK7kM+C)8sI1DQ8G-3!uN1}&c^ zvCw^#TCRio6ALpx`bSdjvIyObo6LjD_51+%&i2korrdI!Xn~b05zw4MQYoG_vhy)& zMq;9CrCK%e`LUe?hFw=o%)s!O#hTf)n2q#EfEhPGz57b9HpQUnmJ@RrgE?mi`h4}e zvfZe_yT!t4`u!8yR;<0`{9}ja*#Poc;*Q=ERB+|!QY-^R+7oyz{$!7ZsCK(0*b2ZgJ@B?osAjJLLbLFxfEB>$;09$)jn zdkWCQyh<(~dj7i1ISD|5#yivX45Qnmgf%Q zJF8!Hrf{!lQ@b50;@xhuMJMQ^VM%DQZeQ1W7aYTENrCtJX~6BG&w z=iCP)Ql5!(H%uSvOV@uAd=^)}gL+O+W&cfBE^X!5ijsE`9#sL?f>m>cfBzQw5rcWdcvXkz4dR|558%<9MCipkM}1dO&SXCrWE+rOSN3|$3!clVM@WPobVUxO zR#oeNtgR=soBeG^OmA}!L+kof_jDuK&)S~0ToPpq4IZ!`Y*?!<*8Tv{MP~E7jy2Bg zrp@lUfmfk6%hM(%=N?%2g=M-j7e=@VT5^i1^oR8zoevpN?3e-mj(f3b@W^NT^Lz^H z{5T7B+{J+5!Ni6f+(iwp-{SZ@bnL$MbE8N?uTN(##Cw4!c#%6BKPM>aWoOG3#TLI^ z&qeq#T1h~8Fo=4>$EN^0VLI`4LwYDaXxr}N_W>~yrKPR!4;6_GqGf)+_zUF0wXMz| z9467C#0lN+sW6_x3tgW{5>aD{;=gtL3s`qp@UZWH8C_A*%swDqNjsfg(Hs{jq?p*Q z8Z{bQv=2eQs54n{@ExpA*fmwrM3=6gPimZMAOptd`Tq;Mt z*P}z@(xKy@=&&o;aiZ7Y;Ly?Dt&z(1s^ajc$Jx#^0vXI3hg}|i5$eQy8mlrVZv?ju zWCgMSYmoF@N8eywm)|M+f?mFV0f*F{WwdX`R4nEvs2M127Oj+evf0f*gLX1H^qo)h zr@LcM@bg4R$Dv0@JEei+&*jX=jzyPdjnukV7Th{g^G#xii53XCK6`0BEAS@g{s(Jy`I184E@~D{<5hI~ zYb&$}rNo~Vb&`b<0DLIs5*y^7kRq<~3TQW=&2=T^6P?})!#NR?ZDJL>v2c0NQ@zhO z^vY;7&?3dzHf<`9T^=8rixlcbmb&X{0%xGLpY-+Yb3a6)9?B|Wi`?Zeg4y^{4cbak~o}K`H!I>{6~iJe<9wsCQhz) zK&$^oyp0uSZRh!syq?vf?!Z;*gzzG%(B{AZ3Pg*PD!B#GT@EQZ*OQy=wm~nhPT^W% zH<_+xW~Rri9c|+F{(r0xb39oRWe&e`4bt7x-O}A9 zos!bs;7I?*_gU{P;{81PTGt=5W}VME>$+yn+53FY*}Eh%s>WY8Kj7^19P4{|JT0)c zk~yE4HP1mmD7%0nKi(qGD5Kda#u~vI*MK<*r!NGPe<-*KUp(sC?bhDDw&!;LheM6# z76-gaZ9-Yx%q8~+dX!>*{TjEnS~q7tgpk8;KIs~y9M&XQYwNoSTJ3Izx?8ewLW4Q` z*}h~Nj!LYi;I5_MlCerFiY_Cx7aF33 z6x>^k76HBI30U-iJ8rJ?3skoZrcp*07@C$|sq$#qSC! zytcU0cuI9NB>;T4>0dmp3(7)u4Ok~R6e(My1^&rs;3Qrrjsf|BIYDHV|1PQgOQ8lU zdpm3UN8+ZMg4G&3mIt^DfBhA5r7Z?FxI92R5>!(%R$LWWg%;c`l+#}!;tO!50G5GA z?>+D(Z7IZSVwzp+U={<=UU;xBi`%~S$nM?RBIgVUs?eaS;%%GSn8LX+kj}-hw4x#p zJgAMz`a%796y~`v@yZ-an*O3KbZaI=;;fToSc!q6Ql9Alw*0Dl8oOLiV-z5`f+@tn zN0%ei#z<@dRp6Z*s~lw#Rvt+f&Z`{fYkQ-z!4%S#jexK)OP>IIhD4{7xz@@HckRHt zWX_Hp68vnfvVx|P6fPSNmL3w_D4M;CUn(J z40t%1_gKTN9V?l+G#q zH*Vk)Xp*v{qcWqX6ON#|#(@6CeZwoJ=H#K3L-D$_TZC3=BMv+-mi29@R#kC6CUgok zs$fnBP*#mc~&X7I1qyV4WMa1(zj|Hep)Rk%dhD znTk?Zu}~}NYr;S#E`Mkue<-zq8#-%MR1(7Xm*@mm81j6o`Y1T!e$L1Kk{v#%ljqq( zV(%*WK7-6n7HEPbMplff+SwW$dR$`ZSG`!M-RQJPjRR}(vAhC^pEHCC>$qra*lx?L za9&9Y>|Su*^{O>yn_Jp%><@GE zS-=VsIN4OrL8iHY$QIVKl5_7L$AN*@CJfF?g**Y;PtM(onT4aVtINf9H%&(xhx~Ro|u`H+_mdo4Xa>qw>8RXj#n=Y#)*-4qQTvMjc_h6eqk=o z=sag68z+&PLjut#4)qUfx&-~miWsg`!KXFcmS0eNE-G4<+qFe+SX@IIiIG%%7dS6* zL<^bCKe-mpXy(PJ`Mnx4amHmH?pHv3H-cJ1ciKZ{7qm~Cnf+c(oFi;%DBC*B^nQMC zQ)kFJ&eqP`5{d5n-c!Zl&zMj1P&QAjmZ428;exf}$8)W?z_wkAW-;sY*lZT!i}60a z#A`$OPrO;+b|d&5mn9}+gdD#r5dg;F-${cCd&yj=(W%iLY=lLhXPCdrI?ZHJDq#Eg zWY}qVQpdZ|x?D_<+^u|A8(OB`EXnjPRB!LQRqUMj5>1OsEBNHpabXq<|0TYp^@sKY zN&!Jl`f1BUwIQ`5C=%RxBg)RwYR38`#lq(tz?9_7AG5A3B(@6{+c>4X^YO*<(3%-* zJh04{+tP7k`Uz~@RDOao+G}7VvR0}9k)r~WC$V#gxm>x4tbQ^md0`_na;;5fO$w7^ z7+E|3xwoX*n=5t&sz~{A0+Gw3aoJ!3cqf!O0Bx?C|H}i6tIPdj_c!nQcyoD;)U&ub zH*wHuG%rN}?gw7l4thhHmGMpe$rWBiH8P2@%?miV39$h`c?=`rAQIhX&8bsUW|PXB*`WROjgWoTG(Jb2Gda_0+-l z>-~-pswW!R4>%UDdTWqG2wJQdvEI9#>>ln#c|e zF{0IYk-EeJo{#UAay&=7YH}_nz0f}z+mb<9$$-NvbraYDu_M;qH5SZr7~QY!^o8b? z`S(r+< zl{)N%@Hbbww$=h=lpMg<8)I6DtZ8d6tgKm+J1Oq8nMYBZ-Y%bZ4PbZRxL{oPwt@Xf z2Aa~Fs$s8Q4853sMYfX!sR|QYuZ$p;P2#*_?C9z@19+y=JLT_MmqK2gN+sle^;DsT z2X`};nSfyrbqDixoe^=lojKA-ti@4V z%ot1Y-fg~4`scK8B;=M)G-)XCOL4c|7%cMgNs-}3UT~Hy^#twqb=wMDZikO~Lgv)} zxNw3kU%Ig%`-0tezgmV(FK4l(?gCF7N`VEMTntjTdanj-I|q zjU6W;>GKt%5>^RL0Ra^GZzJ$jz*lbyuvo06I!xMsMyU^Cr1z<2;Dlu||7aGTP3UO9 zcMA?>h^#`3aiFGer}q=3q3~|8r6Kl(nQ!k%#*@*leq zim9`|o0B0&m1Ll)8U|u<9w?NBS_=V%RZ|<-Sl1^gI=IPkbM_*p^{{K!KI0?^IdON| z;jZ52RqdE>N4uqI-`ZZDJV}=maN}&QOKM49IfWf&U|f^ zgk>p#a9+*S0%P%lH#J6SVJMIrLs3h(65b~A33|VhO68}B9UKBmCI64o48>MO@b7}; z$VC~5K~qJk4L5JHUf_pX+b=J&Rq5nRaDhIuzT)V68>!oJIJr%X8g?qgBA)iucs-R> zF)IZb2Tl?-uQbU)&-VsdmX4EH;oAc^f{=OHr2jWF~_A8GZiInSdB=&CC& z=8Ou=Va^PEfbA1OYsKTvP)l9?;!Ol)pZZfHZ>B;(7AQN6L~@<{5$p<2d?gGj@tyFn zu!HVdI*4VO5p(sW(+z6|U=fk2_x_a8>k7VUDLuKHZVM%>EAt)x#PKy}uB+?ksc5>_ z*YZM~p}atwL&gLu>$#};GDq!uL~Ad7&5>HX1Gu}{ZGUzRB}-5N+935f%F&&~XoFN5 z_)98*z*6I_2Y-?4l0XGTqRmU-jd$vdj1@|)3?6}Ae`}955dce3woWFHDORM^-sxPc ztbX6Ai_Hl0O%Z!uTHnyR;Z|X;=jP43 zP7!k1ctI&af6_6)F>Q|M%$VSD8NsNYOf5T|+Bd3kGv5 zeKQ7Qee-|1`6XT>T)Wq%`sk8Ydo=!(qgeR8eeFrV7rOrjwNGC;%=3?$laa(hDH(?T zF$FI!58C4}^`AvB5_5v)C-x4OrY?$=TN~UiS2tJ2IT-hB&#aw+9JS#NAPwgVj&R4a z{S(0c#-Jmfr=v5(mjh2bg3A~Y5Lt2!8RI%;Fi4PbrtK3tPVo@AQ52e~9~{RQV$5n*1IoNJ zHPiW&HuB9U#GSO@?8?+OHkBy3mom>_q6ZYxT3l<2Kk~(FNthz3(@SYaSDQguICQmz zZ2$`En4MpQFc<_69LE8mYIUn+6=66foopB*{31X&`a|@KS>-O|YYcO&Sg&4SJ%`2h z8ZiA@HQ6!thK)P4mY#mPI>h`N?pa#QJfB|@G}UTl$s%mc`44#>37LorMBhtkwdQJn z83tl(0y>_74ui?pYDB;v<78FvP%4g1RLY!APcdps)2bU@*zC|yjPUu4(gsnR^x9rP zAA~+jA>=rUo~-CgW^>%1!kn!#%03MyfO{KaBbOBIFeJN!FR{{Dk&iZBV9IH&lxT@{>R}Rp0jb;T==+;%=+pZql7suemyF9N z@6$UF(-+-rWj=Tw?+%U#+;2|BGu|=X{oI!u;rBR^@woUlGjc|L+j&v7ocijcYjD^x ze7&RbwQ5&|82jwF7cv@G_?4K81)fHghR&uQ26yY5V!&+Zd{(h^bjLKE0riHa9zA#b zdkK_x9279$>@dy|c;ETjyIN`&>wlkK5T;t06@0hgB#t7+92lyZj6>wMhF_tDwd!6I zIqm;eF%HdJF^kSgo(^mR`h;4bQb8xYJUUfc?rY$m%A@~jfNPcl$V7e+XF1%XG8`px z!tG%|t+16TH2VsGm`4aVtf(%DD8BtucE3Hef;?ywSDT4uw$eU!_&F>Jww-jyw`ie} zgp?ZjDp7bHB}y_U-%aZt+_lka6KC2&A-QAZ#gN8li*eTyrWpkw8z1XoTN&`Ws(Mrl zb1@DwmN0-Dpr3$7YF;A4d_e(>bzc~~Esr38W%r`Mv}3{0mk?`&zDSz?!7xE7%dQh_ znx1Xi!yi!-?jwIKGOeZ3Vj?E3D(YjLQ<7!+&R;mb%Fzlb*@%>y-1Zwg7>ORS!_Pw% zSWwyad2REfPC0K#=0~5X?iUyA24C36uh}`Yf;x%-% ziiYjoZ6dmX>G)k|&dfT)Tdx&v^Nf~H@s>Z4rnk=8-L~VA-tGywUoPIQgdauvAia_< z?%_>P;A|>!?<}>|3bqIp^~p))_NO-@8D{a98mt$0HHU~6ct9WS$b{&^-LK;%C_bi= z_w*KO5wGwn7JNtoiAiX z*Gd>BW)9U$6au{FbbFprjhHC$v~RLok2C|y7L;(riMd*NU{9Hmk@CvNQG?PgCPkiF zu>m?Tzcg}m?Bcs}01d)>AX6?vx>*4yW9nx;vBH9PD(3L7lQKcy6N-S9v#U681z!sk z%hwkU`z5P4M>9e+VoWUaJF_#)p*0#ly?Bb0w=!2BYD2-L;+W2u;EHKHqyDBsX8SFQ z^L_}M5gi2)z)1E(CH*s7`oFJ>+zyRO+hc>?4;fpxUYf_oitc$f>+YK z?!*wshIK-^n05b*kZCYlvbOFfrT?WKSLo~aHXtJ9*Va>!mA%x@x$-wjK)&f8T=One z@O`MfG0Vt!q}K-E}Jy0+)Z37?zDnlu`|La7iE zMPCz<;ktZRHN_6n7&#fhXL?+E9)xVA#RRK^)MC_IBx-ZCIoIeaDd|=1H}xh+Uok&2 zHFssaXtp1qTuwL4>$-i68EAt)&TANqmLOwNp?ZsNOo$whEl1d>Qi`mMbZACsJEK-; z@%9sD1ZBua8g~MmK4Z*mGB|J3rqoJURf7ox;QOW3EtCOum=Ii~&)!k{FnWlKV-=?o8_|bVNK-RuO(IFpB3O{*RWSf@8G0zUz$6q!31?%yJTgWs z9bZ1>kkRI3fpl_M;4P%15BL~`0B!o;idWZTiI zt);s`p19`iG#2yUh!Dcdf1Kkul6bKO$^e}&UG|({EP}opNkc+E^Rvozoa|QvjwO)n^ z3JL+@)BI_6hSuh~zkRRAjUQHUM*O3(Fa&952(r_)1ODR@J#PK5p7O6M&%aIZWaq8j6u!kp|ex+vpZ3u7wg8gfv*2lz$$25MOkos+7 z#{Zr8uji#6qaSXy|MO8An*WXdms1~)fe$w+{|Y#M+pXnaz(@P_AG02+)PKGfY}>zB zk86QHhCNjNehJ&Z?St3fu*Wj@W7hl-v-?YQWz=x|^fBr}6{r&>}i&pfQ z_b?>DcSb5NOqu>M!jCocsLNfZtR Qg$22^AdzoD@~=<-2kgQSmjD0& diff --git a/test-implementation/tfplan b/test-implementation/tfplan deleted file mode 100644 index 2c6cbc62ce47ae59069d4e9d6b8d49a1187af92b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47796 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 YdufD6^HmraoX11wQKR>^?&quj0gy9*761SM From df4ca10c0c7bb9dedb6702b1159dc14df9a6eb0f Mon Sep 17 00:00:00 2001 From: samuelarogbonlo Date: Thu, 16 Jan 2025 11:17:29 +0100 Subject: [PATCH 4/5] feat: add custom metrics writer role to autogen templates Signed-off-by: samuelarogbonlo --- autogen/main/sa.tf.tmpl | 2 +- autogen/main/variables.tf.tmpl | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/autogen/main/sa.tf.tmpl b/autogen/main/sa.tf.tmpl index bf1beb8f69..a43d31957d 100644 --- a/autogen/main/sa.tf.tmpl +++ b/autogen/main/sa.tf.tmpl @@ -56,7 +56,7 @@ resource "google_project_iam_member" "cluster_service_account_node_service_accou resource "google_project_iam_member" "cluster_service_account_metric_writer" { count = var.create_service_account ? 1 : 0 project = google_service_account.cluster_service_account[0].project - role = "roles/monitoring.metricWriter" + role = var.monitoring_metric_writer_role member = google_service_account.cluster_service_account[0].member } diff --git a/autogen/main/variables.tf.tmpl b/autogen/main/variables.tf.tmpl index 888466a768..9a2462408a 100644 --- a/autogen/main/variables.tf.tmpl +++ b/autogen/main/variables.tf.tmpl @@ -1032,3 +1032,13 @@ variable "logging_variant" { default = null } {% endif %} + +variable "monitoring_metric_writer_role" { + description = "The monitoring metrics writer role to assign to the GKE node service account" + type = string + default = "roles/monitoring.metricWriter" + validation { + condition = can(regex("^(roles/[a-zA-Z0-9_.]+|projects/[a-zA-Z0-9-]+/roles/[a-zA-Z0-9_.]+)$", var.monitoring_metric_writer_role)) + error_message = "The monitoring_metric_writer_role must be either a predefined role (roles/*) or a custom role (projects/*/roles/*)." + } +} From bf60dc955d59d566569fbb184ce001c7bc8bb13d Mon Sep 17 00:00:00 2001 From: samuelarogbonlo Date: Thu, 16 Jan 2025 20:09:01 +0100 Subject: [PATCH 5/5] chore: regenerate modules from templates Generated module variants and documentation using make build. Updates include custom metrics writer role changes across all variants. Signed-off-by: samuelarogbonlo --- README.md | 1 + modules/beta-autopilot-private-cluster/README.md | 1 + modules/beta-autopilot-private-cluster/sa.tf | 2 +- modules/beta-autopilot-private-cluster/variables.tf | 10 ++++++++++ modules/beta-autopilot-public-cluster/README.md | 1 + modules/beta-autopilot-public-cluster/sa.tf | 2 +- modules/beta-autopilot-public-cluster/variables.tf | 10 ++++++++++ modules/beta-private-cluster-update-variant/README.md | 1 + modules/beta-private-cluster-update-variant/sa.tf | 2 +- .../beta-private-cluster-update-variant/variables.tf | 10 ++++++++++ modules/beta-private-cluster/README.md | 1 + modules/beta-private-cluster/variables.tf | 4 ++++ modules/beta-public-cluster-update-variant/README.md | 1 + modules/beta-public-cluster-update-variant/sa.tf | 2 +- .../beta-public-cluster-update-variant/variables.tf | 10 ++++++++++ modules/beta-public-cluster/README.md | 1 + modules/beta-public-cluster/sa.tf | 2 +- modules/beta-public-cluster/variables.tf | 10 ++++++++++ modules/private-cluster-update-variant/README.md | 1 + modules/private-cluster-update-variant/sa.tf | 2 +- modules/private-cluster-update-variant/variables.tf | 10 ++++++++++ modules/private-cluster/README.md | 1 + modules/private-cluster/sa.tf | 2 +- modules/private-cluster/variables.tf | 10 ++++++++++ sa.tf | 2 +- variables.tf | 10 ++++++++++ 26 files changed, 101 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 14097a8e46..fa1b8179b2 100644 --- a/README.md +++ b/README.md @@ -212,6 +212,7 @@ Then perform the following commands on the root folder: | monitoring\_enable\_observability\_metrics | Whether or not the advanced datapath metrics are enabled. | `bool` | `false` | no | | monitoring\_enable\_observability\_relay | Whether or not the advanced datapath relay is enabled. | `bool` | `false` | no | | monitoring\_enabled\_components | List of services to monitor: SYSTEM\_COMPONENTS, APISERVER, SCHEDULER, CONTROLLER\_MANAGER, STORAGE, HPA, POD, DAEMONSET, DEPLOYMENT, STATEFULSET, KUBELET, CADVISOR and DCGM. In beta provider, WORKLOADS is supported on top of those 12 values. (WORKLOADS is deprecated and removed in GKE 1.24.) KUBELET and CADVISOR are only supported in GKE 1.29.3-gke.1093000 and above. Empty list is default GKE configuration. | `list(string)` | `[]` | no | +| monitoring\_metric\_writer\_role | The monitoring metrics writer role to assign to the GKE node service account | `string` | `"roles/monitoring.metricWriter"` | no | | monitoring\_service | The monitoring service that the cluster should write metrics to. Automatically send metrics from pods in the cluster to the Google Cloud Monitoring API. VM metrics will be collected by Google Compute Engine regardless of this setting Available options include monitoring.googleapis.com, monitoring.googleapis.com/kubernetes (beta) and none | `string` | `"monitoring.googleapis.com/kubernetes"` | no | | name | The name of the cluster (required) | `string` | n/a | yes | | network | The VPC network to host the cluster in (required) | `string` | n/a | yes | diff --git a/modules/beta-autopilot-private-cluster/README.md b/modules/beta-autopilot-private-cluster/README.md index acd8f48d86..962ab2dd8a 100644 --- a/modules/beta-autopilot-private-cluster/README.md +++ b/modules/beta-autopilot-private-cluster/README.md @@ -129,6 +129,7 @@ Then perform the following commands on the root folder: | master\_global\_access\_enabled | Whether the cluster master is accessible globally (from any region) or only within the same region as the private endpoint. | `bool` | `true` | no | | master\_ipv4\_cidr\_block | (Optional) The IP range in CIDR notation to use for the hosted master network. | `string` | `null` | no | | monitoring\_enabled\_components | List of services to monitor: SYSTEM\_COMPONENTS, APISERVER, SCHEDULER, CONTROLLER\_MANAGER, STORAGE, HPA, POD, DAEMONSET, DEPLOYMENT, STATEFULSET, KUBELET, CADVISOR and DCGM. In beta provider, WORKLOADS is supported on top of those 12 values. (WORKLOADS is deprecated and removed in GKE 1.24.) KUBELET and CADVISOR are only supported in GKE 1.29.3-gke.1093000 and above. Empty list is default GKE configuration. | `list(string)` | `[]` | no | +| monitoring\_metric\_writer\_role | The monitoring metrics writer role to assign to the GKE node service account | `string` | `"roles/monitoring.metricWriter"` | no | | name | The name of the cluster (required) | `string` | n/a | yes | | network | The VPC network to host the cluster in (required) | `string` | n/a | yes | | network\_project\_id | The project ID of the shared VPC's host (for shared vpc support) | `string` | `""` | no | diff --git a/modules/beta-autopilot-private-cluster/sa.tf b/modules/beta-autopilot-private-cluster/sa.tf index 8082a60312..9e932179ff 100644 --- a/modules/beta-autopilot-private-cluster/sa.tf +++ b/modules/beta-autopilot-private-cluster/sa.tf @@ -56,7 +56,7 @@ resource "google_project_iam_member" "cluster_service_account_node_service_accou resource "google_project_iam_member" "cluster_service_account_metric_writer" { count = var.create_service_account ? 1 : 0 project = google_service_account.cluster_service_account[0].project - role = "roles/monitoring.metricWriter" + role = var.monitoring_metric_writer_role member = google_service_account.cluster_service_account[0].member } diff --git a/modules/beta-autopilot-private-cluster/variables.tf b/modules/beta-autopilot-private-cluster/variables.tf index 1673498087..bc3957f3a3 100644 --- a/modules/beta-autopilot-private-cluster/variables.tf +++ b/modules/beta-autopilot-private-cluster/variables.tf @@ -597,3 +597,13 @@ variable "logging_variant" { type = string default = null } + +variable "monitoring_metric_writer_role" { + description = "The monitoring metrics writer role to assign to the GKE node service account" + type = string + default = "roles/monitoring.metricWriter" + validation { + condition = can(regex("^(roles/[a-zA-Z0-9_.]+|projects/[a-zA-Z0-9-]+/roles/[a-zA-Z0-9_.]+)$", var.monitoring_metric_writer_role)) + error_message = "The monitoring_metric_writer_role must be either a predefined role (roles/*) or a custom role (projects/*/roles/*)." + } +} diff --git a/modules/beta-autopilot-public-cluster/README.md b/modules/beta-autopilot-public-cluster/README.md index d2bc7c0806..7d48084d7d 100644 --- a/modules/beta-autopilot-public-cluster/README.md +++ b/modules/beta-autopilot-public-cluster/README.md @@ -119,6 +119,7 @@ Then perform the following commands on the root folder: | maintenance\_start\_time | Time window specified for daily or recurring maintenance operations in RFC3339 format | `string` | `"05:00"` | no | | master\_authorized\_networks | List of master authorized networks. If none are provided, disallow external access (except the cluster node IPs, which GKE automatically whitelists). | `list(object({ cidr_block = string, display_name = string }))` | `[]` | no | | monitoring\_enabled\_components | List of services to monitor: SYSTEM\_COMPONENTS, APISERVER, SCHEDULER, CONTROLLER\_MANAGER, STORAGE, HPA, POD, DAEMONSET, DEPLOYMENT, STATEFULSET, KUBELET, CADVISOR and DCGM. In beta provider, WORKLOADS is supported on top of those 12 values. (WORKLOADS is deprecated and removed in GKE 1.24.) KUBELET and CADVISOR are only supported in GKE 1.29.3-gke.1093000 and above. Empty list is default GKE configuration. | `list(string)` | `[]` | no | +| monitoring\_metric\_writer\_role | The monitoring metrics writer role to assign to the GKE node service account | `string` | `"roles/monitoring.metricWriter"` | no | | name | The name of the cluster (required) | `string` | n/a | yes | | network | The VPC network to host the cluster in (required) | `string` | n/a | yes | | network\_project\_id | The project ID of the shared VPC's host (for shared vpc support) | `string` | `""` | no | diff --git a/modules/beta-autopilot-public-cluster/sa.tf b/modules/beta-autopilot-public-cluster/sa.tf index 8082a60312..9e932179ff 100644 --- a/modules/beta-autopilot-public-cluster/sa.tf +++ b/modules/beta-autopilot-public-cluster/sa.tf @@ -56,7 +56,7 @@ resource "google_project_iam_member" "cluster_service_account_node_service_accou resource "google_project_iam_member" "cluster_service_account_metric_writer" { count = var.create_service_account ? 1 : 0 project = google_service_account.cluster_service_account[0].project - role = "roles/monitoring.metricWriter" + role = var.monitoring_metric_writer_role member = google_service_account.cluster_service_account[0].member } diff --git a/modules/beta-autopilot-public-cluster/variables.tf b/modules/beta-autopilot-public-cluster/variables.tf index ed82dc3f09..e50ac78ee1 100644 --- a/modules/beta-autopilot-public-cluster/variables.tf +++ b/modules/beta-autopilot-public-cluster/variables.tf @@ -561,3 +561,13 @@ variable "logging_variant" { type = string default = null } + +variable "monitoring_metric_writer_role" { + description = "The monitoring metrics writer role to assign to the GKE node service account" + type = string + default = "roles/monitoring.metricWriter" + validation { + condition = can(regex("^(roles/[a-zA-Z0-9_.]+|projects/[a-zA-Z0-9-]+/roles/[a-zA-Z0-9_.]+)$", var.monitoring_metric_writer_role)) + error_message = "The monitoring_metric_writer_role must be either a predefined role (roles/*) or a custom role (projects/*/roles/*)." + } +} diff --git a/modules/beta-private-cluster-update-variant/README.md b/modules/beta-private-cluster-update-variant/README.md index ced7bfc6d5..d2fef2078f 100644 --- a/modules/beta-private-cluster-update-variant/README.md +++ b/modules/beta-private-cluster-update-variant/README.md @@ -255,6 +255,7 @@ Then perform the following commands on the root folder: | monitoring\_enable\_observability\_metrics | Whether or not the advanced datapath metrics are enabled. | `bool` | `false` | no | | monitoring\_enable\_observability\_relay | Whether or not the advanced datapath relay is enabled. | `bool` | `false` | no | | monitoring\_enabled\_components | List of services to monitor: SYSTEM\_COMPONENTS, APISERVER, SCHEDULER, CONTROLLER\_MANAGER, STORAGE, HPA, POD, DAEMONSET, DEPLOYMENT, STATEFULSET, KUBELET, CADVISOR and DCGM. In beta provider, WORKLOADS is supported on top of those 12 values. (WORKLOADS is deprecated and removed in GKE 1.24.) KUBELET and CADVISOR are only supported in GKE 1.29.3-gke.1093000 and above. Empty list is default GKE configuration. | `list(string)` | `[]` | no | +| monitoring\_metric\_writer\_role | The monitoring metrics writer role to assign to the GKE node service account | `string` | `"roles/monitoring.metricWriter"` | no | | monitoring\_service | The monitoring service that the cluster should write metrics to. Automatically send metrics from pods in the cluster to the Google Cloud Monitoring API. VM metrics will be collected by Google Compute Engine regardless of this setting Available options include monitoring.googleapis.com, monitoring.googleapis.com/kubernetes (beta) and none | `string` | `"monitoring.googleapis.com/kubernetes"` | no | | name | The name of the cluster (required) | `string` | n/a | yes | | network | The VPC network to host the cluster in (required) | `string` | n/a | yes | diff --git a/modules/beta-private-cluster-update-variant/sa.tf b/modules/beta-private-cluster-update-variant/sa.tf index 8082a60312..9e932179ff 100644 --- a/modules/beta-private-cluster-update-variant/sa.tf +++ b/modules/beta-private-cluster-update-variant/sa.tf @@ -56,7 +56,7 @@ resource "google_project_iam_member" "cluster_service_account_node_service_accou resource "google_project_iam_member" "cluster_service_account_metric_writer" { count = var.create_service_account ? 1 : 0 project = google_service_account.cluster_service_account[0].project - role = "roles/monitoring.metricWriter" + role = var.monitoring_metric_writer_role member = google_service_account.cluster_service_account[0].member } diff --git a/modules/beta-private-cluster-update-variant/variables.tf b/modules/beta-private-cluster-update-variant/variables.tf index 160af23f15..34e129e27f 100644 --- a/modules/beta-private-cluster-update-variant/variables.tf +++ b/modules/beta-private-cluster-update-variant/variables.tf @@ -968,3 +968,13 @@ variable "fleet_project_grant_service_agent" { type = bool default = false } + +variable "monitoring_metric_writer_role" { + description = "The monitoring metrics writer role to assign to the GKE node service account" + type = string + default = "roles/monitoring.metricWriter" + validation { + condition = can(regex("^(roles/[a-zA-Z0-9_.]+|projects/[a-zA-Z0-9-]+/roles/[a-zA-Z0-9_.]+)$", var.monitoring_metric_writer_role)) + error_message = "The monitoring_metric_writer_role must be either a predefined role (roles/*) or a custom role (projects/*/roles/*)." + } +} diff --git a/modules/beta-private-cluster/README.md b/modules/beta-private-cluster/README.md index f281dfb5b9..540a4da441 100644 --- a/modules/beta-private-cluster/README.md +++ b/modules/beta-private-cluster/README.md @@ -233,6 +233,7 @@ Then perform the following commands on the root folder: | monitoring\_enable\_observability\_metrics | Whether or not the advanced datapath metrics are enabled. | `bool` | `false` | no | | monitoring\_enable\_observability\_relay | Whether or not the advanced datapath relay is enabled. | `bool` | `false` | no | | monitoring\_enabled\_components | List of services to monitor: SYSTEM\_COMPONENTS, APISERVER, SCHEDULER, CONTROLLER\_MANAGER, STORAGE, HPA, POD, DAEMONSET, DEPLOYMENT, STATEFULSET, KUBELET, CADVISOR and DCGM. In beta provider, WORKLOADS is supported on top of those 12 values. (WORKLOADS is deprecated and removed in GKE 1.24.) KUBELET and CADVISOR are only supported in GKE 1.29.3-gke.1093000 and above. Empty list is default GKE configuration. | `list(string)` | `[]` | no | +| monitoring\_metric\_writer\_role | The monitoring metrics writer role to assign to the GKE node service account | `string` | `"roles/monitoring.metricWriter"` | no | | monitoring\_service | The monitoring service that the cluster should write metrics to. Automatically send metrics from pods in the cluster to the Google Cloud Monitoring API. VM metrics will be collected by Google Compute Engine regardless of this setting Available options include monitoring.googleapis.com, monitoring.googleapis.com/kubernetes (beta) and none | `string` | `"monitoring.googleapis.com/kubernetes"` | no | | name | The name of the cluster (required) | `string` | n/a | yes | | network | The VPC network to host the cluster in (required) | `string` | n/a | yes | diff --git a/modules/beta-private-cluster/variables.tf b/modules/beta-private-cluster/variables.tf index aaa5f4613c..34e129e27f 100644 --- a/modules/beta-private-cluster/variables.tf +++ b/modules/beta-private-cluster/variables.tf @@ -973,4 +973,8 @@ variable "monitoring_metric_writer_role" { description = "The monitoring metrics writer role to assign to the GKE node service account" type = string default = "roles/monitoring.metricWriter" + validation { + condition = can(regex("^(roles/[a-zA-Z0-9_.]+|projects/[a-zA-Z0-9-]+/roles/[a-zA-Z0-9_.]+)$", var.monitoring_metric_writer_role)) + error_message = "The monitoring_metric_writer_role must be either a predefined role (roles/*) or a custom role (projects/*/roles/*)." + } } diff --git a/modules/beta-public-cluster-update-variant/README.md b/modules/beta-public-cluster-update-variant/README.md index a9462dee5b..360d08ebf8 100644 --- a/modules/beta-public-cluster-update-variant/README.md +++ b/modules/beta-public-cluster-update-variant/README.md @@ -245,6 +245,7 @@ Then perform the following commands on the root folder: | monitoring\_enable\_observability\_metrics | Whether or not the advanced datapath metrics are enabled. | `bool` | `false` | no | | monitoring\_enable\_observability\_relay | Whether or not the advanced datapath relay is enabled. | `bool` | `false` | no | | monitoring\_enabled\_components | List of services to monitor: SYSTEM\_COMPONENTS, APISERVER, SCHEDULER, CONTROLLER\_MANAGER, STORAGE, HPA, POD, DAEMONSET, DEPLOYMENT, STATEFULSET, KUBELET, CADVISOR and DCGM. In beta provider, WORKLOADS is supported on top of those 12 values. (WORKLOADS is deprecated and removed in GKE 1.24.) KUBELET and CADVISOR are only supported in GKE 1.29.3-gke.1093000 and above. Empty list is default GKE configuration. | `list(string)` | `[]` | no | +| monitoring\_metric\_writer\_role | The monitoring metrics writer role to assign to the GKE node service account | `string` | `"roles/monitoring.metricWriter"` | no | | monitoring\_service | The monitoring service that the cluster should write metrics to. Automatically send metrics from pods in the cluster to the Google Cloud Monitoring API. VM metrics will be collected by Google Compute Engine regardless of this setting Available options include monitoring.googleapis.com, monitoring.googleapis.com/kubernetes (beta) and none | `string` | `"monitoring.googleapis.com/kubernetes"` | no | | name | The name of the cluster (required) | `string` | n/a | yes | | network | The VPC network to host the cluster in (required) | `string` | n/a | yes | diff --git a/modules/beta-public-cluster-update-variant/sa.tf b/modules/beta-public-cluster-update-variant/sa.tf index 8082a60312..9e932179ff 100644 --- a/modules/beta-public-cluster-update-variant/sa.tf +++ b/modules/beta-public-cluster-update-variant/sa.tf @@ -56,7 +56,7 @@ resource "google_project_iam_member" "cluster_service_account_node_service_accou resource "google_project_iam_member" "cluster_service_account_metric_writer" { count = var.create_service_account ? 1 : 0 project = google_service_account.cluster_service_account[0].project - role = "roles/monitoring.metricWriter" + role = var.monitoring_metric_writer_role member = google_service_account.cluster_service_account[0].member } diff --git a/modules/beta-public-cluster-update-variant/variables.tf b/modules/beta-public-cluster-update-variant/variables.tf index 540e0fbad3..122e24ba83 100644 --- a/modules/beta-public-cluster-update-variant/variables.tf +++ b/modules/beta-public-cluster-update-variant/variables.tf @@ -932,3 +932,13 @@ variable "fleet_project_grant_service_agent" { type = bool default = false } + +variable "monitoring_metric_writer_role" { + description = "The monitoring metrics writer role to assign to the GKE node service account" + type = string + default = "roles/monitoring.metricWriter" + validation { + condition = can(regex("^(roles/[a-zA-Z0-9_.]+|projects/[a-zA-Z0-9-]+/roles/[a-zA-Z0-9_.]+)$", var.monitoring_metric_writer_role)) + error_message = "The monitoring_metric_writer_role must be either a predefined role (roles/*) or a custom role (projects/*/roles/*)." + } +} diff --git a/modules/beta-public-cluster/README.md b/modules/beta-public-cluster/README.md index dbbf75fd13..d54c292318 100644 --- a/modules/beta-public-cluster/README.md +++ b/modules/beta-public-cluster/README.md @@ -223,6 +223,7 @@ Then perform the following commands on the root folder: | monitoring\_enable\_observability\_metrics | Whether or not the advanced datapath metrics are enabled. | `bool` | `false` | no | | monitoring\_enable\_observability\_relay | Whether or not the advanced datapath relay is enabled. | `bool` | `false` | no | | monitoring\_enabled\_components | List of services to monitor: SYSTEM\_COMPONENTS, APISERVER, SCHEDULER, CONTROLLER\_MANAGER, STORAGE, HPA, POD, DAEMONSET, DEPLOYMENT, STATEFULSET, KUBELET, CADVISOR and DCGM. In beta provider, WORKLOADS is supported on top of those 12 values. (WORKLOADS is deprecated and removed in GKE 1.24.) KUBELET and CADVISOR are only supported in GKE 1.29.3-gke.1093000 and above. Empty list is default GKE configuration. | `list(string)` | `[]` | no | +| monitoring\_metric\_writer\_role | The monitoring metrics writer role to assign to the GKE node service account | `string` | `"roles/monitoring.metricWriter"` | no | | monitoring\_service | The monitoring service that the cluster should write metrics to. Automatically send metrics from pods in the cluster to the Google Cloud Monitoring API. VM metrics will be collected by Google Compute Engine regardless of this setting Available options include monitoring.googleapis.com, monitoring.googleapis.com/kubernetes (beta) and none | `string` | `"monitoring.googleapis.com/kubernetes"` | no | | name | The name of the cluster (required) | `string` | n/a | yes | | network | The VPC network to host the cluster in (required) | `string` | n/a | yes | diff --git a/modules/beta-public-cluster/sa.tf b/modules/beta-public-cluster/sa.tf index 8082a60312..9e932179ff 100644 --- a/modules/beta-public-cluster/sa.tf +++ b/modules/beta-public-cluster/sa.tf @@ -56,7 +56,7 @@ resource "google_project_iam_member" "cluster_service_account_node_service_accou resource "google_project_iam_member" "cluster_service_account_metric_writer" { count = var.create_service_account ? 1 : 0 project = google_service_account.cluster_service_account[0].project - role = "roles/monitoring.metricWriter" + role = var.monitoring_metric_writer_role member = google_service_account.cluster_service_account[0].member } diff --git a/modules/beta-public-cluster/variables.tf b/modules/beta-public-cluster/variables.tf index 540e0fbad3..122e24ba83 100644 --- a/modules/beta-public-cluster/variables.tf +++ b/modules/beta-public-cluster/variables.tf @@ -932,3 +932,13 @@ variable "fleet_project_grant_service_agent" { type = bool default = false } + +variable "monitoring_metric_writer_role" { + description = "The monitoring metrics writer role to assign to the GKE node service account" + type = string + default = "roles/monitoring.metricWriter" + validation { + condition = can(regex("^(roles/[a-zA-Z0-9_.]+|projects/[a-zA-Z0-9-]+/roles/[a-zA-Z0-9_.]+)$", var.monitoring_metric_writer_role)) + error_message = "The monitoring_metric_writer_role must be either a predefined role (roles/*) or a custom role (projects/*/roles/*)." + } +} diff --git a/modules/private-cluster-update-variant/README.md b/modules/private-cluster-update-variant/README.md index 8f36ed9ec3..36807f549b 100644 --- a/modules/private-cluster-update-variant/README.md +++ b/modules/private-cluster-update-variant/README.md @@ -244,6 +244,7 @@ Then perform the following commands on the root folder: | monitoring\_enable\_observability\_metrics | Whether or not the advanced datapath metrics are enabled. | `bool` | `false` | no | | monitoring\_enable\_observability\_relay | Whether or not the advanced datapath relay is enabled. | `bool` | `false` | no | | monitoring\_enabled\_components | List of services to monitor: SYSTEM\_COMPONENTS, APISERVER, SCHEDULER, CONTROLLER\_MANAGER, STORAGE, HPA, POD, DAEMONSET, DEPLOYMENT, STATEFULSET, KUBELET, CADVISOR and DCGM. In beta provider, WORKLOADS is supported on top of those 12 values. (WORKLOADS is deprecated and removed in GKE 1.24.) KUBELET and CADVISOR are only supported in GKE 1.29.3-gke.1093000 and above. Empty list is default GKE configuration. | `list(string)` | `[]` | no | +| monitoring\_metric\_writer\_role | The monitoring metrics writer role to assign to the GKE node service account | `string` | `"roles/monitoring.metricWriter"` | no | | monitoring\_service | The monitoring service that the cluster should write metrics to. Automatically send metrics from pods in the cluster to the Google Cloud Monitoring API. VM metrics will be collected by Google Compute Engine regardless of this setting Available options include monitoring.googleapis.com, monitoring.googleapis.com/kubernetes (beta) and none | `string` | `"monitoring.googleapis.com/kubernetes"` | no | | name | The name of the cluster (required) | `string` | n/a | yes | | network | The VPC network to host the cluster in (required) | `string` | n/a | yes | diff --git a/modules/private-cluster-update-variant/sa.tf b/modules/private-cluster-update-variant/sa.tf index a8923ce1db..7002dcce9f 100644 --- a/modules/private-cluster-update-variant/sa.tf +++ b/modules/private-cluster-update-variant/sa.tf @@ -56,7 +56,7 @@ resource "google_project_iam_member" "cluster_service_account_node_service_accou resource "google_project_iam_member" "cluster_service_account_metric_writer" { count = var.create_service_account ? 1 : 0 project = google_service_account.cluster_service_account[0].project - role = "roles/monitoring.metricWriter" + role = var.monitoring_metric_writer_role member = google_service_account.cluster_service_account[0].member } diff --git a/modules/private-cluster-update-variant/variables.tf b/modules/private-cluster-update-variant/variables.tf index c691a887ac..56a5f35b85 100644 --- a/modules/private-cluster-update-variant/variables.tf +++ b/modules/private-cluster-update-variant/variables.tf @@ -902,3 +902,13 @@ variable "fleet_project" { type = string default = null } + +variable "monitoring_metric_writer_role" { + description = "The monitoring metrics writer role to assign to the GKE node service account" + type = string + default = "roles/monitoring.metricWriter" + validation { + condition = can(regex("^(roles/[a-zA-Z0-9_.]+|projects/[a-zA-Z0-9-]+/roles/[a-zA-Z0-9_.]+)$", var.monitoring_metric_writer_role)) + error_message = "The monitoring_metric_writer_role must be either a predefined role (roles/*) or a custom role (projects/*/roles/*)." + } +} diff --git a/modules/private-cluster/README.md b/modules/private-cluster/README.md index 131f07aeac..88048498dc 100644 --- a/modules/private-cluster/README.md +++ b/modules/private-cluster/README.md @@ -222,6 +222,7 @@ Then perform the following commands on the root folder: | monitoring\_enable\_observability\_metrics | Whether or not the advanced datapath metrics are enabled. | `bool` | `false` | no | | monitoring\_enable\_observability\_relay | Whether or not the advanced datapath relay is enabled. | `bool` | `false` | no | | monitoring\_enabled\_components | List of services to monitor: SYSTEM\_COMPONENTS, APISERVER, SCHEDULER, CONTROLLER\_MANAGER, STORAGE, HPA, POD, DAEMONSET, DEPLOYMENT, STATEFULSET, KUBELET, CADVISOR and DCGM. In beta provider, WORKLOADS is supported on top of those 12 values. (WORKLOADS is deprecated and removed in GKE 1.24.) KUBELET and CADVISOR are only supported in GKE 1.29.3-gke.1093000 and above. Empty list is default GKE configuration. | `list(string)` | `[]` | no | +| monitoring\_metric\_writer\_role | The monitoring metrics writer role to assign to the GKE node service account | `string` | `"roles/monitoring.metricWriter"` | no | | monitoring\_service | The monitoring service that the cluster should write metrics to. Automatically send metrics from pods in the cluster to the Google Cloud Monitoring API. VM metrics will be collected by Google Compute Engine regardless of this setting Available options include monitoring.googleapis.com, monitoring.googleapis.com/kubernetes (beta) and none | `string` | `"monitoring.googleapis.com/kubernetes"` | no | | name | The name of the cluster (required) | `string` | n/a | yes | | network | The VPC network to host the cluster in (required) | `string` | n/a | yes | diff --git a/modules/private-cluster/sa.tf b/modules/private-cluster/sa.tf index a8923ce1db..7002dcce9f 100644 --- a/modules/private-cluster/sa.tf +++ b/modules/private-cluster/sa.tf @@ -56,7 +56,7 @@ resource "google_project_iam_member" "cluster_service_account_node_service_accou resource "google_project_iam_member" "cluster_service_account_metric_writer" { count = var.create_service_account ? 1 : 0 project = google_service_account.cluster_service_account[0].project - role = "roles/monitoring.metricWriter" + role = var.monitoring_metric_writer_role member = google_service_account.cluster_service_account[0].member } diff --git a/modules/private-cluster/variables.tf b/modules/private-cluster/variables.tf index c691a887ac..56a5f35b85 100644 --- a/modules/private-cluster/variables.tf +++ b/modules/private-cluster/variables.tf @@ -902,3 +902,13 @@ variable "fleet_project" { type = string default = null } + +variable "monitoring_metric_writer_role" { + description = "The monitoring metrics writer role to assign to the GKE node service account" + type = string + default = "roles/monitoring.metricWriter" + validation { + condition = can(regex("^(roles/[a-zA-Z0-9_.]+|projects/[a-zA-Z0-9-]+/roles/[a-zA-Z0-9_.]+)$", var.monitoring_metric_writer_role)) + error_message = "The monitoring_metric_writer_role must be either a predefined role (roles/*) or a custom role (projects/*/roles/*)." + } +} diff --git a/sa.tf b/sa.tf index a8923ce1db..7002dcce9f 100644 --- a/sa.tf +++ b/sa.tf @@ -56,7 +56,7 @@ resource "google_project_iam_member" "cluster_service_account_node_service_accou resource "google_project_iam_member" "cluster_service_account_metric_writer" { count = var.create_service_account ? 1 : 0 project = google_service_account.cluster_service_account[0].project - role = "roles/monitoring.metricWriter" + role = var.monitoring_metric_writer_role member = google_service_account.cluster_service_account[0].member } diff --git a/variables.tf b/variables.tf index 989b8d89f9..339005ff11 100644 --- a/variables.tf +++ b/variables.tf @@ -866,3 +866,13 @@ variable "fleet_project" { type = string default = null } + +variable "monitoring_metric_writer_role" { + description = "The monitoring metrics writer role to assign to the GKE node service account" + type = string + default = "roles/monitoring.metricWriter" + validation { + condition = can(regex("^(roles/[a-zA-Z0-9_.]+|projects/[a-zA-Z0-9-]+/roles/[a-zA-Z0-9_.]+)$", var.monitoring_metric_writer_role)) + error_message = "The monitoring_metric_writer_role must be either a predefined role (roles/*) or a custom role (projects/*/roles/*)." + } +}