From e39deb3babc1d1d64708f52a5c686d0103e325c7 Mon Sep 17 00:00:00 2001 From: Adam Overa Date: Tue, 22 Oct 2024 15:23:51 -0400 Subject: [PATCH] Tech Edit 1 --- ci/vale/dictionary.txt | 3 + .../Deployed-Knative-Go-Function.png | Bin 0 -> 56497 bytes .../Docker-Hub-Get-Emojis-Go.png | Bin 0 -> 72467 bytes .../Kubernetes-Dashboard-Get-Emojis-Go.png | Bin 0 -> 166158 bytes .../index.md | 1465 ++++++++++------- 5 files changed, 861 insertions(+), 607 deletions(-) create mode 100644 docs/guides/kubernetes/migrating-from-google-cloud-run-functions-to-knative/Deployed-Knative-Go-Function.png create mode 100644 docs/guides/kubernetes/migrating-from-google-cloud-run-functions-to-knative/Docker-Hub-Get-Emojis-Go.png create mode 100644 docs/guides/kubernetes/migrating-from-google-cloud-run-functions-to-knative/Kubernetes-Dashboard-Get-Emojis-Go.png diff --git a/ci/vale/dictionary.txt b/ci/vale/dictionary.txt index 22417cf928a..541b9714489 100644 --- a/ci/vale/dictionary.txt +++ b/ci/vale/dictionary.txt @@ -375,6 +375,7 @@ configr configs configtest configurability +configurator connectionism connectionless connectionStatus @@ -1247,6 +1248,7 @@ klei klocwork kloth kloxo +knative knockpy knowledgebase Kodu @@ -1255,6 +1257,7 @@ Konqueror konsole konversation kotin +kourier KPI KPIs krita diff --git a/docs/guides/kubernetes/migrating-from-google-cloud-run-functions-to-knative/Deployed-Knative-Go-Function.png b/docs/guides/kubernetes/migrating-from-google-cloud-run-functions-to-knative/Deployed-Knative-Go-Function.png new file mode 100644 index 0000000000000000000000000000000000000000..9971215f894c3a199ebe1e826b570a6a0f1682fa GIT binary patch literal 56497 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

