From 451e6db3ebf61af09daa6dbb8b203d8df4a4caa3 Mon Sep 17 00:00:00 2001 From: Mher Poghosyan Date: Fri, 9 Feb 2024 19:11:34 +0400 Subject: [PATCH] add new helm chart --- charts/karrio/.helmignore | 20 ++ charts/karrio/Chart.lock | 9 + charts/karrio/Chart.yaml | 17 ++ charts/karrio/charts/postgresql-14.0.4.tgz | Bin 0 -> 68062 bytes charts/karrio/charts/redis-18.12.1.tgz | Bin 0 -> 78872 bytes charts/karrio/templates/NOTES.txt | 22 ++ charts/karrio/templates/_helpers.tpl | 46 +++ charts/karrio/templates/configmap-api.yaml | 6 + .../karrio/templates/configmap-cronjob.yaml | 17 ++ .../karrio/templates/configmap-dashboard.yaml | 6 + charts/karrio/templates/configmap-worker.yaml | 6 + charts/karrio/templates/cronjob.yaml | 96 ++++++ charts/karrio/templates/deployment-api.yaml | 102 +++++++ .../templates/deployment-dashboard.yaml | 102 +++++++ .../karrio/templates/deployment-worker.yaml | 102 +++++++ charts/karrio/templates/deployment.yaml | 0 charts/karrio/templates/extra-list.yaml | 3 + charts/karrio/templates/hpa-api.yaml | 39 +++ charts/karrio/templates/hpa-dashboard.yaml | 39 +++ charts/karrio/templates/hpa-worker.yaml | 39 +++ charts/karrio/templates/ingress-api.yaml | 44 +++ .../karrio/templates/ingress-dashboard.yaml | 44 +++ charts/karrio/templates/migrate.yaml | 74 +++++ charts/karrio/templates/secret-cronjob.yaml | 12 + charts/karrio/templates/service-api.yaml | 17 ++ .../karrio/templates/service-dashboard.yaml | 17 ++ charts/karrio/templates/service-worker.yaml | 17 ++ charts/karrio/templates/serviceaccount.yaml | 12 + .../templates/tests/test-connection.yaml | 17 ++ charts/karrio/values.yaml | 284 ++++++++++++++++++ 30 files changed, 1209 insertions(+) create mode 100644 charts/karrio/.helmignore create mode 100644 charts/karrio/Chart.lock create mode 100644 charts/karrio/Chart.yaml create mode 100644 charts/karrio/charts/postgresql-14.0.4.tgz create mode 100644 charts/karrio/charts/redis-18.12.1.tgz create mode 100644 charts/karrio/templates/NOTES.txt create mode 100644 charts/karrio/templates/_helpers.tpl create mode 100644 charts/karrio/templates/configmap-api.yaml create mode 100644 charts/karrio/templates/configmap-cronjob.yaml create mode 100644 charts/karrio/templates/configmap-dashboard.yaml create mode 100644 charts/karrio/templates/configmap-worker.yaml create mode 100644 charts/karrio/templates/cronjob.yaml create mode 100644 charts/karrio/templates/deployment-api.yaml create mode 100644 charts/karrio/templates/deployment-dashboard.yaml create mode 100644 charts/karrio/templates/deployment-worker.yaml create mode 100644 charts/karrio/templates/deployment.yaml create mode 100644 charts/karrio/templates/extra-list.yaml create mode 100644 charts/karrio/templates/hpa-api.yaml create mode 100644 charts/karrio/templates/hpa-dashboard.yaml create mode 100644 charts/karrio/templates/hpa-worker.yaml create mode 100644 charts/karrio/templates/ingress-api.yaml create mode 100644 charts/karrio/templates/ingress-dashboard.yaml create mode 100644 charts/karrio/templates/migrate.yaml create mode 100644 charts/karrio/templates/secret-cronjob.yaml create mode 100644 charts/karrio/templates/service-api.yaml create mode 100644 charts/karrio/templates/service-dashboard.yaml create mode 100644 charts/karrio/templates/service-worker.yaml create mode 100644 charts/karrio/templates/serviceaccount.yaml create mode 100644 charts/karrio/templates/tests/test-connection.yaml create mode 100644 charts/karrio/values.yaml diff --git a/charts/karrio/.helmignore b/charts/karrio/.helmignore new file mode 100644 index 0000000..351b35f --- /dev/null +++ b/charts/karrio/.helmignore @@ -0,0 +1,20 @@ +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/charts/karrio/Chart.lock b/charts/karrio/Chart.lock new file mode 100644 index 0000000..0d67387 --- /dev/null +++ b/charts/karrio/Chart.lock @@ -0,0 +1,9 @@ +dependencies: +- name: redis + repository: oci://registry-1.docker.io/bitnamicharts + version: 18.12.1 +- name: postgresql + repository: oci://registry-1.docker.io/bitnamicharts + version: 14.0.4 +digest: sha256:c510a84973277888dd59c9b3a9680746191e74399856b42ad176ef1de400cefe +generated: "2024-02-09T10:54:39.803392003+04:00" diff --git a/charts/karrio/Chart.yaml b/charts/karrio/Chart.yaml new file mode 100644 index 0000000..3c8ebeb --- /dev/null +++ b/charts/karrio/Chart.yaml @@ -0,0 +1,17 @@ +apiVersion: v2 +name: karrio +description: A karrio Helm chart for Kubernetes +type: application +version: 0.1.0 +appVersion: "2024.2.rc4" +dependencies: + - name: redis + repository: oci://registry-1.docker.io/bitnamicharts + version: 18.12.1 + condition: redis.enabled + - name: postgresql + repository: oci://registry-1.docker.io/bitnamicharts + version: 14.0.4 + condition: postgresql.enabled +maintainers: + - name: Mher Poghosyan \ No newline at end of file diff --git a/charts/karrio/charts/postgresql-14.0.4.tgz b/charts/karrio/charts/postgresql-14.0.4.tgz new file mode 100644 index 0000000000000000000000000000000000000000..16c3b86c2b17164bab7c2b7ad5bea7be26e36f1f GIT binary patch literal 68062 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 IQUHJl0GF8QQ~&?~ literal 0 HcmV?d00001 diff --git a/charts/karrio/charts/redis-18.12.1.tgz b/charts/karrio/charts/redis-18.12.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..8dd1b0d33090e53ab2bd53fd37a37f082e49c4da GIT binary patch literal 78872 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
NX6MbKx{0xTL<)BtLx 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

