From 5f4c032cd7e32d008620b2516bad765eb66cc999 Mon Sep 17 00:00:00 2001 From: TrueCharts-Bot Date: Sun, 16 Oct 2022 20:10:37 +0000 Subject: [PATCH] Commit new Chart releases for TrueCharts Signed-off-by: TrueCharts-Bot --- incubator/zabbix/1.0.0/CHANGELOG.md | 9 + incubator/zabbix/1.0.0/Chart.lock | 9 + incubator/zabbix/1.0.0/Chart.yaml | 32 + incubator/zabbix/1.0.0/README.md | 108 + incubator/zabbix/1.0.0/app-readme.md | 8 + .../zabbix/1.0.0/charts/common-10.7.0.tgz | Bin 0 -> 49152 bytes .../zabbix/1.0.0/charts/postgresql-8.0.97.tgz | Bin 0 -> 54765 bytes incubator/zabbix/1.0.0/ix_values.yaml | 297 + incubator/zabbix/1.0.0/questions.yaml | 6365 +++++++++++++++++ incubator/zabbix/1.0.0/templates/_agent.tpl | 50 + incubator/zabbix/1.0.0/templates/_config.tpl | 209 + .../zabbix/1.0.0/templates/_frontend.tpl | 43 + .../zabbix/1.0.0/templates/_javagateway.tpl | 39 + incubator/zabbix/1.0.0/templates/_secret.tpl | 18 + incubator/zabbix/1.0.0/templates/_snmp.tpl | 38 + .../zabbix/1.0.0/templates/_webservice.tpl | 39 + incubator/zabbix/1.0.0/templates/common.yaml | 29 + incubator/zabbix/1.0.0/values.yaml | 0 incubator/zabbix/item.yaml | 4 + 19 files changed, 7297 insertions(+) create mode 100644 incubator/zabbix/1.0.0/CHANGELOG.md create mode 100644 incubator/zabbix/1.0.0/Chart.lock create mode 100644 incubator/zabbix/1.0.0/Chart.yaml create mode 100644 incubator/zabbix/1.0.0/README.md create mode 100644 incubator/zabbix/1.0.0/app-readme.md create mode 100644 incubator/zabbix/1.0.0/charts/common-10.7.0.tgz create mode 100644 incubator/zabbix/1.0.0/charts/postgresql-8.0.97.tgz create mode 100644 incubator/zabbix/1.0.0/ix_values.yaml create mode 100644 incubator/zabbix/1.0.0/questions.yaml create mode 100644 incubator/zabbix/1.0.0/templates/_agent.tpl create mode 100644 incubator/zabbix/1.0.0/templates/_config.tpl create mode 100644 incubator/zabbix/1.0.0/templates/_frontend.tpl create mode 100644 incubator/zabbix/1.0.0/templates/_javagateway.tpl create mode 100644 incubator/zabbix/1.0.0/templates/_secret.tpl create mode 100644 incubator/zabbix/1.0.0/templates/_snmp.tpl create mode 100644 incubator/zabbix/1.0.0/templates/_webservice.tpl create mode 100644 incubator/zabbix/1.0.0/templates/common.yaml create mode 100644 incubator/zabbix/1.0.0/values.yaml create mode 100644 incubator/zabbix/item.yaml diff --git a/incubator/zabbix/1.0.0/CHANGELOG.md b/incubator/zabbix/1.0.0/CHANGELOG.md new file mode 100644 index 00000000000..211ca17950e --- /dev/null +++ b/incubator/zabbix/1.0.0/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog + + + +## [zabbix-1.0.0](https://github.com/truecharts/charts/compare/zabbix-server-2.0.49...zabbix-1.0.0) (2022-10-16) + +### Feat + +- rework ([#4046](https://github.com/truecharts/charts/issues/4046)) diff --git a/incubator/zabbix/1.0.0/Chart.lock b/incubator/zabbix/1.0.0/Chart.lock new file mode 100644 index 00000000000..4e75343505c --- /dev/null +++ b/incubator/zabbix/1.0.0/Chart.lock @@ -0,0 +1,9 @@ +dependencies: +- name: common + repository: https://library-charts.truecharts.org + version: 10.7.0 +- name: postgresql + repository: https://charts.truecharts.org/ + version: 8.0.97 +digest: sha256:cd530555930bb5a7512a1904bdaccef6403a8566dce8bc8f4a518df0a0f50c55 +generated: "2022-10-16T20:08:48.175151545Z" diff --git a/incubator/zabbix/1.0.0/Chart.yaml b/incubator/zabbix/1.0.0/Chart.yaml new file mode 100644 index 00000000000..b25a452a309 --- /dev/null +++ b/incubator/zabbix/1.0.0/Chart.yaml @@ -0,0 +1,32 @@ +apiVersion: v2 +appVersion: "6.2.3" +dependencies: + - name: common + repository: https://library-charts.truecharts.org + version: 10.7.0 + - condition: postgresql.enabled + name: postgresql + repository: https://charts.truecharts.org/ + version: 8.0.97 +description: Zabbix is an enterprise-class open source distributed monitoring solution. +home: https://truecharts.org/docs/charts/incubator/zabbix +icon: https://truecharts.org/img/hotlink-ok/chart-icons/zabbix.png +keywords: + - zabbix + - monitoring +kubeVersion: ">=1.16.0-0" +maintainers: + - email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +name: zabbix +sources: + - https://github.com/truecharts/charts/tree/master/charts/incubator/zabbix + - https://hub.docker.com/r/zabbix/zabbix-server-pgsql + - https://hub.docker.com/r/zabbix/zabbix-web-nginx-pgsql +version: 1.0.0 +annotations: + truecharts.org/catagories: | + - utilities + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/incubator/zabbix/1.0.0/README.md b/incubator/zabbix/1.0.0/README.md new file mode 100644 index 00000000000..378709cb761 --- /dev/null +++ b/incubator/zabbix/1.0.0/README.md @@ -0,0 +1,108 @@ +# zabbix + +Zabbix is an enterprise-class open source distributed monitoring solution. + +TrueCharts can be installed as both *normal* Helm Charts or as Apps on TrueNAS SCALE. + +This readme is just an automatically generated general guide on installing our Helm Charts and Apps. +For more information, please click here: [zabbix](https://truecharts.org/docs/charts/incubator/zabbix) + +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)** + +## Source Code + +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://charts.truecharts.org/ | postgresql | 8.0.97 | +| https://library-charts.truecharts.org | common | 10.7.0 | + +## Installing the Chart + +### TrueNAS SCALE + +To install this Chart on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/docs/manual/SCALE%20Apps/Installing-an-App). + +### Helm + +To install the chart with the release name `zabbix` + +```console +helm repo add TrueCharts https://charts.truecharts.org +helm repo update +helm install zabbix TrueCharts/zabbix +``` + +## Uninstall + +### TrueNAS SCALE + +**Upgrading, Rolling Back and Uninstalling the Chart** + +To upgrade, rollback or delete this Chart from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/docs/manual/SCALE%20Apps/Upgrade-rollback-delete-an-App). + +### Helm + +To uninstall the `zabbix` deployment + +```console +helm uninstall zabbix +``` + +## Configuration + +### Helm + +#### Available Settings + +Read through the values.yaml file. It has several commented out suggested values. +Other values may be used from the [values.yaml](https://github.com/truecharts/library-charts/tree/main/charts/stable/common/values.yaml) from the [common library](https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common). + +#### Configure using the command line + +Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. + +```console +helm install zabbix \ + --set env.TZ="America/New York" \ + TrueCharts/zabbix +``` + +#### Configure using a yaml file + +Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. + +```console +helm install zabbix TrueCharts/zabbix -f values.yaml +``` + +#### Connecting to other charts + +If you need to connect this Chart to other Charts on TrueNAS SCALE, please refer to our [Linking Charts Internally](https://truecharts.org/docs/manual/SCALE%20Apps/linking-apps) quick-start guide. + +## Support + +- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/docs/manual/SCALE%20Apps/Important-MUST-READ). +- See the [Website](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) + +--- + +## Sponsor TrueCharts + +TrueCharts can only exist due to the incredible effort of our staff. +Please consider making a [donation](https://truecharts.org/sponsor) or contributing back to the project any way you can! + +--- + +All Rights Reserved - The TrueCharts Project diff --git a/incubator/zabbix/1.0.0/app-readme.md b/incubator/zabbix/1.0.0/app-readme.md new file mode 100644 index 00000000000..57b808d1e63 --- /dev/null +++ b/incubator/zabbix/1.0.0/app-readme.md @@ -0,0 +1,8 @@ +Zabbix is an enterprise-class open source distributed monitoring solution. + +This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/docs/charts/incubator/zabbix](https://truecharts.org/docs/charts/incubator/zabbix) + +--- + +TrueCharts can only exist due to the incredible effort of our staff. +Please consider making a [donation](https://truecharts.org/docs/about/sponsor) or contributing back to the project any way you can! diff --git a/incubator/zabbix/1.0.0/charts/common-10.7.0.tgz b/incubator/zabbix/1.0.0/charts/common-10.7.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..c22f29efee9967a1f608c47851d843e454045575 GIT binary patch literal 49152 zcmV)-K!?8{iwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0PMZ{cH20TI6QyrDey6wZF_#!)$%2t$)0uFPPb1dj*so6cXxJ< z1Cfw~F-5QeP>v>@cmEEq1bC4s-#Xo6?rg^*fkL5BC{z^+g^&9t`ERe+EB@Qt-R}RXKinSld&Az&aQ9EW{$RM<`xEFr0xqQ|V;s^y_3qtP zv2(wZ2d4NVq70Md0L%w1n5On;3^`)F6(JTFA(Dqg>(VNgn}!YA<00j zH6=520H&O$?4aA7U_Q-8osi7BoMtGLWx6m;S(j6Ux--Z)qFw!7v0@8{q9FqU&LM}C zbrh(KAsUi|ql8PSS$A)D*z4`>?6hvs;+D{e9kkjYZ>-fen6~AMRvYMMZn6=wUH$Gq zU-vux-A=FF`>r*EIN=Z{h)Q5+2621_b&I%xrrK+#`^003k(&e1PaP{lO{ ze37C9gI;THaOw9td!1hEiN;^g|2d2^#2!fiES>-T{@(WPPI3P4ZEru%|EG9ffOZ?a zPf_ym{0y)Zg?NlZ5Rzn!CmDreuD4!*|BBEUW-%9qFA)MG6qDN)Nl`LSlhYZTpo10w z64s@Ju>gFEfGz;S7^8#(EDE*&peQ8_b3zvffQKRNVB*RLU8}8XHH8Z}6cdueiIH6Y z#inquvwP4V?{7yajK;hDVK^EO_t9WDc=c+~AMK8NXbgL3f3Pzi4)?}8;ZDCd+T9t2 zuX^L%-QHlZx4XaJ7=tv6V~~;`Fzs}{418_P%BmA5qCOXuT(0;}g{g6Q#txNS= zOwmMCtfzYpyCKOf%m&b0LeKl1UT4r7^n0)RLqqRZ13%MZ|oARq+ zc@!RWb~~25XxQ7`>%ZC?gxhEojrXE(XLm5#-wg-j;r^>(e;@X?U%lFo;CMKMdxQP{ zKH47)x5uw`w|B>{_67~wUW>X3;%rI?UzfV3UOja!xX0sJFkfKib~j>knS-?eu%E!YJGx4!3vvuZ9sCjL@rausv?p`dUm3;}j=r zOJ7y1p2&v^YD4-eXsh73RNWR9!N8Dpuit;QKk9FXa0fxSJsgI+qi8USdSM?9UX4e+ z{o&r;V7R><4)*)~Q8<1D_x4A7d;8n_qy4=xT-kC{iq5i_W1Qe6Q(G2ki!x2Alh>$% zM^S`Xh2-pYdO6?ig#GQ^z46{~XRsIUh0(Y-hfhs5jah zzv}mP`#XcMw}W~++q?ZrHOp3S+^r+*=&TUm|YQKn4$=zBw|Vq#W;lQ0Q8qIP?k<8j1XX)LXIX2 zS@aE|;MgL=wnQIrqjH%oL5{$NUQjjxOd@bW;ut5B4`~Fs=1T$VQupQ(RRVjT z9HSUR=|m8T`f6qAm#W!s&ia<3dX__!(pgoI@OosV8eW zzt;i7GCENJrjT+YWqPW00Q|t(CwOqL9_a729s!m zZCWr!1roDBIv-oQketaCFd&_O<=VxSC=HB7zt=dw&IR62@6%3k!LX zq9j5|h!GPA=rzYdOJX9Hlo^acis+co8B9VXn!2JHIy<~nNVZ;pX2*46(W zfDczktyT(oI6X}W$K!=wiCdl=P34d+fMnFzdgybqs1L>Eeu5IDG;*U9X#h%FpTX4C z02Ia=g5}F|$fqDk%QzVumoJ=TUO!iOK(=W~m zaV@+C6YTIgcLDziis|3x_s@4WPs17Q} zh$A|~31Z-OiUgr^S)_!Hs0wJ7FmQ|c6kJ{XkKv|Hi}Qs)3DyS3c!ZN2p#15BloAm9 zNGSf7fE0ss5`n{v6Y2S)1vB(-k)GxM*_zra=OoH2i1{;vI8h5}X<}%8be7~BoJ4YJ zK{}CYlPKc0DWFLLi%+W5PdJI3m0H>zdUmP;DDsu$1~46XGo0XAHUn@*vV;rBT0i@a ziN%4X@HVLc+L!NUIJq#|-2FlJdI~7~{BS_`drr5H&OdzMIL7~y)94)05G5RXiqJze z^A61jUDULsIPpj+sSMFM4iOAP(ORt=L>D_$#eA-l;NHO-rEz-F->(KXgaIffPD;rL zu`Q4gF8)D0>~uO(krm)hC2vs#FatBC$-)Hm3(&T}Oti@|RX{9x@uE~p!hrM!MF28` zmug7=Fw0l2i7F3~GwY!N3N)Pno02S!giWiI{itgG)3E@(o66S+8OT-Y-3~dP&Lx94}thy-DE1m0%uvWYTs-$)h_)G-B zQJgW3=mm+Dsp9?q1J3}VK#OdJb_233 zR{1rsF`X*H)bH0v&ZSZr-f~ngGC3sG9j4-A zq0%uL%f;TXDa%IxL?JIqlruQ9Q_TN#W@kq}^P|YXVP?*k`)9yuLqstT9Fe(|FGWGE zOlSqy(SVM$Q(Nvx+!A`D>`rSpN&O#)Sx-FvoKz%pCjS00byu z+ktlA;S|me^xxWB8bs4D4QlF+Xm43nCMI)eN&xlq^!&)(sbRJf0BsN$^Q+hC4|?6f zuu%DeWE}ZbBE&dOpb8}mdL8+HU5l4|CXl0BxH$0O2Q57!7buC4oKFmalVslh2&o_~ zNHfm$`Z*J$A%^BA8zGt?js(3!iZ~c!%6O-xew`$9XZpT_(tem@N)oBATidk*uJk&b z+ZQjuVLhK4O!kSDN#))WJU=kbBVvPVlA;8?CZ$X)}1L8b^BOQ z&LzVTy?j^!Fs5WCU4e#+oQ)n?<4pP3wGX467xF~75JlRLq_s)Kp91;_2}WL`+to^Chu^NjD-P>xLu=QOa4@)N5;P5+@V!F+m}3!&Le~WH;NoVD|+KL&OBzw)qs9 z*PAURt}fNjw>Y_BWe>OL&^aZdzEHC$I6Vd%=O0dwH$~6db13?eO4B%A2vM5}(IF@- z3LSu*-Tf8-AKo2a{&WC(y@3%?`EIuyMkJJ1RriP_9DU}U5T}zfAB@~hn%oYMyCu4Hpqsbmz`1gyUi#R{jlwKBWP&E9m-59A zlw_%SGxmS7EKOr1SOLcJgJCRP?r18cpqY^GlM6!lJIrQ~htu`2mhQxSlZlnFPbr?` z7){*eO3b(SNxTs4zQHk4GT(*~$UV4oQ}2X@FxEPv1t2JJMkM04T38qnZ%metN{q)S zT!b;I>zFOzEPq#0>2%!Cw>XXkx6v%w63Z)0~LyvqQ{ZJVO9-yV*pNc+qL; zUv{^LJ#cGC*eWQ(GQL9Z%xO-ShFzznH`*&PFo8HQS;&_1Leh#AI0!{Zh;h0An4=l% zfD_TASK2u2rf`k`7SjAS5&C0C?ggSE4Dm_zH8OhuD&m?(h%S$A@sX_QiL+l4HttYW zrDgqEhGh<`64!G|MyM1a*KRiv61`O zgu---*;Kjh)#xusM&%$G;O7>$67ePdnjvm{prUiaR0g*~S4#*l?o8&0`h5o^BU%n!6`rT5d1Q4ANCC?rY54nV)Bzov*{xyTmY3kgXwZa?hk_hX3TjH0V4MNA+p zzT|-}5yW@mbvw$-{Ecr6eaCSaL^q>JiM4r<(JRKWBgfxH*2dJI?Oym_(yUoK-yJE z?_{f$z{YTwA{*S$AF=T3uXbbm63@~YZM-Eg8o?MQA)=dGK>Yk(|J*X}@YC}xa7H3@ zuEJ1_B4NK41CpF$9W@6#YL9m44xCdm7oDyNYE=us3@)Ub3H_2`szhN;TvX|_$sN(U z)0va{E@@CpdJ|U#!&FKf?Zj5P6Ha8PxfHBQG^|o7M75kiPLG{4ZYBcYio)?2hlQvS zBPenX)BGWrDui(kbG69k87CCOICu4Tm4t5Nw7aPWuo9bt8q{&BgETts1V|<^y5umt z*#hTsl{n5|tY2KHajdNokV7Q&tK#uR7mjW?V&Qj2bnT&#(FA6IchSbQHnw4S2>L6*cVrg*T z+;MeK6t7(xYL*9&IV1>m-XgCfER;f7A#X)LI0;GIalTz`OY0%4JV8v7y&YN+7YEcrLqY*8XYmhRM|&@LXn<&VvJ;L!aP1Ij=Mca@7EDIm5 zmZj$8(LFV78$DSqOHC_}u4!B1f+ec}lN*4Nge?*!%-C9LW){b9RTf~1ZooXcb~-bcrQS8B;D zlb+*Ft#sC{nzMpvrT|3+k2Z!ZRq|$#9fPT$z+Jt)EV4@nd@mMk6<{nQwuN|9oFzse z)d7CcA00IwJa$iL*br^Sz8=@Kxjl2@9(;3SrlAbov-?HJcI zxwr4=v%fvKP{qVW1veGE!nmOD64m>Ij!e`i0%78c710Nz0{O%;r?3}rkkclxwIy{%z0DG2ro zZTRpCd&44FWpUWr>VRM2h^t@KOVa~Z9gp?vR%r?nfGwtuAeijT1$k@_&H(pVfe~C| zLJq(P(q)`>Z!T*%hB|_;CipGK$8N74o9*=iu3o%^++<~)rC}54JTxMv0av)qiJsRn z$AfB`GKYfCG3OtTG~fRLHwtX0V>`PF{jJmU%7f(W7L_)Z4+J}=F*^Tvw59+2@q9~g z#1=ralrN4k-O>x*RzBsn0-b9zzUEVO zt*Za$r!8Gn9}^KJziWS|mr&-mG|IR?OVs;!0wdL+L{3Hx2#7i+w!FK6$1d1>mqAuX zkqqE!s~~Ps*95qir1F{$71iEyf665%6iyI0vZt?dY3%`!{v#a_^r`)63q*?q&TuHy zGL?=?ooq1_iz=!~6{P*YZ!TrfjT1{`Kpz!xM9wPvu#wm>~sng6Aj!O!Z22 zs$4%yq{kRVV8cOUa|F+LSHrF!cfLj+vRN?k8}%Fq6dmH zc`^#1&zMP;3}c9ATlpyK03`ce%rws?adwnUp(6o9HohPkZA*|24j;73FeJ%8%`FVl zW%0=a@Tucu(SU$uqqYhsOPJw9YY9a83^hJ@8OcsnnqPU$-Od#;c5Rl8q|um4M>_aV51$&>2+{vf z16|7ruV8d@4BHArW)3>F1r|)X;Gyl>0k}Xg`k7*m-V22_@4h^qX;aA<98E98N`qLw zWl>8ThW~{Qz^hlUe!xXv0+F_hVo7y~bE>3zmXZW~Qi<0Reaz&O7FD8PMV=Jj>t`YZ z#Z*cmg)_tvHCC8lMK4v?mKX_=qU7ZJOLOi@XnEq_Qtj{cIE$4=tDI4$www?%Ge>1$ zaPx=h06ooNo++5vMba>|z+nohP_FnbLJ5Ged)}kvFvmK)VHrZU7h$@&JP=l(5ET+c zS!+`*(gyS5>eN-0E4)WD6yZ#|S_74AD9Be`2>2`=Gq7=S_^v&I;f-J~d*W)-Omq#@ zhDj>UG=K$zin`2hiRradewV^PHS9}Bxo3BY|Ao}Y?`7*B6~#V*F@ju-`a~zf(e&7o zf;EIDuM*35GV#BZ*qBLhK=(!uK|VEfGD+|P^wk9UU9iR+(wI!x9eHC8X;)N#=8h-k z4kfG6EG6>xBTbv7BP~kbahUlm{iX-_k2k(gH~VQ;pE?5A1s4YJ1XnlA*@ZiMDt zHl010f-t+IXvpz==7IHi;6$mcqI)p+pUiY>ultR<04MCD<)bc2wIeiNG5-y2u8ReS zQ+0wv`@ck)vU@_2z|>dV;%NG2M_j7uDWWsXnDj*HLqSt=o2ayf)0xg3$`C)#3zpm* z6}}&BbT;(-*z-YRSUwrdKUKMGW{YFDHp6!6#*gRq^G&A>S(RWCQj!Zp{0# zuj=u`GqHjD%*wwJD{B`+&cStjrwX=bCjadcrgMDYzhkGg)8EH)O{iNst6fK7jJHFo>4YggQv$N@8lJ(VxGu^E`ZQV2f*7I-Wkn2#8)#I)6{WTkG zRe1GCd$|Hv4s#Le^AOjHs3;dvHhNbQY36PzI0W^C$KKvvrL@z-rNRZuqb1+x;cqhC zWyTP-8>PSoklQC<^n#q{mpD$Gsy8IrEey^jCxG$%^ ztHFtm*;@~YR-D&%uaQsDrTTk~_6I*;^~>AH4W|gEZT+q-3#>R#BWx+GwsKjJl99JV|8st%O9V`y!E7hN?5gn=SF{(mP@7NGJy2SRRd9 zI5?@4>1*e6Y=W9;tqqf?4HJ&r=FMiy{8fP@Cn<@^WO11ararnSrY2>8%oL!~1(*if zOt#R@i6NBAy5^b94m^XOFK^K80r(qEIGP~(pOQUH#h-*!|C`E(tG?V$QSu>SkYhHM zdya+gGSDX zO`gb3%O<%vXn_~tX9O~q$=jwV3dwASlF00H8~WmO%AVET= zL%P_Ko!3eEl_^T&1sG9zss@fZqTsun#^1?XQRRpz1u0Ck12F9MdNb{Vp2-_-_kX}L z?V1`zr)a-WaHsbUo15!&WVVKJIN>zVo8atgRYcOotu5uhP*u`GbsbQB%|&8t_vZ<1di<(k0_*z zwkAjS#Vw|2l0h1^=V?;yC{+i?I}13ATL8>c_cW=iq>FyaJ94Y;$JN1jTQZ(zo+ews zwhRPInY;QOYrxcTPjaRx5zW-xxvk38=Niy$=Z+b*c^09BW2gdQb!uqi@)V6-dWmGD zm}$dJ3q$C>+C7^>#%>9X)P4`iCgvQ9F{7*x64ac|q{CG2Y&nmthZ&#Bi1ej2)iq$or_v&|)Oi68 zWt<<5PzdQ3z}BHIPXi}NNhq-n;6##F9$9qAEq^;Zk4oiE`E}&)^Z-EBl^%KH5n}vW zF3IK%BjL@?wXrPiYk5`ZwYrluuPvjruPeWm4kwIV-Z$Mf_*Mm--{3gDyv016I(^Tg8Uw(NMc?->Y=?YQVx!+&{u8%Rr(FiO@E)bt?g)TCI@!or)+{ z2XekWHN!!=iINdY*MgL`Iiu=yt29fJG9_}Mh4U+2E1ZqK$b-pZ$(0i>e7ke>7;+-- z?%l+NQ~z6l&rWB|gerOb`uBU!*AyiKz1xFip+<0BT;C+zUePq;P76THf{LFqPx#m9RBl z$C#=dx~}f5g5c#v;W4>2A_IaSFn4aGm-miAc>#*Pl9=K-^xu*(V zz*||@z%ej@KIisRLGx?3!S|4%-C-Lgf`U=8c1K+;B-5(o6HS;I@@$OsdFVE!1`2Nw z6MPg3P2c1sb6Que6>&H*r(E=ggPxJ%O?7Y7#Sh8~M4wZ6!xlC>6q1b-ZiO%cpKx?d z8T@2~v4@hnb}P3H3g_-!d6;LM$yNR03ej1)B>VXprNnW#-AlIYWRNqqjGM!)EWPtW z2cSRL9`v2JRTu#;F_=j~t+CA$UODYJ1zx;(l+;%eFh%17@UW?`yawDKc`7Whz1#2Y zDL!!WI+ge!v3ZErUP{lR|3sd zB@4S!Pr9R8WP#pEDYCVnP$hCmT%{1@dWv_6tKhH?7jH$k-;x_FKM3w9C!trFWF+%U z>}heO0_a*kY~72Pn8Uy}QH<7dM1}5OI-)?O$!=UE`Q=@`^(IDwIGYl6`r1qkN;1I% z@^xbG*ppY$-C{nKO2;{g9&B0QY+b<( zC4pxS9b5e?8if=^EHF$T`d9JERE01B2(pD1_mZ&^!jVqF@ZsX^rM^esSrfz<9Dgsk zH>0t$6@7ss%+~J~71f&cNEUtCPR#^kN2B$-r7Je;m@fRpT_eea+^K7-V#BVf!cW_^ zFvj7{l!(G>_b#v7tb=*^r|lynF+-$y z9iGN_Yopie^>&9t`ERe+EB@Qt+wT9VKinSld&Az&aQ9EWL9e&F_b1SM=+0I>8RL-t zsdw+TiklQkq%CO3fU3TQ~wzyWMWV6l>%700cMttP>`<6DHwU z829sj(7M4%bO7{z;UVWRoC*c<*rqpc%@Btw!qOaIz@OV+zJQm-tM27XiL+?kTt=m{ z#L3I?bx*#2{Z4ihC6VcI;ZH%ahT~s1|Alb^bd_U?rWsWy%K@`o~*@$q+L7+^*pa^(#(-QC{P9{{euco;rrpXF_ zgBGmx_E)u&;Xskwy$7#B@G>D0y2fdc_fvOpINWynt{lX&iuB1k@0*V>3 zU}|6#zS(NkrG1h*Rg$QTyz()5fDB1rgAKL+qzY}ye?Tov?`O4aS7Vc>Hy4AZRqnu< zW{TRye9(4mz4{wKF70Cw;Lq(p3(l>syjii#ywpk1)pVW`aw8zdgxq8)2pkrJV3h>qQ&k@T;ja@U-amRfH0*Oldpge(gr-D@c!9LVluc)hHS zX+*PR1%2E(v!O*mxmZW0QFVK?>2gT{p*z4?!d`d`&@Xx}6la3-y&yQ{^{Ii`779FU zHJYyc?bwZ`B08%ZaW|t@H`>=g>fl#45n@TLoaD zetY`&ysx!wD_1IXYX!7rx7Q>FplVH*-viJAzk)=}p@f5>XxPBZw^haRV8=stO6|xiNDzsVg1`AziN`=)#oUmT(Q=lMam`{((=pXYy`2M!9VQ3YNB z+H^rJHw}tbLXG|(BFekh;=js4b1y?+h5kS2?`;?K|Gn+r_Ot%~6wfmKUkrao#dIhm zK&{nIx__z4mgbf^F*MHNSo|gCSlbm9@1@H?O99cwk0g!|m4&QWoI>^!TGST~-1NAC zuB*k3gWzj#KDEvN0m!g0iMn}4 z!H_@y}+v%6`*jO*l1yUJ>6{&4>$9jv8iZCi& zsbd!<9K;a@_=?j6q z)$J#=IFpKrF25S1yfM2=QrYEe9lUBm=R!}=)cjBsF3LmqZ?SN>1EZw54ALduz%(2R zXEpfdhzkM-JHdfg6L1;yKjzq_a)XE0>I8^fD?c}ALU%vh6MSRgVP|`FrP~V?Kp&Vbd$}Mlg#a|yj9GEnW;-s8g+3+*IsJeB;VY< z2f2Z?oJh7guYJ1%vR++02K5-*DQwtLR`0kZElWaONY5`ZKbMHaXVvjBo|68jPVIM{ zfcWlpeth6g%HXQ~-$5z*T;qov0(Nh;gwc4>DP?ybjh~|X7jP(V?Jb?|$fK5Z zbZ~y@NuE6eNDQ^ZBd<~I?kb|(u@#hsFP4)3fwS0ma5-Q-=atnMoX(c<3uL2hmrf;s z-cqNDa;nki_U<%$gvy)BI7S@N znaLrk&LjG_9sh?qC#m~u_-G!Q%>~D~>^4*7pDb-UY!jje4Gyw&2~Aq z<$5a*$MNZ;BVOA6CbA{!hTgXqrF0-kZ`0vW&9SO4mLxKGBCwtDyJ$G9`Fzj_2L;p{ z&WF7AedfcnivOEF4fTJM@9s{%;8p(LUT;{`|9d;T&-(vUJUafnpcWL*$?2o{IAMs& z%ra|e@UA*6Cbrs4b55kob9DzG`0~X{=KSla_}FoBE`0rZu%sY|6Y%wGpkSV7aePi< z9I9Qdx;m*XCIhd_=Q_PJo%-hwlw_&+jgt9+8+EQv0WM!>Od)rfhe>2>%hfFZrB39_ z!fj_W(krYbus&Dlepa=;&AxJ+(iq|x1m|)u)24V7fV+7*04I$})d|kp5GDPW%m=rW zCWQe0n=SBiuKZ`EzTZ@Ic)mIeM(1BJki5JImQT-32+v&=1r_Y$X}281rbcY=9tz%?zWGMh9ltu1DcE3HK*+0spNO$p)M4r9}x9vrA?g8W9FP3G{`|I2 zBl)jyqkk;<-yfFb|FHLL|3ArN<-gv-*q~^PC`v+{Ouz*5T&>+KH~|1oRJMG*JN40A zzj~+D!QE(iiWOpQMPIFj2Tk1awWdNIJ-m)cbs_kMdjVdfQ2fH;^~F6I zU{$+*&DSc&ulcsZ?dun7;`H@v_%7eIeZByMFoh!=V~&xQjxdVyoXTe>SJ#Kf?@rHJ zYxsvP)qbDeVaq@dK^My)BlD$gOdHf^Q`|p$z%0DH|O;jPuBPO8UP*3Fv}*e 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 literal 0 HcmV?d00001 diff --git a/incubator/zabbix/1.0.0/charts/postgresql-8.0.97.tgz b/incubator/zabbix/1.0.0/charts/postgresql-8.0.97.tgz new file mode 100644 index 0000000000000000000000000000000000000000..a485f41401334d8bef0a9730337415dfd748a71a GIT binary patch literal 54765 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