cR?7p)e5uD6oS^9x|=)ely5HM-(H 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

*gP1Rk-$ew@3R)GJ`R+uu2s4^ zCk%XGlzH1{armrKKgud-7abXU&vS6BFY=2>gCQ z0#U_UQL7&cWAB_ugQc%YJV#B^`G)`2qkX$!oC8CN8&i{c*x1;Zwy9p>2~-6jcI5sk zBN}2P@y-EiW20nUDc{KB_%AY5T3YbVg6&=y?n_jMM~tDCkApOtcsPMRU$}82t;!9r z%D{cQ@<+(0-nZM=*Oz!{k!Xzzx`r>uA_7*bW9zE$JL>9LyS24BIgsdxV5jnB6b(fq z;v{_WGaP;3Oi$lCP^Ge7`jh)@SSw42D;*&qC8L%m;ew3pFDEAq0s=q$j}~C!IZnn; z_@CphR`zqDh#vn@p*ma-IjW~8b{06U&?wM>p^dit19%~5uADZUZ=Q{1Ba*MK?n+8c z#k>IxB$H-b4@udMO|Pf{=>pkx6NU?*3@6Uy{8c#7Y{L9d-aKP#Xs@y=vZuVCg8f+SYmN*xx7W0^~qEau#DU;?}rDU zXu`U3{%d^mFKJ%26eC%Ajwj6fL6j4|9OnFc2YzqU#-+lf3{8Xw%*~aljXol{9K8j? zhl4XTVLixV47d5?o!<=O6iHw4VNYj^O3wYc8~&VGQ}{X{DRTwN4ku z$3G+*wR?)8YFy5JX5m5!Z4faJ0@+?FfBe?-OuM{_%>sT1K86Z<9-SkF@{rfW1Hkz@ zj*kjS(`neawVAX`f-F;AX1_BrUa6uZz^yNe08Vl7sMV*w|8fdvzMdF~G=}2~p*%W= zXkSiGPm|6}mGwIo>*MHXrKYB)+i7XXbvsk3077)-wPjr0MD+}X8&=CRsHL%vpn8V#(NBmh;FKm$?EP4x7uW*m({-QF~dhg<*?vt+nz(03Q3X#z9CXr-W$!7GBGkXW3G zx-pp+&y$fQ8;AaYC_hjrOz=L-(HO(k5LY;Ij}06oA~-FY)p9vboM_`oJ`s31nq2Pz z;G73;dFi_^;Tc|o`<&$JMz4)lyaMgQlH;tMx>6@pLD%pW0P7$N0=I1t)oQGlPu0S0 z7#wA>-eOIZY?}kFi(5lVVI6l57e22}W;0Nc@P?`MU37HVO9I}Re%D(c{``ZknC8C8 zQATf{*RMHoRK=RcMB?O{jgfkuR_m^=tvzzdSZk$V0PlucH2sLT0d}>K&8;K!dT(!q ztUmP&saMUA*>?5&M5Sz=$F_H)3@(i@*X6LzSu`o6w)r_QAX@Y?`8iauY`3Tk-Jy_r z(=7xe!Ipiq5-TzF;v=p4u@SxLLMr^M>~wW)ZxL8dLjy^HhkH75H&@CNg&+=E?S{Z$ z1GWC%Ue;Um&>VOT4s!?2cqd!#v#|cR%A0es7ND7zDcNzR-Z|+T{EH9W-6!*ph>B{d zcAC^bmAQA|#&RwHScmcXtBp`Nw|DP%rh(4^yEqUMtC%y{QS_5I>E=!$Y(30@%b86` z=<>AG2Z@$yp}zS3X-NM9Ap^n{i+*&chT*8rqR_Al5BD#QlcO^+>` zQ??5mP?w_LezyW-MeLD0U_g>0r;AHyemOkemcEK~6U1)<0}z<^RTQj@cdffRIP{#5 zoi_ii?$;Z*!^ej^b5nI#d=Ni)EPF#*%FZJQTDIpwrKKmA;DW6{UZxk0joSeF zk@JV&?TG9~67tt&)7V4c0*t))n4fuBJd3IJP)H3=BC|J7GYH<|#&0V-|IR`4N=5nd zZ(%$PyeDRMv8~WB9)C6{q4Os0)@FSC+QH zi&@IZ8Q(AdayRs^zj25D8Rg(1ZGEL;$qS1rw($807`^TtSg$QfrCPETG9WT|2J(p= zQ7h<&z;3Z3cL@rxql7tuB22^51Y(SR-~`HEoDC*p7XUe4^@oA+#;cppEYJSztNX<& z>*J>M3VxX1>vXa4^a>WHvRXZKnLXg!>3$pW1#q+Yf=vlG>2j*bU8dg@;2@r}u!0@l4Ab6Dd$dN6jig7;xLpzS7S5hcIjm5-o z!(d89!Q%0%wXMZb?*ZQ)zQf!^TbOW;Fg9XA#9s`|bZIgb#NttEGz{DfNr#rPk?|)EKgsA&DJ`uWtWl3>~ z3$jMt2cn&~mexQ1e!ZCfp2JtC%CRMqWC;Zo;qs7#6)F4Nv{C(W?2+Z6!KaWh*zUdj zx}ZQaBWkS12DK&pUKcbpyr3N-*I?iJUpnR}VsHsa_G58z`q!$`y)Q$B+s3fU&}J^} z!5|>kQE6G(8hOR>_1Lw5my-k@VxVUA7h_2r6^Yu4z)*j&NzXx&;^O1W4d~7NGXtLItnI-qc&?I= zN7G11CUhwm4VP4Z<-vBn14JqXM;4*AiY6-d?cq1_>??xSZC&Zp8CYEZX4aaYFmr~~ z93S}IN@_}qdz0yow|TH!^CA9j@ETU^}_Yn^R~{0gf^lJ48RgjK=-o9jjJ*%QaN z`?mcJ{u5AT)5p%L4w`J^5149~fVB=q!7sc5vGw|VzhijLN1iwZH7UtDq&`XV`C}u_ znM0)Ecn8P=BBPb0TVix3TqO^}`QXF5#^9Vemh))}fr>#ge~7xY2WcXLz;OBZY;rzi)91QWL4o0UoQ_AqdJuX_JBMyBEAFG!X+#m zzIWd~CrKEie)j@UI133z#*p#wSvp$UDpNrfbPpTumAVcoo;?eEORxZGAQ*@7_ zvV&;LC}heL<5yBjOvZ3pf)*eR6i6DdrGGRpYsvAerDZ>aYyKHD|0t{NCFhnQz*!oo zZK*XRp;FL|k}oaL?2Iv{hp?P&{k`tS$&puDIXO-A7R!CWZ2m|j#7M?R>MSoUAsZzI zU?!vR%?HrRR)x1+?%XW9YCITX0w_f3#23+DxyVkUhZ z2`modN=r9B7J*SNZqUP#m@p&Y8LyhH*A0*aEDBL$LUjBI(mMv8WNU{lFXQ5cq(3do z8+{Q{NX_1fOb}oXsAR5z%pwmYCS7#0>(eJG5I$%a8O0m}hK)OaGD{y{Or8<339gn# zQ3+?RJk(EJmDTq7Bn!91e%R$WSPOjnz+H$FE-EY2w3fgy`V7$;D!?He@@9e2c$c#j zjzSmCOd+XGO)fcE6}ScP8%U!&Wu>qz*LVD^+F%FN62BSBM$+3NbOBLgG)E5Wx01pe zt|{*YUB9{$_m4;#q_MLCT%=<>j-R%1^X3<*{IQ7aYYU(z2B>l2^5u|0CMc-U5Q-pz zE=tlhT6B#l3nyol75yVo5v8H8ZAIn!#dJA#C&~gd&CRv5qmIbUgJ(tXyoWe z4SL!vARs{Kp7JZt@yP&;5sJCM0|-vgf%V9R<{}^V+zm1FzVXc&Tby22S>^&t4#Jni zee?ScRxiMvYcLo}qr%RexdLGq%o69NRa3{YGRD^byNRXzdp5@o3sjz|fEXa}H|4u| zU${y$mdnpl+*>RZY5Bvvy#AtV(=EaN$1a+zVmW?1S23#d^JnRcFBNFMB&#MSz~=0k zRKcgUqF|&`vKvae!oT28l)EAD`axHZjUz9E>LfCpvqH0G-ok70x~#JpDgo*PH@9Aa zav;35w&?fIy^|clUXmvE*U>@78a|0TLNU8`jV6R3i?NGlmfRh*`}Ub1&(F=us(RXo zUl)^HgxM>njb7mEv#SGm4;`YdcD`^Spo;$T8%xxQx9i!pSgRLOFepjXmioJ2evTcK zxxzYxM)##7&g7-??f`1^ss$vk_PJ`45RD2n!MQEJ`*ls zu+_<8AEsi=`382{_uF=NRC>_2=kV{Op?MbNohlkconbM{Py=gYFZ_` z9c&{%zuj=}0Ds>;>|nP0xV~-eKmW5PAk1tL4X(^&4(ec*jGEvB>tl~LFg!xopo|?~ zI5#h^L%XgP1N|h_%d5MlvjZ~ZEM`^*I~!M>Bh9gh&7oYzL`6l#SZ5rh+jZ`*5z)^} zj1kY;rr}=105Qxci(u9o?{X<%15jy`B_4uQzBYQJ9F!OB@wEC^(d8ih%UDepgS*gL z@}xHD0yM>{_KLhE@(5XIg!J4KQUNSiLnFK@uxZz>cjY055u%nRH4Wj-(M_g(fv2%C zUEMe7Q&Ax+dS8wQhXtY;>!P9~-*GT&nY_;VZW=VQ9+a$+$05tZIP^2h2D8ZzM0Z)6 z-iD!BAYOZfV4i>@BwnX=Y`xXh68RoKu|jXWD$t6&Vpi+ED?UEkQtxxWWopyE+n$h< zqnbn0{S``fZUeD-typ+IEV`iqR@H&;)cya`ym` zibA47+z0{%YGltAqoWMTwb|wN;t5B--I-(L(Jk^k80|<6SuLRB_ZZe;=FoL|oA~GA zirVjEh2vIp1u9%)1;aeA?3|sQr|ic4PGBMrMITV6lE3w7 z6{4mK8}59+yUr-Nrx2_w0;Hj;bI2YRLDDsZSe7@nAKyx#~m%J5Wm6@+h3n#K0R-z0q#t)wPB`v0HUD#UZ@6cVVYBI zo6&wYs(_YnxO=CzTZJe8=xJ#(a4!8=At^6|#2OC$JkCvfkM-~LD@kG7oCV>JOb@T0(~8{$qOykr;LcCK zo7}fJmvr-PSg9_;xW=wu+FKC=a=@Rbndz^Vtv2AIp`oFG@bGHJ`SBfJql%8&4qosV z@1@d}w)&tr^*@v+c+N7$cM^Zz;KKefp=FHypaj4SN2^fW ztQh#P{K{QKJsXMH$pw6AYBON*o{b(?a<)Q{tgxw-l`N!oopv-d+`GI@W5UAJ3Ku6O z*L1r4`kc_*sIt|?D^FCln=#C<;d<2TAtl3f^^?+)iN}^zZU~NtD{ye@6-Ta+o;7g) zQ!t-UCsEW}|A@*LweHfaJ>eYfGdrjT#afMd$Y8=?J5T%ZJ)5C-{)5{pbC&h`ZW329 zH&=4CnAK8-B17+xs zxAy2Xp2y6AsS(QtqRavWB(l^2ocaS=GLfRM7$l?*Dbc7%E)<7YZLym@ESV8nLH=)2 z1Uf4w49{4$|KgB%7Nj&f6OYf?$R|UPl17#|vXL28=6J&)6b+pt`BHos9D**USLt}7 zVpS7eE@GWA_A&T3RGRN=YtIR$bTKB54Q?nM8ZeCb@DuIKU{`)7XHR2PKk8d4NVZ04 z7rM7vJ**>&%ioieKN`DC1!M8n1Z}YHxF6@_?|A|8I5fY82v;X_RYSf(sf(SoEyr>n zPXAx_`(*tXyl_#Jw7ujSSe83l^moB2j9(;hYi`IF{42AhWJ$fHCdL#+JO0>U^`Z6i zXOa>G$zxypnQi+eHuLiG7D1h6nWFayFW&jbdmZa})G9D0z60m&757^)l!&SnJ0 z9kg1r|MqXHA3s8Wd#XN&=&kKeAM%UVZ}W4Qbr{x*AKQWK-%4N%pwJ;acIixYJ#6Iu zwu->p6gPOp-<#Spuz%2DsCRbgw%d)WmIm$m??~uX5ggoN@E|uw1yclov5LkW0SU&VB^!4@i8N+zJfcgsXfhaEaufBuI6r4(B=larX zvsw-(z(^IkY{GO`?${Yg+RrdlOeW|bImLijP3Sjg?+))ag0u9?gMUJb5{o&khQfacy06n^5vdg+$7X_Q(!4rb@) zhvVdQT81necE(aV`G+1JQy+F?TPLL7`_1;2osK{8cwPadLUl&&P|F^09ha>F-$8AbeOcp zPMvHWc@7A@t~)@r{P4kp-`p`t7+x3&$`tNB?_EdCY!tr1FyR^WjE}I;kc-AacVHb( zh;!cm;n6Ls3CW^acv~XMnWJ~GKtudyo!~Q=g;p#G9ZPH23HFd^3f0T z!XXFYTUT(}3OfGQr#`vy;d`EQTr^EYPNtb`|D>&QC#+>GsF^@Duv1txID(iGQTHO$ z7=DXp92}r-@qj@&%SflpJa}A$3?F6Lc1&QSy&-VUMy@I|G3OkSa|Z*cK|PDHfV)EI zH?Q4`ArK(Su_6WGAc+p}smiWH9v}YtB?{b|;;5oyrk)JmG;)7^hrefd_#9vmHn7j6 z=9X+@>wAMJNPy~C2Y3z;r7OPhM@VUPYpYsTI|u*GW8>{Nd)}|1K8gKpYi)3FFk`u|#Y07E6z*40L_kjzC}Sm0J<4C~W>vkX=TFg_tILw@o7 zCh-0rp&CWtxaa=k*fk^u7XOJ0f;jzL(D0F9)ctfY;leQ&=8w=l$uRJ>%7xm#U;NUJ zlgL!kTg>`c2FZjTJ&v)A2R|ZH&tq^2aSynC8A0a4WsQxEJlCQ>tNZx*;Z>=(6DXX6 zKUudDM*O@jKXD822(k-v1f1+2My3y?DCE5dF!Pwx@9GmCZtfT0`lw4s?`u8eK8Z(Gf2HAC((}6>MN=d9E$ik&lg-m^6&pLM7ZbEW8WC0& zZ3%fiP1(rol5XFxk#ixG!3erm;_-vL(DuiN4KT#^2UnvBCN4kJXHM@ofAYK+oDc7l_=S)XE?obvg^SPk3RuxPBSCe}-I!jw0gvx2UYx+t>H!Jz{?VZRp9l zPZLx~^M>dxM37rkT@B8Rkb=@|mQ@1xA9U}l?WkCYqF;rU`}hM!D!5=UV9$V>iH@u@IU&%eA^Yk7kgN-if0yQg3nYLQND0-6 zN874mZJj=nlONV}9id3)M4V&Yy5IO>t7gf_^wr(qhXz_=yFSw9@oj{p46p=B3Vf{qUmj2|GMi zUE;hZLIvE%4jk*pFYHM%a=*F;TQrg|B*2pFnt2|X|M0)>6w;~4)Rq@{TB}p<>@&M}Qe`3B`tOnx^-0)3`xl=uHy#U-|H&V0 zW)3}s9C{6KKTwer`*<=03UN#US6LsC>GMBY017t2 zDc+>br?#_Yz6S*3snRUUA}IJ-={cNVzLX2_FwxN99Pun3q17nij1qGSLgVSQ(NJqm z>8G!`?p&)oQ{&Nd#yT7PWA2*m*R5OUt$WPEU}Kj?3yE%|p%f5xAyNT$DGoyH)W1?I z)YoqG?ek|g6%x0ylim~JF(n8uEgd-MMl?Yw^i^UH{@aC=J}C+znlaG^CWv(L}# zxh@N_v$3^VCYNaD^Y?)lZR{w3tUhpp5AvmGzqd1Ln-X$p@##+;HL3XvxQzePN*rW_P z@~lhynp6)e;u`?p>*%23Si0}SiZYBWU+I(qiwg9ZIQ`YL8leRPSpZ@byUlYj&C~}L zcl+X>M1X?#m5`J0t&(>OCA`J}orax}d3VF+c`UoVP?l1k#AC2`7Ym$W=Yk}jzzd+a z;i#bL9yu=@UVt|_rQ%Sa^Q=40W}=Gd=_>8t_0lyAM7riaF+BWhPIsj^1 zG#Ma@eN$RV$BI20#8@SsFKg&>`7 zq0XR*DUh8#%Db3u4Kg=9%?B2SacMn7flSedI?vO~t4BjyCp$T=uUom~X}vKx;ojVm zY>A`vGv|G}L^AB!t{@2Z|h$F}!xmUN#XPLBUJ* z5uJ}dtFLh*KHOjP*vbz(jed&vE?aoA^@dz@dBju~>U@hK4as1(R&@mh##Fm!HWq)tDi}KUZ(o%z7B)*^6VFXcAQ=Ov` zo>4;{%7^|25w>@B6MZSDDnxHJy|jDxU&CLdtjS*C$17u5A|)zSJ+A-TkEP}ADPa7MM}0cPyF0dXt#|596_1+Jd> zpO>a$Rz9H4CBt{g#5B_Ih>m?a8suICGycgU0^u3=WuFv!TYB{ZkDW9HC+igI@A z{X8NW$I%7L)yKBB^$(?}a94Gi=;^)4BPEk;DI^*b`mtCMi_>Q9?jNsQ3xKmbMjcB1 zp^xw4LCq<3{#lx8MA5h&6gv=v+{0n=;bOQtl0!vTl=<;Ix1!CtbDLr=U59LC_n~vC zt#KGX3_}DNYy47DUF{1)1Xh$N( z*z@a*w(n&MPbN2PmL^MRcl!-D<^5`NSXtF#p3e$OC2X%ZsuT~+WLbznD8p^v{?`Nw zMQIN?i{@)vuBpfyw;6Ho{HtVUWi7`+)a*X;yUVx*luNowpt$n!*tx-Jp0k7rZJCQj0p#hhez}TNypk|)8FZzw6Nf&3^Q09 z)~Z_{1Isd*G=(VPH77gyjWYdDl0m2c?83wt=b^L&@B}k7k3(tj8-PQZso)jR8(qqw z)mc%h$^88;MZ?azBB z4E@F3(OOiyQTg?0@HA8mB|r9p_Jqt11SWJlMm2E_MO3Q}pbSE-xPddWLZwd)B#d!a ziW2V2RU*it{7Vuq5U%D(fVgXvphX79*j4VxSP; zpP-Ns@%7?F+Wz+Fs#1vIL4jA7WxidStfja?^iKX3XDG(E56Ek5RpDhno%_^Jf85gVt@UP-|*OO88F#%#OneSfO&0U4MUsAC_Oc+P5%5oed4D)!pI(5b(Hjz4AXsq-9zg0SR<`Avb!mTV zXc1QpCEyPv0SC?XkB|F9kO4?B4k5*QcVhAq?ht3EqZ6$ z1%kXqXDe``d7u>sx8b`Y|25Q83|3}LzJ3pxQ^!*6Wq@!Hx{7p@_ob3Fbfj(HuOb~`S6gUf%axF zf|x?u4n^SaY-l+@M%aw(h}lvEN#v-b5uXDnJE-)Uwr&PNOw2!#Qn+?`yuz z!Ef8#@Y-@~YC+^QoF+lMlO4$dzTVz+Ga&+PnzuW%t%+G8S+jg4M#wz0%3GYBUFNe1 zK`^%RSR`M^C<|T_^Y@-f!v_pO&`-5PIXap${$^B#-x^${F3);uRN75|OB|ixO!v=t zmxEeLewL1=2}jgOpG>^U#3bH%&z8E3Y_HAze`<4ZNCUkJ9?3adU1+&T(&lqzzg{jm zCL}~+Y^CimBMYQ-@JLvTvbm=xrjg2+JH?Or`tGOfprvKeWWCO}N7@kXGRa*t!@!UJ z2wP<8(D8g3hez;%YT{1ci`kl^d>hv`(*acrTE4o;#?S1nu%^k7X;MyB*7h6C>1{ic z33`QsNd=qFbq3|1Ih(EPpoKt$r_QK;2zdn`Z%Y4}=qJ$uqT@6gt36v+;lWYDa3CfM0iKW6vAoyvQnc+ zTs`Cxx5Y)YSg#NBDM-f(O@i12AY7ITMx!PwogUZ@#49qRhJQIm=ySh9sCH8NlVM1c zuJirsL;D6$loTb|-Jp{DtH#ag7H7@1W|NhEA%U_y`~1tH+QsJ6JD_)@@K@L*qRc$U zbTA(ZPimy2=S;K?vyf_c$ObNWdQ3rruxLGyDFPOGdnDr)ro?bf%8aZx5-r5tJtMN| zXsV@&L5dYS`a-K*8xLS@5D4UUj+)-Pz6m%%kWyJPQG=sPhwOg$s0rFAp}k(2&Y9}m zMgRlE#oyK|aj5V^7x)@uB!Ai@Bqb5NEAV2?XsJFQp=6zO60kAP0m3u0u&{7g{10iX zY-wp(IDF$_qB9(xFB8?0`3=ph1aKN_&uZaJ!te9oExEbSO>dkT4np=d-s<`Rd%;oq zM4#CqFTCo&Bxc0|LsB#H-m8Yp*O1Gxkp zWLbI}PKMgQNbA=oy1Lvo72%(=kf|R_@3_SeI*ND zQpapBy3nw(vonKQKoPt$QBYo{DCWN8%1OL_aFhNNELcmySU?Xsj9f0?J<%k$Kbwo+ z$796;4~NW8A>$xp*Gn^rRbg-{1CkypAorg5eqS6l8T0y0n}Thh{)d^I{Jm%LKYZjr zXXX-hppRznJE67rpDWT_6m!heAtMZ+3@iaj`CFh8l2E`qmXGRs{y8~an9iWr@4N6$ zi+fktaBAnHb_-bzCk>C54eFiOjz!2sXt%x1{c6#vj--rACg;s~bXM6-SJJZ2Y1$QcnS zbdmeG%jvw5QvcbLdq~0!o~hN@P7AKXyk*$fL@qVjNq2(ZNCU!`J47lQ$OcTspj-OL zGu_h|o>N?hkR|QB8|2tk@<)?;vrsRnD{8m7xq0W#f>32$-LEN2ylz6$KOb(|-NCT7 zDU?(l0OVktz3#x+5Fnb{CLtAgkDEl)0Q2B6d4yGtdhy*RuI<&Y5*e^z^oWs)$vNSMA zRewxTzB$3UY`|l21A)JMQ%+fWbJ5>TF#bRhlh5-_Bz-YIqPtVI|We+%i7nH z4?@$20ul(9r8FbxG~luJBHvNPEIonwf=TJZ_SKKPyslkjqjl&nhulMXum?m^HW#g& zfx+{^a2L$`$Y^9|!Pn5tU|{35=6Pvpfb>lahdUxt(cWdir#Ul0EVpz1NAQENpS{K*sxyGu z6hXkUT6wW~;&?;hJ)R?%IuE_ppK3CE4#Aa>j=(^M+J#~7Ex$B%ZZUfjcnE~vy9S*y z)w9cqs>&#>5b1_vj^*LtBY1c~8dMU4TIy>tfWYL)0;O`DyQP54K8~Ft3QNk!`)^QX zc~VYn5%1gB+4ctbv(?nR3ReB|diNz%BY^bUtXA-$A%)Yhs}kx%N(4CQM+61*qp+AW zOrs1hT;_iH8=q7=Cl1sj{)*GR_;C1Zc-m0y9^&PFg{EMlx(_8~QP-^4tV$u=kQ&Q3 z2R||cTH{6l!bcDRK)Jkp_*C@}UJ2}wXm9$&b6~O)*jlzvex~s7>Ef3!-M>x2UyCTw z-z$h_&wIxYW|oBoMNDsS^(bE-{ms5*Y*_ZsPhF2^ZhXJ27$Xt&=FOYe_(p&auhY`f zP7jTH=49se`(2qTluG|^_?h#NF=Mpe4_=R)9%^#M zkaEJQa0;-N*fuKf#rhvfV74P5x@?sD)babKd*Rd%;2wW!S)7@%`}-!@D00vtbN9lf zOFKfs!ffKmt;}dJN&kZ2_G*2;3rK#10bHdeKj)vbHmFzl1?!DtxqJ-OABe*gI9IH2 z>9NX6_`%PlwqC?pHwqgC!ntVwIY}3&Qm4BU+6N+dor;(d4YhU#HVI9VHS2*H4 zh9KVqXi^%>`VoI*zaj;IFvdpKzmy{|TVqh2x`P$z0*IHI8kZ51Yj`5+v&G?93YubT-nyAt~JTc5BzIyNKt8 zMzsCTDJ&>XY(u_aHo;3mTL0a;Jn_vNSY?}$c)vSr>;wz=8{^}hc~5aA`Y za{sQ(Hi+}QF&kgmpE;5zl>B)@#g|dsSMHU_U4tzhot^Bm|18HghbtC#rP6vd| zhG-O({X+sYbuR>e{&4Qh;Hf4#h4WXw(kav3-L58Y z^-`B_z5ALu`*$q6^=D?Q?(ky$0hZ>$$ia&eLP8fV7fHHo5EWApN!P|}Lh*+3*1@oR+Ds@d9Ru|2sA5AR!`htkqIf2D|PCE_Sm z8`qO?e)!2~0evJQSVCnv~8*dd` z>@~3JBY$;zuohRly)|`z@PO~`;6|91U}YR(k_2i(f~zwa_U=72pRt#TNeO0GUy+D` z!!%9U7}{H@gWJxB-u?xQ0N+4jg2;3cToFQVP)$nvE$*_h2=PJ&_ZitxM$GOx%M;d_ ze6f2}6j=3P`jfUT4u}ANrZx)^PlW@vmv%$SiBWo8{obXJb`o zLBWbteb66aH}r67wB8oBO6sbKNhZy)TFTLsE9a^z5tXdODI)R|Du=GU;@hp+`syWR z(81WAJplEf4nM!S7j8G|j{>^}RIStsG&_%5b|9Qo;S=+trg}0q1$Yr_zIH!HJ z2qKL9I3jmrqVyDUvEhnfx+}O37zMd#mN_}gx5mDHU1j_gOE?Jhz?XsZ_$d&YSqPp^ z{Gx(c4qt>jIy-U0h|HaRQHP6;jI6}1BsVu+<(h!JuCsHY;`3o2Sk*~A0=q6PMgHtr zgGw;PfEv=5yun@wzmGga);V>WXXfn~{+}ghIf9XFx1+O8?y>a9hIu4+z~=c9di{U{ z>n$EnwzBkjdwYXX{MhsPsqq~Fa-!kb@@Wx1JnjcAR*-aFwzN+`0mMo~hL1GXbJA+q z9OZkMS71_TITdyrTh5!lt#qH#ecaBSKeHB(aR0xUZ0dPzE`mY%jiNC`BX zJS22$cp-;WZdq?MM!E!!WQ{e4>lzwhBeg|e6$?*AFeoMIKTre)t0uC8wujUObAH+9 zXA!Hb0-IiUkyEfDJE+_%m6-dofltvyv-q|!nS6`+OE}c%0(*ae2(_8%(OFz|p)!!GPh0L1C-a7W}||1#9!~IS4Y@Iqlg8c$nFA-ZK=A0u zBhed`7@m7RV|ZP3fFw{OVx>*d&X)qV$x1}~P+<3E1qmu+ttaj_@ z=x94=Hsuts@uAcwM;EyMEK;63mh?BPp~Otu%i;W<1L;rLkbx;?Dq=V?G6SV>BS$VC z(%&eKG3I2vEM`a~WMw_3e8h&K(Sd5ST3c${wryUfivS1Ot1|H>DDRYu3V!S4lcJE^ zo^2jhKRF~HPH3ixIWkf#VoOZhyReXu_Uw1N$YB@|upJv2BuQ)+xj!he9692PlbF!# z=y|(DN&r{@D6KUs`R{T^qYt>Ey+0*jcPa^9O$?YV$qLw=ey}e@o*h$+{;lr!`6^!- zG4!>~)YwTz7;F9_kfG78{9sQ{1Pzly0>mW=)drGrilV;mX;9FWxreRcqdx@KP4U0H zz-b{HkL^XA?p+E?aJA{gk8*o|UhTXK{3n@P&f37BkGrpto!nsI@9TS&_afXcWNE`1 zO9^N)wQZ{iH%yJ%Zq3mbF;kCqE`y;nK~z-fJf5rgiLy|*!^UAj=IAy==^`Idmq=DH zqJo|B`O~K#f^SdU)YR35@aF<>PrUZ|OF<@rdw-$UvnbBP&WeP@>g$`=t|FoQB&Ps^ z4rYq#eJ-egz&u*$0_JtcD(Mx?5c?l3fIKmEKnT#RC(S%=F_s@EJULtQ0Tlz}lQz?2 zJ}?L;*?R}nv#)_uvA83JRf)-~>QN<$cQ6X<6)4-;s~>NF?hGl8gHQ_#1naF`tmJJ0 zX9hk_1TS@L03u|^y#_0}973C~mJ40!=RE`30JO1@jezT^-nIdyyfdh^pfI5vkdR

O26>aEd$xWIj_hk3eFl**OxfgKp;voPC}?KDP4=NOU2g z!9l^fZCi|PA|?Y{Pp-u|Ma73w&rjkt?Q}qHsMy2@x{(z?k(nixzWY27%Z?z#%sUv3 z7qT=9Zh#mLo6UD)RtR*(NPjh6BzZOXy#_>A=!PAGxV8BBwi6Z?kAcLr_D{s+s2)5^ zss+JrvwI)aC=@Zoqtc3&z!_gH|CjWtc+2o9KL|96vF3-3eQIjD3!wQ5Kx>$|-1?pz zzWU?s+}AR&Qy!=Q$xJ}vU7Y}Vey$-CZw88F0|d@mwIkTb-vB=h-pGI9zeH9E+>%1c z*Y+boKx*;AA&Nd~c{mM8SP#_eeV^vZgiM?@9pYo0-&THmNFG32u?!S(~|(d8xD+mL@=I21ytMMwh|=Ek>Cc)}c<$tX9J8fq|AD^9a9Efs=jLsEZ zCO3H#g`^hY!u(NOqNd(b>OcSU#PS`A8&D{cUh4=JS6NSQTew2M;1NofbtNP8*dFKs z@e_&G>qA8aL~QH)#b@_mrpp76Vq~r-?8cC~uBBw<=8A4P(}o93f_-rUyx+tt=HF8$ zM{x^rI7%TtXYGvE7NL=l4O4#|(fkvEEP3t_-=q&_LW5X=28N_MqC++S!K8XCA@PnJ z3NA1*TPdZ0RuG)&0ZRoaviI@Dh9J912quPad!t!U)vHUtyjzB__=G*EqhhWN__ zfZtV=!>{_kmf<^?q6UK|6I?`h3LTfug3Lm|^GKlL;08pW-&RLznJ z;`Tp~nRU^|0@^uq?%Zhr)i!s*LOmpmG{D>>7W_-Ppybl;RS+(%KBd1?I<6^gwK=3kXzp}1DkiWYH+!aiy>kt}w5<|r?&l2I}<=T6Tr&TDR2`uKA z>Mb$bXe}CKHj69;j?<`vAa9{zVDPaSXcXQl!xGDvHn8^ygzs3@B+aqeM)(jNi8I&c zsl=UTlllvnntzNa7Wy4zR2%4#IhhmGalLNBrd|{i$fM>(W zzG|pARzo{byV@sn(rO!KumCSz2ZWyZLSaRD1i9iWz7VQ#g|(;&b9wy0kV4$@`puh+ z!!JkLB_M^Ra0E(#u%Wzs-FRMn=J6L{m=6y*&D%dDPF>)g1TCdY*Xe=OBeP?`Z`3V8 zk#F~bhK>`ZZ|&a)K@o^;2C(d2_+Mz7$joobOV4(=?+4gdmj(EEDp6uA-3XkPtM-PvIEek5c#)B8}WP(^G@iBx7P592Qub2;E1AS9)CSfal=O>&TLq{-jg7N!dB!MuhqXff!N*D zf-VPzD3P65dq58>%~RhR+v#fADU%#NbyVzRf-#}z8$@;XZL%^qF9Vmeor%d0tcE%g}9rP3Yt;%4d;;_8MP}y99v0BhzFXu#Af+P!>PuLme5` zplGz9Fj#l45qs2W3PXxpuC(^+D`PbiP)G&+VnGj#qZi5*Wte8Py5y&OKktQKx&Uv0 zR+)Y+`)hPJsK=l`){p5f-#G&v44yLy+e9*Fxr8AZ6*2$%#}(bBZwJkx>q3RzH#({a zc@2TXG?P^)^BZsx_#HSW+#$}erJuIM=JD0t7CGbWESjC0dl7;x61IdrAbHms zq)!1bVU1Ec$mPw*$jBB}YuO-atIB~E`ZTaFOuRi*;55Z?XR`Vr=1lFEXnJbVZu1#m6`{m5#|I!Td=kZRP6ZdJPM6i&LMdog3q^ z&z@E=FgNo>VTg#4bH}D;*6qJDO+$6VxhY;ar^eaDOm_cA`VMskq$rsQ%*n~gL~%@pa_+5woVEQD6}mV4DG@8T$ckj> zOh>~sc@Dbky8B-9_b#vm7fPwu3E8iipd-OI>`YE0`7w1hH5pG6M=}4Yx%`blCm2W# zXU^bi5{5)p#*&qZWn`TFy{fF@XIKTtEZR;|FmO6dap&OR;4`GgpbW-+E33&kv3z!f z4tW|0fQpYCP?VRyGT`u8Den{SBl8O%7KILC{b8^OxEP|VgPJe#*L?(Dvr<%<{81UA zzedFEa}YDfwsl_~*MRWy1+>a<5)z&RmCb2WjZDR7Jcp{t&F1;JH;U5*-y~*(@P<$2*fh9Vrj6S;K=T2jrh6TtOCXinP(w&Jz5^Ap{2j z9l+x@HW#e3{_L=wMr+#Y8qt}-VB&`Zl?%RC@*t^8`~Ma;JK)t1LOV2carBFf4gMNe zKwgH+~{o?`8x1}ec2L2WJ>R)Di45%m`o&i0ER`NX@tV((UG>`t2=Hp z=iXm@e$6T3ZZ5dJs^9ndygha#kYiU<7|SgY9c`6NyL-(|sP?+QL35EeI&cgkSmRY@ z(W!Wyj%=k;D1KG`WjQwBxLzLpu3g4cYsk|AF1+5Y@8O588FqcmKU@v9q!*yl*S!hO zlHFGd{>l(Z`zax6%#{FLaxh(Iq>pZQQwmA76s zY1^y_n;gOxwY&^W=D+GNU*}QrwAkdN)%fMMj`!eD!%d}R(Y8b5u}4C+2$&iEA#E_w zYf!F{F;?9{^=lN_pbtw z6CtH6r6k)O5?P9@*|!RztjRJYkv&VuR+jU8>GL_?^Ei+551ilb?!uUPy|34GJ-3U* zahcSqzC5+PZ2AlO54|X!Zh86C8RXABl0u4v!49ruWRQWjHPmyxApXAS`u6MWXP}BT z<4l$rYT<*#Ea!%&APLmzJYLEzd-*$G8aMUCGpl?6Q8_a{Qwk$cdP)xMz#M{UR%o<; z1OC49Pcd|C^e-uzWNVN80nxYs6Bnr2*$$kbQ^~#M8Pn!7x@4zO@#{-zdMN=vAeYjJ zUtnz8VaPQS8XCGA-FAR9a;pLUJ)ibq)l6?XYEBL$f5H=~g8a;DdU16}`fh4$i3A&@ z-j|%3f2-#ZzeKjw>g0P$D*^H0V)6ZwfiY&=doj~?nU~&O$RvR6z}UWKWMPXzske6} z`s^LDCBOzX-8MHG9DD;1iYI6GGki!ul@C8iG?QMt48oxIswvmk+t?WDIF-sDe0Kae zRu!hDrxReujKynP2lhwB0%iW_|JGQt8WrRPQpVL8EVmco9jXbE>%*@6vx1%WGKu&3!Mgl;)!UBBe!J>4*t5!L2 zy<*KWI!&HoctH^#8J}95le4q4KURv!$;yl+uj)fdnnGWxOFJ9e?D`-CLq zXbQ)|6fRC&Lmv{@{Wes_W&xx)^at~sQlPL12`e#{3{Ok*7Zd++7hAmqY@CjgvgE6s7@f@3(JBB20kWCG*vOezLibAz^x5Wz7$YDrj z2Lh$LTNeo^<6mHty0L?A^PKfhx|?ZPfqpPVVM+)=z$8Mmt%=)(+lu&dv+|4sYe%PF zx;v4*7%G+kH^e2-c7*2;JvkSj=SK|;qIE83KA z62=?u)}~@U!rOHY!=z!Kt_&aN-NGq{?>b@~vgAM8uE_BD&;}=?mVd*4{rw+<-ydP$ zE50mlfZl;gV3Kq!kFo5=6m|Ua!t7*!>x|k%57De4YlbdDLw*~Hk^#6%7s;!!psJiN z)_i1yW_z2c=wr56sY5ZfN|80;xUfnR2bQ*!O$;{8s&~m7>&=~8w<#PPiT=1yk1{=%Qc zl{(r*UgB+{dmRcn=GF%xtrCs{I}sYhcr4*i5eGU;{Ps=z((fKRn*|-tK**-;h4o;i%d8HPp!(0*HU zvkj~P)8Jl#4JS{%SEaSCYv+2afz-RlVp5r$K_y2s4X@tb|tFFr_n4VBbE&cAwhQRGr3vCwafW9W%6b$6Vld_wHg_+BzN{ z^UmNyR+fOd5O9X|L4j6baXAAX@}EC{Uh&hEkJT~r(w{`GK=)kbXPdEqfqA{DqOt0& z1b+wgYun29?yUYO;n^4jL>$@wulL=|J|8t>T*oy#G&d^&{eTvzGLH3vzmHUX z{1{382^OZIX$Fd#Ww^h}@NF<{{%C$}ar$TJQh?rvF*dNh`Cu3x>BM7LfU|KNWxz2w z3+^y3E`)^S>o1=}#;MvCKl?KOjlM5h9)9fnjQn>*xnF!JV@u_K8WJLUadCgvv*|sf zwo4f`#fB)$D3Ms}w5iNY$}@3%P(YDa=hlX?RS8QOfGOh+9200s-UniaWC&-}a@iM% zd)-Tzw@E&sNV@-?m@R3;RzvYT6GUJ6+AC zjGbLdkU?^EEDTzp`mZhM3%TSh`i<@5gvxPHOum}BOrcH_oAjwUP}iocx;fCQ#B zZr_U?XPy4=)Mk1giMpEgooF%Rjsuz#mGq2rPEc1@e}Ni5)s(R}Ld9%73--*@1wHHQ z>bNKwqZx7OV`lj|mW~diWFOpTCi5_~$kOh)vH?@#i*~MzybRWA1?6yf8aiSG2fuc# z{PM*BeF+(2@~?R?n2n8UXfiNMSw)jXVr1>sYXgivbix|R9x6b`Az;)XNH|EJi1%^_ zR~d|tB&dMQXwsjsXEk@dUL`xA>cf#R2`{hK#_CZ<-F z#){8Fc&qg}B`bV-Sn6fj|D`=Pc{6)QTN~~Zt;-x!z$H^|m>lOD?)>CCK#k@xwOLgo zl?awLRsY#>usV;}MRl6G(Q9E#+tsP4W7Jh6Xeclu!4gbTO&f<{yG=^8#3DW5qBs@f zBi-fWfW!5Yj9KtUj05D5dJfrW-2+zH_`2#$zT8W181e^qj+?upL@Z(W_s7*%_A zJV`31?h@0!xSPdw-^q`$ZIv?MwOGQTC;0Mz)JyNcX^5S&ZU`+MxJkX6u;3X zF9Kxb?`6YZi#A`VY~nJP8^ZY}Nz?VvXQ}F?RgL?2D?4MJfh+?La1E5)jWcLC>2J>S z!!t;v1T+(waX3d&NC?e{IrKSX7iaQbc=G$9rN?A;5~NJj^XC}D?^@9(v36FNf_qj4 zDdi*%6lKW{vKf*&jhZ-h10E5U=-BHxO?EKYk_b+&V1d}{j*hj!D}!k!ixCM>q^e+h z^{VbE&EbpZZh3+%iX)pVgs%p_Z-Bb@zRrsrS1_-J|88kl zD>cft^8|BpX6yMOn&GObak<Nq=O(l8RF zCL8JMT8w75+wq*-oF;};F7>jq{m$>s;(^1H9mgI>-M=UTdW}dNv!+!uT~E_#p5~4o z%4e4ymAGuOxB%#d_I|WvBwQS4MaZQ2EN?dk)LpJeb#>PgHq*mHar);$VlBf>o?`K= zOE74>sT-he4DB0)`0SJcY+i(HLKPR>Bc-QkZT--0qpO!zZamH3T3@dU9065K_p3~b z;dI|xSkS?G{(_+*+1b5RXtF4<6ZQ@;Zc#up={Izm%y(wLJpcHzxreeMJg4A(3Ez%; zF((mM1)61?7Yl5$1v7Uzu1;#Wt(>l z1BJAzv$>0z2Bi*mcGa-OFPYrw6_=`*mm3j6Axk+C>2b2(-6*~a?8{?nM*2P7zWCfk ztUU%91YlAN5X^Zqv*Qr_a0P!z#Y=?*_#sN2V{}Eu;6l07tsRChEW2uM)6#DFAf^D1 z-%(<-A!is>GZnxo`TbCcP-^?XLUCd~;IS)|2R>4Kl7zBD28JM@n)-ZMdGVzTn8jf- zGdJ2zz28?p-prB_k~9ZE(b(kykTl8_Ol&X#6qS^GCmRY$ngy0>v49}ao~;rT5crAz zyMgkpt?ec{Fv^>{9Xc!&WP47+&O*}um0`;Qv4RXcb_Df+N+bRWvic6n%FXvwBTt7v zA%j{Da_Aq_*K7ATrEy?#e}8)kH;Fuq*Gu!7QH1FO*Tgj>^EbY`Lvkxow|1?}q{l+*xC6pME#pvlN6 zFPp*}2GN4`F5QoSt?wP$$Y9e{7`|PXJa`-%#$cuUj+cvZcQL^W;&qeXwF#)`_vrtE z>hcyo5yWU29Eq&$l|-T-k*qi3DaRb?g(WDF2?+^1GEDrS4t^dL)do!*JFr|hG~%5j z>n_23=7tYQVWd=WADwpS*QtDm;&CIXR^Ih}!OIc9^%n3`GSni6;}-*z#Ss(SxswZ0 zpCrfo=(O6?8qTs(6rg{$DrlS~-yZBp#t|NPt^gjdrjVQqC+OSoDosmD?yX~`tYBjS z-E{s>0bo;-RVqzeg8j@c57zHF^68G3k~xUSn<6J?d98DY7g0#I&@~tpaTPDfG7y)2 zdY)HDSJ#6iqCf#iwm1%h5o#kVI}z#wIXVkjBX<)Cn|N(xf6KuYY~UH&uny5Lq&elr zB9iPOXT=(b6I$kqzzRf3R6PZn1=!ThuqYrWyVC2R23I1Nd-OmUE~Ny;0{SHt+# zn#(gl2?i9GT!WK}tnx!^x&ginu#nocXJXBmk^X^Q1@c|OoDgOLo?bV|kT=7Wgjj+i znBrI|Yj>Kkebjj~HqOBDgI6z|>71zyIGM0QEUb%+k#r2Ge6nT8`7SE_0!jZg;^VSn z{Z>u)McQ0_7YYM6;NBo;%H;Fm3WUFw3qp)ySYv5T<~xj78u}vg99dm4yl=vrbqEpZ zBv&`!{h8nu>+r*&RihB=4QMh-$VBhfe8smPsBqvBhv765I#L+>^ksGowY#;9kJFc} zQ(z+zn(Fd6Tg$M#W1`h%KSr6lUAFZ;Ul5nWNwYoGK*b1px5KPfz*5UQ^TXuucLEUi z*vY}LV+;pX{4#K|Ja`9gYiub5&TVOLUHSSm2_e<#M))6zvmks7bjF1I!F#-hV3+M{ z-apGv_}XUUi{0{XVQr)QEaoxVjK>hz_SH){adJa}Md$h9CzgbfHEss2Hf1vx2kv%^ zY$?A7utRP0Q~}~W$(TxXu_sU7f{r}|<2Tt{rY@1kMv=j^L@ZHYMZxkUe_&z>k7s`L zsqL>ex^7!g#JQG|n>SZ9yM_jXmgygSL>1HtNDzO1KB<{ZcF6gK%;6c%wEq!McSBFr z-SNk(j4O!KIy??x1S^H?%t@~*EM)cc^wgFR!B9gN6oE+2iR1zej;teyd~R3um(DjszsZf8hg@ zbg7xt;ol&>+YwCk4ltD@h?FM{lOQL}Z0B5ASd*-nQe+Pb0-d#$Vu(F;d;%2&aj83G zH}djwAXk}!Z)e`w3FKs+NwZwU#zs=Z7E$0;dDqa;(6^TuIRXumLy=whh@GKN`$F7J zXh9-DEC6A~48zXJiFG-5V`6~h%KdEjmT1Q%1=6s4r_&@mC5gH7OnQ~;cWFEv5V@^| zyXBEb;ymZNo|qMx97{K^z6E-nK6>=UDJlLTSeKS?Z!t#J)>?Ub{81K@kK?$@O<-H? zpD4Vu{MIIy_ZbulAMatR(y7ht=xx#%M{NygPXUfGUsW2csy5k>TKCk>|NkP)QB){z za4!%h5~VZ8gDYBj?YJP-SANuK>28rxI(LEgCU2cl~o&ppLc4KSWm@|bRidLNn83N1tKUTg;l z{9p-&gRq;3832`f_5dajvJwaz^w<%e?Nj@!^7UiE(5>|iO?n$3xjyqRF6{7LZNJ*@ zCWdtfDtV1@3UY&NW86bKn|cwc&tJAox=`$OH}f|+ssvV+{o!m4QQ5dd-@ zjvB%+qjxMVFE_KkkHPdB>gq58o>?eBnS2qwXCH?0q&vWEBz_rz-4U;y{|u;*ByEbW zMcdre)462Xh@DtMZ)RqeG`DB{{fh|D5 zeSnTl172~L>F=AEv#nTbNsPK^`hOzC8M5JJ6rqSN{KQ58?UdTm2XPWh0?55UT)enY zf+cr|i{Am~3a_3$AkxNFgx*JV9YC(|4wd8_yS=R->l=cGNR%;I`Zl>0~_Y57w{4a^T0OA_}MAYxyh5pV4G5!Q_L!VRq zV~p(ovC1Ayty7f0#0oXo@_F*q6YYId?p|DfP~@e|jgF2oThRpHf8L}#y>zT(|18(s zn9%2JG`VJ$}@P{3VB#TWK!#GM* zXuy)>0S2U3H8~E}g!=^>t#s+qc4CE&x$zrysi78KE*oFij$Xi)acUNwFGYiO zvFi&1>{ybebz{WC^mJ)y7j?TALX|sK>l|sm zN()53)7P(Gr3X0J*~4*@L$Yq3?rGam%(#w;$ZGZ+<~myuhxr&JqJo4sX(>B<&nG^H zqqkvRZf`}XCvipJ5W8aQ-B~Hz)DU)qmX(!#PJ%4 z>`%RR$m4pY-Q>NIRkZsq9SHv4%}9{(JOkYLp{gnd+LW@PqJ;+o(k;{U795DvNsPu~ zRUEPa|A|#K+?-bBW4i#&BTJ@B16loq(j|g%?1UvLJ=o`gAfjaR*SIGHq{LMHKXwud z6}U|~UHu=yc^)z;N3DLNkJXRM`B=4~=|4oY&qx?(f-jsU98iYz-TE{6yvr6n`q&AF zpfZ-jSczwdJ>ZKdxs4Q0wQ+AopVehkMEYRB>+9(;{sV9T1AOuv24oGW96`G!in6;s z->7=%5X^vAE^drUElz+r9FoQ!V979gQt{6)MhSV>@TJ*cJhQ4K#YVXEM7bY9_F$V5 zJCkyoqBdBp^`}36Ib^W1(0hV2_}tWV1kn0pETmPiy#a{~zDp0tY&)!4PhVTH+DeR` zR^&U-ZqN?+)E9eJ5L3iWNtaflLivs-9<+AZs9n^J!9hO8N5?d~3FIFcAexn|0=ZPb zS3m0yo*clFc%?X)NNiCLDdJxnJMQmzT zaI}Qz#i0L)nciAazp_{)dtZEd7TUcmwV;e(YP8A}(#N*vrP7OhE8zbaC*tAqt^MB4$ADfP9I4gv&(K8} zrp(a859QXAy~JV$T=HC_@0c|;=Q6Y`>h~fF8WIhp@2IN6iegrx87fzNd$F+|!-{!k z>y|A|_J`?syDvNe*3{W4JREivNk-|CYF~&HRzS+r8{uNy%4@~|7O6uO&>m+1_y#2R3uym5o-5Zmr8+H& zaHKk{xg?u&&$CtafdG&luKo`N&j>J&9aHxs zr7vSzU?Y20gN~PxC+iQ+DG(>%Uu z{Q_N@GzKa@FB*)`~iperx>z;y&>3hTq+u~QTV*DoQ&XKOi|9XFlRCC~K?{l>vN%jN?o!n)D) zU;Et~gHTJFv$BIKDjT`XAULyUTtBW^TU||o=7%JvywH$q$BhZqqoH_QWz!p6WO&i@ zdq-tAW#T2Er<+#k@=s4sk3dQRQu_}ChK(g=-AFG%I0cD`BI*6eYFMl2lvyY>hJ+JS z?0K7nFu5gP+u=vMrhBAf9w{&=tKb~FH4=HOcdnke<{hd9{<9u7B2VPI1XNWxea)4bNWN$ zt zyBa_A^DC_n&1vFe`H_2pl{i02e92c?wQ!Sf_kX#^%LlL17l{6)B?(b^=8AqPg2u^e zjY4Pv8}o_Tgi>U&JEiABfE}GqW;R0VA%SV}o7b5Y3a>KlI}hHxmM}*2v+lA<&uf5iw?g47R`36wIZ(@Dq);`R>_JNGZ>fpf4}LP z|9!smW!#>|JNxYTwj}FTMS^TlG?b$u-OC)UlxJ?aGmzE+=%#Q-Vy+uRvrEy_x{9p) zm!W5qy82hyIye}~zavp`8MR)b2AN6vy%iTNEZ#suznOgjA*4wN2JlSr7$bljj%~?Q zaI{UYFN&rlG9+9@u6SV%L>l3})|o+v$qH*{)74#iLVNe}K<=9El|4cH$mkz2 zHj=2N{K<9>O0@fF)BYl&CJGCVmGFrI zcfA96Ej88)nTE!_=*ytXw2wl_DtY3?SfAtix{NqPr^J}8>d=R*@1CvVOif_2_m>{gDcefIo08w@)K zK}uoDNJh*VB5={t7y}X}+G@0XLJeyK8}w9DH6yKeqkc9X0Y0@`7b&DOF?|e6n+XRV;I7N_F5|{?AtdS zSTL4*uaYkR4=!%airrmLe60VA`T@w<;d9uUd8a%nKlRb=-F0T=KE^D2r- z2#`pk)Upk7tI+5QZ``RV>s!Di6Kq$ZR1 z3KorbM0Jnclx#EJZ>`EH@?DuYcND(~cih7BZxV)-3*|xB zPVkaf(w&Cj@R(O$a?oM0NalF}6bp2}DGuqh@k?m+k4g`$nL>3Yi&B6PlYnuu^*2re z_V)S~Qw$B)@CH4}NMWqtfP30b0%#Rp4Z#~hPsxVeA+`c(wY^G;-;A&}g= zC306Y0P=@HK^{bw4dG}Z6&hcZ=YoJT( zGyW6aIJJlYS$t>~2<%~V#lxyjJcPve1`U`&N(FP5!v#lJCBXI)hByym1Y6_VN#wzUGxtD&q<%7VQfA4Bz3moB}a`;oQ(S==7@pYY`AUhBoLh%iGuWmZjF?s$nq z_y~Mq3%&EIECBaP;bspF6B#&{n8V0<_k+zmVv~C=Lw5>H_PD^ea%lkp5VW{-2nUQ! zC_rT8yGrQ-5h&TU818$J5Kbn`1qYr;(@aV>Fpp9D7kzRg}vveNyF7Y_a8v7=`Wzi4O=cO8g~f5Px%R)=STv~j=&_hd;>C9 zY+JRjB8;6C=5RY--|@xk4fPxI&t?%;ph0Mzn|=#wFmU#Rv}KYxy(fN;S-q|fXwPsh)1ZrkO8y%6|1_#6Nd zo8S)6O)*;nr7i*6rg0M#<8(ES!KX>^LyafW%i)i-n!{!)wl}-|`+*X{O;)OFPH*?87lvvArNnPQme}J9 z;(eY3E&Zkg1U>EM5OrI!K8madwA_Bdk}UpX|^ zyxupX106cs0V)5RrBfccGEFqg5BK*$GE@fTIIW#M7N`svr)!#U`#tFe_IsET3l+16 z2bA){f+J8)pq4Os7TCO&l9z85{)1Wxr{wq?fP^I!k}v#%Mvc}Q0Ma==2W%Mvg%vdq z1V`}Eo-ZNc=}2Y~XI}8Mcp#Hk>^qPS!b2FuD(Xkoe)RttG~4m=P^S2?R=MlHw#ny% zn^|xGsyHf@pdyflz(y=o>+a#v{{6df0}tCx%0p0%_5g}t8HL<^+z~QLicsWlYP5(9 zpJkbgyERJ%LzmdF4(V}97_mv+PO2_}_<4IrN7B7UR4?`QJEz3b-}1#j6B z&5`j_FrZcx3@(8{pourkz2=J(1H?gEj0h+x)d)pagCLrOzIr~?R8u2y?y$Mwg4rf1 zSuI9r0a&j?zyLQoU80;it2OvpTEIkkn3NGjD+3D!`tH$lh@WI?Mw4g(@WAvkOwhZ5 z+K{R6BnmLG(zCfDy&$wHp|;lo<=_4l){H=y{z#Ob zw$~*+Jp7GN^sKdSyeyO=Y_5FVGM| z0`S!qlz9>nuAUAlZHljjjee5xP3mWI6(g4<7zuGAvL$$g4O1%k^sBy{$=|f!+2GL- zs0OS2DFgxuH>}A3-2SF(Ow8RWH9r_14}>$xf6f*-=T*Fp2uh#c?uWw$JWskdNYLxD zjd1^!^L3N`m?sZ7A|}Ht#GAz$rYEa={c)bYLetekuM{pW59&OT||D zuT4!}U~14eaR3Q82<$k=@x#U#ME4;J2=;j?O+LvA1|Xag5D>KJR|yHK$dY>XDeDMS z$lx!T22KuEtQz?huvd@;A?eO&Q8LzqO4%j z&ZziRX=QC`c@P=FcS`Rh*|Q`xb$ytT{V)NR?hCe47&<5T^z`>rPus7)vwTC>PX{1! zjju0qqt4eyT_62FNBd*VNWX)*jtAJk3f5LN_hRyyKNlf`HG;}vg>82CL7E^O?;MBtKCx0zEil0d0}6r^KMtzL3ugcCFMRu-qXogPEpPh?GoAk^c{%Tn{&3@9 l{P$1Y(zpNr|3k+d%kBc5BQZ-Y5FZZ0T;&)wLD|^te*q|CFTDT& literal 0 HcmV?d00001 diff --git a/docs/guides/kubernetes/migrating-from-google-cloud-run-functions-to-knative/Docker-Hub-Get-Emojis-Go.png b/docs/guides/kubernetes/migrating-from-google-cloud-run-functions-to-knative/Docker-Hub-Get-Emojis-Go.png new file mode 100644 index 0000000000000000000000000000000000000000..05bc73f1410ee9db12d0f95b59a8d99f9bdda3bf GIT binary patch literal 72467 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

C%k2JiW7H;*S|Y}Jc2{o=XJ#pz?5x9i>#Qn7c` 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 E0LR?^q5uE@ literal 0 HcmV?d00001 diff --git a/docs/guides/kubernetes/migrating-from-google-cloud-run-functions-to-knative/Kubernetes-Dashboard-Get-Emojis-Go.png b/docs/guides/kubernetes/migrating-from-google-cloud-run-functions-to-knative/Kubernetes-Dashboard-Get-Emojis-Go.png new file mode 100644 index 0000000000000000000000000000000000000000..654fac74c2e87e8424b16913c8b951bd15345fd7 GIT binary patch literal 166158 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�L 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

?h6_T3l>dw*y_*UQV7b3e?5tQSTW%23DN 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

tN)pr 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

  • 3~OK3xT0dFqEYSl#BBu$B@s>KhYAG6 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 literal 0 HcmV?d00001 diff --git a/docs/guides/kubernetes/migrating-from-google-cloud-run-functions-to-knative/index.md b/docs/guides/kubernetes/migrating-from-google-cloud-run-functions-to-knative/index.md index 99d098890e7..4f492ac4575 100644 --- a/docs/guides/kubernetes/migrating-from-google-cloud-run-functions-to-knative/index.md +++ b/docs/guides/kubernetes/migrating-from-google-cloud-run-functions-to-knative/index.md @@ -1,492 +1,689 @@ --- slug: migrating-from-google-cloud-run-functions-to-knative title: "Migrating from Google Cloud Run Functions to Knative" -description: "Two to three sentences describing your guide." -og_description: "Optional two to three sentences describing your guide when shared on social media. If omitted, the `description` parameter is used within social links." -authors: ["Linode"] -contributors: ["Linode"] +description: "Learn how to migrate your Go functions from Google Cloud to Knative with this step-by-step guide." +authors: ["Akamai"] +contributors: ["Akamai"] published: 2024-10-14 -keywords: ['list','of','keywords','and key phrases'] +keywords: ['knative','go','google cloud run','kubernetes','go functions','migrate to knative','go functions on knative','google cloud run migration','knative vs google cloud','google cloud run alternative','open source serverless'] license: '[CC BY-ND 4.0](https://creativecommons.org/licenses/by-nd/4.0)' external_resources: -- '[Link Title 1](http://www.example.com)' -- '[Link Title 2](http://www.example.net)' +- '[Knative](https://knative.dev/docs/)' +- '[Knative Functions](https://knative.dev/docs/functions/)' +- '[Knative Functions - Deep Dive (Video)](https://www.youtube.com/watch?v=l0EooTOGW84)' +- '[Accessing request traces - Knative](https://knative.dev/docs/serving/accessing-traces/)' +- '[Google Cloud Run Functions overview](https://cloud.google.com/functions/docs/concepts/overview)' +- '[Prometheus](https://prometheus.io)' +- '[Grafana Labs - Loki, Grafana, Tempo, Mimir](https://grafana.com)' +- '[OpenTelemetry](https://opentelemetry.io)' +- '[Google Cloud Run Function](https://github.com/the-gigi/fuzz-emoji/tree/main/google_cloud_function)' +- '[Knative function (Golang)](https://github.com/the-gigi/fuzz-emoji/tree/main/knative_functions/golang)' --- -This guide walks through how to migrate a Google Cloud Run function to a Knative function running on Linode Kubernetes Engine. +Knative is an open source platform that extends Kubernetes to manage serverless workloads. It provides tools to deploy, run, and manage serverless applications and functions, enabling automatic scaling and efficient resource utilization. Knative consists of several components: -Knative is an open-source platform that extends Kubernetes to manage serverless workloads. It provides components to deploy, run, and manage serverless applications and functions, enabling automatic scaling and efficient use of resources. Knative consists of several components: +- **Serving**: Deploys and runs serverless containers. +- **Eventing**: Manages event-driven architectures. +- **Functions**: Deploys and runs functions locally and on Kubernetes. -- **Serving**: Deploying and running serverless containers -- **Eventing**: Managing event-driven architectures -- **Functions**: Deploying and running functions locally and on Kubernetes +This guide walks through the process of migrating a Google Cloud Run function to a Knative function running on the Linode Kubernetes Engine (LKE). -## Prerequisites +## Before You Begin -To follow along in this walkthrough, you’ll need the following: +1. Read our [Getting Started with Linode](/docs/products/platform/get-started/) guide, and create a Linode account if you do not already have one. -- A [Linode account](https://www.linode.com/cfe) -- A [Linode API token](https://www.linode.com/docs/products/platform/accounts/guides/manage-api-tokens/) -- [Git](https://git-scm.com/downloads) -- [Kubectl](https://kubernetes.io/docs/tasks/tools/) -- The [Linode CLI](https://www.linode.com/docs/products/tools/cli/guides/install/) -- Knative’s [`func` CLI](https://knative.dev/docs/functions/install-func/) +1. Create a personal access token using the instructions in our [Manage personal access tokens](https://techdocs.akamai.com/cloud-computing/docs/manage-personal-access-tokens) guide. -## Step 1: Provision a Kubernetes Cluster on Linode +1. Ensure that you have [Git](https://git-scm.com/downloads) installed. -To provision resources on Linode, this guide will use the [Linode CLI](https://github.com/linode/linode-cli). +1. Follow the steps in the *Install kubectl* section of our [Getting started with LKE](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-lke-linode-kubernetes-engine) guide to install `kubectl`. -### Check Kubernetes versions +1. Install the Linode CLI using the instructions in our [Install and configure the CLI](https://techdocs.akamai.com/cloud-computing/docs/install-and-configure-the-cli) guide. -First, use the Linode CLI (`linode`) to see what Kubernetes versions are available: +1. Ensure that you have Knative's [`func` CLI](https://knative.dev/docs/functions/install-func/) installed. -```command -$ linode lke versions-list -┌───────┐ -│ id │ -├───────┤ -│ 1.30 │ -├───────┤ -│ 1.29 │ -└───────┘ -``` +1. Ensure that you have [Docker](https://www.docker.com/products/docker-desktop/) installed and have a [Docker Hub](https://www.docker.com/products/docker-hub/) account. + +1. Ensure that Go is installed on your system: + + ```command + sudo apt install golang-go + ``` + +1. Install `jq`, a lightweight command line JSON processor: + + ```command + sudo apt install jq + ``` + +1. Install `tree`, a command line utility that displays directory structures in a tree-like format: + + ```command + sudo apt install tree + ``` + +{{< note >}} +This guide is written for a non-root user. Commands that require elevated privileges are prefixed with `sudo`. If you’re not familiar with the `sudo` command, see the [Users and Groups](/docs/guides/linux-users-and-groups/) guide. +{{< /note >}} + +## Provision a Kubernetes Cluster + +While there are several ways to create a Kubernetes cluster on Linode, this guide uses the [Linode CLI](https://github.com/linode/linode-cli) to provision resources. + +1. Use the Linode CLI command (`linode`) to see available Kubernetes versions: + + ```command + linode lke versions-list + ``` + + ```output + ┌──────┐ + │ id │ + ├──────┤ + │ 1.31 │ + ├──────┤ + │ 1.30 │ + ├──────┤ + │ 1.29 │ + └──────┘ + ``` + + It's generally recommended to provision the latest version of Kubernetes unless specific requirements dictate otherwise. + +1. Use the following command to list available Linode plans, including plan ID, pricing, and performance details. For more detailed pricing information, see [Akamai Connected Cloud: Pricing](https://www.linode.com/pricing): + + ```command + linode linodes types + ``` + + This outputs information on different Linode plans, including pricing and performance details. + +1. The examples in this guide use the **g6-standard-2** Linode, which features two CPU cores and 4 GB of memory. Run the following command to display detailed information in JSON for this Linode plan: + + ```command + linode linodes types --label "Linode 4GB" --json --pretty + ``` + + ```output + [ + { + "addons": { + "backups": { + "price": { + "hourly": 0.008, + "monthly": 5.0 + }, + "region_prices": [ + { + "hourly": 0.009, + "id": "id-cgk", + "monthly": 6.0 + }, + { + "hourly": 0.01, + "id": "br-gru", + "monthly": 7.0 + } + ] + } + }, + "class": "standard", + "disk": 81920, + "gpus": 0, + "id": "g6-standard-2", + "label": "Linode 4GB", + "memory": 4096, + "network_out": 4000, + "price": { + "hourly": 0.036, + "monthly": 24.0 + }, + "region_prices": [ + { + "hourly": 0.043, + "id": "id-cgk", + "monthly": 28.8 + }, + { + "hourly": 0.05, + "id": "br-gru", + "monthly": 33.6 + } + ], + "successor": null, + "transfer": 4000, + "vcpus": 2 + } + ] + ``` + +1. View available regions with the `regions list` command: + + ```command + linode regions list + ``` + +1. With a Kubernetes version and Linode type selected, use the following command to create a cluster named `knative-playground` in the `us-mia` (Miami, FL) region with three nodes and auto-scaling. Replace {{< placeholder "knative-playground" >}} and {{< placeholder "us-mia" >}} with a cluster label and region of your choosing, respectively: + + ```command + linode lke cluster-create \ + --label {{< placeholder "knative-playground" >}} \ + --k8s_version 1.31 \ + --region {{< placeholder "us-mia" >}} \ + --node_pools '[{ + "type": "g6-standard-2", + "count": 3, + "autoscaler": { + "enabled": true, + "min": 3, + "max": 8 + } + }]' + ``` -In general, you should provision the latest version, unless there are some special circumstances. + Once your cluster is successfully created, you should see output similar to the following: -### Check available node types + ```output + Using default values: {}; use the --no-defaults flag to disable defaults + ┌────────────────────┬────────┬─────────────┐ + │ label │ region │ k8s_version │ + ├────────────────────┼────────┼─────────────┤ + │ knative-playground │ us-mia │ 1.31 │ + └────────────────────┴────────┴─────────────┘ + ``` -Next, check what [Linode plans](https://www.linode.com/pricing/) are available. +### Access the Kubernetes Cluster -$ linode linodes types +To access your Kubernetes cluster, fetch the cluster credentials in the form of a `kubeconfig` file. -This will print information on different Linode plans, including pricing and performance details. This guide uses the **g6-standard-2** Linode, which comes with two CPU cores and 4 GB of memory. +1. Use the following command to retrieve the cluster's ID: -To display the information for this Linode, run the following command: + ```command + CLUSTER_ID=$(linode lke clusters-list --json | \ + jq -r \ + '.[] | select(.label == "knative-playground") | .id') + ``` -```command -$ linode linodes types --label "Linode 4GB" --json --pretty -[ - { - "addons": {...}, - "class": "standard", - "disk": 81920, - "gpus": 0, - "id": "g6-standard-2", - "label": "Linode 4GB", - "memory": 4096, - "network_out": 4000, - "price": { - "hourly": 0.036, - "monthly": 24.0 - }, - "region_prices": [...], - "successor": null, - "transfer": 4000, - "vcpus": 2 - } -] -``` +1. Create a hidden `.kube` folder in your user's home directory: -### Create the Kubernetes cluster + ```command + mkdir ~/.kube + ``` -After selecting a Kubernetes version and a Linode type for your cluster, create a cluster in the `ca-central` region with three nodes and auto-scaling enabled. +1. Retrieve the `kubeconfig` file and save it to `~/.kube/lke-config`: -```command -$ linode lke cluster-create \ - --label knative-playground \ - --k8s_version 1.30 \ - --region ca-central \ - --node_pools '[{ - "type": "g6-standard-2", - "count": 3, - "autoscaler": { - "enabled": true, - "min": 3, - "max": 8 - } - }]' -``` + ```command + linode lke kubeconfig-view --json "$CLUSTER_ID" | \ + jq -r '.[0].kubeconfig' | \ + base64 --decode > ~/.kube/lke-config + ``` -After your cluster is successfully created, you should see the following: +1. Once you have the `kubeconfig` file saved, access your cluster by using `kubectl` and specifying the file: -```output -Using default values: {}; use the --no-defaults flag to disable defaults -┌─────────┬────────────────────┬────────────┬─────────────┬─────────────────────────────────┐ -│ id │ label │ region │ k8s_version │ control_plane.high_availability │ -├─────────┼────────────────────┼────────────│─────────────┼─────────────────────────────────┤ -│ 202679 │ knative-playground │ ca-central │ 1.30 │ False │ -└─────────┴────────────────────┴────────────┴─────────────┴─────────────────────────────────┘ -``` + ```command + kubectl get no --kubeconfig ~/.kube/lke-config + ``` -### Access the Kubernetes cluster + ```output + NAME STATUS ROLES AGE VERSION + lke244724-387910-0fef31d70000 Ready 5m51s v1.31.0 + lke244724-387910-13ae14340000 Ready 5m48s v1.31.0 + lke244724-387910-5f9c3b0e0000 Ready 5m40s v1.31.0 + ``` -Next, fetch your cluster credentials to access it in the form of a kubeconfig file. The following commands will fetch a kubeconfig file for the cluster and save it in `~/.kube/lke-config`. + {{< note >}} + Optionally, to avoid specifying `--kubeconfig ~/.kube/lke-config` with every `kubectl` command, you can set an environment variable for your current terminal window session: -``` -$ CLUSTER_ID=$(linode lke clusters-list --json | \ - jq -r \ - '.[] | select(.label == "knative-playground") | .id') + ```command + export KUBECONFIG=~/.kube/lke-config + ``` + Then run: -$ linode lke kubeconfig-view --json "$CLUSTER_ID" | \ - jq -r '.[0].kubeconfig' | \ - base64 --decode > ~/.kube/lke-config -``` + ```command + kubectl get no + ``` + {{< /note >}} -Access your cluster using kubectl by specifying the kubeconfig file: +## Set Up Knative on LKE -```command -$ kubectl get no --kubeconfig ~/.kube/lke-config -``` +There are multiple ways to [install Knative on a Kubernetes cluster](https://knative.dev/docs/install/). The examples in this guide use the YAML manifests method. -```output -NAME STATUS ROLES AGE VERSION -lke202679-293551-06f33ccf0000 Ready 8h v1.30.1 -lke202679-293551-0bb2596c0000 Ready 8h v1.30.1 -lke202679-293551-58ccf2360000 Ready 8h v1.30.1 -``` +### Install Knative -**Note**: Optionally, you can avoid needing to include `--kubeconfig ~/.kube/lke-config` with every kubectl command by setting an environment variable for your current terminal window session. +1. Run the following command to install the Knative CRDs: -```command -$ export KUBECONFIG=~/.kube/lke-config -``` + ```command + RELEASE=releases/download/knative-v1.15.2/serving-crds.yaml + kubectl apply -f "https://github.com/knative/serving/$RELEASE" + ``` + + Upon successful execution, you should see a similar output indicating that the CRDs are configured: + + ```output + customresourcedefinition.apiextensions.k8s.io/certificates.networking.internal.knative.dev created + customresourcedefinition.apiextensions.k8s.io/configurations.serving.knative.dev created + customresourcedefinition.apiextensions.k8s.io/clusterdomainclaims.networking.internal.knative.dev created + customresourcedefinition.apiextensions.k8s.io/domainmappings.serving.knative.dev created + customresourcedefinition.apiextensions.k8s.io/ingresses.networking.internal.knative.dev created + customresourcedefinition.apiextensions.k8s.io/metrics.autoscaling.internal.knative.dev created + customresourcedefinition.apiextensions.k8s.io/podautoscalers.autoscaling.internal.knative.dev created + customresourcedefinition.apiextensions.k8s.io/revisions.serving.knative.dev created + customresourcedefinition.apiextensions.k8s.io/routes.serving.knative.dev created + customresourcedefinition.apiextensions.k8s.io/serverlessservices.networking.internal.knative.dev created + customresourcedefinition.apiextensions.k8s.io/services.serving.knative.dev created + customresourcedefinition.apiextensions.k8s.io/images.caching.internal.knative.dev created + ``` + +1. Next, install the Knative **Serving** component: + + ```command + RELEASE=releases/download/knative-v1.15.2/serving-core.yaml + kubectl apply -f "https://github.com/knative/serving/$RELEASE" + ``` + + You should see similar output indicating that various resources are now created: + + ```output + namespace/knative-serving created + role.rbac.authorization.k8s.io/knative-serving-activator created + clusterrole.rbac.authorization.k8s.io/knative-serving-activator-cluster created + clusterrole.rbac.authorization.k8s.io/knative-serving-aggregated-addressable-resolver created + clusterrole.rbac.authorization.k8s.io/knative-serving-addressable-resolver created + clusterrole.rbac.authorization.k8s.io/knative-serving-namespaced-admin created + clusterrole.rbac.authorization.k8s.io/knative-serving-namespaced-edit created + clusterrole.rbac.authorization.k8s.io/knative-serving-namespaced-view created + clusterrole.rbac.authorization.k8s.io/knative-serving-core created + clusterrole.rbac.authorization.k8s.io/knative-serving-podspecable-binding created + serviceaccount/controller created + clusterrole.rbac.authorization.k8s.io/knative-serving-admin created + clusterrolebinding.rbac.authorization.k8s.io/knative-serving-controller-admin created + clusterrolebinding.rbac.authorization.k8s.io/knative-serving-controller-addressable-resolver created + serviceaccount/activator created + rolebinding.rbac.authorization.k8s.io/knative-serving-activator created + clusterrolebinding.rbac.authorization.k8s.io/knative-serving-activator-cluster created + customresourcedefinition.apiextensions.k8s.io/images.caching.internal.knative.dev unchanged + certificate.networking.internal.knative.dev/routing-serving-certs created + customresourcedefinition.apiextensions.k8s.io/certificates.networking.internal.knative.dev unchanged + customresourcedefinition.apiextensions.k8s.io/configurations.serving.knative.dev unchanged + customresourcedefinition.apiextensions.k8s.io/clusterdomainclaims.networking.internal.knative.dev unchanged + customresourcedefinition.apiextensions.k8s.io/domainmappings.serving.knative.dev unchanged + customresourcedefinition.apiextensions.k8s.io/ingresses.networking.internal.knative.dev unchanged + customresourcedefinition.apiextensions.k8s.io/metrics.autoscaling.internal.knative.dev unchanged + customresourcedefinition.apiextensions.k8s.io/podautoscalers.autoscaling.internal.knative.dev unchanged + customresourcedefinition.apiextensions.k8s.io/revisions.serving.knative.dev unchanged + customresourcedefinition.apiextensions.k8s.io/routes.serving.knative.dev unchanged + customresourcedefinition.apiextensions.k8s.io/serverlessservices.networking.internal.knative.dev unchanged + customresourcedefinition.apiextensions.k8s.io/services.serving.knative.dev unchanged + image.caching.internal.knative.dev/queue-proxy created + configmap/config-autoscaler created + configmap/config-certmanager created + configmap/config-defaults created + configmap/config-deployment created + configmap/config-domain created + configmap/config-features created + configmap/config-gc created + configmap/config-leader-election created + configmap/config-logging created + configmap/config-network created + configmap/config-observability created + configmap/config-tracing created + horizontalpodautoscaler.autoscaling/activator created + poddisruptionbudget.policy/activator-pdb created + deployment.apps/activator created + service/activator-service created + deployment.apps/autoscaler created + service/autoscaler created + deployment.apps/controller created + service/controller created + horizontalpodautoscaler.autoscaling/webhook created + poddisruptionbudget.policy/webhook-pdb created + deployment.apps/webhook created + service/webhook created + validatingwebhookconfiguration.admissionregistration.k8s.io/config.webhook.serving.knative.dev created + mutatingwebhookconfiguration.admissionregistration.k8s.io/webhook.serving.knative.dev created + validatingwebhookconfiguration.admissionregistration.k8s.io/validation.webhook.serving.knative.dev created + secret/webhook-certs created + ``` + +### Install Kourier + +1. Knative relies on an underlying networking layer. [Kourier](https://github.com/knative-extensions/net-kourier) is designed specifically for Knative, and the examples in this guide use Kourier for [Knative networking](https://knative.dev/docs/install/operator/knative-with-operators/#install-the-networking-layer). Use the commands below to download and install the latest Kourier release: + + ```command + RELEASE=releases/download/knative-v1.15.1/kourier.yaml + kubectl apply -f "https://github.com/knative/net-kourier/$RELEASE" + ``` + + The output should again indicate the creation of multiple new elements: + + ```output + namespace/kourier-system created + configmap/kourier-bootstrap created + configmap/config-kourier created + serviceaccount/net-kourier created + clusterrole.rbac.authorization.k8s.io/net-kourier created + clusterrolebinding.rbac.authorization.k8s.io/net-kourier created + deployment.apps/net-kourier-controller created + service/net-kourier-controller created + deployment.apps/3scale-kourier-gateway created + service/kourier created + service/kourier-internal created + horizontalpodautoscaler.autoscaling/3scale-kourier-gateway created + poddisruptionbudget.policy/3scale-kourier-gateway-pdb created + ``` + +1. The following command configures Knative to use Kourier as the default ingress controller: + + ```command + kubectl patch configmap/config-network \ + --namespace knative-serving \ + --type merge \ + --patch \ + '{"data":{"ingress-class":"kourier.ingress.networking.knative.dev"}}' + ``` + + ```output + configmap/config-network patched + ``` + + {{< note >}} + If Istio is already installed in your cluster, you may choose to [reuse it for Knative](https://knative.dev/docs/install/operator/knative-with-operators/#__tabbed_1_2). + {{< /note >}} + +1. With Kourier configured, the Knative serving installation now has a [`LoadBalancer`](https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer) service for external access. Use the following command to retrieve the external IP address in case you want to set up your own DNS later: + + ```command + kubectl get service kourier -n kourier-system + ``` + + The output should display the external IP address of the `LoadBalancer`: + + ```output + NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE + kourier LoadBalancer 10.128.164.131 172.233.166.148 80:30227/TCP,443:32467/TCP 65s + ``` + +1. Since Kourier adds several deployments, check the updated list to ensure everything functions correctly: + + ```command + kubectl get deploy -n knative-serving + ``` + + Use the output to confirm availability of the various components: + + ```output + NAME READY UP-TO-DATE AVAILABLE AGE + activator 1/1 1 1 2m29s + autoscaler 1/1 1 1 2m29s + controller 1/1 1 1 2m29s + net-kourier-controller 1/1 1 1 85s + webhook 1/1 1 1 2m28s + ``` -```command -$ kubectl get no -``` +### Configure DNS -```output -NAME STATUS ROLES AGE VERSION -lke202679-293551-06f33ccf0000 Ready 8h v1.30.1 -lke202679-293551-0bb2596c0000 Ready 8h v1.30.1 -lke202679-293551-58ccf2360000 Ready 8h v1.30.1 -``` +1. this guide use the Magic DNS method to [configure DNS](https://knative.dev/docs/install/operator/knative-with-operators/#configure-dns), which leverages the [sslip.io](http://sslip.io) DNS service. When a request is made to a subdomain of sslip.io containing an embedded IP address, the service resolves that IP address. For example, a request to [https://52.0.56.137.sslip.io](https://52.0.56.137.sslip.io) returns `52.0.56.137` as the IP address. Use the `default-domain` job to configure Knative Serving to use sslip.io: -## Step 2: Set Up Knative on LKE + ```command + MANIFEST=knative-v1.15.2/serving-default-domain.yaml + kubectl apply -f "https://github.com/knative/serving/releases/download/$MANIFEST" + ``` -There are multiple ways to [install Knative on a Kubernetes cluster](https://knative.dev/docs/install/). This walkthrough will use the YAML manifests method. + Upon successful execution, you should see output confirming the creation of the `default-domian` job and service: -### Install the Knative CRDs + ```output + job.batch/default-domain created + service/default-domain-service created + ``` -Run the following command to install the Knative CRDs: +With Knative now operational in your cluster, you can begin working with Knative Functions. -```command -$ RELEASE=releases/download/knative-v1.14.1/serving-crds.yaml \ - kubectl apply -f "https://github.com/knative/serving/$RELEASE" -``` +## Work with Knative Functions and the `func` CLI -```output -cus...k8s.io/certificates.networking.internal.knative.dev configured -cus...k8s.io/configurations.serving.knative.dev configured -cus...k8s.io/clusterdomainclaims.networking.internal.knative.dev configured -cus...k8s.io/domainmappings.serving.knative.dev configured cus...k8s.io/ingresses.networking.internal.knative.dev configured cus...k8s.io/metrics.autoscaling.internal.knative.dev configured cus...k8s.io/podautoscalers.autoscaling.internal.knative.dev configured -cus...k8s.io/revisions.serving.knative.dev configured cus...k8s.io/routes.serving.knative.dev configured -cus...k8s.io/serverlessservices.networking.internal.knative.dev configured -cus...k8s.io/services.serving.knative.dev configured cus...k8s.io/images.caching.internal.knative.dev configured -``` +Knative Functions is a programming model that simplifies writing distributed applications on Kubernetes and Knative. It enables developers to create stateless, event-driven functions without requiring in-depth knowledge of containers, Kubernetes, or Knative itself. -### Install Knative Serving +The [`func`](https://github.com/knative/func) CLI provides tools for developers to manage the entire lifecycle of functions (creating, building, deploying, and invoking). This allows for local development and testing of functions without the need for a local Kubernetes cluster. -Next, install the Knative **Serving** component. +1. To get started, run the following command: ```command -$ RELEASE=releases/download/knative-v1.14.1/serving-core.yaml \ - kubectl apply -f "https://github.com/knative/serving/$RELEASE" +func ``` -```output -pod/autoscaler-6c785b5655-r995x -pod/controller-6dd9b8448-dckv8 -pod/webhook-7dbc5d48d7-dkxm7 -service/activator-service -service/autoscaler -service/autoscaler-bucket-00-of-01 -service/controller -service/webhook -deployment.apps/activator -deployment.apps/autoscaler -deployment.apps/controller -deployment.apps/webhook -replicaset.apps/activator-5886599f75 -replicaset.apps/autoscaler-6c785b5655 -replicaset.apps/controller-6dd9b8448 -replicaset.apps/webhook-7dbc5d48d7 -horizontalpodautoscaler.autoscaling/activator horizontalpodautoscaler.autoscaling/webhook -``` + This displays help information for managing Knative Function resources: -### Install the networking layer + ```output + func is the command line interface for managing Knative Function resources -Knative relies on an underlying networking layer. There are [several options for Knative networking](https://knative.dev/docs/install/operator/knative-with-operators/#install-the-networking-layer). [Kourier](https://github.com/knative-extensions/net-kourier) was designed specifically for Knative. The following commands will install Kourier and configure Knative to use Kourier as the networking layer: + Create a new Node.js function in the current directory: + func create --language node myfunction -```command -$ RELEASE=releases/download/knative-v1.14.0/kourier.yaml \ - kubectl apply -f "https://github.com/knative/net-kourier/$RELEASE" -``` + Deploy the function using Docker hub to host the image: + func deploy --registry docker.io/alice -```command -$ kubectl patch configmap/config-network \ - --namespace knative-serving \ - --type merge \ - --patch \ - '{"data":{"ingress-class":"kourier.ingress.networking.knative.dev"}}' -``` + Learn more about Functions: https://knative.dev/docs/functions/ + Learn more about Knative at: https://knative.dev -**Note**: If Istio is already installed in your cluster, you may choose to [reuse it for Knative](https://knative.dev/docs/install/operator/knative-with-operators/#__tabbed_1_2) as well. + Primary Commands: + create Create a function + describe Describe a function + deploy Deploy a function + delete Undeploy a function + list List deployed functions + subscribe Subscribe a function to events -### Record the external IP address + Development Commands: + run Run the function locally + invoke Invoke a local or remote function + build Build a function container -With Kourier configured, the Knative serving installation now has a [`LoadBalancer`](https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer) service that can be used for external access. Retrieve the external IP address, in case you want to set up your own DNS later: + System Commands: + config Configure a function + languages List available function language runtimes + templates List available function source templates + repository Manage installed template repositories + environment Display function execution environment information -```command -$ kubectl get service kourier -n kourier-system -``` + Other Commands: + completion Output functions shell completion code + version Function client version information -```output -NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE -kourier LoadBalancer 10.128.128.65 172.105.12.189 80:30580/TCP, - 443:31780/TCP 2m56s -``` + Use "func --help" for more information about a given command. + ``` -### Verify installation +### Create a Function -Since Kourier added a few deployments, look at the updated list to make sure everything is in order. +1. Use the following command to create an example Golang function (`get-emojis-go`) that can be invoked via an HTTP endpoint (the default invocation method): -```command -$ kubectl get deploy -n knative-serving -``` + ```command + func create -l go get-emojis-go + ``` -```output -NAME READY UP-TO-DATE AVAILABLE AGE -activator 1/1 1 1 5m21s -autoscaler 1/1 1 1 5m20s -controller 1/1 1 1 5m19s -net-kourier-controller 1/1 1 1 4m50s -Webhook 1/1 1 1 5m18s -``` + This command creates a complete directory with multiple files: -### Configure DNS + ```output + Created go function in /home/{{< placeholder "USERNAME" >}}/get-emojis-go + ``` -Knative provides [multiple ways to configure DNS](https://knative.dev/docs/install/operator/knative-with-operators/#configure-dns). The Magic DNS method from Knative uses the [sslip.io](http://sslip.io) DNS service. When a request is sent to a subdomain of sslip.io that has an IP address embedded, the service returns that IP address. For example, sending a request to [https://52.0.56.137.sslip.io](https://52.0.56.137.sslip.io) returns `52.0.56.137` as the IP address. +1. Examine the contents of the newly created `~/get-emojis-go` directory: -The `default-domain` job configures Knative Serving to use sslip.io. + ```command + ls -laGh get-emojis-go + ``` -```command -$ MANIFEST=knative-v1.14.1/serving-default-domain.yaml \ - kubectl apply -f \ - "https://github.com/knative/serving/releases/download/$MANIFEST" -``` + ```output + total 40K + drwxr-xr-x 3 {{< placeholder "USERNAME" >}} 4.0K Oct 14 15:07 . + drwxr-x--- 9 {{< placeholder "USERNAME" >}} 4.0K Oct 14 15:07 .. + drwxrwxr-x 2 {{< placeholder "USERNAME" >}} 4.0K Oct 14 15:07 .func + -rw-r--r-- 1 {{< placeholder "USERNAME" >}} 217 Oct 14 15:07 .funcignore + -rw-r--r-- 1 {{< placeholder "USERNAME" >}} 97 Oct 14 15:07 func.yaml + -rw-r--r-- 1 {{< placeholder "USERNAME" >}} 235 Oct 14 15:07 .gitignore + -rw-r--r-- 1 {{< placeholder "USERNAME" >}} 25 Oct 14 15:07 go.mod + -rw-r--r-- 1 {{< placeholder "USERNAME" >}} 483 Oct 14 15:07 handle.go + -rw-r--r-- 1 {{< placeholder "USERNAME" >}} 506 Oct 14 15:07 handle_test.go + -rw-r--r-- 1 {{< placeholder "USERNAME" >}} 611 Oct 14 15:07 README.md + ``` -```output -job.batch/default-domain created -service/default-domain-service created -``` +1. While reviewing the purpose of each file is outside the scope of this guide, you should examine the `handle.go` file, the default implementation that Knative generates: -With Knative now operational in your cluster, you can begin working with Knative Functions. + ```command + cat ~/get-emojis-go/handle.go + ``` -### Step 3: Work with Knative Functions and the `func` CLI + ```file {title="handle.go" lang="go"} + package function -Knative Functions is a programming model that simplifies the writing of distributed applications that run on Kubernetes and Knative, without requiring in-depth knowledge of containers, Kubernetes, or Knative itself. Developers can create stateless, event-driven functions that run as Knative services and run their functions locally during development and testing without needing a local Kubernetes cluster. + import ( + "fmt" + "net/http" + "net/http/httputil" + ) -The [`func`](https://github.com/knative/func) CLI streamlines the developer experience for working with Knative Functions. + // Handle an HTTP Request. + func Handle(w http.ResponseWriter, r *http.Request) { + /* + * YOUR CODE HERE + * + * Try running `go test`. Add more test as you code in `handle_test.go`. + */ + + dump, err := httputil.DumpRequest(r, true) + if err != nil { + http.Error(w, err.Error(), http.StatusInternalServerError) + return + } -### The `func` CLI + fmt.Println("Received request") + fmt.Printf("%q\n", dump) + fmt.Fprintf(w, "%q", dump) + } + ``` -The func CLI lets developers go through the complete lifecycle of functions—creating, building, deploying, and invoking. + Note that this function works as a server that returns information from the original request. -```command -$ func -``` +### Build a Function Image -```output -func is the command line interface for managing Knative Function resources - - Create a new Node.js function in the current directory: - func create --language node myfunction - - Deploy the function using Docker hub to host the image: - func deploy --registry docker.io/alice - -Learn more about Functions: https://knative.dev/docs/functions/ -Learn more about Knative at: https://knative.dev - -Primary Commands: - create Create a function - describe Describe a function - deploy Deploy a function - delete Undeploy a function - list List deployed functions - subscribe Subscribe a function to events - -Development Commands: - run Run the function locally - invoke Invoke a local or remote function - build Build a function container - -System Commands: - config Configure a function - languages List available function language runtimes - templates List available function source templates - repository Manage installed template repositories - environment Display function execution environment information - -Other Commands: - completion Output functions shell completion code - version Function client version information - -Use "func --help" for more information about a given command. -``` +The next step is to create a container image from your function. Since the function is intended to run on a Kubernetes cluster, it must be containerized. Knative Functions facilitates this process for developers, abstracting the complexities of Docker and Dockerfiles. -### Create a function +1. Navigate into the `~/get-emojis-go` directory: -Create a Golang function that can be invoked via an HTTP endpoint (the default invocation method): + ```command + cd ~/get-emojis-go + ``` -```command -$ func create -l go get-emojis-go -``` +1. To build your function, run the following `build` command while in the `~/get-emojis-go` directory, specifying Docker Hub (`docker.io`) as the registry along with your {{< placeholder "DOCKER_HUB_USERNAME" >}}: -This command creates a complete directory with multiple files. + ```command + func build --registry docker.io/{{< placeholder "DOCKER_HUB_USERNAME" >}} + ``` -```output -$ ls -laGh get-emojis-go -total 40K -drwxr-xr-x 3 coder 4.0K Aug 5 08:46 . -drwxrwxr-x 3 coder 4.0K Aug 5 08:46 .. -drwxrwxr-x 2 coder 4.0K Aug 5 08:46 .func --rw-r--r-- 1 coder 217 Aug 5 08:46 .funcignore --rw-r--r-- 1 coder 94 Aug 5 08:46 func.yaml --rw-r--r-- 1 coder 235 Aug 5 08:46 .gitignore --rw-r--r-- 1 coder 25 Aug 5 08:46 go.mod --rw-r--r-- 1 coder 483 Aug 5 08:46 handle.go --rw-r--r-- 1 coder 506 Aug 5 08:46 handle_test.go --rw-r--r-- 1 coder 611 Aug 5 08:46 README.md -``` + This command fetches a base image and builds a Docker image from your function. You should see output similar to the following as the function image is built: -Covering the purpose of each file is outside the scope of this guide. However, you should examine the code for `func.go`, which is the default implementation that Knative generates. + ```output + Building function image + Still building + Still building + Yes, still building + Don't give up on me + Still building + This is taking a while + 🙌 Function built: index.docker.io/{{< placeholder "DOCKER_HUB_USERNAME" >}}/get-emojis-go:latest + ``` -```file -package function +1. To verify that the image is successfully created, use the following command to list your Docker images: -import ( - "fmt" - "net/http" - "net/http/httputil" -) + ```command + docker images | grep -E 'knative|get-emojis-go|ID' + ``` -// Handle an HTTP Request. -func Handle(w http.ResponseWriter, r *http.Request) { - /* - * YOUR CODE HERE - * - * Try running `go test`. Add more test as you code in `handle_test.go`. - */ - - dump, err := httputil.DumpRequest(r, true) - if err != nil { - http.Error(w, err.Error(), http.StatusInternalServerError) - return - } - - fmt.Println("Received request") - fmt.Printf("%q\n", dump) - fmt.Fprintf(w, "%q", dump) -} -``` + ```output + REPOSITORY TAG IMAGE ID CREATED SIZE + {{< placeholder "DOCKER_HUB_USERNAME" >}}/get-emojis-go latest 9a1aa84a2b79 44 years ago 44MB + ghcr.io/knative/builder-jammy-tiny 0.0.240 0f71b69eedae 44 years ago 770MB + ``` -This function works as a server that returns information from the original request. + {{< note >}} + While the `CREATED` timestamp may be incorrect, the image is valid. + {{< /note >}} -### Build a function image +### Run the Function Locally -The next step is to create a container image from your function. Remember that the function must eventually run on a Kubernetes cluster, and that requires a containerized workload. Knative Functions facilitates this containerization for developers, abstracting the concerns related to Dockerfiles and Docker. Simply run the `func build` command. All you need is access to a container registry. +1. Use the `run` command to run the function locally: -```command -~/get-emojis-go$ func build --registry docker.io/your_username --push -``` + ```command + func run + ``` -```output -Building function image -Still building -Still building -Yes, still building -Don't give up on me -🙌 Function build: docker.io/your_username/get-emojis-go:latest -``` + The terminal should display output indicating that the function now runs on `localhost` at port `8080`: -This command fetches a base image, builds a Docker image from the function, and pushes it to the Docker registry. + ```output + function up-to-date. Force rebuild with --build + Running on host port 8080 + Initializing HTTP function + listening on http port 8080 + ``` -```command -$ docker images | rg 'knative|get-emojis-go|ID' -``` +1. With your function running, open a second terminal session and enter the following command: -```ouput -REPOSITORY TAG IMAGE ID CREATED SIZE -your_username/get-emojis-go latest 69af52cecc6f 44 years ago 44MB -``` + ```command + curl "http://localhost:8080?a=1&b=2" + ``` -The `CREATED` timestamp is incorrect, but the image is valid. + By default, this initial implementation returns the URL query parameters as a JSON object. The resulting output should be: -### Run the function locally + ```output + {"a": "1", "b": "2"} + ``` -To run the function locally, use the `func run` command. + Meanwhile, you should see output similar to the following in your original terminal window: -```command -~/get-emojis-go$ func run -``` + ```output + Received request + GET http://localhost:8080/?a=1&b=2 localhost:8080 + Host: localhost:8080 + User-Agent: curl/7.81.0 + Accept: */* + URL Query String: + {"a": "1", "b": "2"} + ``` -```output -function up-to-date. Force rebuild with --build -Running on host port 8080 -Initializing HTTP function -listening on http port 8080 - -The function now runs on localhost at port 8080. As previously mentioned, this initial implementation outputs information from the original request. With your function running, navigate to `http://localhost:8080` in your browser. You should see the following in your terminal window: - -Received request -GET / HTTP/1.1 localhost:8080 - Host: localhost:8080 - Connection: keep-alive - Sec-Ch-Ua: "Chromium"; v="124", "Google Chrome"… - User-Agent: Mozilla/5.0 (Macintosh; Intel Mac O… - Sec-Fetch-User: ?1 - Sec-Ch-Ua-Mobile: ?0 - Sec-Fetch-Site: none - Sec-Fetch-Dest: document - Sec-Ch-Ua-Platform: "macOS" - Upgrade-Insecure-Requests: 1 - Accept-Encoding: gzip, deflate, br, zstd - Accept-Language: en-US,en;q=0.9 - Accept: text/html,application/xhtml+xml,applica… - Sec-Fetch-Mode: navigate - -Deploy the function -Deploy the function to your Kubernetes cluster as a Knative function. - -~/get-emojis-go$ func deploy - -… -Pushing function image to the registry "index.docker.io" using the "your_username" user credentials -🎯 Creating Triggers on the cluster -✅ Function deployed in namespace "default" and exposed at URL: - http://get-emojis-go.default.172.105.12.189.sslip.io -``` +1. When done, close the second terminal and stop the function in the original terminal by pressing the CTRL+C keys. + +### Deploy the Function + +1. Use the `deploy` command to deploy your function to your Kubernetes cluster as a Knative function and push it to the Docker registry: + + ```command + func deploy + ``` -Once the function has been deployed, and the Magic DNS record has been established. The function is ready to be invoked. + ```output + function up-to-date. Force rebuild with --build + Pushing function image to the registry "index.docker.io" using the "{{< placeholder "DOCKER_HUB_USERNAME" >}}" user credentials + 🎯 Creating Triggers on the cluster + ✅ Function deployed in namespace "default" and exposed at URL: + http://get-emojis-go.default.172.233.166.148.sslip.io + ``` -### Invoke the function via an HTTP endpoint + Once the function is deployed and the Magic DNS record is established, your Knative function is accessible through this public HTTP endpoint. The new `get-emojis-go` repository should also now exist on your Docker Hub account: -In a browser, visit your function’s URL. An example invocation may look like this: + ![The get-emojis-go repository on Docker Hub.](Docker-Hub-Get-Emojis-Go.png) -[SCREENSHOT] +1. To invoke your Knative function, open a web browser and visit your function’s URL. An example invocation may look like this: -Your Knative function is accessible through a public HTTP endpoint. Now, it is time to migrate an a Cloud Run Function to Knative. + ![Invoking the deployed Knative Go function in a Web browser.](Deployed-Knative-Go-Function.png) -## Step 4: Migrate your Cloud Run Function to Knative +With your Knative function accessible through a public HTTP endpoint, the next step is to migrate a Cloud Run Function to Knative. -This guide will examine a sample Cloud Run function and walk you through how to migrate it to Knative. Cloud Run functions are similar to Knative functions. They have a trigger and a way to extract their input arguments from a context or event. +## Migrate Cloud Run Functions to Knative -In the handler below, the actual application logic of the Cloud Run function has been highlighted (in red). The function instantiates a `FuzzEmoji` object and calls its `getEmojis()` method, passing a list of emoji descriptions. The emoji descriptions may or may not map to official emoji names like "fire" (🔥) or "sunrise" (🌅). The function performs a fuzzy search of the descriptions and finds matching emojis. +This guide examines a sample Cloud Run function and walks through how to migrate it to Knative. Cloud Run functions are similar to Knative functions. They both have a trigger and extract their input arguments from a context or event. -```file +The main application logic is highlighted in the example Cloud Run function below: + +```file {title="" hl_lines="17,18"} package google_cloud_function import ( @@ -511,353 +708,407 @@ func getEmojis(w http.ResponseWriter, r *http.Request) { } ``` -The rest of the code focuses on extracting emoji descriptions from the query parameters in the request and writing the result to the response object. - -At the time of this writing, this Cloud Run function was deployed and available at the following HTTP endpoint: +This example function instantiates a `FuzzEmoji` object and calls its `getEmojis()` method, passing a list of emoji descriptions. The emoji descriptions may or may not map to official emoji names like "fire" (🔥) or "sunrise" (🌅). The function performs a "fuzzy" search of the descriptions to find matching emojis. -https://us-east1-playground-161404.cloudfunctions.net/get-emojis +The remainder of the code focuses on extracting emoji descriptions from the query parameters in the request and writing the result to the response object. -Invoking the function yielded the following result: +At the time of this writing, this example Cloud Run function was deployed and available at the following HTTP endpoint: ```command -$ curl https://us-east1-playground-161404.cloudfunctions.net/get-emojis?descriptions=flame,dawn +curl https://us-east1-playground-161404.cloudfunctions.net/get-emojis?descriptions=flame,dawn ``` +Invoking the function returns the following result: + ```output flame: {fire, 🔥} dawn: {sunrise, 🌅} ``` -The function correctly returns the "fire" (🔥) emoji for the description "flame" and the "sunrise" emoji (🌅) for the description "dawn.” +The function successfully returns the `fire` (🔥) emoji for the description "flame" and the `sunrise` emoji (🌅) for the description "dawn". -### Isolating the Cloud Run function code from GCP specifics +### Isolating the Cloud Run Function Code from GCP Specifics -The next step is to make sure the core application logic is separate from the GCP specifics. In this case, the work for this is already done, since the interface for the `getEmojis()` method simply takes a Golang slice of strings as descriptions. +To migrate the Google Cloud Run function to Knative, the core application logic must be decoupled from GCP-specific dependencies. In this case, the work for this is already done, since the interface for the `getEmojis()` method accepts a Golang slice of strings as descriptions. -If the `getEmojis()` method accessed Google Cloud Storage to fetch synonyms (instead of by importing the `fuzz_emoji` package from GitHub), this wouldn't work for a Knative function out of the box. This would require some refactoring. +If the `getEmojis()` method accessed Google Cloud Storage to fetch synonyms, instead of by importing the `fuzz_emoji` package from GitHub, it would not be compatible with Knative and would require some refactoring. -### Migrating a single-file function to a Knative function +### Migrating a Single-File Function to a Knative Function -The core logic for the function has been isolated into a single Golang file called `fuzz_emoji.go`. This can be migrated to your Knative function. The code looks like this: +The core logic of the function is encapsulated into a single Golang file called `fuzz_emoji.go`, which can be migrated to your Knative function. -```file -package fuzz_emoji +1. Create the `pkg` directory and `fuzz_emoji` subdirectory within the `get-emojis-go` directory: -import ( - "encoding/json" - "fmt" - "io" - "net/http" - "strings" + ```command + mkdir -p ~/get-emojis-go/pkg/fuzz_emoji + ``` - "github.com/enescakir/emoji" -) +1. Using a text editor of your choice, create the `fuzz_emoji.go` file in the `get-emojis-go` directory: -type FuzzEmoji struct { - emojiDict map[string]string -} + ```command + nano ~/get-emojis-go/pkg/fuzz_emoji/fuzz_emoji.go + ``` -func NewFuzzEmoji() *FuzzEmoji { - f := &FuzzEmoji{ - emojiDict: make(map[string]string), - } - for name, e := range emoji.Map() { - name := strings.Trim(name, ":") - f.emojiDict[strings.ToLower(name)] = e - } - return f -} + Give the file the following content: -func (f *FuzzEmoji) getSynonyms(word string) ([]string, error) { - url := fmt.Sprintf("https://api.datamuse.com/words?rel_syn=%s", word) - resp, err := http.Get(url) - if err != nil { - return nil, err - } - defer resp.Body.Close() + ```file {title="fuzz_emoji.go" lang="go"} + package fuzz_emoji - if resp.StatusCode != http.StatusOK { - return nil, fmt.Errorf("failed to fetch synonyms: %s", resp.Status) - } + import ( + "encoding/json" + "fmt" + "io" + "net/http" + "strings" - body, err := io.ReadAll(resp.Body) - if err != nil { - return nil, err - } + "github.com/enescakir/emoji" + ) - var words []struct { - Word string `json:"word"` - } - if err := json.Unmarshal(body, &words); err != nil { - return nil, err + type FuzzEmoji struct { + emojiDict map[string]string } - synonyms := make([]string, len(words)) - for i, wordData := range words { - synonyms[i] = wordData.Word + func NewFuzzEmoji() *FuzzEmoji { + f := &FuzzEmoji{ + emojiDict: make(map[string]string), + } + for name, e := range emoji.Map() { + name := strings.Trim(name, ":") + f.emojiDict[strings.ToLower(name)] = e + } + return f } - return synonyms, nil -} + func (f *FuzzEmoji) getSynonyms(word string) ([]string, error) { + url := fmt.Sprintf("https://api.datamuse.com/words?rel_syn=%s", word) + resp, err := http.Get(url) + if err != nil { + return nil, err + } + defer resp.Body.Close() -func (f *FuzzEmoji) getEmoji(description string) (string, string) { - description = strings.ToLower(description) + if resp.StatusCode != http.StatusOK { + return nil, fmt.Errorf("failed to fetch synonyms: %s", resp.Status) + } - // direct match - if emojiChar, exists := f.emojiDict[description]; exists { - return description, emojiChar - } + body, err := io.ReadAll(resp.Body) + if err != nil { + return nil, err + } - // Subset match - for name, emojiChar := range f.emojiDict { - if strings.Contains(name, description) { - return name, emojiChar + var words []struct { + Word string `json:"word"` + } + if err := json.Unmarshal(body, &words); err != nil { + return nil, err } - } - synonyms, err := f.getSynonyms(description) - if err != nil { - return "", "" + synonyms := make([]string, len(words)) + for i, wordData := range words { + synonyms[i] = wordData.Word + } + + return synonyms, nil } - // Synonym match - for _, syn := range synonyms { - if emojiChar, exists := f.emojiDict[syn]; exists { - return syn, emojiChar + func (f *FuzzEmoji) getEmoji(description string) (string, string) { + description = strings.ToLower(description) + + // direct match + if emojiChar, exists := f.emojiDict[description]; exists { + return description, emojiChar } - } - // Subset match - for name, emojiChar := range f.emojiDict { + // Subset match + for name, emojiChar := range f.emojiDict { + if strings.Contains(name, description) { + return name, emojiChar + } + } + + synonyms, err := f.getSynonyms(description) + if err != nil { + return "", "" + } + + // Synonym match for _, syn := range synonyms { - if strings.Contains(name, syn) { + if emojiChar, exists := f.emojiDict[syn]; exists { return syn, emojiChar } } - } - return "", "" -} + // Subset match + for name, emojiChar := range f.emojiDict { + for _, syn := range synonyms { + if strings.Contains(name, syn) { + return syn, emojiChar + } + } + } -func (f *FuzzEmoji) GetEmojis(descriptions []string) map[string]string { - result := make(map[string]string) - for _, d := range descriptions { - name, emojiChar := f.getEmoji(d) - result[d] = fmt.Sprintf("%s, %s", name, emojiChar) + return "", "" } - return result -} -``` -The file should go in a subfolder called `fuzz_emoji`, underneath the `pkg` subfolder of your Knative function folder. The folder structure should now look like this: + func (f *FuzzEmoji) GetEmojis(descriptions []string) map[string]string { + result := make(map[string]string) + for _, d := range descriptions { + name, emojiChar := f.getEmoji(d) + result[d] = fmt.Sprintf("%s, %s", name, emojiChar) + } + return result + } + ``` -```command -$ tree get-emojis-go/ -``` + When complete, save your changes. -```output -get-emojis-go/ -├── func.yaml -├── go.mod -├── handle.go -├── handle_test.go -├── pkg -│ └── fuzz_emoji -│ └── fuzz_emoji.go -└── README.md - -2 directories, 6 files -``` +1. Run the `tree` command on the `~/get-emojis-go` directory to confirm the new folder structure: -Next, change the implementation of your Knative function in `handle.go` so that it uses the `fuzz_emoji` package: + ```command + tree ~/get-emojis-go/ + ``` -```file -package function + The folder structure should now look like this: -import ( - "context" - "fmt" - "net/http" - "strings" - "function/pkg/fuzz_emoji" -) + ```output + get-emojis-go/ + ├── func.yaml + ├── go.mod + ├── handle.go + ├── handle_test.go + ├── pkg + │   └── fuzz_emoji + │   └── fuzz_emoji.go + └── README.md -func Handle(ctx context.Context, res http.ResponseWriter, req *http.Request) { - descriptions := strings.Split(req.URL.Query().Get("descriptions"), ",") - fuzzer := fuzz_emoji.NewFuzzEmoji() - result := fuzzer.GetEmojis(descriptions) - for k, v := range result { - _, _ = fmt.Fprintf(res, "%s: {%v}\n", k, v) + 2 directories, 6 files + ``` + +1. Edit your `handle.go` file so that it uses the `fuzz_emoji` package: + + ```command + nano ~/get-emojis-go/handle.go + ``` + + Replace the existing content with the following. Remember to save your changes: + + ```file {title="hande.go" lang="go"} + package function + + import ( + "context" + "fmt" + "net/http" + "strings" + "function/pkg/fuzz_emoji" + ) + + func Handle(ctx context.Context, res http.ResponseWriter, req *http.Request) { + descriptions := strings.Split(req.URL.Query().Get("descriptions"), ",") + fuzzer := fuzz_emoji.NewFuzzEmoji() + result := fuzzer.GetEmojis(descriptions) + for k, v := range result { + _, _ = fmt.Fprintf(res, "%s: {%v}\n", k, v) + } } -} -``` + ``` -Here is a breakdown of what is happening in this code: + Below is a breakdown of the file code functionality: -1. Import standard Go packages for handling HTTP requests, strings, and output. -1. Import the `fuzz_emoji` package, which contains the core logic. -1. The `Handle()` function takes a context (unused), a response, and a request. -1. The request contains the URL with the descriptions. Extract the emoji descriptions from the query parameters of the URL. Note that the function expects the descriptions to be a single comma-separated string, which it splits to get a list called `descriptions`. -1. Call `NewFuzzEmoji` to instantiate a `FuzzEmoji` object. -1. Call the `getEmojis()` method, passing the list of `descriptions` that were extracted. -1. Iterate over the result map, printing the items to the response object. + - Import standard Go packages for handling HTTP requests, strings, and output. + - Import the `fuzz_emoji` package, which contains the core logic. + - The `Handle()` function takes a context (unused), a response, and a request. + - The request contains the URL with the descriptions. Extract the emoji descriptions from the query parameters of the URL. Note that the function expects the descriptions to be a single comma-separated string, which it splits to get a list called `descriptions`. + - Call `NewFuzzEmoji` to instantiate a `FuzzEmoji` object. + - Call the `getEmojis()` method, passing the list of `descriptions` that were extracted. + - Iterate over the result map, printing the items to the response object. -Repeat the workflow you used earlier for building and deploying the Knative function. Before starting, it's important to add dependencies to the `go.mod` file of your Knative function. The `fuzz_emoji` package implementation uses the emoji package from [github.com/enescakir/emoji](http://github.com/enescakir/emoji), so your `go.mod` file should look like this: +1. Next, edit the `go.mod` file to use the emoji package from [github.com/enescakir/emoji](http://github.com/enescakir/emoji) in the Docker image: -```file -module function + ```command + nano ~/get-emojis-go/go.mod + ``` -go 1.21 + Append the highlighted line to the end of the file, and save your changes: -require github.com/enescakir/emoji v1.0.0 -``` + ```file {title="go.mod" hl_lines="5"} + module function -Build and deploy the container. + go 1.21 -```command -~/get-emojis-go$ func build --registry docker.io/your_username -~/get-emojis-go$ func deploy -``` + require github.com/enescakir/emoji v1.0.0 + ``` + +1. Re-build and re-deploy the container: -Lastly, test your function using the public URL. + ```command + func build --registry docker.io/{{< placeholder "DOCKER_HUB_USERNAME" >}} + func deploy + ``` -[SCREENSHOT] +1. Test your function using the public URL: -The `descriptions` provided as a query parameter are echoed back, along with a corresponding emoji name and emoji for each description. The Knative function works as expected. + ```command + curl http://get-emojis-go-default.{{< placeholder "IP_ADDRESS" >}}.sslip.io/?descriptions=flame,high + ``` -### Migrating a multi-file function to a Knative function + The `descriptions` provided as a query parameter are echoed back, along with a corresponding emoji name and emoji for each description: -In the above case, the entire application logic was contained in a single file called `fuzz_emoji.go`. For larger workloads, you might have an implementation with multiple files or even multiple directories and packages. + ```output + flame: {fire, 🔥} + high: {high_speed_train, 🚄} + ``` -Migrating to Knative in this case is actually not much more complicated. You would take the following steps: + This confirms that the Knative function works as expected. -1. Copy all the files and directories into the `pkg` subfolder of your Knative function folder. -1. Import those packages in `handle.go`. -1. Update the `go.mod` file to include any dependencies used by your packages. +### Migrating a Multi-File Function to a Knative Function -### Migrating external dependencies +In the previous example, the entire application logic was contained in a single file called `fuzz_emoji.go`. For larger workloads, your function may involve multiple files or multiple directories and packages. -When migrating a Cloud Run function, it’s possible that your function depends on various GCP services—such as Google Cloud Storage, Cloud SQL, Cloud Data Store, Cloud Pub/Sub, or others. You need to understand the use case for each dependency so that you can decide which option best suits your situation. +Migrating such a setup to Knative follows a similar process: -There are typically three options: +1. Copy all relevant files and directories into the `pkg` subfolder of your Knative function folder. + +1. Import any required packages in `handle.go`. + +1. Update the `go.mod` file to include all of the dependencies used across any of the packages. + +### Migrating External Dependencies + +When migrating a Cloud Run function, it may depend on various GCP services such as Google Cloud Storage, Cloud SQL, Cloud Data Store, or Cloud Pub/Sub. It's important to evaluate each dependency to determine the best option to suit your situation. + +There are typically three options to consider: + +1. **Keep it as-is**: Continue using the Knative function to interact with the GCP service. -1. **Keep it as it is**: The Knative function will also interact with the GCP services. 1. **Replace the service**: For example, you might switch from a GCP service like Cloud Data Store to an alternative key-value store in the Kubernetes cluster. -1. **Drop the functionality**: For example, don’t write messages to Cloud Pub/Sub anymore. -### Namespace and service account +1. **Drop the functionality**: Eliminate certain GCP-specific functionalities, such as no longer writing messages to Cloud Pub/Sub. -The Knative function eventually runs as a pod in the Kubernetes cluster. This means it runs in a namespace and has a Kubernetes service account associated with it. These are determined when you run `func deploy`. You can specify `-n` (or `--namespace`) and `--service-account` arguments. +### Namespace and Service Account -If you don't specify these, then the function will be deployed in the currently configured namespace for the cluster and will use the default service account of the namespace. +The Knative function eventually runs as a pod in the Kubernetes cluster. This means it runs in a namespace and has a Kubernetes service account associated with it. These are determined when you run the `func deploy` command. You can specify them using the `-n` (or `--namespace`) and `--service-account` arguments. -If your Knative function needs to access any Kubernetes resources, it’s recommended that you explicitly specify a dedicated namespace and create a dedicated service account. This is the preferred approach, rather than granting permissions to the default service account of the namespace. +If these options are not specified, the function deploys in the currently configured namespace and uses the default service account of the namespace. -### Configuration and secrets +If your Knative function needs to access any Kubernetes resources, it’s recommended to explicitly specify a dedicated namespace and create a dedicated service account. This is the preferred approach since it avoids granting excessive permissions to the default service account. -Your Cloud Run function may use the [Runtime Configurator](https://cloud.google.com/deployment-manager/runtime-configurator) and the [Secret Manager](https://cloud.google.com/security/products/secret-manager?hl=en) for configuration and sensitive information, neither of which should be embedded in the function's image. For example, if your function needs to access some GCP services, it would require GCP credentials to authenticate. +### Configuration and Secrets + +If your Cloud Run function uses [Runtime Configurator](https://cloud.google.com/deployment-manager/runtime-configurator) and [Secret Manager](https://cloud.google.com/security/products/secret-manager?hl=en) for configuration and sensitive information, these details should not be embedded directly in the function's image. For example, if your function needs to access GCP services, it would require GCP credentials to authenticate. Kubernetes offers the [`ConfigMap`](https://kubernetes.io/docs/concepts/configuration/configmap/) and [`Secret`](https://kubernetes.io/docs/concepts/configuration/secret/) resources for this purpose. The migration process involves the following steps: 1. Identify all the parameters and secrets the Cloud Run function uses. + 1. Create corresponding `ConfigMap` and `Secret` resources in the namespace for your Knative function. + 1. Grant the service account for your Knative function permissions to read the `ConfigMap` and `Secret`. -### Roles and permissions +### Roles and Permissions -As part of the migration, your Knative function may need to interact with various Kubernetes resources and services—such as data stores, `ConfigMaps`, and `Secrets`. Create a dedicated role with the necessary permissions, binding that role to the function's service account. +Your Knative function may need to interact with various Kubernetes resources and services during migration, such as data stores, `ConfigMaps`, and `Secrets`. To enable this, create a dedicated role with the necessary permissions and bind it to the function's service account. -If your architecture is based on multiple Knative functions, it often makes sense to share the same service account, role, and role bindings between all the Knative functions. +If your architecture includes multiple Knative functions, it is considered a best practice to share the same service account, role, and role bindings between all the Knative functions. -### Logging, metrics, and distributed tracing +### Logging, Metrics, and Distributed Tracing -The logging experience in Knative is very similar to printing something in your Cloud Run Function. With GCP, output is automatically logged to Google Cloud Logging. That same print statement in a Knative function automatically sends log messages to your container's logs. If you have centralized logging, these messages are automatically recorded in your log system. +The logging experience in Knative is similar to printing something in your Cloud Run function. With GCP, output is automatically logged to Google Cloud Logging. In Knative, that same print statement automatically sends log messages to your container's logs. If you have centralized logging, these messages are automatically recorded in your log system. LKE provides the native Kubernetes dashboard by default. It runs on the control plane, so it doesn't take resources from your workloads. You can use the dashboard to explore your entire cluster: -[SCREENSHOT] +![The default Kubernetes Dashboard showing the get-emojis-go deployment.](Kubernetes-Dashboard-Get-Emojis-Go.png) -However, for production systems, consider using a centralized logging system like ELK/EFK, Loki, or Graylog. Also, use an observability solution like Prometheus and Grafana. Consider leveraging OpenTelemetry, too. +For production systems, consider using a centralized logging system like ELK/EFK, Loki, or Graylog, along with an observability solution consisting of Prometheus and Grafana. You can also supplement your observability by leveraging a telemetry data-oriented solution such as OpenTelemetry. These tools can enhance your ability to monitor, troubleshoot, and optimize application performance while ensuring reliability and scalability. -Knative has built-in support for distributed tracing, and it can be configured globally. Your Knative function will automatically participate. +Knative also has built-in support for distributed tracing, which can be configured globally. This means your Knative function automatically participates in tracing without requiring additional changes. -### The debugging experience +### The Debugging Experience -Knative offers a debugging experience at multiple levels: +Knative offers debugging at multiple levels: - Unit test your core logic - Unit test your Knative function - Invoke your function locally -When you create a Go Knative function, Knative also generates a skeleton for a unit test, called `handle_test.go`. +When you create a Go Knative function, Knative generates a skeleton for a unit test called `handle_test.go`. -Below is the modified test, updated for testing the fuzzy emoji search: +1. Open the `handle_test.go` file in the `get-emojis-go` directory: -```file -package function + ```command + nano ~/get-emojis-go/handle_test.go + ``` -import ( - "context" - "io" - "net/http" - "net/http/httptest" - "testing" -) + Replace its contents with the test code below, and save your changes. This code is updated for testing the fuzzy emoji search functionality: + + + ```file {title="handle_test.go" lang="go"} + package function -func TestHandle(t *testing.T) { - var ( - w = httptest.NewRecorder() - req = httptest.NewRequest( - "GET", - "http://example.com/test?descriptions=flame,dog", - nil) - res *http.Response + import ( + "context" + "io" + "net/http" + "net/http/httptest" + "testing" ) - Handle(context.Background(), w, req) - res = w.Result() - defer res.Body.Close() + func TestHandle(t *testing.T) { + var ( + w = httptest.NewRecorder() + req = httptest.NewRequest( + "GET", + "http://example.com/test?descriptions=flame,dog", + nil) + res *http.Response + ) + + Handle(context.Background(), w, req) + res = w.Result() + defer res.Body.Close() + + data := make([]byte, 512) + n, err := res.Body.Read(data) + if err != nil && err != io.EOF { + t.Fatal(err) + } - data := make([]byte, 512) - n, err := res.Body.Read(data) - if err != nil && err != io.EOF { - t.Fatal(err) - } + expected := "flame: {fire, 🔥}\ndog: {dog, 🐶}\n" + result := string(data[:n]) - expected := "flame: {fire, 🔥}\ndog: {dog, 🐶}\n" - result := string(data[:n]) + if expected != result { + t.Fatalf("Failed to return the fire emoji") + } - if expected != result { - t.Fatalf("Failed to return the fire emoji") + if res.StatusCode != 200 { + t.Fatalf("unexpected response code: %v", res.StatusCode) + } } + ``` - if res.StatusCode != 200 { - t.Fatalf("unexpected response code: %v", res.StatusCode) - } -} -``` +1. Download the `fuzz_emoji` package and any other required dependencies: + + ```command + go get function/pkg/fuzz_emoji + ``` -With this unit test, you can test the invocation of the function using `go test` or any Go IDE to place breakpoints and step through the code. If your function interacts with external services or the Kubernetes API server, you will need to mock these dependencies. +1. Use the `go` command to run the `handle_test.go` file and test the invocation of your function: -When you're satisfied with the code, you can test locally by packaging the function in a Docker container and running it with `func invoke`. This is done fully through Docker, without need for a local Kubernetes cluster. + ```command + go test + ``` -At this point, you may want to fine-tune the size of the function image by removing any redundant dependencies. + A successful test should produce the following output: -Finally, you can deploy your function to a full-fledged staging environment (Kubernetes cluster with Knative installed) using `func deploy`. In the staging environment you can conduct integration, regression, and stress tests. + ```output + PASS + ok function 0.275s + ``` -The resources below are provided to help you become familiar with migrating Google Cloud Run Functions to Knative functions on Linode Kubernetes Engine. +Once the code behaves as expected, you can test the function locally by packaging it in a Docker container using `func invoke` to run it. This approach is handled completely through Docker, without the need for a local Kubernetes cluster. -## Resources -- [Knative](https://knative.dev/docs/) -- [Knative Functions](https://knative.dev/docs/functions/) -- [Knative Functions - Deep Dive (Video)](https://www.youtube.com/watch?v=l0EooTOGW84) -- [Accessing request traces - Knative](https://knative.dev/docs/serving/accessing-traces/) -- [Google Cloud Run Functions overview](https://cloud.google.com/functions/docs/concepts/overview) -- [Prometheus](https://prometheus.io) -- [Grafana Labs - Loki, Grafana, Tempo, Mimir](https://grafana.com) -- [OpenTelemetry](https://opentelemetry.io) +After local testing, you may want to optimize the function's image size by removing any redundant dependencies to improve resource utilization. Deploy your function to a staging environment (a Kubernetes cluster with Knative installed) using `func deploy`. In the staging environment, you can conduct integration, regression, and stress testing. -The source code for this demo walkthrough is available here: +If your function interacts with external services or the Kubernetes API server, you should *"mock"* these dependencies. Mocking, or simulating external services or components that a function interacts with, allows you to isolate a specific function or piece of code to ensure it behaves correctly. -- [Google Cloud Run Function](https://github.com/the-gigi/fuzz-emoji/tree/main/google_cloud_function) -- [Knative function (Golang)](https://github.com/the-gigi/fuzz-emoji/tree/main/knative_functions/golang) \ No newline at end of file +See **More Information** below for resources to help you get started with migrating Google Cloud Run functions to Knative functions on the Linode Kubernetes Engine (LKE). \ No newline at end of file