From 16aaa53babaf7ef19354a004e2b1dd03d84b59fe Mon Sep 17 00:00:00 2001 From: Fabio Rauber Date: Mon, 14 Mar 2022 11:26:16 -0300 Subject: [PATCH 01/20] Added edemocracia legacy v0.1.13 --- charts/edemocracia/v0.1.13/.helmignore | 23 +++ charts/edemocracia/v0.1.13/Chart.lock | 9 + charts/edemocracia/v0.1.13/Chart.yaml | 33 +++ charts/edemocracia/v0.1.13/app-readme.md | 3 + .../v0.1.13/charts/postgresql-8.6.13.tgz | Bin 0 -> 31452 bytes .../v0.1.13/charts/redis-10.6.3.tgz | Bin 0 -> 31352 bytes charts/edemocracia/v0.1.13/questions.yaml | 182 +++++++++++++++++ .../edemocracia/v0.1.13/templates/NOTES.txt | 19 ++ .../v0.1.13/templates/_helpers.tpl | 79 +++++++ .../v0.1.13/templates/audiencias-pvc.yaml | 19 ++ .../templates/audienciasweb-deployment.yaml | 147 +++++++++++++ .../templates/audienciasweb-service.yaml | 19 ++ .../audienciasworker-deployment.yaml | 147 +++++++++++++ .../templates/discourse-deployment.yaml | 144 +++++++++++++ .../v0.1.13/templates/discourse-pvc.yaml | 19 ++ .../v0.1.13/templates/discourse-service.yaml | 19 ++ .../templates/edemocracia-deployment.yaml | 165 +++++++++++++++ .../v0.1.13/templates/edemocracia-pvc.yaml | 17 ++ .../templates/edemocracia-service.yaml | 17 ++ .../v0.1.13/templates/ingress.yaml | 32 +++ .../v0.1.13/templates/nginx-deployment.yaml | 120 +++++++++++ .../v0.1.13/templates/nginx-service.yaml | 17 ++ .../templates/wikilegis-deployment.yaml | 144 +++++++++++++ .../v0.1.13/templates/wikilegis-pvc.yaml | 19 ++ .../v0.1.13/templates/wikilegis-service.yaml | 19 ++ charts/edemocracia/v0.1.13/values.yaml | 193 ++++++++++++++++++ 26 files changed, 1605 insertions(+) create mode 100755 charts/edemocracia/v0.1.13/.helmignore create mode 100755 charts/edemocracia/v0.1.13/Chart.lock create mode 100755 charts/edemocracia/v0.1.13/Chart.yaml create mode 100755 charts/edemocracia/v0.1.13/app-readme.md create mode 100755 charts/edemocracia/v0.1.13/charts/postgresql-8.6.13.tgz create mode 100755 charts/edemocracia/v0.1.13/charts/redis-10.6.3.tgz create mode 100755 charts/edemocracia/v0.1.13/questions.yaml create mode 100755 charts/edemocracia/v0.1.13/templates/NOTES.txt create mode 100755 charts/edemocracia/v0.1.13/templates/_helpers.tpl create mode 100755 charts/edemocracia/v0.1.13/templates/audiencias-pvc.yaml create mode 100755 charts/edemocracia/v0.1.13/templates/audienciasweb-deployment.yaml create mode 100755 charts/edemocracia/v0.1.13/templates/audienciasweb-service.yaml create mode 100755 charts/edemocracia/v0.1.13/templates/audienciasworker-deployment.yaml create mode 100755 charts/edemocracia/v0.1.13/templates/discourse-deployment.yaml create mode 100755 charts/edemocracia/v0.1.13/templates/discourse-pvc.yaml create mode 100755 charts/edemocracia/v0.1.13/templates/discourse-service.yaml create mode 100755 charts/edemocracia/v0.1.13/templates/edemocracia-deployment.yaml create mode 100755 charts/edemocracia/v0.1.13/templates/edemocracia-pvc.yaml create mode 100755 charts/edemocracia/v0.1.13/templates/edemocracia-service.yaml create mode 100755 charts/edemocracia/v0.1.13/templates/ingress.yaml create mode 100755 charts/edemocracia/v0.1.13/templates/nginx-deployment.yaml create mode 100755 charts/edemocracia/v0.1.13/templates/nginx-service.yaml create mode 100755 charts/edemocracia/v0.1.13/templates/wikilegis-deployment.yaml create mode 100755 charts/edemocracia/v0.1.13/templates/wikilegis-pvc.yaml create mode 100755 charts/edemocracia/v0.1.13/templates/wikilegis-service.yaml create mode 100755 charts/edemocracia/v0.1.13/values.yaml diff --git a/charts/edemocracia/v0.1.13/.helmignore b/charts/edemocracia/v0.1.13/.helmignore new file mode 100755 index 0000000..0e8a0eb --- /dev/null +++ b/charts/edemocracia/v0.1.13/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.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/edemocracia/v0.1.13/Chart.lock b/charts/edemocracia/v0.1.13/Chart.lock new file mode 100755 index 0000000..e2e7d86 --- /dev/null +++ b/charts/edemocracia/v0.1.13/Chart.lock @@ -0,0 +1,9 @@ +dependencies: +- name: postgresql + repository: https://charts.bitnami.com/bitnami + version: 8.6.13 +- name: redis + repository: https://charts.bitnami.com/bitnami + version: 10.6.3 +digest: sha256:988f8160c4bd6ea76a95e38d6ee19b07676affd51e6b05bc0e2ce29f488e8c9a +generated: "2020-04-07T14:22:09.711759-03:00" diff --git a/charts/edemocracia/v0.1.13/Chart.yaml b/charts/edemocracia/v0.1.13/Chart.yaml new file mode 100755 index 0000000..eb8a73c --- /dev/null +++ b/charts/edemocracia/v0.1.13/Chart.yaml @@ -0,0 +1,33 @@ +apiVersion: v2 +name: edemocracia +description: Portal que visa ampliar a participação social no processo legislativo e aproximar cidadãos e seus representantes por meio da interação digital. + +# A chart can be either an 'application' or a 'library' chart. +# +# Application charts are a collection of templates that can be packaged into versioned archives +# to be deployed. +# +# Library charts provide useful utilities or functions for the chart developer. They're included as +# a dependency of application charts to inject those utilities and functions into the rendering +# pipeline. Library charts do not define any templates and therefore cannot be deployed. +type: application + +# This is the chart version. This version number should be incremented each time you make changes +# to the chart and its templates, including the app version. +version: 0.4.0 + +# This is the version number of the application being deployed. This version number should be +# incremented each time you make changes to the application. +appVersion: 1.3.3 + +icon: https://git.interlegis.leg.br/SEIT/rancher-charts/raw/master/images/edemocracia.png + + +# Dependencies +dependencies: +- name: postgresql + version: 8.6.13 + repository: https://charts.bitnami.com/bitnami +- name: redis + version: 10.6.3 + repository: https://charts.bitnami.com/bitnami diff --git a/charts/edemocracia/v0.1.13/app-readme.md b/charts/edemocracia/v0.1.13/app-readme.md new file mode 100755 index 0000000..ccc1cbc --- /dev/null +++ b/charts/edemocracia/v0.1.13/app-readme.md @@ -0,0 +1,3 @@ +# Sistema de participação popular para Casas Legislativas + +Utilize o formulário abaixo para configurar seu E-democracia. diff --git a/charts/edemocracia/v0.1.13/charts/postgresql-8.6.13.tgz b/charts/edemocracia/v0.1.13/charts/postgresql-8.6.13.tgz new file mode 100755 index 0000000000000000000000000000000000000000..08f5aa93d2fb0ee6eb212a004e3047d3fcfeeea8 GIT binary patch literal 31452 zcmV)oK%BoHiwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0POw!ciT3yFpl4!^;gVQdT;F3lx!z)T0J*=AIEl6pN$=_?WE71 zv|kG%Aqg9jU;)sM8t41Be-7SAkRl~YmS3_p&u(Lpco_@^GlRikCZSx680LS3-Mukl zqBB8J_#dl%Ha9mnU%q&u{@vW%EdRT;_59g?Y(3j~zV+he&d%o6e{60&d%pSdKVWmk za8y1i7l{4G=8gL*5AGXzP(nUn#tDskaJkh&Ns|5C+UmUQY_g#B4QMgj!&a5;v5U!fQwe_--#G}?HJh`GQ;Juayc|qq#%gd0_@<4xMI0=cbaMkj_4^u8MYek5}0+ARq z)f$cv347pE`||%f5VrtgB**(&zjMmtfD!-y2AIp{BE$rVJ42RLD12z?cMjm3rp(6* z0E?&*5#w~A@MIvc|9S!SKVjxM^)D>}{n***Y&~n;H;F$!GaiS~FHx9cehUI%HvfPA zY;$L`%>Q>@Y(4V-yLg^Ffj1!?pb+-eLIx6{5rzaY6k&lGZ#{VeCm}{0Z$L~11~Eng z#F%inB4G&h5;H~u`5sSI-T)H&VH%Kl1OZNP9N^d|m~Tj)HYB5z;Q$1Mlf z+3{Y=n3Nmn5|I!M!mLCMus!|e6psiOOv?`S<|GZnGwd@g65<(K5in*S=+%rfTetZIQqyer47nvz3i+0aZ~Le<-Zaw4dFKiy0VK%kM;3A_Lg z2#UR}O^>~J(E@n#1kMudli>tVj-3-45`UsU@8cm#L&4>2Kiv(l(1bq)GBg7eXat1A z(+~;F#nTPIA;-Y6P{j|2$5fm!%yBH9>gF;u^t#W4B3(Px&b_443Zptz9Mkxt! zS9QRQQ$W{by5Xy9e)L067M56(*%xkLhc zcCx#6v`^G{Gs2ZGW)ZF(j+zO>>udo=b2 zh>yLj-4^IRdN4#G$7-dW2_}0KRPqi%)XZdz%+VQ#X&A~W0)eAM5+|%Frf2muHHQo< z_NeA^U9Pkz>d$wkyiXvEfv@4bw!2S?bn} zNxl?Qp;{Q=kX}tMqt2WrejVc&vUjp?LtAP>t$G7(lnUCG8d715ioZzRMNsg^S5!@# zZrB}>pdjl9a=Aw&#(~tK*nf}Y`rLq&OJ?KKC_-_-d(bBVcxk_<{(S@2;HLt-pbc&C zhTDDJyaq_Ziw&gVM7BCiL$%|7m*DtpOojrk#>5}P7;)gfueb2QM6O(4K|ulzYZ8&0 zvN4HG6o&K)2kS=4{gb8;p$S|e&0)0qNBAPRer3UpQeP7C?n**G`=elVR>886a^TKph zDbFOgkph|y^-MF2f(hWygbTUgObcL|>`1*yebB_MmVH3DY?LbwBS~25N`ASjX4{0u zYQ<=~O{?V?jVi%Q6#`|ci&V3t1aW>vSzzAUpOU6Sbcs)OgS-b@xuVA>u|H-srYTn} zgb0XefO|mW4WPr}1~42^fiF;!gp=&o6(d5gsgU|8tk7pG403A5e(LOWSsDuxVNcJG zcZI^vSVZBIH}ChnUw7YnZx22kyp>?*!0jp6deElBVOw|iGoz6fb7?ft>P^2e&^`os zsMsYM&`Z3bS#zO+7*lR`xr!H$(Iqb6#5LV%l6ZH1(3ASDk7CK~1{nTU#BU2^2WNRB zIpQ~U8>e}ru&0+gNc`G&k^(xC#aM2v#vy6TvH=$^NThN>l+xj}qSygMlMCmaS!&si zQ?ZRSe%ee17Jt%mgx?Ka&uQ8pD6?U8AVBmdwTW-LkIDt`XToZn(}{s_fEe6EoOVr9w64% zNXqMEf5FG!6*QSNmnzYajE+!Zb#YC81~>^6FShmpF}`8SFjeTkJF=9A)oeqbX@pcc|FE%%iUbnw0!Zdn2 zxx`Ydnb1_qb4XGl|7NbCMnVB;toC7JtT+qr$~A_4LD^&qi*<^Rug%+CE~E}v(t(uz zQ^ww&JN_y3se{u12h(`mDx)={o$8>3JQ9TH#(v-A4rd(<+@#V#55*{R@Uk0d1C2;Mj z^9QAt%dNQjzhEgB>iw82d+-8NC4akEfxEZ9VuX*~^8Cn&7BmId}qx1*1#qREAP zd!ZZe@No~W&G{8P`Oofv#9cnNFR(wR(B7xOX@td?#G_8T3a1SQTRYbU7|Sr1kgt`# zMt#DXWNDIKbNdC3GGYH@ct}3mLg_I7A(`6#vHd~fpztFz zn)FoTi236SBm~R4Q*VYuu4VhqA7iPNsvjcc?&hJeJJB|u;wa7Ap0*2|P%inPTU<;M zIb!)w&)NzOPn4a=x4(LDOky*$w&+QCB*6JurG>C(pg&>sQt}KGPvq`_7&2FO z7ll4?r0I7RUYn&`HfNHxsoZWC+K$reA(sWs4vN-zw`X4uWeQ8R6vZC{oteNjBuXf-`6VCWh3=N zGGK^Jvdwi@)!^OdTRZCtRNJ5fa($zDA@@(ydb$jjBJ2onvTXm zh9!Zf&!NK*hf0RZ&Dj{EOQK~;D?4!Ms*eI#3R#|)Ks;7eNCOg>V>o}l_t|o zoQB~B#B{1Fbvz1$Yda3dVgvj!rCgt%WNqcWV%7mz8ztLvmUe$V+sJ%`LGLaA-u(Sw zLw{8=*`%;A+mj0i13qp=}Ig8`%lJ(qOg2okULO)VQcn1|8+X zo%301PF2IOB1CqdATd@AmY`H?QNp53E$Tc%9S>-;OF)K0%rft(vMU?UmZWOt1c`B_ zz0iS!r-N)$W6$>U)vq~&pcyPg4*b$JDDwPdpT-zYJ}8`J$0k++XOQu9py6t_6&NMQ zy|yQ{IxWYJXn>73g9oP=1-~*P@Vi(EGEV-)J^1krsn9MYd8SE#1U?fC2|SvVoa&`C z6LLV3PboJ>!L>l+?x$%3V>2~f@_I%?b!N;>a~zBA6AhHdHBShO8+9mqvXkQ_4C5#<$Dy+SGlM&$N82HqpAJCE3=a^Z0S>L!J*|f)GmR2+7M7LvxnGk*4YgPDW44J z=ls2K!|B1trvZJs0Z+5KPk)!4R`saPC$t>OcRACG>x1L3m-(}*_VgEZAZF3rtg)(Q ziY)*q0rnB&)_9!IAd@Gh6C3r$mY>4ogr>|mkHwkKmxIdud+F0jmH(V6AUBYCSKxFf zzZCn?(_^r%_L;D?{p`77-UeoKQdDAYXOa__c$?zRkF4#HwcQbGtK=Kk#$dPT(+>djSrD$z>+DhM=viI8b~trdQJ&d}C4Nenrc7=;bZh2FP_1akGt3OtYzT5XWCceQWtNaz$4q0Ov4KKvIXB$0 zs%_a^q7;@G``T1BWHeHSPmLzs%vu>(2(aAGSvN2y)^ihQ7}BeQ&)TMF%?zp)G6eiN z35idX^R;pi=a$z=;FT#O9y$B?FJBGH3|>yCI$A&i5W|_bxjVs6dG39lZ^=}Z2nl~| zO=)rq#R$^7SsG*0tirasBt~hVr(r|wa~VdyM#27TW1V@O3VmWlBFs173L95rRmL0` z=?No}CIvO4Fi6&bWWcIxY}&TuD~EzBy}`C_%f{>~AlV;TlM*iohmMa0hAtyU|8crkEZ+zvE_35~E|#OIO< zC=-||lYo9#?Qfk61)~f(r(;z|U_~XXrNwH(lpcdqMF!kwNLFi0WV9=bm{Y@_wtjr6 z3zQF9GB}QCOw6*X03Vz)s)C+peY({O=s~1g$yGFU@N+4d^s`NKH3&4^=Xy5e+!(&I zr@g#RvJsr7nxze}wMO39rl_kmGAh>kkNK2g%DXwHJ7j~>1SQ<(Oo#=s~040h?M-rXNBSW2;XIH0=&?gLB61J2e zH0FXKV&sf!%Blm#(aUjbu>_P~!;D8!Nse@RE!@eY5BMtLE{PgxI=(S_sv zeG#J37t{W$_LndD?ZtM*ZNoNn;OkeHVl>4(#$h&57j~ka$R^{F7vn3t!n{j@JY+Ar42d>BnhuY0 zVJN{)Mi)Wm*R5Xx{E=cw9PP7%w+DOY5Oe~h_L8uBrqI3td%I@`@ar!J$Fcz*2^7*% zXN-8(*hO}`VJ)k^0Z;ed9UmX;oj+ZN^HOC8kPA-!bgHex!P~O~*o1@QeF=g53O}E| zJF2M;>NW{e_cImLF%^<%)}GoGzWH&7ZsE8?NbM3s5Ps-H>zWsLh z^}*YA>0^QGw5>O|y*?`8Z5KL_qq`VP1m<uxb+CHr*&(M{twdHDkxlUuQ(U}3Jb@&GY z+kMBYd3;v;xRGKE%jMnUcjpIZ9r0PLrjOb2pSCt%>};3fKfT!6+IfusbQjO}-<#-8 zQkhGTP`13QF$uAWsDPM|I`06R7)~Lb-~hh=zSVLa`%#>m)NlZo1Zfj!o#HM(8l_!F zIDjDyLwY4U*+15LjJCyH5iusQ-hCN|L*=Cc4L1dyFJH2)YA3Tg$q)R}@0b=l`fh~w z;pi$S4#)J``trpCGK9_t9U;xx4p`SN`1*ALn3Q;1957>VEy5*t<6pnFER0grSvc!& zz`~l;y4LU?6=m&p(j5Nw`nu}koWjUB#Ad$gQqJZDrFLLuM{B@v^6u>X&FR6}#qR#m z;qk@E?%CO|?@sq$eYYmn1Yd-zNpnxr^K#>79d>F_%rl+d5SB;bU!2AX6606xFH&Dc z&M>pvLD_}XuWh(izTi90!Se#_(*Um*a9oRkI+(0~zlLZQdL9yDX5vF4!H{5P70HxX zmX;T@JyX=9wnLNU8ZH%cyx@5(0?!j-0v?gSu;km~)zf2qiP_U;81nQEvbJmW)gsBm z@#U-b$(wv;rY5Tm&Z=9pOQ~Scw+v!kFS+V6g@c)O!%I9*+gBP}a5Sb~DYGWzWDA~W zCILJT68=XBo~N#KHMFXD?-fSt8HFqpK#56C-%K_%IvPV?;s#9lCh3kr1T9mm}?LyVZT&dtTa-(UX zaPeqr74u#uXR-@bZF@PSo#D}%Hq`|Q35mn-j^FJcTpXU1*qm}pX}E@q%!>#d@sFFo zcep?zrP$-C3@5)jLD&lBt`(o_A}+bUn%nOAAUnP0cs0~x}a zj+t2^Z^M*j@pXW&UmeEOuI5aJ5Zo32ok2f%o~sD%Uioz8471y@WH9*s^#m z5t@KNpD-X8;wy+qoC?gV?>QZw*mGeUYqZm{=9^#D@wBX>sZ6cx9y~2b>Px>N1zk0y ziKm5yb9Qk0;c%~F?KJMVDZBUbQeVDE;lotWz%>#F_%qmr<{pW4h;h}}TvxN(k^eEX z+5T#mUt{WCmbh~iS^93U{do9vpPg^c;joq{w0!9o4d~tWt!lE(RdV2fMKbp=nMUV0=lHc#t~vUBpgT# z2ogqvR0lqB?uv9;KahAxGh22*eco}?1mqs%-7&rL1nsKJ`ReA8XL|8uFP>AfFrD{p z@hLu)_P>iU4in6HMKYi|5Oi?)Pv>qMq{W8AQ_eF!Cj~~O<%gFSP#5{M(}1qe$$e(iH=d4U^fkqgUvdRAVP7SN~s`;ciaAv|qw^Gn8a##y*7X~n4Bo;$x z{}=cEONzKcYr5Y>$fW-7Z;^WRZMq5~T7Fu;%Yu+Qwb$m)!uouwont|-neiN;wjOT# zCPd`6w=CUgVmZYkW!l<_l7!KO5k(AHJ|*p=uFXV=HYv?!l11xN)=q&na2#D?wnw8x zQc?SFueLhRz0D2ypRLYIZ?g@ZJ(M7oIEi51kpyU3>AWGr0w&vQnGs)FrW zmf|iA{kI**wetLuo22#+ZD?OKB)vL1kyL`&bb1eU5oFc?j9ofgqs&Q2BG+kIoi^D| zobpz|uB(wL;8`81bx##6Z3Z&V`3nvs*zRm?0Z$WU4$})GyTztsENU+~shVd&9DCY4~VLJmNHh@#O!pc8W#bk++P^TPI?3D~X zMb{x65x>*g4LP-5{7;4Q<3}L(385l=%fv(U=fpb78rMG+%se(;Ci$E>tj#2-$<6~S zK6Z*pYD`gEJSWfYfAOB8&{?(1ldC4qbGpws;p|R|L^Z!vcMZEe+^F?NEZ2<|Yu1R4 z;G2cHowb(ipN@&4LO>Z*SJbOGOm#-SRQ&=TEA0=JRmy!f?ZK_fP#o-r$rv4{5o~QP zHwlfu464SK>Zw=S>czz~+ z^E3PfDc3PBE=0Lmz1p$QFl5d|Llc^7gcEnF7Q~NJRi#H+l-^XOxtJ*fxTJJpVva0v z^~#yUHWqsoMX%A2-3oJuYtI9cLg@vDYQ6Wfh~~3~ow-IYx*{Aa`9doqt2dvQ7mC)e zm+2OpZ1ju*pKI+pNl%tj%Y-FL^3Y#1@i-kQtf``3Q*$BJzrKyRn}NEjkK2RC?ZLfo z52|mdVQ8NbEJi|0!NjDtxi2q zdH7JEhMIa+R8cZp7izACJ}j!LGa@X6GdFj_Jls|0S(uNy>S_%zXDi+&3eBxN@~1|f zO;fN43X2H_s!>;+gkV1IYU(vWo~-Ga;oJ$z3>#PwUuC}33=XNG>v+rj9$2 z4q9#Gg(Warr}&!m_=if_%~TFEMCJN7|Gde${olSUj*gFJH8;;FsLD%$2E>l@9Nmzz8+lgsKvCd;MhbQB_u)JDy@2^#Cv4 zR>Psq$9P$%e#HKLVZV}Pm#+TX+bnY|-0lVZJzYcdK@YC&a?sDPJ*oS0v zLAXvBtlg2T>be&Oui=lBirhE3L2quAvFrcb$m#e??zy}YpqGRopW1>O{Co#y4fjXz zhR~&ns7gaAqNLl&v<)1s#Fv&7Hzi0a^-L_J;TiHt`lSa8y2@SgrqmqwBn9` z%IYCk8va8$+03Z6UZ_{zNKa?B_^th0yFJxcz5trGQ(@|vIT}kfGYviN;YOaTqQ2po z$f|2$8e_}hZ8r86#o>bEbJCKCh{niCxtC{} zdaq(6wQ9tONJ0f}8`e}RMQC5@pV=so7(`kaHgCQ(`C^jb zLoQLsNIYso#|CpNU`A~m^_Pz670QdaqRN`7a}9$26Gh>Ab?s?&W)Uw_CxgcvqpDM| znTP5BY<0GtFXZ@{Q6;odl34H3?OCq5S;;1jw-PiGVwJ7*3b9zl%_p%Eer8)2VJ<06 zN80yg!671ZoJ7l)sj`z6(-?=|D;2}J`ist}>%6N}){32U!T==&E7=hiV;U5;`h{L> z2DAKSdm2(%@L!a~(EcrMJ4HR`a#&WjY>)UY{;>P@{lOW0*nNArzk7c8?zs0`td0U~ zm1~8~1~c`+jMjt#ma580h70iEa0n6uos@-gyRCeC#Tct#FA&i9sW4i{7@LsHg**we z?gCRy(u1`g&XrU@sf~1~}yuSNNyS z1*>#1EMP#z82Yw&U%}aT>h!@xljh1Rfkfu^vWe}J*tCg|#^jF_!(!<51m*4Z3Wuv=8t?4;R4VUM zNS5j|GQ~%8{iO$&Tdhwd4tlv&z7=7C0whqc1-bpGQ4E$sHr`^CW0WNI?c{B!vg+1J zeQ9$kB`ePKm8#yqfgk^4v4SZ zu+3FA#at6F~Np*}E2 z{%>tRFU9}d-g@?8^HKia#pCRI>J$Ju`<}bdxh@R0B-Sb?yd2y0aR|`zWC9;Hl*QMR%N=vj4gK|M|Cqq*PiVjjs=?}l*Gc*j#G-`eBt8_{zoYP-x>Y+)e#Q`@2ZkisP;j-)oq>Y zy!I_igIRK5=1l1sQqo~SV#FrK%@Sx&i^3cJu*_@?n_K%)gmbs^tGRQ_YI(fOGi& z=FZNulKt=H%biF2-<>=a=N{I{%N~7{-xo3!t(0XuezJ!5e6wuY4p<}0`uM7Kq`@-G zW+rZ{Iq6F0f9Cq~+d?d^Q0c*!!$6YNV2=!B+@O}E^H4fqR%%mYpykID+g(An#?g^OuU4F@i!KAi!4fnim4G5f(ZpdZ|2j@)|EjKK1lq3#eSkI_BKJ zqvofdO8#GrT6bd!Fz@{L+4FMz*O%Kn&mQ^zT|6cJUzsLDQoUyTg{&6^$xyrMYNHye zmAI_@_?G2{W%daT&I;_Sl#_kYfi;HJMC-TNQFp_TUIB>*G>ro%y%aZ$+Tq&yi+ZRW zcm9IEY{N_|dA%W{QL)<+zU)(hx7-bLfxIiFoZv9+A6!}J(q2GrWX%br78duiH@%6_j0F=8}LO1r<= zSpCk?Y;+cVSw0D2&4RfO-@!G+2Gk$_{mu0&e=7MuH%b3j;{7|H|L^R)n9BdL{mB3C z$=TOXR__p-PEoKe%+}& zxScZG<(p3SEV2JL)Ny2}W4ZnRS)q|? z)p1TZv`S^72FTgl|Ap%Qd)NsojN3KCpJORluyWC^P%`=2lMx&T%Ihz)79>??zs-k0 zVu9JEd$wTTG@1YD+EbSHW?*R3^*MUE{^wyrJasyAGgHuP`TuNd^JPi@-`?DQ^#8h>r`cY-$w_}*Y?)5( zK5%A=oK+f&+6@nD6-BncW#KzzJy%2Ogo|0?Yg%!=%w~G2&9m`K_OC!cUc|9)j8PC` zE(Nq9CSH(fE`=$8Pfe*imN-*~(#6AQ+q{9pAy$Bet()=*OGoXC9#`bR5!F+CToSnxujk0Kq*{?yel*}?vHVhhM2jYfKo+sUTaQOSED_x zjeV)f-#;B@*#Uf~R=dvz}*x+2eU_WI!fMYpTGX z1w)515qmmfA!fXI05Bb?IExDAH0H)wEJO{c(rfZlv2!T z%6!a=rLxyO9qqBmaq>#JgF*w3J+RTKi%xkSbO$8v@^R^{=YKA}xt{ibtO;;BwJz-w zeF_LO5u2+jMsl&8=*yrg_CTY8rRi5gm2?3wH#cv+ry+@hCUwD!8FR3hTV;Q~mo>iqw3c z#L8Vg%vWR@sx9uGa!O0dx0MyxyIb{S(X9t8$9itUXmEU4)}Hj#zCJuZ-aR_J*gtsv z{!M9xsenXg7Fmqg#9Rh}_7H^}m$Oa;c#w|jZZ_EdPTrlJzd1cP`^Vdh5AWW-KRUSB zKRm7Ox7~nQwdZwm^6vEf;`sg1>w_7+%(=AFp2fl%vC#~$H~YKiyR~SZ_IBGx0__u4 zht(P`TgJo1>A}g{!#x$c`r_!_{y_~YGBa|+rrw{`VYPu9T6Kz)S*T7qwjP2%lW;DH z6+k`NJv;mL-Rb_t&xdd8hF_N<#rXbq=Q!U@lS!4@*a*rh0Dmsr{j!gS?eBPUiigu* z=b2^QjG`6ym*n#aPkQs*4ws_Iy|?er&JRv6c27<&j(3l0CZ)zqj*{%}qFk%#>}Xf@ z^~<}n^BGKT5fNA4$y}CG>xrrv&g{i-s~)sdy)C=+@;_F)?xy^Dmt1sH@IBxaH#O#_ ziuQc{d*Nwa@oe6362F1DYdmG8Yn$$Xg`aqNo8|qu)!R=NyMheU)DV(OoaJ|`R$B{2 ziqPWE`4LhMT!rBdYK?bb40uy7XI;sd&MjAN@EgfBS2gH5!_z7TwIT?onT&~*xsO9M zsXF2*(pg36a)U|jX;HDMr24E#KSDc)&2Obxu-pt!eIIjvK4zGYX&B6Cs9dz%)DV#{ zWw=RG<)Vx4N{iVWt5DwFF(xvUx6}oXnH9MN8ov<>aB;Fe@SW7OlfGhP9HI>$9V+H=w0b(DWG- zS3yp)jsImPZ)zd< zwq6l|v$vhao{w&dzuV%Y3-QpU5aEKb3_==7>>6pUQW)-&a>OVckTmMS5soOE6c+{g z6Tc-95k1&?LmEKm-XxtP(QBl61|xh~2pwfk$jgQ2u})s*OO>6cNq_`C6ATGFnrK8$ zMfWTga)NsnlMJ6?9f_emt72vjU^EO#JbJH+^dL^dumv;udF=#f2D=v`5}n)2A@)jE z*(DmLr)kQW*X?M^O@n7%cxs#h+wekK{aOHoaXh0P*&x|p@+f~#u9A)Bp{tE#Hq1Zj0(%(#j+qkHEv+VWk`y^b~mfZ~O;C17~G zk=78Ld%Tf0A57<7mLZJCJ86%1(&n6Sf75r;7Cq8?yp;BMDedu6noFRMm(p(iQrb7~ zcktjmIvT3fHP_PeD(>yH8FiX%#2SOO^aZu~^&fAjJ>F2e=NoFPzdUv)*Wk)*Is@xa zrFhcO1BUmPAEp6|cD*gbu7R*UnQ9V~WZZ4Su4qHv$Era=F?`?eOFGr%^T+z4=; zM0=X#D`#GUd$xCacyfNGuF^HS1y$d}A`oWxgcgHx){Tn_DC>Gz+^zAU+^n49;x%#l z>oMB&E~XZckC!nYFJn5-sxD(XE=TSi!9pOyN$igqjcLmFXcQ3vZ8{vb*XLpI?4QSb zzns21e)sj(T3F0gpd~&G`BBY9`B{z+P&1}FJDgKW&d?8*(`FmatS?6Swart%gSQ2 zo%Abx^t1LH@BHpQ`jWW{Ss$e&9&=hN@2R|SFzlL~Yct}1kjJfweH|~L_L#Ky^9lYK>JGj_CZq|e3 z3;V}SVSjyiyx+WO5(m>wTP~=Tq$m-S=~{W>v$@Q$0NFPnFbbL5Za}AJ2fL?xzg+B| zpEqV6i236SBt&BlV*2>`@a=hX7NvR_l2A0~RPRsUHfud)VU0YPWu>)3<^y7U?`XY+)wzMI3!V9lB!cI6Y%4$4=_r261&vgH9@j-n z3mxH#V?rfO(a6rQEpASnRA76O_Vy_bc1x;=bgCn)5u!YesTg z?ooB^SGq|xbCQy!zOx%U=)F?+;R(Y5v=3vTEWiu|1w8^g4=|xA#25$i6Hl;Dh7&-L zHM3UjEup?ScN0b-9iXsN*ngGFueX;!H`w1j-@Q0{_x^P6;Nt!1VXdhpVI&qqXlGl* z-hTz%|Kk74c^J_EzX}MKqgRmBTwF05$MtmwnJYc1a>sJAdvldQ^cYODP6gBUfg_`@%r+uak#Z5vDYaj( zsdsTW>49LWYtch&#C!0u?U~Ja=Z_S#i6<9Sdjr~L*InpY1%zq;K7Y6~4o+$p<vrl#x6w}rkQUyW@nX0 zb%lAj^4n*^1&K#0c4Q^=MdNW+SA580PWGnL!8htd&6s?7T<`&b?<#D2%5<>$fTV8I z^YFJ;+qXMFV>x;Z$@v(P6IK|9vpW9crJu!jTR{NG+3_DYw>F<`O~-%SdW`>g7mpkN z@p8*XbJRhM7Kr3n9~|(Tjpb;$j*eZp7p78MIXr1e*<$|g!7+{He%jgV&U6k;7V`xZ zh>ft&JK?GJih&FlL2V;k-8W%AK6moe@_&X=u!`Wn^ZEbw^UarK{=fO+`6K_oi>KKg z@7s|QlEl7c2~iPhM3tEvop-r=SXHgpT*;~r^*a@b*S4C6;H}v9*+L;j!D|$v*q7q3 zaDTSYPW!D>ux++3#mbdHl-e&3q5xat&S!OUrZoCfxpUytP`Y1lK5w=CHlD;q6^#{X z8c-EfM~^9{0hYD$mh79#`JFEQr9L+E%2gW3VhXFI9*?;UX2|~)iGKCWlm9QCmE-@v z*n0jL|Nl;&TaoOKLj6&wKMM86LcP)WGXq4$;4_1SZqKn#R7^*y@D0?9NA03oyD%9G z?whqYdK~%R8RIY_qnI+h+CJvU|IHU$FG}+N+0NF^qx`>%=Lwu3Aux+M2nu@k;cARy z7^EZ&NIZfB`Jd1T^G@ptoR0|yo+gS>03YKpgi%NbI*|&AM;mgnAVDs%a?5kxqc~_i zff$dpW6GKi%zy)Z9`&E=9e5Xq6QHrGDM5k+GYCnHJFU+C*~OWl47Z-Z9*rUz!-u^y z2nge?&WMPv`mYAR)fxQBy6V67#dy?}|FJ*$W!%jh8X*5unt*alXno(|S4r#p&H#OC zecusL()#}Y-+BTc5F<3@aJYZKTb+c_e_>y=IwZiTtIIL^uWw_;7awQ+pC0V)A02d} zVAXxhT>smf+dDhu^PlaPFCNc-?&Ns_CN$dFKi;-lAM+o-uZ@LBc(2>Ny1H`jJy164 zt^?tKVxR-L4m`c&X^g`BUPXjrG{TY8dH9429KqVV)BV>+XX|>wqZn|Mj1easXbj3Z zijx5eiI^x=h{nJLiUY&~?)fxILL#-SPOJ4ZW$?@H1|&)l1IHLX3dxulPG}DIh=_4I z==e0s{5IA0fp-PNxT~dfg-fS5M(eHClP7Tg_W$gk{-0K>-|zc0<}}2u??4Jk)e)c| z08<-mpSpvNdF}RXtCE-t6owE@Jfl{?GzhXw1;Sx07!6WiVz<>&+*fr014;!K3?&>8 zR8CvP@Xf!T@xIFYTZaHAA)Tn{qOol9@96-u7z@mGlf7>DQ}(Ju=(<%iA>~p^h%ttb zzu+*+A&}$k@bS8pAciJbr`39G@TTzvK8j(0A>~#asP0jc@VvE8=8YQBIt(duftD2G zkQ^O?ga!6=`y{r|@(wsy93u_`jAIa(3w=fCin31{hT}Jf$NvuwV~HZZ0X}BJGb7l5 zVVL4r1ghT?Mk6f7I8~G^Xd=5;_;~&Ilhfh|5=Mg#q22Y4n%@(K)g>lQ1m>-l2RYhd ztFyKJL(9_x+3sv@{Q#2i<*#R*O>ck&dM3Z0e1L?}OCmS%m|5v8$1Gt;;{da8BBzMN zLx#9usV`E74SgwUv=gY%)jFpcmCBbIRSG5Yr=?mIBC(&7alco!QWhZhbJ>>;8(?OZ zJIqO;c8pyFSpqa8wb^8h3`JPZ|L<#0lI+JiaIDrAgoF#On#sR{7$ae6 z)3%BO2vVlesfMPzX|?_a-+zBjlJCFo!CS%w$WfaibF)VJ3MH~Dy}IAWqzeCX0#f^_ z8{iNNtUkNgc8I?c@upf{V;ac}NAwbNuoLZ~mPQGUaV$6>&Z$q3uuC&12|ZDvs^CzD zq3jHey3-*ILwcnKiUuL(4#u+y8-xY)n^ok{K;EwyW5Tj2ztkJSR_hw3pA3?UZ&l@Q z^z38pohfN*#m`Jw_YEdy)o)#Ui#>~$zt88UuwJ*Wp>J+^s{6F3ctp5hlYaetyivtr zUx`yVl(m4FYB!nb)j!wJk4acNl=<}??999a+s}J+)@^>5Ku!wSrd0oLAQh*WAQzqOqAO$U`Hv!E>5heSbn&#_2j~O zE7)#dxY|$MpkB?umL`K=-?VYM*Q9e>vZMqq2H@U4nQV?BoH97Ns4<;SwF|=s`W# z&_5g=Q*pvD$MKYMGQWNiJ2Rz~?eWY6H9DMT{txW2TzOfczLGVnU#3aCj#c(teJC*ujbL`x|k|?pG4&jzuS~IazsUJ4S&iyNi*U;Y$uh3+s0ynFE zHFj!4YWCq8RA|k^eYGu@Oti$F*OYJ95c%o^lXJ;CNeu529G{KJPyl6+k^s{9Q%tYo z4Unu!-`Up*-&bb@x`zJd@)FBnrxXllc6-sg65Xp{Lg zYUWxG{r%}%7~m0!W9=ZJmfDcANH_P9|K96%$CQhYJxN@@cL#{$ApZEjACVA@3{ruA z|M$5`IQTg^7Suiw@QPp_gvKxt@ zvj;&j`LjCgh_IQ?lw)Tr!_4{HGr+OWCb!~+v;4Edm8D$g8_`Z~-?6qCs@(#mnyC1Y zRtPDJtP|S)u`Dzoaj-O~OFS!FSt=jnV%R~+gGSCuWmcAAaE|qB*NS90Vs(!L&{JNL8%zySlFZYJA77$ z9i4}?$;vvVRM@p5^+A_H?9NnC5V>y#y+Z7$RH{v|vwtkLKQ(^KOa#>`&jWi_i=8ZG z?97#w<>)UE%0oodO0ZKAa%a{q)a=onT1$6-%g;*o=q`3rK4-I4;obCLA2YU#xr3^! zU&hYdwKV~GI)=r|_v@iO7CQ|XMs@u%c2vX{Gycl0#Wft84d_sZhv9aOJ-B0ZiJh$* zTTTnunZ*8>(U_)uk46!x@T!#iET@>dL_!2aG{7C$4MTc`19KSHgFcP>8?uXt3VeZ* zB%CgDVrXb^mXr;Er=>RM%K0E`k5kxruxh9?wxtNDOgoMCcD1zg(4H03&eZ+5svfIu%stF!#e7F% zXP?a62TfrI0>WTO!{Fg9uWRU6#Fgm78keG8ixI@3GB5Iau0;rj4&uv(=ODZB1XLBk z@g-q2R&fw65hMD#^@OHyrCeS^@(F8?Pi_JhXz@>jyAgBd=F0N*UF>{7jPD&a*0B)i ztU+*u600pqmFwYPZpAC>P^I?SWutl?Uszc>6_CLPVxu%tK>!}gb1T^S6@~T8r+^)~ zVO9GQWtwCt=E#JPp!e;G2dl?UAyHY~jk(h_79_%UUFBgPZZMA9c~*=aH_cov?bt#y z(6pw{9`)uUlDjv`s$-els`WyfoT=|92S&YxbP^se4Z?ma__J(A< z_%rrX6K1Ky{|MCr(FrK;6K^ZTPJ{h9%s7AL>K+}z0g!k>gx|`u`c<_QM=mX`X%1Xm zxJ$9uWk$Dh?9BI%HpxpBYD#F)m%@y3n&X%g6(N?yL&_o(4_0GtDiUDr98tD3a#w;K zH#~O(-+CvwnvFWI0((Ea=NkH1u<@l&rVD{q=J!~R+469oYv{jt{%m_`;wfOqMl7G> z)lfk@S*-Ji^{jMdIXMw#@ts{KbwcT|%(S#LI4gdxq5tJ;AJ%FZ)7<@C0XxOC3bit; zlzo8=Go&c?Lpb!^)C%_{&R0!4b$J;|w{&;Sr3@vY5W|3sCxbe~;+MWekc*#H40O5C znRq`pqaA;YgEYjf`lPOuv3xPyMY&{Q_F-1KKZb>EF8D< ztR6dVR`Y64yc0$*Nq|+1cr3otrB)d*&P-ml znXwb(a?&{=6?PITB{U}^?QF4@O9!Ja-`j3tmDoYUq11opgbuxiT~qGiV`!Dw5j4bX zo_PnZ;XEt%(DAbp&n8Pd4QyYs$0MZD&A9nPh0aZ6ypy;<0uR%W<9o)^DrrX(!h8#c z!H%Ju2Z|U2>*}zR&|r7I?X&^yBsAa;05>bg&fEFqGn;lE3}OtdE5r^XR0S84yMtOY zq1>bEa%LOhTvoxzA1n6!K=5N|RSGSI z9c`XDk~{6XZK#7Cvt>{l^9P5UTf@%m1FbT49w1&UtgFKgCjs_R<#MX+eK!asUM#kX zi_BnZdFXEX+yFb;;vS+)+;EGv*d9x@e18WvE0I?kJI%IOi|?`S5ko7)PO~l6GJC9h z!_P`sj-j1KTdW25So~hmv_jfxw#90`$GTs{7+6<^on~9CrS@3&wX{}?od#R1MfX_u zDz#RLokm-%#rIhEE3;Ox$I|F&w#B;99_t?1@~VVZvn|#Q_E>jMMYn^U*+%8X_gMGH zmRE(H$1RpyRpLcp7Li!VYIG93{a&ea*vT?^42O1Hk9SkGcj7}GG zpU;Xy({bfG*@$4SVejO9_XtOnO~BR!rVomFHzW~xFn5oxLBrXD{`QNVBhufHz^h-I zl|D)3`r6gBn1*4FL!5E>vbEGo!k-_6CrasAjk{n8J4614(X{4n%{8cxZr+MKWyJ$~ zuA#rRxw(A&wMy(bDLkrrEGPANu*g{zc9awMuJ22YWsX0kv$C{bJJQwcjUszv!n9@r zN5$a;1{hE(XoLjuRpv8&tyepvmS89ZFyeSgZ|9YS#LOXcL96YtBD`1;PY>o2has=S7M8b1|E!yycV9}*l3ZOTxL+T^TICZBtLZi99{ zCn52PknDvg$j7{JNO29j?zJ^#4YCFFeQRAkoB&s^b#iUh5DXcOY;3}Kq%Y_&G#nBi ze4Dk?Ues9)c5ZIkDe@f>6G2e8k3%%6*iBr6`T_$yqzq>~2NK0}2nStX+&9nBus++o zQT=J`B(ru|vd3TO70{u;D#TKPnMxs~HeCuq59qmutyN=3kO4ZejVf3!GE8#mO?93Kge>s^| z!p>}=^_P=bCG5-=T7Nm2Rl?3}q4k%OSrHbD_%oBQyFH!>!~`HY{s@aPPPyD%Q6?Uo zb#Ntnbc>xv;dlPBVR!r{Eh*X&a#L+f17&bbW9?%w#wZA-fH#fas}*A5_2bL-*M2p2W(Jt4 z3M|8LKzN3lhZAPzHfZOF#zat7!=z1G(lJqo!$wmV)W!`xE3~06(dOKnCYT}l{%)Sz z;K~*|x#NKA4pvxM*7Zw8h;xF!aau-`&C?MO?$b*p+y@gEakufT=4wqfb~1}+DJapq z#NZ|?03VD8hzO=EXXa9VsHa z-RCy3qepbEcU}FwM}r-+9a{uBrpg`RX2saarQ2y5*4cTATv;+@XE_yH;P=dwSId=4 z*tr>3E+gtb*z!ubatS+iTsddPS7Xek2_|!S;$wS8W&H{6__@}u_b9>+(1?TM%s9LL z4D2vD)(Y#_NA=J^jt$f zp#CS!I)pC04J~6QpYW!4SN97fNh|e|j%K@!Cy9aFKBsq;8fkv}8=~LJd=piH< zsdyw?KHq(FalCtUunc>yz)q5eq4qdvN;|R!BoEM4P< z*zKAt5@#xE`@}_!&KP;`E-B^5s)K6*#oEgb1p$z0xCMm(Cn25SKso6fPrL$l{FDnC z9qC{7?oE!uqibZwi--2Ccq`Gsak<`M*|mQ?jAz9rj0Uc`vs`i?8h%#dl54Tk$j#|5 z=iXF}othKlzuZxAHFj!FjQ?^+#nsrUIWhjr9Tit&r{=`?FMCwn$j#|5=iXF{R(y+H1n!>JIEo-jP;XQ1QSd$t;QbFJII2P~;PhKfQ_{WXx z&)@r5zGmfgFvej7B<2EzVZQ@EQ)aE@8?9Eq-#JYJcdJzIELR^0J^{F zEdQ^xImV{%--DC0AlN*#HFp+&y}$l85RO zF`EmK=gB9Wg_@`KH793@PG=Fo)mS!RFm0#QA0sA~njddy`tD3n6xL$*Z}9#1=Op?5 z`yTw0rV6N(>r9vS2>7GZ&hKl^kM&mT$rC7~h*gPf3^e*hfCVBUmqnkzM??GY;S3I= zC>6?xB+$q?915ty#Hbc3F3!*fcmw_1nlxS9(_ z<54&Ph9&)E$&}?NNdW{PvG$Y|G8r71@%#!{X#iR1g zVKU6m+yok_Lv*$HO%_800T~W4lPzh}ZL9TKBS0UZ+BroK<10-Qx&?_!BDfoPgA7fv zOU$?&g-LUvl1FFdHh_~+Ooqfqv4xs%0A=7aqTq(hG>kDr0}>J;saahS?&x_u$&utw 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 H0Pq3;-58IK literal 0 HcmV?d00001 diff --git a/charts/edemocracia/v0.1.13/charts/redis-10.6.3.tgz b/charts/edemocracia/v0.1.13/charts/redis-10.6.3.tgz new file mode 100755 index 0000000000000000000000000000000000000000..9b00dec0d6ddff9fbce5cf2f3a928a87e3c8a077 GIT binary patch literal 31352 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 X&AAtzfuTPRnFh=D8Y)6OLqq&OyU6ht literal 0 HcmV?d00001 diff --git a/charts/edemocracia/v0.1.13/questions.yaml b/charts/edemocracia/v0.1.13/questions.yaml new file mode 100755 index 0000000..4454f72 --- /dev/null +++ b/charts/edemocracia/v0.1.13/questions.yaml @@ -0,0 +1,182 @@ +labels: + io.cattle.role: project +categories: +- Participação Popular +questions: +# Informações Básicas +- variable: edemocracia.siteName + default: "Câmara Municipal de Teste" + description: "Título que aparece no E-democracia" + label: "Nome do Site" + type: string + group: Básico + required: true +- variable: edemocracia.hostname + default: "edemocracia.teste.df.leg.br" + description: "Endereço para acesso ao E-democracia" + label: "URL do SAPL" + type: string + group: Básico + required: true +- variable: edemocracia.admin.email + default: "contato@admin.email" + description: "E-mail de contato do E-democracia" + label: Contato + type: string + group: Básico + required: true +- variable: edemocracia.admin.password + default: "altereme" + description: "Senha de administrador do E-democracia" + label: Senha admin + type: password + group: Básico + required: true + +# Recaptcha +- variable: edemocracia.recaptcha.privateKey + default: "altereme" + description: "Chave privada do Recaptcha" + label: Recaptcha PrivateKey + type: string + group: Recaptcha + required: true +- variable: edemocracia.recaptcha.siteKey + default: "altereme" + description: "Chave de site do Recaptcha" + label: Recaptcha SiteKey + type: string + group: Recaptcha + required: true + +# Login Social +- variable: edemocracia.socialAuth.facebook.key + default: "" + description: "Chave da autenticação via Facebook" + label: Facebook Key + type: string + group: Login Social + required: false +- variable: edemocracia.socialAuth.facebook.secret + default: "" + description: "Segredo da autenticação via Facebook" + label: Facebook Secret + type: string + group: Login Social + required: false +- variable: edemocracia.socialAuth.google.key + default: "" + description: "Chave da autenticação via Google" + label: Google Key + type: string + group: Login Social + required: false +- variable: edemocracia.socialAuth.google.secret + default: "" + description: "Segredo da autenticação via Google" + label: Google Secret + type: string + group: Login Social + required: false + +# Correio +- variable: smtp.host + default: "smtp.interlegis.leg.br" + description: "Servidor de envio de e-mail (SMTP)" + label: "Servidor SMTP" + type: string + group: Correio + required: false +- variable: smtp.port + default: 25 + description: "Porta de envio de E-mail (SMTP)" + type: int + label: "Porta SMTP" + required: false + group: Correio +- variable: smtp.tls + default: "False" + description: "Usar TLS ao conectar no servidor SMTP?" + label: "Usar TLS" + type: enum + group: Correio + options: + - "True" + - "False" + required: false +- variable: smtp.username + default: "" + description: "Nome de usuário para envio SMTP (vazio para nenhum)" + label: "SMTP Username" + required: false + group: Correio + type: string +- variable: smtp.password + default: "" + description: "Senha para envio SMTP (vazio para nenhuma)" + label: "SMTP Password" + required: false + group: Correio + type: string + +# PostgreSQL +- variable: postgresql.postgresqlPassword + default: "altereme" + description: "Senha do banco de dados Postgres" + label: "Senha do Postgres" + type: password + group: PostgreSQL + required: true + +# Avançado +- variable: edemocracia.timeZone + default: "America/Sao_Paulo" + description: "Fuso Horário do E-democracia" + type: enum + label: "Fuso" + options: + - "America/Sao_Paulo" + - "America/Fortaleza" + - "America/Belem" + - "America/Araguaina" + - "America/Bahia" + - "America/Boa_Vista" + - "America/Campo_Grande" + - "America/Cuiaba" + - "America/Maceio" + - "America/Manaus" + - "America/Porto_Velho" + - "America/Recife" + - "America/Rio_Branco" + - "America/Sao_Paulo" + required: true + group: Avançado + +- variable: edemocracia.apikey + default: "uma_chave_de_api_secreta_mesmo" + description: "Chave de API do E-democracia" + type: string + label: "Chave de API" + required: true + group: Avançado + +- variable: discourse.enabled + default: true + description: "Habilitar o discourse (Expressão)?" + label: "Usar o Discourse?" + type: boolean + group: Avançado + +- variable: wikilegis.enabled + default: true + description: "Habilitar o Wikilegis?" + label: "Usar o Wikilegis?" + type: boolean + group: Avançado + +- variable: audiencias.enabled + default: true + description: "Habilitar o Audiências Interativas?" + label: "Usar o Audiências?" + type: boolean + group: Avançado diff --git a/charts/edemocracia/v0.1.13/templates/NOTES.txt b/charts/edemocracia/v0.1.13/templates/NOTES.txt new file mode 100755 index 0000000..70391fd --- /dev/null +++ b/charts/edemocracia/v0.1.13/templates/NOTES.txt @@ -0,0 +1,19 @@ +1. Get the application URL by running these commands: +{{- if .Values.ingress.enabled }} +{{- range $host := .Values.ingress.hosts }} + http{{ if $.Values.ingress.tls }}s{{ end }}://{{ . }}{{ $.Values.ingress.path }} +{{- end }} +{{- else if contains "NodePort" .Values.nginx.service.type }} + export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "edemocracia.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.nginx.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 "edemocracia.fullname" . }}' + export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "edemocracia.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}") + echo http://$SERVICE_IP:{{ .Values.nginx.service.port }} +{{- else if contains "ClusterIP" .Values.nginx.service.type }} + export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "edemocracia.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") + echo "Visit http://127.0.0.1:8080 to use your application" + kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:80 +{{- end }} diff --git a/charts/edemocracia/v0.1.13/templates/_helpers.tpl b/charts/edemocracia/v0.1.13/templates/_helpers.tpl new file mode 100755 index 0000000..f4122fe --- /dev/null +++ b/charts/edemocracia/v0.1.13/templates/_helpers.tpl @@ -0,0 +1,79 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Expand the name of the chart. +*/}} +{{- define "edemocracia.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "edemocracia.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 -}} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "edemocracia.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Common labels +*/}} +{{- define "edemocracia.labels" -}} +helm.sh/chart: {{ include "edemocracia.chart" . }} +{{ include "edemocracia.selectorLabels" . }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end -}} + +{{/* +Selector labels +*/}} +{{- define "edemocracia.selectorLabels" -}} +app.kubernetes.io/name: {{ include "edemocracia.name" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- end -}} + +{{/* +Create the name of the service account to use +*/}} +{{- define "edemocracia.serviceAccountName" -}} +{{- if .Values.serviceAccount.create -}} + {{ default (include "edemocracia.fullname" .) .Values.serviceAccount.name }} +{{- else -}} + {{ default "default" .Values.serviceAccount.name }} +{{- end -}} +{{- end -}} + +{{/* +Create a default fully qualified app name for postgresql. +*/}} +{{- define "postgresql.fullname" -}} +{{- printf "%s-%s" .Release.Name "postgresql" | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Create a default fully qualified app name for redis. +*/}} +{{- define "redis.fullname" -}} +{{- printf "%s-%s" .Release.Name "redis" | trunc 63 | trimSuffix "-" -}} +{{- end -}} + + diff --git a/charts/edemocracia/v0.1.13/templates/audiencias-pvc.yaml b/charts/edemocracia/v0.1.13/templates/audiencias-pvc.yaml new file mode 100755 index 0000000..ae75435 --- /dev/null +++ b/charts/edemocracia/v0.1.13/templates/audiencias-pvc.yaml @@ -0,0 +1,19 @@ +{{- if .Values.audiencias.enabled }} +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: {{ include "edemocracia.fullname" . }}-audiencias +spec: + accessModes: + - {{ .Values.audiencias.persistence.accessMode }} + resources: + requests: + storage: {{ .Values.audiencias.persistence.size }} +{{- if .Values.audiencias.persistence.storageClass }} +{{- if (eq "-" .Values.audiencias.persistence.storageClass) }} + storageClassName: "" +{{- else }} + storageClassName: "{{ .Values.audiencias.persistence.storageClass }}" +{{- end }} +{{- end }} +{{- end }} diff --git a/charts/edemocracia/v0.1.13/templates/audienciasweb-deployment.yaml b/charts/edemocracia/v0.1.13/templates/audienciasweb-deployment.yaml new file mode 100755 index 0000000..7d0f440 --- /dev/null +++ b/charts/edemocracia/v0.1.13/templates/audienciasweb-deployment.yaml @@ -0,0 +1,147 @@ +{{- if .Values.audiencias.enabled }} +{{- $edemoUrl := .Values.edemocracia.hostname -}} +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "edemocracia.fullname" . }}-audienciasweb + labels: + {{- include "edemocracia.labels" . | nindent 4 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-audienciasweb +spec: + selector: + matchLabels: + {{- include "edemocracia.selectorLabels" . | nindent 6 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-audienciasweb + app.kubernetes.io/component: audiencias + strategy: + type: Recreate + template: + metadata: + labels: + {{- include "edemocracia.selectorLabels" . | nindent 8 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-audienciasweb + app.kubernetes.io/component: audiencias + spec: + {{- with .Values.imagePullSecrets }} + imagePullSecrets: + {{- toYaml . | nindent 8 }} + {{- end }} + containers: + - name: {{ include "edemocracia.fullname" . }}-audienciasweb + image: "{{ .Values.audiencias.image.repository }}:{{ .Values.audiencias.image.tag }}" + imagePullPolicy: {{ .Values.audiencias.image.pullPolicy }} + args: + - ./start-web.sh + env: + - name: ADMIN_EMAIL + value: {{ .Values.edemocracia.admin.email | quote }} + - name: ADMIN_PASSWORD + value: {{ .Values.edemocracia.admin.password | quote }} + - name: ADMIN_USERNAME + value: admin + - name: ALLOWED_HOSTS + value: audienciasweb, localhost, 127.0.0.1, "{{ $edemoUrl }}" + - name: COMPRESS_OFFLINE + value: "True" + - name: DATABASE_ENGINE + value: postgresql_psycopg2 + - name: DATABASE_HOST + value: {{ (include "postgresql.fullname" .) }} + - name: DATABASE_NAME + value: audiencias + - name: DATABASE_PASSWORD + value: {{ .Values.postgresql.postgresqlPassword | quote }} + - name: DATABASE_PORT + value: "5432" + - name: DATABASE_USER + value: {{ .Values.postgresql.postgresqlUsername | quote }} + - name: DEBUG + value: "False" + - name: DEFAULT_FROM_EMAIL + value: '"Portal e-Democracia[audiencias]" <{{ .Values.edemocracia.admin.email }}>' + - name: DJANGO_SECRET_KEY + value: {{ .Values.edemocracia.apikey | quote }} + - name: EMAIL_HOST + value: {{ .Values.smtp.host | quote }} + - name: EMAIL_HOST_PASSWORD + value: {{ .Values.smtp.password | quote }} + - name: EMAIL_HOST_USER + value: {{ .Values.smtp.username | quote }} + - name: EMAIL_PORT + value: {{ .Values.smtp.port | quote }} + - name: EMAIL_USE_TLS + value: {{ .Values.smtp.tls | quote}} + - name: ENABLE_REMOTE_USER + value: "True" + - name: FORCE_SCRIPT_NAME + value: /audiencias + - name: GOOGLE_ANALYTICS_ID + value: {{ .Values.edemocracia.googleAnalyticsId | quote }} + - name: LOGIN_REDIRECT_URL + value: / + - name: LOGIN_URL + value: / + - name: LOGOUT_REDIRECT_URL + value: / + - name: NOTIFICATION_EMAIL_LIST + value: "{{ .Values.edemocracia.admin.email }},{{ .Values.audiencias.notifEmailList }}" + - name: OLARK_ID + value: {{ .Values.edemocracia.olarkId | quote }} + - name: RECAPTCHA_PRIVATE_KEY + value: {{ .Values.edemocracia.recaptcha.privateKey | quote }} + - name: RECAPTCHA_SITE_KEY + value: {{ .Values.edemocracia.recaptcha.siteKey | quote }} + - name: REDIS_SERVER + value: {{ (include "redis.fullname" .) }}-master + - name: SESSION_COOKIE_NAME + value: audiencias_session + - name: SITE_DOMAIN + value: "{{ $edemoUrl }}" + - name: SITE_NAME + value: {{ .Values.edemocracia.siteName | quote }} + - name: STATIC_URL + value: /audiencias/static/ + - name: URL_PREFIX + value: audiencias + - name: WEBSERVICE_URL + value: {{ .Values.audiencias.webservice.url | quote }} + - name: WORDS_BLACK_LIST + value: {{ .Values.audiencias.wordsBlacklist | quote }} + resources: + {{- toYaml .Values.audiencias.resources | nindent 12 }} + volumeMounts: + - mountPath: /var/labhacker/audiencias/public/ + name: {{ include "edemocracia.fullname" . }}-audiencias + restartPolicy: Always + serviceAccountName: "" + volumes: + - name: {{ include "edemocracia.fullname" . }}-audiencias + persistentVolumeClaim: + claimName: {{ include "edemocracia.fullname" . }}-audiencias + {{- with .Values.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 8 }} + {{- end }} + affinity: + podAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchExpressions: + - key: app.kubernetes.io/name + operator: In + values: + - {{ include "edemocracia.name" . }} + - key: app.kubernetes.io/instance + operator: In + values: + - {{ .Release.Name }} + - key: app.kubernetes.io/component + operator: In + values: + - edemocracia + topologyKey: kubernetes.io/hostname + {{- with .Values.tolerations }} + tolerations: + {{- toYaml . | nindent 8 }} + {{- end }} +{{- end }} diff --git a/charts/edemocracia/v0.1.13/templates/audienciasweb-service.yaml b/charts/edemocracia/v0.1.13/templates/audienciasweb-service.yaml new file mode 100755 index 0000000..4208451 --- /dev/null +++ b/charts/edemocracia/v0.1.13/templates/audienciasweb-service.yaml @@ -0,0 +1,19 @@ +{{- if .Values.audiencias.enabled }} +apiVersion: v1 +kind: Service +metadata: + name: audienciasweb + labels: + {{- include "edemocracia.labels" . | nindent 4 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-audienciasweb +spec: + type: {{ .Values.audiencias.service.type }} + ports: + - port: {{ .Values.audiencias.service.port }} + targetPort: 8000 + protocol: TCP + name: "8000" + selector: + {{- include "edemocracia.selectorLabels" . | nindent 4 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-audienciasweb +{{- end }} diff --git a/charts/edemocracia/v0.1.13/templates/audienciasworker-deployment.yaml b/charts/edemocracia/v0.1.13/templates/audienciasworker-deployment.yaml new file mode 100755 index 0000000..eebeeb8 --- /dev/null +++ b/charts/edemocracia/v0.1.13/templates/audienciasworker-deployment.yaml @@ -0,0 +1,147 @@ +{{- if .Values.audiencias.enabled }} +{{- $edemoUrl := .Values.edemocracia.hostname -}} +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "edemocracia.fullname" . }}-audienciasworker + labels: + {{- include "edemocracia.labels" . | nindent 4 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-audienciasworker +spec: + selector: + matchLabels: + {{- include "edemocracia.selectorLabels" . | nindent 6 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-audienciasworker + app.kubernetes.io/component: audiencias + strategy: + type: Recreate + template: + metadata: + labels: + {{- include "edemocracia.selectorLabels" . | nindent 8 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-audienciasworker + app.kubernetes.io/component: audiencias + spec: + {{- with .Values.imagePullSecrets }} + imagePullSecrets: + {{- toYaml . | nindent 8 }} + {{- end }} + containers: + - name: {{ include "edemocracia.fullname" . }}-audienciasworker + image: "{{ .Values.audiencias.image.repository }}:{{ .Values.audiencias.image.tag }}" + imagePullPolicy: {{ .Values.audiencias.image.pullPolicy }} + args: + - ./start-worker.sh + env: + - name: ADMIN_EMAIL + value: {{ .Values.edemocracia.admin.email | quote }} + - name: ADMIN_PASSWORD + value: {{ .Values.edemocracia.admin.password | quote }} + - name: ADMIN_USERNAME + value: admin + - name: ALLOWED_HOSTS + value: audienciasweb, audienciasworker, localhost, 127.0.0.1, "{{ $edemoUrl }}" + - name: COMPRESS_OFFLINE + value: "True" + - name: DATABASE_ENGINE + value: postgresql_psycopg2 + - name: DATABASE_HOST + value: {{ (include "postgresql.fullname" .) }} + - name: DATABASE_NAME + value: audiencias + - name: DATABASE_PASSWORD + value: {{ .Values.postgresql.postgresqlPassword | quote }} + - name: DATABASE_PORT + value: "5432" + - name: DATABASE_USER + value: {{ .Values.postgresql.postgresqlUsername | quote }} + - name: DEBUG + value: "False" + - name: DEFAULT_FROM_EMAIL + value: '"Portal e-Democracia[audiencias]" <{{ .Values.edemocracia.admin.email }}>' + - name: DJANGO_SECRET_KEY + value: {{ .Values.edemocracia.apikey | quote }} + - name: EMAIL_HOST + value: {{ .Values.smtp.host | quote }} + - name: EMAIL_HOST_PASSWORD + value: {{ .Values.smtp.password | quote }} + - name: EMAIL_HOST_USER + value: {{ .Values.smtp.username | quote }} + - name: EMAIL_PORT + value: {{ .Values.smtp.port | quote }} + - name: EMAIL_USE_TLS + value: {{ .Values.smtp.tls | quote }} + - name: ENABLE_REMOTE_USER + value: "True" + - name: FORCE_SCRIPT_NAME + value: /audiencias + - name: GOOGLE_ANALYTICS_ID + value: {{ .Values.edemocracia.googleAnalyticsId }} + - name: LOGIN_REDIRECT_URL + value: / + - name: LOGIN_URL + value: / + - name: LOGOUT_REDIRECT_URL + value: / + - name: NOTIFICATION_EMAIL_LIST + value: "{{ .Values.edemocracia.admin.email }},{{ .Values.audiencias.notifEmailList }}" + - name: OLARK_ID + value: {{ .Values.edemocracia.olarkId | quote }} + - name: RECAPTCHA_PRIVATE_KEY + value: {{ .Values.edemocracia.recaptcha.privateKey | quote }} + - name: RECAPTCHA_SITE_KEY + value: {{ .Values.edemocracia.recaptcha.siteKey | quote }} + - name: REDIS_SERVER + value: {{ (include "redis.fullname" .) }}-master + - name: SESSION_COOKIE_NAME + value: audiencias_session + - name: SITE_DOMAIN + value: "{{ $edemoUrl }}" + - name: SITE_NAME + value: {{ .Values.edemocracia.siteName | quote }} + - name: STATIC_URL + value: /audiencias/static/ + - name: URL_PREFIX + value: audiencias + - name: WEBSERVICE_URL + value: {{ .Values.audiencias.webservice.url | quote }} + - name: WORDS_BLACK_LIST + value: {{ .Values.audiencias.wordsBlacklist | quote }} + resources: + {{- toYaml .Values.audiencias.resources | nindent 12 }} + volumeMounts: + - mountPath: /var/labhacker/audiencias/public/ + name: {{ include "edemocracia.fullname" . }}-audiencias + restartPolicy: Always + serviceAccountName: "" + volumes: + - name: {{ include "edemocracia.fullname" . }}-audiencias + persistentVolumeClaim: + claimName: {{ include "edemocracia.fullname" . }}-audiencias + {{- with .Values.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 8 }} + {{- end }} + affinity: + podAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchExpressions: + - key: app.kubernetes.io/name + operator: In + values: + - {{ include "edemocracia.name" . }} + - key: app.kubernetes.io/instance + operator: In + values: + - {{ .Release.Name }} + - key: app.kubernetes.io/component + operator: In + values: + - edemocracia + topologyKey: kubernetes.io/hostname + {{- with .Values.tolerations }} + tolerations: + {{- toYaml . | nindent 8 }} + {{- end }} +{{- end }} diff --git a/charts/edemocracia/v0.1.13/templates/discourse-deployment.yaml b/charts/edemocracia/v0.1.13/templates/discourse-deployment.yaml new file mode 100755 index 0000000..f56af38 --- /dev/null +++ b/charts/edemocracia/v0.1.13/templates/discourse-deployment.yaml @@ -0,0 +1,144 @@ +{{- if .Values.discourse.enabled }} +{{- $edemoUrl := .Values.edemocracia.hostname -}} +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "edemocracia.fullname" . }}-discourse + labels: + {{- include "edemocracia.labels" . | nindent 4 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-discourse +spec: + selector: + matchLabels: + {{- include "edemocracia.selectorLabels" . | nindent 6 }} + app.kubernetes.io/component: discourse + io.kompose.service: {{ include "edemocracia.fullname" . }}-discourse + strategy: + type: Recreate + template: + metadata: + labels: + {{- include "edemocracia.selectorLabels" . | nindent 8 }} + app.kubernetes.io/component: discourse + io.kompose.service: {{ include "edemocracia.fullname" . }}-discourse + spec: + {{- with .Values.imagePullSecrets }} + imagePullSecrets: + {{- toYaml . | nindent 8 }} + {{- end }} + initContainers: + - image: "{{ .Values.discourse.image.repository }}:{{ .Values.discourse.image.tag }}" + name: {{ include "edemocracia.fullname" . }}-discourse-cpimgs + command: + - "cp" + - "-au" + - "/var/www/discourse/public/images/." + - "/publicimgs/" + volumeMounts: + - mountPath: /publicimgs/ + subPath: images + name: {{ include "edemocracia.fullname" . }}-discourse + containers: + - args: + - ./start-web.sh + env: + - name: ADMIN_EMAIL + value: {{ .Values.edemocracia.admin.email | quote }} + - name: ADMIN_PASSWORD + value: {{ .Values.edemocracia.admin.password | quote }} + - name: ADMIN_USERNAME + value: admin + - name: DISCOURSE_CONTACT_EMAIL + value: {{ .Values.edemocracia.admin.email | quote }} + - name: DISCOURSE_CONTACT_URL + value: {{ $edemoUrl }} + - name: DISCOURSE_DB_HOST + value: {{ (include "postgresql.fullname" .) }} + - name: DISCOURSE_DB_NAME + value: discourse + - name: DISCOURSE_DB_PASSWORD + value: {{ .Values.postgresql.postgresqlPassword | quote }} + - name: DISCOURSE_DB_PORT + value: "5432" + - name: DISCOURSE_DB_USERNAME + value: {{ .Values.postgresql.postgresqlUsername | quote}} + - name: DISCOURSE_DEVELOPER_EMAILS + - name: DISCOURSE_FORCE_HOSTNAME + value: {{ $edemoUrl }}\/expressao + - name: DISCOURSE_HOSTNAME + value: {{ $edemoUrl }}\/expressao + - name: DISCOURSE_NOTIFICATION_EMAIL + value: {{ .Values.edemocracia.admin.email }} + - name: DISCOURSE_REDIS_HOST + value: {{ (include "redis.fullname" .) }}-master + - name: DISCOURSE_REDIS_PORT + value: "6379" + - name: DISCOURSE_RELATIVE_URL_ROOT + value: /expressao + - name: DISCOURSE_SMTP_ADDRESS + value: {{ .Values.smtp.host | quote }} + - name: DISCOURSE_SMTP_PASSWORD + value: {{ .Values.smtp.password | quote }} + - name: DISCOURSE_SMTP_PORT + value: {{ .Values.smtp.port | quote }} + - name: DISCOURSE_SMTP_USER_NAME + value: {{ .Values.smtp.username | quote }} + - name: DISCOURSE_SSO_SECRET + value: {{ .Values.discourse.sso.secret | quote }} + - name: DISCOURSE_SSO_URL + value: "https://{{ $edemoUrl }}" + - name: RAILS_ENV + value: production + image: {{.Values.discourse.image.repository}}:{{ .Values.discourse.image.tag }} + imagePullPolicy: {{ .Values.discourse.image.pullPolicy }} + name: {{ include "edemocracia.fullname" . }}-discourse + ports: + - containerPort: 8080 + resources: + {{- toYaml .Values.discourse.resources | nindent 12 }} + volumeMounts: + - mountPath: /var/www/discourse/public/assets/ + name: {{ include "edemocracia.fullname" . }}-discourse + subPath: assets + - mountPath: /var/www/discourse/public/javascripts/ + name: {{ include "edemocracia.fullname" . }}-discourse + subPath: javascripts + - mountPath: /var/www/discourse/public/images/ + name: {{ include "edemocracia.fullname" . }}-discourse + subPath: images + - mountPath: /var/www/discourse/tmp/stylesheet-cache/ + name: {{ include "edemocracia.fullname" . }}-discourse + subPath: stylesheet-cache + restartPolicy: Always + serviceAccountName: "" + volumes: + - name: {{ include "edemocracia.fullname" . }}-discourse + persistentVolumeClaim: + claimName: {{ include "edemocracia.fullname" . }}-discourse + {{- with .Values.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 8 }} + {{- end }} + affinity: + podAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchExpressions: + - key: app.kubernetes.io/name + operator: In + values: + - {{ include "edemocracia.name" . }} + - key: app.kubernetes.io/instance + operator: In + values: + - {{ .Release.Name }} + - key: app.kubernetes.io/component + operator: In + values: + - edemocracia + topologyKey: kubernetes.io/hostname + {{- with .Values.tolerations }} + tolerations: + {{- toYaml . | nindent 8 }} + {{- end }} +{{- end }} diff --git a/charts/edemocracia/v0.1.13/templates/discourse-pvc.yaml b/charts/edemocracia/v0.1.13/templates/discourse-pvc.yaml new file mode 100755 index 0000000..d9e7804 --- /dev/null +++ b/charts/edemocracia/v0.1.13/templates/discourse-pvc.yaml @@ -0,0 +1,19 @@ +{{- if .Values.discourse.enabled }} +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: {{ include "edemocracia.fullname" . }}-discourse +spec: + accessModes: + - {{ .Values.discourse.persistence.accessMode }} + resources: + requests: + storage: {{ .Values.discourse.persistence.size }} +{{- if .Values.discourse.persistence.storageClass }} +{{- if (eq "-" .Values.discourse.persistence.storageClass) }} + storageClassName: "" +{{- else }} + storageClassName: "{{ .Values.discourse.persistence.storageClass }}" +{{- end }} +{{- end }} +{{- end }} diff --git a/charts/edemocracia/v0.1.13/templates/discourse-service.yaml b/charts/edemocracia/v0.1.13/templates/discourse-service.yaml new file mode 100755 index 0000000..c0c96f0 --- /dev/null +++ b/charts/edemocracia/v0.1.13/templates/discourse-service.yaml @@ -0,0 +1,19 @@ +{{- if .Values.discourse.enabled }} +apiVersion: v1 +kind: Service +metadata: + name: discourse + labels: + {{- include "edemocracia.labels" . | nindent 4 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-discourse +spec: + type: {{ .Values.discourse.service.type }} + ports: + - port: {{ .Values.discourse.service.port }} + targetPort: 8080 + protocol: TCP + name: "8080" + selector: + {{- include "edemocracia.selectorLabels" . | nindent 4 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-discourse +{{- end }} diff --git a/charts/edemocracia/v0.1.13/templates/edemocracia-deployment.yaml b/charts/edemocracia/v0.1.13/templates/edemocracia-deployment.yaml new file mode 100755 index 0000000..f07dceb --- /dev/null +++ b/charts/edemocracia/v0.1.13/templates/edemocracia-deployment.yaml @@ -0,0 +1,165 @@ +{{- $edemoUrl := .Values.edemocracia.hostname -}} +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "edemocracia.fullname" . }}-edemocracia + labels: + {{- include "edemocracia.labels" . | nindent 4 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-edemocracia +spec: + selector: + matchLabels: + {{- include "edemocracia.selectorLabels" . | nindent 6 }} + app.kubernetes.io/component: edemocracia + io.kompose.service: {{ include "edemocracia.fullname" . }}-edemocracia + strategy: + type: Recreate + template: + metadata: + labels: + {{- include "edemocracia.selectorLabels" . | nindent 8 }} + app.kubernetes.io/component: edemocracia + io.kompose.service: {{ include "edemocracia.fullname" . }}-edemocracia + spec: + {{- with .Values.imagePullSecrets }} + imagePullSecrets: + {{- toYaml . | nindent 8 }} + {{- end }} + initContainers: + - image: "{{ .Values.edemocracia.image.repository }}:{{ .Values.edemocracia.image.tag }}" + name: {{ include "edemocracia.fullname" . }}-edemocracia-cpmedia + command: + - "cp" + - "-au" + - "/var/labhacker/edemocracia/src/public/media/" + - "/srcpublic/" + volumeMounts: + - mountPath: /srcpublic + name: {{ include "edemocracia.fullname" . }}-edemocracia + containers: + - name: {{ include "edemocracia.fullname" . }}-edemocracia + image: "{{ .Values.edemocracia.image.repository }}:{{ .Values.edemocracia.image.tag }}" + imagePullPolicy: {{ .Values.edemocracia.image.pullPolicy }} + args: + - ./runserver-production + env: + - name: ADMIN_EMAIL + value: {{ .Values.edemocracia.admin.email | quote }} + - name: ADMIN_PASSWORD + value: {{ .Values.edemocracia.admin.password | quote }} + - name: ADMIN_USERNAME + value: admin + - name: ALLOWED_HOSTS + value: "{{ $edemoUrl }}" + - name: AUDIENCIAS_API_KEY + value: {{ .Values.edemocracia.apikey | quote }} + - name: AUDIENCIAS_ENABLED + {{- if .Values.audiencias.enabled }} + value: "True" + {{- else }} + value: "False" + {{- end }} + - name: AUDIENCIAS_UPSTREAM + value: http://audienciasweb:8000/audiencias + - name: DATABASE_ENGINE + value: postgresql_psycopg2 + - name: DATABASE_HOST + value: {{ (include "postgresql.fullname" .) }} + - name: DATABASE_NAME + value: edemocracia + - name: DATABASE_PASSWORD + value: {{ .Values.postgresql.postgresqlPassword | quote }} + - name: DATABASE_PORT + value: "5432" + - name: DATABASE_USER + value: {{ .Values.postgresql.postgresqlUsername | quote }} + - name: DEBUG + value: "{{ .Values.edemocracia.debug }}" + - name: DEFAULT_FROM_EMAIL + value: '"Portal e-Democracia" <{{ .Values.edemocracia.admin.email }}>' + - name: DISCOURSE_ENABLED + {{- if .Values.discourse.enabled }} + value: "True" + {{- else }} + value: "False" + {{- end }} + - name: DISCOURSE_SSO_SECRET + value: {{ .Values.discourse.sso.secret | quote }} + # Workaround for a bug in runserver-production script, which does not check for DISCOURSE_ENABLED variable + - name: DISCOURSE_UPSTREAM + {{- if .Values.discourse.enabled }} + value: http://discourse:8080/expressao + {{- else }} + value: "--version" + {{- end }} + - name: EMAIL_BACKEND + value: django.core.mail.backends.smtp.EmailBackend + - name: EMAIL_HOST + value: {{ .Values.smtp.host | quote }} + - name: EMAIL_HOST_PASSWORD + value: {{ .Values.smtp.password | quote }} + - name: EMAIL_HOST_USER + value: {{ .Values.smtp.username | quote }} + - name: EMAIL_PORT + value: {{ .Values.smtp.port | quote }} + - name: EMAIL_USE_TLS + value: {{ .Values.smtp.tls | quote }} + - name: GOOGLE_ANALYTICS_ID + value: {{ .Values.edemocracia.googleAnalyticsId | quote }} + - name: OLARK_ID + value: {{ .Values.edemocracia.olarkId | quote }} + - name: RECAPTCHA_PRIVATE_KEY + value: {{ .Values.edemocracia.recaptcha.privateKey | quote }} + - name: RECAPTCHA_SITE_KEY + value: {{ .Values.edemocracia.recaptcha.siteKey | quote }} + - name: SECRET_KEY + value: {{ .Values.edemocracia.apikey | quote }} + - name: SITE_NAME + value: {{ .Values.edemocracia.siteName | quote }} + - name: SITE_URL + value: "https://{{ $edemoUrl }}" + - name: SOCIAL_AUTH_FACEBOOK_KEY + value: {{ .Values.edemocracia.socialAuth.facebook.key | quote }} + - name: SOCIAL_AUTH_FACEBOOK_SECRET + value: {{ .Values.edemocracia.socialAuth.facebook.secret | quote }} + - name: SOCIAL_AUTH_GOOGLE_OAUTH2_KEY + value: {{ .Values.edemocracia.socialAuth.google.key | quote }} + - name: SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET + value: {{ .Values.edemocracia.socialAuth.google.secret | quote }} + - name: SOCIAL_AUTH_REDIRECT_IS_HTTPS + value: "True" + - name: WIKILEGIS_API_KEY + value: {{ .Values.edemocracia.apikey | quote }} + - name: WIKILEGIS_API_URL + value: /api/v1/ + - name: WIKILEGIS_ENABLED + {{- if .Values.wikilegis.enabled }} + value: "True" + {{- else }} + value: "False" + {{- end }} + - name: WIKILEGIS_UPSTREAM + value: http://wikilegis:8000 + resources: + {{- toYaml .Values.edemocracia.resources | nindent 12 }} + volumeMounts: + - mountPath: /var/labhacker/edemocracia/src/public/ + name: {{ include "edemocracia.fullname" . }}-edemocracia + restartPolicy: Always + serviceAccountName: "" + volumes: + - name: {{ include "edemocracia.fullname" . }}-edemocracia + persistentVolumeClaim: + claimName: {{ include "edemocracia.fullname" . }}-edemocracia + {{- with .Values.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.affinity }} + affinity: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.tolerations }} + tolerations: + {{- toYaml . | nindent 8 }} + {{- end }} diff --git a/charts/edemocracia/v0.1.13/templates/edemocracia-pvc.yaml b/charts/edemocracia/v0.1.13/templates/edemocracia-pvc.yaml new file mode 100755 index 0000000..0247fce --- /dev/null +++ b/charts/edemocracia/v0.1.13/templates/edemocracia-pvc.yaml @@ -0,0 +1,17 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: {{ include "edemocracia.fullname" . }}-edemocracia +spec: + accessModes: + - {{ .Values.edemocracia.persistence.accessMode }} + resources: + requests: + storage: {{ .Values.edemocracia.persistence.size }} +{{- if .Values.edemocracia.persistence.storageClass }} +{{- if (eq "-" .Values.edemocracia.persistence.storageClass) }} + storageClassName: "" +{{- else }} + storageClassName: "{{ .Values.edemocracia.persistence.storageClass }}" +{{- end }} +{{- end }} diff --git a/charts/edemocracia/v0.1.13/templates/edemocracia-service.yaml b/charts/edemocracia/v0.1.13/templates/edemocracia-service.yaml new file mode 100755 index 0000000..2e6350f --- /dev/null +++ b/charts/edemocracia/v0.1.13/templates/edemocracia-service.yaml @@ -0,0 +1,17 @@ +apiVersion: v1 +kind: Service +metadata: + name: edemocracia + labels: + {{- include "edemocracia.labels" . | nindent 4 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-edemocracia +spec: + type: {{ .Values.edemocracia.service.type }} + ports: + - port: {{ .Values.edemocracia.service.port }} + targetPort: 8000 + protocol: TCP + name: "8000" + selector: + {{- include "edemocracia.selectorLabels" . | nindent 4 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-edemocracia diff --git a/charts/edemocracia/v0.1.13/templates/ingress.yaml b/charts/edemocracia/v0.1.13/templates/ingress.yaml new file mode 100755 index 0000000..94b3425 --- /dev/null +++ b/charts/edemocracia/v0.1.13/templates/ingress.yaml @@ -0,0 +1,32 @@ +{{- if .Values.ingress.enabled -}} +{{- $fullName := include "edemocracia.fullname" . -}} +{{- $hostName := .Values.edemocracia.hostname -}} +{{- if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}} +apiVersion: networking.k8s.io/v1beta1 +{{- else -}} +apiVersion: extensions/v1beta1 +{{- end }} +kind: Ingress +metadata: + name: {{ $fullName }} + labels: + {{- include "edemocracia.labels" . | nindent 4 }} + annotations: + cert-manager.io/cluster-issuer: "letsencrypt-prod" + {{- with .Values.ingress.annotations }} + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + tls: + - hosts: + - "{{ $hostName }}" + secretName: {{ $hostName | replace "." "-" }}-tls + rules: + - host: "{{ $hostName }}" + http: + paths: + - path: / + backend: + serviceName: nginx + servicePort: http +{{- end }} diff --git a/charts/edemocracia/v0.1.13/templates/nginx-deployment.yaml b/charts/edemocracia/v0.1.13/templates/nginx-deployment.yaml new file mode 100755 index 0000000..b0ce573 --- /dev/null +++ b/charts/edemocracia/v0.1.13/templates/nginx-deployment.yaml @@ -0,0 +1,120 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "edemocracia.fullname" . }}-nginx + labels: + {{- include "edemocracia.labels" . | nindent 4 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-nginx +spec: + selector: + matchLabels: + {{- include "edemocracia.selectorLabels" . | nindent 6 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-nginx + strategy: + type: Recreate + template: + metadata: + labels: + {{- include "edemocracia.selectorLabels" . | nindent 8 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-nginx + spec: + {{- with .Values.imagePullSecrets }} + imagePullSecrets: + {{- toYaml . | nindent 8 }} + {{- end }} + containers: + - name: {{ .Chart.Name }}-nginx + image: "{{ .Values.nginx.image.repository }}:{{ .Values.nginx.image.tag }}" + imagePullPolicy: {{ .Values.nginx.image.pullPolicy }} + ports: + - name: http + containerPort: 80 + protocol: TCP + livenessProbe: + failureThreshold: 3 + periodSeconds: 10 + successThreshold: 1 + tcpSocket: + port: http + timeoutSeconds: 1 + readinessProbe: + failureThreshold: 3 + periodSeconds: 10 + successThreshold: 1 + tcpSocket: + port: http + timeoutSeconds: 1 + resources: + {{- toYaml .Values.nginx.resources | nindent 12 }} + volumeMounts: + - mountPath: /var/labhacker/edemocracia/src/public/ + name: {{ include "edemocracia.fullname" . }}-edemocracia + {{- if .Values.wikilegis.enabled }} + - mountPath: /var/labhacker/wikilegis/wikilegis/public/ + name: {{ include "edemocracia.fullname" . }}-wikilegis + {{- end }} + {{- if .Values.audiencias.enabled }} + - mountPath: /var/labhacker/audiencias/public/ + name: {{ include "edemocracia.fullname" . }}-audiencias + {{- end }} + {{- if .Values.discourse.enabled }} + - mountPath: /var/www/discourse/public/assets/ + name: {{ include "edemocracia.fullname" . }}-discourse + subPath: assets + - mountPath: /var/www/discourse/public/javascripts/ + name: {{ include "edemocracia.fullname" . }}-discourse + subPath: javascripts + - mountPath: /var/www/discourse/public/images/ + name: {{ include "edemocracia.fullname" . }}-discourse + subPath: images + - mountPath: /var/www/discourse/tmp/stylesheet-cache/ + name: {{ include "edemocracia.fullname" . }}-discourse + subPath: stylesheet-cache + {{- end }} + restartPolicy: Always + serviceAccountName: "" + volumes: + - name: {{ include "edemocracia.fullname" . }}-edemocracia + persistentVolumeClaim: + claimName: {{ include "edemocracia.fullname" . }}-edemocracia + {{- if .Values.wikilegis.enabled }} + - name: {{ include "edemocracia.fullname" . }}-wikilegis + persistentVolumeClaim: + claimName: {{ include "edemocracia.fullname" . }}-wikilegis + {{- end }} + {{- if .Values.audiencias.enabled }} + - name: {{ include "edemocracia.fullname" . }}-audiencias + persistentVolumeClaim: + claimName: {{ include "edemocracia.fullname" . }}-audiencias + {{- end }} + {{- if .Values.discourse.enabled }} + - name: {{ include "edemocracia.fullname" . }}-discourse + persistentVolumeClaim: + claimName: {{ include "edemocracia.fullname" . }}-discourse + {{- end }} + {{- with .Values.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 8 }} + {{- end }} + affinity: + podAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchExpressions: + - key: app.kubernetes.io/name + operator: In + values: + - {{ include "edemocracia.name" . }} + - key: app.kubernetes.io/instance + operator: In + values: + - {{ .Release.Name }} + - key: app.kubernetes.io/component + operator: In + values: + - edemocracia + topologyKey: kubernetes.io/hostname + {{- with .Values.tolerations }} + tolerations: + {{- toYaml . | nindent 8 }} + {{- end }} diff --git a/charts/edemocracia/v0.1.13/templates/nginx-service.yaml b/charts/edemocracia/v0.1.13/templates/nginx-service.yaml new file mode 100755 index 0000000..51f175c --- /dev/null +++ b/charts/edemocracia/v0.1.13/templates/nginx-service.yaml @@ -0,0 +1,17 @@ +apiVersion: v1 +kind: Service +metadata: + name: nginx + labels: + {{- include "edemocracia.labels" . | nindent 4 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-nginx +spec: + type: {{ .Values.nginx.service.type }} + ports: + - port: {{ .Values.nginx.service.port }} + targetPort: http + protocol: TCP + name: http + selector: + {{- include "edemocracia.selectorLabels" . | nindent 4 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-nginx diff --git a/charts/edemocracia/v0.1.13/templates/wikilegis-deployment.yaml b/charts/edemocracia/v0.1.13/templates/wikilegis-deployment.yaml new file mode 100755 index 0000000..680b6b3 --- /dev/null +++ b/charts/edemocracia/v0.1.13/templates/wikilegis-deployment.yaml @@ -0,0 +1,144 @@ +{{- if .Values.wikilegis.enabled }} +{{- $edemoUrl := .Values.edemocracia.hostname -}} +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "edemocracia.fullname" . }}-wikilegis + labels: + {{- include "edemocracia.labels" . | nindent 4 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-wikilegis +spec: + selector: + matchLabels: + {{- include "edemocracia.selectorLabels" . | nindent 6 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-wikilegis + app.kubernetes.io/component: wikilegis + strategy: + type: Recreate + template: + metadata: + labels: + {{- include "edemocracia.selectorLabels" . | nindent 8 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-wikilegis + app.kubernetes.io/component: wikilegis + spec: + {{- with .Values.imagePullSecrets }} + imagePullSecrets: + {{- toYaml . | nindent 8 }} + {{- end }} + initContainers: + - image: "{{ .Values.wikilegis.image.repository }}:{{ .Values.wikilegis.image.tag }}" + name: {{ include "edemocracia.fullname" . }}-wikilegis-cpmedia + command: + - "cp" + - "-au" + - "/var/labhacker/wikilegis/wikilegis/public/media/" + - "/wlpublic/" + volumeMounts: + - mountPath: /wlpublic + name: {{ include "edemocracia.fullname" . }}-wikilegis + containers: + - name: {{ include "edemocracia.fullname" . }}-wikilegis + image: "{{ .Values.wikilegis.image.repository }}:{{ .Values.wikilegis.image.tag }}" + imagePullPolicy: {{ .Values.wikilegis.image.pullPolicy }} + args: + - ./start.sh + env: + - name: ADMIN_EMAIL + value: {{ .Values.edemocracia.admin.email | quote }} + - name: ADMIN_PASSWORD + value: {{ .Values.edemocracia.admin.password | quote }} + - name: ALLOWED_HOSTS + value: "{{ $edemoUrl }},wikilegisweb,wikilegis,localhost,127.0.0.1" + - name: API_KEY + value: {{ .Values.edemocracia.apikey | quote }} + - name: AUTH_USER_MODEL + value: accounts.User + - name: DATABASE_ENGINE + value: postgresql_psycopg2 + - name: DATABASE_HOST + value: {{ (include "postgresql.fullname" .) }} + - name: DATABASE_NAME + value: wikilegis + - name: DATABASE_PASSWORD + value: {{ .Values.postgresql.postgresqlPassword | quote }} + - name: DATABASE_PORT + value: "5432" + - name: DATABASE_USER + value: {{ .Values.postgresql.postgresqlUsername | quote }} + - name: DEBUG + value: "True" + - name: DEFAULT_FROM_EMAIL + value: '"Portal e-Democracia[Wikilegis]" <{{ .Values.edemocracia.admin.email }}>' + - name: EMAIL_HOST + value: {{ .Values.smtp.host | quote }} + - name: EMAIL_HOST_PASSWORD + value: {{ .Values.smtp.password | quote }} + - name: EMAIL_HOST_USER + value: {{ .Values.smtp.username | quote }} + - name: EMAIL_PORT + value: {{ .Values.smtp.port | quote }} + - name: EMAIL_USE_TLS + value: {{ .Values.smtp.tls | quote }} + - name: ENABLE_REMOTE_USER + value: "True" + - name: FORCE_SCRIPT_NAME + value: /wikilegis + - name: LANGUAGE_CODE + value: pt-br + - name: LOGIN_REDIRECT_URL + value: / + - name: LOGIN_URL + value: / + - name: MEDIA_URL + value: /wikilegis/media/ + - name: SECRET_KEY + value: {{ .Values.edemocracia.apikey | quote }} + - name: SESSION_COOKIE_NAME + value: wikilegis_session + - name: SITE_DOMAIN + value: {{ $edemoUrl }} + - name: SITE_NAME + value: {{ .Values.edemocracia.sitename | quote }} + - name: STATIC_URL + value: /wikilegis/static/ + - name: TIME_ZONE + value: {{ .Values.edemocracia.timeZone | quote }} + resources: + {{- toYaml .Values.wikilegis.resources | nindent 12 }} + volumeMounts: + - mountPath: /var/labhacker/wikilegis/wikilegis/public/ + name: {{ include "edemocracia.fullname" . }}-wikilegis + restartPolicy: Always + serviceAccountName: "" + volumes: + - name: {{ include "edemocracia.fullname" . }}-wikilegis + persistentVolumeClaim: + claimName: {{ include "edemocracia.fullname" . }}-wikilegis + {{- with .Values.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 8 }} + {{- end }} + affinity: + podAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchExpressions: + - key: app.kubernetes.io/name + operator: In + values: + - {{ include "edemocracia.name" . }} + - key: app.kubernetes.io/instance + operator: In + values: + - {{ .Release.Name }} + - key: app.kubernetes.io/component + operator: In + values: + - edemocracia + topologyKey: kubernetes.io/hostname + {{- with .Values.tolerations }} + tolerations: + {{- toYaml . | nindent 8 }} + {{- end }} +{{- end }} diff --git a/charts/edemocracia/v0.1.13/templates/wikilegis-pvc.yaml b/charts/edemocracia/v0.1.13/templates/wikilegis-pvc.yaml new file mode 100755 index 0000000..00b8660 --- /dev/null +++ b/charts/edemocracia/v0.1.13/templates/wikilegis-pvc.yaml @@ -0,0 +1,19 @@ +{{- if .Values.wikilegis.enabled }} +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: {{ include "edemocracia.fullname" . }}-wikilegis +spec: + accessModes: + - {{ .Values.wikilegis.persistence.accessMode }} + resources: + requests: + storage: {{ .Values.wikilegis.persistence.size }} +{{- if .Values.wikilegis.persistence.storageClass }} +{{- if (eq "-" .Values.wikilegis.persistence.storageClass) }} + storageClassName: "" +{{- else }} + storageClassName: "{{ .Values.wikilegis.persistence.storageClass }}" +{{- end }} +{{- end }} +{{- end }} diff --git a/charts/edemocracia/v0.1.13/templates/wikilegis-service.yaml b/charts/edemocracia/v0.1.13/templates/wikilegis-service.yaml new file mode 100755 index 0000000..793fd2c --- /dev/null +++ b/charts/edemocracia/v0.1.13/templates/wikilegis-service.yaml @@ -0,0 +1,19 @@ +{{- if .Values.wikilegis.enabled }} +apiVersion: v1 +kind: Service +metadata: + name: wikilegis + labels: + {{- include "edemocracia.labels" . | nindent 4 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-wikilegis +spec: + type: {{ .Values.wikilegis.service.type }} + ports: + - port: {{ .Values.wikilegis.service.port }} + targetPort: 8000 + protocol: TCP + name: "8000" + selector: + {{- include "edemocracia.selectorLabels" . | nindent 4 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-wikilegis +{{- end }} diff --git a/charts/edemocracia/v0.1.13/values.yaml b/charts/edemocracia/v0.1.13/values.yaml new file mode 100755 index 0000000..5208076 --- /dev/null +++ b/charts/edemocracia/v0.1.13/values.yaml @@ -0,0 +1,193 @@ +# Default values for edemocracia. +# This is a YAML-formatted file. +# Declare variables to be passed into your templates. + +nginx: + image: + repository: labhackercd/nginx-edemocracia + tag: 1.0.0 + pullPolicy: IfNotPresent + service: + type: ClusterIP + port: 80 + resources: + limits: + cpu: 300m + memory: 150Mi + requests: + cpu: 50m + memory: 30Mi + +discourse: + enabled: true + image: + repository: labhackercd/discourse-docker + tag: 2.0.20180703 + pullPolicy: IfNotPresent + service: + type: ClusterIP + port: 8080 + sso: + secret: "uma_chave_sso_secreta_mesmo" + persistence: + #storageClass: "" + accessMode: ReadWriteOnce + size: 500Mi + resources: + limits: + cpu: 800m + memory: 1200Mi + requests: + cpu: 100m + memory: 650Mi + +wikilegis: + enabled: true + image: + repository: labhackercd/wikilegis + tag: 2.3.0 + pullPolicy: IfNotPresent + service: + type: ClusterIP + port: 8000 + persistence: + #storageClass: "" + accessMode: ReadWriteOnce + size: 2Gi + resources: + limits: + cpu: 800m + memory: 350Mi + requests: + cpu: 100m + memory: 200Mi + + +edemocracia: + admin: + email: seitadmins@interlegis.leg.br + password: p@ssw0rd + apikey: "uma_chave_de_api_secreta_mesmo" + debug: "False" + googleAnalyticsId: "" + olarkId: "" + recaptcha: + siteKey: "altereme" + privateKey: "altereme" + socialAuth: + facebook: + key: "" + secret: "" + google: + key: "" + secret: "" + siteName: "Camara Municipal" + hostname: "edemocracia.teste.df.leg.br" + timeZone: "America/Sao_Paulo" + image: + repository: labhackercd/edemocracia + tag: 1.3.2 + pullPolicy: IfNotPresent + service: + type: ClusterIP + port: 8000 + persistence: + #storageClass: "" + accessMode: ReadWriteOnce + size: 4Gi + resources: + limits: + cpu: 500m + memory: 1350Mi + requests: + cpu: 100m + memory: 800Mi + +audiencias: + enabled: true + image: + repository: labhackercd/audiencias-publicas + tag: 3.2.0 + pullPolicy: IfNotPresent + persistence: + #storageClass: "" + accessMode: ReadWriteOnce + size: 300Mi + notifEmailList: "" + webservice: + url: "" + wordsBlacklist: "merda,cu,cuzao,cuzona,cusao,cusona,bunda,fodido,fodida,foda,foder,fodedor,fudido,fudida,fuder,chupa,chupada,chupador,chupadora,boquete,boqueteira,boquetera,boketeira,boketera,xupa,xupada,xupador,xupadora,pauduro,pauzudo,xoxota,chochota,buceta,boceta,busseta,bosseta,cacete,cassete,caceta,kacete,kassete,caralho,karalho,caraleo,pinto,pica,rola,roludo,gozado,gozada,goso,gosa,gosado,gosado,puta,puto,putinho,putinha,putona,putana,putaria,grelo,grelinho,filhodaputa,filhosdaputa,puta,fdps,siririca,punheta,trepar,trepada,trepadeira,caralho,caralhu,karalho,karalhu,tomarnocu,tomanocu,vadia,bosta,quenga,rabo,bolsa,cuzinho,piroca,pqp,puta que pariu,porra,carai,cú,viado,fdp,vtnc,corno,bicha,bixa,viado,viadinho,pederasta,filho da puta,bundao,bundão,filho de uma egua,filho de uma égua,achacador,achacadora,achacadores,achacar,babaca,bucetas,cagar,cagaram,cambada,caráleo,corja,cornão,covarde,covardes,cretino,cus,cús,cusão,cuzão,cuzinho,cuzona,danar,desgraça,drosoba,enrabar,escória,escroto,escrotas,escrotos,fodão,fodona,fudendo,fuder,idiota,imundo,imundos,ku,kú,lascar,merdas,patifaria,pilantra,pilantragem,pilantras,poha,porcaria,putas,putos,sacanagem,safadeza,safado,safados,salafrário,salafrários,vagabundagem,vagabundo,vagabundos,veadinho,veadinhos" + service: + type: ClusterIP + port: 8000 + resources: + limits: + cpu: 500m + memory: 300Mi + requests: + cpu: 50m + memory: 100Mi + + +smtp: + host: "127.0.0.1" + username: "" + password: "" + port: "25" + tls: "False" + + +# PostgreSQL definitions +postgresql: + image: + tag: 9.6.17 + pullPolicy: IfNotPresent + service: + type: ClusterIP + port: 5432 + persistence: + enabled: true + size: 2Gi + postgresqlPassword: DbP@ssw0rd + postgresqlUsername: postgres + postgresqlDatabase: root + resources: + requests: + cpu: 50m + memory: 80Mi + +# Redis definitions +redis: + image: + tag: 5.0.8 + pullPolicy: IfNotPresent + cluster: + enabled: false + usePassword: false + persistence: + enabled: true + accessModes: + - ReadWriteOnce + size: 2Gi + resources: + requests: + cpu: 50m + memory: 150Mi + limits: + cpu: 800m + memory: 1Gi + +imagePullSecrets: [] +nameOverride: "" +fullnameOverride: "" + +ingress: + enabled: true + # extra annotations only + annotations: {} + +nodeSelector: {} + +tolerations: [] + +affinity: {} From 52ed290628078b51d3ce4950b2eb13e5b7cd71eb Mon Sep 17 00:00:00 2001 From: Fabio Rauber Date: Mon, 14 Mar 2022 11:30:18 -0300 Subject: [PATCH 02/20] Added edemocracia legacy v0.1.12 --- charts/edemocracia/v0.1.12/.helmignore | 23 +++ charts/edemocracia/v0.1.12/Chart.lock | 9 + charts/edemocracia/v0.1.12/Chart.yaml | 33 +++ charts/edemocracia/v0.1.12/app-readme.md | 3 + .../v0.1.12/charts/postgresql-8.6.13.tgz | Bin 0 -> 31452 bytes .../v0.1.12/charts/redis-10.6.3.tgz | Bin 0 -> 31352 bytes charts/edemocracia/v0.1.12/questions.yaml | 182 +++++++++++++++++ .../edemocracia/v0.1.12/templates/NOTES.txt | 19 ++ .../v0.1.12/templates/_helpers.tpl | 79 +++++++ .../v0.1.12/templates/audiencias-pvc.yaml | 19 ++ .../templates/audienciasweb-deployment.yaml | 147 +++++++++++++ .../templates/audienciasweb-service.yaml | 19 ++ .../audienciasworker-deployment.yaml | 147 +++++++++++++ .../templates/discourse-deployment.yaml | 144 +++++++++++++ .../v0.1.12/templates/discourse-pvc.yaml | 19 ++ .../v0.1.12/templates/discourse-service.yaml | 19 ++ .../templates/edemocracia-deployment.yaml | 165 +++++++++++++++ .../v0.1.12/templates/edemocracia-pvc.yaml | 17 ++ .../templates/edemocracia-service.yaml | 17 ++ .../v0.1.12/templates/ingress.yaml | 32 +++ .../v0.1.12/templates/nginx-deployment.yaml | 120 +++++++++++ .../v0.1.12/templates/nginx-service.yaml | 17 ++ .../templates/wikilegis-deployment.yaml | 144 +++++++++++++ .../v0.1.12/templates/wikilegis-pvc.yaml | 19 ++ .../v0.1.12/templates/wikilegis-service.yaml | 19 ++ charts/edemocracia/v0.1.12/values.yaml | 193 ++++++++++++++++++ 26 files changed, 1605 insertions(+) create mode 100755 charts/edemocracia/v0.1.12/.helmignore create mode 100755 charts/edemocracia/v0.1.12/Chart.lock create mode 100755 charts/edemocracia/v0.1.12/Chart.yaml create mode 100755 charts/edemocracia/v0.1.12/app-readme.md create mode 100755 charts/edemocracia/v0.1.12/charts/postgresql-8.6.13.tgz create mode 100755 charts/edemocracia/v0.1.12/charts/redis-10.6.3.tgz create mode 100755 charts/edemocracia/v0.1.12/questions.yaml create mode 100755 charts/edemocracia/v0.1.12/templates/NOTES.txt create mode 100755 charts/edemocracia/v0.1.12/templates/_helpers.tpl create mode 100755 charts/edemocracia/v0.1.12/templates/audiencias-pvc.yaml create mode 100755 charts/edemocracia/v0.1.12/templates/audienciasweb-deployment.yaml create mode 100755 charts/edemocracia/v0.1.12/templates/audienciasweb-service.yaml create mode 100755 charts/edemocracia/v0.1.12/templates/audienciasworker-deployment.yaml create mode 100755 charts/edemocracia/v0.1.12/templates/discourse-deployment.yaml create mode 100755 charts/edemocracia/v0.1.12/templates/discourse-pvc.yaml create mode 100755 charts/edemocracia/v0.1.12/templates/discourse-service.yaml create mode 100755 charts/edemocracia/v0.1.12/templates/edemocracia-deployment.yaml create mode 100755 charts/edemocracia/v0.1.12/templates/edemocracia-pvc.yaml create mode 100755 charts/edemocracia/v0.1.12/templates/edemocracia-service.yaml create mode 100755 charts/edemocracia/v0.1.12/templates/ingress.yaml create mode 100755 charts/edemocracia/v0.1.12/templates/nginx-deployment.yaml create mode 100755 charts/edemocracia/v0.1.12/templates/nginx-service.yaml create mode 100755 charts/edemocracia/v0.1.12/templates/wikilegis-deployment.yaml create mode 100755 charts/edemocracia/v0.1.12/templates/wikilegis-pvc.yaml create mode 100755 charts/edemocracia/v0.1.12/templates/wikilegis-service.yaml create mode 100755 charts/edemocracia/v0.1.12/values.yaml diff --git a/charts/edemocracia/v0.1.12/.helmignore b/charts/edemocracia/v0.1.12/.helmignore new file mode 100755 index 0000000..0e8a0eb --- /dev/null +++ b/charts/edemocracia/v0.1.12/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.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/edemocracia/v0.1.12/Chart.lock b/charts/edemocracia/v0.1.12/Chart.lock new file mode 100755 index 0000000..e2e7d86 --- /dev/null +++ b/charts/edemocracia/v0.1.12/Chart.lock @@ -0,0 +1,9 @@ +dependencies: +- name: postgresql + repository: https://charts.bitnami.com/bitnami + version: 8.6.13 +- name: redis + repository: https://charts.bitnami.com/bitnami + version: 10.6.3 +digest: sha256:988f8160c4bd6ea76a95e38d6ee19b07676affd51e6b05bc0e2ce29f488e8c9a +generated: "2020-04-07T14:22:09.711759-03:00" diff --git a/charts/edemocracia/v0.1.12/Chart.yaml b/charts/edemocracia/v0.1.12/Chart.yaml new file mode 100755 index 0000000..eb8a73c --- /dev/null +++ b/charts/edemocracia/v0.1.12/Chart.yaml @@ -0,0 +1,33 @@ +apiVersion: v2 +name: edemocracia +description: Portal que visa ampliar a participação social no processo legislativo e aproximar cidadãos e seus representantes por meio da interação digital. + +# A chart can be either an 'application' or a 'library' chart. +# +# Application charts are a collection of templates that can be packaged into versioned archives +# to be deployed. +# +# Library charts provide useful utilities or functions for the chart developer. They're included as +# a dependency of application charts to inject those utilities and functions into the rendering +# pipeline. Library charts do not define any templates and therefore cannot be deployed. +type: application + +# This is the chart version. This version number should be incremented each time you make changes +# to the chart and its templates, including the app version. +version: 0.4.0 + +# This is the version number of the application being deployed. This version number should be +# incremented each time you make changes to the application. +appVersion: 1.3.3 + +icon: https://git.interlegis.leg.br/SEIT/rancher-charts/raw/master/images/edemocracia.png + + +# Dependencies +dependencies: +- name: postgresql + version: 8.6.13 + repository: https://charts.bitnami.com/bitnami +- name: redis + version: 10.6.3 + repository: https://charts.bitnami.com/bitnami diff --git a/charts/edemocracia/v0.1.12/app-readme.md b/charts/edemocracia/v0.1.12/app-readme.md new file mode 100755 index 0000000..ccc1cbc --- /dev/null +++ b/charts/edemocracia/v0.1.12/app-readme.md @@ -0,0 +1,3 @@ +# Sistema de participação popular para Casas Legislativas + +Utilize o formulário abaixo para configurar seu E-democracia. diff --git a/charts/edemocracia/v0.1.12/charts/postgresql-8.6.13.tgz b/charts/edemocracia/v0.1.12/charts/postgresql-8.6.13.tgz new file mode 100755 index 0000000000000000000000000000000000000000..08f5aa93d2fb0ee6eb212a004e3047d3fcfeeea8 GIT binary patch literal 31452 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%0A=7aqTq(hG>kDr0}>J;saahS?&x_u$&utw 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 H0Pq3;-58IK literal 0 HcmV?d00001 diff --git a/charts/edemocracia/v0.1.12/charts/redis-10.6.3.tgz b/charts/edemocracia/v0.1.12/charts/redis-10.6.3.tgz new file mode 100755 index 0000000000000000000000000000000000000000..9b00dec0d6ddff9fbce5cf2f3a928a87e3c8a077 GIT binary patch literal 31352 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 X&AAtzfuTPRnFh=D8Y)6OLqq&OyU6ht literal 0 HcmV?d00001 diff --git a/charts/edemocracia/v0.1.12/questions.yaml b/charts/edemocracia/v0.1.12/questions.yaml new file mode 100755 index 0000000..4454f72 --- /dev/null +++ b/charts/edemocracia/v0.1.12/questions.yaml @@ -0,0 +1,182 @@ +labels: + io.cattle.role: project +categories: +- Participação Popular +questions: +# Informações Básicas +- variable: edemocracia.siteName + default: "Câmara Municipal de Teste" + description: "Título que aparece no E-democracia" + label: "Nome do Site" + type: string + group: Básico + required: true +- variable: edemocracia.hostname + default: "edemocracia.teste.df.leg.br" + description: "Endereço para acesso ao E-democracia" + label: "URL do SAPL" + type: string + group: Básico + required: true +- variable: edemocracia.admin.email + default: "contato@admin.email" + description: "E-mail de contato do E-democracia" + label: Contato + type: string + group: Básico + required: true +- variable: edemocracia.admin.password + default: "altereme" + description: "Senha de administrador do E-democracia" + label: Senha admin + type: password + group: Básico + required: true + +# Recaptcha +- variable: edemocracia.recaptcha.privateKey + default: "altereme" + description: "Chave privada do Recaptcha" + label: Recaptcha PrivateKey + type: string + group: Recaptcha + required: true +- variable: edemocracia.recaptcha.siteKey + default: "altereme" + description: "Chave de site do Recaptcha" + label: Recaptcha SiteKey + type: string + group: Recaptcha + required: true + +# Login Social +- variable: edemocracia.socialAuth.facebook.key + default: "" + description: "Chave da autenticação via Facebook" + label: Facebook Key + type: string + group: Login Social + required: false +- variable: edemocracia.socialAuth.facebook.secret + default: "" + description: "Segredo da autenticação via Facebook" + label: Facebook Secret + type: string + group: Login Social + required: false +- variable: edemocracia.socialAuth.google.key + default: "" + description: "Chave da autenticação via Google" + label: Google Key + type: string + group: Login Social + required: false +- variable: edemocracia.socialAuth.google.secret + default: "" + description: "Segredo da autenticação via Google" + label: Google Secret + type: string + group: Login Social + required: false + +# Correio +- variable: smtp.host + default: "smtp.interlegis.leg.br" + description: "Servidor de envio de e-mail (SMTP)" + label: "Servidor SMTP" + type: string + group: Correio + required: false +- variable: smtp.port + default: 25 + description: "Porta de envio de E-mail (SMTP)" + type: int + label: "Porta SMTP" + required: false + group: Correio +- variable: smtp.tls + default: "False" + description: "Usar TLS ao conectar no servidor SMTP?" + label: "Usar TLS" + type: enum + group: Correio + options: + - "True" + - "False" + required: false +- variable: smtp.username + default: "" + description: "Nome de usuário para envio SMTP (vazio para nenhum)" + label: "SMTP Username" + required: false + group: Correio + type: string +- variable: smtp.password + default: "" + description: "Senha para envio SMTP (vazio para nenhuma)" + label: "SMTP Password" + required: false + group: Correio + type: string + +# PostgreSQL +- variable: postgresql.postgresqlPassword + default: "altereme" + description: "Senha do banco de dados Postgres" + label: "Senha do Postgres" + type: password + group: PostgreSQL + required: true + +# Avançado +- variable: edemocracia.timeZone + default: "America/Sao_Paulo" + description: "Fuso Horário do E-democracia" + type: enum + label: "Fuso" + options: + - "America/Sao_Paulo" + - "America/Fortaleza" + - "America/Belem" + - "America/Araguaina" + - "America/Bahia" + - "America/Boa_Vista" + - "America/Campo_Grande" + - "America/Cuiaba" + - "America/Maceio" + - "America/Manaus" + - "America/Porto_Velho" + - "America/Recife" + - "America/Rio_Branco" + - "America/Sao_Paulo" + required: true + group: Avançado + +- variable: edemocracia.apikey + default: "uma_chave_de_api_secreta_mesmo" + description: "Chave de API do E-democracia" + type: string + label: "Chave de API" + required: true + group: Avançado + +- variable: discourse.enabled + default: true + description: "Habilitar o discourse (Expressão)?" + label: "Usar o Discourse?" + type: boolean + group: Avançado + +- variable: wikilegis.enabled + default: true + description: "Habilitar o Wikilegis?" + label: "Usar o Wikilegis?" + type: boolean + group: Avançado + +- variable: audiencias.enabled + default: true + description: "Habilitar o Audiências Interativas?" + label: "Usar o Audiências?" + type: boolean + group: Avançado diff --git a/charts/edemocracia/v0.1.12/templates/NOTES.txt b/charts/edemocracia/v0.1.12/templates/NOTES.txt new file mode 100755 index 0000000..70391fd --- /dev/null +++ b/charts/edemocracia/v0.1.12/templates/NOTES.txt @@ -0,0 +1,19 @@ +1. Get the application URL by running these commands: +{{- if .Values.ingress.enabled }} +{{- range $host := .Values.ingress.hosts }} + http{{ if $.Values.ingress.tls }}s{{ end }}://{{ . }}{{ $.Values.ingress.path }} +{{- end }} +{{- else if contains "NodePort" .Values.nginx.service.type }} + export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "edemocracia.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.nginx.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 "edemocracia.fullname" . }}' + export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "edemocracia.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}") + echo http://$SERVICE_IP:{{ .Values.nginx.service.port }} +{{- else if contains "ClusterIP" .Values.nginx.service.type }} + export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "edemocracia.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") + echo "Visit http://127.0.0.1:8080 to use your application" + kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:80 +{{- end }} diff --git a/charts/edemocracia/v0.1.12/templates/_helpers.tpl b/charts/edemocracia/v0.1.12/templates/_helpers.tpl new file mode 100755 index 0000000..f4122fe --- /dev/null +++ b/charts/edemocracia/v0.1.12/templates/_helpers.tpl @@ -0,0 +1,79 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Expand the name of the chart. +*/}} +{{- define "edemocracia.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "edemocracia.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 -}} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "edemocracia.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Common labels +*/}} +{{- define "edemocracia.labels" -}} +helm.sh/chart: {{ include "edemocracia.chart" . }} +{{ include "edemocracia.selectorLabels" . }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end -}} + +{{/* +Selector labels +*/}} +{{- define "edemocracia.selectorLabels" -}} +app.kubernetes.io/name: {{ include "edemocracia.name" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- end -}} + +{{/* +Create the name of the service account to use +*/}} +{{- define "edemocracia.serviceAccountName" -}} +{{- if .Values.serviceAccount.create -}} + {{ default (include "edemocracia.fullname" .) .Values.serviceAccount.name }} +{{- else -}} + {{ default "default" .Values.serviceAccount.name }} +{{- end -}} +{{- end -}} + +{{/* +Create a default fully qualified app name for postgresql. +*/}} +{{- define "postgresql.fullname" -}} +{{- printf "%s-%s" .Release.Name "postgresql" | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Create a default fully qualified app name for redis. +*/}} +{{- define "redis.fullname" -}} +{{- printf "%s-%s" .Release.Name "redis" | trunc 63 | trimSuffix "-" -}} +{{- end -}} + + diff --git a/charts/edemocracia/v0.1.12/templates/audiencias-pvc.yaml b/charts/edemocracia/v0.1.12/templates/audiencias-pvc.yaml new file mode 100755 index 0000000..ae75435 --- /dev/null +++ b/charts/edemocracia/v0.1.12/templates/audiencias-pvc.yaml @@ -0,0 +1,19 @@ +{{- if .Values.audiencias.enabled }} +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: {{ include "edemocracia.fullname" . }}-audiencias +spec: + accessModes: + - {{ .Values.audiencias.persistence.accessMode }} + resources: + requests: + storage: {{ .Values.audiencias.persistence.size }} +{{- if .Values.audiencias.persistence.storageClass }} +{{- if (eq "-" .Values.audiencias.persistence.storageClass) }} + storageClassName: "" +{{- else }} + storageClassName: "{{ .Values.audiencias.persistence.storageClass }}" +{{- end }} +{{- end }} +{{- end }} diff --git a/charts/edemocracia/v0.1.12/templates/audienciasweb-deployment.yaml b/charts/edemocracia/v0.1.12/templates/audienciasweb-deployment.yaml new file mode 100755 index 0000000..7d0f440 --- /dev/null +++ b/charts/edemocracia/v0.1.12/templates/audienciasweb-deployment.yaml @@ -0,0 +1,147 @@ +{{- if .Values.audiencias.enabled }} +{{- $edemoUrl := .Values.edemocracia.hostname -}} +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "edemocracia.fullname" . }}-audienciasweb + labels: + {{- include "edemocracia.labels" . | nindent 4 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-audienciasweb +spec: + selector: + matchLabels: + {{- include "edemocracia.selectorLabels" . | nindent 6 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-audienciasweb + app.kubernetes.io/component: audiencias + strategy: + type: Recreate + template: + metadata: + labels: + {{- include "edemocracia.selectorLabels" . | nindent 8 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-audienciasweb + app.kubernetes.io/component: audiencias + spec: + {{- with .Values.imagePullSecrets }} + imagePullSecrets: + {{- toYaml . | nindent 8 }} + {{- end }} + containers: + - name: {{ include "edemocracia.fullname" . }}-audienciasweb + image: "{{ .Values.audiencias.image.repository }}:{{ .Values.audiencias.image.tag }}" + imagePullPolicy: {{ .Values.audiencias.image.pullPolicy }} + args: + - ./start-web.sh + env: + - name: ADMIN_EMAIL + value: {{ .Values.edemocracia.admin.email | quote }} + - name: ADMIN_PASSWORD + value: {{ .Values.edemocracia.admin.password | quote }} + - name: ADMIN_USERNAME + value: admin + - name: ALLOWED_HOSTS + value: audienciasweb, localhost, 127.0.0.1, "{{ $edemoUrl }}" + - name: COMPRESS_OFFLINE + value: "True" + - name: DATABASE_ENGINE + value: postgresql_psycopg2 + - name: DATABASE_HOST + value: {{ (include "postgresql.fullname" .) }} + - name: DATABASE_NAME + value: audiencias + - name: DATABASE_PASSWORD + value: {{ .Values.postgresql.postgresqlPassword | quote }} + - name: DATABASE_PORT + value: "5432" + - name: DATABASE_USER + value: {{ .Values.postgresql.postgresqlUsername | quote }} + - name: DEBUG + value: "False" + - name: DEFAULT_FROM_EMAIL + value: '"Portal e-Democracia[audiencias]" <{{ .Values.edemocracia.admin.email }}>' + - name: DJANGO_SECRET_KEY + value: {{ .Values.edemocracia.apikey | quote }} + - name: EMAIL_HOST + value: {{ .Values.smtp.host | quote }} + - name: EMAIL_HOST_PASSWORD + value: {{ .Values.smtp.password | quote }} + - name: EMAIL_HOST_USER + value: {{ .Values.smtp.username | quote }} + - name: EMAIL_PORT + value: {{ .Values.smtp.port | quote }} + - name: EMAIL_USE_TLS + value: {{ .Values.smtp.tls | quote}} + - name: ENABLE_REMOTE_USER + value: "True" + - name: FORCE_SCRIPT_NAME + value: /audiencias + - name: GOOGLE_ANALYTICS_ID + value: {{ .Values.edemocracia.googleAnalyticsId | quote }} + - name: LOGIN_REDIRECT_URL + value: / + - name: LOGIN_URL + value: / + - name: LOGOUT_REDIRECT_URL + value: / + - name: NOTIFICATION_EMAIL_LIST + value: "{{ .Values.edemocracia.admin.email }},{{ .Values.audiencias.notifEmailList }}" + - name: OLARK_ID + value: {{ .Values.edemocracia.olarkId | quote }} + - name: RECAPTCHA_PRIVATE_KEY + value: {{ .Values.edemocracia.recaptcha.privateKey | quote }} + - name: RECAPTCHA_SITE_KEY + value: {{ .Values.edemocracia.recaptcha.siteKey | quote }} + - name: REDIS_SERVER + value: {{ (include "redis.fullname" .) }}-master + - name: SESSION_COOKIE_NAME + value: audiencias_session + - name: SITE_DOMAIN + value: "{{ $edemoUrl }}" + - name: SITE_NAME + value: {{ .Values.edemocracia.siteName | quote }} + - name: STATIC_URL + value: /audiencias/static/ + - name: URL_PREFIX + value: audiencias + - name: WEBSERVICE_URL + value: {{ .Values.audiencias.webservice.url | quote }} + - name: WORDS_BLACK_LIST + value: {{ .Values.audiencias.wordsBlacklist | quote }} + resources: + {{- toYaml .Values.audiencias.resources | nindent 12 }} + volumeMounts: + - mountPath: /var/labhacker/audiencias/public/ + name: {{ include "edemocracia.fullname" . }}-audiencias + restartPolicy: Always + serviceAccountName: "" + volumes: + - name: {{ include "edemocracia.fullname" . }}-audiencias + persistentVolumeClaim: + claimName: {{ include "edemocracia.fullname" . }}-audiencias + {{- with .Values.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 8 }} + {{- end }} + affinity: + podAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchExpressions: + - key: app.kubernetes.io/name + operator: In + values: + - {{ include "edemocracia.name" . }} + - key: app.kubernetes.io/instance + operator: In + values: + - {{ .Release.Name }} + - key: app.kubernetes.io/component + operator: In + values: + - edemocracia + topologyKey: kubernetes.io/hostname + {{- with .Values.tolerations }} + tolerations: + {{- toYaml . | nindent 8 }} + {{- end }} +{{- end }} diff --git a/charts/edemocracia/v0.1.12/templates/audienciasweb-service.yaml b/charts/edemocracia/v0.1.12/templates/audienciasweb-service.yaml new file mode 100755 index 0000000..4208451 --- /dev/null +++ b/charts/edemocracia/v0.1.12/templates/audienciasweb-service.yaml @@ -0,0 +1,19 @@ +{{- if .Values.audiencias.enabled }} +apiVersion: v1 +kind: Service +metadata: + name: audienciasweb + labels: + {{- include "edemocracia.labels" . | nindent 4 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-audienciasweb +spec: + type: {{ .Values.audiencias.service.type }} + ports: + - port: {{ .Values.audiencias.service.port }} + targetPort: 8000 + protocol: TCP + name: "8000" + selector: + {{- include "edemocracia.selectorLabels" . | nindent 4 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-audienciasweb +{{- end }} diff --git a/charts/edemocracia/v0.1.12/templates/audienciasworker-deployment.yaml b/charts/edemocracia/v0.1.12/templates/audienciasworker-deployment.yaml new file mode 100755 index 0000000..eebeeb8 --- /dev/null +++ b/charts/edemocracia/v0.1.12/templates/audienciasworker-deployment.yaml @@ -0,0 +1,147 @@ +{{- if .Values.audiencias.enabled }} +{{- $edemoUrl := .Values.edemocracia.hostname -}} +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "edemocracia.fullname" . }}-audienciasworker + labels: + {{- include "edemocracia.labels" . | nindent 4 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-audienciasworker +spec: + selector: + matchLabels: + {{- include "edemocracia.selectorLabels" . | nindent 6 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-audienciasworker + app.kubernetes.io/component: audiencias + strategy: + type: Recreate + template: + metadata: + labels: + {{- include "edemocracia.selectorLabels" . | nindent 8 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-audienciasworker + app.kubernetes.io/component: audiencias + spec: + {{- with .Values.imagePullSecrets }} + imagePullSecrets: + {{- toYaml . | nindent 8 }} + {{- end }} + containers: + - name: {{ include "edemocracia.fullname" . }}-audienciasworker + image: "{{ .Values.audiencias.image.repository }}:{{ .Values.audiencias.image.tag }}" + imagePullPolicy: {{ .Values.audiencias.image.pullPolicy }} + args: + - ./start-worker.sh + env: + - name: ADMIN_EMAIL + value: {{ .Values.edemocracia.admin.email | quote }} + - name: ADMIN_PASSWORD + value: {{ .Values.edemocracia.admin.password | quote }} + - name: ADMIN_USERNAME + value: admin + - name: ALLOWED_HOSTS + value: audienciasweb, audienciasworker, localhost, 127.0.0.1, "{{ $edemoUrl }}" + - name: COMPRESS_OFFLINE + value: "True" + - name: DATABASE_ENGINE + value: postgresql_psycopg2 + - name: DATABASE_HOST + value: {{ (include "postgresql.fullname" .) }} + - name: DATABASE_NAME + value: audiencias + - name: DATABASE_PASSWORD + value: {{ .Values.postgresql.postgresqlPassword | quote }} + - name: DATABASE_PORT + value: "5432" + - name: DATABASE_USER + value: {{ .Values.postgresql.postgresqlUsername | quote }} + - name: DEBUG + value: "False" + - name: DEFAULT_FROM_EMAIL + value: '"Portal e-Democracia[audiencias]" <{{ .Values.edemocracia.admin.email }}>' + - name: DJANGO_SECRET_KEY + value: {{ .Values.edemocracia.apikey | quote }} + - name: EMAIL_HOST + value: {{ .Values.smtp.host | quote }} + - name: EMAIL_HOST_PASSWORD + value: {{ .Values.smtp.password | quote }} + - name: EMAIL_HOST_USER + value: {{ .Values.smtp.username | quote }} + - name: EMAIL_PORT + value: {{ .Values.smtp.port | quote }} + - name: EMAIL_USE_TLS + value: {{ .Values.smtp.tls | quote }} + - name: ENABLE_REMOTE_USER + value: "True" + - name: FORCE_SCRIPT_NAME + value: /audiencias + - name: GOOGLE_ANALYTICS_ID + value: {{ .Values.edemocracia.googleAnalyticsId }} + - name: LOGIN_REDIRECT_URL + value: / + - name: LOGIN_URL + value: / + - name: LOGOUT_REDIRECT_URL + value: / + - name: NOTIFICATION_EMAIL_LIST + value: "{{ .Values.edemocracia.admin.email }},{{ .Values.audiencias.notifEmailList }}" + - name: OLARK_ID + value: {{ .Values.edemocracia.olarkId | quote }} + - name: RECAPTCHA_PRIVATE_KEY + value: {{ .Values.edemocracia.recaptcha.privateKey | quote }} + - name: RECAPTCHA_SITE_KEY + value: {{ .Values.edemocracia.recaptcha.siteKey | quote }} + - name: REDIS_SERVER + value: {{ (include "redis.fullname" .) }}-master + - name: SESSION_COOKIE_NAME + value: audiencias_session + - name: SITE_DOMAIN + value: "{{ $edemoUrl }}" + - name: SITE_NAME + value: {{ .Values.edemocracia.siteName | quote }} + - name: STATIC_URL + value: /audiencias/static/ + - name: URL_PREFIX + value: audiencias + - name: WEBSERVICE_URL + value: {{ .Values.audiencias.webservice.url | quote }} + - name: WORDS_BLACK_LIST + value: {{ .Values.audiencias.wordsBlacklist | quote }} + resources: + {{- toYaml .Values.audiencias.resources | nindent 12 }} + volumeMounts: + - mountPath: /var/labhacker/audiencias/public/ + name: {{ include "edemocracia.fullname" . }}-audiencias + restartPolicy: Always + serviceAccountName: "" + volumes: + - name: {{ include "edemocracia.fullname" . }}-audiencias + persistentVolumeClaim: + claimName: {{ include "edemocracia.fullname" . }}-audiencias + {{- with .Values.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 8 }} + {{- end }} + affinity: + podAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchExpressions: + - key: app.kubernetes.io/name + operator: In + values: + - {{ include "edemocracia.name" . }} + - key: app.kubernetes.io/instance + operator: In + values: + - {{ .Release.Name }} + - key: app.kubernetes.io/component + operator: In + values: + - edemocracia + topologyKey: kubernetes.io/hostname + {{- with .Values.tolerations }} + tolerations: + {{- toYaml . | nindent 8 }} + {{- end }} +{{- end }} diff --git a/charts/edemocracia/v0.1.12/templates/discourse-deployment.yaml b/charts/edemocracia/v0.1.12/templates/discourse-deployment.yaml new file mode 100755 index 0000000..f56af38 --- /dev/null +++ b/charts/edemocracia/v0.1.12/templates/discourse-deployment.yaml @@ -0,0 +1,144 @@ +{{- if .Values.discourse.enabled }} +{{- $edemoUrl := .Values.edemocracia.hostname -}} +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "edemocracia.fullname" . }}-discourse + labels: + {{- include "edemocracia.labels" . | nindent 4 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-discourse +spec: + selector: + matchLabels: + {{- include "edemocracia.selectorLabels" . | nindent 6 }} + app.kubernetes.io/component: discourse + io.kompose.service: {{ include "edemocracia.fullname" . }}-discourse + strategy: + type: Recreate + template: + metadata: + labels: + {{- include "edemocracia.selectorLabels" . | nindent 8 }} + app.kubernetes.io/component: discourse + io.kompose.service: {{ include "edemocracia.fullname" . }}-discourse + spec: + {{- with .Values.imagePullSecrets }} + imagePullSecrets: + {{- toYaml . | nindent 8 }} + {{- end }} + initContainers: + - image: "{{ .Values.discourse.image.repository }}:{{ .Values.discourse.image.tag }}" + name: {{ include "edemocracia.fullname" . }}-discourse-cpimgs + command: + - "cp" + - "-au" + - "/var/www/discourse/public/images/." + - "/publicimgs/" + volumeMounts: + - mountPath: /publicimgs/ + subPath: images + name: {{ include "edemocracia.fullname" . }}-discourse + containers: + - args: + - ./start-web.sh + env: + - name: ADMIN_EMAIL + value: {{ .Values.edemocracia.admin.email | quote }} + - name: ADMIN_PASSWORD + value: {{ .Values.edemocracia.admin.password | quote }} + - name: ADMIN_USERNAME + value: admin + - name: DISCOURSE_CONTACT_EMAIL + value: {{ .Values.edemocracia.admin.email | quote }} + - name: DISCOURSE_CONTACT_URL + value: {{ $edemoUrl }} + - name: DISCOURSE_DB_HOST + value: {{ (include "postgresql.fullname" .) }} + - name: DISCOURSE_DB_NAME + value: discourse + - name: DISCOURSE_DB_PASSWORD + value: {{ .Values.postgresql.postgresqlPassword | quote }} + - name: DISCOURSE_DB_PORT + value: "5432" + - name: DISCOURSE_DB_USERNAME + value: {{ .Values.postgresql.postgresqlUsername | quote}} + - name: DISCOURSE_DEVELOPER_EMAILS + - name: DISCOURSE_FORCE_HOSTNAME + value: {{ $edemoUrl }}\/expressao + - name: DISCOURSE_HOSTNAME + value: {{ $edemoUrl }}\/expressao + - name: DISCOURSE_NOTIFICATION_EMAIL + value: {{ .Values.edemocracia.admin.email }} + - name: DISCOURSE_REDIS_HOST + value: {{ (include "redis.fullname" .) }}-master + - name: DISCOURSE_REDIS_PORT + value: "6379" + - name: DISCOURSE_RELATIVE_URL_ROOT + value: /expressao + - name: DISCOURSE_SMTP_ADDRESS + value: {{ .Values.smtp.host | quote }} + - name: DISCOURSE_SMTP_PASSWORD + value: {{ .Values.smtp.password | quote }} + - name: DISCOURSE_SMTP_PORT + value: {{ .Values.smtp.port | quote }} + - name: DISCOURSE_SMTP_USER_NAME + value: {{ .Values.smtp.username | quote }} + - name: DISCOURSE_SSO_SECRET + value: {{ .Values.discourse.sso.secret | quote }} + - name: DISCOURSE_SSO_URL + value: "https://{{ $edemoUrl }}" + - name: RAILS_ENV + value: production + image: {{.Values.discourse.image.repository}}:{{ .Values.discourse.image.tag }} + imagePullPolicy: {{ .Values.discourse.image.pullPolicy }} + name: {{ include "edemocracia.fullname" . }}-discourse + ports: + - containerPort: 8080 + resources: + {{- toYaml .Values.discourse.resources | nindent 12 }} + volumeMounts: + - mountPath: /var/www/discourse/public/assets/ + name: {{ include "edemocracia.fullname" . }}-discourse + subPath: assets + - mountPath: /var/www/discourse/public/javascripts/ + name: {{ include "edemocracia.fullname" . }}-discourse + subPath: javascripts + - mountPath: /var/www/discourse/public/images/ + name: {{ include "edemocracia.fullname" . }}-discourse + subPath: images + - mountPath: /var/www/discourse/tmp/stylesheet-cache/ + name: {{ include "edemocracia.fullname" . }}-discourse + subPath: stylesheet-cache + restartPolicy: Always + serviceAccountName: "" + volumes: + - name: {{ include "edemocracia.fullname" . }}-discourse + persistentVolumeClaim: + claimName: {{ include "edemocracia.fullname" . }}-discourse + {{- with .Values.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 8 }} + {{- end }} + affinity: + podAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchExpressions: + - key: app.kubernetes.io/name + operator: In + values: + - {{ include "edemocracia.name" . }} + - key: app.kubernetes.io/instance + operator: In + values: + - {{ .Release.Name }} + - key: app.kubernetes.io/component + operator: In + values: + - edemocracia + topologyKey: kubernetes.io/hostname + {{- with .Values.tolerations }} + tolerations: + {{- toYaml . | nindent 8 }} + {{- end }} +{{- end }} diff --git a/charts/edemocracia/v0.1.12/templates/discourse-pvc.yaml b/charts/edemocracia/v0.1.12/templates/discourse-pvc.yaml new file mode 100755 index 0000000..d9e7804 --- /dev/null +++ b/charts/edemocracia/v0.1.12/templates/discourse-pvc.yaml @@ -0,0 +1,19 @@ +{{- if .Values.discourse.enabled }} +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: {{ include "edemocracia.fullname" . }}-discourse +spec: + accessModes: + - {{ .Values.discourse.persistence.accessMode }} + resources: + requests: + storage: {{ .Values.discourse.persistence.size }} +{{- if .Values.discourse.persistence.storageClass }} +{{- if (eq "-" .Values.discourse.persistence.storageClass) }} + storageClassName: "" +{{- else }} + storageClassName: "{{ .Values.discourse.persistence.storageClass }}" +{{- end }} +{{- end }} +{{- end }} diff --git a/charts/edemocracia/v0.1.12/templates/discourse-service.yaml b/charts/edemocracia/v0.1.12/templates/discourse-service.yaml new file mode 100755 index 0000000..c0c96f0 --- /dev/null +++ b/charts/edemocracia/v0.1.12/templates/discourse-service.yaml @@ -0,0 +1,19 @@ +{{- if .Values.discourse.enabled }} +apiVersion: v1 +kind: Service +metadata: + name: discourse + labels: + {{- include "edemocracia.labels" . | nindent 4 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-discourse +spec: + type: {{ .Values.discourse.service.type }} + ports: + - port: {{ .Values.discourse.service.port }} + targetPort: 8080 + protocol: TCP + name: "8080" + selector: + {{- include "edemocracia.selectorLabels" . | nindent 4 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-discourse +{{- end }} diff --git a/charts/edemocracia/v0.1.12/templates/edemocracia-deployment.yaml b/charts/edemocracia/v0.1.12/templates/edemocracia-deployment.yaml new file mode 100755 index 0000000..f07dceb --- /dev/null +++ b/charts/edemocracia/v0.1.12/templates/edemocracia-deployment.yaml @@ -0,0 +1,165 @@ +{{- $edemoUrl := .Values.edemocracia.hostname -}} +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "edemocracia.fullname" . }}-edemocracia + labels: + {{- include "edemocracia.labels" . | nindent 4 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-edemocracia +spec: + selector: + matchLabels: + {{- include "edemocracia.selectorLabels" . | nindent 6 }} + app.kubernetes.io/component: edemocracia + io.kompose.service: {{ include "edemocracia.fullname" . }}-edemocracia + strategy: + type: Recreate + template: + metadata: + labels: + {{- include "edemocracia.selectorLabels" . | nindent 8 }} + app.kubernetes.io/component: edemocracia + io.kompose.service: {{ include "edemocracia.fullname" . }}-edemocracia + spec: + {{- with .Values.imagePullSecrets }} + imagePullSecrets: + {{- toYaml . | nindent 8 }} + {{- end }} + initContainers: + - image: "{{ .Values.edemocracia.image.repository }}:{{ .Values.edemocracia.image.tag }}" + name: {{ include "edemocracia.fullname" . }}-edemocracia-cpmedia + command: + - "cp" + - "-au" + - "/var/labhacker/edemocracia/src/public/media/" + - "/srcpublic/" + volumeMounts: + - mountPath: /srcpublic + name: {{ include "edemocracia.fullname" . }}-edemocracia + containers: + - name: {{ include "edemocracia.fullname" . }}-edemocracia + image: "{{ .Values.edemocracia.image.repository }}:{{ .Values.edemocracia.image.tag }}" + imagePullPolicy: {{ .Values.edemocracia.image.pullPolicy }} + args: + - ./runserver-production + env: + - name: ADMIN_EMAIL + value: {{ .Values.edemocracia.admin.email | quote }} + - name: ADMIN_PASSWORD + value: {{ .Values.edemocracia.admin.password | quote }} + - name: ADMIN_USERNAME + value: admin + - name: ALLOWED_HOSTS + value: "{{ $edemoUrl }}" + - name: AUDIENCIAS_API_KEY + value: {{ .Values.edemocracia.apikey | quote }} + - name: AUDIENCIAS_ENABLED + {{- if .Values.audiencias.enabled }} + value: "True" + {{- else }} + value: "False" + {{- end }} + - name: AUDIENCIAS_UPSTREAM + value: http://audienciasweb:8000/audiencias + - name: DATABASE_ENGINE + value: postgresql_psycopg2 + - name: DATABASE_HOST + value: {{ (include "postgresql.fullname" .) }} + - name: DATABASE_NAME + value: edemocracia + - name: DATABASE_PASSWORD + value: {{ .Values.postgresql.postgresqlPassword | quote }} + - name: DATABASE_PORT + value: "5432" + - name: DATABASE_USER + value: {{ .Values.postgresql.postgresqlUsername | quote }} + - name: DEBUG + value: "{{ .Values.edemocracia.debug }}" + - name: DEFAULT_FROM_EMAIL + value: '"Portal e-Democracia" <{{ .Values.edemocracia.admin.email }}>' + - name: DISCOURSE_ENABLED + {{- if .Values.discourse.enabled }} + value: "True" + {{- else }} + value: "False" + {{- end }} + - name: DISCOURSE_SSO_SECRET + value: {{ .Values.discourse.sso.secret | quote }} + # Workaround for a bug in runserver-production script, which does not check for DISCOURSE_ENABLED variable + - name: DISCOURSE_UPSTREAM + {{- if .Values.discourse.enabled }} + value: http://discourse:8080/expressao + {{- else }} + value: "--version" + {{- end }} + - name: EMAIL_BACKEND + value: django.core.mail.backends.smtp.EmailBackend + - name: EMAIL_HOST + value: {{ .Values.smtp.host | quote }} + - name: EMAIL_HOST_PASSWORD + value: {{ .Values.smtp.password | quote }} + - name: EMAIL_HOST_USER + value: {{ .Values.smtp.username | quote }} + - name: EMAIL_PORT + value: {{ .Values.smtp.port | quote }} + - name: EMAIL_USE_TLS + value: {{ .Values.smtp.tls | quote }} + - name: GOOGLE_ANALYTICS_ID + value: {{ .Values.edemocracia.googleAnalyticsId | quote }} + - name: OLARK_ID + value: {{ .Values.edemocracia.olarkId | quote }} + - name: RECAPTCHA_PRIVATE_KEY + value: {{ .Values.edemocracia.recaptcha.privateKey | quote }} + - name: RECAPTCHA_SITE_KEY + value: {{ .Values.edemocracia.recaptcha.siteKey | quote }} + - name: SECRET_KEY + value: {{ .Values.edemocracia.apikey | quote }} + - name: SITE_NAME + value: {{ .Values.edemocracia.siteName | quote }} + - name: SITE_URL + value: "https://{{ $edemoUrl }}" + - name: SOCIAL_AUTH_FACEBOOK_KEY + value: {{ .Values.edemocracia.socialAuth.facebook.key | quote }} + - name: SOCIAL_AUTH_FACEBOOK_SECRET + value: {{ .Values.edemocracia.socialAuth.facebook.secret | quote }} + - name: SOCIAL_AUTH_GOOGLE_OAUTH2_KEY + value: {{ .Values.edemocracia.socialAuth.google.key | quote }} + - name: SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET + value: {{ .Values.edemocracia.socialAuth.google.secret | quote }} + - name: SOCIAL_AUTH_REDIRECT_IS_HTTPS + value: "True" + - name: WIKILEGIS_API_KEY + value: {{ .Values.edemocracia.apikey | quote }} + - name: WIKILEGIS_API_URL + value: /api/v1/ + - name: WIKILEGIS_ENABLED + {{- if .Values.wikilegis.enabled }} + value: "True" + {{- else }} + value: "False" + {{- end }} + - name: WIKILEGIS_UPSTREAM + value: http://wikilegis:8000 + resources: + {{- toYaml .Values.edemocracia.resources | nindent 12 }} + volumeMounts: + - mountPath: /var/labhacker/edemocracia/src/public/ + name: {{ include "edemocracia.fullname" . }}-edemocracia + restartPolicy: Always + serviceAccountName: "" + volumes: + - name: {{ include "edemocracia.fullname" . }}-edemocracia + persistentVolumeClaim: + claimName: {{ include "edemocracia.fullname" . }}-edemocracia + {{- with .Values.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.affinity }} + affinity: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.tolerations }} + tolerations: + {{- toYaml . | nindent 8 }} + {{- end }} diff --git a/charts/edemocracia/v0.1.12/templates/edemocracia-pvc.yaml b/charts/edemocracia/v0.1.12/templates/edemocracia-pvc.yaml new file mode 100755 index 0000000..0247fce --- /dev/null +++ b/charts/edemocracia/v0.1.12/templates/edemocracia-pvc.yaml @@ -0,0 +1,17 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: {{ include "edemocracia.fullname" . }}-edemocracia +spec: + accessModes: + - {{ .Values.edemocracia.persistence.accessMode }} + resources: + requests: + storage: {{ .Values.edemocracia.persistence.size }} +{{- if .Values.edemocracia.persistence.storageClass }} +{{- if (eq "-" .Values.edemocracia.persistence.storageClass) }} + storageClassName: "" +{{- else }} + storageClassName: "{{ .Values.edemocracia.persistence.storageClass }}" +{{- end }} +{{- end }} diff --git a/charts/edemocracia/v0.1.12/templates/edemocracia-service.yaml b/charts/edemocracia/v0.1.12/templates/edemocracia-service.yaml new file mode 100755 index 0000000..2e6350f --- /dev/null +++ b/charts/edemocracia/v0.1.12/templates/edemocracia-service.yaml @@ -0,0 +1,17 @@ +apiVersion: v1 +kind: Service +metadata: + name: edemocracia + labels: + {{- include "edemocracia.labels" . | nindent 4 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-edemocracia +spec: + type: {{ .Values.edemocracia.service.type }} + ports: + - port: {{ .Values.edemocracia.service.port }} + targetPort: 8000 + protocol: TCP + name: "8000" + selector: + {{- include "edemocracia.selectorLabels" . | nindent 4 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-edemocracia diff --git a/charts/edemocracia/v0.1.12/templates/ingress.yaml b/charts/edemocracia/v0.1.12/templates/ingress.yaml new file mode 100755 index 0000000..94b3425 --- /dev/null +++ b/charts/edemocracia/v0.1.12/templates/ingress.yaml @@ -0,0 +1,32 @@ +{{- if .Values.ingress.enabled -}} +{{- $fullName := include "edemocracia.fullname" . -}} +{{- $hostName := .Values.edemocracia.hostname -}} +{{- if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}} +apiVersion: networking.k8s.io/v1beta1 +{{- else -}} +apiVersion: extensions/v1beta1 +{{- end }} +kind: Ingress +metadata: + name: {{ $fullName }} + labels: + {{- include "edemocracia.labels" . | nindent 4 }} + annotations: + cert-manager.io/cluster-issuer: "letsencrypt-prod" + {{- with .Values.ingress.annotations }} + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + tls: + - hosts: + - "{{ $hostName }}" + secretName: {{ $hostName | replace "." "-" }}-tls + rules: + - host: "{{ $hostName }}" + http: + paths: + - path: / + backend: + serviceName: nginx + servicePort: http +{{- end }} diff --git a/charts/edemocracia/v0.1.12/templates/nginx-deployment.yaml b/charts/edemocracia/v0.1.12/templates/nginx-deployment.yaml new file mode 100755 index 0000000..b0ce573 --- /dev/null +++ b/charts/edemocracia/v0.1.12/templates/nginx-deployment.yaml @@ -0,0 +1,120 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "edemocracia.fullname" . }}-nginx + labels: + {{- include "edemocracia.labels" . | nindent 4 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-nginx +spec: + selector: + matchLabels: + {{- include "edemocracia.selectorLabels" . | nindent 6 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-nginx + strategy: + type: Recreate + template: + metadata: + labels: + {{- include "edemocracia.selectorLabels" . | nindent 8 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-nginx + spec: + {{- with .Values.imagePullSecrets }} + imagePullSecrets: + {{- toYaml . | nindent 8 }} + {{- end }} + containers: + - name: {{ .Chart.Name }}-nginx + image: "{{ .Values.nginx.image.repository }}:{{ .Values.nginx.image.tag }}" + imagePullPolicy: {{ .Values.nginx.image.pullPolicy }} + ports: + - name: http + containerPort: 80 + protocol: TCP + livenessProbe: + failureThreshold: 3 + periodSeconds: 10 + successThreshold: 1 + tcpSocket: + port: http + timeoutSeconds: 1 + readinessProbe: + failureThreshold: 3 + periodSeconds: 10 + successThreshold: 1 + tcpSocket: + port: http + timeoutSeconds: 1 + resources: + {{- toYaml .Values.nginx.resources | nindent 12 }} + volumeMounts: + - mountPath: /var/labhacker/edemocracia/src/public/ + name: {{ include "edemocracia.fullname" . }}-edemocracia + {{- if .Values.wikilegis.enabled }} + - mountPath: /var/labhacker/wikilegis/wikilegis/public/ + name: {{ include "edemocracia.fullname" . }}-wikilegis + {{- end }} + {{- if .Values.audiencias.enabled }} + - mountPath: /var/labhacker/audiencias/public/ + name: {{ include "edemocracia.fullname" . }}-audiencias + {{- end }} + {{- if .Values.discourse.enabled }} + - mountPath: /var/www/discourse/public/assets/ + name: {{ include "edemocracia.fullname" . }}-discourse + subPath: assets + - mountPath: /var/www/discourse/public/javascripts/ + name: {{ include "edemocracia.fullname" . }}-discourse + subPath: javascripts + - mountPath: /var/www/discourse/public/images/ + name: {{ include "edemocracia.fullname" . }}-discourse + subPath: images + - mountPath: /var/www/discourse/tmp/stylesheet-cache/ + name: {{ include "edemocracia.fullname" . }}-discourse + subPath: stylesheet-cache + {{- end }} + restartPolicy: Always + serviceAccountName: "" + volumes: + - name: {{ include "edemocracia.fullname" . }}-edemocracia + persistentVolumeClaim: + claimName: {{ include "edemocracia.fullname" . }}-edemocracia + {{- if .Values.wikilegis.enabled }} + - name: {{ include "edemocracia.fullname" . }}-wikilegis + persistentVolumeClaim: + claimName: {{ include "edemocracia.fullname" . }}-wikilegis + {{- end }} + {{- if .Values.audiencias.enabled }} + - name: {{ include "edemocracia.fullname" . }}-audiencias + persistentVolumeClaim: + claimName: {{ include "edemocracia.fullname" . }}-audiencias + {{- end }} + {{- if .Values.discourse.enabled }} + - name: {{ include "edemocracia.fullname" . }}-discourse + persistentVolumeClaim: + claimName: {{ include "edemocracia.fullname" . }}-discourse + {{- end }} + {{- with .Values.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 8 }} + {{- end }} + affinity: + podAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchExpressions: + - key: app.kubernetes.io/name + operator: In + values: + - {{ include "edemocracia.name" . }} + - key: app.kubernetes.io/instance + operator: In + values: + - {{ .Release.Name }} + - key: app.kubernetes.io/component + operator: In + values: + - edemocracia + topologyKey: kubernetes.io/hostname + {{- with .Values.tolerations }} + tolerations: + {{- toYaml . | nindent 8 }} + {{- end }} diff --git a/charts/edemocracia/v0.1.12/templates/nginx-service.yaml b/charts/edemocracia/v0.1.12/templates/nginx-service.yaml new file mode 100755 index 0000000..51f175c --- /dev/null +++ b/charts/edemocracia/v0.1.12/templates/nginx-service.yaml @@ -0,0 +1,17 @@ +apiVersion: v1 +kind: Service +metadata: + name: nginx + labels: + {{- include "edemocracia.labels" . | nindent 4 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-nginx +spec: + type: {{ .Values.nginx.service.type }} + ports: + - port: {{ .Values.nginx.service.port }} + targetPort: http + protocol: TCP + name: http + selector: + {{- include "edemocracia.selectorLabels" . | nindent 4 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-nginx diff --git a/charts/edemocracia/v0.1.12/templates/wikilegis-deployment.yaml b/charts/edemocracia/v0.1.12/templates/wikilegis-deployment.yaml new file mode 100755 index 0000000..680b6b3 --- /dev/null +++ b/charts/edemocracia/v0.1.12/templates/wikilegis-deployment.yaml @@ -0,0 +1,144 @@ +{{- if .Values.wikilegis.enabled }} +{{- $edemoUrl := .Values.edemocracia.hostname -}} +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "edemocracia.fullname" . }}-wikilegis + labels: + {{- include "edemocracia.labels" . | nindent 4 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-wikilegis +spec: + selector: + matchLabels: + {{- include "edemocracia.selectorLabels" . | nindent 6 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-wikilegis + app.kubernetes.io/component: wikilegis + strategy: + type: Recreate + template: + metadata: + labels: + {{- include "edemocracia.selectorLabels" . | nindent 8 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-wikilegis + app.kubernetes.io/component: wikilegis + spec: + {{- with .Values.imagePullSecrets }} + imagePullSecrets: + {{- toYaml . | nindent 8 }} + {{- end }} + initContainers: + - image: "{{ .Values.wikilegis.image.repository }}:{{ .Values.wikilegis.image.tag }}" + name: {{ include "edemocracia.fullname" . }}-wikilegis-cpmedia + command: + - "cp" + - "-au" + - "/var/labhacker/wikilegis/wikilegis/public/media/" + - "/wlpublic/" + volumeMounts: + - mountPath: /wlpublic + name: {{ include "edemocracia.fullname" . }}-wikilegis + containers: + - name: {{ include "edemocracia.fullname" . }}-wikilegis + image: "{{ .Values.wikilegis.image.repository }}:{{ .Values.wikilegis.image.tag }}" + imagePullPolicy: {{ .Values.wikilegis.image.pullPolicy }} + args: + - ./start.sh + env: + - name: ADMIN_EMAIL + value: {{ .Values.edemocracia.admin.email | quote }} + - name: ADMIN_PASSWORD + value: {{ .Values.edemocracia.admin.password | quote }} + - name: ALLOWED_HOSTS + value: "{{ $edemoUrl }},wikilegisweb,wikilegis,localhost,127.0.0.1" + - name: API_KEY + value: {{ .Values.edemocracia.apikey | quote }} + - name: AUTH_USER_MODEL + value: accounts.User + - name: DATABASE_ENGINE + value: postgresql_psycopg2 + - name: DATABASE_HOST + value: {{ (include "postgresql.fullname" .) }} + - name: DATABASE_NAME + value: wikilegis + - name: DATABASE_PASSWORD + value: {{ .Values.postgresql.postgresqlPassword | quote }} + - name: DATABASE_PORT + value: "5432" + - name: DATABASE_USER + value: {{ .Values.postgresql.postgresqlUsername | quote }} + - name: DEBUG + value: "True" + - name: DEFAULT_FROM_EMAIL + value: '"Portal e-Democracia[Wikilegis]" <{{ .Values.edemocracia.admin.email }}>' + - name: EMAIL_HOST + value: {{ .Values.smtp.host | quote }} + - name: EMAIL_HOST_PASSWORD + value: {{ .Values.smtp.password | quote }} + - name: EMAIL_HOST_USER + value: {{ .Values.smtp.username | quote }} + - name: EMAIL_PORT + value: {{ .Values.smtp.port | quote }} + - name: EMAIL_USE_TLS + value: {{ .Values.smtp.tls | quote }} + - name: ENABLE_REMOTE_USER + value: "True" + - name: FORCE_SCRIPT_NAME + value: /wikilegis + - name: LANGUAGE_CODE + value: pt-br + - name: LOGIN_REDIRECT_URL + value: / + - name: LOGIN_URL + value: / + - name: MEDIA_URL + value: /wikilegis/media/ + - name: SECRET_KEY + value: {{ .Values.edemocracia.apikey | quote }} + - name: SESSION_COOKIE_NAME + value: wikilegis_session + - name: SITE_DOMAIN + value: {{ $edemoUrl }} + - name: SITE_NAME + value: {{ .Values.edemocracia.sitename | quote }} + - name: STATIC_URL + value: /wikilegis/static/ + - name: TIME_ZONE + value: {{ .Values.edemocracia.timeZone | quote }} + resources: + {{- toYaml .Values.wikilegis.resources | nindent 12 }} + volumeMounts: + - mountPath: /var/labhacker/wikilegis/wikilegis/public/ + name: {{ include "edemocracia.fullname" . }}-wikilegis + restartPolicy: Always + serviceAccountName: "" + volumes: + - name: {{ include "edemocracia.fullname" . }}-wikilegis + persistentVolumeClaim: + claimName: {{ include "edemocracia.fullname" . }}-wikilegis + {{- with .Values.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 8 }} + {{- end }} + affinity: + podAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchExpressions: + - key: app.kubernetes.io/name + operator: In + values: + - {{ include "edemocracia.name" . }} + - key: app.kubernetes.io/instance + operator: In + values: + - {{ .Release.Name }} + - key: app.kubernetes.io/component + operator: In + values: + - edemocracia + topologyKey: kubernetes.io/hostname + {{- with .Values.tolerations }} + tolerations: + {{- toYaml . | nindent 8 }} + {{- end }} +{{- end }} diff --git a/charts/edemocracia/v0.1.12/templates/wikilegis-pvc.yaml b/charts/edemocracia/v0.1.12/templates/wikilegis-pvc.yaml new file mode 100755 index 0000000..00b8660 --- /dev/null +++ b/charts/edemocracia/v0.1.12/templates/wikilegis-pvc.yaml @@ -0,0 +1,19 @@ +{{- if .Values.wikilegis.enabled }} +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: {{ include "edemocracia.fullname" . }}-wikilegis +spec: + accessModes: + - {{ .Values.wikilegis.persistence.accessMode }} + resources: + requests: + storage: {{ .Values.wikilegis.persistence.size }} +{{- if .Values.wikilegis.persistence.storageClass }} +{{- if (eq "-" .Values.wikilegis.persistence.storageClass) }} + storageClassName: "" +{{- else }} + storageClassName: "{{ .Values.wikilegis.persistence.storageClass }}" +{{- end }} +{{- end }} +{{- end }} diff --git a/charts/edemocracia/v0.1.12/templates/wikilegis-service.yaml b/charts/edemocracia/v0.1.12/templates/wikilegis-service.yaml new file mode 100755 index 0000000..793fd2c --- /dev/null +++ b/charts/edemocracia/v0.1.12/templates/wikilegis-service.yaml @@ -0,0 +1,19 @@ +{{- if .Values.wikilegis.enabled }} +apiVersion: v1 +kind: Service +metadata: + name: wikilegis + labels: + {{- include "edemocracia.labels" . | nindent 4 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-wikilegis +spec: + type: {{ .Values.wikilegis.service.type }} + ports: + - port: {{ .Values.wikilegis.service.port }} + targetPort: 8000 + protocol: TCP + name: "8000" + selector: + {{- include "edemocracia.selectorLabels" . | nindent 4 }} + io.kompose.service: {{ include "edemocracia.fullname" . }}-wikilegis +{{- end }} diff --git a/charts/edemocracia/v0.1.12/values.yaml b/charts/edemocracia/v0.1.12/values.yaml new file mode 100755 index 0000000..7e8c1cb --- /dev/null +++ b/charts/edemocracia/v0.1.12/values.yaml @@ -0,0 +1,193 @@ +# Default values for edemocracia. +# This is a YAML-formatted file. +# Declare variables to be passed into your templates. + +nginx: + image: + repository: labhackercd/nginx-edemocracia + tag: 1.0.0 + pullPolicy: IfNotPresent + service: + type: ClusterIP + port: 80 + resources: + limits: + cpu: 300m + memory: 150Mi + requests: + cpu: 50m + memory: 30Mi + +discourse: + enabled: true + image: + repository: labhackercd/discourse-docker + tag: 2.0.20180703 + pullPolicy: IfNotPresent + service: + type: ClusterIP + port: 8080 + sso: + secret: "uma_chave_sso_secreta_mesmo" + persistence: + #storageClass: "" + accessMode: ReadWriteOnce + size: 500Mi + resources: + limits: + cpu: 800m + memory: 1200Mi + requests: + cpu: 100m + memory: 650Mi + +wikilegis: + enabled: true + image: + repository: labhackercd/wikilegis + tag: 2.2.0 + pullPolicy: IfNotPresent + service: + type: ClusterIP + port: 8000 + persistence: + #storageClass: "" + accessMode: ReadWriteOnce + size: 2Gi + resources: + limits: + cpu: 800m + memory: 350Mi + requests: + cpu: 100m + memory: 200Mi + + +edemocracia: + admin: + email: seitadmins@interlegis.leg.br + password: p@ssw0rd + apikey: "uma_chave_de_api_secreta_mesmo" + debug: "False" + googleAnalyticsId: "" + olarkId: "" + recaptcha: + siteKey: "altereme" + privateKey: "altereme" + socialAuth: + facebook: + key: "" + secret: "" + google: + key: "" + secret: "" + siteName: "Camara Municipal" + hostname: "edemocracia.teste.df.leg.br" + timeZone: "America/Sao_Paulo" + image: + repository: labhackercd/edemocracia + tag: 1.3.2 + pullPolicy: IfNotPresent + service: + type: ClusterIP + port: 8000 + persistence: + #storageClass: "" + accessMode: ReadWriteOnce + size: 4Gi + resources: + limits: + cpu: 500m + memory: 1350Mi + requests: + cpu: 100m + memory: 800Mi + +audiencias: + enabled: true + image: + repository: labhackercd/audiencias-publicas + tag: 3.2.0 + pullPolicy: IfNotPresent + persistence: + #storageClass: "" + accessMode: ReadWriteOnce + size: 300Mi + notifEmailList: "" + webservice: + url: "" + wordsBlacklist: "merda,cu,cuzao,cuzona,cusao,cusona,bunda,fodido,fodida,foda,foder,fodedor,fudido,fudida,fuder,chupa,chupada,chupador,chupadora,boquete,boqueteira,boquetera,boketeira,boketera,xupa,xupada,xupador,xupadora,pauduro,pauzudo,xoxota,chochota,buceta,boceta,busseta,bosseta,cacete,cassete,caceta,kacete,kassete,caralho,karalho,caraleo,pinto,pica,rola,roludo,gozado,gozada,goso,gosa,gosado,gosado,puta,puto,putinho,putinha,putona,putana,putaria,grelo,grelinho,filhodaputa,filhosdaputa,puta,fdps,siririca,punheta,trepar,trepada,trepadeira,caralho,caralhu,karalho,karalhu,tomarnocu,tomanocu,vadia,bosta,quenga,rabo,bolsa,cuzinho,piroca,pqp,puta que pariu,porra,carai,cú,viado,fdp,vtnc,corno,bicha,bixa,viado,viadinho,pederasta,filho da puta,bundao,bundão,filho de uma egua,filho de uma égua,achacador,achacadora,achacadores,achacar,babaca,bucetas,cagar,cagaram,cambada,caráleo,corja,cornão,covarde,covardes,cretino,cus,cús,cusão,cuzão,cuzinho,cuzona,danar,desgraça,drosoba,enrabar,escória,escroto,escrotas,escrotos,fodão,fodona,fudendo,fuder,idiota,imundo,imundos,ku,kú,lascar,merdas,patifaria,pilantra,pilantragem,pilantras,poha,porcaria,putas,putos,sacanagem,safadeza,safado,safados,salafrário,salafrários,vagabundagem,vagabundo,vagabundos,veadinho,veadinhos" + service: + type: ClusterIP + port: 8000 + resources: + limits: + cpu: 500m + memory: 300Mi + requests: + cpu: 50m + memory: 100Mi + + +smtp: + host: "127.0.0.1" + username: "" + password: "" + port: "25" + tls: "False" + + +# PostgreSQL definitions +postgresql: + image: + tag: 9.6.17 + pullPolicy: IfNotPresent + service: + type: ClusterIP + port: 5432 + persistence: + enabled: true + size: 2Gi + postgresqlPassword: DbP@ssw0rd + postgresqlUsername: postgres + postgresqlDatabase: root + resources: + requests: + cpu: 50m + memory: 80Mi + +# Redis definitions +redis: + image: + tag: 5.0.8 + pullPolicy: IfNotPresent + cluster: + enabled: false + usePassword: false + persistence: + enabled: true + accessModes: + - ReadWriteOnce + size: 2Gi + resources: + requests: + cpu: 50m + memory: 150Mi + limits: + cpu: 800m + memory: 1Gi + +imagePullSecrets: [] +nameOverride: "" +fullnameOverride: "" + +ingress: + enabled: true + # extra annotations only + annotations: {} + +nodeSelector: {} + +tolerations: [] + +affinity: {} From d10c43882a1972e3a16618331ae6f1dea1d262ae Mon Sep 17 00:00:00 2001 From: Fabio Rauber Date: Mon, 14 Mar 2022 11:31:09 -0300 Subject: [PATCH 03/20] Added edemocracia v0.4.0 --- charts/edemocracia/v0.4.0/.helmignore | 0 charts/edemocracia/v0.4.0/Chart.lock | 0 charts/edemocracia/v0.4.0/Chart.yaml | 0 charts/edemocracia/v0.4.0/app-readme.md | 0 .../edemocracia/v0.4.0/charts/postgresql-8.6.13.tgz | Bin charts/edemocracia/v0.4.0/charts/redis-10.6.3.tgz | Bin charts/edemocracia/v0.4.0/questions.yaml | 0 charts/edemocracia/v0.4.0/templates/NOTES.txt | 0 charts/edemocracia/v0.4.0/templates/_helpers.tpl | 0 .../v0.4.0/templates/audiencias-pvc.yaml | 0 .../v0.4.0/templates/audienciasweb-deployment.yaml | 0 .../v0.4.0/templates/audienciasweb-service.yaml | 0 .../templates/audienciasworker-deployment.yaml | 0 .../v0.4.0/templates/discourse-deployment.yaml | 0 .../edemocracia/v0.4.0/templates/discourse-pvc.yaml | 0 .../v0.4.0/templates/discourse-service.yaml | 0 .../v0.4.0/templates/edemocracia-deployment.yaml | 0 .../v0.4.0/templates/edemocracia-pvc.yaml | 0 .../v0.4.0/templates/edemocracia-service.yaml | 0 charts/edemocracia/v0.4.0/templates/ingress.yaml | 0 .../v0.4.0/templates/nginx-deployment.yaml | 0 .../edemocracia/v0.4.0/templates/nginx-service.yaml | 0 .../v0.4.0/templates/wikilegis-deployment.yaml | 0 .../edemocracia/v0.4.0/templates/wikilegis-pvc.yaml | 0 .../v0.4.0/templates/wikilegis-service.yaml | 0 charts/edemocracia/v0.4.0/values.yaml | 0 26 files changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 charts/edemocracia/v0.4.0/.helmignore mode change 100644 => 100755 charts/edemocracia/v0.4.0/Chart.lock mode change 100644 => 100755 charts/edemocracia/v0.4.0/Chart.yaml mode change 100644 => 100755 charts/edemocracia/v0.4.0/app-readme.md mode change 100644 => 100755 charts/edemocracia/v0.4.0/charts/postgresql-8.6.13.tgz mode change 100644 => 100755 charts/edemocracia/v0.4.0/charts/redis-10.6.3.tgz mode change 100644 => 100755 charts/edemocracia/v0.4.0/questions.yaml mode change 100644 => 100755 charts/edemocracia/v0.4.0/templates/NOTES.txt mode change 100644 => 100755 charts/edemocracia/v0.4.0/templates/_helpers.tpl mode change 100644 => 100755 charts/edemocracia/v0.4.0/templates/audiencias-pvc.yaml mode change 100644 => 100755 charts/edemocracia/v0.4.0/templates/audienciasweb-deployment.yaml mode change 100644 => 100755 charts/edemocracia/v0.4.0/templates/audienciasweb-service.yaml mode change 100644 => 100755 charts/edemocracia/v0.4.0/templates/audienciasworker-deployment.yaml mode change 100644 => 100755 charts/edemocracia/v0.4.0/templates/discourse-deployment.yaml mode change 100644 => 100755 charts/edemocracia/v0.4.0/templates/discourse-pvc.yaml mode change 100644 => 100755 charts/edemocracia/v0.4.0/templates/discourse-service.yaml mode change 100644 => 100755 charts/edemocracia/v0.4.0/templates/edemocracia-deployment.yaml mode change 100644 => 100755 charts/edemocracia/v0.4.0/templates/edemocracia-pvc.yaml mode change 100644 => 100755 charts/edemocracia/v0.4.0/templates/edemocracia-service.yaml mode change 100644 => 100755 charts/edemocracia/v0.4.0/templates/ingress.yaml mode change 100644 => 100755 charts/edemocracia/v0.4.0/templates/nginx-deployment.yaml mode change 100644 => 100755 charts/edemocracia/v0.4.0/templates/nginx-service.yaml mode change 100644 => 100755 charts/edemocracia/v0.4.0/templates/wikilegis-deployment.yaml mode change 100644 => 100755 charts/edemocracia/v0.4.0/templates/wikilegis-pvc.yaml mode change 100644 => 100755 charts/edemocracia/v0.4.0/templates/wikilegis-service.yaml mode change 100644 => 100755 charts/edemocracia/v0.4.0/values.yaml diff --git a/charts/edemocracia/v0.4.0/.helmignore b/charts/edemocracia/v0.4.0/.helmignore old mode 100644 new mode 100755 diff --git a/charts/edemocracia/v0.4.0/Chart.lock b/charts/edemocracia/v0.4.0/Chart.lock old mode 100644 new mode 100755 diff --git a/charts/edemocracia/v0.4.0/Chart.yaml b/charts/edemocracia/v0.4.0/Chart.yaml old mode 100644 new mode 100755 diff --git a/charts/edemocracia/v0.4.0/app-readme.md b/charts/edemocracia/v0.4.0/app-readme.md old mode 100644 new mode 100755 diff --git a/charts/edemocracia/v0.4.0/charts/postgresql-8.6.13.tgz b/charts/edemocracia/v0.4.0/charts/postgresql-8.6.13.tgz old mode 100644 new mode 100755 diff --git a/charts/edemocracia/v0.4.0/charts/redis-10.6.3.tgz b/charts/edemocracia/v0.4.0/charts/redis-10.6.3.tgz old mode 100644 new mode 100755 diff --git a/charts/edemocracia/v0.4.0/questions.yaml b/charts/edemocracia/v0.4.0/questions.yaml old mode 100644 new mode 100755 diff --git a/charts/edemocracia/v0.4.0/templates/NOTES.txt b/charts/edemocracia/v0.4.0/templates/NOTES.txt old mode 100644 new mode 100755 diff --git a/charts/edemocracia/v0.4.0/templates/_helpers.tpl b/charts/edemocracia/v0.4.0/templates/_helpers.tpl old mode 100644 new mode 100755 diff --git a/charts/edemocracia/v0.4.0/templates/audiencias-pvc.yaml b/charts/edemocracia/v0.4.0/templates/audiencias-pvc.yaml old mode 100644 new mode 100755 diff --git a/charts/edemocracia/v0.4.0/templates/audienciasweb-deployment.yaml b/charts/edemocracia/v0.4.0/templates/audienciasweb-deployment.yaml old mode 100644 new mode 100755 diff --git a/charts/edemocracia/v0.4.0/templates/audienciasweb-service.yaml b/charts/edemocracia/v0.4.0/templates/audienciasweb-service.yaml old mode 100644 new mode 100755 diff --git a/charts/edemocracia/v0.4.0/templates/audienciasworker-deployment.yaml b/charts/edemocracia/v0.4.0/templates/audienciasworker-deployment.yaml old mode 100644 new mode 100755 diff --git a/charts/edemocracia/v0.4.0/templates/discourse-deployment.yaml b/charts/edemocracia/v0.4.0/templates/discourse-deployment.yaml old mode 100644 new mode 100755 diff --git a/charts/edemocracia/v0.4.0/templates/discourse-pvc.yaml b/charts/edemocracia/v0.4.0/templates/discourse-pvc.yaml old mode 100644 new mode 100755 diff --git a/charts/edemocracia/v0.4.0/templates/discourse-service.yaml b/charts/edemocracia/v0.4.0/templates/discourse-service.yaml old mode 100644 new mode 100755 diff --git a/charts/edemocracia/v0.4.0/templates/edemocracia-deployment.yaml b/charts/edemocracia/v0.4.0/templates/edemocracia-deployment.yaml old mode 100644 new mode 100755 diff --git a/charts/edemocracia/v0.4.0/templates/edemocracia-pvc.yaml b/charts/edemocracia/v0.4.0/templates/edemocracia-pvc.yaml old mode 100644 new mode 100755 diff --git a/charts/edemocracia/v0.4.0/templates/edemocracia-service.yaml b/charts/edemocracia/v0.4.0/templates/edemocracia-service.yaml old mode 100644 new mode 100755 diff --git a/charts/edemocracia/v0.4.0/templates/ingress.yaml b/charts/edemocracia/v0.4.0/templates/ingress.yaml old mode 100644 new mode 100755 diff --git a/charts/edemocracia/v0.4.0/templates/nginx-deployment.yaml b/charts/edemocracia/v0.4.0/templates/nginx-deployment.yaml old mode 100644 new mode 100755 diff --git a/charts/edemocracia/v0.4.0/templates/nginx-service.yaml b/charts/edemocracia/v0.4.0/templates/nginx-service.yaml old mode 100644 new mode 100755 diff --git a/charts/edemocracia/v0.4.0/templates/wikilegis-deployment.yaml b/charts/edemocracia/v0.4.0/templates/wikilegis-deployment.yaml old mode 100644 new mode 100755 diff --git a/charts/edemocracia/v0.4.0/templates/wikilegis-pvc.yaml b/charts/edemocracia/v0.4.0/templates/wikilegis-pvc.yaml old mode 100644 new mode 100755 diff --git a/charts/edemocracia/v0.4.0/templates/wikilegis-service.yaml b/charts/edemocracia/v0.4.0/templates/wikilegis-service.yaml old mode 100644 new mode 100755 diff --git a/charts/edemocracia/v0.4.0/values.yaml b/charts/edemocracia/v0.4.0/values.yaml old mode 100644 new mode 100755 From 7baca726415aa4d4f8c8bdf3a38e478fbb579729 Mon Sep 17 00:00:00 2001 From: Fabio Rauber Date: Mon, 14 Mar 2022 15:13:39 -0300 Subject: [PATCH 04/20] Add velero configuration --- .../templates/velero-schedule-monthly.yaml | 39 +++++++++++++++++++ .../templates/velero-schedule-weekdays.yaml | 39 +++++++++++++++++++ .../templates/velero-schedule-weekly.yaml | 39 +++++++++++++++++++ charts/edemocracia/v0.4.0/values.yaml | 13 +++++++ 4 files changed, 130 insertions(+) create mode 100755 charts/edemocracia/v0.4.0/templates/velero-schedule-monthly.yaml create mode 100755 charts/edemocracia/v0.4.0/templates/velero-schedule-weekdays.yaml create mode 100755 charts/edemocracia/v0.4.0/templates/velero-schedule-weekly.yaml diff --git a/charts/edemocracia/v0.4.0/templates/velero-schedule-monthly.yaml b/charts/edemocracia/v0.4.0/templates/velero-schedule-monthly.yaml new file mode 100755 index 0000000..04cbc3a --- /dev/null +++ b/charts/edemocracia/v0.4.0/templates/velero-schedule-monthly.yaml @@ -0,0 +1,39 @@ +{{- if .Values.velero.backup.enabled }} +apiVersion: velero.io/v1 +kind: Schedule +metadata: + name: {{ include "edemocracia.fullname" . }}-monthly + namespace: {{ .Values.velero.namespace }} +spec: + # generate a random backup time between 1 and 5 AM on first day of every month + schedule: {{ mod (randNumeric 2) 60 }} {{ mod (randNumeric 1) 6 }} 1 * * + template: + includedNamespaces: + - {{ .Release.Namespace }} + {{- with .Values.velero.backup.excludedResources }} + excludedResources: + {{- toYaml . | nindent 8 }} + {{- end }} + snapshotVolumes: {{ .Values.velero.backup.snapshotVolumes }} + # every weekday backup is good for the next year (365 days) + ttl: 8760h0m0s + defaultVolumesToRestic: {{ .Values.velero.backup.defaultVolumesToRestic }} + hooks: + resources: + - name: pgdump + includedResources: + - pods + labelSelector: + matchLabels: + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/name: postgresql + pre: + - exec: + command: + - "/bin/bash" + - "-c" + - "PGPASSWORD=$POSTGRES_PASSWORD /opt/bitnami/postgresql/bin/pg_dumpall -U postgres > /bitnami/postgresql/all.dump" + timeout: 360s + onError: Continue + useOwnerReferencesInBackup: false +{{- end }} \ No newline at end of file diff --git a/charts/edemocracia/v0.4.0/templates/velero-schedule-weekdays.yaml b/charts/edemocracia/v0.4.0/templates/velero-schedule-weekdays.yaml new file mode 100755 index 0000000..ea53bda --- /dev/null +++ b/charts/edemocracia/v0.4.0/templates/velero-schedule-weekdays.yaml @@ -0,0 +1,39 @@ +{{- if .Values.velero.backup.enabled }} +apiVersion: velero.io/v1 +kind: Schedule +metadata: + name: {{ include "edemocracia.fullname" . }}-weekdays + namespace: {{ .Values.velero.namespace }} +spec: + # generate a random backup time between 1 and 5 AM on weekdays + schedule: {{ mod (randNumeric 2) 60 }} {{ mod (randNumeric 1) 6 }} * * 1-5 + template: + includedNamespaces: + - {{ .Release.Namespace }} + {{- with .Values.velero.backup.excludedResources }} + excludedResources: + {{- toYaml . | nindent 8 }} + {{- end }} + snapshotVolumes: {{ .Values.velero.backup.snapshotVolumes }} + # every weekday backup is good for the next week (7 days) + ttl: 168h0m0s + defaultVolumesToRestic: {{ .Values.velero.backup.defaultVolumesToRestic }} + hooks: + resources: + - name: pgdump + includedResources: + - pods + labelSelector: + matchLabels: + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/name: postgresql + pre: + - exec: + command: + - "/bin/bash" + - "-c" + - "PGPASSWORD=$POSTGRES_PASSWORD /opt/bitnami/postgresql/bin/pg_dumpall -U postgres > /bitnami/postgresql/all.dump" + timeout: 360s + onError: Continue + useOwnerReferencesInBackup: false +{{- end }} \ No newline at end of file diff --git a/charts/edemocracia/v0.4.0/templates/velero-schedule-weekly.yaml b/charts/edemocracia/v0.4.0/templates/velero-schedule-weekly.yaml new file mode 100755 index 0000000..e9a09a3 --- /dev/null +++ b/charts/edemocracia/v0.4.0/templates/velero-schedule-weekly.yaml @@ -0,0 +1,39 @@ +{{- if .Values.velero.backup.enabled }} +apiVersion: velero.io/v1 +kind: Schedule +metadata: + name: {{ include "edemocracia.fullname" . }}-weekly + namespace: {{ .Values.velero.namespace }} +spec: + # generate a random backup time between 1 and 5 AM on sunday + schedule: {{ mod (randNumeric 2) 60 }} {{ mod (randNumeric 1) 6 }} * * 0 + template: + includedNamespaces: + - {{ .Release.Namespace }} + {{- with .Values.velero.backup.excludedResources }} + excludedResources: + {{- toYaml . | nindent 8 }} + {{- end }} + snapshotVolumes: {{ .Values.velero.backup.snapshotVolumes }} + # every sunday backup is good for 30 days (aprox. 1 month) + ttl: 744h0m0s + defaultVolumesToRestic: {{ .Values.velero.backup.defaultVolumesToRestic }} + hooks: + resources: + - name: pgdump + includedResources: + - pods + labelSelector: + matchLabels: + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/name: postgresql + pre: + - exec: + command: + - "/bin/bash" + - "-c" + - "PGPASSWORD=$POSTGRES_PASSWORD /opt/bitnami/postgresql/bin/pg_dumpall -U postgres > /bitnami/postgresql/all.dump" + timeout: 360s + onError: Continue + useOwnerReferencesInBackup: false +{{- end }} \ No newline at end of file diff --git a/charts/edemocracia/v0.4.0/values.yaml b/charts/edemocracia/v0.4.0/values.yaml index 3ebe898..8116426 100755 --- a/charts/edemocracia/v0.4.0/values.yaml +++ b/charts/edemocracia/v0.4.0/values.yaml @@ -186,6 +186,19 @@ ingress: # extra annotations only annotations: {} +velero: + namespace: velero + backup: + enabled: true + snapshotVolumes: false + defaultVolumesToRestic: true + # cert-manager objects are usually blocked during backup + excludedResources: + - certificates.cert-manager.io + - orders.acme.cert-manager.io + - certificaterequests.cert-manager.io + - challenges.acme.cert-manager.io + nodeSelector: {} tolerations: [] From e52792d07bdf659ad72a058e88fe966d14e626f5 Mon Sep 17 00:00:00 2001 From: Fabio Rauber Date: Mon, 14 Mar 2022 15:25:36 -0300 Subject: [PATCH 05/20] Add velero enabled question in rancher edem chart --- charts/edemocracia/v0.4.0/questions.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/charts/edemocracia/v0.4.0/questions.yaml b/charts/edemocracia/v0.4.0/questions.yaml index 4454f72..0ff1578 100755 --- a/charts/edemocracia/v0.4.0/questions.yaml +++ b/charts/edemocracia/v0.4.0/questions.yaml @@ -152,6 +152,14 @@ questions: required: true group: Avançado +- variable: velero.backup.enabled + default: true + type: boolean + label: "Habilitar backup com Velero?" + description: "Criar ou não os objetos para backup com o Velero." + required: false + group: Avançado + - variable: edemocracia.apikey default: "uma_chave_de_api_secreta_mesmo" description: "Chave de API do E-democracia" From db939b25951f3ee6a646b740392cb347718be33b Mon Sep 17 00:00:00 2001 From: Fabio Rauber Date: Mon, 14 Mar 2022 15:33:19 -0300 Subject: [PATCH 06/20] Fix edem legacy chart versions --- charts/edemocracia/v0.1.12/Chart.yaml | 2 +- charts/edemocracia/v0.1.13/Chart.yaml | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/charts/edemocracia/v0.1.12/Chart.yaml b/charts/edemocracia/v0.1.12/Chart.yaml index eb8a73c..d8db2fc 100755 --- a/charts/edemocracia/v0.1.12/Chart.yaml +++ b/charts/edemocracia/v0.1.12/Chart.yaml @@ -14,7 +14,7 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. -version: 0.4.0 +version: 0.1.12 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. diff --git a/charts/edemocracia/v0.1.13/Chart.yaml b/charts/edemocracia/v0.1.13/Chart.yaml index eb8a73c..a9617a9 100755 --- a/charts/edemocracia/v0.1.13/Chart.yaml +++ b/charts/edemocracia/v0.1.13/Chart.yaml @@ -5,7 +5,8 @@ description: Portal que visa ampliar a participação social no processo legisla # A chart can be either an 'application' or a 'library' chart. # # Application charts are a collection of templates that can be packaged into versioned archives -# to be deployed. +# to be deployed.:w + # # Library charts provide useful utilities or functions for the chart developer. They're included as # a dependency of application charts to inject those utilities and functions into the rendering @@ -14,7 +15,7 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. -version: 0.4.0 +version: 0.1.13 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. From 2b0590dda19552c8bdc7f1863ceb457252d6ddf5 Mon Sep 17 00:00:00 2001 From: Fabio Rauber Date: Wed, 16 Mar 2022 08:42:16 -0300 Subject: [PATCH 07/20] Add velero objects to legacy edem versions --- .../templates/velero-schedule-monthly.yaml | 39 +++++++++++++++++++ .../templates/velero-schedule-weekdays.yaml | 39 +++++++++++++++++++ .../templates/velero-schedule-weekly.yaml | 39 +++++++++++++++++++ charts/edemocracia/v0.1.12/values.yaml | 13 +++++++ .../templates/velero-schedule-monthly.yaml | 39 +++++++++++++++++++ .../templates/velero-schedule-weekdays.yaml | 39 +++++++++++++++++++ .../templates/velero-schedule-weekly.yaml | 39 +++++++++++++++++++ charts/edemocracia/v0.1.13/values.yaml | 13 +++++++ 8 files changed, 260 insertions(+) create mode 100755 charts/edemocracia/v0.1.12/templates/velero-schedule-monthly.yaml create mode 100755 charts/edemocracia/v0.1.12/templates/velero-schedule-weekdays.yaml create mode 100755 charts/edemocracia/v0.1.12/templates/velero-schedule-weekly.yaml create mode 100755 charts/edemocracia/v0.1.13/templates/velero-schedule-monthly.yaml create mode 100755 charts/edemocracia/v0.1.13/templates/velero-schedule-weekdays.yaml create mode 100755 charts/edemocracia/v0.1.13/templates/velero-schedule-weekly.yaml diff --git a/charts/edemocracia/v0.1.12/templates/velero-schedule-monthly.yaml b/charts/edemocracia/v0.1.12/templates/velero-schedule-monthly.yaml new file mode 100755 index 0000000..04cbc3a --- /dev/null +++ b/charts/edemocracia/v0.1.12/templates/velero-schedule-monthly.yaml @@ -0,0 +1,39 @@ +{{- if .Values.velero.backup.enabled }} +apiVersion: velero.io/v1 +kind: Schedule +metadata: + name: {{ include "edemocracia.fullname" . }}-monthly + namespace: {{ .Values.velero.namespace }} +spec: + # generate a random backup time between 1 and 5 AM on first day of every month + schedule: {{ mod (randNumeric 2) 60 }} {{ mod (randNumeric 1) 6 }} 1 * * + template: + includedNamespaces: + - {{ .Release.Namespace }} + {{- with .Values.velero.backup.excludedResources }} + excludedResources: + {{- toYaml . | nindent 8 }} + {{- end }} + snapshotVolumes: {{ .Values.velero.backup.snapshotVolumes }} + # every weekday backup is good for the next year (365 days) + ttl: 8760h0m0s + defaultVolumesToRestic: {{ .Values.velero.backup.defaultVolumesToRestic }} + hooks: + resources: + - name: pgdump + includedResources: + - pods + labelSelector: + matchLabels: + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/name: postgresql + pre: + - exec: + command: + - "/bin/bash" + - "-c" + - "PGPASSWORD=$POSTGRES_PASSWORD /opt/bitnami/postgresql/bin/pg_dumpall -U postgres > /bitnami/postgresql/all.dump" + timeout: 360s + onError: Continue + useOwnerReferencesInBackup: false +{{- end }} \ No newline at end of file diff --git a/charts/edemocracia/v0.1.12/templates/velero-schedule-weekdays.yaml b/charts/edemocracia/v0.1.12/templates/velero-schedule-weekdays.yaml new file mode 100755 index 0000000..ea53bda --- /dev/null +++ b/charts/edemocracia/v0.1.12/templates/velero-schedule-weekdays.yaml @@ -0,0 +1,39 @@ +{{- if .Values.velero.backup.enabled }} +apiVersion: velero.io/v1 +kind: Schedule +metadata: + name: {{ include "edemocracia.fullname" . }}-weekdays + namespace: {{ .Values.velero.namespace }} +spec: + # generate a random backup time between 1 and 5 AM on weekdays + schedule: {{ mod (randNumeric 2) 60 }} {{ mod (randNumeric 1) 6 }} * * 1-5 + template: + includedNamespaces: + - {{ .Release.Namespace }} + {{- with .Values.velero.backup.excludedResources }} + excludedResources: + {{- toYaml . | nindent 8 }} + {{- end }} + snapshotVolumes: {{ .Values.velero.backup.snapshotVolumes }} + # every weekday backup is good for the next week (7 days) + ttl: 168h0m0s + defaultVolumesToRestic: {{ .Values.velero.backup.defaultVolumesToRestic }} + hooks: + resources: + - name: pgdump + includedResources: + - pods + labelSelector: + matchLabels: + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/name: postgresql + pre: + - exec: + command: + - "/bin/bash" + - "-c" + - "PGPASSWORD=$POSTGRES_PASSWORD /opt/bitnami/postgresql/bin/pg_dumpall -U postgres > /bitnami/postgresql/all.dump" + timeout: 360s + onError: Continue + useOwnerReferencesInBackup: false +{{- end }} \ No newline at end of file diff --git a/charts/edemocracia/v0.1.12/templates/velero-schedule-weekly.yaml b/charts/edemocracia/v0.1.12/templates/velero-schedule-weekly.yaml new file mode 100755 index 0000000..e9a09a3 --- /dev/null +++ b/charts/edemocracia/v0.1.12/templates/velero-schedule-weekly.yaml @@ -0,0 +1,39 @@ +{{- if .Values.velero.backup.enabled }} +apiVersion: velero.io/v1 +kind: Schedule +metadata: + name: {{ include "edemocracia.fullname" . }}-weekly + namespace: {{ .Values.velero.namespace }} +spec: + # generate a random backup time between 1 and 5 AM on sunday + schedule: {{ mod (randNumeric 2) 60 }} {{ mod (randNumeric 1) 6 }} * * 0 + template: + includedNamespaces: + - {{ .Release.Namespace }} + {{- with .Values.velero.backup.excludedResources }} + excludedResources: + {{- toYaml . | nindent 8 }} + {{- end }} + snapshotVolumes: {{ .Values.velero.backup.snapshotVolumes }} + # every sunday backup is good for 30 days (aprox. 1 month) + ttl: 744h0m0s + defaultVolumesToRestic: {{ .Values.velero.backup.defaultVolumesToRestic }} + hooks: + resources: + - name: pgdump + includedResources: + - pods + labelSelector: + matchLabels: + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/name: postgresql + pre: + - exec: + command: + - "/bin/bash" + - "-c" + - "PGPASSWORD=$POSTGRES_PASSWORD /opt/bitnami/postgresql/bin/pg_dumpall -U postgres > /bitnami/postgresql/all.dump" + timeout: 360s + onError: Continue + useOwnerReferencesInBackup: false +{{- end }} \ No newline at end of file diff --git a/charts/edemocracia/v0.1.12/values.yaml b/charts/edemocracia/v0.1.12/values.yaml index 7e8c1cb..268d428 100755 --- a/charts/edemocracia/v0.1.12/values.yaml +++ b/charts/edemocracia/v0.1.12/values.yaml @@ -186,6 +186,19 @@ ingress: # extra annotations only annotations: {} +velero: + namespace: velero + backup: + enabled: true + snapshotVolumes: false + defaultVolumesToRestic: true + # cert-manager objects are usually blocked during backup + excludedResources: + - certificates.cert-manager.io + - orders.acme.cert-manager.io + - certificaterequests.cert-manager.io + - challenges.acme.cert-manager.io + nodeSelector: {} tolerations: [] diff --git a/charts/edemocracia/v0.1.13/templates/velero-schedule-monthly.yaml b/charts/edemocracia/v0.1.13/templates/velero-schedule-monthly.yaml new file mode 100755 index 0000000..04cbc3a --- /dev/null +++ b/charts/edemocracia/v0.1.13/templates/velero-schedule-monthly.yaml @@ -0,0 +1,39 @@ +{{- if .Values.velero.backup.enabled }} +apiVersion: velero.io/v1 +kind: Schedule +metadata: + name: {{ include "edemocracia.fullname" . }}-monthly + namespace: {{ .Values.velero.namespace }} +spec: + # generate a random backup time between 1 and 5 AM on first day of every month + schedule: {{ mod (randNumeric 2) 60 }} {{ mod (randNumeric 1) 6 }} 1 * * + template: + includedNamespaces: + - {{ .Release.Namespace }} + {{- with .Values.velero.backup.excludedResources }} + excludedResources: + {{- toYaml . | nindent 8 }} + {{- end }} + snapshotVolumes: {{ .Values.velero.backup.snapshotVolumes }} + # every weekday backup is good for the next year (365 days) + ttl: 8760h0m0s + defaultVolumesToRestic: {{ .Values.velero.backup.defaultVolumesToRestic }} + hooks: + resources: + - name: pgdump + includedResources: + - pods + labelSelector: + matchLabels: + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/name: postgresql + pre: + - exec: + command: + - "/bin/bash" + - "-c" + - "PGPASSWORD=$POSTGRES_PASSWORD /opt/bitnami/postgresql/bin/pg_dumpall -U postgres > /bitnami/postgresql/all.dump" + timeout: 360s + onError: Continue + useOwnerReferencesInBackup: false +{{- end }} \ No newline at end of file diff --git a/charts/edemocracia/v0.1.13/templates/velero-schedule-weekdays.yaml b/charts/edemocracia/v0.1.13/templates/velero-schedule-weekdays.yaml new file mode 100755 index 0000000..ea53bda --- /dev/null +++ b/charts/edemocracia/v0.1.13/templates/velero-schedule-weekdays.yaml @@ -0,0 +1,39 @@ +{{- if .Values.velero.backup.enabled }} +apiVersion: velero.io/v1 +kind: Schedule +metadata: + name: {{ include "edemocracia.fullname" . }}-weekdays + namespace: {{ .Values.velero.namespace }} +spec: + # generate a random backup time between 1 and 5 AM on weekdays + schedule: {{ mod (randNumeric 2) 60 }} {{ mod (randNumeric 1) 6 }} * * 1-5 + template: + includedNamespaces: + - {{ .Release.Namespace }} + {{- with .Values.velero.backup.excludedResources }} + excludedResources: + {{- toYaml . | nindent 8 }} + {{- end }} + snapshotVolumes: {{ .Values.velero.backup.snapshotVolumes }} + # every weekday backup is good for the next week (7 days) + ttl: 168h0m0s + defaultVolumesToRestic: {{ .Values.velero.backup.defaultVolumesToRestic }} + hooks: + resources: + - name: pgdump + includedResources: + - pods + labelSelector: + matchLabels: + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/name: postgresql + pre: + - exec: + command: + - "/bin/bash" + - "-c" + - "PGPASSWORD=$POSTGRES_PASSWORD /opt/bitnami/postgresql/bin/pg_dumpall -U postgres > /bitnami/postgresql/all.dump" + timeout: 360s + onError: Continue + useOwnerReferencesInBackup: false +{{- end }} \ No newline at end of file diff --git a/charts/edemocracia/v0.1.13/templates/velero-schedule-weekly.yaml b/charts/edemocracia/v0.1.13/templates/velero-schedule-weekly.yaml new file mode 100755 index 0000000..e9a09a3 --- /dev/null +++ b/charts/edemocracia/v0.1.13/templates/velero-schedule-weekly.yaml @@ -0,0 +1,39 @@ +{{- if .Values.velero.backup.enabled }} +apiVersion: velero.io/v1 +kind: Schedule +metadata: + name: {{ include "edemocracia.fullname" . }}-weekly + namespace: {{ .Values.velero.namespace }} +spec: + # generate a random backup time between 1 and 5 AM on sunday + schedule: {{ mod (randNumeric 2) 60 }} {{ mod (randNumeric 1) 6 }} * * 0 + template: + includedNamespaces: + - {{ .Release.Namespace }} + {{- with .Values.velero.backup.excludedResources }} + excludedResources: + {{- toYaml . | nindent 8 }} + {{- end }} + snapshotVolumes: {{ .Values.velero.backup.snapshotVolumes }} + # every sunday backup is good for 30 days (aprox. 1 month) + ttl: 744h0m0s + defaultVolumesToRestic: {{ .Values.velero.backup.defaultVolumesToRestic }} + hooks: + resources: + - name: pgdump + includedResources: + - pods + labelSelector: + matchLabels: + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/name: postgresql + pre: + - exec: + command: + - "/bin/bash" + - "-c" + - "PGPASSWORD=$POSTGRES_PASSWORD /opt/bitnami/postgresql/bin/pg_dumpall -U postgres > /bitnami/postgresql/all.dump" + timeout: 360s + onError: Continue + useOwnerReferencesInBackup: false +{{- end }} \ No newline at end of file diff --git a/charts/edemocracia/v0.1.13/values.yaml b/charts/edemocracia/v0.1.13/values.yaml index 5208076..584fdc1 100755 --- a/charts/edemocracia/v0.1.13/values.yaml +++ b/charts/edemocracia/v0.1.13/values.yaml @@ -186,6 +186,19 @@ ingress: # extra annotations only annotations: {} +velero: + namespace: velero + backup: + enabled: true + snapshotVolumes: false + defaultVolumesToRestic: true + # cert-manager objects are usually blocked during backup + excludedResources: + - certificates.cert-manager.io + - orders.acme.cert-manager.io + - certificaterequests.cert-manager.io + - challenges.acme.cert-manager.io + nodeSelector: {} tolerations: [] From 5c25a87cf8615c71b12b34f67954b10a478841b4 Mon Sep 17 00:00:00 2001 From: Fabio Rauber Date: Thu, 31 Mar 2022 11:04:29 -0300 Subject: [PATCH 08/20] Added osticket chart --- charts/osticket/v0.2.0/.helmignore | 22 ++++ charts/osticket/v0.2.0/Chart.yaml | 6 ++ charts/osticket/v0.2.0/README.md | 24 +++++ .../v0.2.0/charts/memcached-2.9.0.tgz | Bin 0 -> 4418 bytes charts/osticket/v0.2.0/charts/mysql-1.3.1.tgz | Bin 0 -> 10583 bytes charts/osticket/v0.2.0/requirements.lock | 9 ++ charts/osticket/v0.2.0/requirements.yaml | 9 ++ charts/osticket/v0.2.0/templates/_helpers.tpl | 45 ++++++++ .../osticket/v0.2.0/templates/deployment.yaml | 97 ++++++++++++++++++ charts/osticket/v0.2.0/templates/ingress.yaml | 35 +++++++ charts/osticket/v0.2.0/templates/service.yaml | 16 +++ .../templates/tests/test-connection.yaml | 15 +++ charts/osticket/v0.2.0/values.yaml | 79 ++++++++++++++ 13 files changed, 357 insertions(+) create mode 100644 charts/osticket/v0.2.0/.helmignore create mode 100644 charts/osticket/v0.2.0/Chart.yaml create mode 100644 charts/osticket/v0.2.0/README.md create mode 100644 charts/osticket/v0.2.0/charts/memcached-2.9.0.tgz create mode 100644 charts/osticket/v0.2.0/charts/mysql-1.3.1.tgz create mode 100644 charts/osticket/v0.2.0/requirements.lock create mode 100644 charts/osticket/v0.2.0/requirements.yaml create mode 100644 charts/osticket/v0.2.0/templates/_helpers.tpl create mode 100644 charts/osticket/v0.2.0/templates/deployment.yaml create mode 100644 charts/osticket/v0.2.0/templates/ingress.yaml create mode 100644 charts/osticket/v0.2.0/templates/service.yaml create mode 100644 charts/osticket/v0.2.0/templates/tests/test-connection.yaml create mode 100644 charts/osticket/v0.2.0/values.yaml diff --git a/charts/osticket/v0.2.0/.helmignore b/charts/osticket/v0.2.0/.helmignore new file mode 100644 index 0000000..50af031 --- /dev/null +++ b/charts/osticket/v0.2.0/.helmignore @@ -0,0 +1,22 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/charts/osticket/v0.2.0/Chart.yaml b/charts/osticket/v0.2.0/Chart.yaml new file mode 100644 index 0000000..84d183b --- /dev/null +++ b/charts/osticket/v0.2.0/Chart.yaml @@ -0,0 +1,6 @@ +apiVersion: v1 +appVersion: "1.12.2" +description: OSTicket Open Source Ticket System +name: osticket +icon: https://osticket.com/wp-content/uploads/2017/03/osticket-supsys.png +version: 0.2.0 diff --git a/charts/osticket/v0.2.0/README.md b/charts/osticket/v0.2.0/README.md new file mode 100644 index 0000000..20090a1 --- /dev/null +++ b/charts/osticket/v0.2.0/README.md @@ -0,0 +1,24 @@ +# OSTicket support ticket system Helm chart + +This is a Helm chart to install OSTicket with MySQL as database and memcached as session storage. +Requirements: + + - Default persistent storage class (StorageClass) + - Ingress Controller (ex: nginx) + +## Parameters and default values + +| Parametro | Description | Default | +|---------------------------|--------------------------------------------|--------------------------| +| image.repository | Repository of docker image | `interlegis/osticket` | +| image.tag | Docker image version | `1.12.2` | +| image.pullPolicy | Docker image Pull Policy | `IfNotPresent` | +| replicaCount | Number of OSTicket replicas | `1` | +| persistence.enabled | Enable persistent volumes | `true` | +| persistence.storageClass | Persistent volume storage class | `` | +| persistence.accessMode | Persistent volume acces mode | `ReadWriteOnce` | +| persistence.size | Persistent volume size | `10Gi ` | +| installSecret | OSTicket install secret | `` | +| mysql.mysqlDatabase | OSTicket database name | `osticket` | +| mysql.mysqlUser | OSTicket database user name | `osticket` | +| mysql.mysqlPassword | OSTicket database user password | `mysecretpw` | diff --git a/charts/osticket/v0.2.0/charts/memcached-2.9.0.tgz b/charts/osticket/v0.2.0/charts/memcached-2.9.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..fd73721899b9567b3645bd79fb732430f1901fb8 GIT binary patch literal 4418 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 I+yGht08e7P4*&oF literal 0 HcmV?d00001 diff --git a/charts/osticket/v0.2.0/charts/mysql-1.3.1.tgz b/charts/osticket/v0.2.0/charts/mysql-1.3.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..fa16b6e00950df7acb495ac27bb18635598e42e2 GIT binary patch literal 10583 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 Date: Fri, 1 Apr 2022 10:53:58 -0300 Subject: [PATCH 09/20] Changed default osticket version --- charts/osticket/v0.2.0/values.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/charts/osticket/v0.2.0/values.yaml b/charts/osticket/v0.2.0/values.yaml index dfe89c5..978a698 100644 --- a/charts/osticket/v0.2.0/values.yaml +++ b/charts/osticket/v0.2.0/values.yaml @@ -6,7 +6,7 @@ replicaCount: 1 image: repository: interlegis/osticket - tag: 1.12.2 + tag: 1.14.1 pullPolicy: IfNotPresent imagePullSecrets: [] From d51d16914314801bd0808378a6983128e37f6a60 Mon Sep 17 00:00:00 2001 From: Fabio Rauber Date: Fri, 1 Apr 2022 10:56:28 -0300 Subject: [PATCH 10/20] Changed default icon and appVersion --- charts/osticket/v0.2.0/Chart.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/charts/osticket/v0.2.0/Chart.yaml b/charts/osticket/v0.2.0/Chart.yaml index 84d183b..2041dd5 100644 --- a/charts/osticket/v0.2.0/Chart.yaml +++ b/charts/osticket/v0.2.0/Chart.yaml @@ -1,6 +1,6 @@ apiVersion: v1 -appVersion: "1.12.2" +appVersion: "1.14.1" description: OSTicket Open Source Ticket System name: osticket -icon: https://osticket.com/wp-content/uploads/2017/03/osticket-supsys.png -version: 0.2.0 +icon: https://osticket.com/wp-content/uploads/2021/03/osticket-supsys-new-1-e1616621912452.png +version: 0.2.0 \ No newline at end of file From e5c843983cba9e8494f710ad18e107333a35873b Mon Sep 17 00:00:00 2001 From: Fabio Rauber Date: Fri, 1 Apr 2022 11:44:35 -0300 Subject: [PATCH 11/20] Updated obsolete charts --- charts/osticket/v0.2.0/Chart.lock | 9 +++++++++ charts/osticket/v0.2.0/Chart.yaml | 14 ++++++++++++-- .../osticket/v0.2.0/charts/mariadb-10.4.4.tgz | Bin 0 -> 46218 bytes .../osticket/v0.2.0/charts/memcached-2.9.0.tgz | Bin 4418 -> 0 bytes .../osticket/v0.2.0/charts/memcached-6.0.10.tgz | Bin 0 -> 33535 bytes charts/osticket/v0.2.0/charts/mysql-1.3.1.tgz | Bin 10583 -> 0 bytes charts/osticket/v0.2.0/requirements.lock | 9 --------- charts/osticket/v0.2.0/requirements.yaml | 9 --------- 8 files changed, 21 insertions(+), 20 deletions(-) create mode 100644 charts/osticket/v0.2.0/Chart.lock create mode 100644 charts/osticket/v0.2.0/charts/mariadb-10.4.4.tgz delete mode 100644 charts/osticket/v0.2.0/charts/memcached-2.9.0.tgz create mode 100644 charts/osticket/v0.2.0/charts/memcached-6.0.10.tgz delete mode 100644 charts/osticket/v0.2.0/charts/mysql-1.3.1.tgz delete mode 100644 charts/osticket/v0.2.0/requirements.lock delete mode 100644 charts/osticket/v0.2.0/requirements.yaml diff --git a/charts/osticket/v0.2.0/Chart.lock b/charts/osticket/v0.2.0/Chart.lock new file mode 100644 index 0000000..54435c9 --- /dev/null +++ b/charts/osticket/v0.2.0/Chart.lock @@ -0,0 +1,9 @@ +dependencies: +- name: mariadb + repository: https://charts.bitnami.com/bitnami + version: 10.4.4 +- name: memcached + repository: https://charts.bitnami.com/bitnami + version: 6.0.10 +digest: sha256:82bd28a75702fa0313d8aedd8686527365365c914f2a5776e722da436e45135c +generated: "2022-04-01T11:42:33.634085-03:00" diff --git a/charts/osticket/v0.2.0/Chart.yaml b/charts/osticket/v0.2.0/Chart.yaml index 2041dd5..6b1ec6d 100644 --- a/charts/osticket/v0.2.0/Chart.yaml +++ b/charts/osticket/v0.2.0/Chart.yaml @@ -1,6 +1,16 @@ -apiVersion: v1 +apiVersion: v2 appVersion: "1.14.1" description: OSTicket Open Source Ticket System name: osticket icon: https://osticket.com/wp-content/uploads/2021/03/osticket-supsys-new-1-e1616621912452.png -version: 0.2.0 \ No newline at end of file +version: 0.2.0 + +dependencies: +- name: mariadb + version: 10.4.4 + repository: https://charts.bitnami.com/bitnami + condition: mariadb.internal +- name: memcached + version: 6.0.10 + repository: https://charts.bitnami.com/bitnami + condition: memcached.internal \ No newline at end of file diff --git a/charts/osticket/v0.2.0/charts/mariadb-10.4.4.tgz b/charts/osticket/v0.2.0/charts/mariadb-10.4.4.tgz new file mode 100644 index 0000000000000000000000000000000000000000..8a7c5f465cb47ad1054658fe5b62b76432e57d26 GIT binary patch literal 46218 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 T0OHp#0Kk1{CiK@i=&%0)c8%K7 literal 0 HcmV?d00001 diff --git a/charts/osticket/v0.2.0/charts/memcached-2.9.0.tgz b/charts/osticket/v0.2.0/charts/memcached-2.9.0.tgz deleted file mode 100644 index fd73721899b9567b3645bd79fb732430f1901fb8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4418 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 I+yGht08e7P4*&oF diff --git a/charts/osticket/v0.2.0/charts/memcached-6.0.10.tgz b/charts/osticket/v0.2.0/charts/memcached-6.0.10.tgz new file mode 100644 index 0000000000000000000000000000000000000000..5e5e11a00d0bb65a74ec88a2d88150f380cff415 GIT binary patch literal 33535 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 literal 0 HcmV?d00001 diff --git a/charts/osticket/v0.2.0/charts/mysql-1.3.1.tgz b/charts/osticket/v0.2.0/charts/mysql-1.3.1.tgz deleted file mode 100644 index fa16b6e00950df7acb495ac27bb18635598e42e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10583 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 Date: Fri, 1 Apr 2022 14:14:12 -0300 Subject: [PATCH 12/20] Use mariadb instead of mysql --- charts/osticket/v0.2.0/README.md | 8 ++-- .../osticket/v0.2.0/templates/deployment.yaml | 8 ++-- charts/osticket/v0.2.0/values.yaml | 38 +++++++++++-------- 3 files changed, 31 insertions(+), 23 deletions(-) diff --git a/charts/osticket/v0.2.0/README.md b/charts/osticket/v0.2.0/README.md index 20090a1..2748724 100644 --- a/charts/osticket/v0.2.0/README.md +++ b/charts/osticket/v0.2.0/README.md @@ -11,7 +11,7 @@ Requirements: | Parametro | Description | Default | |---------------------------|--------------------------------------------|--------------------------| | image.repository | Repository of docker image | `interlegis/osticket` | -| image.tag | Docker image version | `1.12.2` | +| image.tag | Docker image version | `1.14.1` | | image.pullPolicy | Docker image Pull Policy | `IfNotPresent` | | replicaCount | Number of OSTicket replicas | `1` | | persistence.enabled | Enable persistent volumes | `true` | @@ -19,6 +19,6 @@ Requirements: | persistence.accessMode | Persistent volume acces mode | `ReadWriteOnce` | | persistence.size | Persistent volume size | `10Gi ` | | installSecret | OSTicket install secret | `` | -| mysql.mysqlDatabase | OSTicket database name | `osticket` | -| mysql.mysqlUser | OSTicket database user name | `osticket` | -| mysql.mysqlPassword | OSTicket database user password | `mysecretpw` | +| mariadb.auth.database | OSTicket database name | `osticket` | +| mariadb.auth.username | OSTicket database user name | `osticket` | +| mariadb.auth.password | OSTicket database user password | `mysecretpw` | diff --git a/charts/osticket/v0.2.0/templates/deployment.yaml b/charts/osticket/v0.2.0/templates/deployment.yaml index d4ff3ce..6ad39dd 100644 --- a/charts/osticket/v0.2.0/templates/deployment.yaml +++ b/charts/osticket/v0.2.0/templates/deployment.yaml @@ -28,9 +28,9 @@ spec: - name: INSTALL_SECRET value: "{{ .Values.installSecret }}" - name: MYSQL_HOST - value: "{{ include "osticket.name" . }}-mysql" + value: "{{ include "osticket.name" . }}-mariadb" - name: MYSQL_PASSWORD - value: "{{ .Values.mysql.mysqlPassword }}" + value: "{{ .Values.mariadb.auth.password }}" - name: USE_MEMCACHE value: "true" - name: MEMCACHE_NAME @@ -50,9 +50,9 @@ spec: - name: INSTALL_SECRET value: "{{ .Values.installSecret }}" - name: MYSQL_HOST - value: "{{ include "osticket.name" . }}-mysql" + value: "{{ include "osticket.name" . }}-mariadb" - name: MYSQL_PASSWORD - value: "{{ .Values.mysql.mysqlPassword }}" + value: "{{ .Values.mariadb.auth.password }}" - name: USE_MEMCACHE value: "true" - name: MEMCACHE_NAME diff --git a/charts/osticket/v0.2.0/values.yaml b/charts/osticket/v0.2.0/values.yaml index 978a698..b76abab 100644 --- a/charts/osticket/v0.2.0/values.yaml +++ b/charts/osticket/v0.2.0/values.yaml @@ -51,26 +51,34 @@ resources: cpu: 100m memory: 128Mi -mysql: +mariadb: internal: true - image: mysql - imageTag: 5.7.14 - mysqlDatabase: osticket - mysqlUser: osticket - mysqlPassword: mysecretpw - persistence: - enabled: true - resources: - requests: - memory: 700Mi - cpu: 100m + image: + tag: 10.5.13-debian-10-r58 + architecture: standalone + auth: + database: osticket + username: osticket + password: mysecretpw + primary: + persistence: + enabled: true + accessModes: + - ReadWriteOnce + size: 20Gi + resources: + requests: + memory: 700Mi + cpu: 100m memcached: internal: true - image: memcached:1.5.12-alpine + image: + tag: 1.6.13-debian-10-r0 + architecture: standalone replicaCount: 1 - pdbMinAvailable: 1 - + pdb: + minAvailable: 1 nodeSelector: {} From 8caee8615c0d002f35ba8404df907476cad925a3 Mon Sep 17 00:00:00 2001 From: Fabio Rauber Date: Mon, 4 Apr 2022 11:05:39 -0300 Subject: [PATCH 13/20] Add velero backup support to osticket --- .../templates/velero-schedule-weekdays.yaml | 39 +++++++++++++++++++ charts/osticket/v0.2.0/values.yaml | 13 +++++++ 2 files changed, 52 insertions(+) create mode 100644 charts/osticket/v0.2.0/templates/velero-schedule-weekdays.yaml diff --git a/charts/osticket/v0.2.0/templates/velero-schedule-weekdays.yaml b/charts/osticket/v0.2.0/templates/velero-schedule-weekdays.yaml new file mode 100644 index 0000000..84bc547 --- /dev/null +++ b/charts/osticket/v0.2.0/templates/velero-schedule-weekdays.yaml @@ -0,0 +1,39 @@ +{{- if .Values.velero.backup.enabled }} +apiVersion: velero.io/v1 +kind: Schedule +metadata: + name: {{ include "osticket.fullname" . }}-weekdays + namespace: {{ .Values.velero.namespace }} +spec: + # generate a random backup time between 1 and 5 AM on weekdays + schedule: {{ mod (randNumeric 2) 60 }} {{ mod (randNumeric 1) 6 }} * * 1-5 + template: + includedNamespaces: + - {{ .Release.Namespace }} + {{- with .Values.velero.backup.excludedResources }} + excludedResources: + {{- toYaml . | nindent 8 }} + {{- end }} + snapshotVolumes: {{ .Values.velero.backup.snapshotVolumes }} + # every weekday backup is good for the next week (7 days) + ttl: 168h0m0s + defaultVolumesToRestic: {{ .Values.velero.backup.defaultVolumesToRestic }} + hooks: + resources: + - name: mysqldump + includedResources: + - pods + labelSelector: + matchLabels: + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/name: mariadb + pre: + - exec: + command: + - "/bin/bash" + - "-c" + - "/opt/bitnami/mariadb/bin/mysqldump osticket -u osticket -p$MARIADB_PASSWORD > /bitnami/mariadb/osticket.dump" + timeout: 360s + onError: Continue + useOwnerReferencesInBackup: false +{{- end }} \ No newline at end of file diff --git a/charts/osticket/v0.2.0/values.yaml b/charts/osticket/v0.2.0/values.yaml index b76abab..1be17d7 100644 --- a/charts/osticket/v0.2.0/values.yaml +++ b/charts/osticket/v0.2.0/values.yaml @@ -21,6 +21,19 @@ persistence: accessMode: ReadWriteOnce size: 10Gi +velero: + namespace: velero + backup: + enabled: true + snapshotVolumes: false + defaultVolumesToRestic: true + # cert-manager objects are usually blocked during backup + excludedResources: + - certificates.cert-manager.io + - orders.acme.cert-manager.io + - certificaterequests.cert-manager.io + - challenges.acme.cert-manager.io + service: type: ClusterIP port: 80 From 14ab11b20ec4ba5e4635addc25448b075605af5f Mon Sep 17 00:00:00 2001 From: Fabio Rauber Date: Mon, 4 Apr 2022 11:25:50 -0300 Subject: [PATCH 14/20] Add velero backup support to pdnsadmin --- .../templates/velero-schedule-weekdays.yaml | 39 +++++++++++++++++++ charts/pdnsadmin/v0.1.0/values.yaml | 15 ++++++- 2 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 charts/pdnsadmin/v0.1.0/templates/velero-schedule-weekdays.yaml diff --git a/charts/pdnsadmin/v0.1.0/templates/velero-schedule-weekdays.yaml b/charts/pdnsadmin/v0.1.0/templates/velero-schedule-weekdays.yaml new file mode 100644 index 0000000..7be5938 --- /dev/null +++ b/charts/pdnsadmin/v0.1.0/templates/velero-schedule-weekdays.yaml @@ -0,0 +1,39 @@ +{{- if .Values.velero.backup.enabled }} +apiVersion: velero.io/v1 +kind: Schedule +metadata: + name: {{ include "pdnsadmin.fullname" . }}-weekdays + namespace: {{ .Values.velero.namespace }} +spec: + # generate a random backup time between 1 and 5 AM on weekdays + schedule: {{ mod (randNumeric 2) 60 }} {{ mod (randNumeric 1) 6 }} * * 1-5 + template: + includedNamespaces: + - {{ .Release.Namespace }} + {{- with .Values.velero.backup.excludedResources }} + excludedResources: + {{- toYaml . | nindent 8 }} + {{- end }} + snapshotVolumes: {{ .Values.velero.backup.snapshotVolumes }} + # every weekday backup is good for the next week (7 days) + ttl: 168h0m0s + defaultVolumesToRestic: {{ .Values.velero.backup.defaultVolumesToRestic }} + hooks: + resources: + - name: mysqldump + includedResources: + - pods + labelSelector: + matchLabels: + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/name: mariadb + pre: + - exec: + command: + - "/bin/bash" + - "-c" + - "/opt/bitnami/mariadb/bin/mysqldump {{ .Values.mariadb.auth.database }} -u {{ .Values.mariadb.auth.username }} -p$MARIADB_PASSWORD > /bitnami/mariadb/{{ .Values.mariadb.auth.database }}.dump" + timeout: 360s + onError: Continue + useOwnerReferencesInBackup: false +{{- end }} \ No newline at end of file diff --git a/charts/pdnsadmin/v0.1.0/values.yaml b/charts/pdnsadmin/v0.1.0/values.yaml index d770a0c..5e3f5d7 100644 --- a/charts/pdnsadmin/v0.1.0/values.yaml +++ b/charts/pdnsadmin/v0.1.0/values.yaml @@ -87,4 +87,17 @@ mariadb: database: pdnsadmin password: pdnsadminpw rootPassword: pdnsadminrootpw - username: pdnsadmin \ No newline at end of file + username: pdnsadmin + +velero: + namespace: velero + backup: + enabled: true + snapshotVolumes: false + defaultVolumesToRestic: true + # cert-manager objects are usually blocked during backup + excludedResources: + - certificates.cert-manager.io + - orders.acme.cert-manager.io + - certificaterequests.cert-manager.io + - challenges.acme.cert-manager.io \ No newline at end of file From 7a10655fe589b07a141d01a49eebf411a1278e85 Mon Sep 17 00:00:00 2001 From: Fabio Rauber Date: Tue, 12 Apr 2022 15:20:25 -0300 Subject: [PATCH 15/20] Add real velero backup support --- charts/portalmodelo/v0.5.0/questions.yaml | 10 ++++++++-- .../v0.5.0/templates/repozo-configmap.yaml | 6 +++++- .../templates/velero-schedule-monthly.yaml | 19 +++++++++++++++++++ .../templates/velero-schedule-weekdays.yaml | 19 +++++++++++++++++++ .../templates/velero-schedule-weekly.yaml | 19 +++++++++++++++++++ .../templates/zeoserver-deployment.yaml | 10 ++++++++++ charts/portalmodelo/v0.5.0/values.yaml | 2 ++ 7 files changed, 82 insertions(+), 3 deletions(-) diff --git a/charts/portalmodelo/v0.5.0/questions.yaml b/charts/portalmodelo/v0.5.0/questions.yaml index 9a68d44..5607751 100644 --- a/charts/portalmodelo/v0.5.0/questions.yaml +++ b/charts/portalmodelo/v0.5.0/questions.yaml @@ -125,14 +125,14 @@ questions: description: "Espaço em disco disponível para o portal." group: Armazenamento - variable: velero.backup.enabled - default: false + default: true type: boolean label: "Habilitar backup com Velero?" description: "Criar ou não os objetos para backup com o Velero." required: false group: Armazenamento - variable: repozo.enabled - default: true + default: false type: boolean label: "Habilitar backup com Repozo?" description: "Habilitar ou não backup com repozo em volumes NFS." @@ -158,6 +158,12 @@ questions: label: "Número de dias de backups de blobs a guardar." description: "Recomendado utilizar a fórmula 'keep * days_between_zeopack = keep_blob_days'." required: false + - variable: repozo.backupblobs + default: false + type: boolean + label: "Backup Blobs" + description: "Fazer ou não o backup dos blobs com o repozo." + required: false # Configurações Avançadas - variable: portal.timeZone diff --git a/charts/portalmodelo/v0.5.0/templates/repozo-configmap.yaml b/charts/portalmodelo/v0.5.0/templates/repozo-configmap.yaml index 73944b2..8995fbe 100644 --- a/charts/portalmodelo/v0.5.0/templates/repozo-configmap.yaml +++ b/charts/portalmodelo/v0.5.0/templates/repozo-configmap.yaml @@ -1,4 +1,4 @@ -{{- if and .Values.persistence.enabled .Values.repozo.enabled }} +{{- if and .Values.persistence.enabled (or .Values.repozo.enabled .Values.velero.backup.enabled )}} apiVersion: v1 kind: ConfigMap metadata: @@ -51,7 +51,11 @@ data: verbose=False, gzip=True, only_blobs=False, + {{- if .Values.repozo.backupblobs }} backup_blobs=True, + {{- else }} + backup_blobs=False, + {{- end }} use_rsync=True, gzip_blob=False, pre_command='', diff --git a/charts/portalmodelo/v0.5.0/templates/velero-schedule-monthly.yaml b/charts/portalmodelo/v0.5.0/templates/velero-schedule-monthly.yaml index e37a400..efe2b20 100644 --- a/charts/portalmodelo/v0.5.0/templates/velero-schedule-monthly.yaml +++ b/charts/portalmodelo/v0.5.0/templates/velero-schedule-monthly.yaml @@ -17,5 +17,24 @@ spec: snapshotVolumes: {{ .Values.velero.backup.snapshotVolumes }} # every weekday backup is good for the next year (365 days) ttl: 8760h0m0s + defaultVolumesToRestic: {{ .Values.velero.backup.defaultVolumesToRestic }} + hooks: + resources: + - name: repozo + includedResources: + - pods + labelSelector: + matchLabels: + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/name: portalmodelo + app.kubernetes.io/component: zeoserver + pre: + - exec: + command: + - "/bin/bash" + - "-c" + - "/plone/Python-2.7/bin/python /plone/instance/bin/backup" + timeout: 3600s + onError: Continue useOwnerReferencesInBackup: false {{- end }} \ No newline at end of file diff --git a/charts/portalmodelo/v0.5.0/templates/velero-schedule-weekdays.yaml b/charts/portalmodelo/v0.5.0/templates/velero-schedule-weekdays.yaml index 43171f4..2816c3a 100644 --- a/charts/portalmodelo/v0.5.0/templates/velero-schedule-weekdays.yaml +++ b/charts/portalmodelo/v0.5.0/templates/velero-schedule-weekdays.yaml @@ -17,5 +17,24 @@ spec: snapshotVolumes: {{ .Values.velero.backup.snapshotVolumes }} # every weekday backup is good for the next week (7 days) ttl: 168h0m0s + defaultVolumesToRestic: {{ .Values.velero.backup.defaultVolumesToRestic }} + hooks: + resources: + - name: repozo + includedResources: + - pods + labelSelector: + matchLabels: + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/name: portalmodelo + app.kubernetes.io/component: zeoserver + pre: + - exec: + command: + - "/bin/bash" + - "-c" + - "/plone/Python-2.7/bin/python /plone/instance/bin/backup" + timeout: 3600s + onError: Continue useOwnerReferencesInBackup: false {{- end }} \ No newline at end of file diff --git a/charts/portalmodelo/v0.5.0/templates/velero-schedule-weekly.yaml b/charts/portalmodelo/v0.5.0/templates/velero-schedule-weekly.yaml index 3c6bbe1..6ba21ae 100644 --- a/charts/portalmodelo/v0.5.0/templates/velero-schedule-weekly.yaml +++ b/charts/portalmodelo/v0.5.0/templates/velero-schedule-weekly.yaml @@ -17,5 +17,24 @@ spec: snapshotVolumes: {{ .Values.velero.backup.snapshotVolumes }} # every sunday backup is good for 30 days (aprox. 1 month) ttl: 744h0m0s + defaultVolumesToRestic: {{ .Values.velero.backup.defaultVolumesToRestic }} + hooks: + resources: + - name: repozo + includedResources: + - pods + labelSelector: + matchLabels: + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/name: portalmodelo + app.kubernetes.io/component: zeoserver + pre: + - exec: + command: + - "/bin/bash" + - "-c" + - "/plone/Python-2.7/bin/python /plone/instance/bin/backup" + timeout: 3600s + onError: Continue useOwnerReferencesInBackup: false {{- end }} \ No newline at end of file diff --git a/charts/portalmodelo/v0.5.0/templates/zeoserver-deployment.yaml b/charts/portalmodelo/v0.5.0/templates/zeoserver-deployment.yaml index 2ce452b..18d4373 100644 --- a/charts/portalmodelo/v0.5.0/templates/zeoserver-deployment.yaml +++ b/charts/portalmodelo/v0.5.0/templates/zeoserver-deployment.yaml @@ -79,6 +79,11 @@ spec: volumeMounts: - mountPath: /data name: data + {{- if .Values.velero.backup.enabled }} + - mountPath: /plone/instance/bin/backup + subPath: backup + name: backupscript + {{- end }} livenessProbe: tcpSocket: port: 8100 @@ -106,6 +111,11 @@ spec: {{- else }} emptyDir: {} {{- end }} + {{- if .Values.velero.backup.enabled }} + - name: backupscript + configMap: + name: {{ include "portalmodelo.fullname" . }}-backupscript + {{- end }} {{- with .Values.nodeSelector }} nodeSelector: {{- toYaml . | nindent 8 }} diff --git a/charts/portalmodelo/v0.5.0/values.yaml b/charts/portalmodelo/v0.5.0/values.yaml index fcd3198..748aede 100644 --- a/charts/portalmodelo/v0.5.0/values.yaml +++ b/charts/portalmodelo/v0.5.0/values.yaml @@ -25,6 +25,7 @@ velero: backup: enabled: false snapshotVolumes: true + defaultVolumesToRestic: true # cert-manager objects are usually blocked during backup excludedResources: - certificates.cert-manager.io @@ -58,6 +59,7 @@ repozo: storageClass: nfs-backup keep: 1 keepblobdays: 30 + backupblobs: true podAnnotations: {} From 2d7efa822e0b9bbff90c7bdbef89a9c413f5cbde Mon Sep 17 00:00:00 2001 From: Fabio Rauber Date: Wed, 13 Apr 2022 09:08:26 -0300 Subject: [PATCH 16/20] Default velero snapshotVolumes to false --- charts/portalmodelo/v0.5.0/values.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/charts/portalmodelo/v0.5.0/values.yaml b/charts/portalmodelo/v0.5.0/values.yaml index 748aede..cce3dd0 100644 --- a/charts/portalmodelo/v0.5.0/values.yaml +++ b/charts/portalmodelo/v0.5.0/values.yaml @@ -24,7 +24,7 @@ velero: namespace: velero backup: enabled: false - snapshotVolumes: true + snapshotVolumes: false defaultVolumesToRestic: true # cert-manager objects are usually blocked during backup excludedResources: From 045962725bd66e83ff0f88323fa9b5c95560788d Mon Sep 17 00:00:00 2001 From: Fabio Rauber Date: Wed, 13 Apr 2022 09:33:24 -0300 Subject: [PATCH 17/20] Fix issue with repozo backup location for velero --- .../v0.5.0/templates/repozo-configmap.yaml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/charts/portalmodelo/v0.5.0/templates/repozo-configmap.yaml b/charts/portalmodelo/v0.5.0/templates/repozo-configmap.yaml index 8995fbe..aacde4f 100644 --- a/charts/portalmodelo/v0.5.0/templates/repozo-configmap.yaml +++ b/charts/portalmodelo/v0.5.0/templates/repozo-configmap.yaml @@ -35,15 +35,17 @@ data: import collective.recipe.backup.main + {{- $bkpLocation := .Values.velero.backup.enabled | ternary "/data" "/backup" -}} + if __name__ == '__main__': sys.exit(collective.recipe.backup.main.backup_main( bin_dir='/plone/instance/bin', - storages=[{'backup_location': '/backup/backups', - 'blob_backup_location': '/backup/blobstoragebackups', - 'blob_snapshot_location': '/backup/blobstoragesnapshots', + storages=[{'backup_location': '{{ $bkpLocation }}/backups', + 'blob_backup_location': '{{ $bkpLocation }}/blobstoragebackups', + 'blob_snapshot_location': '{{ $bkpLocation }}/blobstoragesnapshots', 'blobdir': '/data/blobstorage', 'datafs': '/data/filestorage/Data.fs', - 'snapshot_location': '/backup/snapshotbackups', + 'snapshot_location': '{{ $bkpLocation }}/snapshotbackups', 'storage': '1'}], keep={{ .Values.repozo.keep }}, keep_blob_days={{ .Values.repozo.keepblobdays }}, From 323cde179f742a875d289a48bf475626446312ee Mon Sep 17 00:00:00 2001 From: Fabio Rauber Date: Wed, 13 Apr 2022 09:48:49 -0300 Subject: [PATCH 18/20] Fix backup script formatting issue --- charts/portalmodelo/v0.5.0/templates/repozo-configmap.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/charts/portalmodelo/v0.5.0/templates/repozo-configmap.yaml b/charts/portalmodelo/v0.5.0/templates/repozo-configmap.yaml index aacde4f..cda6660 100644 --- a/charts/portalmodelo/v0.5.0/templates/repozo-configmap.yaml +++ b/charts/portalmodelo/v0.5.0/templates/repozo-configmap.yaml @@ -35,7 +35,7 @@ data: import collective.recipe.backup.main - {{- $bkpLocation := .Values.velero.backup.enabled | ternary "/data" "/backup" -}} + {{- $bkpLocation := .Values.velero.backup.enabled | ternary "/data" "/backup" }} if __name__ == '__main__': sys.exit(collective.recipe.backup.main.backup_main( From 0a63adfdc8ccf7bddd6f0d13abaada1cc67c75a7 Mon Sep 17 00:00:00 2001 From: Fabio Rauber Date: Wed, 13 Apr 2022 11:00:32 -0300 Subject: [PATCH 19/20] Try to circumvent rancher boolean set bug --- charts/portalmodelo/v0.5.0/templates/repozo-configmap.yaml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/charts/portalmodelo/v0.5.0/templates/repozo-configmap.yaml b/charts/portalmodelo/v0.5.0/templates/repozo-configmap.yaml index cda6660..c680d87 100644 --- a/charts/portalmodelo/v0.5.0/templates/repozo-configmap.yaml +++ b/charts/portalmodelo/v0.5.0/templates/repozo-configmap.yaml @@ -34,8 +34,11 @@ data: format='%(levelname)s: %(message)s') import collective.recipe.backup.main - - {{- $bkpLocation := .Values.velero.backup.enabled | ternary "/data" "/backup" }} + + {{- $bkpLocation := "/backup" -}} + {{- if .Values.velero.backup.enabled -}} + {{- $bkpLocation = "/data" -}} + {{- end }} if __name__ == '__main__': sys.exit(collective.recipe.backup.main.backup_main( From f2d472a1164ff2c82244e346bad4375966ed72d9 Mon Sep 17 00:00:00 2001 From: Fabio Rauber Date: Wed, 13 Apr 2022 11:27:07 -0300 Subject: [PATCH 20/20] Changed default initial value for Zeo PV size --- charts/portalmodelo/v0.5.0/values.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/charts/portalmodelo/v0.5.0/values.yaml b/charts/portalmodelo/v0.5.0/values.yaml index cce3dd0..f07b4c8 100644 --- a/charts/portalmodelo/v0.5.0/values.yaml +++ b/charts/portalmodelo/v0.5.0/values.yaml @@ -18,7 +18,7 @@ persistence: enabled: true #storageClass: "" accessMode: ReadWriteOnce - size: 1Gi + size: 5Gi velero: namespace: velero