QpkEHpO`qh#Y8jt%?TQt)&i1 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 bKYxDy{QUWO_UHct009606vK#70Hy^1W{#s6 literal 0 HcmV?d00001 diff --git a/incubator/zabbix/1.0.0/ix_values.yaml b/incubator/zabbix/1.0.0/ix_values.yaml new file mode 100644 index 00000000000..669255e103c --- /dev/null +++ b/incubator/zabbix/1.0.0/ix_values.yaml @@ -0,0 +1,297 @@ +image: + repository: tccr.io/truecharts/zabbix-server + tag: 6.2.3@sha256:8047806dbb02b779c1fa4dc47f96bc02f35836800ee21a260ccf2e88928c6e97 + pullPolicy: IfNotPresent + +frontendImage: + repository: tccr.io/truecharts/zabbix-web + tag: 6.2.3@sha256:b58cdcfe7ab5d8d80b46f6766aea7f44f5ce2ac8c80ecf0c5450e206fd692e1d + pullPolicy: IfNotPresent + +agent2Image: + repository: tccr.io/truecharts/zabbix-agent2 + tag: 6.2.3@sha256:5abdc777ae777b9941c45d4fe9c9cb73f5491550318430dffd1ab9c03af7ed60 + pullPolicy: IfNotPresent + +snmptrapsImage: + repository: tccr.io/truecharts/zabbix-snmptraps + tag: 6.2.3@sha256:46142f4717a8e8f27da16a82690a62f6bbb18dc5db423610faec53cedf7db8fe + pullPolicy: IfNotPresent + +javaGatewayImage: + repository: tccr.io/truecharts/zabbix-java-gateway + tag: 6.2.3@sha256:d29d2025016a8e8a473be48020238edb89072a4adbb92af582a93216d5a76fd1 + pullPolicy: IfNotPresent + +webServiceImage: + repository: tccr.io/truecharts/zabbix-web-service + tag: 6.2.3@sha256:295b685c16794e8fd2318c3abb61bff26460fd87c66beeedc9bfeaba27b46b4a + pullPolicy: IfNotPresent + +tty: true + +securityContext: + readOnlyRootFilesystem: false + runAsNonRoot: false + +podSecurityContext: + runAsUser: 1997 + runAsGroup: 0 + +zabbix: + # -- https://www.zabbix.com/documentation/current/en/manual/appendix/config/zabbix_server + server: + listen_backlog: 0 + debug_level: 3 + load_modules: [] + timeout: 4 + service_manager_sync_freq: 60 + start_report_writers: 0 + start_pollers: 5 + start_ipmi_pollers: 0 + start_preprocessors: 3 + start_pollers_unreachable: 1 + start_trappers: 5 + start_pingers: 1 + start_discoverers: 1 + start_history_pollers: 5 + start_http_pollers: 1 + start_obdc_pollers: 1 + start_timers: 1 + start_escalators: 1 + start_alerters: 3 + start_java_pollers: 5 + start_proxy_pollers: 1 + start_db_syncers: 4 + start_lld_processors: 2 + start_vmware_collectors: 0 + vmware_frequency: 60 + vmware_perf_frequency: 60 + vmware_cache_size: 8M + vmware_timeout: 10 + housekeeping_freq: 1 + max_housekeeper_delete: 5000 + problem_housekeeper_freq: 60 + cache_size: 32M + cache_update_freq: 60 + history_cache_size: 16M + history_index_cache_size: 4M + history_storage_date_index: false + trend_cache_size: 4M + trend_function_cache_size: 4M + value_cache_size: 8M + trapper_timeout: 300 + unreachable_period: 45 + unreachable_delay: 15 + unavailable_delay: 60 + log_slow_queries: 3000 + proxy_config_freq: 3600 + proxy_data_freq: 1 + export_file_size: 1G + export_type: [] + stats_allowed_ips: [] + frontend: + server_name: My Zabbix Server + enable_access_logs: true + max_execution_time: 300 + memory_limit: 128M + post_max_size: 16M + upload_max_file_size: 2M + max_input_time: 300 + session_name: zbx_sessionid + deny_gui_access: false + warning_message: Zabbix Server is under maintenance + access_ip_range: [] + # Advanced + sso_settings: "" + php_fpm_pm: dynamic + php_fpm_pm_max_children: 50 + php_fpm_pm_start_servers: 5 + php_fpm_pm_min_spare_servers: 5 + php_fpm_pm_max_spare_servers: 35 + php_fpm_pm_max_requests: 0 + agent: + enabled: true + hostname: + - Zabbix server + hostname_item: "" + metadata: "" + metadata_item: "" + timeout: 3 + enable_persistent_buffer: false + persistent_buffer_period: 1h + refresh_active_checks: 120 + buffer_send: 5 + buffer_size: 100 + unsafe_user_parameters: false + tls_connect: unencrypted + tls_accept: + - unencrypted + psk_identity: "" + psk_file: "" + allow_key: "" + deny_key: "" + javagateway: + enabled: true + start_pollers: 5 + timeout: 3 + debug_level: info + webservice: + enabled: true + debug_level: 3 + timeout: 10 + snmptraps: + enabled: true + +envFrom: + - secretRef: + name: '{{ include "tc.common.names.fullname" . }}-common-secret' + - configMapRef: + name: '{{ include "tc.common.names.fullname" . }}-common-config' + - configMapRef: + name: '{{ include "tc.common.names.fullname" . }}-server-config' + +service: + main: + ports: + main: + port: 10211 + protocol: HTTP + targetPort: 8080 + server: + enabled: true + ports: + server: + enabled: true + port: 10051 + javagateway: + enabled: true + ports: + javagateway: + enabled: true + port: 10052 + snmptraps: + enabled: true + ports: + snmptraps: + protocol: UDP + enabled: true + port: 162 + targetPort: 1162 + agent: + type: ClusterIP + enabled: true + ports: + agent: + enabled: true + port: 10050 + webservice: + type: ClusterIP + enabled: true + ports: + webservice: + enabled: true + protocol: HTTP + port: 10053 + +probes: + liveness: + port: "{{ .Values.service.server.ports.server.port }}" + readiness: + port: "{{ .Values.service.server.ports.server.port }}" + startup: + port: "{{ .Values.service.server.ports.server.port }}" + +persistence: + # Server + serveralertscripts: + enabled: true + mountPath: "/usr/lib/zabbix/alertscripts" + size: 256Gi + serverexternalscripts: + enabled: true + mountPath: "/usr/lib/zabbix/externalscripts" + size: 256Gi + servermodules: + enabled: true + mountPath: "/var/lib/zabbix/modules" + size: 256Gi + serverenc: + enabled: true + mountPath: "/var/lib/zabbix/enc" + size: 256Gi + serversshkeys: + enabled: true + mountPath: "/var/lib/zabbix/ssh_keys" + size: 256Gi + serversslcerts: + enabled: true + mountPath: "/var/lib/zabbix/ssl/certs" + size: 256Gi + serversslkeys: + enabled: true + mountPath: "/var/lib/zabbix/ssl/keys" + size: 256Gi + serversslca: + enabled: true + mountPath: "/var/lib/zabbix/ssl/ssl_ca" + size: 256Gi + serverexport: + # Used with conjunction of .Values.zabbix.server.export_file_size + enabled: true + mountPath: "/var/lib/zabbix/export" + size: 256Gi + # SNMP Traps and Server + snmptraps: + enabled: true + mountPath: /var/lib/zabbix/snmptraps + size: 256Gi + snmpmibs: + enabled: true + mountPath: /var/lib/zabbix/mibs + size: 256Gi + # Agent2 Volumes + hostproc: + enabled: true + noMount: true + readOnly: true + type: hostPath + hostPath: /proc + mountPath: /host/proc + hostsys: + enabled: true + noMount: true + readOnly: true + type: hostPath + hostPath: /sys + mountPath: /host/sys + agentconf: + enabled: true + noMount: true + mountPath: /etc/zabbix/zabbix_agentd.d + size: 256Gi + agentenc: + enabled: true + noMount: true + mountPath: /var/lib/zabbix/enc + size: 256Gi + agentbuffer: + enabled: true + noMount: true + mountPath: /var/lib/zabbix/buffer + size: 256Gi + # Java Gateway + javagatewaylibs: + enabled: true + noMount: true + mountPath: /usr/sbin/zabbix_java/ext_lib + size: 256Gi + +postgresql: + enabled: true + existingSecret: "dbcreds" + postgresqlUsername: zabbix + postgresqlDatabase: zabbix + +portal: + enabled: true diff --git a/incubator/zabbix/1.0.0/questions.yaml b/incubator/zabbix/1.0.0/questions.yaml new file mode 100644 index 00000000000..e841d9ada69 --- /dev/null +++ b/incubator/zabbix/1.0.0/questions.yaml @@ -0,0 +1,6365 @@ +groups: + - name: Container Image + description: Image to be used for container + - name: Controller + description: Configure Workload Deployment + - name: Container Configuration + description: Additional Container Configuration + - name: App Configuration + description: App Specific Config Options + - name: Networking and Services + description: Configure Network and Services for Container + - name: Storage and Persistence + description: Persist and Share Data that is Separate from the Container + - name: Ingress + description: Ingress Configuration + - name: Security and Permissions + description: Configure Security Context and Permissions + - name: Resources and Devices + description: "Specify Resources/Devices to be Allocated to Workload" + - name: Middlewares + description: Traefik Middlewares + - name: Metrics + description: Metrics + - name: Addons + description: Addon Configuration + - name: Advanced + description: Advanced Configuration + - name: Documentation + description: Documentation +portals: + open: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: global + label: Global Settings + group: Controller + schema: + type: dict + hidden: true + attrs: + - variable: isSCALE + label: Flag this is SCALE + schema: + type: boolean + default: true + hidden: true + - variable: controller + group: Controller + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: advanced + label: Show Advanced Controller Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: Please specify type of workload to deploy + label: (Advanced) Controller Type + schema: + type: string + required: true + enum: + - value: deployment + description: Deployment + - value: statefulset + description: Statefulset + - value: daemonset + description: Daemonset + default: deployment + - variable: replicas + description: Number of desired pod replicas + label: Desired Replicas + schema: + type: int + required: true + default: 1 + - variable: strategy + description: Please specify type of workload to deploy + label: (Advanced) Update Strategy + schema: + type: string + required: true + enum: + - value: Recreate + description: "Recreate: Kill existing pods before creating new ones" + - value: RollingUpdate + description: "RollingUpdate: Create new pods and then kill old ones" + - value: OnDelete + description: "(Legacy) OnDelete: ignore .spec.template changes" + default: Recreate + - variable: expert + label: Show Expert Configuration Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: Controller Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Controller Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: customextraargs + group: Controller + label: "Extra Args" + description: "Do not click this unless you know what you are doing" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: extraArgs + label: Extra Args + schema: + type: list + default: [] + items: + - variable: arg + label: Arg + schema: + type: string + - variable: zabbix + group: Container Configuration + label: Zabbix Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: server + label: Server Configuration + description: Info about configuration options in https://www.zabbix.com/documentation/current/en/manual/appendix/config/zabbix_server + schema: + additional_attrs: true + type: dict + attrs: + - variable: listen_backlog + label: ListenBacklog + description: The maximum number of pending connections in the TCP queue. + schema: + type: int + default: 0 + - variable: debug_level + label: DebugLevel + description: Specifies debug level + schema: + type: int + default: 3 + - variable: load_modules + label: LoadModule + description: Module to load at server startup. + schema: + type: list + default: [] + items: + - variable: ip_entry + label: IP Entry + schema: + type: string + default: "" + - variable: timeout + label: Timeout + description: Spend no more than Timeout seconds on processing. + schema: + type: int + default: 4 + - variable: service_manager_sync_freq + label: ServiceManagerSyncFrequency + description: Determines how often Zabbix will synchronize configuration of a service manager in seconds. + schema: + type: int + default: 60 + - variable: start_report_writers + label: StartReportWriters + description: Number of pre-forked instances of report writers. + schema: + type: int + default: 0 + - variable: start_pollers + label: StartPollers + description: Number of pre-forked instances of pollers. + schema: + type: int + default: 5 + - variable: start_ipmi_pollers + label: StartPreprocessors + description: Number of pre-forked instances of IPMI pollers. + schema: + type: int + default: 0 + - variable: start_preprocessors + label: StartPreprocessors + description: Number of pre-forked instances of preprocessing workers. + schema: + type: int + default: 3 + - variable: start_pollers_unreachable + label: StartPollersUnreachable + description: Number of pre-forked instances of pollers for unreachable hosts (including IPMI and Java). + schema: + type: int + default: 1 + - variable: start_trappers + label: StartTrappers + description: Number of pre-forked instances of trappers. + schema: + type: int + default: 5 + - variable: start_pingers + label: StartPingers + description: Number of pre-forked instances of ICMP pingers. + schema: + type: int + default: 1 + - variable: start_discoverers + label: StartDiscoverers + description: Number of pre-forked instances of discoverers. + schema: + type: int + default: 1 + - variable: start_history_pollers + label: StartHistoryPollers + description: Number of pre-forked instances of history pollers. + schema: + type: int + default: 5 + - variable: start_http_pollers + label: StartHTTPPollers + description: Number of pre-forked instances of HTTP pollers. + schema: + type: int + default: 1 + - variable: start_obdc_pollers + label: StartODBCPollers + description: Number of pre-forked instances of ODBC pollers. + schema: + type: int + default: 1 + - variable: start_timers + label: StartTimers + description: Number of pre-forked instances of timers. + schema: + type: int + default: 1 + - variable: start_escalators + label: StartEscalators + description: Number of pre-forked instances of escalators. + schema: + type: int + default: 1 + - variable: start_alerters + label: StartAlerters + description: Number of pre-forked instances of alerters. + schema: + type: int + default: 3 + - variable: start_java_pollers + label: StartJavaPollers + description: Number of pre-forked instances of Java pollers. + schema: + type: int + default: 5 + - variable: start_db_syncers + label: StartDBSyncers + description: Number of pre-forked instances of history syncers. + schema: + type: int + default: 4 + - variable: start_proxy_pollers + label: StartProxyPollers + description: Number of pre-forked instances of pollers for passive proxies1. + schema: + type: int + default: 1 + - variable: start_lld_processors + label: StartLLDProcessors + description: Number of pre-forked instances of low-level discovery (LLD) workers. + schema: + type: int + default: 1 + - variable: start_vmware_collectors + label: StartVMwareCollectors + description: Number of pre-forked VMware collector instances. + schema: + type: int + default: 0 + - variable: vmware_frequency + label: VMwareFrequency + description: Delay in seconds between data gathering from a single VMware service. + schema: + type: int + default: 60 + - variable: vmware_perf_frequency + label: VMwarePerfFrequency + description: Delay in seconds between performance counter statistics retrieval from a single VMware service. + schema: + type: int + default: 60 + - variable: vmware_cache_size + label: VMwareCacheSize + description: Shared memory size for storing VMware data. + schema: + type: string + default: 8M + - variable: vmware_timeout + label: VMwareTimeout + description: The maximum number of seconds vmware collector will wait for a response from VMware service (vCenter or ESX hypervisor). + schema: + type: int + default: 10 + - variable: housekeeping_freq + label: HousekeepingFrequency + description: Determines how often Zabbix will perform housekeeping procedure in hours. + schema: + type: int + default: 1 + - variable: max_housekeeper_delete + label: MaxHousekeeperDelete + description: No more than 'MaxHousekeeperDelete' rows (corresponding to [tablename], [field], [value]) will be deleted per one task in one housekeeping cycle. + schema: + type: int + default: 5000 + - variable: problem_housekeeper_freq + label: ProblemHousekeepingFrequency + description: Determines how often Zabbix will delete problems for deleted triggers in seconds. + schema: + type: int + default: 60 + - variable: cache_size + label: CacheSize + description: Size of configuration cache, in bytes. + schema: + type: string + default: 32M + - variable: cache_update_freq + label: CacheUpdateFrequency + description: Determines how often Zabbix will perform update of configuration cache in seconds. + schema: + type: int + default: 60 + - variable: history_cache_size + label: HistoryCacheSize + description: Size of history cache, in bytes. + schema: + type: string + default: 16M + - variable: history_index_cache_size + label: HistoryIndexCacheSize + description: Size of history index cache, in bytes. + schema: + type: string + default: 4M + - variable: history_storage_date_index + label: HistoryStorageDateIndex + description: Enable preprocessing of history values in history storage to store values in different indices based on date + schema: + type: boolean + default: false + - variable: trend_cache_size + label: TrendCacheSize + description: Size of trend cache, in bytes. + schema: + type: string + default: 4M + - variable: trend_function_cache_size + label: TrendFunctionCacheSize + description: Size of trend function cache, in bytes. + schema: + type: string + default: 4M + - variable: value_cache_size + label: ValueCacheSize + description: Size of history value cache, in bytes. + schema: + type: string + default: 8M + - variable: trapper_timeout + label: TrapperTimeout + description: Specifies how many seconds trapper may spend processing new data. + schema: + type: int + default: 300 + - variable: unreachable_period + label: UnreachablePeriod + description: Determines after how many seconds of unreachability treats a host as unavailable. + schema: + type: int + default: 45 + - variable: unreachable_delay + label: UnreachableDelay + description: Determines how often host is checked for availability during the unreachability period in seconds. + schema: + type: int + default: 15 + - variable: unavailable_delay + label: UnavailableDelay + description: Determines how often host is checked for availability during the unavailability period in seconds. + schema: + type: int + default: 60 + - variable: log_slow_queries + label: LogSlowQueries + description: Determines how long a database query may take before being logged in milliseconds. + schema: + type: int + default: 3000 + - variable: proxy_config_freq + label: ProxyConfigFrequency + description: Determines how often Zabbix server sends configuration data to a Zabbix proxy in seconds. Used only for proxies in a passive mode. + schema: + type: int + default: 3600 + - variable: proxy_data_freq + label: ProxyDataFrequency + description: Determines how often Zabbix server requests history data from a Zabbix proxy in seconds. Used only for proxies in a passive mode. + schema: + type: int + default: 1 + - variable: export_file_size + label: ExportFileSize + description: Maximum size per export file in bytes. Only used for rotation if ExportDir is set. + schema: + type: string + default: 1G + - variable: export_type + label: ExportType + description: Entity types (events, history, trends) for real-time export (all types by default). + schema: + type: list + default: [] + items: + - variable: type_entry + label: ExportType Entry + schema: + type: string + default: "" + - variable: stats_allowed_ips + label: StatsAllowedIP + description: IP addresses, optionally in CIDR notation, or DNS names of external Zabbix instances. Stats request will be accepted only from the addresses listed here. + schema: + type: list + default: [] + items: + - variable: stat_allowed_ip_entry + label: StatsAllowedIP Entry + schema: + type: string + default: "" + - variable: frontend + label: Frontend Configuration + description: Info about configuration options in https://hub.docker.com/r/zabbix/zabbix-web-nginx-pgsql + schema: + additional_attrs: true + type: dict + attrs: + - variable: server_name + label: ServerName + schema: + type: string + default: My Zabbix Server + - variable: enable_access_logs + label: WebAccessLogs + description: Sets the Access Log directive for Web-server. + schema: + type: boolean + default: true + - variable: max_execution_time + label: MaxExecutionTime + description: The variable is PHP max_execution_time option + schema: + type: int + default: 300 + - variable: memory_limit + label: MemoryLimit + description: The variable is PHP memory_limit option. + schema: + type: string + default: 128M + - variable: post_max_size + label: PostMaxSize + description: The variable is PHP post_max_size option. + schema: + type: string + default: 16M + - variable: upload_max_file_size + label: UploadMaxFileSize + description: The variable is PHP upload_max_filesize option. + schema: + type: string + default: 2M + - variable: max_input_time + label: MaxInputTime + description: The variable is PHP max_input_time option. + schema: + type: int + default: 300 + - variable: session_name + label: SessionName + description: Used as the name of the Zabbix frontend session cookie. + schema: + type: string + default: zbx_sessionid + - variable: deny_gui_access + label: DenyGUIAccess + description: Enable maintenance mode for Zabbix web-interface. + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: warning_message + label: WarningMessage + description: Information message about maintenance period for Zabbix web-interface. + schema: + type: string + default: Zabbix Server is under maintenance + - variable: access_ip_range + label: AccessIPRange + description: IP addresses which are allowed for accessing to Zabbix web-interface during maintenance period. + schema: + type: list + default: [] + items: + - variable: ip_entry + label: IP Entry + schema: + type: string + default: "" + - variable: sso_settings + label: SSOSettings + description: The variable allows to specify custom SSO settings in JSON format. + schema: + type: string + default: "" + - variable: php_fpm_pm + label: PHP FPM PM + schema: + type: string + default: dynamic + - variable: php_fpm_pm_max_children + label: PHP FPM PM Max Children + schema: + type: int + default: 50 + - variable: php_fpm_pm_start_servers + label: PHP FPM PM Start Servers + schema: + type: int + default: 5 + - variable: php_fpm_pm_min_spare_servers + label: PHP FPM PM Min Spare Servers + schema: + type: int + default: 5 + - variable: php_fpm_pm_max_spare_servers + label: PHP FPM PM Max Spare Servers + schema: + type: int + default: 35 + - variable: php_fpm_pm_max_requests + label: PHP FPM PM Max Requests + schema: + type: int + default: 0 + - variable: agent + label: Agent Configuration + description: Info about configuration options in https://www.zabbix.com/documentation/current/en/manual/appendix/config/zabbix_agent2 + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Agent + schema: + type: boolean + default: true + show_subquestions_if: true + subquestions: + - variable: hostname + label: Hostname + description: Required for active checks and must match hostnames as configured on the server. + schema: + type: list + default: ["Zabbix server"] + items: + - variable: hostnameEntry + label: Hostname Entry + schema: + type: string + default: "" + - variable: hostname_item + label: HostnameItem + description: Item used for generating Hostname if it is not defined. Ignored if Hostname is defined. + schema: + type: string + default: "" + - variable: metadata + label: HostMetadata + description: Optional parameter that defines host metadata. + schema: + type: string + default: "" + - variable: metadata_item + label: HostMetadataItem + description: Optional parameter that defines an item used for getting host metadata. + schema: + type: string + default: "" + - variable: timeout + label: Timeout + description: Spend no more than Timeout seconds on processing. + schema: + type: int + default: 3 + - variable: enable_persistent_buffer + label: EnablePersistentBuffer + description: Enable usage of local persistent storage for active items. + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: persistent_buffer_period + label: PersistentBufferPeriod + description: The time period for which data should be stored, when there is no connection to the server or proxy. Older data will be lost. Log data will be preserved. + schema: + type: string + default: 1h + - variable: refresh_active_checks + label: RefreshActiveChecks + description: How often the list of active checks is refreshed, in seconds. + schema: + type: int + default: 120 + - variable: buffer_send + label: BufferSend + description: The time interval in seconds which determines how often values are sent from the buffer to Zabbix server. + schema: + type: int + default: 5 + - variable: buffer_size + label: BufferSize + description: Maximum number of values in a memory buffer. The agent will send all collected data to Zabbix server or proxy if the buffer is full. + schema: + type: int + default: 100 + - variable: unsafe_user_parameters + label: UnsafeUserParameters + description: Allow all characters to be passed in arguments to user-defined parameters. + schema: + type: boolean + default: false + - variable: tls_connect + label: TLSConnect + description: How the agent should connect to Zabbix server or proxy. Used for active checks. + schema: + type: string + default: unencrypted + enum: + - value: unencrypted + description: unencrypted + - value: psk + description: psk + - value: cert + description: cert + - variable: tls_accept + label: TLSAccept + description: What incoming connections to accept. Used for a passive checks. Multiple values can be specified. + schema: + type: list + default: ["unencrypted"] + items: + - variable: tls_accept_entry + label: TLSAccept Entry + schema: + type: string + default: "" + - variable: psk_identity + label: TLSPSKIdentity + description: Pre-shared key identity string, used for encrypted communications with Zabbix server. + schema: + type: string + default: "" + - variable: psk_file + label: TLSPSKFile + description: Full pathname of a file containing the agent pre-shared key used for encrypted communications with Zabbix components. + schema: + type: string + default: "" + - variable: allow_key + label: AllowKey + description: Allow execution of those item keys that match a pattern. Key pattern is a wildcard expression that supports "*" character to match any number of any characters + schema: + type: string + default: "" + - variable: deny_key + label: DenyKey + description: Deny execution of those item keys that match a pattern. Key pattern is a wildcard expression that supports "*" character to match any number of any characters. + schema: + type: string + default: "" + - variable: javagateway + label: Java Gateway Configuration + description: Info about configuration options in https://www.zabbix.com/documentation/current/en/manual/appendix/config/zabbix_java + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Java Gateway + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: start_pollers + label: Start Pollers + description: Number of worker threads to start. + schema: + type: int + default: 3 + - variable: timeout + label: Timeout + description: Spend no more than Timeout seconds on processing. + schema: + type: int + default: 3 + - variable: debug_level + label: DebugLevel + description: Specifies debug level + schema: + type: string + default: info + - variable: webservice + label: WebService Configuration + description: Info about configuration options in https://www.zabbix.com/documentation/current/en/manual/appendix/config/zabbix_web_service + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable WebService + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: debug_level + label: DebugLevel + description: Specifies debug level + schema: + type: int + default: 3 + - variable: timeout + label: Timeout + description: Spend no more than Timeout seconds on processing. + schema: + type: int + default: 10 + - variable: snmptraps + label: SNMP Traps Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable SNMP Traps + schema: + type: boolean + default: false + - variable: TZ + label: Timezone + group: Container Configuration + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: envList + label: Extra Environment Variables + description: "Please be aware that some variables are set in the background, adding duplicates here might cause issues or prevent the app from starting..." + group: Container Configuration + schema: + type: list + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: expertpodconf + group: Container Configuration + label: Show Expert Configuration + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: tty + label: Enable TTY + description: Determines whether containers in a pod runs with TTY enabled. By default pod has it disabled. + group: Workload Details + schema: + type: boolean + default: false + - variable: stdin + label: Enable STDIN + description: Determines whether containers in a pod runs with stdin enabled. By default pod has it disabled. + group: Workload Details + schema: + type: boolean + default: false + - variable: termination + group: Container Configuration + label: Termination settings + schema: + additional_attrs: true + type: dict + attrs: + - variable: gracePeriodSeconds + label: Grace Period Seconds + schema: + type: int + default: 10 + - variable: podLabelsList + group: Container Configuration + label: Pod Labels + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: podAnnotationsList + group: Container Configuration + label: Pod Annotations + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: service + group: Networking and Services + label: Configure Service(s) + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: Main Service + description: The Primary service on which the healthcheck runs, often the webUI + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the Service + schema: + type: boolean + default: true + hidden: true + - variable: type + label: Service Type + description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: LoadBalancer + enum: + - value: LoadBalancer + description: LoadBalancer (Expose Ports) + - value: ClusterIP + description: ClusterIP (Do Not Expose Ports) + - value: Simple + description: Deprecated CHANGE THIS + - variable: loadBalancerIP + label: LoadBalancer IP + description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: advancedsvcset + label: Show Advanced Service Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + type: list + default: [] + items: + - variable: externalIP + label: External IP + schema: + type: string + - variable: ipFamilyPolicy + label: IP Family Policy + description: Specify the IP Policy + schema: + type: string + default: SingleStack + enum: + - value: SingleStack + description: SingleStack + - value: PreferDualStack + description: PreferDualStack + - value: RequireDualStack + description: RequireDualStack + - variable: ipFamilies + label: IP Families + description: The IP Families that should be used + schema: + type: list + default: [] + items: + - variable: ipFamily + label: IP Family + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: Main Service Port Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + description: This port exposes the container port on the service + schema: + type: int + default: 10211 + required: true + - variable: advanced + label: Show Advanced Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: Enable the Port + schema: + type: boolean + hidden: true + default: true + - variable: protocol + label: Port Type + schema: + type: string + default: HTTP + enum: + - value: HTTP + description: HTTP + - value: HTTPS + description: HTTPS + - value: TCP + description: TCP + - value: UDP + description: UDP + - variable: nodePort + label: Node Port (Optional) + description: This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: Target Port + description: The internal(!) port on the container the Application runs on + schema: + type: int + default: 8080 + - variable: server + label: Server Service + description: The Server Service + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the Service + schema: + type: boolean + default: true + hidden: true + - variable: type + label: Service Type + description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: LoadBalancer + enum: + - value: LoadBalancer + description: LoadBalancer (Expose Ports) + - value: ClusterIP + description: ClusterIP (Do Not Expose Ports) + - value: Simple + description: Deprecated CHANGE THIS + - variable: loadBalancerIP + label: LoadBalancer IP + description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: advancedsvcset + label: Show Advanced Service Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + type: list + default: [] + items: + - variable: externalIP + label: External IP + schema: + type: string + - variable: ipFamilyPolicy + label: IP Family Policy + description: Specify the IP Policy + schema: + type: string + default: SingleStack + enum: + - value: SingleStack + description: SingleStack + - value: PreferDualStack + description: PreferDualStack + - value: RequireDualStack + description: RequireDualStack + - variable: ipFamilies + label: IP Families + description: The IP Families that should be used + schema: + type: list + default: [] + items: + - variable: ipFamily + label: IP Family + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: server + label: Server Service Port Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + description: This port exposes the container port on the service + schema: + type: int + default: 10051 + required: true + - variable: advanced + label: Show Advanced Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: Enable the Port + schema: + type: boolean + hidden: true + default: true + - variable: protocol + label: Port Type + schema: + type: string + default: TCP + enum: + - value: HTTP + description: HTTP + - value: HTTPS + description: HTTPS + - value: TCP + description: TCP + - value: UDP + description: UDP + - variable: nodePort + label: Node Port (Optional) + description: This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: Target Port + description: The internal(!) port on the container the Application runs on + schema: + type: int + default: 10051 + - variable: javagateway + label: Java Gateway Service + description: The Java Gateway Service + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the Service + schema: + type: boolean + default: true + hidden: true + - variable: type + label: Service Type + description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: LoadBalancer + enum: + - value: LoadBalancer + description: LoadBalancer (Expose Ports) + - value: ClusterIP + description: ClusterIP (Do Not Expose Ports) + - value: Simple + description: Deprecated CHANGE THIS + - variable: loadBalancerIP + label: LoadBalancer IP + description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: advancedsvcset + label: Show Advanced Service Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + type: list + default: [] + items: + - variable: externalIP + label: External IP + schema: + type: string + - variable: ipFamilyPolicy + label: IP Family Policy + description: Specify the IP Policy + schema: + type: string + default: SingleStack + enum: + - value: SingleStack + description: SingleStack + - value: PreferDualStack + description: PreferDualStack + - value: RequireDualStack + description: RequireDualStack + - variable: ipFamilies + label: IP Families + description: The IP Families that should be used + schema: + type: list + default: [] + items: + - variable: ipFamily + label: IP Family + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: javagateway + label: Java Gateway Service Port Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + description: This port exposes the container port on the service + schema: + type: int + default: 10052 + required: true + - variable: advanced + label: Show Advanced Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: Enable the Port + schema: + type: boolean + hidden: true + default: true + - variable: protocol + label: Port Type + schema: + type: string + default: TCP + enum: + - value: HTTP + description: HTTP + - value: HTTPS + description: HTTPS + - value: TCP + description: TCP + - value: UDP + description: UDP + - variable: nodePort + label: Node Port (Optional) + description: This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: Target Port + description: The internal(!) port on the container the Application runs on + schema: + type: int + default: 10052 + - variable: snmptraps + label: SNMP Traps Service + description: SNMP Traps Service + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the Service + schema: + type: boolean + default: true + hidden: true + - variable: type + label: Service Type + description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: LoadBalancer + enum: + - value: LoadBalancer + description: LoadBalancer (Expose Ports) + - value: ClusterIP + description: ClusterIP (Do Not Expose Ports) + - value: Simple + description: Deprecated CHANGE THIS + - variable: loadBalancerIP + label: LoadBalancer IP + description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: advancedsvcset + label: Show Advanced Service Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + type: list + default: [] + items: + - variable: externalIP + label: External IP + schema: + type: string + - variable: ipFamilyPolicy + label: IP Family Policy + description: Specify the IP Policy + schema: + type: string + default: SingleStack + enum: + - value: SingleStack + description: SingleStack + - value: PreferDualStack + description: PreferDualStack + - value: RequireDualStack + description: RequireDualStack + - variable: ipFamilies + label: IP Families + description: The IP Families that should be used + schema: + type: list + default: [] + items: + - variable: ipFamily + label: IP Family + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: snmptraps + label: SNMP Traps Service Port Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + description: This port exposes the container port on the service + schema: + type: int + default: 162 + required: true + - variable: advanced + label: Show Advanced Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: Enable the Port + schema: + type: boolean + hidden: true + default: true + - variable: protocol + label: Port Type + schema: + type: string + default: TCP + enum: + - value: HTTP + description: HTTP + - value: HTTPS + description: HTTPS + - value: TCP + description: TCP + - value: UDP + description: UDP + - variable: nodePort + label: Node Port (Optional) + description: This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: Target Port + description: The internal(!) port on the container the Application runs on + schema: + type: int + default: 1162 + - variable: agent + label: Agent Service + description: Agent Service + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the Service + schema: + type: boolean + default: true + hidden: true + - variable: type + label: Service Type + description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: ClusterIP + enum: + - value: LoadBalancer + description: LoadBalancer (Expose Ports) + - value: ClusterIP + description: ClusterIP (Do Not Expose Ports) + - value: Simple + description: Deprecated CHANGE THIS + - variable: loadBalancerIP + label: LoadBalancer IP + description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: advancedsvcset + label: Show Advanced Service Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + type: list + default: [] + items: + - variable: externalIP + label: External IP + schema: + type: string + - variable: ipFamilyPolicy + label: IP Family Policy + description: Specify the IP Policy + schema: + type: string + default: SingleStack + enum: + - value: SingleStack + description: SingleStack + - value: PreferDualStack + description: PreferDualStack + - value: RequireDualStack + description: RequireDualStack + - variable: ipFamilies + label: IP Families + description: The IP Families that should be used + schema: + type: list + default: [] + items: + - variable: ipFamily + label: IP Family + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: agent + label: Agent Service Port Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + description: This port exposes the container port on the service + schema: + type: int + default: 10050 + required: true + - variable: advanced + label: Show Advanced Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: Enable the Port + schema: + type: boolean + hidden: true + default: true + - variable: protocol + label: Port Type + schema: + type: string + default: TCP + enum: + - value: HTTP + description: HTTP + - value: HTTPS + description: HTTPS + - value: TCP + description: TCP + - value: UDP + description: UDP + - variable: nodePort + label: Node Port (Optional) + description: This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: Target Port + description: The internal(!) port on the container the Application runs on + schema: + type: int + default: 10050 + - variable: webservice + label: WebService Service + description: WebService Service + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the Service + schema: + type: boolean + default: true + hidden: true + - variable: type + label: Service Type + description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: ClusterIP + enum: + - value: LoadBalancer + description: LoadBalancer (Expose Ports) + - value: ClusterIP + description: ClusterIP (Do Not Expose Ports) + - value: Simple + description: Deprecated CHANGE THIS + - variable: loadBalancerIP + label: LoadBalancer IP + description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: advancedsvcset + label: Show Advanced Service Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + type: list + default: [] + items: + - variable: externalIP + label: External IP + schema: + type: string + - variable: ipFamilyPolicy + label: IP Family Policy + description: Specify the IP Policy + schema: + type: string + default: SingleStack + enum: + - value: SingleStack + description: SingleStack + - value: PreferDualStack + description: PreferDualStack + - value: RequireDualStack + description: RequireDualStack + - variable: ipFamilies + label: IP Families + description: The IP Families that should be used + schema: + type: list + default: [] + items: + - variable: ipFamily + label: IP Family + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: webservice + label: WebService Service Port Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + description: This port exposes the container port on the service + schema: + type: int + default: 10053 + required: true + - variable: advanced + label: Show Advanced Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: Enable the Port + schema: + type: boolean + hidden: true + default: true + - variable: protocol + label: Port Type + schema: + type: string + default: HTTP + enum: + - value: HTTP + description: HTTP + - value: HTTPS + description: HTTPS + - value: TCP + description: TCP + - value: UDP + description: UDP + - variable: nodePort + label: Node Port (Optional) + description: This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: Target Port + description: The internal(!) port on the container the Application runs on + schema: + type: int + default: 10053 + - variable: serviceexpert + group: Networking and Services + label: Show Expert Config + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: Networking and Services + label: Host-Networking (Complicated) + schema: + type: boolean + default: false + - variable: externalInterfaces + description: Add External Interfaces + label: Add external Interfaces + group: Networking + schema: + type: list + items: + - variable: interfaceConfiguration + description: Interface Configuration + label: Interface Configuration + schema: + type: dict + $ref: + - "normalize/interfaceConfiguration" + attrs: + - variable: hostInterface + description: Please Specify Host Interface + label: Host Interface + schema: + type: string + required: true + $ref: + - "definitions/interface" + - variable: ipam + description: Define how IP Address will be managed + label: IP Address Management + schema: + type: dict + required: true + attrs: + - variable: type + description: Specify type for IPAM + label: IPAM Type + schema: + type: string + required: true + enum: + - value: dhcp + description: Use DHCP + - value: static + description: Use Static IP + show_subquestions_if: static + subquestions: + - variable: staticIPConfigurations + label: Static IP Addresses + schema: + type: list + items: + - variable: staticIP + label: Static IP + schema: + type: ipaddr + cidr: true + - variable: staticRoutes + label: Static Routes + schema: + type: list + items: + - variable: staticRouteConfiguration + label: Static Route Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: destination + label: Destination + schema: + type: ipaddr + cidr: true + required: true + - variable: gateway + label: Gateway + schema: + type: ipaddr + cidr: false + required: true + - variable: dnsPolicy + group: Networking and Services + label: dnsPolicy + schema: + type: string + default: "" + enum: + - value: "" + description: Default + - value: ClusterFirst + description: ClusterFirst + - value: ClusterFirstWithHostNet + description: ClusterFirstWithHostNet + - value: None + description: None + - variable: dnsConfig + label: DNS Configuration + group: Networking and Services + description: Specify custom DNS configuration which will be applied to the pod + schema: + additional_attrs: true + type: dict + attrs: + - variable: nameservers + label: Name Servers + schema: + default: [] + type: list + items: + - variable: nameserver + label: Name Server + schema: + type: string + - variable: options + label: Options + schema: + default: [] + type: list + items: + - variable: option + label: Option Entry + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: searches + label: Searches + schema: + default: [] + type: list + items: + - variable: search + label: Search Entry + schema: + type: string + - variable: serviceList + label: Add Manual Custom Services + group: Networking and Services + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: Custom Service + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the service + schema: + type: boolean + default: true + hidden: true + - variable: name + label: Name + schema: + type: string + default: "" + - variable: type + label: Service Type + description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: LoadBalancer + enum: + - value: LoadBalancer + description: LoadBalancer (Expose Ports) + - value: ClusterIP + description: ClusterIP (Do Not Expose Ports) + - value: Simple + description: Deprecated CHANGE THIS + - variable: loadBalancerIP + label: LoadBalancer IP + description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: advancedsvcset + label: Show Advanced Service Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + type: list + default: [] + items: + - variable: externalIP + label: External IP + schema: + type: string + - variable: ipFamilyPolicy + label: IP Family Policy + description: Specify the IP Policy + schema: + type: string + default: SingleStack + enum: + - value: SingleStack + description: SingleStack + - value: PreferDualStack + description: PreferDualStack + - value: RequireDualStack + description: RequireDualStack + - variable: ipFamilies + label: IP Families + description: (Advanced) The IP Families that should be used + schema: + type: list + default: [] + items: + - variable: ipFamily + label: IP Family + schema: + type: string + - variable: portsList + label: Additional Service Ports + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: Custom ports + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the Port + schema: + type: boolean + default: true + hidden: true + - variable: name + label: Port Name + schema: + type: string + default: "" + - variable: protocol + label: Port Type + schema: + type: string + default: TCP + enum: + - value: HTTP + description: HTTP + - value: HTTPS + description: HTTPS + - value: TCP + description: TCP + - value: UDP + description: UDP + - variable: targetPort + label: Target Port + description: This port exposes the container port on the service + schema: + type: int + required: true + - variable: port + label: Container Port + schema: + type: int + required: true + - variable: persistence + label: Integrated Persistent Storage + description: Integrated Persistent Storage + group: Storage and Persistence + schema: + additional_attrs: true + type: dict + attrs: + - variable: serveralertscripts + label: Server - Alert Scripts Storage + description: Stores the Application Alert Scripts. + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: simplePVC + enum: + - value: simplePVC + description: PVC (simple) + - value: simpleHP + description: Host Path (simple) + - value: emptyDir + description: emptyDir + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: nfs + description: NFS Share + - variable: server + label: NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: path + label: Path on NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: setPermissionsSimple + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "simpleHP"]] + type: boolean + default: false + - variable: setPermissions + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - variable: hostPathSimple + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "simpleHP"]] + type: hostpath + - variable: hostPath + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: medium + label: EmptyDir Medium + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: Memory + description: Memory + - variable: size + label: Size quotum of Storage + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: hostPathType + label: (Advanced) hostPath Type + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: DirectoryOrCreate + description: DirectoryOrCreate + - value: Directory + description: Directory + - value: FileOrCreate + description: FileOrCreate + - value: File + description: File + - value: Socket + description: Socket + - value: CharDevice + description: CharDevice + - value: BlockDevice + description: BlockDevice + - variable: storageClass + label: (Advanced) storageClass + description: "Warning: Anything other than SCALE-ZFS or empty will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: SCALE-ZFS + - variable: accessMode + label: (Advanced) Access Mode + description: Allow or disallow multiple PVC's writhing to the same PV + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: ReadWriteOnce + enum: + - value: ReadWriteOnce + description: ReadWriteOnce + - value: ReadOnlyMany + description: ReadOnlyMany + - value: ReadWriteMany + description: ReadWriteMany + - variable: advanced + label: Show Advanced Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: serverexternalscripts + label: Server - External Scripts Storage + description: Stores the Application External Scripts. + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: simplePVC + enum: + - value: simplePVC + description: PVC (simple) + - value: simpleHP + description: Host Path (simple) + - value: emptyDir + description: emptyDir + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: nfs + description: NFS Share + - variable: server + label: NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: path + label: Path on NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: setPermissionsSimple + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "simpleHP"]] + type: boolean + default: false + - variable: setPermissions + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - variable: hostPathSimple + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "simpleHP"]] + type: hostpath + - variable: hostPath + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: medium + label: EmptyDir Medium + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: Memory + description: Memory + - variable: size + label: Size quotum of Storage + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: hostPathType + label: (Advanced) hostPath Type + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: DirectoryOrCreate + description: DirectoryOrCreate + - value: Directory + description: Directory + - value: FileOrCreate + description: FileOrCreate + - value: File + description: File + - value: Socket + description: Socket + - value: CharDevice + description: CharDevice + - value: BlockDevice + description: BlockDevice + - variable: storageClass + label: (Advanced) storageClass + description: "Warning: Anything other than SCALE-ZFS or empty will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: SCALE-ZFS + - variable: accessMode + label: (Advanced) Access Mode + description: Allow or disallow multiple PVC's writhing to the same PV + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: ReadWriteOnce + enum: + - value: ReadWriteOnce + description: ReadWriteOnce + - value: ReadOnlyMany + description: ReadOnlyMany + - value: ReadWriteMany + description: ReadWriteMany + - variable: advanced + label: Show Advanced Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: servermodules + label: Server - Modules Storage + description: Stores the Application Modules. + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: simplePVC + enum: + - value: simplePVC + description: PVC (simple) + - value: simpleHP + description: Host Path (simple) + - value: emptyDir + description: emptyDir + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: nfs + description: NFS Share + - variable: server + label: NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: path + label: Path on NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: setPermissionsSimple + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "simpleHP"]] + type: boolean + default: false + - variable: setPermissions + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - variable: hostPathSimple + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "simpleHP"]] + type: hostpath + - variable: hostPath + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: medium + label: EmptyDir Medium + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: Memory + description: Memory + - variable: size + label: Size quotum of Storage + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: hostPathType + label: (Advanced) hostPath Type + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: DirectoryOrCreate + description: DirectoryOrCreate + - value: Directory + description: Directory + - value: FileOrCreate + description: FileOrCreate + - value: File + description: File + - value: Socket + description: Socket + - value: CharDevice + description: CharDevice + - value: BlockDevice + description: BlockDevice + - variable: storageClass + label: (Advanced) storageClass + description: "Warning: Anything other than SCALE-ZFS or empty will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: SCALE-ZFS + - variable: accessMode + label: (Advanced) Access Mode + description: Allow or disallow multiple PVC's writhing to the same PV + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: ReadWriteOnce + enum: + - value: ReadWriteOnce + description: ReadWriteOnce + - value: ReadOnlyMany + description: ReadOnlyMany + - value: ReadWriteMany + description: ReadWriteMany + - variable: advanced + label: Show Advanced Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: serverenc + label: Server - Encryption Storage + description: Stores the Application Encryption. + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: simplePVC + enum: + - value: simplePVC + description: PVC (simple) + - value: simpleHP + description: Host Path (simple) + - value: emptyDir + description: emptyDir + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: nfs + description: NFS Share + - variable: server + label: NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: path + label: Path on NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: setPermissionsSimple + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "simpleHP"]] + type: boolean + default: false + - variable: setPermissions + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - variable: hostPathSimple + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "simpleHP"]] + type: hostpath + - variable: hostPath + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: medium + label: EmptyDir Medium + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: Memory + description: Memory + - variable: size + label: Size quotum of Storage + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: hostPathType + label: (Advanced) hostPath Type + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: DirectoryOrCreate + description: DirectoryOrCreate + - value: Directory + description: Directory + - value: FileOrCreate + description: FileOrCreate + - value: File + description: File + - value: Socket + description: Socket + - value: CharDevice + description: CharDevice + - value: BlockDevice + description: BlockDevice + - variable: storageClass + label: (Advanced) storageClass + description: "Warning: Anything other than SCALE-ZFS or empty will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: SCALE-ZFS + - variable: accessMode + label: (Advanced) Access Mode + description: Allow or disallow multiple PVC's writhing to the same PV + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: ReadWriteOnce + enum: + - value: ReadWriteOnce + description: ReadWriteOnce + - value: ReadOnlyMany + description: ReadOnlyMany + - value: ReadWriteMany + description: ReadWriteMany + - variable: advanced + label: Show Advanced Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: serversshkeys + label: Server - SSH Keys Storage + description: Stores the Application SSH Keys. + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: simplePVC + enum: + - value: simplePVC + description: PVC (simple) + - value: simpleHP + description: Host Path (simple) + - value: emptyDir + description: emptyDir + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: nfs + description: NFS Share + - variable: server + label: NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: path + label: Path on NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: setPermissionsSimple + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "simpleHP"]] + type: boolean + default: false + - variable: setPermissions + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - variable: hostPathSimple + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "simpleHP"]] + type: hostpath + - variable: hostPath + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: medium + label: EmptyDir Medium + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: Memory + description: Memory + - variable: size + label: Size quotum of Storage + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: hostPathType + label: (Advanced) hostPath Type + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: DirectoryOrCreate + description: DirectoryOrCreate + - value: Directory + description: Directory + - value: FileOrCreate + description: FileOrCreate + - value: File + description: File + - value: Socket + description: Socket + - value: CharDevice + description: CharDevice + - value: BlockDevice + description: BlockDevice + - variable: storageClass + label: (Advanced) storageClass + description: "Warning: Anything other than SCALE-ZFS or empty will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: SCALE-ZFS + - variable: accessMode + label: (Advanced) Access Mode + description: Allow or disallow multiple PVC's writhing to the same PV + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: ReadWriteOnce + enum: + - value: ReadWriteOnce + description: ReadWriteOnce + - value: ReadOnlyMany + description: ReadOnlyMany + - value: ReadWriteMany + description: ReadWriteMany + - variable: advanced + label: Show Advanced Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: serversslcerts + label: Server - SSL Certs Storage + description: Stores the Application SSL Certs. + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: simplePVC + enum: + - value: simplePVC + description: PVC (simple) + - value: simpleHP + description: Host Path (simple) + - value: emptyDir + description: emptyDir + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: nfs + description: NFS Share + - variable: server + label: NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: path + label: Path on NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: setPermissionsSimple + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "simpleHP"]] + type: boolean + default: false + - variable: setPermissions + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - variable: hostPathSimple + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "simpleHP"]] + type: hostpath + - variable: hostPath + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: medium + label: EmptyDir Medium + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: Memory + description: Memory + - variable: size + label: Size quotum of Storage + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: hostPathType + label: (Advanced) hostPath Type + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: DirectoryOrCreate + description: DirectoryOrCreate + - value: Directory + description: Directory + - value: FileOrCreate + description: FileOrCreate + - value: File + description: File + - value: Socket + description: Socket + - value: CharDevice + description: CharDevice + - value: BlockDevice + description: BlockDevice + - variable: storageClass + label: (Advanced) storageClass + description: "Warning: Anything other than SCALE-ZFS or empty will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: SCALE-ZFS + - variable: accessMode + label: (Advanced) Access Mode + description: Allow or disallow multiple PVC's writhing to the same PV + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: ReadWriteOnce + enum: + - value: ReadWriteOnce + description: ReadWriteOnce + - value: ReadOnlyMany + description: ReadOnlyMany + - value: ReadWriteMany + description: ReadWriteMany + - variable: advanced + label: Show Advanced Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: serversslkeys + label: Server - SSL Keys Storage + description: Stores the Application SSL Keys. + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: simplePVC + enum: + - value: simplePVC + description: PVC (simple) + - value: simpleHP + description: Host Path (simple) + - value: emptyDir + description: emptyDir + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: nfs + description: NFS Share + - variable: server + label: NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: path + label: Path on NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: setPermissionsSimple + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "simpleHP"]] + type: boolean + default: false + - variable: setPermissions + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - variable: hostPathSimple + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "simpleHP"]] + type: hostpath + - variable: hostPath + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: medium + label: EmptyDir Medium + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: Memory + description: Memory + - variable: size + label: Size quotum of Storage + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: hostPathType + label: (Advanced) hostPath Type + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: DirectoryOrCreate + description: DirectoryOrCreate + - value: Directory + description: Directory + - value: FileOrCreate + description: FileOrCreate + - value: File + description: File + - value: Socket + description: Socket + - value: CharDevice + description: CharDevice + - value: BlockDevice + description: BlockDevice + - variable: storageClass + label: (Advanced) storageClass + description: "Warning: Anything other than SCALE-ZFS or empty will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: SCALE-ZFS + - variable: accessMode + label: (Advanced) Access Mode + description: Allow or disallow multiple PVC's writhing to the same PV + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: ReadWriteOnce + enum: + - value: ReadWriteOnce + description: ReadWriteOnce + - value: ReadOnlyMany + description: ReadOnlyMany + - value: ReadWriteMany + description: ReadWriteMany + - variable: advanced + label: Show Advanced Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: serverexport + label: Server - Export Storage + description: Stores the Application Export. + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: simplePVC + enum: + - value: simplePVC + description: PVC (simple) + - value: simpleHP + description: Host Path (simple) + - value: emptyDir + description: emptyDir + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: nfs + description: NFS Share + - variable: server + label: NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: path + label: Path on NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: setPermissionsSimple + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "simpleHP"]] + type: boolean + default: false + - variable: setPermissions + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - variable: hostPathSimple + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "simpleHP"]] + type: hostpath + - variable: hostPath + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: medium + label: EmptyDir Medium + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: Memory + description: Memory + - variable: size + label: Size quotum of Storage + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: hostPathType + label: (Advanced) hostPath Type + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: DirectoryOrCreate + description: DirectoryOrCreate + - value: Directory + description: Directory + - value: FileOrCreate + description: FileOrCreate + - value: File + description: File + - value: Socket + description: Socket + - value: CharDevice + description: CharDevice + - value: BlockDevice + description: BlockDevice + - variable: storageClass + label: (Advanced) storageClass + description: "Warning: Anything other than SCALE-ZFS or empty will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: SCALE-ZFS + - variable: accessMode + label: (Advanced) Access Mode + description: Allow or disallow multiple PVC's writhing to the same PV + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: ReadWriteOnce + enum: + - value: ReadWriteOnce + description: ReadWriteOnce + - value: ReadOnlyMany + description: ReadOnlyMany + - value: ReadWriteMany + description: ReadWriteMany + - variable: advanced + label: Show Advanced Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: serversslca + label: Server - SSL CA Storage + description: Stores the Application SSL CA. + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: simplePVC + enum: + - value: simplePVC + description: PVC (simple) + - value: simpleHP + description: Host Path (simple) + - value: emptyDir + description: emptyDir + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: nfs + description: NFS Share + - variable: server + label: NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: path + label: Path on NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: setPermissionsSimple + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "simpleHP"]] + type: boolean + default: false + - variable: setPermissions + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - variable: hostPathSimple + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "simpleHP"]] + type: hostpath + - variable: hostPath + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: medium + label: EmptyDir Medium + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: Memory + description: Memory + - variable: size + label: Size quotum of Storage + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: hostPathType + label: (Advanced) hostPath Type + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: DirectoryOrCreate + description: DirectoryOrCreate + - value: Directory + description: Directory + - value: FileOrCreate + description: FileOrCreate + - value: File + description: File + - value: Socket + description: Socket + - value: CharDevice + description: CharDevice + - value: BlockDevice + description: BlockDevice + - variable: storageClass + label: (Advanced) storageClass + description: "Warning: Anything other than SCALE-ZFS or empty will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: SCALE-ZFS + - variable: accessMode + label: (Advanced) Access Mode + description: Allow or disallow multiple PVC's writhing to the same PV + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: ReadWriteOnce + enum: + - value: ReadWriteOnce + description: ReadWriteOnce + - value: ReadOnlyMany + description: ReadOnlyMany + - value: ReadWriteMany + description: ReadWriteMany + - variable: advanced + label: Show Advanced Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: snmptraps + label: SNMP & Server - SNMP Traps Storage + description: Stores the Application SNMP Traps. + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: simplePVC + enum: + - value: simplePVC + description: PVC (simple) + - value: simpleHP + description: Host Path (simple) + - value: emptyDir + description: emptyDir + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: nfs + description: NFS Share + - variable: server + label: NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: path + label: Path on NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: setPermissionsSimple + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "simpleHP"]] + type: boolean + default: false + - variable: setPermissions + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - variable: hostPathSimple + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "simpleHP"]] + type: hostpath + - variable: hostPath + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: medium + label: EmptyDir Medium + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: Memory + description: Memory + - variable: size + label: Size quotum of Storage + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: hostPathType + label: (Advanced) hostPath Type + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: DirectoryOrCreate + description: DirectoryOrCreate + - value: Directory + description: Directory + - value: FileOrCreate + description: FileOrCreate + - value: File + description: File + - value: Socket + description: Socket + - value: CharDevice + description: CharDevice + - value: BlockDevice + description: BlockDevice + - variable: storageClass + label: (Advanced) storageClass + description: "Warning: Anything other than SCALE-ZFS or empty will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: SCALE-ZFS + - variable: accessMode + label: (Advanced) Access Mode + description: Allow or disallow multiple PVC's writhing to the same PV + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: ReadWriteOnce + enum: + - value: ReadWriteOnce + description: ReadWriteOnce + - value: ReadOnlyMany + description: ReadOnlyMany + - value: ReadWriteMany + description: ReadWriteMany + - variable: advanced + label: Show Advanced Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: snmpmibs + label: SNMP & Server - SNMP MIBS Storage + description: Stores the Application SNMP MIBS. + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: simplePVC + enum: + - value: simplePVC + description: PVC (simple) + - value: simpleHP + description: Host Path (simple) + - value: emptyDir + description: emptyDir + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: nfs + description: NFS Share + - variable: server + label: NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: path + label: Path on NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: setPermissionsSimple + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "simpleHP"]] + type: boolean + default: false + - variable: setPermissions + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - variable: hostPathSimple + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "simpleHP"]] + type: hostpath + - variable: hostPath + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: medium + label: EmptyDir Medium + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: Memory + description: Memory + - variable: size + label: Size quotum of Storage + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: hostPathType + label: (Advanced) hostPath Type + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: DirectoryOrCreate + description: DirectoryOrCreate + - value: Directory + description: Directory + - value: FileOrCreate + description: FileOrCreate + - value: File + description: File + - value: Socket + description: Socket + - value: CharDevice + description: CharDevice + - value: BlockDevice + description: BlockDevice + - variable: storageClass + label: (Advanced) storageClass + description: "Warning: Anything other than SCALE-ZFS or empty will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: SCALE-ZFS + - variable: accessMode + label: (Advanced) Access Mode + description: Allow or disallow multiple PVC's writhing to the same PV + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: ReadWriteOnce + enum: + - value: ReadWriteOnce + description: ReadWriteOnce + - value: ReadOnlyMany + description: ReadOnlyMany + - value: ReadWriteMany + description: ReadWriteMany + - variable: advanced + label: Show Advanced Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: agentconf + label: Agent - Configuration Storage + description: Stores the Application Configuration. + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: simplePVC + enum: + - value: simplePVC + description: PVC (simple) + - value: simpleHP + description: Host Path (simple) + - value: emptyDir + description: emptyDir + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: nfs + description: NFS Share + - variable: server + label: NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: path + label: Path on NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: setPermissionsSimple + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "simpleHP"]] + type: boolean + default: false + - variable: setPermissions + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - variable: hostPathSimple + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "simpleHP"]] + type: hostpath + - variable: hostPath + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: medium + label: EmptyDir Medium + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: Memory + description: Memory + - variable: size + label: Size quotum of Storage + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: hostPathType + label: (Advanced) hostPath Type + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: DirectoryOrCreate + description: DirectoryOrCreate + - value: Directory + description: Directory + - value: FileOrCreate + description: FileOrCreate + - value: File + description: File + - value: Socket + description: Socket + - value: CharDevice + description: CharDevice + - value: BlockDevice + description: BlockDevice + - variable: storageClass + label: (Advanced) storageClass + description: "Warning: Anything other than SCALE-ZFS or empty will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: SCALE-ZFS + - variable: accessMode + label: (Advanced) Access Mode + description: Allow or disallow multiple PVC's writhing to the same PV + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: ReadWriteOnce + enum: + - value: ReadWriteOnce + description: ReadWriteOnce + - value: ReadOnlyMany + description: ReadOnlyMany + - value: ReadWriteMany + description: ReadWriteMany + - variable: advanced + label: Show Advanced Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: agentenc + label: Agent - Encryption Storage + description: Stores the Application Encryption. + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: simplePVC + enum: + - value: simplePVC + description: PVC (simple) + - value: simpleHP + description: Host Path (simple) + - value: emptyDir + description: emptyDir + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: nfs + description: NFS Share + - variable: server + label: NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: path + label: Path on NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: setPermissionsSimple + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "simpleHP"]] + type: boolean + default: false + - variable: setPermissions + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - variable: hostPathSimple + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "simpleHP"]] + type: hostpath + - variable: hostPath + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: medium + label: EmptyDir Medium + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: Memory + description: Memory + - variable: size + label: Size quotum of Storage + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: hostPathType + label: (Advanced) hostPath Type + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: DirectoryOrCreate + description: DirectoryOrCreate + - value: Directory + description: Directory + - value: FileOrCreate + description: FileOrCreate + - value: File + description: File + - value: Socket + description: Socket + - value: CharDevice + description: CharDevice + - value: BlockDevice + description: BlockDevice + - variable: storageClass + label: (Advanced) storageClass + description: "Warning: Anything other than SCALE-ZFS or empty will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: SCALE-ZFS + - variable: accessMode + label: (Advanced) Access Mode + description: Allow or disallow multiple PVC's writhing to the same PV + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: ReadWriteOnce + enum: + - value: ReadWriteOnce + description: ReadWriteOnce + - value: ReadOnlyMany + description: ReadOnlyMany + - value: ReadWriteMany + description: ReadWriteMany + - variable: advanced + label: Show Advanced Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: agentbuffer + label: Agent - Buffer Storage + description: Stores the Application Buffer. + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: simplePVC + enum: + - value: simplePVC + description: PVC (simple) + - value: simpleHP + description: Host Path (simple) + - value: emptyDir + description: emptyDir + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: nfs + description: NFS Share + - variable: server + label: NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: path + label: Path on NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: setPermissionsSimple + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "simpleHP"]] + type: boolean + default: false + - variable: setPermissions + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - variable: hostPathSimple + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "simpleHP"]] + type: hostpath + - variable: hostPath + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: medium + label: EmptyDir Medium + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: Memory + description: Memory + - variable: size + label: Size quotum of Storage + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: hostPathType + label: (Advanced) hostPath Type + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: DirectoryOrCreate + description: DirectoryOrCreate + - value: Directory + description: Directory + - value: FileOrCreate + description: FileOrCreate + - value: File + description: File + - value: Socket + description: Socket + - value: CharDevice + description: CharDevice + - value: BlockDevice + description: BlockDevice + - variable: storageClass + label: (Advanced) storageClass + description: "Warning: Anything other than SCALE-ZFS or empty will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: SCALE-ZFS + - variable: accessMode + label: (Advanced) Access Mode + description: Allow or disallow multiple PVC's writhing to the same PV + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: ReadWriteOnce + enum: + - value: ReadWriteOnce + description: ReadWriteOnce + - value: ReadOnlyMany + description: ReadOnlyMany + - value: ReadWriteMany + description: ReadWriteMany + - variable: advanced + label: Show Advanced Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: javagatewaylibs + label: Java Gateway - Libs Storage + description: Stores the Application Libs. + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: simplePVC + enum: + - value: simplePVC + description: PVC (simple) + - value: simpleHP + description: Host Path (simple) + - value: emptyDir + description: emptyDir + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: nfs + description: NFS Share + - variable: server + label: NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: path + label: Path on NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: setPermissionsSimple + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "simpleHP"]] + type: boolean + default: false + - variable: setPermissions + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - variable: hostPathSimple + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "simpleHP"]] + type: hostpath + - variable: hostPath + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: medium + label: EmptyDir Medium + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: Memory + description: Memory + - variable: size + label: Size quotum of Storage + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: hostPathType + label: (Advanced) hostPath Type + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: DirectoryOrCreate + description: DirectoryOrCreate + - value: Directory + description: Directory + - value: FileOrCreate + description: FileOrCreate + - value: File + description: File + - value: Socket + description: Socket + - value: CharDevice + description: CharDevice + - value: BlockDevice + description: BlockDevice + - variable: storageClass + label: (Advanced) storageClass + description: "Warning: Anything other than SCALE-ZFS or empty will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: SCALE-ZFS + - variable: accessMode + label: (Advanced) Access Mode + description: Allow or disallow multiple PVC's writhing to the same PV + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: ReadWriteOnce + enum: + - value: ReadWriteOnce + description: ReadWriteOnce + - value: ReadOnlyMany + description: ReadOnlyMany + - value: ReadWriteMany + description: ReadWriteMany + - variable: advanced + label: Show Advanced Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: persistenceList + label: Additional App Storage + group: Storage and Persistence + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: Custom Storage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the storage + schema: + type: boolean + default: true + hidden: true + - variable: name + label: Name (Optional) + description: "Not required, please set to config when mounting /config or temp when mounting /tmp" + schema: + type: string + - variable: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: simpleHP + enum: + - value: simplePVC + description: PVC (Simple) + - value: simpleHP + description: Host Path (Simple) + - value: emptyDir + description: emptyDir + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: nfs + description: NFS Share + - variable: server + label: NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: path + label: Path on NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: setPermissionsSimple + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "simpleHP"]] + type: boolean + default: false + - variable: setPermissions + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - variable: hostPathSimple + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "simpleHP"]] + type: hostpath + - variable: hostPath + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: Mount Path + description: Path inside the container the storage is mounted + schema: + type: string + default: "" + required: true + valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' + - variable: medium + label: EmptyDir Medium + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: Memory + description: Memory + - variable: size + label: Size Quotum of Storage + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: hostPathType + label: (Advanced) Host Path Type + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: DirectoryOrCreate + description: DirectoryOrCreate + - value: Directory + description: Directory + - value: FileOrCreate + description: FileOrCreate + - value: File + description: File + - value: Socket + description: Socket + - value: CharDevice + description: CharDevice + - value: BlockDevice + description: BlockDevice + - variable: storageClass + label: (Advanced) StorageClass + description: "Warning: Anything other than SCALE-ZFS or empty will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: SCALE-ZFS + - variable: accessMode + label: (Advanced) Access Mode + description: Allow or disallow multiple PVC's writhing to the same PV + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: ReadWriteOnce + enum: + - value: ReadWriteOnce + description: ReadWriteOnce + - value: ReadOnlyMany + description: ReadOnlyMany + - value: ReadWriteMany + description: ReadWriteMany + - variable: advanced + label: Show Advanced Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: ingress + label: "" + group: Ingress + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: Main Ingress + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Ingress + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: Hosts + schema: + type: list + default: [] + items: + - variable: hostEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: host + label: HostName + schema: + type: string + default: "" + required: true + - variable: paths + label: Paths + schema: + type: list + default: [] + items: + - variable: pathEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: path + label: Path + schema: + type: string + required: true + default: "/" + - variable: pathType + label: Path Type + schema: + type: string + required: true + default: Prefix + - variable: tls + label: TLS-Settings + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: hosts + label: Certificate Hosts + schema: + type: list + default: [] + items: + - variable: host + label: Host + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: Select TrueNAS SCALE Certificate + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: (Advanced) Traefik Entrypoint + description: Entrypoint used by Traefik when using Traefik as Ingress Provider + schema: + type: string + default: websecure + required: true + - variable: middlewares + label: Traefik Middlewares + description: Add previously created Traefik Middlewares to this Ingress + schema: + type: list + default: [] + items: + - variable: name + label: Name + schema: + type: string + default: "" + required: true + - variable: expert + label: Show Expert Configuration Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enableFixedMiddlewares + description: These middlewares enforce a number of best practices. + label: Enable Default Middlewares + schema: + type: boolean + default: true + - variable: ingressClassName + label: IngressClass Name + schema: + type: string + default: "" + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: ingressList + label: Add Manual Custom Ingresses + group: Ingress + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: Custom Ingress + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Ingress + schema: + type: boolean + default: true + hidden: true + - variable: name + label: Name + schema: + type: string + default: "" + - variable: ingressClassName + label: IngressClass Name + schema: + type: string + default: "" + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: hosts + label: Hosts + schema: + type: list + default: [] + items: + - variable: hostEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: host + label: HostName + schema: + type: string + default: "" + required: true + - variable: paths + label: Paths + schema: + type: list + default: [] + items: + - variable: pathEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: path + label: Path + schema: + type: string + required: true + default: "/" + - variable: pathType + label: Path Type + schema: + type: string + required: true + default: Prefix + - variable: service + label: Linked Service + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Service Name + schema: + type: string + default: "" + - variable: port + label: Service Port + schema: + type: int + - variable: tls + label: TLS-Settings + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: hosts + label: Certificate Hosts + schema: + type: list + default: [] + items: + - variable: host + label: Host + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: Select TrueNAS SCALE Certificate + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: Traefik Entrypoint + description: Entrypoint used by Traefik when using Traefik as Ingress Provider + schema: + type: string + default: websecure + required: true + - variable: middlewares + label: Traefik Middlewares + description: Add previously created Traefik Middlewares to this Ingress + schema: + type: list + default: [] + items: + - variable: name + label: Name + schema: + type: string + default: "" + required: true + - variable: security + label: Container Security Settings + group: Security and Permissions + schema: + type: dict + additional_attrs: true + attrs: + - variable: editsecurity + label: Change PUID / UMASK values + description: By enabling this you override default set values. + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: PUID + label: Process User ID - PUID + description: When supported by the container, this sets the User ID running the Application Process. Not supported by all Apps + schema: + type: int + default: 568 + - variable: UMASK + label: UMASK + description: When supported by the container, this sets the UMASK for the App. Not supported by all Apps + schema: + type: string + default: "002" + - variable: advancedSecurity + label: Show Advanced Security Settings + group: Security and Permissions + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: Security Context + schema: + additional_attrs: true + type: dict + attrs: + - variable: privileged + label: Privileged mode + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: ReadOnly Root Filesystem + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: Allow Privilege Escalation + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: runAsNonRoot + schema: + type: boolean + default: false + - variable: capabilities + label: Capabilities + schema: + additional_attrs: true + type: dict + attrs: + - variable: drop + label: Drop Capability + schema: + type: list + default: [] + items: + - variable: dropEntry + label: "" + schema: + type: string + - variable: add + label: Add Capability + schema: + type: list + default: [] + items: + - variable: addEntry + label: "" + schema: + type: string + - variable: podSecurityContext + group: Security and Permissions + label: Pod Security Context + schema: + additional_attrs: true + type: dict + attrs: + - variable: runAsUser + label: runAsUser + description: The UserID of the user running the application + schema: + type: int + default: 1997 + - variable: runAsGroup + label: runAsGroup + description: The groupID this App of the user running the application + schema: + type: int + default: 0 + - variable: fsGroup + label: fsGroup + description: The group that should own ALL storage. + schema: + type: int + default: 568 + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: OnRootMismatch + enum: + - value: OnRootMismatch + description: OnRootMismatch + - value: Always + description: Always + - variable: supplementalGroups + label: Supplemental Groups + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: Supplemental Group + schema: + type: int + + - variable: advancedresources + label: Set Custom Resource Limits/Requests (Advanced) + group: Resources and Devices + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: resources + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: limits + label: Advanced Limit Resource Consumption + schema: + additional_attrs: true + type: dict + attrs: + - variable: cpu + label: CPU + description: "1000m means 1 hyperthread. Detailed info: https://truecharts.org/docs/manual/SCALE%20Apps/indepth/validation" + schema: + type: string + default: 4000m + valid_chars: '^(?!^0(\.0|m|)$)([0-9]+)(\.[0-9]|m?)$' + - variable: memory + label: RAM + description: "1Gi means 1 Gibibyte RAM. Detailed info: https://truecharts.org/docs/manual/SCALE%20Apps/indepth/validation" + schema: + type: string + default: 8Gi + valid_chars: '^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$' + - variable: requests + label: "Minimum Resources Required (request)" + schema: + additional_attrs: true + type: dict + attrs: + - variable: cpu + label: CPU + description: "1000m means 1 hyperthread. Detailed info: https://truecharts.org/docs/manual/SCALE%20Apps/indepth/validation" + schema: + type: string + default: 10m + valid_chars: '^(?!^0(\.0|m|)$)([0-9]+)(\.[0-9]|m?)$' + - variable: memory + label: "RAM" + description: "1Gi means 1 Gibibyte RAM. Detailed info: https://truecharts.org/docs/manual/SCALE%20Apps/indepth/validation" + schema: + type: string + default: 50Mi + valid_chars: '^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$' + - variable: deviceList + label: Mount USB Devices + group: Resources and Devices + schema: + type: list + default: [] + items: + - variable: deviceListEntry + label: Device + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the Storage + schema: + type: boolean + default: true + - variable: type + label: (Advanced) Type of Storage + description: Sets the persistence type + schema: + type: string + default: hostPath + hidden: true + - variable: readOnly + label: readOnly + schema: + type: boolean + default: false + - variable: hostPath + label: Host Device Path + description: Path to the device on the host system + schema: + type: path + - variable: mountPath + label: Container Device Path + description: Path inside the container the device is mounted + schema: + type: string + default: "/dev/ttyACM0" + # Specify GPU configuration + - variable: scaleGPU + label: GPU Configuration + group: Resources and Devices + schema: + type: dict + $ref: + - "definitions/gpuConfiguration" + attrs: [] + - variable: horizontalPodAutoscaler + group: Advanced + label: (Advanced) Horizontal Pod Autoscaler + schema: + type: list + default: [] + items: + - variable: hpaEntry + label: HPA Entry + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + default: "" + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: Target + description: Deployment name, Defaults to Main Deployment + schema: + type: string + default: "" + - variable: minReplicas + label: Minimum Replicas + schema: + type: int + default: 1 + - variable: maxReplicas + label: Maximum Replicas + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: Target CPU Utilization Percentage + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: Target Memory Utilization Percentage + schema: + type: int + default: 80 + - variable: networkPolicy + group: Advanced + label: (Advanced) Network Policy + schema: + type: list + default: [] + items: + - variable: netPolicyEntry + label: Network Policy Entry + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + default: "" + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: policyType + label: Policy Type + schema: + type: string + default: "" + enum: + - value: "" + description: Default + - value: ingress + description: Ingress + - value: egress + description: Egress + - value: ingress-egress + description: Ingress and Egress + - variable: egress + label: Egress + schema: + type: list + default: [] + items: + - variable: egressEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: to + label: To + schema: + type: list + default: [] + items: + - variable: toEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: ipBlock + label: IP Block + schema: + additional_attrs: true + type: dict + attrs: + - variable: cidr + label: CIDR + schema: + type: string + default: "" + - variable: except + label: Except + schema: + type: list + default: [] + items: + - variable: exceptint + label: "" + schema: + type: string + - variable: namespaceSelector + label: Namespace Selector + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: podSelector + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: ports + label: Ports + schema: + type: list + default: [] + items: + - variable: portsEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + schema: + type: int + - variable: endPort + label: End Port + schema: + type: int + - variable: protocol + label: Protocol + schema: + type: string + default: TCP + enum: + - value: TCP + description: TCP + - value: UDP + description: UDP + - value: SCTP + description: SCTP + - variable: ingress + label: Ingress + schema: + type: list + default: [] + items: + - variable: ingressEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: from + label: From + schema: + type: list + default: [] + items: + - variable: fromEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: ipBlock + label: IP Block + schema: + additional_attrs: true + type: dict + attrs: + - variable: cidr + label: CIDR + schema: + type: string + default: "" + - variable: except + label: Except + schema: + type: list + default: [] + items: + - variable: exceptint + label: "" + schema: + type: string + - variable: namespaceSelector + label: Namespace Selector + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: podSelector + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: ports + label: Ports + schema: + type: list + default: [] + items: + - variable: portsEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + schema: + type: int + - variable: endPort + label: End Port + schema: + type: int + - variable: protocol + label: Protocol + schema: + type: string + default: TCP + enum: + - value: TCP + description: TCP + - value: UDP + description: UDP + - value: SCTP + description: SCTP + - variable: addons + group: Addons + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: codeserver + label: Codeserver + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: git + label: Git Settings + schema: + additional_attrs: true + type: dict + attrs: + - variable: deployKey + description: Raw SSH Private Key + label: Deploy Key + schema: + type: string + - variable: deployKeyBase64 + description: Base64-encoded SSH private key. When both variables are set, the raw SSH key takes precedence + label: Deploy Key Base64 + schema: + type: string + - variable: service + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Service Type + description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: LoadBalancer + enum: + - value: NodePort + description: Deprecated CHANGE THIS + - value: ClusterIP + description: ClusterIP + - value: LoadBalancer + description: LoadBalancer + - variable: loadBalancerIP + label: LoadBalancer IP + description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: advancedsvcset + label: Show Advanced Service Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + type: list + default: [] + items: + - variable: externalIP + label: External IP + schema: + type: string + - variable: ipFamilyPolicy + label: IP Family Policy + description: Specify the IP Policy + schema: + type: string + default: SingleStack + enum: + - value: SingleStack + description: SingleStack + - value: PreferDualStack + description: PreferDualStack + - value: RequireDualStack + description: RequireDualStack + - variable: ipFamilies + label: IP Families + description: (Advanced) The IP Families that should be used + schema: + type: list + default: [] + items: + - variable: ipFamily + label: IP Family + schema: + type: string + - variable: ports + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: codeserver + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + schema: + type: int + default: 36107 + - variable: nodePort + description: Leave Empty to Disable + label: nodePort DEPRECATED + schema: + type: int + default: 36107 + - variable: envList + label: Codeserver Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + - variable: promtail + label: Promtail + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: loki + label: Loki URL + schema: + type: string + required: true + - variable: logs + label: Log Paths + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: path + label: Path + schema: + type: string + required: true + - variable: args + label: Promtail Command Line Arguments + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: arg + label: Arg + schema: + type: string + required: true + - variable: envList + label: Promtail Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + - variable: netshoot + label: Netshoot + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: envList + label: Netshoot Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + - variable: vpn + label: VPN + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type + schema: + type: string + default: disabled + enum: + - value: disabled + description: disabled + - value: openvpn + description: OpenVPN + - value: wireguard + description: Wireguard + - value: tailscale + description: Tailscale + - variable: openvpn + label: OpenVPN Settings + schema: + type: dict + show_if: [["type", "=", "openvpn"]] + attrs: + - variable: username + label: Authentication Username (Optional) + description: Authentication Username, Optional + schema: + type: string + default: "" + - variable: password + label: Authentication Password + description: Authentication Credentials + schema: + type: string + default: "" + required: true + - variable: tailscale + label: Tailscale Settings + schema: + type: dict + show_if: [["type", "=", "tailscale"]] + attrs: + - variable: authkey + label: Authentication Key + description: Provide an auth key to automatically authenticate the node as your user account. + schema: + type: string + private: true + default: "" + - variable: accept_dns + label: Accept DNS + description: Accept DNS configuration from the admin console. + schema: + type: boolean + default: false + - variable: userspace + label: Userspace + description: Userspace Networking mode allows running Tailscale where you do not have access to create a VPN tunnel device. + schema: + type: boolean + default: false + - variable: routes + label: Routes + description: Expose physical subnet routes to your entire Tailscale network. + schema: + type: string + default: "" + - variable: dest_ip + label: Destination IP + description: Tells the DNAT mechanism which Destination IP to set in the IP header, and where to send packets that are matched. + schema: + type: string + default: "" + - variable: sock5_server + label: Sock5 Server + description: Sock5 Server + schema: + type: string + default: "" + - variable: extra_args + label: Extra Args + description: Extra Args + schema: + type: string + default: "" + - variable: daemon_extra_args + label: Tailscale Daemon Extra Args + description: Tailscale Daemon Extra Args + schema: + type: string + default: "" + - variable: killSwitch + label: Enable Killswitch + schema: + type: boolean + show_if: [["type", "!=", "disabled"]] + default: true + - variable: excludedNetworks_IPv4 + label: Killswitch Excluded IPv4 networks + description: List of Killswitch Excluded IPv4 Addresses + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: networkv4 + label: IPv4 Network + schema: + type: string + required: true + - variable: excludedNetworks_IPv6 + label: Killswitch Excluded IPv6 networks + description: "List of Killswitch Excluded IPv6 Addresses" + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: networkv6 + label: IPv6 Network + schema: + type: string + required: true + - variable: configFile + label: VPN Config File Location + schema: + type: dict + show_if: [["type", "!=", "disabled"]] + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: true + hidden: true + - variable: type + label: Type + schema: + type: string + default: hostPath + hidden: true + - variable: hostPathType + label: hostPathType + schema: + type: string + default: File + hidden: true + - variable: noMount + label: noMount + schema: + type: boolean + default: true + hidden: true + - variable: hostPath + label: Full Path to File + description: "Path to your local VPN config file for example: /mnt/tank/vpn.conf or /mnt/tank/vpn.ovpn" + schema: + type: string + default: "" + - variable: envList + label: VPN Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + - variable: docs + group: Documentation + label: Please read the documentation at https://truecharts.org + description: Please read the documentation at +
https://truecharts.org + schema: + additional_attrs: true + type: dict + attrs: + - variable: confirmDocs + label: I have checked the documentation + schema: + type: boolean + default: true + - variable: donateNag + group: Documentation + label: Please consider supporting TrueCharts, see https://truecharts.org/sponsor + description: Please consider supporting TrueCharts, see +
https://truecharts.org/sponsor + schema: + additional_attrs: true + type: dict + attrs: + - variable: confirmDonate + label: I have considered donating + schema: + type: boolean + default: true + hidden: true diff --git a/incubator/zabbix/1.0.0/templates/_agent.tpl b/incubator/zabbix/1.0.0/templates/_agent.tpl new file mode 100644 index 00000000000..7d756db6618 --- /dev/null +++ b/incubator/zabbix/1.0.0/templates/_agent.tpl @@ -0,0 +1,50 @@ +{{- define "zabbix.agent2" -}} +image: {{ .Values.agent2Image.repository }}:{{ .Values.agent2Image.tag }} +imagePullPolicy: {{ .Values.agent2Image.pullPolicy }} +securityContext: + runAsUser: {{ .Values.podSecurityContext.runAsUser }} + runAsGroup: {{ .Values.podSecurityContext.runAsGroup }} + readOnlyRootFilesystem: {{ .Values.securityContext.readOnlyRootFilesystem }} + runAsNonRoot: {{ .Values.securityContext.runAsNonRoot }} + capabilities: + add: + - SYS_TIME +volumeMounts: + - name: hostsys + mountPath: {{ .Values.persistence.hostsys.mountPath }} + - name: hostproc + mountPath: {{ .Values.persistence.hostproc.mountPath }} + - name: agentconf + mountPath: {{ .Values.persistence.agentconf.mountPath }} + - name: agentenc + mountPath: {{ .Values.persistence.agentenc.mountPath }} + - name: agentbuffer + mountPath: {{ .Values.persistence.agentbuffer.mountPath }} +envFrom: + - configMapRef: + name: '{{ include "tc.common.names.fullname" . }}-agent-config' +ports: + - containerPort: {{ .Values.service.agent.ports.agent.port }} + name: agent +readinessProbe: + tcpSocket: + port: {{ .Values.service.main.ports.main.targetPort }} + initialDelaySeconds: {{ .Values.probes.readiness.spec.initialDelaySeconds }} + timeoutSeconds: {{ .Values.probes.readiness.spec.timeoutSeconds }} + periodSeconds: {{ .Values.probes.readiness.spec.periodSeconds }} + failureThreshold: {{ .Values.probes.readiness.spec.failureThreshold }} +livenessProbe: + tcpSocket: + port: {{ .Values.service.main.ports.main.targetPort }} + initialDelaySeconds: {{ .Values.probes.liveness.spec.initialDelaySeconds }} + timeoutSeconds: {{ .Values.probes.liveness.spec.timeoutSeconds }} + periodSeconds: {{ .Values.probes.liveness.spec.periodSeconds }} + failureThreshold: {{ .Values.probes.liveness.spec.failureThreshold }} +startupProbe: + tcpSocket: + port: {{ .Values.service.main.ports.main.targetPort }} + initialDelaySeconds: {{ .Values.probes.startup.spec.initialDelaySeconds }} + timeoutSeconds: {{ .Values.probes.startup.spec.timeoutSeconds }} + periodSeconds: {{ .Values.probes.startup.spec.periodSeconds }} + failureThreshold: {{ .Values.probes.startup.spec.failureThreshold }} +{{- end -}} diff --git a/incubator/zabbix/1.0.0/templates/_config.tpl b/incubator/zabbix/1.0.0/templates/_config.tpl new file mode 100644 index 00000000000..b9d96bfa820 --- /dev/null +++ b/incubator/zabbix/1.0.0/templates/_config.tpl @@ -0,0 +1,209 @@ +{{/* Define the configmap */}} +{{- define "zabbix.config" -}} + +{{- $serverConfigName := printf "%s-server-config" (include "tc.common.names.fullname" .) }} +{{- $commonConfigName := printf "%s-common-config" (include "tc.common.names.fullname" .) }} +{{- $frontendConfigName := printf "%s-frontend-config" (include "tc.common.names.fullname" .) }} +{{- $agentConfigName := printf "%s-agent-config" (include "tc.common.names.fullname" .) }} +{{- $javagatewayConfigName := printf "%s-javagateway-config" (include "tc.common.names.fullname" .) }} +{{- $webserviceConfigName := printf "%s-webservice-config" (include "tc.common.names.fullname" .) }} + +--- + +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ $commonConfigName }} + labels: + {{- include "tc.common.labels" . | nindent 4 }} +data: + DB_SERVER_HOST: {{ printf "%v-%v" .Release.Name "postgresql" }} + DB_SERVER_PORT: "5432" + POSTGRES_USER: {{ .Values.postgresql.postgresqlUsername }} + POSTGRES_DB: {{ .Values.postgresql.postgresqlDatabase }} + +--- + +{{- $server := .Values.zabbix.server }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ $serverConfigName }} + labels: + {{- include "tc.common.labels" . | nindent 4 }} +data: + ZBX_LISTENPORT: {{ .Values.service.server.ports.server.port | quote }} + {{- with $server.listen_backlog }} + ZBX_LISTENBACKLOG: {{ . | quote }} + {{- end }} + ZBX_LOADMODULE: "{{ range initial $server.load_modules }}{{ . }},{{ end }}{{ with last $server.load_modules }}{{ . }}{{ end }}" + ZBX_DEBUGLEVEL: {{ $server.debug_level | quote }} + ZBX_TIMEOUT: {{ $server.timeout | quote }} + ZBX_WEBSERVICEURL: http://localhost:{{ .Values.service.webservice.ports.webservice.port }} + ZBX_SERVICEMANAGERSYNCFREQUENCY: {{ $server.service_manager_sync_freq | quote }} + ZBX_STARTREPORTWRITERS: {{ $server.start_report_writers | quote }} + ZBX_STARTPOLLERS: {{ $server.start_pollers | quote }} + ZBX_IPMIPOLLERS: {{ $server.start_ipmi_pollers | quote }} + ZBX_STARTPREPROCESSORS: {{ $server.start_preprocessors | quote }} + ZBX_STARTPOLLERSUNREACHABLE: {{ $server.start_pollers_unreachable | quote }} + ZBX_STARTTRAPPERS: {{ $server.start_trappers | quote }} + ZBX_STARTPINGERS: {{ $server.start_pingers | quote }} + ZBX_STARTDISCOVERERS: {{ $server.start_discoverers | quote }} + ZBX_STARTHISTORYPOLLERS: {{ $server.start_history_pollers | quote }} + ZBX_STARTHTTPPOLLERS: {{ $server.start_http_pollers | quote }} + ZBX_STARTODBCPOLLERS: {{ $server.start_obdc_pollers | quote }} + ZBX_STARTTIMERS: {{ $server.start_timers | quote }} + ZBX_STARTESCALATORS: {{ $server.start_escalators | quote }} + ZBX_STARTALERTERS: {{ $server.start_alerters | quote }} + ZBX_STARTJAVAPOLLERS: {{ $server.start_java_pollers | quote }} + ZBX_STARTVMWARECOLLECTORS: {{ $server.start_vmware_collectors | quote }} + ZBX_VMWAREFREQUENCY: {{ $server.vmware_frequency | quote }} + ZBX_VMWAREPERFFREQUENCY: {{ $server.vmware_perf_frequency | quote }} + ZBX_VMWARECACHESIZE: {{ $server.vmware_cache_size }} + ZBX_VMWARETIMEOUT: {{ $server.vmware_timeout | quote }} + ZBX_HOUSEKEEPINGFREQUENCY: {{ $server.housekeeping_freq | quote }} + ZBX_MAXHOUSEKEEPERDELETE: {{ $server.max_housekeeper_delete | quote }} + ZBX_PROBLEMHOUSEKEEPINGFREQUENCY: {{ $server.problem_housekeeper_freq | quote }} + ZBX_CACHESIZE: {{ $server.cache_size }} + ZBX_CACHEUPDATEFREQUENCY: {{ $server.cache_update_freq | quote }} + ZBX_STARTDBSYNCERS: {{ $server.start_db_syncers | quote }} + ZBX_HISTORYCACHESIZE: {{ $server.history_cache_size }} + ZBX_HISTORYINDEXCACHESIZE: {{ $server.history_index_cache_size}} + ZBX_HISTORYSTORAGEDATEINDEX: {{ ternary "1" "0" $server.history_storage_date_index | quote }} + ZBX_TRENDCACHESIZE: {{ $server.trend_cache_size }} + ZBX_TRENDFUNCTIONCACHESIZE: {{ $server.trend_function_cache_size }} + ZBX_VALUECACHESIZE: {{ $server.value_cache_size }} + ZBX_TRAPPERTIMEOUT: {{ $server.trapper_timeout | quote }} + ZBX_UNREACHABLEPERIOD: {{ $server.unreachable_period | quote }} + ZBX_UNAVAILABLEDELAY: {{ $server.unavailable_delay | quote }} + ZBX_UNREACHABLEDELAY: {{ $server.unreachable_delay | quote }} + ZBX_LOGSLOWQUERIES: {{ $server.log_slow_queries | quote }} + ZBX_STARTPROXYPOLLERS: {{ $server.start_proxy_pollers | quote }} + ZBX_PROXYCONFIGFREQUENCY: {{ $server.proxy_config_freq | quote }} + ZBX_PROXYDATAFREQUENCY: {{ $server.proxy_data_freq | quote }} + ZBX_STARTLLDPROCESSORS: {{ $server.start_lld_processors | quote }} + ZBX_EXPORTFILESIZE: {{ $server.export_file_size }} + ZBX_EXPORTTYPE: "{{ range initial $server.export_type }}{{ . }},{{ end }}{{ with last $server.export_type }}{{ . }}{{ end }}" + ZBX_STATSALLOWEDIP: "{{ range initial $server.stats_allowed_ips }}{{ . }},{{ end }}{{ with last $server.stats_allowed_ips }}{{ . }}{{ end }}" + ZBX_ENABLE_SNMP_TRAPS: {{ .Values.zabbix.snmptraps.enabled | quote }} + ZBX_JAVAGATEWAY_ENABLE: {{ .Values.zabbix.javagateway.enabled | quote }} + ZBX_JAVAGATEWAY: localhost + ZBX_JAVAGATEWAYPORT: {{ .Values.service.javagateway.ports.javagateway.port | quote }} + +--- + +{{- $agent := .Values.zabbix.agent }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ $agentConfigName }} + labels: + {{- include "tc.common.labels" . | nindent 4 }} +data: + ZBX_SERVER_HOST: localhost + ZBX_SERVER_PORT: {{ .Values.service.server.ports.server.port | quote }} + {{/* If hostname is set, hostname_item is ignored.*/}} + {{- if not $agent.hostname_item }} + ZBX_HOSTNAME: "{{ range initial $agent.hostname }}{{ . }},{{ end }}{{ with last $agent.hostname }}{{ . }}{{ end }}" + {{- end }} + {{- with $agent.hostname_item }} + ZBX_HOSTNAMEITEM: {{ . | quote }} + {{- end }} + {{/* If metadata is set, metadata_item is ignored.*/}} + {{- if not $agent.metadata_item }} + {{- with $agent.metadata }} + ZBX_METADATA: {{ . }} + {{- end }} + {{- end }} + {{- with $agent.metadata_item }} + ZBX_METADATAITEM: {{ . | quote }} + {{- end }} + ZBX_TIMEOUT: {{ $agent.timeout | quote }} + ZBX_ENABLEPERSISTENTBUFFER: {{ $agent.enable_persistent_buffer | quote }} + ZBX_PERSISTENTBUFFERPERIOD: {{ $agent.persistent_buffer_period }} + ZBX_LISTENPORT: {{ .Values.service.agent.ports.agent.port | quote }} + ZBX_REFRESHACTIVECHECKS: {{ $agent.refresh_active_checks | quote }} + ZBX_BUFFERSEND: {{ $agent.buffer_send | quote }} + ZBX_BUFFERSIZE: {{ $agent.buffer_size | quote }} + ZBX_UNSAFEUSERPARAMETERS: {{ ternary "1" "0" $agent.unsafe_user_parameters | quote }} + ZBX_TLSCONNECT: {{ $agent.tls_connect }} + ZBX_TLSACCEPT: "{{ range initial $agent.tls_accept }}{{ . }},{{ end }}{{ with last $agent.tls_accept }}{{ . }}{{ end }}" + {{- with $agent.psk_identity }} + ZBX_TLSPSKIDENTITY: {{ . }} + {{- end }} + {{- with $agent.psk_file }} + ZBX_TLSPSKFILE: {{ . }} + {{- end }} + {{- with $agent.allow_key }} + ZBX_ALLOWKEY: {{ . | quote }} + {{- end }} + {{- with $agent.deny_key }} + ZBX_DENYKEY: {{ . | quote }} + {{- end }} + +--- + +{{- $frontend := .Values.zabbix.frontend }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ $frontendConfigName }} + labels: + {{- include "tc.common.labels" . | nindent 4 }} +data: + PHP_TZ: {{ .Values.TZ }} + ZBX_SERVER_HOST: localhost + ZBX_SERVER_PORT: {{ .Values.service.server.ports.server.port | quote }} + ZBX_SERVER_NAME: {{ $frontend.server_name }} + ENABLE_WEB_ACCESS_LOG: {{ $frontend.enable_access_logs | quote }} + ZBX_MAXEXECUTIONTIME: {{ $frontend.max_execution_time | quote }} + ZBX_MEMORYLIMIT: {{ $frontend.memory_limit }} + ZBX_POSTMAXSIZE: {{ $frontend.post_max_size }} + ZBX_UPLOADMAXFILESIZE: {{ $frontend.upload_max_file_size }} + ZBX_MAXINPUTTIME: {{ $frontend.max_input_time | quote }} + ZBX_SESSION_NAME: {{ $frontend.session_name }} + ZBX_DENY_GUI_ACCESS: {{ $frontend.deny_gui_access | quote }} + {{- if $frontend.access_ip_range }} + ZBX_GUI_ACCESS_IP_RANGE: '[{{ range initial $frontend.access_ip_range }}{{ . | quote }},{{ end }}{{ with last $frontend.access_ip_range }}{{ . | quote }}{{ end }}]' + {{- end }} + ZBX_GUI_WARNING_MSG: {{ $frontend.warning_message }} + {{- with $frontend.sso_settings }} + ZBX_SSO_SETTINGS: {{ . | quote }} + {{- end }} + PHP_FPM_PM: {{ $frontend.php_fpm_pm }} + PHP_FPM_PM_MAX_CHILDREN: {{ $frontend.php_fpm_pm_max_children | quote }} + PHP_FPM_PM_START_SERVERS: {{ $frontend.php_fpm_pm_start_servers | quote }} + PHP_FPM_PM_MIN_SPARE_SERVERS: {{ $frontend.php_fpm_pm_min_spare_servers | quote }} + PHP_FPM_PM_MAX_SPARE_SERVERS: {{ $frontend.php_fpm_pm_max_spare_servers | quote }} + PHP_FPM_PM_MAX_REQUESTS: {{ $frontend.php_fpm_pm_max_requests | quote }} + +--- + +{{- $javagateway := .Values.zabbix.javagateway }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ $javagatewayConfigName }} + labels: + {{- include "tc.common.labels" . | nindent 4 }} +data: + ZBX_START_POLLERS: {{ $javagateway.start_pollers | quote }} + ZBX_TIMEOUT: {{ $javagateway.timeout | quote }} + ZBX_DEBUGLEVEL: {{ $javagateway.debug_level }} + ZBX_LISTEN_PORT: {{ .Values.service.javagateway.ports.javagateway.port | quote }} + +--- + +{{- $webservice := .Values.zabbix.webservice }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ $webserviceConfigName }} + labels: + {{- include "tc.common.labels" . | nindent 4 }} +data: + ZBX_LISTENPORT: {{ .Values.service.webservice.ports.webservice.port | quote }} + ZBX_ALLOWEDIP: localhost + ZBX_DEBUGLEVEL: {{ $webservice.debug_level | quote }} + ZBX_TIMEOUT: {{ $webservice.timeout | quote }} +{{- end -}} diff --git a/incubator/zabbix/1.0.0/templates/_frontend.tpl b/incubator/zabbix/1.0.0/templates/_frontend.tpl new file mode 100644 index 00000000000..9f29a63c11b --- /dev/null +++ b/incubator/zabbix/1.0.0/templates/_frontend.tpl @@ -0,0 +1,43 @@ +{{- define "zabbix.frontend" -}} +image: {{ .Values.frontendImage.repository }}:{{ .Values.frontendImage.tag }} +imagePullPolicy: {{ .Values.frontendImage.pullPolicy }} +securityContext: + runAsUser: {{ .Values.podSecurityContext.runAsUser }} + runAsGroup: {{ .Values.podSecurityContext.runAsGroup }} + readOnlyRootFilesystem: {{ .Values.securityContext.readOnlyRootFilesystem }} + runAsNonRoot: {{ .Values.securityContext.runAsNonRoot }} +envFrom: + - secretRef: + name: '{{ include "tc.common.names.fullname" . }}-common-secret' + - configMapRef: + name: '{{ include "tc.common.names.fullname" . }}-common-config' + - configMapRef: + name: '{{ include "tc.common.names.fullname" . }}-frontend-config' +ports: + - containerPort: {{ .Values.service.main.ports.main.targetPort }} + name: main +readinessProbe: + httpGet: + path: / + port: {{ .Values.service.main.ports.main.targetPort }} + initialDelaySeconds: {{ .Values.probes.readiness.spec.initialDelaySeconds }} + timeoutSeconds: {{ .Values.probes.readiness.spec.timeoutSeconds }} + periodSeconds: {{ .Values.probes.readiness.spec.periodSeconds }} + failureThreshold: {{ .Values.probes.readiness.spec.failureThreshold }} +livenessProbe: + httpGet: + path: / + port: {{ .Values.service.main.ports.main.targetPort }} + initialDelaySeconds: {{ .Values.probes.liveness.spec.initialDelaySeconds }} + timeoutSeconds: {{ .Values.probes.liveness.spec.timeoutSeconds }} + periodSeconds: {{ .Values.probes.liveness.spec.periodSeconds }} + failureThreshold: {{ .Values.probes.liveness.spec.failureThreshold }} +startupProbe: + httpGet: + path: / + port: {{ .Values.service.main.ports.main.targetPort }} + initialDelaySeconds: {{ .Values.probes.startup.spec.initialDelaySeconds }} + timeoutSeconds: {{ .Values.probes.startup.spec.timeoutSeconds }} + periodSeconds: {{ .Values.probes.startup.spec.periodSeconds }} + failureThreshold: {{ .Values.probes.startup.spec.failureThreshold }} +{{- end -}} diff --git a/incubator/zabbix/1.0.0/templates/_javagateway.tpl b/incubator/zabbix/1.0.0/templates/_javagateway.tpl new file mode 100644 index 00000000000..a0b3186fad3 --- /dev/null +++ b/incubator/zabbix/1.0.0/templates/_javagateway.tpl @@ -0,0 +1,39 @@ +{{- define "zabbix.javagateway" -}} +image: {{ .Values.javaGatewayImage.repository }}:{{ .Values.javaGatewayImage.tag }} +imagePullPolicy: {{ .Values.javaGatewayImage.pullPolicy }} +securityContext: + runAsUser: {{ .Values.podSecurityContext.runAsUser }} + runAsGroup: {{ .Values.podSecurityContext.runAsGroup }} + readOnlyRootFilesystem: {{ .Values.securityContext.readOnlyRootFilesystem }} + runAsNonRoot: {{ .Values.securityContext.runAsNonRoot }} +volumeMounts: + - name: javagatewaylibs + mountPath: {{ .Values.persistence.javagatewaylibs.mountPath }} +envFrom: + - configMapRef: + name: '{{ include "tc.common.names.fullname" . }}-javagateway-config' +ports: + - containerPort: {{ .Values.service.javagateway.ports.javagateway.port }} + name: javagateway +readinessProbe: + tcpSocket: + port: {{ .Values.service.main.ports.main.targetPort }} + initialDelaySeconds: {{ .Values.probes.readiness.spec.initialDelaySeconds }} + timeoutSeconds: {{ .Values.probes.readiness.spec.timeoutSeconds }} + periodSeconds: {{ .Values.probes.readiness.spec.periodSeconds }} + failureThreshold: {{ .Values.probes.readiness.spec.failureThreshold }} +livenessProbe: + tcpSocket: + port: {{ .Values.service.main.ports.main.targetPort }} + initialDelaySeconds: {{ .Values.probes.liveness.spec.initialDelaySeconds }} + timeoutSeconds: {{ .Values.probes.liveness.spec.timeoutSeconds }} + periodSeconds: {{ .Values.probes.liveness.spec.periodSeconds }} + failureThreshold: {{ .Values.probes.liveness.spec.failureThreshold }} +startupProbe: + tcpSocket: + port: {{ .Values.service.main.ports.main.targetPort }} + initialDelaySeconds: {{ .Values.probes.startup.spec.initialDelaySeconds }} + timeoutSeconds: {{ .Values.probes.startup.spec.timeoutSeconds }} + periodSeconds: {{ .Values.probes.startup.spec.periodSeconds }} + failureThreshold: {{ .Values.probes.startup.spec.failureThreshold }} +{{- end -}} diff --git a/incubator/zabbix/1.0.0/templates/_secret.tpl b/incubator/zabbix/1.0.0/templates/_secret.tpl new file mode 100644 index 00000000000..d1c6151834f --- /dev/null +++ b/incubator/zabbix/1.0.0/templates/_secret.tpl @@ -0,0 +1,18 @@ +{{/* Define the secret */}} +{{- define "zabbix.secret" -}} + +{{- $serverSecretName := printf "%s-server-secret" (include "tc.common.names.fullname" .) }} +{{- $commonSecretName := printf "%s-common-secret" (include "tc.common.names.fullname" .) }} + +--- + +apiVersion: v1 +kind: Secret +type: Opaque +metadata: + name: {{ $commonSecretName }} + labels: + {{- include "tc.common.labels" . | nindent 4 }} +data: + POSTGRES_PASSWORD: {{ .Values.postgresql.postgresqlPassword | trimAll "\"" | b64enc }} +{{- end }} diff --git a/incubator/zabbix/1.0.0/templates/_snmp.tpl b/incubator/zabbix/1.0.0/templates/_snmp.tpl new file mode 100644 index 00000000000..727a10d2613 --- /dev/null +++ b/incubator/zabbix/1.0.0/templates/_snmp.tpl @@ -0,0 +1,38 @@ +{{- define "zabbix.snmptraps" -}} +image: {{ .Values.snmptrapsImage.repository }}:{{ .Values.snmptrapsImage.tag }} +imagePullPolicy: {{ .Values.agent2Image.pullPolicy }} +securityContext: + runAsUser: {{ .Values.podSecurityContext.runAsUser }} + runAsGroup: {{ .Values.podSecurityContext.runAsGroup }} + readOnlyRootFilesystem: {{ .Values.securityContext.readOnlyRootFilesystem }} + runAsNonRoot: {{ .Values.securityContext.runAsNonRoot }} +volumeMounts: + - name: snmptraps + mountPath: {{ .Values.persistence.snmptraps.mountPath }} + - name: snmpmibs + mountPath: {{ .Values.persistence.snmpmibs.mountPath }} +ports: + - containerPort: {{ .Values.service.snmptraps.ports.snmptraps.targetPort }} + name: snmptraps +readinessProbe: + tcpSocket: + port: {{ .Values.service.main.ports.main.targetPort }} + initialDelaySeconds: {{ .Values.probes.readiness.spec.initialDelaySeconds }} + timeoutSeconds: {{ .Values.probes.readiness.spec.timeoutSeconds }} + periodSeconds: {{ .Values.probes.readiness.spec.periodSeconds }} + failureThreshold: {{ .Values.probes.readiness.spec.failureThreshold }} +livenessProbe: + tcpSocket: + port: {{ .Values.service.main.ports.main.targetPort }} + initialDelaySeconds: {{ .Values.probes.liveness.spec.initialDelaySeconds }} + timeoutSeconds: {{ .Values.probes.liveness.spec.timeoutSeconds }} + periodSeconds: {{ .Values.probes.liveness.spec.periodSeconds }} + failureThreshold: {{ .Values.probes.liveness.spec.failureThreshold }} +startupProbe: + tcpSocket: + port: {{ .Values.service.main.ports.main.targetPort }} + initialDelaySeconds: {{ .Values.probes.startup.spec.initialDelaySeconds }} + timeoutSeconds: {{ .Values.probes.startup.spec.timeoutSeconds }} + periodSeconds: {{ .Values.probes.startup.spec.periodSeconds }} + failureThreshold: {{ .Values.probes.startup.spec.failureThreshold }} +{{- end -}} diff --git a/incubator/zabbix/1.0.0/templates/_webservice.tpl b/incubator/zabbix/1.0.0/templates/_webservice.tpl new file mode 100644 index 00000000000..4b77113e0e7 --- /dev/null +++ b/incubator/zabbix/1.0.0/templates/_webservice.tpl @@ -0,0 +1,39 @@ +{{- define "zabbix.webservice" -}} +image: {{ .Values.webServiceImage.repository }}:{{ .Values.webServiceImage.tag }} +imagePullPolicy: {{ .Values.webServiceImage.pullPolicy }} +securityContext: + runAsUser: {{ .Values.podSecurityContext.runAsUser }} + runAsGroup: {{ .Values.podSecurityContext.runAsGroup }} + readOnlyRootFilesystem: {{ .Values.securityContext.readOnlyRootFilesystem }} + runAsNonRoot: {{ .Values.securityContext.runAsNonRoot }} +envFrom: + - configMapRef: + name: '{{ include "tc.common.names.fullname" . }}-webservice-config' +ports: + - containerPort: {{ .Values.service.webservice.ports.webservice.port }} + name: webservice +readinessProbe: + httpGet: + path: /report + port: {{ .Values.service.main.ports.main.targetPort }} + initialDelaySeconds: {{ .Values.probes.readiness.spec.initialDelaySeconds }} + timeoutSeconds: {{ .Values.probes.readiness.spec.timeoutSeconds }} + periodSeconds: {{ .Values.probes.readiness.spec.periodSeconds }} + failureThreshold: {{ .Values.probes.readiness.spec.failureThreshold }} +livenessProbe: + httpGet: + path: /report + port: {{ .Values.service.main.ports.main.targetPort }} + initialDelaySeconds: {{ .Values.probes.liveness.spec.initialDelaySeconds }} + timeoutSeconds: {{ .Values.probes.liveness.spec.timeoutSeconds }} + periodSeconds: {{ .Values.probes.liveness.spec.periodSeconds }} + failureThreshold: {{ .Values.probes.liveness.spec.failureThreshold }} +startupProbe: + httpGet: + path: /report + port: {{ .Values.service.main.ports.main.targetPort }} + initialDelaySeconds: {{ .Values.probes.startup.spec.initialDelaySeconds }} + timeoutSeconds: {{ .Values.probes.startup.spec.timeoutSeconds }} + periodSeconds: {{ .Values.probes.startup.spec.periodSeconds }} + failureThreshold: {{ .Values.probes.startup.spec.failureThreshold }} +{{- end -}} diff --git a/incubator/zabbix/1.0.0/templates/common.yaml b/incubator/zabbix/1.0.0/templates/common.yaml new file mode 100644 index 00000000000..4cb50a22a5e --- /dev/null +++ b/incubator/zabbix/1.0.0/templates/common.yaml @@ -0,0 +1,29 @@ +{{/* Make sure all variables are set properly */}} +{{- include "tc.common.loader.init" . }} + +{{/* Render secret */}} +{{- include "zabbix.secret" . }} + +{{/* Render config */}} +{{- include "zabbix.config" . }} + +{{- $_ := set .Values.additionalContainers "frontend" (include "zabbix.frontend" . | fromYaml) -}} + +{{- if .Values.zabbix.agent.enabled -}} +{{- $_ := set .Values.additionalContainers "agent2" (include "zabbix.agent2" . | fromYaml) -}} +{{- end -}} + +{{- if .Values.zabbix.webservice.enabled -}} +{{- $_ := set .Values.additionalContainers "webservice" (include "zabbix.webservice" . | fromYaml) -}} +{{- end -}} + +{{- if .Values.zabbix.snmptraps.enabled -}} +{{- $_ := set .Values.additionalContainers "snmptraps" (include "zabbix.snmptraps" . | fromYaml) -}} +{{- end -}} + +{{- if .Values.zabbix.javagateway.enabled -}} +{{- $_ := set .Values.additionalContainers "javagateway" (include "zabbix.javagateway" . | fromYaml) -}} +{{- end -}} + +{{/* Render the templates */}} +{{ include "tc.common.loader.apply" . }} diff --git a/incubator/zabbix/1.0.0/values.yaml b/incubator/zabbix/1.0.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/incubator/zabbix/item.yaml b/incubator/zabbix/item.yaml new file mode 100644 index 00000000000..9f1f53c8009 --- /dev/null +++ b/incubator/zabbix/item.yaml @@ -0,0 +1,4 @@ +icon_url: https://truecharts.org/img/hotlink-ok/chart-icons/zabbix.png +categories: +- utilities +