~rkl<1Sksj3925MzJdIcMX%QiMI4 zlaGZ~2;suI&3Yb}f$qCemDav3hDyUo@Y#0AH@XEE!dMsUWMG zQt=~OkV4npG9px|QM?LIB%5#b*^1`HBt&T_9O}(jw`a4rFWU7Fek;3P&{O(`=w}g3-(#WTYuj(h(F(5^Nx@Dg3ur|3NepJmxwmjcdWen@Y zp^=~O|I)C%!W%W1<>{w$wG56lr>x{I!xOG@e96bcRi~$sXuDGu&Rj87B?Fs2(`KUl zyXv^$92I$1_r@O#B+Z&nkTd$uXi@W#iik9@qyM^Yb<$+3c=Q{ZQPLb)H6t4YT9zoCYjQXMSH%$Xlm}@6}{9>{SHy`gN?$>Q-1u*->E)mwcjEk<^Z-*AGSP z!qU~Y&lj)wg$M0c?|WC33jH-!lHp*xjxQR!G2=q ziS>Mg^f9ErT97cfV&THnhDF^zVf4zbO1i7{f3Ztg>badC_%)leWEVRMW>U;k^O94# zP6Aasw#0O;z?P(gEzzHn&E%Sts@AHNY1ZuPFuVzNN?id-@+K-3B76&MNT1uX<=Z(+ zlE7z@J0@A=k!OeS&tP_ujmN*`B61%P#> zXal`N`&5o0XD&>@r{FVY-^%1xLo{1KooT#;fNJ2|3RN%OT*$U?6B0A8=XOrVIu-;w zF(IuM?t}b-1Mm((t8(&cw##uY8&(X7nojgfLo2#XV}n+Bw@rwTBIN_znqIAW8gyVU z#WUB;weWQ936`m_&>N1s4zVp4`BxGl-cqs1TRccwY&NALHRj-1gsD{!IgGlB%-gBB z93_FmAMcbVtEs2lxV2N=k~!I%#TsZ z|6|zjo%;XmKR&kdCu~=T@e%pA!JRs@*U$3nqp$w*x_2r6`aR6c){pi}*B z&7)P{1C*&gm#x6ByW)4$D_#FYwuGhUTz7|4EBZAywI`ZmK!aZ|DwMg-6Mm9g9hW4U6B`g9;~EPIn|r1=GWx_WzG_tlVt6i`9G0Byiyg zNm!Z$Y|bQQ!F^DeFzPRe2co>+YES0rQt(#Oa_uc7yU{9haSxKN%2wjPE0(7!=g--% z$*FVD?U8QCqDeaKlKnkcLoU}4e8`F#eBs|qorl%duTU&;3MBg&SMsq*mrbsxEWt}X zgX2IDk#b4y%l1O4=bFuc{w%A*lDd{X9I^M8`DeV&GP6kp06MuvT z!(EsB9E2f(d%kgyh!pewu#_drAzbZGA3MXT;+hZ#{7Z9gDd&uD6r>YHn?6Zs4CEM_Af3Jvm#u5;@}jhItf4>aNcV}{&0f(A+( zm+On7jkZ0BY@}@GtMU^Or;?yZeln&(_%?dOuA9Jqp$-EHXOc0OoQ^@vPdSqPE)iEj zj9HR|R=Fc~Ey)V7Q$C>-uCIdlyJt^WkTx)j96uss!+^W*(Z=6bO&;#p42F#tG#EOW5-1t(2{* zXS$I(9+{a9j!3slOwJU=_)3p+K3lE}Y+mT5x?^=jSnc=sh^xRijTH@O%K8!Izp{{$ zr9mj%2}^%ui|-RYlSifzP$X@2iCa2XYig$U8i#$SYm_z)3@zl)cJ)w@fofq`Iyx@T z3z||;WJAucvY2$|QZ~|RPz#Hu=~u0H&-G=OR=yT%AX{Em{y_F?7i+KP@tB4@wB%c9 z{gI5GJ@J`GDrG-0KKT#g=7%7#{a#(pn3@cDm-*rIOZPA0moD)+!vw#IDH{0--~SSI zH4^mP%GuA<)EZX40rG~{R!DDsdbJjV-DoJ&c`?ySDQ^Oc=qO}l#I7dH><1l;`q+ovR{_@Mu7A_#4)ki6p zi!>om+jef}jp`aq|qo7K;zLFu=Q7Oo|&myb{23HdZf zg;wRPV3q`4xkR&(xZ--XTNv_>LWj%3vogViC1ychgJOKHHea;|HsP~*H)POOS+&KAgVAE;Hq2CAW#&uvXuQ;S|H-Rjjh#zRwS zzH2?aTVbo@gl&(u-5_S!)l$@y8)dArMBx^fx!O;$L4ms|4pO(DrK~bHT~>HP@zv@m z*lT6cp(IY&Jm8tA>Q2;F!bO|SjxASh_RqF^*QD-M#I2z%(eY+!xT-5WkopQ=`frv0 zN6HgAVRxGUW&hy$LD~P~$+Kr){Xg#G_qp=_+WEIGkjMzc{MRy8MTMShkO!Wd^z0t1 zzm2sTdqkFo%B@i91*nUCZjWrMKwrdT;j6A1tyc`queX57NvHwrWWQBoSJ`ql*QW1gSD5}z=QYfd zqMZ^;44E2LRch8XY2=#eIB-|>5hu)JKFBDL{w~rbX8>{2G>r%S{wzjc_kG4%NAEwod0;Mc(?JtPxq?zU-rN1 zfA{md_wyf<`2`VHCxuj6DJK(_=3X$$65GtYkSdi?dBRe)qnF#;bkRHY6uxov!*oyPUGkUF{2fhnLL2rW=1EE<2hkmT`gHVY`zjkTFAV`X+9GI$Z7t2= zP_m?1`B_v_MrA`I4ky109!V~K)cq4|#jb3DIRHP&bNZw9rgESvNckxIE(=1RuxL)^ zG(o2y^f#s$hPiSfOGv?0)GISvIL4a4dTB~sS$1c513vL_7{JjYn_CXfFj9;^EV5=2CcT#p(&LJH2=<^p9~U&Z8; zDN=~_;%M2`h`B+T%k|4WrXDGA-}&^3EV)C$Yc-8S%U7*%u|{~JTB@51*h1g|9+HSh zj%wY8-12_~15Z-X(0#62X3y4+lp?{i#|NsmyL# zUgVp(dDRQHMYYW$hf?%_+u$iwM=(|#KplmgOqq8jvKgV4CZv|9tF0n=-wTf&D#>m$GH;2!k^;Sz1o|^Eb znytYr&bZshD)KWL!=3ZGOs(3zAsCJHAQJ7 zd={kGao0|e-MtDTI9C;ly1B;kk%%chc=}8(*~8FYzW#3eTcQ75(?ssj+o^yn@Bj8I z_kXhaSN-oEe)q2b{frbv=!j>jD)^r8Fa*|3C(D?$Ax72yl1`S?%Q@#fUB;7Zd$aG% zAXi~-3DtpzU1F8+?5P?@WB^r;LNBw-Rv7O5x?I_H63 z#Wskal*9@5Q5lzNT#)bx1E(Q8v$+Db!VOD=E@AC&Tc92^`x|7!ocm*2hff8{F9$cZMWyfT9EJcq6Z#2Sd^rgEua$mAhcXZ2lu z08H*ewVDS&jwTDv6~*s>2n7|>*4#j)a@24rOe&Z=yzJSpY; zSjya1ZWWz5a0$Em3~XcNw4I_0ftjL3G38jXyieR)W}fOS_Kx5c{-M#1%73+MJxpd|<+ zE2y$iU;OT~fmpHTu#Mw5X0qxDUJEA+qT&ksxWpAPn)Kl!Tv z-OKOu>3^>!IlcI9%S#>P+BM(~nL4(?O&UxCPIwsbuZei4#e&q41 z-Hfb0GWB@n_p8;{<=>yPI1D@>ktT4eEvmhKp(=5Cl^WIJLc?a&SkZ_hmw3b4abX5U zXkd~yq1+^2OoiYYilbSfO_)(d^6k)89=DIW4={ zuo*`KvBtXJ(1g>}%PkE!y4x?@d}FiIb@o_6sJlbs%^hyH0tmO+XZDG-&cwcg;n9R|-u|<{_w-3Q{&)ZRv%|0UpZoZI zM*EK>rx)M-&xB3>bMrX@=J8??ZwiF~!awG}otXL|$T zYqSxyvBkV^ViQo^K5W~Y0%DDIzp3r5p_kj*-c+|=xb3aAg{Db@zDo%r3vG1w%4sK7r3t;xIb6D82#W@ zv%QJXaKpRu_2BnPIqAhvMBY7 zu>|FFYBmSuZEj~1vc|d_!%#hf*Rl>-UEDGaOifR5bt2L~+#lz+^T2rdcYBAfa=2x3H>$Np|V?!xss`O8<+)RA-nHTuX6dz@BV)8^(#p2XFmz{Z4 zV#@?`b%nb^680;$aQN8K@0Oiw4P|{@0;%NX%ty@3)`v9TL8NA_kFXLGZ#-0%Lr@f_ zOG->bO}*My);Jb&>^C*mQ^cm*hrw| zK~_7=)@#Z-bNzOCO|7}q+mL!iaF*!Pjbp6a@rF%R7Km$7%*~8eOFFux<;q^HFWY>j zjU5${aLpxX5G(J{7_wRQpfyBy!aee)KbZ^B)f@z5 zWz?5wy=6LR#FsqA21cy!m~N2AV*kyO7J+b>L~+3X9iZ)fqv5$?v=TR~*7dI{Hoc8tt%*R=gx0X1FHl_x6X;8xALp%2kehp(6ni=$=u#3 zSGVy4D;taJy}+tYf_@-uLtu@Ur z!kTZDs?0HT8&ARlwwo=e26j1rJ+zYhiY7bD|Exr9OMK_-md&>9A`5ODcx^v9d-R8I zxL#$3LI%6+tgb&4)-yiU_i;$Lf^k76$MQ^M@WE3yo2M@|iQ_VLwnfRCp;SO?Mddc zT^9LFm1lU=ZPN9PGlLS5oV`6ICO3?>zuD3D&1h{zz9vZz>s;63rVfN^&Fj)Kkk~rx zHI(&6j?1a4W1ey?iNLI*iRvndEC~hbBp0F`b7il=o|20djrNrKaRr&Mh$S>-e!qQ~ zr7HWsYJ6;_U{jOvX-eydX!d((A=l?e6_yBhjdiS`Fs-H@tf^fhqMU|Zv(Sxtk&9s0 z)Dv$f-Wn=Xb?=t%_SG;o!qP35C|J2AXA8$}n@hviKfi98``t7pRin~7af;ySrceOa zg3mG}O9*4oK*sJmo3glf$~McJR_4!lTvKo*iqsk~%SP4h+IA~_nB8yfkBb105cvY+UYny>~RUGkUF{2fhf zC&`9sZqeu;jGv^U~k#4k~erh|jy%;m}{47j}pN3Ws<0K0$u7xB2t z)=YtB>igue<4Cbcs#`~oWOKy@zPJi1rxW`YwF~Gcgn(9Fo}4= zHX>uLkpK6d9+c$&{ig@dpMRDA@8h>c&S)xmjF41`i!Kk0h>Wrz^d$9>j+K=y>X{eS-Q_{Hm&?#$oN7%Sqxo<2W# zTH60lo*aJ7|9vmNE%F^!^w+!LRWM4Vym2B)qSHAh?|)$7toZoX?P;3EV$ko)lfo6# zzRx|;Pk9`8q90<@-xN`8$u>Q(Tu&07#ge5Up^=bJ0*{PXdd*m5CW7C&ozB)4xqS7X zFU~ui;czHr;*QT^7Wpjl0;c3{c`6Q6e{e!8Bj|t}xF6gP+Fyo?AmzzoK)4qS`u&7W z0+A*QXW#X?cf}Gn;QbMfkHgC$VO)<#f`_alp&(}b1<7J5Xqsj)JsJn^^zifj&Q%ck z10q%MVDg&Aof%816o2K+ao#mLk9;BAaTbQ?%m`P~`m5OjWgF7{frTL_Kl3E?yEutg zoL@=YrkrGg5uPQ4#>P=dNHIK4xSzo-!~Y_e$%4E`a}T+s(Z4csoVO+?G^HV*siw;F79cRnhA9}aI~P{6DNEg_)HM0DMgzk z$&`gLO9Z)|2Huo-G?F40TsJ^q#hisaCK0<>mE)V*>l>1p5yn;)R(=S)vI3 zEMcJTiy&p9({YF#FNs*n1le~F4*%M5u!BSQ8+Y%o_>I&(2xXCoTWr~ zQ#PaUW{aH8=!Bhfp5`>Gw}K?EbP=-w5ukQ;2=STlk^pqC0eJ!Ygy`m$QW?ljrJfaX zPwHMBLf8j7i$gXbW_NWu)-GHz)VXO1*u(ziZm@e+1lf-!LG+>1N$F%&x7bfgCw4dc z?*21(-|^Wfppmn`=OoV#JDoTS!!sTR-paWGvd0TTvHLUgp}Feuf`$Ud87{&W&?_z+v)ghlv(H=;gw(oH3$n_zXW5l;2F8*S?H56xMK2+ zV2rR2X+lX5jd?Od7J=u2uonq03ngtIMPiKg2`1<*FBoh~OruX>Wyipc{LfEVaGH zyG|N$`rVIacJ0_{X)8E?bR_bCs(3v+GdnXo^PAmp+&V|JHCxV1?vb*I!d2&y9KhES zHr+Vtm$><#$SL)zO-FxT#f1x@3Wgv63RyITg@rcg_8sPqkLRuciI`*Jb|{hO4}aAz;WQUtORRI??P`4c2KB{?3hw<4=FgvD7S>lb zudlt9&{3XjB@TkX!Hk%#4(iLxRax=jXf`{ap1iIffW;Qy6e>Mvd%N`Y#`GQozUI4+8%7YzGnS-d(E~5t98et+RlHU zH^Kj#4NT`?lj-U4EHGE5Rg?WhgSg-SYg@$q!4EWvANrfO_Z2@)%%{Zor6ssbn zom1($h3_tga}R=ImP``P?KqT)1gV_9QA%?tP7>YN#@&CURG_3HtL*Y$meEtmlXy3a{1%n?_!Jw&v!5^c7!JnXl!LABi z(15diQHY2#6%HY%3I;(x=zHF$X$BLu!gP)W3`SiT_J{qhEumM#3d)AH(7+`Kl}EA6 zq+VjQE%6u9EXz5AA7s1^FWu8dm{R*H_RSJ~hYB+$A~mGqiz+HOib_3u!cddIE`g~V z`{7b#3)B{{u~-H@-y#Lh$GAW+ih_bFa#aXplh{bcG4is+C`?%psVGA3y;@O6HiKd+ z-${xh9V=QiXc_2qiwM(=Bl)Q)!^&GHqHaj zhcnWGO@kb)dU1oN)hKAO6^pOEJvZ8C=6q-7_i#fKp0=%t_|TBs^0!L1pR!_kyMM}U z6Icojb4uP-5g{40Nb;qaqmdzd6lb_gm8u11NGrb<8=D8y4zR=;D{Nq6&c#j>X-P5Em*1L84h(R2f!#Qib(7&*?Hfy`+*Mdu$-4 z&?T}BNUclM51-QJ=+2Lvq3RGbQAkArf?~E?DF?bV-;NY&n!XBIl|PDXLkqcOV=D#M z2|Lc#6wNvfv90goyR8hjmlPOdQ3a|`Dvl+Cjyx<-6=KfrAF4D@q%EPVt;3NBypN86nj66$PpnpZof`$hcpj_dpx0Zk*MVRb z163?~i5;SQ@5ir>Co?`^`qJ~xvIMo>ZkF>+)!3kjorpD1AXyY>1H8;&T}Z<{XRTsG zD)J(!O(Ex{X{o2;Nor^gptzht=V%7wSqJ`mG#k&l-ud|S?ey#v&W}z`jwYw$;~7j( z;MH{UdVD&bPG&HD14omO@NPVL-362u(z~M2sfj_E^41=BGsM>971U)xSs6kivPCHt z2n)5sBI6c37OB*BuM}D2B{G%9MZ_E81plD+^RLgZ&#%wl`1w5m0RR8j8Tp|AxCj8S C2v3~= literal 0 HcmV?d00001 diff --git a/charts/karrio/templates/NOTES.txt b/charts/karrio/templates/NOTES.txt new file mode 100644 index 0000000..04cdce2 --- /dev/null +++ b/charts/karrio/templates/NOTES.txt @@ -0,0 +1,22 @@ +1. Get the application URL by running these commands: +{{- if .Values.api.ingress.enabled }} +{{- range $host := .Values.api.ingress.hosts }} + {{- range .paths }} + http{{ if $.Values.api.ingress.tls }}s{{ end }}://{{ $host.host }} + {{- end }} +{{- end }} +{{- else if contains "NodePort" .Values.api.service.type }} + export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "karrio.fullname" . }}) + export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") + echo http://$NODE_IP:$NODE_PORT +{{- else if contains "LoadBalancer" .Values.api.service.type }} + NOTE: It may take a few minutes for the LoadBalancer IP to be available. + You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "karrio.fullname" . }}' + export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "karrio.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}") + echo http://$SERVICE_IP:{{ .Values.api.service.port }} +{{- else if contains "ClusterIP" .Values.api.service.type }} + export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "karrio.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") + export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}") + echo "Visit http://127.0.0.1:8080 to use your application" + kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:$CONTAINER_PORT +{{- end }} diff --git a/charts/karrio/templates/_helpers.tpl b/charts/karrio/templates/_helpers.tpl new file mode 100644 index 0000000..aa6232e --- /dev/null +++ b/charts/karrio/templates/_helpers.tpl @@ -0,0 +1,46 @@ +{{- define "karrio.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{- define "karrio.fullname" -}} +{{- if .Values.fullnameOverride }} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- $name := default .Chart.Name .Values.nameOverride }} +{{- if contains $name .Release.Name }} +{{- .Release.Name | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} +{{- end }} +{{- end }} +{{- end }} + +{{- define "karrio.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{- define "karrio.labels" -}} +helm.sh/chart: {{ include "karrio.chart" . }} +{{ include "karrio.selectorLabels" . }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end }} + +{{- define "karrio.selectorLabels" -}} +app.kubernetes.io/name: {{ include "karrio.name" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- end }} + +{{- define "karrio.serviceAccountName" -}} +{{- if .Values.serviceAccount.create }} +{{- default (include "karrio.fullname" .) .Values.serviceAccount.name }} +{{- else }} +{{- default "default" .Values.serviceAccount.name }} +{{- end }} +{{- end }} + +{{- define "karrio.capabilities.kubeVersion" -}} +{{- default .Capabilities.KubeVersion.Version .Values.kubeVersion -}} +{{- end -}} diff --git a/charts/karrio/templates/configmap-api.yaml b/charts/karrio/templates/configmap-api.yaml new file mode 100644 index 0000000..9f75062 --- /dev/null +++ b/charts/karrio/templates/configmap-api.yaml @@ -0,0 +1,6 @@ +kind: ConfigMap +apiVersion: v1 +metadata: + name: {{ include "karrio.fullname" . }}-api +data: + {{- toYaml .Values.api.config | nindent 2 }} diff --git a/charts/karrio/templates/configmap-cronjob.yaml b/charts/karrio/templates/configmap-cronjob.yaml new file mode 100644 index 0000000..c5a6560 --- /dev/null +++ b/charts/karrio/templates/configmap-cronjob.yaml @@ -0,0 +1,17 @@ +{{- if .Values.cronjob.configMaps }} +{{- range $v := .Values.cronjob.configMaps }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ $v.name }} +binaryData: + {{- range $f := $v.files }} + {{- if $f.contentsB64 }} + {{ $f.key }}: "{{ $f.contentsB64 }}" + {{- else }} + {{ $f.key }}: "{{ ($.Files.Get $f.contentsFile) | b64enc }}" + {{- end }} + {{- end }} +--- +{{- end }} +{{- end }} diff --git a/charts/karrio/templates/configmap-dashboard.yaml b/charts/karrio/templates/configmap-dashboard.yaml new file mode 100644 index 0000000..318084b --- /dev/null +++ b/charts/karrio/templates/configmap-dashboard.yaml @@ -0,0 +1,6 @@ +kind: ConfigMap +apiVersion: v1 +metadata: + name: {{ include "karrio.fullname" . }}-dashboard +data: + {{- toYaml .Values.dashboard.config | nindent 2 }} diff --git a/charts/karrio/templates/configmap-worker.yaml b/charts/karrio/templates/configmap-worker.yaml new file mode 100644 index 0000000..02828e4 --- /dev/null +++ b/charts/karrio/templates/configmap-worker.yaml @@ -0,0 +1,6 @@ +kind: ConfigMap +apiVersion: v1 +metadata: + name: {{ include "karrio.fullname" . }}-worker +data: + {{- toYaml .Values.worker.config | nindent 2 }} diff --git a/charts/karrio/templates/cronjob.yaml b/charts/karrio/templates/cronjob.yaml new file mode 100644 index 0000000..4a44c2a --- /dev/null +++ b/charts/karrio/templates/cronjob.yaml @@ -0,0 +1,96 @@ +{{- if .Values.cronjob.enabled }} +apiVersion: batch/v1 +kind: CronJob +metadata: + name: {{ include "karrio.fullname" . }} +spec: + schedule: "{{ .Values.cronjob.schedule }}" + concurrencyPolicy: "{{ .Values.cronjob.concurrencyPolicy }}" + failedJobsHistoryLimit: {{ .Values.cronjob.failedJobsHistoryLimit }} + successfulJobsHistoryLimit: {{ .Values.cronjob.successfulJobsHistoryLimit }} + + jobTemplate: + spec: + template: + metadata: + labels: + app: {{ include "karrio.fullname" . }} + annotations: + {{- if .Values.cronjob.configMaps }} + {{- range $v := .Values.cronjob.configMaps }} + {{- range $f := $v.files }} + {{- if $f.contentsB64 }} + checksum/{{ $v.name }}-{{ $f.key }}: "{{ $f.contentsB64 | sha256sum }}" + {{- else }} + checksum/{{ $v.name }}-{{ $f.key }}: "{{ ($.Files.Get $f.contentsFile) | b64enc | sha256sum }}" + {{- end }} + {{- end }} + {{- end }} + {{- end }} + spec: + {{- if .Values.cronjob.cloudserviceaccount.deploy }} + serviceAccountName: {{ .Values.cronjob.cloudserviceaccount.name }} + {{- end }} + automountServiceAccountToken: true + + {{- if not .Values.cronjob.image.isRepositoryPublic }} + imagePullSecrets: + - name: {{ .Values.cronjob.dockerconfigjson.name }} + {{- end }} + + restartPolicy: "{{ .Values.cronjob.restartPolicy }}" + + {{- if .Values.cronjob.configMaps }} + volumes: + {{- range $v := .Values.cronjob.configMaps }} + - configMap: + name: {{ $v.name }} + optional: false + name: {{ $v.name }} + {{- end }} + {{- end }} + {{- with .Values.cronjob.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 8 }} + {{- end }} + containers: + - name: "{{ include "karrio.fullname" . }}" + image: "{{ .Values.cronjob.image.repository }}:{{ .Values.cronjob.image.tag }}" + imagePullPolicy: {{ default "IfNotPresent" .Values.cronjob.image.pullPolicy }} + + {{- if .Values.cronjob.config.command }} + command: + {{- toYaml .Values.cronjob.config.command | nindent 14 }} + {{- end }} + + {{- if .Values.cronjob.config.args }} + args: + {{- range $v := .Values.cronjob.config.args }} + - "{{ $v }}" + {{- end }} + {{- end }} + + {{- with .Values.cronjob.extraEnv }} + env: + {{- toYaml . | nindent 12 }} + {{- end }} + + {{- if .Values.cronjob.config.secrets }} + envFrom: + - secretRef: + name: {{ .Release.Name }}-cronjob-secret + {{- end }} + + {{- if .Values.cronjob.configMaps }} + volumeMounts: + {{- range $v := .Values.cronjob.configMaps }} + - mountPath: "{{ $v.mountPath }}" + {{- if $v.mountPropagation }} + mountPropagation: {{ $v.mountPropagation }} + {{- else }} + mountPropagation: None + {{- end }} + name: {{ $v.name }} + {{- end }} + {{- end }} +{{- end }} diff --git a/charts/karrio/templates/deployment-api.yaml b/charts/karrio/templates/deployment-api.yaml new file mode 100644 index 0000000..01e5e0f --- /dev/null +++ b/charts/karrio/templates/deployment-api.yaml @@ -0,0 +1,102 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "karrio.fullname" . }}-api + labels: + {{- include "karrio.labels" . | nindent 4 }} +spec: + {{- if .Values.api.minReadySeconds }} + minReadySeconds: {{ .Values.api.minReadySeconds }} + {{- end }} + {{- if .Values.api.revisionHistoryLimit }} + revisionHistoryLimit: {{ .Values.api.revisionHistoryLimit }} + {{- end }} + {{- if not .Values.api.autoscaling.enabled }} + replicas: {{ .Values.api.replicaCount }} + {{- end }} + selector: + matchLabels: + {{- include "karrio.selectorLabels" . | nindent 6 }} + {{- if .Values.api.strategy }} + strategy: + {{- toYaml .Values.api.strategy | nindent 4 }} + {{- end }} + template: + metadata: + annotations: + configmap: {{ .Values.api.config | toYaml | sha256sum | trunc 10 }} + {{- with .Values.api.podAnnotations }} + {{- toYaml . | nindent 8 }} + {{- end }} + labels: + {{- include "karrio.selectorLabels" . | nindent 8 }} + spec: + {{- with .Values.api.imagePullSecrets }} + imagePullSecrets: + {{- toYaml . | nindent 8 }} + {{- end }} + serviceAccountName: {{ include "karrio.serviceAccountName" . }} + securityContext: + {{- toYaml .Values.api.podSecurityContext | nindent 8 }} + {{- if .Values.api.initContainers }} + initContainers: + {{- toYaml .Values.api.initContainers | nindent 8 }} + {{- end }} + containers: + - name: {{ .Chart.Name }}-api + securityContext: + {{- toYaml .Values.api.securityContext | nindent 12 }} + image: "{{ .Values.api.image.repository }}:{{ .Values.api.image.tag | default .Chart.AppVersion }}" + imagePullPolicy: {{ .Values.api.image.pullPolicy }} + {{- if .Values.api.command }} + command: + {{- toYaml .Values.api.command | nindent 12 }} + {{- end }} + {{- if .Values.api.extraEnv }} + env: + {{- range $key, $value := .Values.api.extraEnv }} + - name: {{ $key | quote }} + value: {{ $value | quote }} + {{- end }} + {{- end }} + ports: + - name: http + containerPort: {{ .Values.api.containerPort | default 80 }} + protocol: TCP + {{- if .Values.api.livenessProbe }} + livenessProbe: + {{- toYaml .Values.api.livenessProbe | nindent 12 }} + {{- end }} + {{- if .Values.api.readinessProbe }} + readinessProbe: + {{- toYaml .Values.api.readinessProbe | nindent 12 }} + {{- end }} + resources: + {{- toYaml .Values.api.resources | nindent 12 }} + envFrom: + - configMapRef: + name: {{ include "karrio.fullname" . }}-api + - secretRef: + name: {{ include "karrio.fullname" . }}-api + optional: true + volumeMounts: + {{- with .Values.api.extraVolumeMounts }} + {{- toYaml . | nindent 12 }} + {{- end }} + volumes: + {{- with .Values.api.extraVolumes }} + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.api.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.api.affinity }} + affinity: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.api.tolerations }} + tolerations: + {{- toYaml . | nindent 8 }} + {{- end }} + diff --git a/charts/karrio/templates/deployment-dashboard.yaml b/charts/karrio/templates/deployment-dashboard.yaml new file mode 100644 index 0000000..6b2ef24 --- /dev/null +++ b/charts/karrio/templates/deployment-dashboard.yaml @@ -0,0 +1,102 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "karrio.fullname" . }}-dashboard + labels: + {{- include "karrio.labels" . | nindent 4 }} +spec: + {{- if .Values.dashboard.minReadySeconds }} + minReadySeconds: {{ .Values.dashboard.minReadySeconds }} + {{- end }} + {{- if .Values.dashboard.revisionHistoryLimit }} + revisionHistoryLimit: {{ .Values.dashboard.revisionHistoryLimit }} + {{- end }} + {{- if not .Values.dashboard.autoscaling.enabled }} + replicas: {{ .Values.dashboard.replicaCount }} + {{- end }} + selector: + matchLabels: + {{- include "karrio.selectorLabels" . | nindent 6 }} + {{- if .Values.dashboard.strategy }} + strategy: + {{- toYaml .Values.dashboard.strategy | nindent 4 }} + {{- end }} + template: + metadata: + annotations: + configmap: {{ .Values.dashboard.config | toYaml | sha256sum | trunc 10 }} + {{- with .Values.dashboard.podAnnotations }} + {{- toYaml . | nindent 8 }} + {{- end }} + labels: + {{- include "karrio.selectorLabels" . | nindent 8 }} + spec: + {{- with .Values.dashboard.imagePullSecrets }} + imagePullSecrets: + {{- toYaml . | nindent 8 }} + {{- end }} + serviceAccountName: {{ include "karrio.serviceAccountName" . }} + securityContext: + {{- toYaml .Values.dashboard.podSecurityContext | nindent 8 }} + {{- if .Values.dashboard.initContainers }} + initContainers: + {{- toYaml .Values.dashboard.initContainers | nindent 8 }} + {{- end }} + containers: + - name: {{ .Chart.Name }}-dashboard + securityContext: + {{- toYaml .Values.dashboard.securityContext | nindent 12 }} + image: "{{ .Values.dashboard.image.repository }}:{{ .Values.dashboard.image.tag | default .Chart.AppVersion }}" + imagePullPolicy: {{ .Values.dashboard.image.pullPolicy }} + {{- if .Values.dashboard.command }} + command: + {{- toYaml .Values.dashboard.command | nindent 12 }} + {{- end }} + {{- if .Values.dashboard.extraEnv }} + env: + {{- range $key, $value := .Values.dashboard.extraEnv }} + - name: {{ $key | quote }} + value: {{ $value | quote }} + {{- end }} + {{- end }} + ports: + - name: http + containerPort: {{ .Values.dashboard.containerPort | default 80 }} + protocol: TCP + {{- if .Values.dashboard.livenessProbe }} + livenessProbe: + {{- toYaml .Values.dashboard.livenessProbe | nindent 12 }} + {{- end }} + {{- if .Values.dashboard.readinessProbe }} + readinessProbe: + {{- toYaml .Values.dashboard.readinessProbe | nindent 12 }} + {{- end }} + resources: + {{- toYaml .Values.dashboard.resources | nindent 12 }} + envFrom: + - configMapRef: + name: {{ include "karrio.fullname" . }}-dashboard + - secretRef: + name: {{ include "karrio.fullname" . }}-dashboard + optional: true + volumeMounts: + {{- with .Values.dashboard.extraVolumeMounts }} + {{- toYaml . | nindent 12 }} + {{- end }} + volumes: + {{- with .Values.dashboard.extraVolumes }} + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.dashboard.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.dashboard.affinity }} + affinity: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.dashboard.tolerations }} + tolerations: + {{- toYaml . | nindent 8 }} + {{- end }} + diff --git a/charts/karrio/templates/deployment-worker.yaml b/charts/karrio/templates/deployment-worker.yaml new file mode 100644 index 0000000..4d33284 --- /dev/null +++ b/charts/karrio/templates/deployment-worker.yaml @@ -0,0 +1,102 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "karrio.fullname" . }}-worker + labels: + {{- include "karrio.labels" . | nindent 4 }} +spec: + {{- if .Values.worker.minReadySeconds }} + minReadySeconds: {{ .Values.worker.minReadySeconds }} + {{- end }} + {{- if .Values.worker.revisionHistoryLimit }} + revisionHistoryLimit: {{ .Values.worker.revisionHistoryLimit }} + {{- end }} + {{- if not .Values.worker.autoscaling.enabled }} + replicas: {{ .Values.worker.replicaCount }} + {{- end }} + selector: + matchLabels: + {{- include "karrio.selectorLabels" . | nindent 6 }} + {{- if .Values.worker.strategy }} + strategy: + {{- toYaml .Values.worker.strategy | nindent 4 }} + {{- end }} + template: + metadata: + annotations: + configmap: {{ .Values.worker.config | toYaml | sha256sum | trunc 10 }} + {{- with .Values.worker.podAnnotations }} + {{- toYaml . | nindent 8 }} + {{- end }} + labels: + {{- include "karrio.selectorLabels" . | nindent 8 }} + spec: + {{- with .Values.worker.imagePullSecrets }} + imagePullSecrets: + {{- toYaml . | nindent 8 }} + {{- end }} + serviceAccountName: {{ include "karrio.serviceAccountName" . }} + securityContext: + {{- toYaml .Values.worker.podSecurityContext | nindent 8 }} + {{- if .Values.worker.initContainers }} + initContainers: + {{- toYaml .Values.worker.initContainers | nindent 8 }} + {{- end }} + containers: + - name: {{ .Chart.Name }}-worker + securityContext: + {{- toYaml .Values.worker.securityContext | nindent 12 }} + image: "{{ .Values.worker.image.repository }}:{{ .Values.worker.image.tag | default .Chart.AppVersion }}" + imagePullPolicy: {{ .Values.worker.image.pullPolicy }} + {{- if .Values.worker.command }} + command: + {{- toYaml .Values.worker.command | nindent 12 }} + {{- end }} + {{- if .Values.worker.extraEnv }} + env: + {{- range $key, $value := .Values.worker.extraEnv }} + - name: {{ $key | quote }} + value: {{ $value | quote }} + {{- end }} + {{- end }} + ports: + - name: http + containerPort: {{ .Values.worker.containerPort | default 80 }} + protocol: TCP + {{- if .Values.worker.livenessProbe }} + livenessProbe: + {{- toYaml .Values.worker.livenessProbe | nindent 12 }} + {{- end }} + {{- if .Values.worker.readinessProbe }} + readinessProbe: + {{- toYaml .Values.worker.readinessProbe | nindent 12 }} + {{- end }} + resources: + {{- toYaml .Values.worker.resources | nindent 12 }} + envFrom: + - configMapRef: + name: {{ include "karrio.fullname" . }}-worker + - secretRef: + name: {{ include "karrio.fullname" . }}-worker + optional: true + volumeMounts: + {{- with .Values.worker.extraVolumeMounts }} + {{- toYaml . | nindent 12 }} + {{- end }} + volumes: + {{- with .Values.worker.extraVolumes }} + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.worker.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.worker.affinity }} + affinity: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.worker.tolerations }} + tolerations: + {{- toYaml . | nindent 8 }} + {{- end }} + diff --git a/charts/karrio/templates/deployment.yaml b/charts/karrio/templates/deployment.yaml new file mode 100644 index 0000000..e69de29 diff --git a/charts/karrio/templates/extra-list.yaml b/charts/karrio/templates/extra-list.yaml new file mode 100644 index 0000000..c982f21 --- /dev/null +++ b/charts/karrio/templates/extra-list.yaml @@ -0,0 +1,3 @@ +{{- if .Values.extraDeploy.enabled -}} +{{- tpl .Values.extraDeploy.yaml . | nindent 0 }} +{{- end }} diff --git a/charts/karrio/templates/hpa-api.yaml b/charts/karrio/templates/hpa-api.yaml new file mode 100644 index 0000000..365ac80 --- /dev/null +++ b/charts/karrio/templates/hpa-api.yaml @@ -0,0 +1,39 @@ +{{- if .Values.api.autoscaling.enabled }} +apiVersion: autoscaling/v2 +kind: HorizontalPodAutoscaler +metadata: + name: {{ include "karrio.fullname" . }}-api + labels: + {{- include "karrio.labels" . | nindent 4 }} +spec: + scaleTargetRef: + apiVersion: apps/v1 + kind: Deployment + name: {{ include "karrio.fullname" . }}-api + minReplicas: {{ .Values.api.autoscaling.minReplicas }} + maxReplicas: {{ .Values.api.autoscaling.maxReplicas }} + {{- with .Values.api.autoscaling.behavior }} + behavior: + {{- toYaml . | nindent 4 }} + {{- end }} + metrics: + {{- if .Values.api.autoscaling.targetCPUUtilizationPercentage }} + - type: Resource + resource: + name: cpu + target: + type: Utilization + averageUtilization: {{ .Values.api.autoscaling.targetCPUUtilizationPercentage }} + {{- end }} + {{- if .Values.api.autoscaling.targetMemoryUtilizationPercentage }} + - type: Resource + resource: + name: memory + target: + type: Utilization + averageUtilization: {{ .Values.api.autoscaling.targetMemoryUtilizationPercentage }} + {{- end }} + {{- with .Values.api.autoscaling.customMetrics }} + {{- toYaml . | nindent 4 }} + {{- end }} +{{- end }} diff --git a/charts/karrio/templates/hpa-dashboard.yaml b/charts/karrio/templates/hpa-dashboard.yaml new file mode 100644 index 0000000..8593bc3 --- /dev/null +++ b/charts/karrio/templates/hpa-dashboard.yaml @@ -0,0 +1,39 @@ +{{- if .Values.dashboard.autoscaling.enabled }} +apiVersion: autoscaling/v2 +kind: HorizontalPodAutoscaler +metadata: + name: {{ include "karrio.fullname" . }}-dashboard + labels: + {{- include "karrio.labels" . | nindent 4 }} +spec: + scaleTargetRef: + apiVersion: apps/v1 + kind: Deployment + name: {{ include "karrio.fullname" . }}-dashboard + minReplicas: {{ .Values.dashboard.autoscaling.minReplicas }} + maxReplicas: {{ .Values.dashboard.autoscaling.maxReplicas }} + {{- with .Values.dashboard.autoscaling.behavior }} + behavior: + {{- toYaml . | nindent 4 }} + {{- end }} + metrics: + {{- if .Values.dashboard.autoscaling.targetCPUUtilizationPercentage }} + - type: Resource + resource: + name: cpu + target: + type: Utilization + averageUtilization: {{ .Values.dashboard.autoscaling.targetCPUUtilizationPercentage }} + {{- end }} + {{- if .Values.dashboard.autoscaling.targetMemoryUtilizationPercentage }} + - type: Resource + resource: + name: memory + target: + type: Utilization + averageUtilization: {{ .Values.dashboard.autoscaling.targetMemoryUtilizationPercentage }} + {{- end }} + {{- with .Values.dashboard.autoscaling.customMetrics }} + {{- toYaml . | nindent 4 }} + {{- end }} +{{- end }} diff --git a/charts/karrio/templates/hpa-worker.yaml b/charts/karrio/templates/hpa-worker.yaml new file mode 100644 index 0000000..4abc09a --- /dev/null +++ b/charts/karrio/templates/hpa-worker.yaml @@ -0,0 +1,39 @@ +{{- if .Values.worker.autoscaling.enabled }} +apiVersion: autoscaling/v2 +kind: HorizontalPodAutoscaler +metadata: + name: {{ include "karrio.fullname" . }}-worker + labels: + {{- include "karrio.labels" . | nindent 4 }} +spec: + scaleTargetRef: + apiVersion: apps/v1 + kind: Deployment + name: {{ include "karrio.fullname" . }}-worker + minReplicas: {{ .Values.worker.autoscaling.minReplicas }} + maxReplicas: {{ .Values.worker.autoscaling.maxReplicas }} + {{- with .Values.worker.autoscaling.behavior }} + behavior: + {{- toYaml . | nindent 4 }} + {{- end }} + metrics: + {{- if .Values.worker.autoscaling.targetCPUUtilizationPercentage }} + - type: Resource + resource: + name: cpu + target: + type: Utilization + averageUtilization: {{ .Values.worker.autoscaling.targetCPUUtilizationPercentage }} + {{- end }} + {{- if .Values.worker.autoscaling.targetMemoryUtilizationPercentage }} + - type: Resource + resource: + name: memory + target: + type: Utilization + averageUtilization: {{ .Values.worker.autoscaling.targetMemoryUtilizationPercentage }} + {{- end }} + {{- with .Values.worker.autoscaling.customMetrics }} + {{- toYaml . | nindent 4 }} + {{- end }} +{{- end }} diff --git a/charts/karrio/templates/ingress-api.yaml b/charts/karrio/templates/ingress-api.yaml new file mode 100644 index 0000000..125c2f9 --- /dev/null +++ b/charts/karrio/templates/ingress-api.yaml @@ -0,0 +1,44 @@ +{{- if .Values.api.ingress.enabled -}} +{{- $fullName := include "karrio.fullname" . -}} +{{- $svcPort := .Values.api.service.port -}} +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: {{ $fullName }}-api + labels: + {{- include "karrio.labels" . | nindent 4 }} + annotations: + # nginx.ingress.kubernetes.io/custom-http-errors: "404" + {{- with .Values.api.ingress.annotations }} + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + {{- if .Values.api.ingress.tls }} + tls: + {{- range .Values.api.ingress.tls }} + - hosts: + {{- range .hosts }} + - {{ . | quote }} + {{- end }} + secretName: {{ .secretName }} + {{- end }} + {{- end }} + {{- if .Values.api.ingress.class }} + ingressClassName: {{ .Values.api.ingress.class }} + {{- end }} + rules: + {{- range .Values.api.ingress.hosts }} + - host: {{ .host | quote }} + http: + paths: + {{- range .paths }} + - path: {{ . }} + pathType: Prefix + backend: + service: + name: {{ $fullName }}-api + port: + number: {{ $svcPort }} + {{- end }} + {{- end }} + {{- end }} \ No newline at end of file diff --git a/charts/karrio/templates/ingress-dashboard.yaml b/charts/karrio/templates/ingress-dashboard.yaml new file mode 100644 index 0000000..28634a3 --- /dev/null +++ b/charts/karrio/templates/ingress-dashboard.yaml @@ -0,0 +1,44 @@ +{{- if .Values.dashboard.ingress.enabled -}} +{{- $fullName := include "karrio.fullname" . -}} +{{- $svcPort := .Values.dashboard.service.port -}} +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: {{ $fullName }}-dashboard + labels: + {{- include "karrio.labels" . | nindent 4 }} + annotations: + # nginx.ingress.kubernetes.io/custom-http-errors: "404" + {{- with .Values.dashboard.ingress.annotations }} + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + {{- if .Values.dashboard.ingress.tls }} + tls: + {{- range .Values.dashboard.ingress.tls }} + - hosts: + {{- range .hosts }} + - {{ . | quote }} + {{- end }} + secretName: {{ .secretName }} + {{- end }} + {{- end }} + {{- if .Values.dashboard.ingress.class }} + ingressClassName: {{ .Values.dashboard.ingress.class }} + {{- end }} + rules: + {{- range .Values.dashboard.ingress.hosts }} + - host: {{ .host | quote }} + http: + paths: + {{- range .paths }} + - path: {{ . }} + pathType: Prefix + backend: + service: + name: {{ $fullName }}-dashboard + port: + number: {{ $svcPort }} + {{- end }} + {{- end }} + {{- end }} \ No newline at end of file diff --git a/charts/karrio/templates/migrate.yaml b/charts/karrio/templates/migrate.yaml new file mode 100644 index 0000000..b44cf68 --- /dev/null +++ b/charts/karrio/templates/migrate.yaml @@ -0,0 +1,74 @@ +{{- if .Values.migration.enabled }} +apiVersion: batch/v1 +kind: Job +metadata: + name: {{ include "karrio.fullname" . }}-migrate + labels: + {{- include "karrio.labels" . | nindent 4 }} + {{- with $annotations := merge .Values.migration.annotations .Values.podAnnotations }} + annotations: + {{- $annotations | toYaml | nindent 4 }} + {{- end }} +spec: + template: + metadata: + labels: + {{- include "karrio.selectorLabels" . | nindent 8 }} + app.kubernetes.io/component: migration + {{- if .Values.migration.podAnnotations }} + annotations: {{- include "karrio.fullname" (dict "value" .Values.migration.podAnnotations "context" $) | nindent 8 }} + {{- end }} + spec: + {{- with .Values.migration.imagePullSecrets }} + imagePullSecrets: + {{- toYaml . | nindent 6 }} + {{- end }} + restartPolicy: "{{ .Values.migration.restartPolicy }}" + containers: + - name: "{{ include "karrio.fullname" . }}" + image: "{{ .Values.app.image.repository }}:{{ .Values.app.image.tag }}" + imagePullPolicy: {{ default "IfNotPresent" .Values.migration.image.pullPolicy }} + + {{- if .Values.migration.config.command }} + command: + {{- toYaml .Values.migration.config.command | nindent 14 }} + {{- end }} + + {{- if .Values.migration.config.args }} + args: + {{- range $v := .Values.migration.config.args }} + - "{{ $v }}" + {{- end }} + {{- end }} + + {{- if .Values.migration.config.env }} + env: + {{- range $k, $v := .Values.migration.config.env }} + - name: "{{ $k }}" + value: "{{ $v }}" + {{- end }} + {{- end }} + + {{- if .Values.migration.config.secrets }} + envFrom: + - secretRef: + name: {{ .Release.Name }}-migration-secret + {{- end }} + + + {{- if .Values.migration.extraVolumeMounts }} + volumeMounts: + {{- toYaml .Values.migration.extraVolumeMounts| nindent 12 }} + {{- end }} + {{- if .Values.migration.resources }} + resources: {{- toYaml .Values.migration.resources | nindent 12 }} + {{- end }} + {{- if .Values.migration.extraVolumes }} + volumes: + {{- toYaml .Values.migration.extraVolumes | nindent 6 }} + {{- end }} + {{- with .Values.migration.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 8 }} + {{- end }} +{{- end }} \ No newline at end of file diff --git a/charts/karrio/templates/secret-cronjob.yaml b/charts/karrio/templates/secret-cronjob.yaml new file mode 100644 index 0000000..398a557 --- /dev/null +++ b/charts/karrio/templates/secret-cronjob.yaml @@ -0,0 +1,12 @@ +{{- if .Values.cronjob.config.secrets }} +apiVersion: v1 +kind: Secret +metadata: + namespace: {{ .Release.Namespace }} + name: {{ .Release.Name }}-cronjob-secret +type: Opaque +data: + {{- range $k, $v := .Values.cronjob.config.secrets }} + {{ $k }}: "{{ $v | b64enc }}" + {{- end }} +{{- end }} diff --git a/charts/karrio/templates/service-api.yaml b/charts/karrio/templates/service-api.yaml new file mode 100644 index 0000000..4daa7be --- /dev/null +++ b/charts/karrio/templates/service-api.yaml @@ -0,0 +1,17 @@ +{{- if .Values.api.service.enabled -}} +apiVersion: v1 +kind: Service +metadata: + name: {{ include "karrio.fullname" . }}-api + labels: + {{- include "karrio.labels" . | nindent 4 }} +spec: + type: {{ .Values.api.service.type }} + ports: + - port: {{ .Values.api.service.port }} + targetPort: {{ .Values.api.containerPort }} + protocol: {{ .Values.api.service.protocol }} + name: {{ .Values.api.service.name }} + selector: + {{- include "karrio.selectorLabels" . | nindent 4 }} +{{- end }} diff --git a/charts/karrio/templates/service-dashboard.yaml b/charts/karrio/templates/service-dashboard.yaml new file mode 100644 index 0000000..0738ea7 --- /dev/null +++ b/charts/karrio/templates/service-dashboard.yaml @@ -0,0 +1,17 @@ +{{- if .Values.dashboard.service.enabled -}} +apiVersion: v1 +kind: Service +metadata: + name: {{ include "karrio.fullname" . }}-dashboard + labels: + {{- include "karrio.labels" . | nindent 4 }} +spec: + type: {{ .Values.dashboard.service.type }} + ports: + - port: {{ .Values.dashboard.service.port }} + targetPort: {{ .Values.dashboard.containerPort }} + protocol: {{ .Values.dashboard.service.protocol }} + name: {{ .Values.dashboard.service.name }} + selector: + {{- include "karrio.selectorLabels" . | nindent 4 }} +{{- end }} diff --git a/charts/karrio/templates/service-worker.yaml b/charts/karrio/templates/service-worker.yaml new file mode 100644 index 0000000..ed0df60 --- /dev/null +++ b/charts/karrio/templates/service-worker.yaml @@ -0,0 +1,17 @@ +{{- if .Values.worker.service.enabled -}} +apiVersion: v1 +kind: Service +metadata: + name: {{ include "karrio.fullname" . }}-worker + labels: + {{- include "karrio.labels" . | nindent 4 }} +spec: + type: {{ .Values.worker.service.type }} + ports: + - port: {{ .Values.worker.service.port }} + targetPort: {{ .Values.worker.containerPort }} + protocol: {{ .Values.worker.service.protocol }} + name: {{ .Values.worker.service.name }} + selector: + {{- include "karrio.selectorLabels" . | nindent 4 }} +{{- end }} diff --git a/charts/karrio/templates/serviceaccount.yaml b/charts/karrio/templates/serviceaccount.yaml new file mode 100644 index 0000000..dd8a724 --- /dev/null +++ b/charts/karrio/templates/serviceaccount.yaml @@ -0,0 +1,12 @@ +{{- if .Values.serviceAccount.create -}} +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ include "karrio.serviceAccountName" . }} + labels: + {{- include "karrio.labels" . | nindent 4 }} + {{- with .Values.serviceAccount.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +{{- end }} diff --git a/charts/karrio/templates/tests/test-connection.yaml b/charts/karrio/templates/tests/test-connection.yaml new file mode 100644 index 0000000..5ab6219 --- /dev/null +++ b/charts/karrio/templates/tests/test-connection.yaml @@ -0,0 +1,17 @@ +{{- if .Values.api.service.enabled -}} +apiVersion: v1 +kind: Pod +metadata: + name: "{{ include "karrio.fullname" . }}-test-connection" + labels: + {{- include "karrio.labels" . | nindent 4 }} + annotations: + "helm.sh/hook": test +spec: + containers: + - name: wget + image: busybox + command: ['wget'] + args: ['{{ include "karrio.fullname" . }}:{{ .Values.api.service.port }}'] + restartPolicy: OnFailure +{{- end }} diff --git a/charts/karrio/values.yaml b/charts/karrio/values.yaml new file mode 100644 index 0000000..3986223 --- /dev/null +++ b/charts/karrio/values.yaml @@ -0,0 +1,284 @@ +imagePullSecrets: [] +nameOverride: "" +fullnameOverride: "" + +serviceAccount: + create: true + annotations: {} + name: "" +api: + # Deployment specific values + minReadySeconds: {} + revisionHistoryLimit: 3 + replicaCount: 1 + autoscaling: + enabled: false + strategy: {} + image: + repository: your/image-repository + tag: latest + pullPolicy: IfNotPresent + imagePullSecrets: [] + command: [] + extraEnv: [] + containerPort: 80 + livenessProbe: {} + readinessProbe: {} + resources: {} + podSecurityContext: {} + securityContext: {} + extraVolumeMounts: [] + extraVolumes: [] + podAnnotations: {} + initContainers: [] + nodeSelector: {} + affinity: {} + tolerations: [] + +dashboard: + # Deployment specific values + minReadySeconds: {} + revisionHistoryLimit: 3 + replicaCount: 1 + autoscaling: + enabled: false + strategy: {} + image: + repository: your/image-repository + tag: latest + pullPolicy: IfNotPresent + imagePullSecrets: [] + command: [] + extraEnv: [] + containerPort: 80 + livenessProbe: {} + readinessProbe: {} + resources: {} + podSecurityContext: {} + securityContext: {} + extraVolumeMounts: [] + extraVolumes: [] + podAnnotations: {} + initContainers: [] + nodeSelector: {} + affinity: {} + tolerations: [] +worker: + # Deployment specific values + minReadySeconds: {} + revisionHistoryLimit: 3 + replicaCount: 1 + autoscaling: + enabled: false + strategy: {} + image: + repository: your/image-repository + tag: latest + pullPolicy: IfNotPresent + imagePullSecrets: [] + command: + - "/bin/bash" + - "-c" + - "./worker" + extraEnv: [] + containerPort: 80 + livenessProbe: {} + readinessProbe: {} + resources: {} + podSecurityContext: {} + securityContext: {} + extraVolumeMounts: [] + extraVolumes: [] + podAnnotations: {} + initContainers: [] + nodeSelector: {} + affinity: {} + tolerations: [] + + + service: + enabled: true + name: http + type: ClusterIP + port: 80 + protocol: TCP + + ingress: + enabled: false + annotations: {} + hosts: + - host: host.name.com + paths: + - path: /* + backend: + serviceName: ssl-redirect + servicePort: use-annotation + - backend: + serviceName: uc-application + servicePort: 80 + path: /* + tls: [] + + config: {} + + envSecretName: {} + + externalsecrets: {} + +extraDeploy: + enabled: false + yaml: | + apiVersion: v1 + kind: Pod + metadata: + name: nginx + spec: + containers: + - name: nginx + image: nginx:1.14.2 + ports: + - containerPort: 80 + +migration: + enabled: false + nodeSelector: {} + config: + command: [] + # - "/bin/sh" + args: [] + # - "-c" + # - "echo 'Environment $(hello_env)! Secret $(username).'" + + # -- Map of environment variables to use within the job + env: {} + # hello_env: "world" + + # -- Map of secrets that will be exposed as environment variables within the job + secrets: {} + # username: "password" + + # -- List of config maps to mount to the deployment + configMaps: [] + # - name: "volume-1" + # mountPath: "/etc/config" # Must be unique + # mountPropagation: None # If unset will default to 'None' + # files: [] + # - key: "file.cfg" # Key must be unique for each file + # contentsB64: "" # The file contents which have already been base-64 encoded + # contentsFile: "" # The path to a local file (note: contentsB64 will take precedence if not-empty) + + ## @param migration.args Override default container args (useful when using custom images) + ## + image: + repository: "busybox" + tag: "latest" + # -- Whether the repository is public + isRepositoryPublic: true + # -- The image pullPolicy to use + pullPolicy: "IfNotPresent" + extraVolumeMounts: [] + extraVolumes: [] + ## Container resource requests and limits + ## ref: https://kubernetes.io/docs/user-guide/compute-resources/ + ## @param migration.resources.limits The resources limits for the container + ## @param migration.resources.requests The requested resources for the container + ## + resources: + limits: {} + requests: {} + ## @param migration.hostAliases Add deployment host aliases + ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/ + ## + annotations: + helm.sh/hook: post-install, pre-upgrade, pre-rollback + helm.sh/hook-delete-policy: before-hook-creation, hook-succeeded + ## @param migration.podLabels Additional pod labels + ## Ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ + ## + restartPolicy: "OnFailure" + podLabels: {} + ## @param migration.podAnnotations Additional pod annotations + ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/ + ## + podAnnotations: {} + + +cronjob: + enabled: false + schedule: "* * * * *" + concurrencyPolicy: "Forbid" + restartPolicy: "Never" + failedJobsHistoryLimit: 10 + successfulJobsHistoryLimit: 1 + nodeSelector: {} + image: + repository: "busybox" + tag: "latest" + # -- Whether the repository is public + isRepositoryPublic: true + # -- The image pullPolicy to use + pullPolicy: "IfNotPresent" + extraEnv: [] + config: + command: [] + # - "/bin/sh" + args: [] + # - "-c"helm dependency update + # - "echo 'Environment $(hello_env)! Secret $(username).'" + + # -- Map of environment variables to use within the job + + # -- Map of secrets that will be exposed as environment variables within the job + secrets: {} + # username: "password" + + # -- List of config maps to mount to the deployment + configMaps: [] + # - name: "volume-1" + # mountPath: "/etc/config" # Must be unique + # mountPropagation: None # If unset will default to 'None' + # files: [] + # - key: "file.cfg" # Key must be unique for each file + # contentsB64: "" # The file contents which have already been base-64 encoded + # contentsFile: "" # The path to a local file (note: contentsB64 will take precedence if not-empty) + + dockerconfigjson: + # -- Name of the secret to use for the private repository + name: "snowplow-cron-job-dockerhub" + # -- Username for the private repository + username: "" + # -- Password for the private repository + password: "" + # -- Repository server URL + server: "https://index.docker.io/v1/" + # -- Email address for user of the private repository + email: "" + + cloudserviceaccount: + # -- Whether to create a service-account + deploy: false + # -- Name of the service-account to create + name: "snowplow-cron-job-service-account" + aws: + # -- IAM Role ARN to bind to the k8s service account + roleARN: "" + gcp: + # -- Service Account email to bind to the k8s service account + serviceAccount: "" + +postgresql: + enabled: true + nameOverride: karrio-postgresql + auth: + database: karrio + + +redis: + enabled: true + auth: + enabled: false + sentinel: false + nameOverride: redis + usePassword: false + ## Just omit the password field if your redis cluster doesn't use password + # password: redis