From 19db61b3ad68fcee27bfb98ee4a1869a9e5b593b Mon Sep 17 00:00:00 2001 From: TrueCharts-Bot Date: Mon, 12 Feb 2024 00:54:22 +0000 Subject: [PATCH] Commit new Chart releases for TrueCharts Signed-off-by: TrueCharts-Bot --- enterprise/traefik/25.1.17/CHANGELOG.md | 99 + enterprise/traefik/25.1.17/Chart.yaml | 39 + enterprise/traefik/25.1.17/LICENSE | 106 + enterprise/traefik/25.1.17/README.md | 28 + enterprise/traefik/25.1.17/app-changelog.md | 9 + enterprise/traefik/25.1.17/app-readme.md | 8 + .../25.1.17}/charts/common-17.2.30.tgz | Bin .../traefik.containo.us_ingressroutes.yaml | 275 + .../traefik.containo.us_ingressroutetcps.yaml | 218 + .../traefik.containo.us_ingressrouteudps.yaml | 105 + .../crds/traefik.containo.us_middlewares.yaml | 924 ++++ .../traefik.containo.us_middlewaretcps.yaml | 72 + ...traefik.containo.us_serverstransports.yaml | 128 + .../crds/traefik.containo.us_tlsoptions.yaml | 113 + .../crds/traefik.containo.us_tlsstores.yaml | 99 + .../traefik.containo.us_traefikservices.yaml | 402 ++ .../crds/traefik.io_ingressroutes.yaml | 275 + .../crds/traefik.io_ingressroutetcps.yaml | 218 + .../crds/traefik.io_ingressrouteudps.yaml | 105 + .../25.1.17/crds/traefik.io_middlewares.yaml | 924 ++++ .../crds/traefik.io_middlewaretcps.yaml | 72 + .../crds/traefik.io_serverstransports.yaml | 128 + .../crds/traefik.io_serverstransporttcps.yaml | 122 + .../25.1.17/crds/traefik.io_tlsoptions.yaml | 113 + .../25.1.17/crds/traefik.io_tlsstores.yaml | 99 + .../crds/traefik.io_traefikservices.yaml | 402 ++ enterprise/traefik/25.1.17/ix_values.yaml | 441 ++ enterprise/traefik/25.1.17/questions.yaml | 3404 ++++++++++++ .../25.1.17}/templates/NOTES.txt | 0 .../traefik/25.1.17/templates/_args.tpl | 194 + .../traefik/25.1.17/templates/_helpers.tpl | 22 + .../25.1.17/templates/_ingressclass.tpl | 24 + .../25.1.17/templates/_ingressroute.tpl | 34 + .../traefik/25.1.17/templates/_portalhook.tpl | 24 + .../traefik/25.1.17/templates/_tlsoptions.tpl | 13 + .../traefik/25.1.17/templates/_tlsstore.tpl | 26 + .../traefik/25.1.17/templates/common.yaml | 24 + .../templates/middlewares/addPrefix.yaml | 12 + .../middlewares/basic-middleware.yaml | 57 + .../templates/middlewares/basicauth.yaml | 30 + .../templates/middlewares/buffering.yaml | 26 + .../25.1.17/templates/middlewares/chain.yaml | 21 + .../middlewares/customFrameOptionsValue.yaml | 12 + .../middlewares/customRequestHeaders.yaml | 15 + .../middlewares/customResponseHeaders.yaml | 15 + .../templates/middlewares/forwardauth.yaml | 29 + .../templates/middlewares/geoblock.yaml | 29 + .../templates/middlewares/ipwhitelist.yaml | 27 + .../templates/middlewares/modsecurity.yaml | 14 + .../templates/middlewares/ratelimit.yaml | 13 + .../templates/middlewares/real-ip.yaml | 15 + .../templates/middlewares/redirectScheme.yaml | 13 + .../templates/middlewares/redirectregex.yaml | 14 + .../middlewares/rewriteResponseHeaders.yaml | 17 + .../middlewares/stripPrefixRegex.yaml | 14 + .../templates/middlewares/tc-chains.yaml | 24 + .../templates/middlewares/tc-headers.yaml | 57 + .../templates/middlewares/tc-nextcloud.yaml | 20 + .../templates/middlewares/theme-park.yaml | 20 + .../3.2.7 => traefik/25.1.17}/values.yaml | 0 enterprise/velero/3.2.7/app-changelog.md | 3 - .../velero/3.2.7/charts/common-17.3.8.tgz | Bin 98415 -> 0 bytes .../velero/{3.2.7 => 3.2.8}/CHANGELOG.md | 18 +- enterprise/velero/{3.2.7 => 3.2.8}/Chart.yaml | 2 +- enterprise/velero/{3.2.7 => 3.2.8}/LICENSE | 0 enterprise/velero/{3.2.7 => 3.2.8}/README.md | 0 enterprise/velero/3.2.8/app-changelog.md | 9 + .../velero/{3.2.7 => 3.2.8}/app-readme.md | 0 .../velero/3.2.8/charts/common-17.3.8.tgz | Bin 0 -> 98438 bytes .../{3.2.7 => 3.2.8}/charts/velero-5.2.2.tgz | Bin .../velero/{3.2.7 => 3.2.8}/ix_values.yaml | 2 +- .../velero/{3.2.7 => 3.2.8}/questions.yaml | 0 .../velero/3.2.8}/templates/NOTES.txt | 0 .../{3.2.7 => 3.2.8}/templates/common.yaml | 0 .../velero/3.2.8}/values.yaml | 0 .../cert-manager/3.1.15/app-changelog.md | 9 - .../{3.1.15 => 3.1.16}/CHANGELOG.md | 18 +- .../{3.1.15 => 3.1.16}/Chart.yaml | 2 +- .../cert-manager/{3.1.15 => 3.1.16}/LICENSE | 0 .../cert-manager/{3.1.15 => 3.1.16}/README.md | 0 .../cert-manager/3.1.16/app-changelog.md | 9 + .../{3.1.15 => 3.1.16}/app-readme.md | 0 .../charts/cert-manager-v1.13.3.tgz | Bin .../3.1.16}/charts/common-17.2.30.tgz | Bin .../{3.1.15 => 3.1.16}/ix_values.yaml | 2 +- .../{3.1.15 => 3.1.16}/questions.yaml | 2 + .../3.1.16}/templates/NOTES.txt | 0 .../{3.1.15 => 3.1.16}/templates/common.yaml | 0 .../{3.1.15 => 3.1.16}/templates/crds.yaml | 0 .../3.1.16}/values.yaml | 0 .../cloudnative-pg/5.2.15/app-changelog.md | 9 - .../{5.2.15 => 5.2.16}/CHANGELOG.md | 18 +- .../{5.2.15 => 5.2.16}/Chart.yaml | 2 +- .../cloudnative-pg/{5.2.15 => 5.2.16}/LICENSE | 0 .../{5.2.15 => 5.2.16}/README.md | 0 .../cloudnative-pg/5.2.16/app-changelog.md | 9 + .../{5.2.15 => 5.2.16}/app-readme.md | 0 .../charts/cloudnative-pg-0.20.0.tgz | Bin .../5.2.16}/charts/common-17.2.30.tgz | Bin .../{5.2.15 => 5.2.16}/ix_values.yaml | 2 +- .../{5.2.15 => 5.2.16}/questions.yaml | 2 + .../5.2.16}/templates/NOTES.txt | 0 .../{5.2.15 => 5.2.16}/templates/common.yaml | 0 .../5.2.16}/values.yaml | 0 operators/metallb/13.1.16/CHANGELOG.md | 99 + operators/metallb/13.1.16/Chart.yaml | 45 + .../4.5.6 => metallb/13.1.16}/LICENSE | 0 operators/metallb/13.1.16/README.md | 28 + operators/metallb/13.1.16/app-changelog.md | 9 + operators/metallb/13.1.16/app-readme.md | 8 + .../13.1.16}/charts/common-17.2.30.tgz | Bin .../13.1.16/charts/metallb-0.13.12.tgz | Bin 0 -> 24427 bytes operators/metallb/13.1.16/ix_values.yaml | 25 + .../4.5.6 => metallb/13.1.16}/questions.yaml | 2 + .../metallb/13.1.16}/templates/NOTES.txt | 0 .../metallb/13.1.16/templates/common.yaml | 5 + .../metallb/13.1.16}/values.yaml | 0 .../4.5.6/app-changelog.md | 9 - .../{4.5.6 => 4.5.7}/CHANGELOG.md | 18 +- .../{4.5.6 => 4.5.7}/Chart.yaml | 2 +- operators/prometheus-operator/4.5.7/LICENSE | 106 + .../{4.5.6 => 4.5.7}/README.md | 0 .../4.5.7/app-changelog.md | 9 + .../{4.5.6 => 4.5.7}/app-readme.md | 0 .../4.5.7}/charts/common-17.2.30.tgz | Bin .../charts/kube-prometheus-stack-55.11.0.tgz | Bin .../{4.5.6 => 4.5.7}/ix_values.yaml | 2 +- .../prometheus-operator/4.5.7/questions.yaml | 47 + .../4.5.7}/templates/NOTES.txt | 0 .../{4.5.6 => 4.5.7}/templates/common.yaml | 0 .../prometheus-operator/4.5.7}/values.yaml | 0 stable/blender/4.1.18/app-changelog.md | 9 - .../blender/{4.1.18 => 4.1.19}/CHANGELOG.md | 18 +- stable/blender/{4.1.18 => 4.1.19}/Chart.yaml | 2 +- stable/blender/{4.1.18 => 4.1.19}/README.md | 0 stable/blender/4.1.19/app-changelog.md | 9 + .../blender/{4.1.18 => 4.1.19}/app-readme.md | 0 .../4.1.19}/charts/common-17.2.30.tgz | Bin .../blender/{4.1.18 => 4.1.19}/ix_values.yaml | 2 +- .../blender/{4.1.18 => 4.1.19}/questions.yaml | 2 + .../{4.1.18 => 4.1.19}/templates/common.yaml | 0 .../4.1.12 => blender/4.1.19}/values.yaml | 0 stable/calibre-web/17.1.19/CHANGELOG.md | 99 + stable/calibre-web/17.1.19/Chart.yaml | 38 + stable/calibre-web/17.1.19/README.md | 28 + stable/calibre-web/17.1.19/app-changelog.md | 9 + stable/calibre-web/17.1.19/app-readme.md | 8 + .../17.1.19}/charts/common-17.2.30.tgz | Bin stable/calibre-web/17.1.19/ix_values.yaml | 40 + stable/calibre-web/17.1.19/questions.yaml | 2830 ++++++++++ .../17.1.19}/templates/NOTES.txt | 0 .../17.1.19}/templates/common.yaml | 0 .../17.1.19}/values.yaml | 0 stable/cops/7.1.17/app-changelog.md | 9 - stable/cops/{7.1.17 => 7.1.18}/CHANGELOG.md | 18 +- stable/cops/{7.1.17 => 7.1.18}/Chart.yaml | 2 +- stable/cops/{7.1.17 => 7.1.18}/README.md | 0 stable/cops/7.1.18/app-changelog.md | 9 + stable/cops/{7.1.17 => 7.1.18}/app-readme.md | 0 .../7.1.18}/charts/common-17.2.30.tgz | Bin stable/cops/{7.1.17 => 7.1.18}/ix_values.yaml | 2 +- stable/cops/{7.1.17 => 7.1.18}/questions.yaml | 2 + .../7.1.18/templates/NOTES.txt | 0 .../{7.1.17 => 7.1.18}/templates/common.yaml | 0 .../1.0.1 => cops/7.1.18}/values.yaml | 0 .../goaccess-npm-logs/4.1.12/app-changelog.md | 9 - .../{4.1.12 => 4.1.13}/CHANGELOG.md | 18 +- .../{4.1.12 => 4.1.13}/Chart.yaml | 2 +- .../{4.1.12 => 4.1.13}/README.md | 0 .../goaccess-npm-logs/4.1.13/app-changelog.md | 9 + .../{4.1.12 => 4.1.13}/app-readme.md | 0 .../4.1.13}/charts/common-17.2.30.tgz | Bin .../{4.1.12 => 4.1.13}/ix_values.yaml | 2 +- .../{4.1.12 => 4.1.13}/questions.yaml | 2 + .../{4.1.12 => 4.1.13}/templates/common.yaml | 0 .../4.1.13}/values.yaml | 0 stable/kdenlive/4.1.16/app-changelog.md | 9 - .../kdenlive/{4.1.16 => 4.1.17}/CHANGELOG.md | 18 +- stable/kdenlive/{4.1.16 => 4.1.17}/Chart.yaml | 2 +- stable/kdenlive/{4.1.16 => 4.1.17}/README.md | 0 stable/kdenlive/4.1.17/app-changelog.md | 9 + .../kdenlive/{4.1.16 => 4.1.17}/app-readme.md | 0 .../4.1.17/charts/common-17.2.30.tgz | Bin .../{4.1.16 => 4.1.17}/ix_values.yaml | 2 +- .../{4.1.16 => 4.1.17}/questions.yaml | 2 + .../{4.1.16 => 4.1.17}/templates/common.yaml | 0 .../7.1.18 => kdenlive/4.1.17}/values.yaml | 0 stable/littlelink/12.1.17/CHANGELOG.md | 99 + stable/littlelink/12.1.17/Chart.yaml | 37 + stable/littlelink/12.1.17/README.md | 28 + stable/littlelink/12.1.17/app-changelog.md | 9 + stable/littlelink/12.1.17/app-readme.md | 8 + .../12.1.17}/charts/common-17.2.30.tgz | Bin stable/littlelink/12.1.17/ix_values.yaml | 41 + stable/littlelink/12.1.17/questions.yaml | 2871 ++++++++++ .../12.1.17}/templates/NOTES.txt | 0 .../12.1.17/templates/_configmap.tpl | 195 + .../littlelink/12.1.17/templates/common.yaml | 11 + .../4.1.17 => littlelink/12.1.17}/values.yaml | 0 .../10.1.12/CHANGELOG.md | 99 + .../logitech-media-server/10.1.12/Chart.yaml | 39 + .../logitech-media-server/10.1.12/README.md | 28 + .../10.1.12/app-changelog.md | 9 + .../10.1.12/app-readme.md | 8 + .../10.1.12}/charts/common-17.2.30.tgz | Bin .../10.1.12/ix_values.yaml | 51 + .../10.1.12/questions.yaml | 2980 +++++++++++ .../10.1.12}/templates/NOTES.txt | 0 .../10.1.12}/templates/common.yaml | 0 .../10.1.12}/values.yaml | 0 stable/mattermost/11.2.5/CHANGELOG.md | 99 + stable/mattermost/11.2.5/Chart.yaml | 39 + stable/mattermost/11.2.5/README.md | 28 + stable/mattermost/11.2.5/app-changelog.md | 9 + stable/mattermost/11.2.5/app-readme.md | 8 + .../11.2.5}/charts/common-17.2.30.tgz | Bin stable/mattermost/11.2.5/ix_values.yaml | 48 + stable/mattermost/11.2.5/questions.yaml | 4668 +++++++++++++++++ .../11.2.5}/templates/NOTES.txt | 0 .../11.2.5}/templates/common.yaml | 0 .../6.1.20 => mattermost/11.2.5}/values.yaml | 0 stable/mylar/12.1.18/CHANGELOG.md | 99 + stable/mylar/12.1.18/Chart.yaml | 37 + stable/mylar/12.1.18/README.md | 28 + stable/mylar/12.1.18/app-changelog.md | 9 + stable/mylar/12.1.18/app-readme.md | 8 + .../12.1.18}/charts/common-17.2.30.tgz | Bin stable/mylar/12.1.18/ix_values.yaml | 25 + stable/mylar/12.1.18/questions.yaml | 2830 ++++++++++ .../12.1.18}/templates/NOTES.txt | 0 .../12.1.18}/templates/common.yaml | 0 .../2.1.13 => mylar/12.1.18}/values.yaml | 0 stable/omada-controller/13.0.12/CHANGELOG.md | 99 + stable/omada-controller/13.0.12/Chart.yaml | 36 + stable/omada-controller/13.0.12/README.md | 28 + .../omada-controller/13.0.12/app-changelog.md | 9 + stable/omada-controller/13.0.12/app-readme.md | 8 + .../13.0.12}/charts/common-17.2.30.tgz | Bin .../omada-controller/13.0.12/ix_values.yaml | 84 + .../omada-controller/13.0.12/questions.yaml | 3583 +++++++++++++ .../13.0.12}/templates/NOTES.txt | 0 .../13.0.12/templates/common.yaml | 9 + .../13.0.12}/values.yaml | 0 stable/palworld/1.0.1/app-changelog.md | 9 - stable/palworld/{1.0.1 => 1.0.2}/CHANGELOG.md | 9 + stable/palworld/{1.0.1 => 1.0.2}/Chart.yaml | 2 +- stable/palworld/{1.0.1 => 1.0.2}/README.md | 0 stable/palworld/1.0.2/app-changelog.md | 9 + .../palworld/{1.0.1 => 1.0.2}/app-readme.md | 0 .../charts/common-17.2.26.tgz | Bin .../palworld/{1.0.1 => 1.0.2}/ix_values.yaml | 2 +- .../palworld/{1.0.1 => 1.0.2}/questions.yaml | 0 .../1.0.2}/templates/NOTES.txt | 0 .../{1.0.1 => 1.0.2}/templates/_configmap.tpl | 0 .../{1.0.1 => 1.0.2}/templates/common.yaml | 0 .../6.2.0 => palworld/1.0.2}/values.yaml | 0 stable/posterr/7.1.14/app-changelog.md | 9 - .../posterr/{7.1.14 => 7.1.15}/CHANGELOG.md | 18 +- stable/posterr/{7.1.14 => 7.1.15}/Chart.yaml | 2 +- stable/posterr/{7.1.14 => 7.1.15}/README.md | 0 stable/posterr/7.1.15/app-changelog.md | 9 + .../posterr/{7.1.14 => 7.1.15}/app-readme.md | 0 .../7.1.15}/charts/common-17.2.30.tgz | Bin .../posterr/{7.1.14 => 7.1.15}/ix_values.yaml | 2 +- .../posterr/{7.1.14 => 7.1.15}/questions.yaml | 2 + stable/posterr/7.1.15/templates/NOTES.txt | 1 + .../7.1.15}/templates/common.yaml | 0 .../2.1.18 => posterr/7.1.15}/values.yaml | 0 .../prusaslicer-novnc/7.1.18/app-changelog.md | 9 - .../{7.1.18 => 7.1.19}/CHANGELOG.md | 18 +- .../{7.1.18 => 7.1.19}/Chart.yaml | 2 +- .../{7.1.18 => 7.1.19}/README.md | 0 .../prusaslicer-novnc/7.1.19/app-changelog.md | 9 + .../{7.1.18 => 7.1.19}/app-readme.md | 0 .../7.1.19}/charts/common-17.2.30.tgz | Bin .../{7.1.18 => 7.1.19}/ix_values.yaml | 2 +- .../{7.1.18 => 7.1.19}/questions.yaml | 2 + .../7.1.19/templates/NOTES.txt | 1 + .../7.1.19}/templates/common.yaml | 0 .../7.1.19}/values.yaml | 0 stable/pyload-ng/4.1.17/app-changelog.md | 9 - .../pyload-ng/{4.1.17 => 4.1.18}/CHANGELOG.md | 18 +- .../pyload-ng/{4.1.17 => 4.1.18}/Chart.yaml | 2 +- stable/pyload-ng/{4.1.17 => 4.1.18}/README.md | 0 stable/pyload-ng/4.1.18/app-changelog.md | 9 + .../{4.1.17 => 4.1.18}/app-readme.md | 0 .../4.1.18}/charts/common-17.2.30.tgz | Bin .../{4.1.17 => 4.1.18}/ix_values.yaml | 2 +- .../{4.1.17 => 4.1.18}/questions.yaml | 2 + .../4.1.18}/templates/common.yaml | 0 .../9.1.11 => pyload-ng/4.1.18}/values.yaml | 0 stable/red-discordbot/4.1.15/app-changelog.md | 9 - .../{4.1.15 => 4.1.16}/CHANGELOG.md | 18 +- .../{4.1.15 => 4.1.16}/Chart.yaml | 2 +- .../{4.1.15 => 4.1.16}/README.md | 0 stable/red-discordbot/4.1.16/app-changelog.md | 9 + .../{4.1.15 => 4.1.16}/app-readme.md | 0 .../4.1.16}/charts/common-17.2.30.tgz | Bin .../{4.1.15 => 4.1.16}/ix_values.yaml | 2 +- .../{4.1.15 => 4.1.16}/questions.yaml | 2 + .../4.1.16}/templates/common.yaml | 0 .../4.1.16}/values.yaml | 0 stable/redmine/10.1.15/CHANGELOG.md | 99 + stable/redmine/10.1.15/Chart.yaml | 40 + stable/redmine/10.1.15/README.md | 28 + stable/redmine/10.1.15/app-changelog.md | 9 + stable/redmine/10.1.15/app-readme.md | 8 + .../10.1.15}/charts/common-17.2.30.tgz | Bin stable/redmine/10.1.15/ix_values.yaml | 57 + stable/redmine/10.1.15/questions.yaml | 3309 ++++++++++++ stable/redmine/10.1.15/templates/NOTES.txt | 1 + stable/redmine/10.1.15/templates/_secrets.tpl | 14 + stable/redmine/10.1.15/templates/common.yaml | 11 + .../8.1.16 => redmine/10.1.15}/values.yaml | 0 stable/searxng/6.1.20/app-changelog.md | 9 - .../searxng/{6.1.20 => 6.1.21}/CHANGELOG.md | 18 +- stable/searxng/{6.1.20 => 6.1.21}/Chart.yaml | 2 +- stable/searxng/{6.1.20 => 6.1.21}/README.md | 0 stable/searxng/6.1.21/app-changelog.md | 9 + .../searxng/{6.1.20 => 6.1.21}/app-readme.md | 0 .../searxng/6.1.21/charts/common-17.2.30.tgz | Bin 0 -> 98054 bytes .../searxng/{6.1.20 => 6.1.21}/ix_values.yaml | 2 +- .../searxng/{6.1.20 => 6.1.21}/questions.yaml | 2 + stable/searxng/6.1.21/templates/NOTES.txt | 1 + .../6.1.21}/templates/common.yaml | 0 stable/searxng/6.1.21/values.yaml | 0 stable/serpbear/2.1.13/app-changelog.md | 9 - .../serpbear/{2.1.13 => 2.1.14}/CHANGELOG.md | 18 +- stable/serpbear/{2.1.13 => 2.1.14}/Chart.yaml | 2 +- stable/serpbear/{2.1.13 => 2.1.14}/README.md | 0 stable/serpbear/2.1.14/app-changelog.md | 9 + .../serpbear/{2.1.13 => 2.1.14}/app-readme.md | 0 .../serpbear/2.1.14/charts/common-17.2.30.tgz | Bin 0 -> 98054 bytes .../{2.1.13 => 2.1.14}/ix_values.yaml | 2 +- .../{2.1.13 => 2.1.14}/questions.yaml | 2 + .../{2.1.13 => 2.1.14}/templates/_secret.tpl | 0 .../{2.1.13 => 2.1.14}/templates/common.yaml | 0 stable/serpbear/2.1.14/values.yaml | 0 stable/snapdrop/8.1.14/app-changelog.md | 9 - .../snapdrop/{8.1.14 => 8.1.15}/CHANGELOG.md | 18 +- stable/snapdrop/{8.1.14 => 8.1.15}/Chart.yaml | 2 +- stable/snapdrop/{8.1.14 => 8.1.15}/README.md | 0 stable/snapdrop/8.1.15/app-changelog.md | 9 + .../snapdrop/{8.1.14 => 8.1.15}/app-readme.md | 0 .../snapdrop/8.1.15/charts/common-17.2.30.tgz | Bin 0 -> 98054 bytes .../{8.1.14 => 8.1.15}/ix_values.yaml | 2 +- .../{8.1.14 => 8.1.15}/questions.yaml | 2 + stable/snapdrop/8.1.15/templates/NOTES.txt | 1 + stable/snapdrop/8.1.15/templates/common.yaml | 1 + stable/snapdrop/8.1.15/values.yaml | 0 stable/splunk/6.2.0/app-changelog.md | 9 - stable/splunk/{6.2.0 => 6.2.1}/CHANGELOG.md | 18 +- stable/splunk/{6.2.0 => 6.2.1}/Chart.yaml | 2 +- stable/splunk/{6.2.0 => 6.2.1}/README.md | 0 stable/splunk/6.2.1/app-changelog.md | 9 + stable/splunk/{6.2.0 => 6.2.1}/app-readme.md | 0 stable/splunk/6.2.1/charts/common-17.2.30.tgz | Bin 0 -> 98054 bytes stable/splunk/{6.2.0 => 6.2.1}/ix_values.yaml | 2 +- stable/splunk/{6.2.0 => 6.2.1}/questions.yaml | 2 + stable/splunk/6.2.1/templates/NOTES.txt | 1 + .../{6.2.0 => 6.2.1}/templates/_config.tpl | 0 .../{6.2.0 => 6.2.1}/templates/common.yaml | 0 stable/splunk/6.2.1/values.yaml | 0 stable/steam-headless/2.1.18/app-changelog.md | 9 - .../{2.1.18 => 2.1.19}/CHANGELOG.md | 18 +- .../{2.1.18 => 2.1.19}/Chart.yaml | 2 +- .../{2.1.18 => 2.1.19}/README.md | 0 stable/steam-headless/2.1.19/app-changelog.md | 9 + .../{2.1.18 => 2.1.19}/app-readme.md | 0 .../2.1.19/charts/common-17.2.30.tgz | Bin 0 -> 98054 bytes .../{2.1.18 => 2.1.19}/ix_values.yaml | 2 +- .../{2.1.18 => 2.1.19}/questions.yaml | 2 + .../steam-headless/2.1.19/templates/NOTES.txt | 1 + .../2.1.19/templates/common.yaml | 1 + stable/steam-headless/2.1.19/values.yaml | 0 stable/tar1090/4.1.20/app-changelog.md | 9 - .../tar1090/{4.1.20 => 4.1.21}/CHANGELOG.md | 18 +- stable/tar1090/{4.1.20 => 4.1.21}/Chart.yaml | 2 +- stable/tar1090/{4.1.20 => 4.1.21}/README.md | 0 stable/tar1090/4.1.21/app-changelog.md | 9 + .../tar1090/{4.1.20 => 4.1.21}/app-readme.md | 0 .../tar1090/4.1.21/charts/common-17.2.30.tgz | Bin 0 -> 98054 bytes .../tar1090/{4.1.20 => 4.1.21}/ix_values.yaml | 2 +- .../tar1090/{4.1.20 => 4.1.21}/questions.yaml | 2 + .../4.1.21}/templates/common.yaml | 0 stable/tar1090/4.1.21/values.yaml | 0 stable/valheim/9.1.11/app-changelog.md | 9 - .../valheim/{9.1.11 => 9.1.12}/CHANGELOG.md | 18 +- stable/valheim/{9.1.11 => 9.1.12}/Chart.yaml | 2 +- stable/valheim/{9.1.11 => 9.1.12}/README.md | 0 stable/valheim/9.1.12/app-changelog.md | 9 + .../valheim/{9.1.11 => 9.1.12}/app-readme.md | 0 .../valheim/9.1.12/charts/common-17.2.30.tgz | Bin 0 -> 98054 bytes .../valheim/{9.1.11 => 9.1.12}/ix_values.yaml | 2 +- .../valheim/{9.1.11 => 9.1.12}/questions.yaml | 2 + stable/valheim/9.1.12/templates/NOTES.txt | 1 + .../{9.1.11 => 9.1.12}/templates/common.yaml | 0 stable/valheim/9.1.12/values.yaml | 0 stable/vikunja/12.1.21/CHANGELOG.md | 99 + stable/vikunja/12.1.21/Chart.yaml | 45 + stable/vikunja/12.1.21/README.md | 28 + stable/vikunja/12.1.21/app-changelog.md | 9 + stable/vikunja/12.1.21/app-readme.md | 8 + .../vikunja/12.1.21/charts/common-17.2.30.tgz | Bin 0 -> 98054 bytes .../vikunja/12.1.21/charts/redis-11.1.16.tgz | Bin 0 -> 104121 bytes stable/vikunja/12.1.21/ix_values.yaml | 212 + stable/vikunja/12.1.21/questions.yaml | 4149 +++++++++++++++ stable/vikunja/12.1.21/templates/NOTES.txt | 1 + stable/vikunja/12.1.21/templates/_secrets.tpl | 196 + stable/vikunja/12.1.21/templates/common.yaml | 8 + stable/vikunja/12.1.21/values.yaml | 0 stable/webp-server/4.1.12/app-changelog.md | 9 - .../{4.1.12 => 4.1.13}/CHANGELOG.md | 18 +- .../webp-server/{4.1.12 => 4.1.13}/Chart.yaml | 2 +- .../webp-server/{4.1.12 => 4.1.13}/README.md | 0 stable/webp-server/4.1.13/app-changelog.md | 9 + .../{4.1.12 => 4.1.13}/app-readme.md | 0 .../4.1.13/charts/common-17.2.30.tgz | Bin 0 -> 98054 bytes .../{4.1.12 => 4.1.13}/ix_values.yaml | 2 +- .../{4.1.12 => 4.1.13}/questions.yaml | 2 + .../webp-server/4.1.13/templates/common.yaml | 2 + stable/webp-server/4.1.13/values.yaml | 0 stable/znc/8.1.16/app-changelog.md | 9 - stable/znc/{8.1.16 => 8.1.17}/CHANGELOG.md | 18 +- stable/znc/{8.1.16 => 8.1.17}/Chart.yaml | 2 +- stable/znc/{8.1.16 => 8.1.17}/README.md | 0 stable/znc/8.1.17/app-changelog.md | 9 + stable/znc/{8.1.16 => 8.1.17}/app-readme.md | 0 stable/znc/8.1.17/charts/common-17.2.30.tgz | Bin 0 -> 98054 bytes stable/znc/{8.1.16 => 8.1.17}/ix_values.yaml | 2 +- stable/znc/{8.1.16 => 8.1.17}/questions.yaml | 2 + stable/znc/8.1.17/templates/NOTES.txt | 1 + stable/znc/8.1.17/templates/common.yaml | 1 + stable/znc/8.1.17/values.yaml | 0 434 files changed, 40335 insertions(+), 425 deletions(-) create mode 100644 enterprise/traefik/25.1.17/CHANGELOG.md create mode 100644 enterprise/traefik/25.1.17/Chart.yaml create mode 100644 enterprise/traefik/25.1.17/LICENSE create mode 100644 enterprise/traefik/25.1.17/README.md create mode 100644 enterprise/traefik/25.1.17/app-changelog.md create mode 100644 enterprise/traefik/25.1.17/app-readme.md rename {operators/cert-manager/3.1.15 => enterprise/traefik/25.1.17}/charts/common-17.2.30.tgz (100%) create mode 100644 enterprise/traefik/25.1.17/crds/traefik.containo.us_ingressroutes.yaml create mode 100644 enterprise/traefik/25.1.17/crds/traefik.containo.us_ingressroutetcps.yaml create mode 100644 enterprise/traefik/25.1.17/crds/traefik.containo.us_ingressrouteudps.yaml create mode 100644 enterprise/traefik/25.1.17/crds/traefik.containo.us_middlewares.yaml create mode 100644 enterprise/traefik/25.1.17/crds/traefik.containo.us_middlewaretcps.yaml create mode 100644 enterprise/traefik/25.1.17/crds/traefik.containo.us_serverstransports.yaml create mode 100644 enterprise/traefik/25.1.17/crds/traefik.containo.us_tlsoptions.yaml create mode 100644 enterprise/traefik/25.1.17/crds/traefik.containo.us_tlsstores.yaml create mode 100644 enterprise/traefik/25.1.17/crds/traefik.containo.us_traefikservices.yaml create mode 100644 enterprise/traefik/25.1.17/crds/traefik.io_ingressroutes.yaml create mode 100644 enterprise/traefik/25.1.17/crds/traefik.io_ingressroutetcps.yaml create mode 100644 enterprise/traefik/25.1.17/crds/traefik.io_ingressrouteudps.yaml create mode 100644 enterprise/traefik/25.1.17/crds/traefik.io_middlewares.yaml create mode 100644 enterprise/traefik/25.1.17/crds/traefik.io_middlewaretcps.yaml create mode 100644 enterprise/traefik/25.1.17/crds/traefik.io_serverstransports.yaml create mode 100644 enterprise/traefik/25.1.17/crds/traefik.io_serverstransporttcps.yaml create mode 100644 enterprise/traefik/25.1.17/crds/traefik.io_tlsoptions.yaml create mode 100644 enterprise/traefik/25.1.17/crds/traefik.io_tlsstores.yaml create mode 100644 enterprise/traefik/25.1.17/crds/traefik.io_traefikservices.yaml create mode 100644 enterprise/traefik/25.1.17/ix_values.yaml create mode 100644 enterprise/traefik/25.1.17/questions.yaml rename enterprise/{velero/3.2.7 => traefik/25.1.17}/templates/NOTES.txt (100%) create mode 100644 enterprise/traefik/25.1.17/templates/_args.tpl create mode 100644 enterprise/traefik/25.1.17/templates/_helpers.tpl create mode 100644 enterprise/traefik/25.1.17/templates/_ingressclass.tpl create mode 100644 enterprise/traefik/25.1.17/templates/_ingressroute.tpl create mode 100644 enterprise/traefik/25.1.17/templates/_portalhook.tpl create mode 100644 enterprise/traefik/25.1.17/templates/_tlsoptions.tpl create mode 100644 enterprise/traefik/25.1.17/templates/_tlsstore.tpl create mode 100644 enterprise/traefik/25.1.17/templates/common.yaml create mode 100644 enterprise/traefik/25.1.17/templates/middlewares/addPrefix.yaml create mode 100644 enterprise/traefik/25.1.17/templates/middlewares/basic-middleware.yaml create mode 100644 enterprise/traefik/25.1.17/templates/middlewares/basicauth.yaml create mode 100644 enterprise/traefik/25.1.17/templates/middlewares/buffering.yaml create mode 100644 enterprise/traefik/25.1.17/templates/middlewares/chain.yaml create mode 100644 enterprise/traefik/25.1.17/templates/middlewares/customFrameOptionsValue.yaml create mode 100644 enterprise/traefik/25.1.17/templates/middlewares/customRequestHeaders.yaml create mode 100644 enterprise/traefik/25.1.17/templates/middlewares/customResponseHeaders.yaml create mode 100644 enterprise/traefik/25.1.17/templates/middlewares/forwardauth.yaml create mode 100644 enterprise/traefik/25.1.17/templates/middlewares/geoblock.yaml create mode 100644 enterprise/traefik/25.1.17/templates/middlewares/ipwhitelist.yaml create mode 100644 enterprise/traefik/25.1.17/templates/middlewares/modsecurity.yaml create mode 100644 enterprise/traefik/25.1.17/templates/middlewares/ratelimit.yaml create mode 100644 enterprise/traefik/25.1.17/templates/middlewares/real-ip.yaml create mode 100644 enterprise/traefik/25.1.17/templates/middlewares/redirectScheme.yaml create mode 100644 enterprise/traefik/25.1.17/templates/middlewares/redirectregex.yaml create mode 100644 enterprise/traefik/25.1.17/templates/middlewares/rewriteResponseHeaders.yaml create mode 100644 enterprise/traefik/25.1.17/templates/middlewares/stripPrefixRegex.yaml create mode 100644 enterprise/traefik/25.1.17/templates/middlewares/tc-chains.yaml create mode 100644 enterprise/traefik/25.1.17/templates/middlewares/tc-headers.yaml create mode 100644 enterprise/traefik/25.1.17/templates/middlewares/tc-nextcloud.yaml create mode 100644 enterprise/traefik/25.1.17/templates/middlewares/theme-park.yaml rename enterprise/{velero/3.2.7 => traefik/25.1.17}/values.yaml (100%) delete mode 100644 enterprise/velero/3.2.7/app-changelog.md delete mode 100644 enterprise/velero/3.2.7/charts/common-17.3.8.tgz rename enterprise/velero/{3.2.7 => 3.2.8}/CHANGELOG.md (91%) rename enterprise/velero/{3.2.7 => 3.2.8}/Chart.yaml (98%) rename enterprise/velero/{3.2.7 => 3.2.8}/LICENSE (100%) rename enterprise/velero/{3.2.7 => 3.2.8}/README.md (100%) create mode 100644 enterprise/velero/3.2.8/app-changelog.md rename enterprise/velero/{3.2.7 => 3.2.8}/app-readme.md (100%) create mode 100644 enterprise/velero/3.2.8/charts/common-17.3.8.tgz rename enterprise/velero/{3.2.7 => 3.2.8}/charts/velero-5.2.2.tgz (100%) rename enterprise/velero/{3.2.7 => 3.2.8}/ix_values.yaml (94%) rename enterprise/velero/{3.2.7 => 3.2.8}/questions.yaml (100%) rename {operators/cert-manager/3.1.15 => enterprise/velero/3.2.8}/templates/NOTES.txt (100%) rename enterprise/velero/{3.2.7 => 3.2.8}/templates/common.yaml (100%) rename {operators/cert-manager/3.1.15 => enterprise/velero/3.2.8}/values.yaml (100%) delete mode 100644 operators/cert-manager/3.1.15/app-changelog.md rename operators/cert-manager/{3.1.15 => 3.1.16}/CHANGELOG.md (90%) rename operators/cert-manager/{3.1.15 => 3.1.16}/Chart.yaml (98%) rename operators/cert-manager/{3.1.15 => 3.1.16}/LICENSE (100%) rename operators/cert-manager/{3.1.15 => 3.1.16}/README.md (100%) create mode 100644 operators/cert-manager/3.1.16/app-changelog.md rename operators/cert-manager/{3.1.15 => 3.1.16}/app-readme.md (100%) rename operators/cert-manager/{3.1.15 => 3.1.16}/charts/cert-manager-v1.13.3.tgz (100%) rename operators/{cloudnative-pg/5.2.15 => cert-manager/3.1.16}/charts/common-17.2.30.tgz (100%) rename operators/cert-manager/{3.1.15 => 3.1.16}/ix_values.yaml (87%) rename operators/cert-manager/{3.1.15 => 3.1.16}/questions.yaml (96%) rename operators/{cloudnative-pg/5.2.15 => cert-manager/3.1.16}/templates/NOTES.txt (100%) rename operators/cert-manager/{3.1.15 => 3.1.16}/templates/common.yaml (100%) rename operators/cert-manager/{3.1.15 => 3.1.16}/templates/crds.yaml (100%) rename operators/{cloudnative-pg/5.2.15 => cert-manager/3.1.16}/values.yaml (100%) delete mode 100644 operators/cloudnative-pg/5.2.15/app-changelog.md rename operators/cloudnative-pg/{5.2.15 => 5.2.16}/CHANGELOG.md (90%) rename operators/cloudnative-pg/{5.2.15 => 5.2.16}/Chart.yaml (98%) rename operators/cloudnative-pg/{5.2.15 => 5.2.16}/LICENSE (100%) rename operators/cloudnative-pg/{5.2.15 => 5.2.16}/README.md (100%) create mode 100644 operators/cloudnative-pg/5.2.16/app-changelog.md rename operators/cloudnative-pg/{5.2.15 => 5.2.16}/app-readme.md (100%) rename operators/cloudnative-pg/{5.2.15 => 5.2.16}/charts/cloudnative-pg-0.20.0.tgz (100%) rename operators/{prometheus-operator/4.5.6 => cloudnative-pg/5.2.16}/charts/common-17.2.30.tgz (100%) rename operators/cloudnative-pg/{5.2.15 => 5.2.16}/ix_values.yaml (77%) rename operators/cloudnative-pg/{5.2.15 => 5.2.16}/questions.yaml (94%) rename operators/{prometheus-operator/4.5.6 => cloudnative-pg/5.2.16}/templates/NOTES.txt (100%) rename operators/cloudnative-pg/{5.2.15 => 5.2.16}/templates/common.yaml (100%) rename operators/{prometheus-operator/4.5.6 => cloudnative-pg/5.2.16}/values.yaml (100%) create mode 100644 operators/metallb/13.1.16/CHANGELOG.md create mode 100644 operators/metallb/13.1.16/Chart.yaml rename operators/{prometheus-operator/4.5.6 => metallb/13.1.16}/LICENSE (100%) create mode 100644 operators/metallb/13.1.16/README.md create mode 100644 operators/metallb/13.1.16/app-changelog.md create mode 100644 operators/metallb/13.1.16/app-readme.md rename {stable/blender/4.1.18 => operators/metallb/13.1.16}/charts/common-17.2.30.tgz (100%) create mode 100644 operators/metallb/13.1.16/charts/metallb-0.13.12.tgz create mode 100644 operators/metallb/13.1.16/ix_values.yaml rename operators/{prometheus-operator/4.5.6 => metallb/13.1.16}/questions.yaml (94%) rename {stable/cops/7.1.17 => operators/metallb/13.1.16}/templates/NOTES.txt (100%) create mode 100644 operators/metallb/13.1.16/templates/common.yaml rename {stable/blender/4.1.18 => operators/metallb/13.1.16}/values.yaml (100%) delete mode 100644 operators/prometheus-operator/4.5.6/app-changelog.md rename operators/prometheus-operator/{4.5.6 => 4.5.7}/CHANGELOG.md (90%) rename operators/prometheus-operator/{4.5.6 => 4.5.7}/Chart.yaml (98%) create mode 100644 operators/prometheus-operator/4.5.7/LICENSE rename operators/prometheus-operator/{4.5.6 => 4.5.7}/README.md (100%) create mode 100644 operators/prometheus-operator/4.5.7/app-changelog.md rename operators/prometheus-operator/{4.5.6 => 4.5.7}/app-readme.md (100%) rename {stable/cops/7.1.17 => operators/prometheus-operator/4.5.7}/charts/common-17.2.30.tgz (100%) rename operators/prometheus-operator/{4.5.6 => 4.5.7}/charts/kube-prometheus-stack-55.11.0.tgz (100%) rename operators/prometheus-operator/{4.5.6 => 4.5.7}/ix_values.yaml (97%) create mode 100644 operators/prometheus-operator/4.5.7/questions.yaml rename {stable/palworld/1.0.1 => operators/prometheus-operator/4.5.7}/templates/NOTES.txt (100%) rename operators/prometheus-operator/{4.5.6 => 4.5.7}/templates/common.yaml (100%) rename {stable/cops/7.1.17 => operators/prometheus-operator/4.5.7}/values.yaml (100%) delete mode 100644 stable/blender/4.1.18/app-changelog.md rename stable/blender/{4.1.18 => 4.1.19}/CHANGELOG.md (90%) rename stable/blender/{4.1.18 => 4.1.19}/Chart.yaml (98%) rename stable/blender/{4.1.18 => 4.1.19}/README.md (100%) create mode 100644 stable/blender/4.1.19/app-changelog.md rename stable/blender/{4.1.18 => 4.1.19}/app-readme.md (100%) rename stable/{goaccess-npm-logs/4.1.12 => blender/4.1.19}/charts/common-17.2.30.tgz (100%) rename stable/blender/{4.1.18 => 4.1.19}/ix_values.yaml (85%) rename stable/blender/{4.1.18 => 4.1.19}/questions.yaml (99%) rename stable/blender/{4.1.18 => 4.1.19}/templates/common.yaml (100%) rename stable/{goaccess-npm-logs/4.1.12 => blender/4.1.19}/values.yaml (100%) create mode 100644 stable/calibre-web/17.1.19/CHANGELOG.md create mode 100644 stable/calibre-web/17.1.19/Chart.yaml create mode 100644 stable/calibre-web/17.1.19/README.md create mode 100644 stable/calibre-web/17.1.19/app-changelog.md create mode 100644 stable/calibre-web/17.1.19/app-readme.md rename stable/{kdenlive/4.1.16 => calibre-web/17.1.19}/charts/common-17.2.30.tgz (100%) create mode 100644 stable/calibre-web/17.1.19/ix_values.yaml create mode 100644 stable/calibre-web/17.1.19/questions.yaml rename stable/{posterr/7.1.14 => calibre-web/17.1.19}/templates/NOTES.txt (100%) rename stable/{snapdrop/8.1.14 => calibre-web/17.1.19}/templates/common.yaml (100%) rename stable/{kdenlive/4.1.16 => calibre-web/17.1.19}/values.yaml (100%) delete mode 100644 stable/cops/7.1.17/app-changelog.md rename stable/cops/{7.1.17 => 7.1.18}/CHANGELOG.md (90%) rename stable/cops/{7.1.17 => 7.1.18}/Chart.yaml (98%) rename stable/cops/{7.1.17 => 7.1.18}/README.md (100%) create mode 100644 stable/cops/7.1.18/app-changelog.md rename stable/cops/{7.1.17 => 7.1.18}/app-readme.md (100%) rename stable/{posterr/7.1.14 => cops/7.1.18}/charts/common-17.2.30.tgz (100%) rename stable/cops/{7.1.17 => 7.1.18}/ix_values.yaml (84%) rename stable/cops/{7.1.17 => 7.1.18}/questions.yaml (99%) rename stable/{prusaslicer-novnc => cops}/7.1.18/templates/NOTES.txt (100%) rename stable/cops/{7.1.17 => 7.1.18}/templates/common.yaml (100%) rename stable/{palworld/1.0.1 => cops/7.1.18}/values.yaml (100%) delete mode 100644 stable/goaccess-npm-logs/4.1.12/app-changelog.md rename stable/goaccess-npm-logs/{4.1.12 => 4.1.13}/CHANGELOG.md (89%) rename stable/goaccess-npm-logs/{4.1.12 => 4.1.13}/Chart.yaml (98%) rename stable/goaccess-npm-logs/{4.1.12 => 4.1.13}/README.md (100%) create mode 100644 stable/goaccess-npm-logs/4.1.13/app-changelog.md rename stable/goaccess-npm-logs/{4.1.12 => 4.1.13}/app-readme.md (100%) rename stable/{prusaslicer-novnc/7.1.18 => goaccess-npm-logs/4.1.13}/charts/common-17.2.30.tgz (100%) rename stable/goaccess-npm-logs/{4.1.12 => 4.1.13}/ix_values.yaml (88%) rename stable/goaccess-npm-logs/{4.1.12 => 4.1.13}/questions.yaml (99%) rename stable/goaccess-npm-logs/{4.1.12 => 4.1.13}/templates/common.yaml (100%) rename stable/{posterr/7.1.14 => goaccess-npm-logs/4.1.13}/values.yaml (100%) delete mode 100644 stable/kdenlive/4.1.16/app-changelog.md rename stable/kdenlive/{4.1.16 => 4.1.17}/CHANGELOG.md (92%) rename stable/kdenlive/{4.1.16 => 4.1.17}/Chart.yaml (98%) rename stable/kdenlive/{4.1.16 => 4.1.17}/README.md (100%) create mode 100644 stable/kdenlive/4.1.17/app-changelog.md rename stable/kdenlive/{4.1.16 => 4.1.17}/app-readme.md (100%) rename stable/{pyload-ng => kdenlive}/4.1.17/charts/common-17.2.30.tgz (100%) rename stable/kdenlive/{4.1.16 => 4.1.17}/ix_values.yaml (85%) rename stable/kdenlive/{4.1.16 => 4.1.17}/questions.yaml (99%) rename stable/kdenlive/{4.1.16 => 4.1.17}/templates/common.yaml (100%) rename stable/{prusaslicer-novnc/7.1.18 => kdenlive/4.1.17}/values.yaml (100%) create mode 100644 stable/littlelink/12.1.17/CHANGELOG.md create mode 100644 stable/littlelink/12.1.17/Chart.yaml create mode 100644 stable/littlelink/12.1.17/README.md create mode 100644 stable/littlelink/12.1.17/app-changelog.md create mode 100644 stable/littlelink/12.1.17/app-readme.md rename stable/{red-discordbot/4.1.15 => littlelink/12.1.17}/charts/common-17.2.30.tgz (100%) create mode 100644 stable/littlelink/12.1.17/ix_values.yaml create mode 100644 stable/littlelink/12.1.17/questions.yaml rename stable/{searxng/6.1.20 => littlelink/12.1.17}/templates/NOTES.txt (100%) create mode 100644 stable/littlelink/12.1.17/templates/_configmap.tpl create mode 100644 stable/littlelink/12.1.17/templates/common.yaml rename stable/{pyload-ng/4.1.17 => littlelink/12.1.17}/values.yaml (100%) create mode 100644 stable/logitech-media-server/10.1.12/CHANGELOG.md create mode 100644 stable/logitech-media-server/10.1.12/Chart.yaml create mode 100644 stable/logitech-media-server/10.1.12/README.md create mode 100644 stable/logitech-media-server/10.1.12/app-changelog.md create mode 100644 stable/logitech-media-server/10.1.12/app-readme.md rename stable/{searxng/6.1.20 => logitech-media-server/10.1.12}/charts/common-17.2.30.tgz (100%) create mode 100644 stable/logitech-media-server/10.1.12/ix_values.yaml create mode 100644 stable/logitech-media-server/10.1.12/questions.yaml rename stable/{snapdrop/8.1.14 => logitech-media-server/10.1.12}/templates/NOTES.txt (100%) rename stable/{steam-headless/2.1.18 => logitech-media-server/10.1.12}/templates/common.yaml (100%) rename stable/{red-discordbot/4.1.15 => logitech-media-server/10.1.12}/values.yaml (100%) create mode 100644 stable/mattermost/11.2.5/CHANGELOG.md create mode 100644 stable/mattermost/11.2.5/Chart.yaml create mode 100644 stable/mattermost/11.2.5/README.md create mode 100644 stable/mattermost/11.2.5/app-changelog.md create mode 100644 stable/mattermost/11.2.5/app-readme.md rename stable/{serpbear/2.1.13 => mattermost/11.2.5}/charts/common-17.2.30.tgz (100%) create mode 100644 stable/mattermost/11.2.5/ix_values.yaml create mode 100644 stable/mattermost/11.2.5/questions.yaml rename stable/{splunk/6.2.0 => mattermost/11.2.5}/templates/NOTES.txt (100%) rename stable/{posterr/7.1.14 => mattermost/11.2.5}/templates/common.yaml (100%) rename stable/{searxng/6.1.20 => mattermost/11.2.5}/values.yaml (100%) create mode 100644 stable/mylar/12.1.18/CHANGELOG.md create mode 100644 stable/mylar/12.1.18/Chart.yaml create mode 100644 stable/mylar/12.1.18/README.md create mode 100644 stable/mylar/12.1.18/app-changelog.md create mode 100644 stable/mylar/12.1.18/app-readme.md rename stable/{snapdrop/8.1.14 => mylar/12.1.18}/charts/common-17.2.30.tgz (100%) create mode 100644 stable/mylar/12.1.18/ix_values.yaml create mode 100644 stable/mylar/12.1.18/questions.yaml rename stable/{steam-headless/2.1.18 => mylar/12.1.18}/templates/NOTES.txt (100%) rename stable/{znc/8.1.16 => mylar/12.1.18}/templates/common.yaml (100%) rename stable/{serpbear/2.1.13 => mylar/12.1.18}/values.yaml (100%) create mode 100644 stable/omada-controller/13.0.12/CHANGELOG.md create mode 100644 stable/omada-controller/13.0.12/Chart.yaml create mode 100644 stable/omada-controller/13.0.12/README.md create mode 100644 stable/omada-controller/13.0.12/app-changelog.md create mode 100644 stable/omada-controller/13.0.12/app-readme.md rename stable/{splunk/6.2.0 => omada-controller/13.0.12}/charts/common-17.2.30.tgz (100%) create mode 100644 stable/omada-controller/13.0.12/ix_values.yaml create mode 100644 stable/omada-controller/13.0.12/questions.yaml rename stable/{valheim/9.1.11 => omada-controller/13.0.12}/templates/NOTES.txt (100%) create mode 100644 stable/omada-controller/13.0.12/templates/common.yaml rename stable/{snapdrop/8.1.14 => omada-controller/13.0.12}/values.yaml (100%) delete mode 100644 stable/palworld/1.0.1/app-changelog.md rename stable/palworld/{1.0.1 => 1.0.2}/CHANGELOG.md (59%) rename stable/palworld/{1.0.1 => 1.0.2}/Chart.yaml (98%) rename stable/palworld/{1.0.1 => 1.0.2}/README.md (100%) create mode 100644 stable/palworld/1.0.2/app-changelog.md rename stable/palworld/{1.0.1 => 1.0.2}/app-readme.md (100%) rename stable/palworld/{1.0.1 => 1.0.2}/charts/common-17.2.26.tgz (100%) rename stable/palworld/{1.0.1 => 1.0.2}/ix_values.yaml (99%) rename stable/palworld/{1.0.1 => 1.0.2}/questions.yaml (100%) rename stable/{znc/8.1.16 => palworld/1.0.2}/templates/NOTES.txt (100%) rename stable/palworld/{1.0.1 => 1.0.2}/templates/_configmap.tpl (100%) rename stable/palworld/{1.0.1 => 1.0.2}/templates/common.yaml (100%) rename stable/{splunk/6.2.0 => palworld/1.0.2}/values.yaml (100%) delete mode 100644 stable/posterr/7.1.14/app-changelog.md rename stable/posterr/{7.1.14 => 7.1.15}/CHANGELOG.md (90%) rename stable/posterr/{7.1.14 => 7.1.15}/Chart.yaml (98%) rename stable/posterr/{7.1.14 => 7.1.15}/README.md (100%) create mode 100644 stable/posterr/7.1.15/app-changelog.md rename stable/posterr/{7.1.14 => 7.1.15}/app-readme.md (100%) rename stable/{steam-headless/2.1.18 => posterr/7.1.15}/charts/common-17.2.30.tgz (100%) rename stable/posterr/{7.1.14 => 7.1.15}/ix_values.yaml (84%) rename stable/posterr/{7.1.14 => 7.1.15}/questions.yaml (99%) create mode 100644 stable/posterr/7.1.15/templates/NOTES.txt rename stable/{prusaslicer-novnc/7.1.18 => posterr/7.1.15}/templates/common.yaml (100%) rename stable/{steam-headless/2.1.18 => posterr/7.1.15}/values.yaml (100%) delete mode 100644 stable/prusaslicer-novnc/7.1.18/app-changelog.md rename stable/prusaslicer-novnc/{7.1.18 => 7.1.19}/CHANGELOG.md (90%) rename stable/prusaslicer-novnc/{7.1.18 => 7.1.19}/Chart.yaml (98%) rename stable/prusaslicer-novnc/{7.1.18 => 7.1.19}/README.md (100%) create mode 100644 stable/prusaslicer-novnc/7.1.19/app-changelog.md rename stable/prusaslicer-novnc/{7.1.18 => 7.1.19}/app-readme.md (100%) rename stable/{tar1090/4.1.20 => prusaslicer-novnc/7.1.19}/charts/common-17.2.30.tgz (100%) rename stable/prusaslicer-novnc/{7.1.18 => 7.1.19}/ix_values.yaml (87%) rename stable/prusaslicer-novnc/{7.1.18 => 7.1.19}/questions.yaml (99%) create mode 100644 stable/prusaslicer-novnc/7.1.19/templates/NOTES.txt rename stable/{pyload-ng/4.1.17 => prusaslicer-novnc/7.1.19}/templates/common.yaml (100%) rename stable/{tar1090/4.1.20 => prusaslicer-novnc/7.1.19}/values.yaml (100%) delete mode 100644 stable/pyload-ng/4.1.17/app-changelog.md rename stable/pyload-ng/{4.1.17 => 4.1.18}/CHANGELOG.md (90%) rename stable/pyload-ng/{4.1.17 => 4.1.18}/Chart.yaml (98%) rename stable/pyload-ng/{4.1.17 => 4.1.18}/README.md (100%) create mode 100644 stable/pyload-ng/4.1.18/app-changelog.md rename stable/pyload-ng/{4.1.17 => 4.1.18}/app-readme.md (100%) rename stable/{valheim/9.1.11 => pyload-ng/4.1.18}/charts/common-17.2.30.tgz (100%) rename stable/pyload-ng/{4.1.17 => 4.1.18}/ix_values.yaml (88%) rename stable/pyload-ng/{4.1.17 => 4.1.18}/questions.yaml (99%) rename stable/{red-discordbot/4.1.15 => pyload-ng/4.1.18}/templates/common.yaml (100%) rename stable/{valheim/9.1.11 => pyload-ng/4.1.18}/values.yaml (100%) delete mode 100644 stable/red-discordbot/4.1.15/app-changelog.md rename stable/red-discordbot/{4.1.15 => 4.1.16}/CHANGELOG.md (90%) rename stable/red-discordbot/{4.1.15 => 4.1.16}/Chart.yaml (98%) rename stable/red-discordbot/{4.1.15 => 4.1.16}/README.md (100%) create mode 100644 stable/red-discordbot/4.1.16/app-changelog.md rename stable/red-discordbot/{4.1.15 => 4.1.16}/app-readme.md (100%) rename stable/{webp-server/4.1.12 => red-discordbot/4.1.16}/charts/common-17.2.30.tgz (100%) rename stable/red-discordbot/{4.1.15 => 4.1.16}/ix_values.yaml (88%) rename stable/red-discordbot/{4.1.15 => 4.1.16}/questions.yaml (99%) rename stable/{searxng/6.1.20 => red-discordbot/4.1.16}/templates/common.yaml (100%) rename stable/{webp-server/4.1.12 => red-discordbot/4.1.16}/values.yaml (100%) create mode 100644 stable/redmine/10.1.15/CHANGELOG.md create mode 100644 stable/redmine/10.1.15/Chart.yaml create mode 100644 stable/redmine/10.1.15/README.md create mode 100644 stable/redmine/10.1.15/app-changelog.md create mode 100644 stable/redmine/10.1.15/app-readme.md rename stable/{znc/8.1.16 => redmine/10.1.15}/charts/common-17.2.30.tgz (100%) create mode 100644 stable/redmine/10.1.15/ix_values.yaml create mode 100644 stable/redmine/10.1.15/questions.yaml create mode 100644 stable/redmine/10.1.15/templates/NOTES.txt create mode 100644 stable/redmine/10.1.15/templates/_secrets.tpl create mode 100644 stable/redmine/10.1.15/templates/common.yaml rename stable/{znc/8.1.16 => redmine/10.1.15}/values.yaml (100%) delete mode 100644 stable/searxng/6.1.20/app-changelog.md rename stable/searxng/{6.1.20 => 6.1.21}/CHANGELOG.md (90%) rename stable/searxng/{6.1.20 => 6.1.21}/Chart.yaml (98%) rename stable/searxng/{6.1.20 => 6.1.21}/README.md (100%) create mode 100644 stable/searxng/6.1.21/app-changelog.md rename stable/searxng/{6.1.20 => 6.1.21}/app-readme.md (100%) create mode 100644 stable/searxng/6.1.21/charts/common-17.2.30.tgz rename stable/searxng/{6.1.20 => 6.1.21}/ix_values.yaml (92%) rename stable/searxng/{6.1.20 => 6.1.21}/questions.yaml (99%) create mode 100644 stable/searxng/6.1.21/templates/NOTES.txt rename stable/{tar1090/4.1.20 => searxng/6.1.21}/templates/common.yaml (100%) create mode 100644 stable/searxng/6.1.21/values.yaml delete mode 100644 stable/serpbear/2.1.13/app-changelog.md rename stable/serpbear/{2.1.13 => 2.1.14}/CHANGELOG.md (90%) rename stable/serpbear/{2.1.13 => 2.1.14}/Chart.yaml (98%) rename stable/serpbear/{2.1.13 => 2.1.14}/README.md (100%) create mode 100644 stable/serpbear/2.1.14/app-changelog.md rename stable/serpbear/{2.1.13 => 2.1.14}/app-readme.md (100%) create mode 100644 stable/serpbear/2.1.14/charts/common-17.2.30.tgz rename stable/serpbear/{2.1.13 => 2.1.14}/ix_values.yaml (86%) rename stable/serpbear/{2.1.13 => 2.1.14}/questions.yaml (99%) rename stable/serpbear/{2.1.13 => 2.1.14}/templates/_secret.tpl (100%) rename stable/serpbear/{2.1.13 => 2.1.14}/templates/common.yaml (100%) create mode 100644 stable/serpbear/2.1.14/values.yaml delete mode 100644 stable/snapdrop/8.1.14/app-changelog.md rename stable/snapdrop/{8.1.14 => 8.1.15}/CHANGELOG.md (89%) rename stable/snapdrop/{8.1.14 => 8.1.15}/Chart.yaml (98%) rename stable/snapdrop/{8.1.14 => 8.1.15}/README.md (100%) create mode 100644 stable/snapdrop/8.1.15/app-changelog.md rename stable/snapdrop/{8.1.14 => 8.1.15}/app-readme.md (100%) create mode 100644 stable/snapdrop/8.1.15/charts/common-17.2.30.tgz rename stable/snapdrop/{8.1.14 => 8.1.15}/ix_values.yaml (81%) rename stable/snapdrop/{8.1.14 => 8.1.15}/questions.yaml (99%) create mode 100644 stable/snapdrop/8.1.15/templates/NOTES.txt create mode 100644 stable/snapdrop/8.1.15/templates/common.yaml create mode 100644 stable/snapdrop/8.1.15/values.yaml delete mode 100644 stable/splunk/6.2.0/app-changelog.md rename stable/splunk/{6.2.0 => 6.2.1}/CHANGELOG.md (90%) rename stable/splunk/{6.2.0 => 6.2.1}/Chart.yaml (98%) rename stable/splunk/{6.2.0 => 6.2.1}/README.md (100%) create mode 100644 stable/splunk/6.2.1/app-changelog.md rename stable/splunk/{6.2.0 => 6.2.1}/app-readme.md (100%) create mode 100644 stable/splunk/6.2.1/charts/common-17.2.30.tgz rename stable/splunk/{6.2.0 => 6.2.1}/ix_values.yaml (93%) rename stable/splunk/{6.2.0 => 6.2.1}/questions.yaml (99%) create mode 100644 stable/splunk/6.2.1/templates/NOTES.txt rename stable/splunk/{6.2.0 => 6.2.1}/templates/_config.tpl (100%) rename stable/splunk/{6.2.0 => 6.2.1}/templates/common.yaml (100%) create mode 100644 stable/splunk/6.2.1/values.yaml delete mode 100644 stable/steam-headless/2.1.18/app-changelog.md rename stable/steam-headless/{2.1.18 => 2.1.19}/CHANGELOG.md (90%) rename stable/steam-headless/{2.1.18 => 2.1.19}/Chart.yaml (98%) rename stable/steam-headless/{2.1.18 => 2.1.19}/README.md (100%) create mode 100644 stable/steam-headless/2.1.19/app-changelog.md rename stable/steam-headless/{2.1.18 => 2.1.19}/app-readme.md (100%) create mode 100644 stable/steam-headless/2.1.19/charts/common-17.2.30.tgz rename stable/steam-headless/{2.1.18 => 2.1.19}/ix_values.yaml (93%) rename stable/steam-headless/{2.1.18 => 2.1.19}/questions.yaml (99%) create mode 100644 stable/steam-headless/2.1.19/templates/NOTES.txt create mode 100644 stable/steam-headless/2.1.19/templates/common.yaml create mode 100644 stable/steam-headless/2.1.19/values.yaml delete mode 100644 stable/tar1090/4.1.20/app-changelog.md rename stable/tar1090/{4.1.20 => 4.1.21}/CHANGELOG.md (90%) rename stable/tar1090/{4.1.20 => 4.1.21}/Chart.yaml (98%) rename stable/tar1090/{4.1.20 => 4.1.21}/README.md (100%) create mode 100644 stable/tar1090/4.1.21/app-changelog.md rename stable/tar1090/{4.1.20 => 4.1.21}/app-readme.md (100%) create mode 100644 stable/tar1090/4.1.21/charts/common-17.2.30.tgz rename stable/tar1090/{4.1.20 => 4.1.21}/ix_values.yaml (85%) rename stable/tar1090/{4.1.20 => 4.1.21}/questions.yaml (99%) rename stable/{webp-server/4.1.12 => tar1090/4.1.21}/templates/common.yaml (100%) create mode 100644 stable/tar1090/4.1.21/values.yaml delete mode 100644 stable/valheim/9.1.11/app-changelog.md rename stable/valheim/{9.1.11 => 9.1.12}/CHANGELOG.md (84%) rename stable/valheim/{9.1.11 => 9.1.12}/Chart.yaml (98%) rename stable/valheim/{9.1.11 => 9.1.12}/README.md (100%) create mode 100644 stable/valheim/9.1.12/app-changelog.md rename stable/valheim/{9.1.11 => 9.1.12}/app-readme.md (100%) create mode 100644 stable/valheim/9.1.12/charts/common-17.2.30.tgz rename stable/valheim/{9.1.11 => 9.1.12}/ix_values.yaml (95%) rename stable/valheim/{9.1.11 => 9.1.12}/questions.yaml (99%) create mode 100644 stable/valheim/9.1.12/templates/NOTES.txt rename stable/valheim/{9.1.11 => 9.1.12}/templates/common.yaml (100%) create mode 100644 stable/valheim/9.1.12/values.yaml create mode 100644 stable/vikunja/12.1.21/CHANGELOG.md create mode 100644 stable/vikunja/12.1.21/Chart.yaml create mode 100644 stable/vikunja/12.1.21/README.md create mode 100644 stable/vikunja/12.1.21/app-changelog.md create mode 100644 stable/vikunja/12.1.21/app-readme.md create mode 100644 stable/vikunja/12.1.21/charts/common-17.2.30.tgz create mode 100644 stable/vikunja/12.1.21/charts/redis-11.1.16.tgz create mode 100644 stable/vikunja/12.1.21/ix_values.yaml create mode 100644 stable/vikunja/12.1.21/questions.yaml create mode 100644 stable/vikunja/12.1.21/templates/NOTES.txt create mode 100644 stable/vikunja/12.1.21/templates/_secrets.tpl create mode 100644 stable/vikunja/12.1.21/templates/common.yaml create mode 100644 stable/vikunja/12.1.21/values.yaml delete mode 100644 stable/webp-server/4.1.12/app-changelog.md rename stable/webp-server/{4.1.12 => 4.1.13}/CHANGELOG.md (85%) rename stable/webp-server/{4.1.12 => 4.1.13}/Chart.yaml (98%) rename stable/webp-server/{4.1.12 => 4.1.13}/README.md (100%) create mode 100644 stable/webp-server/4.1.13/app-changelog.md rename stable/webp-server/{4.1.12 => 4.1.13}/app-readme.md (100%) create mode 100644 stable/webp-server/4.1.13/charts/common-17.2.30.tgz rename stable/webp-server/{4.1.12 => 4.1.13}/ix_values.yaml (88%) rename stable/webp-server/{4.1.12 => 4.1.13}/questions.yaml (99%) create mode 100644 stable/webp-server/4.1.13/templates/common.yaml create mode 100644 stable/webp-server/4.1.13/values.yaml delete mode 100644 stable/znc/8.1.16/app-changelog.md rename stable/znc/{8.1.16 => 8.1.17}/CHANGELOG.md (90%) rename stable/znc/{8.1.16 => 8.1.17}/Chart.yaml (98%) rename stable/znc/{8.1.16 => 8.1.17}/README.md (100%) create mode 100644 stable/znc/8.1.17/app-changelog.md rename stable/znc/{8.1.16 => 8.1.17}/app-readme.md (100%) create mode 100644 stable/znc/8.1.17/charts/common-17.2.30.tgz rename stable/znc/{8.1.16 => 8.1.17}/ix_values.yaml (82%) rename stable/znc/{8.1.16 => 8.1.17}/questions.yaml (99%) create mode 100644 stable/znc/8.1.17/templates/NOTES.txt create mode 100644 stable/znc/8.1.17/templates/common.yaml create mode 100644 stable/znc/8.1.17/values.yaml diff --git a/enterprise/traefik/25.1.17/CHANGELOG.md b/enterprise/traefik/25.1.17/CHANGELOG.md new file mode 100644 index 00000000000..65f925fbf8e --- /dev/null +++ b/enterprise/traefik/25.1.17/CHANGELOG.md @@ -0,0 +1,99 @@ +--- +title: Changelog +--- + +**Important:** +*for the complete changelog, please refer to the website* + + + +## [traefik-25.1.17](https://github.com/truecharts/charts/compare/traefik-25.1.16...traefik-25.1.17) (2024-02-12) + +### Chore + + + +- update container image tccr.io/tccr/traefik to v2.10.7[@ec52218](https://github.com/ec52218) by renovate ([#18109](https://github.com/truecharts/charts/issues/18109)) + + +## [traefik-25.1.16](https://github.com/truecharts/charts/compare/traefik-25.1.15...traefik-25.1.16) (2024-02-03) + +### Chore + + + +- update container image common to v17.2.30[@19ad5ec](https://github.com/19ad5ec) by renovate ([#17804](https://github.com/truecharts/charts/issues/17804)) + + +## [traefik-25.1.15](https://github.com/truecharts/charts/compare/traefik-25.1.14...traefik-25.1.15) (2024-01-26) + +### Chore + + + +- update container image common to v17.2.29[@d7c41a3](https://github.com/d7c41a3) by renovate ([#17545](https://github.com/truecharts/charts/issues/17545)) + + +## [traefik-25.1.14](https://github.com/truecharts/charts/compare/traefik-25.1.13...traefik-25.1.14) (2024-01-21) + +### Chore + + + +- update container image common to v17.2.28[@918b4c5](https://github.com/918b4c5) by renovate ([#17478](https://github.com/truecharts/charts/issues/17478)) + + +## [traefik-25.1.13](https://github.com/truecharts/charts/compare/traefik-25.1.12...traefik-25.1.13) (2024-01-21) + +### Chore + + + +- update container image tccr.io/tccr/traefik to v2.10.7[@1a1f160](https://github.com/1a1f160) by renovate ([#17471](https://github.com/truecharts/charts/issues/17471)) + + +## [traefik-25.1.12](https://github.com/truecharts/charts/compare/traefik-25.1.11...traefik-25.1.12) (2024-01-21) + +### Chore + + + +- update container image common to v17.2.26[@24c98f7](https://github.com/24c98f7) by renovate ([#17409](https://github.com/truecharts/charts/issues/17409)) + + +## [traefik-25.1.11](https://github.com/truecharts/charts/compare/traefik-25.1.10...traefik-25.1.11) (2024-01-21) + +### Chore + + + +- update metadata in chart.yaml ([#17457](https://github.com/truecharts/charts/issues/17457)) + + + + +## [traefik-25.1.10](https://github.com/truecharts/charts/compare/traefik-25.1.9...traefik-25.1.10) (2024-01-09) + +### Chore + + + +- update container image common to v17.2.22[@e7c9056](https://github.com/e7c9056) by renovate ([#16986](https://github.com/truecharts/charts/issues/16986)) + + +## [traefik-25.1.9](https://github.com/truecharts/charts/compare/traefik-25.1.8...traefik-25.1.9) (2024-01-02) + +### Chore + + + +- force bump to ensure up-to-date catalogs + + +## [traefik-25.1.8](https://github.com/truecharts/charts/compare/traefik-25.1.7...traefik-25.1.8) (2024-01-02) + +### Chore + + + +- update container image tccr.io/tccr/traefik to v2.10.7[@769efdf](https://github.com/769efdf) by renovate ([#16807](https://github.com/truecharts/charts/issues/16807)) diff --git a/enterprise/traefik/25.1.17/Chart.yaml b/enterprise/traefik/25.1.17/Chart.yaml new file mode 100644 index 00000000000..393f81de4ee --- /dev/null +++ b/enterprise/traefik/25.1.17/Chart.yaml @@ -0,0 +1,39 @@ +annotations: + max_scale_version: 23.10.2 + min_scale_version: 23.10.0 + truecharts.org/SCALE-support: "true" + truecharts.org/category: network + truecharts.org/max_helm_version: "3.14" + truecharts.org/min_helm_version: "3.12" + truecharts.org/train: enterprise +apiVersion: v2 +appVersion: 2.10.7 +dependencies: + - name: common + version: 17.2.30 + repository: oci://tccr.io/truecharts + condition: "" + alias: "" + tags: [] + import-values: [] +deprecated: false +description: Traefik is a flexible reverse proxy and Ingress Provider. +home: https://truecharts.org/charts/enterprise/traefik +icon: https://truecharts.org/img/hotlink-ok/chart-icons/traefik.png +keywords: + - traefik + - ingress +kubeVersion: ">=1.24.0-0" +maintainers: + - name: TrueCharts + email: info@truecharts.org + url: https://truecharts.org +name: traefik +sources: + - https://github.com/traefik/traefik + - https://github.com/traefik/traefik-helm-chart + - https://traefik.io/ + - https://github.com/truecharts/charts/tree/master/charts/enterprise/traefik + - https://github.com/truecharts/containers/tree/master/apps/traefik +type: application +version: 25.1.17 diff --git a/enterprise/traefik/25.1.17/LICENSE b/enterprise/traefik/25.1.17/LICENSE new file mode 100644 index 00000000000..4139714f204 --- /dev/null +++ b/enterprise/traefik/25.1.17/LICENSE @@ -0,0 +1,106 @@ +Business Source License 1.1 + +Parameters + +Licensor: The TrueCharts Project, it's owner and it's contributors +Licensed Work: The TrueCharts "Traefik" Helm Chart +Additional Use Grant: You may use the licensed work in production, as long + as it is directly sourced from a TrueCharts provided + official repository, catalog or source. You may also make private + modification to the directly sourced licenced work, + when used in production. + + The following cases are, due to their nature, also + defined as 'production use' and explicitly prohibited: + - Bundling, including or displaying the licensed work + with(in) another work intended for production use, + with the apparent intend of facilitating and/or + promoting production use by third parties in + violation of this license. + +Change Date: 2050-01-01 + +Change License: 3-clause BSD license + +For information about alternative licensing arrangements for the Software, +please contact: legal@truecharts.org + +Notice + +The Business Source License (this document, or the “License”) is not an Open +Source license. However, the Licensed Work will eventually be made available +under an Open Source License, as stated in this License. + +License text copyright (c) 2017 MariaDB Corporation Ab, All Rights Reserved. +“Business Source License” is a trademark of MariaDB Corporation Ab. + +----------------------------------------------------------------------------- + +Business Source License 1.1 + +Terms + +The Licensor hereby grants you the right to copy, modify, create derivative +works, redistribute, and make non-production use of the Licensed Work. The +Licensor may make an Additional Use Grant, above, permitting limited +production use. + +Effective on the Change Date, or the fourth anniversary of the first publicly +available distribution of a specific version of the Licensed Work under this +License, whichever comes first, the Licensor hereby grants you rights under +the terms of the Change License, and the rights granted in the paragraph +above terminate. + +If your use of the Licensed Work does not comply with the requirements +currently in effect as described in this License, you must purchase a +commercial license from the Licensor, its affiliated entities, or authorized +resellers, or you must refrain from using the Licensed Work. + +All copies of the original and modified Licensed Work, and derivative works +of the Licensed Work, are subject to this License. This License applies +separately for each version of the Licensed Work and the Change Date may vary +for each version of the Licensed Work released by Licensor. + +You must conspicuously display this License on each original or modified copy +of the Licensed Work. If you receive the Licensed Work in original or +modified form from a third party, the terms and conditions set forth in this +License apply to your use of that work. + +Any use of the Licensed Work in violation of this License will automatically +terminate your rights under this License for the current and all other +versions of the Licensed Work. + +This License does not grant you any right in any trademark or logo of +Licensor or its affiliates (provided that you may use a trademark or logo of +Licensor as expressly required by this License). + +TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON +AN “AS IS” BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS, +EXPRESS OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND +TITLE. + +MariaDB hereby grants you permission to use this License’s text to license +your works, and to refer to it using the trademark “Business Source License”, +as long as you comply with the Covenants of Licensor below. + +Covenants of Licensor + +In consideration of the right to use this License’s text and the “Business +Source License” name and trademark, Licensor covenants to MariaDB, and to all +other recipients of the licensed work to be provided by Licensor: + +1. To specify as the Change License the GPL Version 2.0 or any later version, + or a license that is compatible with GPL Version 2.0 or a later version, + where “compatible” means that software provided under the Change License can + be included in a program with software provided under GPL Version 2.0 or a + later version. Licensor may specify additional Change Licenses without + limitation. + +2. To either: (a) specify an additional grant of rights to use that does not + impose any additional restriction on the right granted in this License, as + the Additional Use Grant; or (b) insert the text “None”. + +3. To specify a Change Date. + +4. Not to modify this License in any other way. diff --git a/enterprise/traefik/25.1.17/README.md b/enterprise/traefik/25.1.17/README.md new file mode 100644 index 00000000000..0eb2123c77e --- /dev/null +++ b/enterprise/traefik/25.1.17/README.md @@ -0,0 +1,28 @@ +--- +title: README +--- + +## General Info + +TrueCharts can be installed as both _normal_ Helm Charts or as Apps on TrueNAS SCALE. +However only installations using the TrueNAS SCALE Apps system are supported. + +For more information about this App, please check the docs on the TrueCharts [website](https://truecharts.org/charts/enterprise/traefik) + +**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)** + +## Support + +- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/manual/SCALE/guides/scale-intro). +- See the [Website](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/charts/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/enterprise/traefik/25.1.17/app-changelog.md b/enterprise/traefik/25.1.17/app-changelog.md new file mode 100644 index 00000000000..919df10be12 --- /dev/null +++ b/enterprise/traefik/25.1.17/app-changelog.md @@ -0,0 +1,9 @@ + + +## [traefik-25.1.17](https://github.com/truecharts/charts/compare/traefik-25.1.16...traefik-25.1.17) (2024-02-12) + +### Chore + + + +- update container image tccr.io/tccr/traefik to v2.10.7[@ec52218](https://github.com/ec52218) by renovate ([#18109](https://github.com/truecharts/charts/issues/18109)) \ No newline at end of file diff --git a/enterprise/traefik/25.1.17/app-readme.md b/enterprise/traefik/25.1.17/app-readme.md new file mode 100644 index 00000000000..02206fafcf4 --- /dev/null +++ b/enterprise/traefik/25.1.17/app-readme.md @@ -0,0 +1,8 @@ +Traefik is a flexible reverse proxy and Ingress Provider. + +This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/charts/enterprise/traefik](https://truecharts.org/charts/enterprise/traefik) + +--- + +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! diff --git a/operators/cert-manager/3.1.15/charts/common-17.2.30.tgz b/enterprise/traefik/25.1.17/charts/common-17.2.30.tgz similarity index 100% rename from operators/cert-manager/3.1.15/charts/common-17.2.30.tgz rename to enterprise/traefik/25.1.17/charts/common-17.2.30.tgz diff --git a/enterprise/traefik/25.1.17/crds/traefik.containo.us_ingressroutes.yaml b/enterprise/traefik/25.1.17/crds/traefik.containo.us_ingressroutes.yaml new file mode 100644 index 00000000000..bd137f410d9 --- /dev/null +++ b/enterprise/traefik/25.1.17/crds/traefik.containo.us_ingressroutes.yaml @@ -0,0 +1,275 @@ + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.6.2 + creationTimestamp: null + name: ingressroutes.traefik.containo.us +spec: + group: traefik.containo.us + names: + kind: IngressRoute + listKind: IngressRouteList + plural: ingressroutes + singular: ingressroute + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: IngressRoute is the CRD implementation of a Traefik HTTP Router. + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: IngressRouteSpec defines the desired state of IngressRoute. + properties: + entryPoints: + description: 'EntryPoints defines the list of entry point names to + bind to. Entry points have to be configured in the static configuration. + More info: https://doc.traefik.io/traefik/v2.10/routing/entrypoints/ + Default: all.' + items: + type: string + type: array + routes: + description: Routes defines the list of routes. + items: + description: Route holds the HTTP route configuration. + properties: + kind: + description: Kind defines the kind of the route. Rule is the + only supported kind. + enum: + - Rule + type: string + match: + description: 'Match defines the router''s rule. More info: https://doc.traefik.io/traefik/v2.10/routing/routers/#rule' + type: string + middlewares: + description: 'Middlewares defines the list of references to + Middleware resources. More info: https://doc.traefik.io/traefik/v2.10/routing/providers/kubernetes-crd/#kind-middleware' + items: + description: MiddlewareRef is a reference to a Middleware + resource. + properties: + name: + description: Name defines the name of the referenced Middleware + resource. + type: string + namespace: + description: Namespace defines the namespace of the referenced + Middleware resource. + type: string + required: + - name + type: object + type: array + priority: + description: 'Priority defines the router''s priority. More + info: https://doc.traefik.io/traefik/v2.10/routing/routers/#priority' + type: integer + services: + description: Services defines the list of Service. It can contain + any combination of TraefikService and/or reference to a Kubernetes + Service. + items: + description: Service defines an upstream HTTP service to proxy + traffic to. + properties: + kind: + description: Kind defines the kind of the Service. + enum: + - Service + - TraefikService + type: string + name: + description: Name defines the name of the referenced Kubernetes + Service or TraefikService. The differentiation between + the two is specified in the Kind field. + type: string + namespace: + description: Namespace defines the namespace of the referenced + Kubernetes Service or TraefikService. + type: string + nativeLB: + description: NativeLB controls, when creating the load-balancer, + whether the LB's children are directly the pods IPs + or if the only child is the Kubernetes Service clusterIP. + The Kubernetes Service itself does load-balance to the + pods. By default, NativeLB is false. + type: boolean + passHostHeader: + description: PassHostHeader defines whether the client + Host header is forwarded to the upstream Kubernetes + Service. By default, passHostHeader is true. + type: boolean + port: + anyOf: + - type: integer + - type: string + description: Port defines the port of a Kubernetes Service. + This can be a reference to a named port. + x-kubernetes-int-or-string: true + responseForwarding: + description: ResponseForwarding defines how Traefik forwards + the response from the upstream Kubernetes Service to + the client. + properties: + flushInterval: + description: 'FlushInterval defines the interval, + in milliseconds, in between flushes to the client + while copying the response body. A negative value + means to flush immediately after each write to the + client. This configuration is ignored when ReverseProxy + recognizes a response as a streaming response; for + such responses, writes are flushed to the client + immediately. Default: 100ms' + type: string + type: object + scheme: + description: Scheme defines the scheme to use for the + request to the upstream Kubernetes Service. It defaults + to https when Kubernetes Service port is 443, http otherwise. + type: string + serversTransport: + description: ServersTransport defines the name of ServersTransport + resource to use. It allows to configure the transport + between Traefik and your servers. Can only be used on + a Kubernetes Service. + type: string + sticky: + description: 'Sticky defines the sticky sessions configuration. + More info: https://doc.traefik.io/traefik/v2.10/routing/services/#sticky-sessions' + properties: + cookie: + description: Cookie defines the sticky cookie configuration. + properties: + httpOnly: + description: HTTPOnly defines whether the cookie + can be accessed by client-side APIs, such as + JavaScript. + type: boolean + name: + description: Name defines the Cookie name. + type: string + sameSite: + description: 'SameSite defines the same site policy. + More info: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite' + type: string + secure: + description: Secure defines whether the cookie + can only be transmitted over an encrypted connection + (i.e. HTTPS). + type: boolean + type: object + type: object + strategy: + description: Strategy defines the load balancing strategy + between the servers. RoundRobin is the only supported + value at the moment. + type: string + weight: + description: Weight defines the weight and should only + be specified when Name references a TraefikService object + (and to be precise, one that embeds a Weighted Round + Robin). + type: integer + required: + - name + type: object + type: array + required: + - kind + - match + type: object + type: array + tls: + description: 'TLS defines the TLS configuration. More info: https://doc.traefik.io/traefik/v2.10/routing/routers/#tls' + properties: + certResolver: + description: 'CertResolver defines the name of the certificate + resolver to use. Cert resolvers have to be configured in the + static configuration. More info: https://doc.traefik.io/traefik/v2.10/https/acme/#certificate-resolvers' + type: string + domains: + description: 'Domains defines the list of domains that will be + used to issue certificates. More info: https://doc.traefik.io/traefik/v2.10/routing/routers/#domains' + items: + description: Domain holds a domain name with SANs. + properties: + main: + description: Main defines the main domain name. + type: string + sans: + description: SANs defines the subject alternative domain + names. + items: + type: string + type: array + type: object + type: array + options: + description: 'Options defines the reference to a TLSOption, that + specifies the parameters of the TLS connection. If not defined, + the `default` TLSOption is used. More info: https://doc.traefik.io/traefik/v2.10/https/tls/#tls-options' + properties: + name: + description: 'Name defines the name of the referenced TLSOption. + More info: https://doc.traefik.io/traefik/v2.10/routing/providers/kubernetes-crd/#kind-tlsoption' + type: string + namespace: + description: 'Namespace defines the namespace of the referenced + TLSOption. More info: https://doc.traefik.io/traefik/v2.10/routing/providers/kubernetes-crd/#kind-tlsoption' + type: string + required: + - name + type: object + secretName: + description: SecretName is the name of the referenced Kubernetes + Secret to specify the certificate details. + type: string + store: + description: Store defines the reference to the TLSStore, that + will be used to store certificates. Please note that only `default` + TLSStore can be used. + properties: + name: + description: 'Name defines the name of the referenced TLSStore. + More info: https://doc.traefik.io/traefik/v2.10/routing/providers/kubernetes-crd/#kind-tlsstore' + type: string + namespace: + description: 'Namespace defines the namespace of the referenced + TLSStore. More info: https://doc.traefik.io/traefik/v2.10/routing/providers/kubernetes-crd/#kind-tlsstore' + type: string + required: + - name + type: object + type: object + required: + - routes + type: object + required: + - metadata + - spec + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/enterprise/traefik/25.1.17/crds/traefik.containo.us_ingressroutetcps.yaml b/enterprise/traefik/25.1.17/crds/traefik.containo.us_ingressroutetcps.yaml new file mode 100644 index 00000000000..589fe31c18c --- /dev/null +++ b/enterprise/traefik/25.1.17/crds/traefik.containo.us_ingressroutetcps.yaml @@ -0,0 +1,218 @@ + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.6.2 + creationTimestamp: null + name: ingressroutetcps.traefik.containo.us +spec: + group: traefik.containo.us + names: + kind: IngressRouteTCP + listKind: IngressRouteTCPList + plural: ingressroutetcps + singular: ingressroutetcp + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: IngressRouteTCP is the CRD implementation of a Traefik TCP Router. + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: IngressRouteTCPSpec defines the desired state of IngressRouteTCP. + properties: + entryPoints: + description: 'EntryPoints defines the list of entry point names to + bind to. Entry points have to be configured in the static configuration. + More info: https://doc.traefik.io/traefik/v2.10/routing/entrypoints/ + Default: all.' + items: + type: string + type: array + routes: + description: Routes defines the list of routes. + items: + description: RouteTCP holds the TCP route configuration. + properties: + match: + description: 'Match defines the router''s rule. More info: https://doc.traefik.io/traefik/v2.10/routing/routers/#rule_1' + type: string + middlewares: + description: Middlewares defines the list of references to MiddlewareTCP + resources. + items: + description: ObjectReference is a generic reference to a Traefik + resource. + properties: + name: + description: Name defines the name of the referenced Traefik + resource. + type: string + namespace: + description: Namespace defines the namespace of the referenced + Traefik resource. + type: string + required: + - name + type: object + type: array + priority: + description: 'Priority defines the router''s priority. More + info: https://doc.traefik.io/traefik/v2.10/routing/routers/#priority_1' + type: integer + services: + description: Services defines the list of TCP services. + items: + description: ServiceTCP defines an upstream TCP service to + proxy traffic to. + properties: + name: + description: Name defines the name of the referenced Kubernetes + Service. + type: string + namespace: + description: Namespace defines the namespace of the referenced + Kubernetes Service. + type: string + nativeLB: + description: NativeLB controls, when creating the load-balancer, + whether the LB's children are directly the pods IPs + or if the only child is the Kubernetes Service clusterIP. + The Kubernetes Service itself does load-balance to the + pods. By default, NativeLB is false. + type: boolean + port: + anyOf: + - type: integer + - type: string + description: Port defines the port of a Kubernetes Service. + This can be a reference to a named port. + x-kubernetes-int-or-string: true + proxyProtocol: + description: 'ProxyProtocol defines the PROXY protocol + configuration. More info: https://doc.traefik.io/traefik/v2.10/routing/services/#proxy-protocol' + properties: + version: + description: Version defines the PROXY Protocol version + to use. + type: integer + type: object + terminationDelay: + description: TerminationDelay defines the deadline that + the proxy sets, after one of its connected peers indicates + it has closed the writing capability of its connection, + to close the reading capability as well, hence fully + terminating the connection. It is a duration in milliseconds, + defaulting to 100. A negative value means an infinite + deadline (i.e. the reading capability is never closed). + type: integer + weight: + description: Weight defines the weight used when balancing + requests between multiple Kubernetes Service. + type: integer + required: + - name + - port + type: object + type: array + required: + - match + type: object + type: array + tls: + description: 'TLS defines the TLS configuration on a layer 4 / TCP + Route. More info: https://doc.traefik.io/traefik/v2.10/routing/routers/#tls_1' + properties: + certResolver: + description: 'CertResolver defines the name of the certificate + resolver to use. Cert resolvers have to be configured in the + static configuration. More info: https://doc.traefik.io/traefik/v2.10/https/acme/#certificate-resolvers' + type: string + domains: + description: 'Domains defines the list of domains that will be + used to issue certificates. More info: https://doc.traefik.io/traefik/v2.10/routing/routers/#domains' + items: + description: Domain holds a domain name with SANs. + properties: + main: + description: Main defines the main domain name. + type: string + sans: + description: SANs defines the subject alternative domain + names. + items: + type: string + type: array + type: object + type: array + options: + description: 'Options defines the reference to a TLSOption, that + specifies the parameters of the TLS connection. If not defined, + the `default` TLSOption is used. More info: https://doc.traefik.io/traefik/v2.10/https/tls/#tls-options' + properties: + name: + description: Name defines the name of the referenced Traefik + resource. + type: string + namespace: + description: Namespace defines the namespace of the referenced + Traefik resource. + type: string + required: + - name + type: object + passthrough: + description: Passthrough defines whether a TLS router will terminate + the TLS connection. + type: boolean + secretName: + description: SecretName is the name of the referenced Kubernetes + Secret to specify the certificate details. + type: string + store: + description: Store defines the reference to the TLSStore, that + will be used to store certificates. Please note that only `default` + TLSStore can be used. + properties: + name: + description: Name defines the name of the referenced Traefik + resource. + type: string + namespace: + description: Namespace defines the namespace of the referenced + Traefik resource. + type: string + required: + - name + type: object + type: object + required: + - routes + type: object + required: + - metadata + - spec + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/enterprise/traefik/25.1.17/crds/traefik.containo.us_ingressrouteudps.yaml b/enterprise/traefik/25.1.17/crds/traefik.containo.us_ingressrouteudps.yaml new file mode 100644 index 00000000000..c35ee4dc20d --- /dev/null +++ b/enterprise/traefik/25.1.17/crds/traefik.containo.us_ingressrouteudps.yaml @@ -0,0 +1,105 @@ + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.6.2 + creationTimestamp: null + name: ingressrouteudps.traefik.containo.us +spec: + group: traefik.containo.us + names: + kind: IngressRouteUDP + listKind: IngressRouteUDPList + plural: ingressrouteudps + singular: ingressrouteudp + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: IngressRouteUDP is a CRD implementation of a Traefik UDP Router. + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: IngressRouteUDPSpec defines the desired state of a IngressRouteUDP. + properties: + entryPoints: + description: 'EntryPoints defines the list of entry point names to + bind to. Entry points have to be configured in the static configuration. + More info: https://doc.traefik.io/traefik/v2.10/routing/entrypoints/ + Default: all.' + items: + type: string + type: array + routes: + description: Routes defines the list of routes. + items: + description: RouteUDP holds the UDP route configuration. + properties: + services: + description: Services defines the list of UDP services. + items: + description: ServiceUDP defines an upstream UDP service to + proxy traffic to. + properties: + name: + description: Name defines the name of the referenced Kubernetes + Service. + type: string + namespace: + description: Namespace defines the namespace of the referenced + Kubernetes Service. + type: string + nativeLB: + description: NativeLB controls, when creating the load-balancer, + whether the LB's children are directly the pods IPs + or if the only child is the Kubernetes Service clusterIP. + The Kubernetes Service itself does load-balance to the + pods. By default, NativeLB is false. + type: boolean + port: + anyOf: + - type: integer + - type: string + description: Port defines the port of a Kubernetes Service. + This can be a reference to a named port. + x-kubernetes-int-or-string: true + weight: + description: Weight defines the weight used when balancing + requests between multiple Kubernetes Service. + type: integer + required: + - name + - port + type: object + type: array + type: object + type: array + required: + - routes + type: object + required: + - metadata + - spec + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/enterprise/traefik/25.1.17/crds/traefik.containo.us_middlewares.yaml b/enterprise/traefik/25.1.17/crds/traefik.containo.us_middlewares.yaml new file mode 100644 index 00000000000..5e14f93fa55 --- /dev/null +++ b/enterprise/traefik/25.1.17/crds/traefik.containo.us_middlewares.yaml @@ -0,0 +1,924 @@ + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.6.2 + creationTimestamp: null + name: middlewares.traefik.containo.us +spec: + group: traefik.containo.us + names: + kind: Middleware + listKind: MiddlewareList + plural: middlewares + singular: middleware + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: 'Middleware is the CRD implementation of a Traefik Middleware. + More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/overview/' + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: MiddlewareSpec defines the desired state of a Middleware. + properties: + addPrefix: + description: 'AddPrefix holds the add prefix middleware configuration. + This middleware updates the path of a request before forwarding + it. More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/addprefix/' + properties: + prefix: + description: Prefix is the string to add before the current path + in the requested URL. It should include a leading slash (/). + type: string + type: object + basicAuth: + description: 'BasicAuth holds the basic auth middleware configuration. + This middleware restricts access to your services to known users. + More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/basicauth/' + properties: + headerField: + description: 'HeaderField defines a header field to store the + authenticated user. More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/basicauth/#headerfield' + type: string + realm: + description: 'Realm allows the protected resources on a server + to be partitioned into a set of protection spaces, each with + its own authentication scheme. Default: traefik.' + type: string + removeHeader: + description: 'RemoveHeader sets the removeHeader option to true + to remove the authorization header before forwarding the request + to your service. Default: false.' + type: boolean + secret: + description: Secret is the name of the referenced Kubernetes Secret + containing user credentials. + type: string + type: object + buffering: + description: 'Buffering holds the buffering middleware configuration. + This middleware retries or limits the size of requests that can + be forwarded to backends. More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/buffering/#maxrequestbodybytes' + properties: + maxRequestBodyBytes: + description: 'MaxRequestBodyBytes defines the maximum allowed + body size for the request (in bytes). If the request exceeds + the allowed size, it is not forwarded to the service, and the + client gets a 413 (Request Entity Too Large) response. Default: + 0 (no maximum).' + format: int64 + type: integer + maxResponseBodyBytes: + description: 'MaxResponseBodyBytes defines the maximum allowed + response size from the service (in bytes). If the response exceeds + the allowed size, it is not forwarded to the client. The client + gets a 500 (Internal Server Error) response instead. Default: + 0 (no maximum).' + format: int64 + type: integer + memRequestBodyBytes: + description: 'MemRequestBodyBytes defines the threshold (in bytes) + from which the request will be buffered on disk instead of in + memory. Default: 1048576 (1Mi).' + format: int64 + type: integer + memResponseBodyBytes: + description: 'MemResponseBodyBytes defines the threshold (in bytes) + from which the response will be buffered on disk instead of + in memory. Default: 1048576 (1Mi).' + format: int64 + type: integer + retryExpression: + description: 'RetryExpression defines the retry conditions. It + is a logical combination of functions with operators AND (&&) + and OR (||). More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/buffering/#retryexpression' + type: string + type: object + chain: + description: 'Chain holds the configuration of the chain middleware. + This middleware enables to define reusable combinations of other + pieces of middleware. More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/chain/' + properties: + middlewares: + description: Middlewares is the list of MiddlewareRef which composes + the chain. + items: + description: MiddlewareRef is a reference to a Middleware resource. + properties: + name: + description: Name defines the name of the referenced Middleware + resource. + type: string + namespace: + description: Namespace defines the namespace of the referenced + Middleware resource. + type: string + required: + - name + type: object + type: array + type: object + circuitBreaker: + description: CircuitBreaker holds the circuit breaker configuration. + properties: + checkPeriod: + anyOf: + - type: integer + - type: string + description: CheckPeriod is the interval between successive checks + of the circuit breaker condition (when in standby state). + x-kubernetes-int-or-string: true + expression: + description: Expression is the condition that triggers the tripped + state. + type: string + fallbackDuration: + anyOf: + - type: integer + - type: string + description: FallbackDuration is the duration for which the circuit + breaker will wait before trying to recover (from a tripped state). + x-kubernetes-int-or-string: true + recoveryDuration: + anyOf: + - type: integer + - type: string + description: RecoveryDuration is the duration for which the circuit + breaker will try to recover (as soon as it is in recovering + state). + x-kubernetes-int-or-string: true + type: object + compress: + description: 'Compress holds the compress middleware configuration. + This middleware compresses responses before sending them to the + client, using gzip compression. More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/compress/' + properties: + excludedContentTypes: + description: ExcludedContentTypes defines the list of content + types to compare the Content-Type header of the incoming requests + and responses before compressing. + items: + type: string + type: array + minResponseBodyBytes: + description: 'MinResponseBodyBytes defines the minimum amount + of bytes a response body must have to be compressed. Default: + 1024.' + type: integer + type: object + contentType: + description: ContentType holds the content-type middleware configuration. + This middleware exists to enable the correct behavior until at least + the default one can be changed in a future version. + properties: + autoDetect: + description: AutoDetect specifies whether to let the `Content-Type` + header, if it has not been set by the backend, be automatically + set to a value derived from the contents of the response. As + a proxy, the default behavior should be to leave the header + alone, regardless of what the backend did with it. However, + the historic default was to always auto-detect and set the header + if it was nil, and it is going to be kept that way in order + to support users currently relying on it. + type: boolean + type: object + digestAuth: + description: 'DigestAuth holds the digest auth middleware configuration. + This middleware restricts access to your services to known users. + More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/digestauth/' + properties: + headerField: + description: 'HeaderField defines a header field to store the + authenticated user. More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/basicauth/#headerfield' + type: string + realm: + description: 'Realm allows the protected resources on a server + to be partitioned into a set of protection spaces, each with + its own authentication scheme. Default: traefik.' + type: string + removeHeader: + description: RemoveHeader defines whether to remove the authorization + header before forwarding the request to the backend. + type: boolean + secret: + description: Secret is the name of the referenced Kubernetes Secret + containing user credentials. + type: string + type: object + errors: + description: 'ErrorPage holds the custom error middleware configuration. + This middleware returns a custom page in lieu of the default, according + to configured ranges of HTTP Status codes. More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/errorpages/' + properties: + query: + description: Query defines the URL for the error page (hosted + by service). The {status} variable can be used in order to insert + the status code in the URL. + type: string + service: + description: 'Service defines the reference to a Kubernetes Service + that will serve the error page. More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/errorpages/#service' + properties: + kind: + description: Kind defines the kind of the Service. + enum: + - Service + - TraefikService + type: string + name: + description: Name defines the name of the referenced Kubernetes + Service or TraefikService. The differentiation between the + two is specified in the Kind field. + type: string + namespace: + description: Namespace defines the namespace of the referenced + Kubernetes Service or TraefikService. + type: string + nativeLB: + description: NativeLB controls, when creating the load-balancer, + whether the LB's children are directly the pods IPs or if + the only child is the Kubernetes Service clusterIP. The + Kubernetes Service itself does load-balance to the pods. + By default, NativeLB is false. + type: boolean + passHostHeader: + description: PassHostHeader defines whether the client Host + header is forwarded to the upstream Kubernetes Service. + By default, passHostHeader is true. + type: boolean + port: + anyOf: + - type: integer + - type: string + description: Port defines the port of a Kubernetes Service. + This can be a reference to a named port. + x-kubernetes-int-or-string: true + responseForwarding: + description: ResponseForwarding defines how Traefik forwards + the response from the upstream Kubernetes Service to the + client. + properties: + flushInterval: + description: 'FlushInterval defines the interval, in milliseconds, + in between flushes to the client while copying the response + body. A negative value means to flush immediately after + each write to the client. This configuration is ignored + when ReverseProxy recognizes a response as a streaming + response; for such responses, writes are flushed to + the client immediately. Default: 100ms' + type: string + type: object + scheme: + description: Scheme defines the scheme to use for the request + to the upstream Kubernetes Service. It defaults to https + when Kubernetes Service port is 443, http otherwise. + type: string + serversTransport: + description: ServersTransport defines the name of ServersTransport + resource to use. It allows to configure the transport between + Traefik and your servers. Can only be used on a Kubernetes + Service. + type: string + sticky: + description: 'Sticky defines the sticky sessions configuration. + More info: https://doc.traefik.io/traefik/v2.10/routing/services/#sticky-sessions' + properties: + cookie: + description: Cookie defines the sticky cookie configuration. + properties: + httpOnly: + description: HTTPOnly defines whether the cookie can + be accessed by client-side APIs, such as JavaScript. + type: boolean + name: + description: Name defines the Cookie name. + type: string + sameSite: + description: 'SameSite defines the same site policy. + More info: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite' + type: string + secure: + description: Secure defines whether the cookie can + only be transmitted over an encrypted connection + (i.e. HTTPS). + type: boolean + type: object + type: object + strategy: + description: Strategy defines the load balancing strategy + between the servers. RoundRobin is the only supported value + at the moment. + type: string + weight: + description: Weight defines the weight and should only be + specified when Name references a TraefikService object (and + to be precise, one that embeds a Weighted Round Robin). + type: integer + required: + - name + type: object + status: + description: Status defines which status or range of statuses + should result in an error page. It can be either a status code + as a number (500), as multiple comma-separated numbers (500,502), + as ranges by separating two codes with a dash (500-599), or + a combination of the two (404,418,500-599). + items: + type: string + type: array + type: object + forwardAuth: + description: 'ForwardAuth holds the forward auth middleware configuration. + This middleware delegates the request authentication to a Service. + More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/forwardauth/' + properties: + address: + description: Address defines the authentication server address. + type: string + authRequestHeaders: + description: AuthRequestHeaders defines the list of the headers + to copy from the request to the authentication server. If not + set or empty then all request headers are passed. + items: + type: string + type: array + authResponseHeaders: + description: AuthResponseHeaders defines the list of headers to + copy from the authentication server response and set on forwarded + request, replacing any existing conflicting headers. + items: + type: string + type: array + authResponseHeadersRegex: + description: 'AuthResponseHeadersRegex defines the regex to match + headers to copy from the authentication server response and + set on forwarded request, after stripping all headers that match + the regex. More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/forwardauth/#authresponseheadersregex' + type: string + tls: + description: TLS defines the configuration used to secure the + connection to the authentication server. + properties: + caOptional: + type: boolean + caSecret: + description: CASecret is the name of the referenced Kubernetes + Secret containing the CA to validate the server certificate. + The CA certificate is extracted from key `tls.ca` or `ca.crt`. + type: string + certSecret: + description: CertSecret is the name of the referenced Kubernetes + Secret containing the client certificate. The client certificate + is extracted from the keys `tls.crt` and `tls.key`. + type: string + insecureSkipVerify: + description: InsecureSkipVerify defines whether the server + certificates should be validated. + type: boolean + type: object + trustForwardHeader: + description: 'TrustForwardHeader defines whether to trust (ie: + forward) all X-Forwarded-* headers.' + type: boolean + type: object + headers: + description: 'Headers holds the headers middleware configuration. + This middleware manages the requests and responses headers. More + info: https://doc.traefik.io/traefik/v2.10/middlewares/http/headers/#customrequestheaders' + properties: + accessControlAllowCredentials: + description: AccessControlAllowCredentials defines whether the + request can include user credentials. + type: boolean + accessControlAllowHeaders: + description: AccessControlAllowHeaders defines the Access-Control-Request-Headers + values sent in preflight response. + items: + type: string + type: array + accessControlAllowMethods: + description: AccessControlAllowMethods defines the Access-Control-Request-Method + values sent in preflight response. + items: + type: string + type: array + accessControlAllowOriginList: + description: AccessControlAllowOriginList is a list of allowable + origins. Can also be a wildcard origin "*". + items: + type: string + type: array + accessControlAllowOriginListRegex: + description: AccessControlAllowOriginListRegex is a list of allowable + origins written following the Regular Expression syntax (https://golang.org/pkg/regexp/). + items: + type: string + type: array + accessControlExposeHeaders: + description: AccessControlExposeHeaders defines the Access-Control-Expose-Headers + values sent in preflight response. + items: + type: string + type: array + accessControlMaxAge: + description: AccessControlMaxAge defines the time that a preflight + request may be cached. + format: int64 + type: integer + addVaryHeader: + description: AddVaryHeader defines whether the Vary header is + automatically added/updated when the AccessControlAllowOriginList + is set. + type: boolean + allowedHosts: + description: AllowedHosts defines the fully qualified list of + allowed domain names. + items: + type: string + type: array + browserXssFilter: + description: BrowserXSSFilter defines whether to add the X-XSS-Protection + header with the value 1; mode=block. + type: boolean + contentSecurityPolicy: + description: ContentSecurityPolicy defines the Content-Security-Policy + header value. + type: string + contentTypeNosniff: + description: ContentTypeNosniff defines whether to add the X-Content-Type-Options + header with the nosniff value. + type: boolean + customBrowserXSSValue: + description: CustomBrowserXSSValue defines the X-XSS-Protection + header value. This overrides the BrowserXssFilter option. + type: string + customFrameOptionsValue: + description: CustomFrameOptionsValue defines the X-Frame-Options + header value. This overrides the FrameDeny option. + type: string + customRequestHeaders: + additionalProperties: + type: string + description: CustomRequestHeaders defines the header names and + values to apply to the request. + type: object + customResponseHeaders: + additionalProperties: + type: string + description: CustomResponseHeaders defines the header names and + values to apply to the response. + type: object + featurePolicy: + description: 'Deprecated: use PermissionsPolicy instead.' + type: string + forceSTSHeader: + description: ForceSTSHeader defines whether to add the STS header + even when the connection is HTTP. + type: boolean + frameDeny: + description: FrameDeny defines whether to add the X-Frame-Options + header with the DENY value. + type: boolean + hostsProxyHeaders: + description: HostsProxyHeaders defines the header keys that may + hold a proxied hostname value for the request. + items: + type: string + type: array + isDevelopment: + description: IsDevelopment defines whether to mitigate the unwanted + effects of the AllowedHosts, SSL, and STS options when developing. + Usually testing takes place using HTTP, not HTTPS, and on localhost, + not your production domain. If you would like your development + environment to mimic production with complete Host blocking, + SSL redirects, and STS headers, leave this as false. + type: boolean + permissionsPolicy: + description: PermissionsPolicy defines the Permissions-Policy + header value. This allows sites to control browser features. + type: string + publicKey: + description: PublicKey is the public key that implements HPKP + to prevent MITM attacks with forged certificates. + type: string + referrerPolicy: + description: ReferrerPolicy defines the Referrer-Policy header + value. This allows sites to control whether browsers forward + the Referer header to other sites. + type: string + sslForceHost: + description: 'Deprecated: use RedirectRegex instead.' + type: boolean + sslHost: + description: 'Deprecated: use RedirectRegex instead.' + type: string + sslProxyHeaders: + additionalProperties: + type: string + description: 'SSLProxyHeaders defines the header keys with associated + values that would indicate a valid HTTPS request. It can be + useful when using other proxies (example: "X-Forwarded-Proto": + "https").' + type: object + sslRedirect: + description: 'Deprecated: use EntryPoint redirection or RedirectScheme + instead.' + type: boolean + sslTemporaryRedirect: + description: 'Deprecated: use EntryPoint redirection or RedirectScheme + instead.' + type: boolean + stsIncludeSubdomains: + description: STSIncludeSubdomains defines whether the includeSubDomains + directive is appended to the Strict-Transport-Security header. + type: boolean + stsPreload: + description: STSPreload defines whether the preload flag is appended + to the Strict-Transport-Security header. + type: boolean + stsSeconds: + description: STSSeconds defines the max-age of the Strict-Transport-Security + header. If set to 0, the header is not set. + format: int64 + type: integer + type: object + inFlightReq: + description: 'InFlightReq holds the in-flight request middleware configuration. + This middleware limits the number of requests being processed and + served concurrently. More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/inflightreq/' + properties: + amount: + description: Amount defines the maximum amount of allowed simultaneous + in-flight request. The middleware responds with HTTP 429 Too + Many Requests if there are already amount requests in progress + (based on the same sourceCriterion strategy). + format: int64 + type: integer + sourceCriterion: + description: 'SourceCriterion defines what criterion is used to + group requests as originating from a common source. If several + strategies are defined at the same time, an error will be raised. + If none are set, the default is to use the requestHost. More + info: https://doc.traefik.io/traefik/v2.10/middlewares/http/inflightreq/#sourcecriterion' + properties: + ipStrategy: + description: 'IPStrategy holds the IP strategy configuration + used by Traefik to determine the client IP. More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/ipwhitelist/#ipstrategy' + properties: + depth: + description: Depth tells Traefik to use the X-Forwarded-For + header and take the IP located at the depth position + (starting from the right). + type: integer + excludedIPs: + description: ExcludedIPs configures Traefik to scan the + X-Forwarded-For header and select the first IP not in + the list. + items: + type: string + type: array + type: object + requestHeaderName: + description: RequestHeaderName defines the name of the header + used to group incoming requests. + type: string + requestHost: + description: RequestHost defines whether to consider the request + Host as the source. + type: boolean + type: object + type: object + ipWhiteList: + description: 'IPWhiteList holds the IP whitelist middleware configuration. + This middleware accepts / refuses requests based on the client IP. + More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/ipwhitelist/' + properties: + ipStrategy: + description: 'IPStrategy holds the IP strategy configuration used + by Traefik to determine the client IP. More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/ipwhitelist/#ipstrategy' + properties: + depth: + description: Depth tells Traefik to use the X-Forwarded-For + header and take the IP located at the depth position (starting + from the right). + type: integer + excludedIPs: + description: ExcludedIPs configures Traefik to scan the X-Forwarded-For + header and select the first IP not in the list. + items: + type: string + type: array + type: object + sourceRange: + description: SourceRange defines the set of allowed IPs (or ranges + of allowed IPs by using CIDR notation). + items: + type: string + type: array + type: object + passTLSClientCert: + description: 'PassTLSClientCert holds the pass TLS client cert middleware + configuration. This middleware adds the selected data from the passed + client TLS certificate to a header. More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/passtlsclientcert/' + properties: + info: + description: Info selects the specific client certificate details + you want to add to the X-Forwarded-Tls-Client-Cert-Info header. + properties: + issuer: + description: Issuer defines the client certificate issuer + details to add to the X-Forwarded-Tls-Client-Cert-Info header. + properties: + commonName: + description: CommonName defines whether to add the organizationalUnit + information into the issuer. + type: boolean + country: + description: Country defines whether to add the country + information into the issuer. + type: boolean + domainComponent: + description: DomainComponent defines whether to add the + domainComponent information into the issuer. + type: boolean + locality: + description: Locality defines whether to add the locality + information into the issuer. + type: boolean + organization: + description: Organization defines whether to add the organization + information into the issuer. + type: boolean + province: + description: Province defines whether to add the province + information into the issuer. + type: boolean + serialNumber: + description: SerialNumber defines whether to add the serialNumber + information into the issuer. + type: boolean + type: object + notAfter: + description: NotAfter defines whether to add the Not After + information from the Validity part. + type: boolean + notBefore: + description: NotBefore defines whether to add the Not Before + information from the Validity part. + type: boolean + sans: + description: Sans defines whether to add the Subject Alternative + Name information from the Subject Alternative Name part. + type: boolean + serialNumber: + description: SerialNumber defines whether to add the client + serialNumber information. + type: boolean + subject: + description: Subject defines the client certificate subject + details to add to the X-Forwarded-Tls-Client-Cert-Info header. + properties: + commonName: + description: CommonName defines whether to add the organizationalUnit + information into the subject. + type: boolean + country: + description: Country defines whether to add the country + information into the subject. + type: boolean + domainComponent: + description: DomainComponent defines whether to add the + domainComponent information into the subject. + type: boolean + locality: + description: Locality defines whether to add the locality + information into the subject. + type: boolean + organization: + description: Organization defines whether to add the organization + information into the subject. + type: boolean + organizationalUnit: + description: OrganizationalUnit defines whether to add + the organizationalUnit information into the subject. + type: boolean + province: + description: Province defines whether to add the province + information into the subject. + type: boolean + serialNumber: + description: SerialNumber defines whether to add the serialNumber + information into the subject. + type: boolean + type: object + type: object + pem: + description: PEM sets the X-Forwarded-Tls-Client-Cert header with + the certificate. + type: boolean + type: object + plugin: + additionalProperties: + x-kubernetes-preserve-unknown-fields: true + description: 'Plugin defines the middleware plugin configuration. + More info: https://doc.traefik.io/traefik/plugins/' + type: object + rateLimit: + description: 'RateLimit holds the rate limit configuration. This middleware + ensures that services will receive a fair amount of requests, and + allows one to define what fair is. More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/ratelimit/' + properties: + average: + description: Average is the maximum rate, by default in requests/s, + allowed for the given source. It defaults to 0, which means + no rate limiting. The rate is actually defined by dividing Average + by Period. So for a rate below 1req/s, one needs to define a + Period larger than a second. + format: int64 + type: integer + burst: + description: Burst is the maximum number of requests allowed to + arrive in the same arbitrarily small period of time. It defaults + to 1. + format: int64 + type: integer + period: + anyOf: + - type: integer + - type: string + description: 'Period, in combination with Average, defines the + actual maximum rate, such as: r = Average / Period. It defaults + to a second.' + x-kubernetes-int-or-string: true + sourceCriterion: + description: SourceCriterion defines what criterion is used to + group requests as originating from a common source. If several + strategies are defined at the same time, an error will be raised. + If none are set, the default is to use the request's remote + address field (as an ipStrategy). + properties: + ipStrategy: + description: 'IPStrategy holds the IP strategy configuration + used by Traefik to determine the client IP. More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/ipwhitelist/#ipstrategy' + properties: + depth: + description: Depth tells Traefik to use the X-Forwarded-For + header and take the IP located at the depth position + (starting from the right). + type: integer + excludedIPs: + description: ExcludedIPs configures Traefik to scan the + X-Forwarded-For header and select the first IP not in + the list. + items: + type: string + type: array + type: object + requestHeaderName: + description: RequestHeaderName defines the name of the header + used to group incoming requests. + type: string + requestHost: + description: RequestHost defines whether to consider the request + Host as the source. + type: boolean + type: object + type: object + redirectRegex: + description: 'RedirectRegex holds the redirect regex middleware configuration. + This middleware redirects a request using regex matching and replacement. + More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/redirectregex/#regex' + properties: + permanent: + description: Permanent defines whether the redirection is permanent + (301). + type: boolean + regex: + description: Regex defines the regex used to match and capture + elements from the request URL. + type: string + replacement: + description: Replacement defines how to modify the URL to have + the new target URL. + type: string + type: object + redirectScheme: + description: 'RedirectScheme holds the redirect scheme middleware + configuration. This middleware redirects requests from a scheme/port + to another. More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/redirectscheme/' + properties: + permanent: + description: Permanent defines whether the redirection is permanent + (301). + type: boolean + port: + description: Port defines the port of the new URL. + type: string + scheme: + description: Scheme defines the scheme of the new URL. + type: string + type: object + replacePath: + description: 'ReplacePath holds the replace path middleware configuration. + This middleware replaces the path of the request URL and store the + original path in an X-Replaced-Path header. More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/replacepath/' + properties: + path: + description: Path defines the path to use as replacement in the + request URL. + type: string + type: object + replacePathRegex: + description: 'ReplacePathRegex holds the replace path regex middleware + configuration. This middleware replaces the path of a URL using + regex matching and replacement. More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/replacepathregex/' + properties: + regex: + description: Regex defines the regular expression used to match + and capture the path from the request URL. + type: string + replacement: + description: Replacement defines the replacement path format, + which can include captured variables. + type: string + type: object + retry: + description: 'Retry holds the retry middleware configuration. This + middleware reissues requests a given number of times to a backend + server if that server does not reply. As soon as the server answers, + the middleware stops retrying, regardless of the response status. + More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/retry/' + properties: + attempts: + description: Attempts defines how many times the request should + be retried. + type: integer + initialInterval: + anyOf: + - type: integer + - type: string + description: InitialInterval defines the first wait time in the + exponential backoff series. The maximum interval is calculated + as twice the initialInterval. If unspecified, requests will + be retried immediately. The value of initialInterval should + be provided in seconds or as a valid duration format, see https://pkg.go.dev/time#ParseDuration. + x-kubernetes-int-or-string: true + type: object + stripPrefix: + description: 'StripPrefix holds the strip prefix middleware configuration. + This middleware removes the specified prefixes from the URL path. + More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/stripprefix/' + properties: + forceSlash: + description: 'ForceSlash ensures that the resulting stripped path + is not the empty string, by replacing it with / when necessary. + Default: true.' + type: boolean + prefixes: + description: Prefixes defines the prefixes to strip from the request + URL. + items: + type: string + type: array + type: object + stripPrefixRegex: + description: 'StripPrefixRegex holds the strip prefix regex middleware + configuration. This middleware removes the matching prefixes from + the URL path. More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/stripprefixregex/' + properties: + regex: + description: Regex defines the regular expression to match the + path prefix from the request URL. + items: + type: string + type: array + type: object + type: object + required: + - metadata + - spec + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/enterprise/traefik/25.1.17/crds/traefik.containo.us_middlewaretcps.yaml b/enterprise/traefik/25.1.17/crds/traefik.containo.us_middlewaretcps.yaml new file mode 100644 index 00000000000..85302fa823d --- /dev/null +++ b/enterprise/traefik/25.1.17/crds/traefik.containo.us_middlewaretcps.yaml @@ -0,0 +1,72 @@ + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.6.2 + creationTimestamp: null + name: middlewaretcps.traefik.containo.us +spec: + group: traefik.containo.us + names: + kind: MiddlewareTCP + listKind: MiddlewareTCPList + plural: middlewaretcps + singular: middlewaretcp + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: 'MiddlewareTCP is the CRD implementation of a Traefik TCP middleware. + More info: https://doc.traefik.io/traefik/v2.10/middlewares/overview/' + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: MiddlewareTCPSpec defines the desired state of a MiddlewareTCP. + properties: + inFlightConn: + description: InFlightConn defines the InFlightConn middleware configuration. + properties: + amount: + description: Amount defines the maximum amount of allowed simultaneous + connections. The middleware closes the connection if there are + already amount connections opened. + format: int64 + type: integer + type: object + ipWhiteList: + description: IPWhiteList defines the IPWhiteList middleware configuration. + properties: + sourceRange: + description: SourceRange defines the allowed IPs (or ranges of + allowed IPs by using CIDR notation). + items: + type: string + type: array + type: object + type: object + required: + - metadata + - spec + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/enterprise/traefik/25.1.17/crds/traefik.containo.us_serverstransports.yaml b/enterprise/traefik/25.1.17/crds/traefik.containo.us_serverstransports.yaml new file mode 100644 index 00000000000..d6fc3a92dba --- /dev/null +++ b/enterprise/traefik/25.1.17/crds/traefik.containo.us_serverstransports.yaml @@ -0,0 +1,128 @@ + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.6.2 + creationTimestamp: null + name: serverstransports.traefik.containo.us +spec: + group: traefik.containo.us + names: + kind: ServersTransport + listKind: ServersTransportList + plural: serverstransports + singular: serverstransport + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: 'ServersTransport is the CRD implementation of a ServersTransport. + If no serversTransport is specified, the default@internal will be used. + The default@internal serversTransport is created from the static configuration. + More info: https://doc.traefik.io/traefik/v2.10/routing/services/#serverstransport_1' + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: ServersTransportSpec defines the desired state of a ServersTransport. + properties: + certificatesSecrets: + description: CertificatesSecrets defines a list of secret storing + client certificates for mTLS. + items: + type: string + type: array + disableHTTP2: + description: DisableHTTP2 disables HTTP/2 for connections with backend + servers. + type: boolean + forwardingTimeouts: + description: ForwardingTimeouts defines the timeouts for requests + forwarded to the backend servers. + properties: + dialTimeout: + anyOf: + - type: integer + - type: string + description: DialTimeout is the amount of time to wait until a + connection to a backend server can be established. + x-kubernetes-int-or-string: true + idleConnTimeout: + anyOf: + - type: integer + - type: string + description: IdleConnTimeout is the maximum period for which an + idle HTTP keep-alive connection will remain open before closing + itself. + x-kubernetes-int-or-string: true + pingTimeout: + anyOf: + - type: integer + - type: string + description: PingTimeout is the timeout after which the HTTP/2 + connection will be closed if a response to ping is not received. + x-kubernetes-int-or-string: true + readIdleTimeout: + anyOf: + - type: integer + - type: string + description: ReadIdleTimeout is the timeout after which a health + check using ping frame will be carried out if no frame is received + on the HTTP/2 connection. + x-kubernetes-int-or-string: true + responseHeaderTimeout: + anyOf: + - type: integer + - type: string + description: ResponseHeaderTimeout is the amount of time to wait + for a server's response headers after fully writing the request + (including its body, if any). + x-kubernetes-int-or-string: true + type: object + insecureSkipVerify: + description: InsecureSkipVerify disables SSL certificate verification. + type: boolean + maxIdleConnsPerHost: + description: MaxIdleConnsPerHost controls the maximum idle (keep-alive) + to keep per-host. + type: integer + peerCertURI: + description: PeerCertURI defines the peer cert URI used to match against + SAN URI during the peer certificate verification. + type: string + rootCAsSecrets: + description: RootCAsSecrets defines a list of CA secret used to validate + self-signed certificate. + items: + type: string + type: array + serverName: + description: ServerName defines the server name used to contact the + server. + type: string + type: object + required: + - metadata + - spec + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/enterprise/traefik/25.1.17/crds/traefik.containo.us_tlsoptions.yaml b/enterprise/traefik/25.1.17/crds/traefik.containo.us_tlsoptions.yaml new file mode 100644 index 00000000000..73667667a3a --- /dev/null +++ b/enterprise/traefik/25.1.17/crds/traefik.containo.us_tlsoptions.yaml @@ -0,0 +1,113 @@ + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.6.2 + creationTimestamp: null + name: tlsoptions.traefik.containo.us +spec: + group: traefik.containo.us + names: + kind: TLSOption + listKind: TLSOptionList + plural: tlsoptions + singular: tlsoption + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: 'TLSOption is the CRD implementation of a Traefik TLS Option, + allowing to configure some parameters of the TLS connection. More info: + https://doc.traefik.io/traefik/v2.10/https/tls/#tls-options' + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: TLSOptionSpec defines the desired state of a TLSOption. + properties: + alpnProtocols: + description: 'ALPNProtocols defines the list of supported application + level protocols for the TLS handshake, in order of preference. More + info: https://doc.traefik.io/traefik/v2.10/https/tls/#alpn-protocols' + items: + type: string + type: array + cipherSuites: + description: 'CipherSuites defines the list of supported cipher suites + for TLS versions up to TLS 1.2. More info: https://doc.traefik.io/traefik/v2.10/https/tls/#cipher-suites' + items: + type: string + type: array + clientAuth: + description: ClientAuth defines the server's policy for TLS Client + Authentication. + properties: + clientAuthType: + description: ClientAuthType defines the client authentication + type to apply. + enum: + - NoClientCert + - RequestClientCert + - RequireAnyClientCert + - VerifyClientCertIfGiven + - RequireAndVerifyClientCert + type: string + secretNames: + description: SecretNames defines the names of the referenced Kubernetes + Secret storing certificate details. + items: + type: string + type: array + type: object + curvePreferences: + description: 'CurvePreferences defines the preferred elliptic curves + in a specific order. More info: https://doc.traefik.io/traefik/v2.10/https/tls/#curve-preferences' + items: + type: string + type: array + maxVersion: + description: 'MaxVersion defines the maximum TLS version that Traefik + will accept. Possible values: VersionTLS10, VersionTLS11, VersionTLS12, + VersionTLS13. Default: None.' + type: string + minVersion: + description: 'MinVersion defines the minimum TLS version that Traefik + will accept. Possible values: VersionTLS10, VersionTLS11, VersionTLS12, + VersionTLS13. Default: VersionTLS10.' + type: string + preferServerCipherSuites: + description: 'PreferServerCipherSuites defines whether the server + chooses a cipher suite among his own instead of among the client''s. + It is enabled automatically when minVersion or maxVersion is set. + Deprecated: https://github.com/golang/go/issues/45430' + type: boolean + sniStrict: + description: SniStrict defines whether Traefik allows connections + from clients connections that do not specify a server_name extension. + type: boolean + type: object + required: + - metadata + - spec + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/enterprise/traefik/25.1.17/crds/traefik.containo.us_tlsstores.yaml b/enterprise/traefik/25.1.17/crds/traefik.containo.us_tlsstores.yaml new file mode 100644 index 00000000000..12f0ad37d86 --- /dev/null +++ b/enterprise/traefik/25.1.17/crds/traefik.containo.us_tlsstores.yaml @@ -0,0 +1,99 @@ + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.6.2 + creationTimestamp: null + name: tlsstores.traefik.containo.us +spec: + group: traefik.containo.us + names: + kind: TLSStore + listKind: TLSStoreList + plural: tlsstores + singular: tlsstore + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: 'TLSStore is the CRD implementation of a Traefik TLS Store. For + the time being, only the TLSStore named default is supported. This means + that you cannot have two stores that are named default in different Kubernetes + namespaces. More info: https://doc.traefik.io/traefik/v2.10/https/tls/#certificates-stores' + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: TLSStoreSpec defines the desired state of a TLSStore. + properties: + certificates: + description: Certificates is a list of secret names, each secret holding + a key/certificate pair to add to the store. + items: + description: Certificate holds a secret name for the TLSStore resource. + properties: + secretName: + description: SecretName is the name of the referenced Kubernetes + Secret to specify the certificate details. + type: string + required: + - secretName + type: object + type: array + defaultCertificate: + description: DefaultCertificate defines the default certificate configuration. + properties: + secretName: + description: SecretName is the name of the referenced Kubernetes + Secret to specify the certificate details. + type: string + required: + - secretName + type: object + defaultGeneratedCert: + description: DefaultGeneratedCert defines the default generated certificate + configuration. + properties: + domain: + description: Domain is the domain definition for the DefaultCertificate. + properties: + main: + description: Main defines the main domain name. + type: string + sans: + description: SANs defines the subject alternative domain names. + items: + type: string + type: array + type: object + resolver: + description: Resolver is the name of the resolver that will be + used to issue the DefaultCertificate. + type: string + type: object + type: object + required: + - metadata + - spec + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/enterprise/traefik/25.1.17/crds/traefik.containo.us_traefikservices.yaml b/enterprise/traefik/25.1.17/crds/traefik.containo.us_traefikservices.yaml new file mode 100644 index 00000000000..0dcf470034f --- /dev/null +++ b/enterprise/traefik/25.1.17/crds/traefik.containo.us_traefikservices.yaml @@ -0,0 +1,402 @@ + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.6.2 + creationTimestamp: null + name: traefikservices.traefik.containo.us +spec: + group: traefik.containo.us + names: + kind: TraefikService + listKind: TraefikServiceList + plural: traefikservices + singular: traefikservice + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: 'TraefikService is the CRD implementation of a Traefik Service. + TraefikService object allows to: - Apply weight to Services on load-balancing + - Mirror traffic on services More info: https://doc.traefik.io/traefik/v2.10/routing/providers/kubernetes-crd/#kind-traefikservice' + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: TraefikServiceSpec defines the desired state of a TraefikService. + properties: + mirroring: + description: Mirroring defines the Mirroring service configuration. + properties: + kind: + description: Kind defines the kind of the Service. + enum: + - Service + - TraefikService + type: string + maxBodySize: + description: MaxBodySize defines the maximum size allowed for + the body of the request. If the body is larger, the request + is not mirrored. Default value is -1, which means unlimited + size. + format: int64 + type: integer + mirrors: + description: Mirrors defines the list of mirrors where Traefik + will duplicate the traffic. + items: + description: MirrorService holds the mirror configuration. + properties: + kind: + description: Kind defines the kind of the Service. + enum: + - Service + - TraefikService + type: string + name: + description: Name defines the name of the referenced Kubernetes + Service or TraefikService. The differentiation between + the two is specified in the Kind field. + type: string + namespace: + description: Namespace defines the namespace of the referenced + Kubernetes Service or TraefikService. + type: string + nativeLB: + description: NativeLB controls, when creating the load-balancer, + whether the LB's children are directly the pods IPs or + if the only child is the Kubernetes Service clusterIP. + The Kubernetes Service itself does load-balance to the + pods. By default, NativeLB is false. + type: boolean + passHostHeader: + description: PassHostHeader defines whether the client Host + header is forwarded to the upstream Kubernetes Service. + By default, passHostHeader is true. + type: boolean + percent: + description: 'Percent defines the part of the traffic to + mirror. Supported values: 0 to 100.' + type: integer + port: + anyOf: + - type: integer + - type: string + description: Port defines the port of a Kubernetes Service. + This can be a reference to a named port. + x-kubernetes-int-or-string: true + responseForwarding: + description: ResponseForwarding defines how Traefik forwards + the response from the upstream Kubernetes Service to the + client. + properties: + flushInterval: + description: 'FlushInterval defines the interval, in + milliseconds, in between flushes to the client while + copying the response body. A negative value means + to flush immediately after each write to the client. + This configuration is ignored when ReverseProxy recognizes + a response as a streaming response; for such responses, + writes are flushed to the client immediately. Default: + 100ms' + type: string + type: object + scheme: + description: Scheme defines the scheme to use for the request + to the upstream Kubernetes Service. It defaults to https + when Kubernetes Service port is 443, http otherwise. + type: string + serversTransport: + description: ServersTransport defines the name of ServersTransport + resource to use. It allows to configure the transport + between Traefik and your servers. Can only be used on + a Kubernetes Service. + type: string + sticky: + description: 'Sticky defines the sticky sessions configuration. + More info: https://doc.traefik.io/traefik/v2.10/routing/services/#sticky-sessions' + properties: + cookie: + description: Cookie defines the sticky cookie configuration. + properties: + httpOnly: + description: HTTPOnly defines whether the cookie + can be accessed by client-side APIs, such as JavaScript. + type: boolean + name: + description: Name defines the Cookie name. + type: string + sameSite: + description: 'SameSite defines the same site policy. + More info: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite' + type: string + secure: + description: Secure defines whether the cookie can + only be transmitted over an encrypted connection + (i.e. HTTPS). + type: boolean + type: object + type: object + strategy: + description: Strategy defines the load balancing strategy + between the servers. RoundRobin is the only supported + value at the moment. + type: string + weight: + description: Weight defines the weight and should only be + specified when Name references a TraefikService object + (and to be precise, one that embeds a Weighted Round Robin). + type: integer + required: + - name + type: object + type: array + name: + description: Name defines the name of the referenced Kubernetes + Service or TraefikService. The differentiation between the two + is specified in the Kind field. + type: string + namespace: + description: Namespace defines the namespace of the referenced + Kubernetes Service or TraefikService. + type: string + nativeLB: + description: NativeLB controls, when creating the load-balancer, + whether the LB's children are directly the pods IPs or if the + only child is the Kubernetes Service clusterIP. The Kubernetes + Service itself does load-balance to the pods. By default, NativeLB + is false. + type: boolean + passHostHeader: + description: PassHostHeader defines whether the client Host header + is forwarded to the upstream Kubernetes Service. By default, + passHostHeader is true. + type: boolean + port: + anyOf: + - type: integer + - type: string + description: Port defines the port of a Kubernetes Service. This + can be a reference to a named port. + x-kubernetes-int-or-string: true + responseForwarding: + description: ResponseForwarding defines how Traefik forwards the + response from the upstream Kubernetes Service to the client. + properties: + flushInterval: + description: 'FlushInterval defines the interval, in milliseconds, + in between flushes to the client while copying the response + body. A negative value means to flush immediately after + each write to the client. This configuration is ignored + when ReverseProxy recognizes a response as a streaming response; + for such responses, writes are flushed to the client immediately. + Default: 100ms' + type: string + type: object + scheme: + description: Scheme defines the scheme to use for the request + to the upstream Kubernetes Service. It defaults to https when + Kubernetes Service port is 443, http otherwise. + type: string + serversTransport: + description: ServersTransport defines the name of ServersTransport + resource to use. It allows to configure the transport between + Traefik and your servers. Can only be used on a Kubernetes Service. + type: string + sticky: + description: 'Sticky defines the sticky sessions configuration. + More info: https://doc.traefik.io/traefik/v2.10/routing/services/#sticky-sessions' + properties: + cookie: + description: Cookie defines the sticky cookie configuration. + properties: + httpOnly: + description: HTTPOnly defines whether the cookie can be + accessed by client-side APIs, such as JavaScript. + type: boolean + name: + description: Name defines the Cookie name. + type: string + sameSite: + description: 'SameSite defines the same site policy. More + info: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite' + type: string + secure: + description: Secure defines whether the cookie can only + be transmitted over an encrypted connection (i.e. HTTPS). + type: boolean + type: object + type: object + strategy: + description: Strategy defines the load balancing strategy between + the servers. RoundRobin is the only supported value at the moment. + type: string + weight: + description: Weight defines the weight and should only be specified + when Name references a TraefikService object (and to be precise, + one that embeds a Weighted Round Robin). + type: integer + required: + - name + type: object + weighted: + description: Weighted defines the Weighted Round Robin configuration. + properties: + services: + description: Services defines the list of Kubernetes Service and/or + TraefikService to load-balance, with weight. + items: + description: Service defines an upstream HTTP service to proxy + traffic to. + properties: + kind: + description: Kind defines the kind of the Service. + enum: + - Service + - TraefikService + type: string + name: + description: Name defines the name of the referenced Kubernetes + Service or TraefikService. The differentiation between + the two is specified in the Kind field. + type: string + namespace: + description: Namespace defines the namespace of the referenced + Kubernetes Service or TraefikService. + type: string + nativeLB: + description: NativeLB controls, when creating the load-balancer, + whether the LB's children are directly the pods IPs or + if the only child is the Kubernetes Service clusterIP. + The Kubernetes Service itself does load-balance to the + pods. By default, NativeLB is false. + type: boolean + passHostHeader: + description: PassHostHeader defines whether the client Host + header is forwarded to the upstream Kubernetes Service. + By default, passHostHeader is true. + type: boolean + port: + anyOf: + - type: integer + - type: string + description: Port defines the port of a Kubernetes Service. + This can be a reference to a named port. + x-kubernetes-int-or-string: true + responseForwarding: + description: ResponseForwarding defines how Traefik forwards + the response from the upstream Kubernetes Service to the + client. + properties: + flushInterval: + description: 'FlushInterval defines the interval, in + milliseconds, in between flushes to the client while + copying the response body. A negative value means + to flush immediately after each write to the client. + This configuration is ignored when ReverseProxy recognizes + a response as a streaming response; for such responses, + writes are flushed to the client immediately. Default: + 100ms' + type: string + type: object + scheme: + description: Scheme defines the scheme to use for the request + to the upstream Kubernetes Service. It defaults to https + when Kubernetes Service port is 443, http otherwise. + type: string + serversTransport: + description: ServersTransport defines the name of ServersTransport + resource to use. It allows to configure the transport + between Traefik and your servers. Can only be used on + a Kubernetes Service. + type: string + sticky: + description: 'Sticky defines the sticky sessions configuration. + More info: https://doc.traefik.io/traefik/v2.10/routing/services/#sticky-sessions' + properties: + cookie: + description: Cookie defines the sticky cookie configuration. + properties: + httpOnly: + description: HTTPOnly defines whether the cookie + can be accessed by client-side APIs, such as JavaScript. + type: boolean + name: + description: Name defines the Cookie name. + type: string + sameSite: + description: 'SameSite defines the same site policy. + More info: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite' + type: string + secure: + description: Secure defines whether the cookie can + only be transmitted over an encrypted connection + (i.e. HTTPS). + type: boolean + type: object + type: object + strategy: + description: Strategy defines the load balancing strategy + between the servers. RoundRobin is the only supported + value at the moment. + type: string + weight: + description: Weight defines the weight and should only be + specified when Name references a TraefikService object + (and to be precise, one that embeds a Weighted Round Robin). + type: integer + required: + - name + type: object + type: array + sticky: + description: 'Sticky defines whether sticky sessions are enabled. + More info: https://doc.traefik.io/traefik/v2.10/routing/providers/kubernetes-crd/#stickiness-and-load-balancing' + properties: + cookie: + description: Cookie defines the sticky cookie configuration. + properties: + httpOnly: + description: HTTPOnly defines whether the cookie can be + accessed by client-side APIs, such as JavaScript. + type: boolean + name: + description: Name defines the Cookie name. + type: string + sameSite: + description: 'SameSite defines the same site policy. More + info: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite' + type: string + secure: + description: Secure defines whether the cookie can only + be transmitted over an encrypted connection (i.e. HTTPS). + type: boolean + type: object + type: object + type: object + type: object + required: + - metadata + - spec + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/enterprise/traefik/25.1.17/crds/traefik.io_ingressroutes.yaml b/enterprise/traefik/25.1.17/crds/traefik.io_ingressroutes.yaml new file mode 100644 index 00000000000..89aaee75952 --- /dev/null +++ b/enterprise/traefik/25.1.17/crds/traefik.io_ingressroutes.yaml @@ -0,0 +1,275 @@ + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.6.2 + creationTimestamp: null + name: ingressroutes.traefik.io +spec: + group: traefik.io + names: + kind: IngressRoute + listKind: IngressRouteList + plural: ingressroutes + singular: ingressroute + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: IngressRoute is the CRD implementation of a Traefik HTTP Router. + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: IngressRouteSpec defines the desired state of IngressRoute. + properties: + entryPoints: + description: 'EntryPoints defines the list of entry point names to + bind to. Entry points have to be configured in the static configuration. + More info: https://doc.traefik.io/traefik/v2.10/routing/entrypoints/ + Default: all.' + items: + type: string + type: array + routes: + description: Routes defines the list of routes. + items: + description: Route holds the HTTP route configuration. + properties: + kind: + description: Kind defines the kind of the route. Rule is the + only supported kind. + enum: + - Rule + type: string + match: + description: 'Match defines the router''s rule. More info: https://doc.traefik.io/traefik/v2.10/routing/routers/#rule' + type: string + middlewares: + description: 'Middlewares defines the list of references to + Middleware resources. More info: https://doc.traefik.io/traefik/v2.10/routing/providers/kubernetes-crd/#kind-middleware' + items: + description: MiddlewareRef is a reference to a Middleware + resource. + properties: + name: + description: Name defines the name of the referenced Middleware + resource. + type: string + namespace: + description: Namespace defines the namespace of the referenced + Middleware resource. + type: string + required: + - name + type: object + type: array + priority: + description: 'Priority defines the router''s priority. More + info: https://doc.traefik.io/traefik/v2.10/routing/routers/#priority' + type: integer + services: + description: Services defines the list of Service. It can contain + any combination of TraefikService and/or reference to a Kubernetes + Service. + items: + description: Service defines an upstream HTTP service to proxy + traffic to. + properties: + kind: + description: Kind defines the kind of the Service. + enum: + - Service + - TraefikService + type: string + name: + description: Name defines the name of the referenced Kubernetes + Service or TraefikService. The differentiation between + the two is specified in the Kind field. + type: string + namespace: + description: Namespace defines the namespace of the referenced + Kubernetes Service or TraefikService. + type: string + nativeLB: + description: NativeLB controls, when creating the load-balancer, + whether the LB's children are directly the pods IPs + or if the only child is the Kubernetes Service clusterIP. + The Kubernetes Service itself does load-balance to the + pods. By default, NativeLB is false. + type: boolean + passHostHeader: + description: PassHostHeader defines whether the client + Host header is forwarded to the upstream Kubernetes + Service. By default, passHostHeader is true. + type: boolean + port: + anyOf: + - type: integer + - type: string + description: Port defines the port of a Kubernetes Service. + This can be a reference to a named port. + x-kubernetes-int-or-string: true + responseForwarding: + description: ResponseForwarding defines how Traefik forwards + the response from the upstream Kubernetes Service to + the client. + properties: + flushInterval: + description: 'FlushInterval defines the interval, + in milliseconds, in between flushes to the client + while copying the response body. A negative value + means to flush immediately after each write to the + client. This configuration is ignored when ReverseProxy + recognizes a response as a streaming response; for + such responses, writes are flushed to the client + immediately. Default: 100ms' + type: string + type: object + scheme: + description: Scheme defines the scheme to use for the + request to the upstream Kubernetes Service. It defaults + to https when Kubernetes Service port is 443, http otherwise. + type: string + serversTransport: + description: ServersTransport defines the name of ServersTransport + resource to use. It allows to configure the transport + between Traefik and your servers. Can only be used on + a Kubernetes Service. + type: string + sticky: + description: 'Sticky defines the sticky sessions configuration. + More info: https://doc.traefik.io/traefik/v2.10/routing/services/#sticky-sessions' + properties: + cookie: + description: Cookie defines the sticky cookie configuration. + properties: + httpOnly: + description: HTTPOnly defines whether the cookie + can be accessed by client-side APIs, such as + JavaScript. + type: boolean + name: + description: Name defines the Cookie name. + type: string + sameSite: + description: 'SameSite defines the same site policy. + More info: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite' + type: string + secure: + description: Secure defines whether the cookie + can only be transmitted over an encrypted connection + (i.e. HTTPS). + type: boolean + type: object + type: object + strategy: + description: Strategy defines the load balancing strategy + between the servers. RoundRobin is the only supported + value at the moment. + type: string + weight: + description: Weight defines the weight and should only + be specified when Name references a TraefikService object + (and to be precise, one that embeds a Weighted Round + Robin). + type: integer + required: + - name + type: object + type: array + required: + - kind + - match + type: object + type: array + tls: + description: 'TLS defines the TLS configuration. More info: https://doc.traefik.io/traefik/v2.10/routing/routers/#tls' + properties: + certResolver: + description: 'CertResolver defines the name of the certificate + resolver to use. Cert resolvers have to be configured in the + static configuration. More info: https://doc.traefik.io/traefik/v2.10/https/acme/#certificate-resolvers' + type: string + domains: + description: 'Domains defines the list of domains that will be + used to issue certificates. More info: https://doc.traefik.io/traefik/v2.10/routing/routers/#domains' + items: + description: Domain holds a domain name with SANs. + properties: + main: + description: Main defines the main domain name. + type: string + sans: + description: SANs defines the subject alternative domain + names. + items: + type: string + type: array + type: object + type: array + options: + description: 'Options defines the reference to a TLSOption, that + specifies the parameters of the TLS connection. If not defined, + the `default` TLSOption is used. More info: https://doc.traefik.io/traefik/v2.10/https/tls/#tls-options' + properties: + name: + description: 'Name defines the name of the referenced TLSOption. + More info: https://doc.traefik.io/traefik/v2.10/routing/providers/kubernetes-crd/#kind-tlsoption' + type: string + namespace: + description: 'Namespace defines the namespace of the referenced + TLSOption. More info: https://doc.traefik.io/traefik/v2.10/routing/providers/kubernetes-crd/#kind-tlsoption' + type: string + required: + - name + type: object + secretName: + description: SecretName is the name of the referenced Kubernetes + Secret to specify the certificate details. + type: string + store: + description: Store defines the reference to the TLSStore, that + will be used to store certificates. Please note that only `default` + TLSStore can be used. + properties: + name: + description: 'Name defines the name of the referenced TLSStore. + More info: https://doc.traefik.io/traefik/v2.10/routing/providers/kubernetes-crd/#kind-tlsstore' + type: string + namespace: + description: 'Namespace defines the namespace of the referenced + TLSStore. More info: https://doc.traefik.io/traefik/v2.10/routing/providers/kubernetes-crd/#kind-tlsstore' + type: string + required: + - name + type: object + type: object + required: + - routes + type: object + required: + - metadata + - spec + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/enterprise/traefik/25.1.17/crds/traefik.io_ingressroutetcps.yaml b/enterprise/traefik/25.1.17/crds/traefik.io_ingressroutetcps.yaml new file mode 100644 index 00000000000..82f61ac24f1 --- /dev/null +++ b/enterprise/traefik/25.1.17/crds/traefik.io_ingressroutetcps.yaml @@ -0,0 +1,218 @@ + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.6.2 + creationTimestamp: null + name: ingressroutetcps.traefik.io +spec: + group: traefik.io + names: + kind: IngressRouteTCP + listKind: IngressRouteTCPList + plural: ingressroutetcps + singular: ingressroutetcp + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: IngressRouteTCP is the CRD implementation of a Traefik TCP Router. + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: IngressRouteTCPSpec defines the desired state of IngressRouteTCP. + properties: + entryPoints: + description: 'EntryPoints defines the list of entry point names to + bind to. Entry points have to be configured in the static configuration. + More info: https://doc.traefik.io/traefik/v2.10/routing/entrypoints/ + Default: all.' + items: + type: string + type: array + routes: + description: Routes defines the list of routes. + items: + description: RouteTCP holds the TCP route configuration. + properties: + match: + description: 'Match defines the router''s rule. More info: https://doc.traefik.io/traefik/v2.10/routing/routers/#rule_1' + type: string + middlewares: + description: Middlewares defines the list of references to MiddlewareTCP + resources. + items: + description: ObjectReference is a generic reference to a Traefik + resource. + properties: + name: + description: Name defines the name of the referenced Traefik + resource. + type: string + namespace: + description: Namespace defines the namespace of the referenced + Traefik resource. + type: string + required: + - name + type: object + type: array + priority: + description: 'Priority defines the router''s priority. More + info: https://doc.traefik.io/traefik/v2.10/routing/routers/#priority_1' + type: integer + services: + description: Services defines the list of TCP services. + items: + description: ServiceTCP defines an upstream TCP service to + proxy traffic to. + properties: + name: + description: Name defines the name of the referenced Kubernetes + Service. + type: string + namespace: + description: Namespace defines the namespace of the referenced + Kubernetes Service. + type: string + nativeLB: + description: NativeLB controls, when creating the load-balancer, + whether the LB's children are directly the pods IPs + or if the only child is the Kubernetes Service clusterIP. + The Kubernetes Service itself does load-balance to the + pods. By default, NativeLB is false. + type: boolean + port: + anyOf: + - type: integer + - type: string + description: Port defines the port of a Kubernetes Service. + This can be a reference to a named port. + x-kubernetes-int-or-string: true + proxyProtocol: + description: 'ProxyProtocol defines the PROXY protocol + configuration. More info: https://doc.traefik.io/traefik/v2.10/routing/services/#proxy-protocol' + properties: + version: + description: Version defines the PROXY Protocol version + to use. + type: integer + type: object + terminationDelay: + description: TerminationDelay defines the deadline that + the proxy sets, after one of its connected peers indicates + it has closed the writing capability of its connection, + to close the reading capability as well, hence fully + terminating the connection. It is a duration in milliseconds, + defaulting to 100. A negative value means an infinite + deadline (i.e. the reading capability is never closed). + type: integer + weight: + description: Weight defines the weight used when balancing + requests between multiple Kubernetes Service. + type: integer + required: + - name + - port + type: object + type: array + required: + - match + type: object + type: array + tls: + description: 'TLS defines the TLS configuration on a layer 4 / TCP + Route. More info: https://doc.traefik.io/traefik/v2.10/routing/routers/#tls_1' + properties: + certResolver: + description: 'CertResolver defines the name of the certificate + resolver to use. Cert resolvers have to be configured in the + static configuration. More info: https://doc.traefik.io/traefik/v2.10/https/acme/#certificate-resolvers' + type: string + domains: + description: 'Domains defines the list of domains that will be + used to issue certificates. More info: https://doc.traefik.io/traefik/v2.10/routing/routers/#domains' + items: + description: Domain holds a domain name with SANs. + properties: + main: + description: Main defines the main domain name. + type: string + sans: + description: SANs defines the subject alternative domain + names. + items: + type: string + type: array + type: object + type: array + options: + description: 'Options defines the reference to a TLSOption, that + specifies the parameters of the TLS connection. If not defined, + the `default` TLSOption is used. More info: https://doc.traefik.io/traefik/v2.10/https/tls/#tls-options' + properties: + name: + description: Name defines the name of the referenced Traefik + resource. + type: string + namespace: + description: Namespace defines the namespace of the referenced + Traefik resource. + type: string + required: + - name + type: object + passthrough: + description: Passthrough defines whether a TLS router will terminate + the TLS connection. + type: boolean + secretName: + description: SecretName is the name of the referenced Kubernetes + Secret to specify the certificate details. + type: string + store: + description: Store defines the reference to the TLSStore, that + will be used to store certificates. Please note that only `default` + TLSStore can be used. + properties: + name: + description: Name defines the name of the referenced Traefik + resource. + type: string + namespace: + description: Namespace defines the namespace of the referenced + Traefik resource. + type: string + required: + - name + type: object + type: object + required: + - routes + type: object + required: + - metadata + - spec + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/enterprise/traefik/25.1.17/crds/traefik.io_ingressrouteudps.yaml b/enterprise/traefik/25.1.17/crds/traefik.io_ingressrouteudps.yaml new file mode 100644 index 00000000000..27c50185d08 --- /dev/null +++ b/enterprise/traefik/25.1.17/crds/traefik.io_ingressrouteudps.yaml @@ -0,0 +1,105 @@ + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.6.2 + creationTimestamp: null + name: ingressrouteudps.traefik.io +spec: + group: traefik.io + names: + kind: IngressRouteUDP + listKind: IngressRouteUDPList + plural: ingressrouteudps + singular: ingressrouteudp + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: IngressRouteUDP is a CRD implementation of a Traefik UDP Router. + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: IngressRouteUDPSpec defines the desired state of a IngressRouteUDP. + properties: + entryPoints: + description: 'EntryPoints defines the list of entry point names to + bind to. Entry points have to be configured in the static configuration. + More info: https://doc.traefik.io/traefik/v2.10/routing/entrypoints/ + Default: all.' + items: + type: string + type: array + routes: + description: Routes defines the list of routes. + items: + description: RouteUDP holds the UDP route configuration. + properties: + services: + description: Services defines the list of UDP services. + items: + description: ServiceUDP defines an upstream UDP service to + proxy traffic to. + properties: + name: + description: Name defines the name of the referenced Kubernetes + Service. + type: string + namespace: + description: Namespace defines the namespace of the referenced + Kubernetes Service. + type: string + nativeLB: + description: NativeLB controls, when creating the load-balancer, + whether the LB's children are directly the pods IPs + or if the only child is the Kubernetes Service clusterIP. + The Kubernetes Service itself does load-balance to the + pods. By default, NativeLB is false. + type: boolean + port: + anyOf: + - type: integer + - type: string + description: Port defines the port of a Kubernetes Service. + This can be a reference to a named port. + x-kubernetes-int-or-string: true + weight: + description: Weight defines the weight used when balancing + requests between multiple Kubernetes Service. + type: integer + required: + - name + - port + type: object + type: array + type: object + type: array + required: + - routes + type: object + required: + - metadata + - spec + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/enterprise/traefik/25.1.17/crds/traefik.io_middlewares.yaml b/enterprise/traefik/25.1.17/crds/traefik.io_middlewares.yaml new file mode 100644 index 00000000000..5a4dc3640fa --- /dev/null +++ b/enterprise/traefik/25.1.17/crds/traefik.io_middlewares.yaml @@ -0,0 +1,924 @@ + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.6.2 + creationTimestamp: null + name: middlewares.traefik.io +spec: + group: traefik.io + names: + kind: Middleware + listKind: MiddlewareList + plural: middlewares + singular: middleware + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: 'Middleware is the CRD implementation of a Traefik Middleware. + More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/overview/' + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: MiddlewareSpec defines the desired state of a Middleware. + properties: + addPrefix: + description: 'AddPrefix holds the add prefix middleware configuration. + This middleware updates the path of a request before forwarding + it. More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/addprefix/' + properties: + prefix: + description: Prefix is the string to add before the current path + in the requested URL. It should include a leading slash (/). + type: string + type: object + basicAuth: + description: 'BasicAuth holds the basic auth middleware configuration. + This middleware restricts access to your services to known users. + More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/basicauth/' + properties: + headerField: + description: 'HeaderField defines a header field to store the + authenticated user. More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/basicauth/#headerfield' + type: string + realm: + description: 'Realm allows the protected resources on a server + to be partitioned into a set of protection spaces, each with + its own authentication scheme. Default: traefik.' + type: string + removeHeader: + description: 'RemoveHeader sets the removeHeader option to true + to remove the authorization header before forwarding the request + to your service. Default: false.' + type: boolean + secret: + description: Secret is the name of the referenced Kubernetes Secret + containing user credentials. + type: string + type: object + buffering: + description: 'Buffering holds the buffering middleware configuration. + This middleware retries or limits the size of requests that can + be forwarded to backends. More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/buffering/#maxrequestbodybytes' + properties: + maxRequestBodyBytes: + description: 'MaxRequestBodyBytes defines the maximum allowed + body size for the request (in bytes). If the request exceeds + the allowed size, it is not forwarded to the service, and the + client gets a 413 (Request Entity Too Large) response. Default: + 0 (no maximum).' + format: int64 + type: integer + maxResponseBodyBytes: + description: 'MaxResponseBodyBytes defines the maximum allowed + response size from the service (in bytes). If the response exceeds + the allowed size, it is not forwarded to the client. The client + gets a 500 (Internal Server Error) response instead. Default: + 0 (no maximum).' + format: int64 + type: integer + memRequestBodyBytes: + description: 'MemRequestBodyBytes defines the threshold (in bytes) + from which the request will be buffered on disk instead of in + memory. Default: 1048576 (1Mi).' + format: int64 + type: integer + memResponseBodyBytes: + description: 'MemResponseBodyBytes defines the threshold (in bytes) + from which the response will be buffered on disk instead of + in memory. Default: 1048576 (1Mi).' + format: int64 + type: integer + retryExpression: + description: 'RetryExpression defines the retry conditions. It + is a logical combination of functions with operators AND (&&) + and OR (||). More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/buffering/#retryexpression' + type: string + type: object + chain: + description: 'Chain holds the configuration of the chain middleware. + This middleware enables to define reusable combinations of other + pieces of middleware. More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/chain/' + properties: + middlewares: + description: Middlewares is the list of MiddlewareRef which composes + the chain. + items: + description: MiddlewareRef is a reference to a Middleware resource. + properties: + name: + description: Name defines the name of the referenced Middleware + resource. + type: string + namespace: + description: Namespace defines the namespace of the referenced + Middleware resource. + type: string + required: + - name + type: object + type: array + type: object + circuitBreaker: + description: CircuitBreaker holds the circuit breaker configuration. + properties: + checkPeriod: + anyOf: + - type: integer + - type: string + description: CheckPeriod is the interval between successive checks + of the circuit breaker condition (when in standby state). + x-kubernetes-int-or-string: true + expression: + description: Expression is the condition that triggers the tripped + state. + type: string + fallbackDuration: + anyOf: + - type: integer + - type: string + description: FallbackDuration is the duration for which the circuit + breaker will wait before trying to recover (from a tripped state). + x-kubernetes-int-or-string: true + recoveryDuration: + anyOf: + - type: integer + - type: string + description: RecoveryDuration is the duration for which the circuit + breaker will try to recover (as soon as it is in recovering + state). + x-kubernetes-int-or-string: true + type: object + compress: + description: 'Compress holds the compress middleware configuration. + This middleware compresses responses before sending them to the + client, using gzip compression. More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/compress/' + properties: + excludedContentTypes: + description: ExcludedContentTypes defines the list of content + types to compare the Content-Type header of the incoming requests + and responses before compressing. + items: + type: string + type: array + minResponseBodyBytes: + description: 'MinResponseBodyBytes defines the minimum amount + of bytes a response body must have to be compressed. Default: + 1024.' + type: integer + type: object + contentType: + description: ContentType holds the content-type middleware configuration. + This middleware exists to enable the correct behavior until at least + the default one can be changed in a future version. + properties: + autoDetect: + description: AutoDetect specifies whether to let the `Content-Type` + header, if it has not been set by the backend, be automatically + set to a value derived from the contents of the response. As + a proxy, the default behavior should be to leave the header + alone, regardless of what the backend did with it. However, + the historic default was to always auto-detect and set the header + if it was nil, and it is going to be kept that way in order + to support users currently relying on it. + type: boolean + type: object + digestAuth: + description: 'DigestAuth holds the digest auth middleware configuration. + This middleware restricts access to your services to known users. + More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/digestauth/' + properties: + headerField: + description: 'HeaderField defines a header field to store the + authenticated user. More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/basicauth/#headerfield' + type: string + realm: + description: 'Realm allows the protected resources on a server + to be partitioned into a set of protection spaces, each with + its own authentication scheme. Default: traefik.' + type: string + removeHeader: + description: RemoveHeader defines whether to remove the authorization + header before forwarding the request to the backend. + type: boolean + secret: + description: Secret is the name of the referenced Kubernetes Secret + containing user credentials. + type: string + type: object + errors: + description: 'ErrorPage holds the custom error middleware configuration. + This middleware returns a custom page in lieu of the default, according + to configured ranges of HTTP Status codes. More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/errorpages/' + properties: + query: + description: Query defines the URL for the error page (hosted + by service). The {status} variable can be used in order to insert + the status code in the URL. + type: string + service: + description: 'Service defines the reference to a Kubernetes Service + that will serve the error page. More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/errorpages/#service' + properties: + kind: + description: Kind defines the kind of the Service. + enum: + - Service + - TraefikService + type: string + name: + description: Name defines the name of the referenced Kubernetes + Service or TraefikService. The differentiation between the + two is specified in the Kind field. + type: string + namespace: + description: Namespace defines the namespace of the referenced + Kubernetes Service or TraefikService. + type: string + nativeLB: + description: NativeLB controls, when creating the load-balancer, + whether the LB's children are directly the pods IPs or if + the only child is the Kubernetes Service clusterIP. The + Kubernetes Service itself does load-balance to the pods. + By default, NativeLB is false. + type: boolean + passHostHeader: + description: PassHostHeader defines whether the client Host + header is forwarded to the upstream Kubernetes Service. + By default, passHostHeader is true. + type: boolean + port: + anyOf: + - type: integer + - type: string + description: Port defines the port of a Kubernetes Service. + This can be a reference to a named port. + x-kubernetes-int-or-string: true + responseForwarding: + description: ResponseForwarding defines how Traefik forwards + the response from the upstream Kubernetes Service to the + client. + properties: + flushInterval: + description: 'FlushInterval defines the interval, in milliseconds, + in between flushes to the client while copying the response + body. A negative value means to flush immediately after + each write to the client. This configuration is ignored + when ReverseProxy recognizes a response as a streaming + response; for such responses, writes are flushed to + the client immediately. Default: 100ms' + type: string + type: object + scheme: + description: Scheme defines the scheme to use for the request + to the upstream Kubernetes Service. It defaults to https + when Kubernetes Service port is 443, http otherwise. + type: string + serversTransport: + description: ServersTransport defines the name of ServersTransport + resource to use. It allows to configure the transport between + Traefik and your servers. Can only be used on a Kubernetes + Service. + type: string + sticky: + description: 'Sticky defines the sticky sessions configuration. + More info: https://doc.traefik.io/traefik/v2.10/routing/services/#sticky-sessions' + properties: + cookie: + description: Cookie defines the sticky cookie configuration. + properties: + httpOnly: + description: HTTPOnly defines whether the cookie can + be accessed by client-side APIs, such as JavaScript. + type: boolean + name: + description: Name defines the Cookie name. + type: string + sameSite: + description: 'SameSite defines the same site policy. + More info: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite' + type: string + secure: + description: Secure defines whether the cookie can + only be transmitted over an encrypted connection + (i.e. HTTPS). + type: boolean + type: object + type: object + strategy: + description: Strategy defines the load balancing strategy + between the servers. RoundRobin is the only supported value + at the moment. + type: string + weight: + description: Weight defines the weight and should only be + specified when Name references a TraefikService object (and + to be precise, one that embeds a Weighted Round Robin). + type: integer + required: + - name + type: object + status: + description: Status defines which status or range of statuses + should result in an error page. It can be either a status code + as a number (500), as multiple comma-separated numbers (500,502), + as ranges by separating two codes with a dash (500-599), or + a combination of the two (404,418,500-599). + items: + type: string + type: array + type: object + forwardAuth: + description: 'ForwardAuth holds the forward auth middleware configuration. + This middleware delegates the request authentication to a Service. + More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/forwardauth/' + properties: + address: + description: Address defines the authentication server address. + type: string + authRequestHeaders: + description: AuthRequestHeaders defines the list of the headers + to copy from the request to the authentication server. If not + set or empty then all request headers are passed. + items: + type: string + type: array + authResponseHeaders: + description: AuthResponseHeaders defines the list of headers to + copy from the authentication server response and set on forwarded + request, replacing any existing conflicting headers. + items: + type: string + type: array + authResponseHeadersRegex: + description: 'AuthResponseHeadersRegex defines the regex to match + headers to copy from the authentication server response and + set on forwarded request, after stripping all headers that match + the regex. More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/forwardauth/#authresponseheadersregex' + type: string + tls: + description: TLS defines the configuration used to secure the + connection to the authentication server. + properties: + caOptional: + type: boolean + caSecret: + description: CASecret is the name of the referenced Kubernetes + Secret containing the CA to validate the server certificate. + The CA certificate is extracted from key `tls.ca` or `ca.crt`. + type: string + certSecret: + description: CertSecret is the name of the referenced Kubernetes + Secret containing the client certificate. The client certificate + is extracted from the keys `tls.crt` and `tls.key`. + type: string + insecureSkipVerify: + description: InsecureSkipVerify defines whether the server + certificates should be validated. + type: boolean + type: object + trustForwardHeader: + description: 'TrustForwardHeader defines whether to trust (ie: + forward) all X-Forwarded-* headers.' + type: boolean + type: object + headers: + description: 'Headers holds the headers middleware configuration. + This middleware manages the requests and responses headers. More + info: https://doc.traefik.io/traefik/v2.10/middlewares/http/headers/#customrequestheaders' + properties: + accessControlAllowCredentials: + description: AccessControlAllowCredentials defines whether the + request can include user credentials. + type: boolean + accessControlAllowHeaders: + description: AccessControlAllowHeaders defines the Access-Control-Request-Headers + values sent in preflight response. + items: + type: string + type: array + accessControlAllowMethods: + description: AccessControlAllowMethods defines the Access-Control-Request-Method + values sent in preflight response. + items: + type: string + type: array + accessControlAllowOriginList: + description: AccessControlAllowOriginList is a list of allowable + origins. Can also be a wildcard origin "*". + items: + type: string + type: array + accessControlAllowOriginListRegex: + description: AccessControlAllowOriginListRegex is a list of allowable + origins written following the Regular Expression syntax (https://golang.org/pkg/regexp/). + items: + type: string + type: array + accessControlExposeHeaders: + description: AccessControlExposeHeaders defines the Access-Control-Expose-Headers + values sent in preflight response. + items: + type: string + type: array + accessControlMaxAge: + description: AccessControlMaxAge defines the time that a preflight + request may be cached. + format: int64 + type: integer + addVaryHeader: + description: AddVaryHeader defines whether the Vary header is + automatically added/updated when the AccessControlAllowOriginList + is set. + type: boolean + allowedHosts: + description: AllowedHosts defines the fully qualified list of + allowed domain names. + items: + type: string + type: array + browserXssFilter: + description: BrowserXSSFilter defines whether to add the X-XSS-Protection + header with the value 1; mode=block. + type: boolean + contentSecurityPolicy: + description: ContentSecurityPolicy defines the Content-Security-Policy + header value. + type: string + contentTypeNosniff: + description: ContentTypeNosniff defines whether to add the X-Content-Type-Options + header with the nosniff value. + type: boolean + customBrowserXSSValue: + description: CustomBrowserXSSValue defines the X-XSS-Protection + header value. This overrides the BrowserXssFilter option. + type: string + customFrameOptionsValue: + description: CustomFrameOptionsValue defines the X-Frame-Options + header value. This overrides the FrameDeny option. + type: string + customRequestHeaders: + additionalProperties: + type: string + description: CustomRequestHeaders defines the header names and + values to apply to the request. + type: object + customResponseHeaders: + additionalProperties: + type: string + description: CustomResponseHeaders defines the header names and + values to apply to the response. + type: object + featurePolicy: + description: 'Deprecated: use PermissionsPolicy instead.' + type: string + forceSTSHeader: + description: ForceSTSHeader defines whether to add the STS header + even when the connection is HTTP. + type: boolean + frameDeny: + description: FrameDeny defines whether to add the X-Frame-Options + header with the DENY value. + type: boolean + hostsProxyHeaders: + description: HostsProxyHeaders defines the header keys that may + hold a proxied hostname value for the request. + items: + type: string + type: array + isDevelopment: + description: IsDevelopment defines whether to mitigate the unwanted + effects of the AllowedHosts, SSL, and STS options when developing. + Usually testing takes place using HTTP, not HTTPS, and on localhost, + not your production domain. If you would like your development + environment to mimic production with complete Host blocking, + SSL redirects, and STS headers, leave this as false. + type: boolean + permissionsPolicy: + description: PermissionsPolicy defines the Permissions-Policy + header value. This allows sites to control browser features. + type: string + publicKey: + description: PublicKey is the public key that implements HPKP + to prevent MITM attacks with forged certificates. + type: string + referrerPolicy: + description: ReferrerPolicy defines the Referrer-Policy header + value. This allows sites to control whether browsers forward + the Referer header to other sites. + type: string + sslForceHost: + description: 'Deprecated: use RedirectRegex instead.' + type: boolean + sslHost: + description: 'Deprecated: use RedirectRegex instead.' + type: string + sslProxyHeaders: + additionalProperties: + type: string + description: 'SSLProxyHeaders defines the header keys with associated + values that would indicate a valid HTTPS request. It can be + useful when using other proxies (example: "X-Forwarded-Proto": + "https").' + type: object + sslRedirect: + description: 'Deprecated: use EntryPoint redirection or RedirectScheme + instead.' + type: boolean + sslTemporaryRedirect: + description: 'Deprecated: use EntryPoint redirection or RedirectScheme + instead.' + type: boolean + stsIncludeSubdomains: + description: STSIncludeSubdomains defines whether the includeSubDomains + directive is appended to the Strict-Transport-Security header. + type: boolean + stsPreload: + description: STSPreload defines whether the preload flag is appended + to the Strict-Transport-Security header. + type: boolean + stsSeconds: + description: STSSeconds defines the max-age of the Strict-Transport-Security + header. If set to 0, the header is not set. + format: int64 + type: integer + type: object + inFlightReq: + description: 'InFlightReq holds the in-flight request middleware configuration. + This middleware limits the number of requests being processed and + served concurrently. More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/inflightreq/' + properties: + amount: + description: Amount defines the maximum amount of allowed simultaneous + in-flight request. The middleware responds with HTTP 429 Too + Many Requests if there are already amount requests in progress + (based on the same sourceCriterion strategy). + format: int64 + type: integer + sourceCriterion: + description: 'SourceCriterion defines what criterion is used to + group requests as originating from a common source. If several + strategies are defined at the same time, an error will be raised. + If none are set, the default is to use the requestHost. More + info: https://doc.traefik.io/traefik/v2.10/middlewares/http/inflightreq/#sourcecriterion' + properties: + ipStrategy: + description: 'IPStrategy holds the IP strategy configuration + used by Traefik to determine the client IP. More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/ipwhitelist/#ipstrategy' + properties: + depth: + description: Depth tells Traefik to use the X-Forwarded-For + header and take the IP located at the depth position + (starting from the right). + type: integer + excludedIPs: + description: ExcludedIPs configures Traefik to scan the + X-Forwarded-For header and select the first IP not in + the list. + items: + type: string + type: array + type: object + requestHeaderName: + description: RequestHeaderName defines the name of the header + used to group incoming requests. + type: string + requestHost: + description: RequestHost defines whether to consider the request + Host as the source. + type: boolean + type: object + type: object + ipWhiteList: + description: 'IPWhiteList holds the IP whitelist middleware configuration. + This middleware accepts / refuses requests based on the client IP. + More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/ipwhitelist/' + properties: + ipStrategy: + description: 'IPStrategy holds the IP strategy configuration used + by Traefik to determine the client IP. More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/ipwhitelist/#ipstrategy' + properties: + depth: + description: Depth tells Traefik to use the X-Forwarded-For + header and take the IP located at the depth position (starting + from the right). + type: integer + excludedIPs: + description: ExcludedIPs configures Traefik to scan the X-Forwarded-For + header and select the first IP not in the list. + items: + type: string + type: array + type: object + sourceRange: + description: SourceRange defines the set of allowed IPs (or ranges + of allowed IPs by using CIDR notation). + items: + type: string + type: array + type: object + passTLSClientCert: + description: 'PassTLSClientCert holds the pass TLS client cert middleware + configuration. This middleware adds the selected data from the passed + client TLS certificate to a header. More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/passtlsclientcert/' + properties: + info: + description: Info selects the specific client certificate details + you want to add to the X-Forwarded-Tls-Client-Cert-Info header. + properties: + issuer: + description: Issuer defines the client certificate issuer + details to add to the X-Forwarded-Tls-Client-Cert-Info header. + properties: + commonName: + description: CommonName defines whether to add the organizationalUnit + information into the issuer. + type: boolean + country: + description: Country defines whether to add the country + information into the issuer. + type: boolean + domainComponent: + description: DomainComponent defines whether to add the + domainComponent information into the issuer. + type: boolean + locality: + description: Locality defines whether to add the locality + information into the issuer. + type: boolean + organization: + description: Organization defines whether to add the organization + information into the issuer. + type: boolean + province: + description: Province defines whether to add the province + information into the issuer. + type: boolean + serialNumber: + description: SerialNumber defines whether to add the serialNumber + information into the issuer. + type: boolean + type: object + notAfter: + description: NotAfter defines whether to add the Not After + information from the Validity part. + type: boolean + notBefore: + description: NotBefore defines whether to add the Not Before + information from the Validity part. + type: boolean + sans: + description: Sans defines whether to add the Subject Alternative + Name information from the Subject Alternative Name part. + type: boolean + serialNumber: + description: SerialNumber defines whether to add the client + serialNumber information. + type: boolean + subject: + description: Subject defines the client certificate subject + details to add to the X-Forwarded-Tls-Client-Cert-Info header. + properties: + commonName: + description: CommonName defines whether to add the organizationalUnit + information into the subject. + type: boolean + country: + description: Country defines whether to add the country + information into the subject. + type: boolean + domainComponent: + description: DomainComponent defines whether to add the + domainComponent information into the subject. + type: boolean + locality: + description: Locality defines whether to add the locality + information into the subject. + type: boolean + organization: + description: Organization defines whether to add the organization + information into the subject. + type: boolean + organizationalUnit: + description: OrganizationalUnit defines whether to add + the organizationalUnit information into the subject. + type: boolean + province: + description: Province defines whether to add the province + information into the subject. + type: boolean + serialNumber: + description: SerialNumber defines whether to add the serialNumber + information into the subject. + type: boolean + type: object + type: object + pem: + description: PEM sets the X-Forwarded-Tls-Client-Cert header with + the certificate. + type: boolean + type: object + plugin: + additionalProperties: + x-kubernetes-preserve-unknown-fields: true + description: 'Plugin defines the middleware plugin configuration. + More info: https://doc.traefik.io/traefik/plugins/' + type: object + rateLimit: + description: 'RateLimit holds the rate limit configuration. This middleware + ensures that services will receive a fair amount of requests, and + allows one to define what fair is. More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/ratelimit/' + properties: + average: + description: Average is the maximum rate, by default in requests/s, + allowed for the given source. It defaults to 0, which means + no rate limiting. The rate is actually defined by dividing Average + by Period. So for a rate below 1req/s, one needs to define a + Period larger than a second. + format: int64 + type: integer + burst: + description: Burst is the maximum number of requests allowed to + arrive in the same arbitrarily small period of time. It defaults + to 1. + format: int64 + type: integer + period: + anyOf: + - type: integer + - type: string + description: 'Period, in combination with Average, defines the + actual maximum rate, such as: r = Average / Period. It defaults + to a second.' + x-kubernetes-int-or-string: true + sourceCriterion: + description: SourceCriterion defines what criterion is used to + group requests as originating from a common source. If several + strategies are defined at the same time, an error will be raised. + If none are set, the default is to use the request's remote + address field (as an ipStrategy). + properties: + ipStrategy: + description: 'IPStrategy holds the IP strategy configuration + used by Traefik to determine the client IP. More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/ipwhitelist/#ipstrategy' + properties: + depth: + description: Depth tells Traefik to use the X-Forwarded-For + header and take the IP located at the depth position + (starting from the right). + type: integer + excludedIPs: + description: ExcludedIPs configures Traefik to scan the + X-Forwarded-For header and select the first IP not in + the list. + items: + type: string + type: array + type: object + requestHeaderName: + description: RequestHeaderName defines the name of the header + used to group incoming requests. + type: string + requestHost: + description: RequestHost defines whether to consider the request + Host as the source. + type: boolean + type: object + type: object + redirectRegex: + description: 'RedirectRegex holds the redirect regex middleware configuration. + This middleware redirects a request using regex matching and replacement. + More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/redirectregex/#regex' + properties: + permanent: + description: Permanent defines whether the redirection is permanent + (301). + type: boolean + regex: + description: Regex defines the regex used to match and capture + elements from the request URL. + type: string + replacement: + description: Replacement defines how to modify the URL to have + the new target URL. + type: string + type: object + redirectScheme: + description: 'RedirectScheme holds the redirect scheme middleware + configuration. This middleware redirects requests from a scheme/port + to another. More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/redirectscheme/' + properties: + permanent: + description: Permanent defines whether the redirection is permanent + (301). + type: boolean + port: + description: Port defines the port of the new URL. + type: string + scheme: + description: Scheme defines the scheme of the new URL. + type: string + type: object + replacePath: + description: 'ReplacePath holds the replace path middleware configuration. + This middleware replaces the path of the request URL and store the + original path in an X-Replaced-Path header. More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/replacepath/' + properties: + path: + description: Path defines the path to use as replacement in the + request URL. + type: string + type: object + replacePathRegex: + description: 'ReplacePathRegex holds the replace path regex middleware + configuration. This middleware replaces the path of a URL using + regex matching and replacement. More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/replacepathregex/' + properties: + regex: + description: Regex defines the regular expression used to match + and capture the path from the request URL. + type: string + replacement: + description: Replacement defines the replacement path format, + which can include captured variables. + type: string + type: object + retry: + description: 'Retry holds the retry middleware configuration. This + middleware reissues requests a given number of times to a backend + server if that server does not reply. As soon as the server answers, + the middleware stops retrying, regardless of the response status. + More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/retry/' + properties: + attempts: + description: Attempts defines how many times the request should + be retried. + type: integer + initialInterval: + anyOf: + - type: integer + - type: string + description: InitialInterval defines the first wait time in the + exponential backoff series. The maximum interval is calculated + as twice the initialInterval. If unspecified, requests will + be retried immediately. The value of initialInterval should + be provided in seconds or as a valid duration format, see https://pkg.go.dev/time#ParseDuration. + x-kubernetes-int-or-string: true + type: object + stripPrefix: + description: 'StripPrefix holds the strip prefix middleware configuration. + This middleware removes the specified prefixes from the URL path. + More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/stripprefix/' + properties: + forceSlash: + description: 'ForceSlash ensures that the resulting stripped path + is not the empty string, by replacing it with / when necessary. + Default: true.' + type: boolean + prefixes: + description: Prefixes defines the prefixes to strip from the request + URL. + items: + type: string + type: array + type: object + stripPrefixRegex: + description: 'StripPrefixRegex holds the strip prefix regex middleware + configuration. This middleware removes the matching prefixes from + the URL path. More info: https://doc.traefik.io/traefik/v2.10/middlewares/http/stripprefixregex/' + properties: + regex: + description: Regex defines the regular expression to match the + path prefix from the request URL. + items: + type: string + type: array + type: object + type: object + required: + - metadata + - spec + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/enterprise/traefik/25.1.17/crds/traefik.io_middlewaretcps.yaml b/enterprise/traefik/25.1.17/crds/traefik.io_middlewaretcps.yaml new file mode 100644 index 00000000000..8623568f5b3 --- /dev/null +++ b/enterprise/traefik/25.1.17/crds/traefik.io_middlewaretcps.yaml @@ -0,0 +1,72 @@ + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.6.2 + creationTimestamp: null + name: middlewaretcps.traefik.io +spec: + group: traefik.io + names: + kind: MiddlewareTCP + listKind: MiddlewareTCPList + plural: middlewaretcps + singular: middlewaretcp + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: 'MiddlewareTCP is the CRD implementation of a Traefik TCP middleware. + More info: https://doc.traefik.io/traefik/v2.10/middlewares/overview/' + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: MiddlewareTCPSpec defines the desired state of a MiddlewareTCP. + properties: + inFlightConn: + description: InFlightConn defines the InFlightConn middleware configuration. + properties: + amount: + description: Amount defines the maximum amount of allowed simultaneous + connections. The middleware closes the connection if there are + already amount connections opened. + format: int64 + type: integer + type: object + ipWhiteList: + description: IPWhiteList defines the IPWhiteList middleware configuration. + properties: + sourceRange: + description: SourceRange defines the allowed IPs (or ranges of + allowed IPs by using CIDR notation). + items: + type: string + type: array + type: object + type: object + required: + - metadata + - spec + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/enterprise/traefik/25.1.17/crds/traefik.io_serverstransports.yaml b/enterprise/traefik/25.1.17/crds/traefik.io_serverstransports.yaml new file mode 100644 index 00000000000..803b56395a4 --- /dev/null +++ b/enterprise/traefik/25.1.17/crds/traefik.io_serverstransports.yaml @@ -0,0 +1,128 @@ + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.6.2 + creationTimestamp: null + name: serverstransports.traefik.io +spec: + group: traefik.io + names: + kind: ServersTransport + listKind: ServersTransportList + plural: serverstransports + singular: serverstransport + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: 'ServersTransport is the CRD implementation of a ServersTransport. + If no serversTransport is specified, the default@internal will be used. + The default@internal serversTransport is created from the static configuration. + More info: https://doc.traefik.io/traefik/v2.10/routing/services/#serverstransport_1' + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: ServersTransportSpec defines the desired state of a ServersTransport. + properties: + certificatesSecrets: + description: CertificatesSecrets defines a list of secret storing + client certificates for mTLS. + items: + type: string + type: array + disableHTTP2: + description: DisableHTTP2 disables HTTP/2 for connections with backend + servers. + type: boolean + forwardingTimeouts: + description: ForwardingTimeouts defines the timeouts for requests + forwarded to the backend servers. + properties: + dialTimeout: + anyOf: + - type: integer + - type: string + description: DialTimeout is the amount of time to wait until a + connection to a backend server can be established. + x-kubernetes-int-or-string: true + idleConnTimeout: + anyOf: + - type: integer + - type: string + description: IdleConnTimeout is the maximum period for which an + idle HTTP keep-alive connection will remain open before closing + itself. + x-kubernetes-int-or-string: true + pingTimeout: + anyOf: + - type: integer + - type: string + description: PingTimeout is the timeout after which the HTTP/2 + connection will be closed if a response to ping is not received. + x-kubernetes-int-or-string: true + readIdleTimeout: + anyOf: + - type: integer + - type: string + description: ReadIdleTimeout is the timeout after which a health + check using ping frame will be carried out if no frame is received + on the HTTP/2 connection. + x-kubernetes-int-or-string: true + responseHeaderTimeout: + anyOf: + - type: integer + - type: string + description: ResponseHeaderTimeout is the amount of time to wait + for a server's response headers after fully writing the request + (including its body, if any). + x-kubernetes-int-or-string: true + type: object + insecureSkipVerify: + description: InsecureSkipVerify disables SSL certificate verification. + type: boolean + maxIdleConnsPerHost: + description: MaxIdleConnsPerHost controls the maximum idle (keep-alive) + to keep per-host. + type: integer + peerCertURI: + description: PeerCertURI defines the peer cert URI used to match against + SAN URI during the peer certificate verification. + type: string + rootCAsSecrets: + description: RootCAsSecrets defines a list of CA secret used to validate + self-signed certificate. + items: + type: string + type: array + serverName: + description: ServerName defines the server name used to contact the + server. + type: string + type: object + required: + - metadata + - spec + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/enterprise/traefik/25.1.17/crds/traefik.io_serverstransporttcps.yaml b/enterprise/traefik/25.1.17/crds/traefik.io_serverstransporttcps.yaml new file mode 100644 index 00000000000..10e0a3f0e79 --- /dev/null +++ b/enterprise/traefik/25.1.17/crds/traefik.io_serverstransporttcps.yaml @@ -0,0 +1,122 @@ + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.6.2 + creationTimestamp: null + name: serverstransporttcps.traefik.io +spec: + group: traefik.io + names: + kind: ServersTransportTCP + listKind: ServersTransportTCPList + plural: serverstransporttcps + singular: serverstransporttcp + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: 'ServersTransportTCP is the CRD implementation of a TCPServersTransport. + If no tcpServersTransport is specified, a default one named default@internal + will be used. The default@internal tcpServersTransport can be configured + in the static configuration. More info: https://doc.traefik.io/traefik/v3.0/routing/services/#serverstransport_3' + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: ServersTransportTCPSpec defines the desired state of a ServersTransportTCP. + properties: + dialKeepAlive: + anyOf: + - type: integer + - type: string + description: DialKeepAlive is the interval between keep-alive probes + for an active network connection. If zero, keep-alive probes are + sent with a default value (currently 15 seconds), if supported by + the protocol and operating system. Network protocols or operating + systems that do not support keep-alives ignore this field. If negative, + keep-alive probes are disabled. + x-kubernetes-int-or-string: true + dialTimeout: + anyOf: + - type: integer + - type: string + description: DialTimeout is the amount of time to wait until a connection + to a backend server can be established. + x-kubernetes-int-or-string: true + terminationDelay: + anyOf: + - type: integer + - type: string + description: TerminationDelay defines the delay to wait before fully + terminating the connection, after one connected peer has closed + its writing capability. + x-kubernetes-int-or-string: true + tls: + description: TLS defines the TLS configuration + properties: + certificatesSecrets: + description: CertificatesSecrets defines a list of secret storing + client certificates for mTLS. + items: + type: string + type: array + insecureSkipVerify: + description: InsecureSkipVerify disables TLS certificate verification. + type: boolean + peerCertURI: + description: MaxIdleConnsPerHost controls the maximum idle (keep-alive) + to keep per-host. PeerCertURI defines the peer cert URI used + to match against SAN URI during the peer certificate verification. + type: string + rootCAsSecrets: + description: RootCAsSecrets defines a list of CA secret used to + validate self-signed certificates. + items: + type: string + type: array + serverName: + description: ServerName defines the server name used to contact + the server. + type: string + spiffe: + description: Spiffe defines the SPIFFE configuration. + properties: + ids: + description: IDs defines the allowed SPIFFE IDs (takes precedence + over the SPIFFE TrustDomain). + items: + type: string + type: array + trustDomain: + description: TrustDomain defines the allowed SPIFFE trust + domain. + type: string + type: object + type: object + type: object + required: + - metadata + - spec + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/enterprise/traefik/25.1.17/crds/traefik.io_tlsoptions.yaml b/enterprise/traefik/25.1.17/crds/traefik.io_tlsoptions.yaml new file mode 100644 index 00000000000..b86fefe0e95 --- /dev/null +++ b/enterprise/traefik/25.1.17/crds/traefik.io_tlsoptions.yaml @@ -0,0 +1,113 @@ + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.6.2 + creationTimestamp: null + name: tlsoptions.traefik.io +spec: + group: traefik.io + names: + kind: TLSOption + listKind: TLSOptionList + plural: tlsoptions + singular: tlsoption + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: 'TLSOption is the CRD implementation of a Traefik TLS Option, + allowing to configure some parameters of the TLS connection. More info: + https://doc.traefik.io/traefik/v2.10/https/tls/#tls-options' + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: TLSOptionSpec defines the desired state of a TLSOption. + properties: + alpnProtocols: + description: 'ALPNProtocols defines the list of supported application + level protocols for the TLS handshake, in order of preference. More + info: https://doc.traefik.io/traefik/v2.10/https/tls/#alpn-protocols' + items: + type: string + type: array + cipherSuites: + description: 'CipherSuites defines the list of supported cipher suites + for TLS versions up to TLS 1.2. More info: https://doc.traefik.io/traefik/v2.10/https/tls/#cipher-suites' + items: + type: string + type: array + clientAuth: + description: ClientAuth defines the server's policy for TLS Client + Authentication. + properties: + clientAuthType: + description: ClientAuthType defines the client authentication + type to apply. + enum: + - NoClientCert + - RequestClientCert + - RequireAnyClientCert + - VerifyClientCertIfGiven + - RequireAndVerifyClientCert + type: string + secretNames: + description: SecretNames defines the names of the referenced Kubernetes + Secret storing certificate details. + items: + type: string + type: array + type: object + curvePreferences: + description: 'CurvePreferences defines the preferred elliptic curves + in a specific order. More info: https://doc.traefik.io/traefik/v2.10/https/tls/#curve-preferences' + items: + type: string + type: array + maxVersion: + description: 'MaxVersion defines the maximum TLS version that Traefik + will accept. Possible values: VersionTLS10, VersionTLS11, VersionTLS12, + VersionTLS13. Default: None.' + type: string + minVersion: + description: 'MinVersion defines the minimum TLS version that Traefik + will accept. Possible values: VersionTLS10, VersionTLS11, VersionTLS12, + VersionTLS13. Default: VersionTLS10.' + type: string + preferServerCipherSuites: + description: 'PreferServerCipherSuites defines whether the server + chooses a cipher suite among his own instead of among the client''s. + It is enabled automatically when minVersion or maxVersion is set. + Deprecated: https://github.com/golang/go/issues/45430' + type: boolean + sniStrict: + description: SniStrict defines whether Traefik allows connections + from clients connections that do not specify a server_name extension. + type: boolean + type: object + required: + - metadata + - spec + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/enterprise/traefik/25.1.17/crds/traefik.io_tlsstores.yaml b/enterprise/traefik/25.1.17/crds/traefik.io_tlsstores.yaml new file mode 100644 index 00000000000..47b46854c8b --- /dev/null +++ b/enterprise/traefik/25.1.17/crds/traefik.io_tlsstores.yaml @@ -0,0 +1,99 @@ + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.6.2 + creationTimestamp: null + name: tlsstores.traefik.io +spec: + group: traefik.io + names: + kind: TLSStore + listKind: TLSStoreList + plural: tlsstores + singular: tlsstore + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: 'TLSStore is the CRD implementation of a Traefik TLS Store. For + the time being, only the TLSStore named default is supported. This means + that you cannot have two stores that are named default in different Kubernetes + namespaces. More info: https://doc.traefik.io/traefik/v2.10/https/tls/#certificates-stores' + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: TLSStoreSpec defines the desired state of a TLSStore. + properties: + certificates: + description: Certificates is a list of secret names, each secret holding + a key/certificate pair to add to the store. + items: + description: Certificate holds a secret name for the TLSStore resource. + properties: + secretName: + description: SecretName is the name of the referenced Kubernetes + Secret to specify the certificate details. + type: string + required: + - secretName + type: object + type: array + defaultCertificate: + description: DefaultCertificate defines the default certificate configuration. + properties: + secretName: + description: SecretName is the name of the referenced Kubernetes + Secret to specify the certificate details. + type: string + required: + - secretName + type: object + defaultGeneratedCert: + description: DefaultGeneratedCert defines the default generated certificate + configuration. + properties: + domain: + description: Domain is the domain definition for the DefaultCertificate. + properties: + main: + description: Main defines the main domain name. + type: string + sans: + description: SANs defines the subject alternative domain names. + items: + type: string + type: array + type: object + resolver: + description: Resolver is the name of the resolver that will be + used to issue the DefaultCertificate. + type: string + type: object + type: object + required: + - metadata + - spec + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/enterprise/traefik/25.1.17/crds/traefik.io_traefikservices.yaml b/enterprise/traefik/25.1.17/crds/traefik.io_traefikservices.yaml new file mode 100644 index 00000000000..0f3475bda46 --- /dev/null +++ b/enterprise/traefik/25.1.17/crds/traefik.io_traefikservices.yaml @@ -0,0 +1,402 @@ + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.6.2 + creationTimestamp: null + name: traefikservices.traefik.io +spec: + group: traefik.io + names: + kind: TraefikService + listKind: TraefikServiceList + plural: traefikservices + singular: traefikservice + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: 'TraefikService is the CRD implementation of a Traefik Service. + TraefikService object allows to: - Apply weight to Services on load-balancing + - Mirror traffic on services More info: https://doc.traefik.io/traefik/v2.10/routing/providers/kubernetes-crd/#kind-traefikservice' + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: TraefikServiceSpec defines the desired state of a TraefikService. + properties: + mirroring: + description: Mirroring defines the Mirroring service configuration. + properties: + kind: + description: Kind defines the kind of the Service. + enum: + - Service + - TraefikService + type: string + maxBodySize: + description: MaxBodySize defines the maximum size allowed for + the body of the request. If the body is larger, the request + is not mirrored. Default value is -1, which means unlimited + size. + format: int64 + type: integer + mirrors: + description: Mirrors defines the list of mirrors where Traefik + will duplicate the traffic. + items: + description: MirrorService holds the mirror configuration. + properties: + kind: + description: Kind defines the kind of the Service. + enum: + - Service + - TraefikService + type: string + name: + description: Name defines the name of the referenced Kubernetes + Service or TraefikService. The differentiation between + the two is specified in the Kind field. + type: string + namespace: + description: Namespace defines the namespace of the referenced + Kubernetes Service or TraefikService. + type: string + nativeLB: + description: NativeLB controls, when creating the load-balancer, + whether the LB's children are directly the pods IPs or + if the only child is the Kubernetes Service clusterIP. + The Kubernetes Service itself does load-balance to the + pods. By default, NativeLB is false. + type: boolean + passHostHeader: + description: PassHostHeader defines whether the client Host + header is forwarded to the upstream Kubernetes Service. + By default, passHostHeader is true. + type: boolean + percent: + description: 'Percent defines the part of the traffic to + mirror. Supported values: 0 to 100.' + type: integer + port: + anyOf: + - type: integer + - type: string + description: Port defines the port of a Kubernetes Service. + This can be a reference to a named port. + x-kubernetes-int-or-string: true + responseForwarding: + description: ResponseForwarding defines how Traefik forwards + the response from the upstream Kubernetes Service to the + client. + properties: + flushInterval: + description: 'FlushInterval defines the interval, in + milliseconds, in between flushes to the client while + copying the response body. A negative value means + to flush immediately after each write to the client. + This configuration is ignored when ReverseProxy recognizes + a response as a streaming response; for such responses, + writes are flushed to the client immediately. Default: + 100ms' + type: string + type: object + scheme: + description: Scheme defines the scheme to use for the request + to the upstream Kubernetes Service. It defaults to https + when Kubernetes Service port is 443, http otherwise. + type: string + serversTransport: + description: ServersTransport defines the name of ServersTransport + resource to use. It allows to configure the transport + between Traefik and your servers. Can only be used on + a Kubernetes Service. + type: string + sticky: + description: 'Sticky defines the sticky sessions configuration. + More info: https://doc.traefik.io/traefik/v2.10/routing/services/#sticky-sessions' + properties: + cookie: + description: Cookie defines the sticky cookie configuration. + properties: + httpOnly: + description: HTTPOnly defines whether the cookie + can be accessed by client-side APIs, such as JavaScript. + type: boolean + name: + description: Name defines the Cookie name. + type: string + sameSite: + description: 'SameSite defines the same site policy. + More info: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite' + type: string + secure: + description: Secure defines whether the cookie can + only be transmitted over an encrypted connection + (i.e. HTTPS). + type: boolean + type: object + type: object + strategy: + description: Strategy defines the load balancing strategy + between the servers. RoundRobin is the only supported + value at the moment. + type: string + weight: + description: Weight defines the weight and should only be + specified when Name references a TraefikService object + (and to be precise, one that embeds a Weighted Round Robin). + type: integer + required: + - name + type: object + type: array + name: + description: Name defines the name of the referenced Kubernetes + Service or TraefikService. The differentiation between the two + is specified in the Kind field. + type: string + namespace: + description: Namespace defines the namespace of the referenced + Kubernetes Service or TraefikService. + type: string + nativeLB: + description: NativeLB controls, when creating the load-balancer, + whether the LB's children are directly the pods IPs or if the + only child is the Kubernetes Service clusterIP. The Kubernetes + Service itself does load-balance to the pods. By default, NativeLB + is false. + type: boolean + passHostHeader: + description: PassHostHeader defines whether the client Host header + is forwarded to the upstream Kubernetes Service. By default, + passHostHeader is true. + type: boolean + port: + anyOf: + - type: integer + - type: string + description: Port defines the port of a Kubernetes Service. This + can be a reference to a named port. + x-kubernetes-int-or-string: true + responseForwarding: + description: ResponseForwarding defines how Traefik forwards the + response from the upstream Kubernetes Service to the client. + properties: + flushInterval: + description: 'FlushInterval defines the interval, in milliseconds, + in between flushes to the client while copying the response + body. A negative value means to flush immediately after + each write to the client. This configuration is ignored + when ReverseProxy recognizes a response as a streaming response; + for such responses, writes are flushed to the client immediately. + Default: 100ms' + type: string + type: object + scheme: + description: Scheme defines the scheme to use for the request + to the upstream Kubernetes Service. It defaults to https when + Kubernetes Service port is 443, http otherwise. + type: string + serversTransport: + description: ServersTransport defines the name of ServersTransport + resource to use. It allows to configure the transport between + Traefik and your servers. Can only be used on a Kubernetes Service. + type: string + sticky: + description: 'Sticky defines the sticky sessions configuration. + More info: https://doc.traefik.io/traefik/v2.10/routing/services/#sticky-sessions' + properties: + cookie: + description: Cookie defines the sticky cookie configuration. + properties: + httpOnly: + description: HTTPOnly defines whether the cookie can be + accessed by client-side APIs, such as JavaScript. + type: boolean + name: + description: Name defines the Cookie name. + type: string + sameSite: + description: 'SameSite defines the same site policy. More + info: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite' + type: string + secure: + description: Secure defines whether the cookie can only + be transmitted over an encrypted connection (i.e. HTTPS). + type: boolean + type: object + type: object + strategy: + description: Strategy defines the load balancing strategy between + the servers. RoundRobin is the only supported value at the moment. + type: string + weight: + description: Weight defines the weight and should only be specified + when Name references a TraefikService object (and to be precise, + one that embeds a Weighted Round Robin). + type: integer + required: + - name + type: object + weighted: + description: Weighted defines the Weighted Round Robin configuration. + properties: + services: + description: Services defines the list of Kubernetes Service and/or + TraefikService to load-balance, with weight. + items: + description: Service defines an upstream HTTP service to proxy + traffic to. + properties: + kind: + description: Kind defines the kind of the Service. + enum: + - Service + - TraefikService + type: string + name: + description: Name defines the name of the referenced Kubernetes + Service or TraefikService. The differentiation between + the two is specified in the Kind field. + type: string + namespace: + description: Namespace defines the namespace of the referenced + Kubernetes Service or TraefikService. + type: string + nativeLB: + description: NativeLB controls, when creating the load-balancer, + whether the LB's children are directly the pods IPs or + if the only child is the Kubernetes Service clusterIP. + The Kubernetes Service itself does load-balance to the + pods. By default, NativeLB is false. + type: boolean + passHostHeader: + description: PassHostHeader defines whether the client Host + header is forwarded to the upstream Kubernetes Service. + By default, passHostHeader is true. + type: boolean + port: + anyOf: + - type: integer + - type: string + description: Port defines the port of a Kubernetes Service. + This can be a reference to a named port. + x-kubernetes-int-or-string: true + responseForwarding: + description: ResponseForwarding defines how Traefik forwards + the response from the upstream Kubernetes Service to the + client. + properties: + flushInterval: + description: 'FlushInterval defines the interval, in + milliseconds, in between flushes to the client while + copying the response body. A negative value means + to flush immediately after each write to the client. + This configuration is ignored when ReverseProxy recognizes + a response as a streaming response; for such responses, + writes are flushed to the client immediately. Default: + 100ms' + type: string + type: object + scheme: + description: Scheme defines the scheme to use for the request + to the upstream Kubernetes Service. It defaults to https + when Kubernetes Service port is 443, http otherwise. + type: string + serversTransport: + description: ServersTransport defines the name of ServersTransport + resource to use. It allows to configure the transport + between Traefik and your servers. Can only be used on + a Kubernetes Service. + type: string + sticky: + description: 'Sticky defines the sticky sessions configuration. + More info: https://doc.traefik.io/traefik/v2.10/routing/services/#sticky-sessions' + properties: + cookie: + description: Cookie defines the sticky cookie configuration. + properties: + httpOnly: + description: HTTPOnly defines whether the cookie + can be accessed by client-side APIs, such as JavaScript. + type: boolean + name: + description: Name defines the Cookie name. + type: string + sameSite: + description: 'SameSite defines the same site policy. + More info: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite' + type: string + secure: + description: Secure defines whether the cookie can + only be transmitted over an encrypted connection + (i.e. HTTPS). + type: boolean + type: object + type: object + strategy: + description: Strategy defines the load balancing strategy + between the servers. RoundRobin is the only supported + value at the moment. + type: string + weight: + description: Weight defines the weight and should only be + specified when Name references a TraefikService object + (and to be precise, one that embeds a Weighted Round Robin). + type: integer + required: + - name + type: object + type: array + sticky: + description: 'Sticky defines whether sticky sessions are enabled. + More info: https://doc.traefik.io/traefik/v2.10/routing/providers/kubernetes-crd/#stickiness-and-load-balancing' + properties: + cookie: + description: Cookie defines the sticky cookie configuration. + properties: + httpOnly: + description: HTTPOnly defines whether the cookie can be + accessed by client-side APIs, such as JavaScript. + type: boolean + name: + description: Name defines the Cookie name. + type: string + sameSite: + description: 'SameSite defines the same site policy. More + info: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite' + type: string + secure: + description: Secure defines whether the cookie can only + be transmitted over an encrypted connection (i.e. HTTPS). + type: boolean + type: object + type: object + type: object + type: object + required: + - metadata + - spec + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/enterprise/traefik/25.1.17/ix_values.yaml b/enterprise/traefik/25.1.17/ix_values.yaml new file mode 100644 index 00000000000..46a03ed60a1 --- /dev/null +++ b/enterprise/traefik/25.1.17/ix_values.yaml @@ -0,0 +1,441 @@ +image: + repository: tccr.io/tccr/traefik + tag: v2.10.7@sha256:ec52218709cf13a13803529896292701329b078aa35ee0ff0eecd94b5d77a9dd + pullPolicy: IfNotPresent +manifestManager: + enabled: true +workload: + main: + replicas: 2 + strategy: RollingUpdate + podSpec: + containers: + main: + args: [] + probes: + # -- Liveness probe configuration + # @default -- See below + liveness: + # -- sets the probe type when not using a custom probe + # @default -- "TCP" + type: tcp + # -- If a HTTP probe is used (default for HTTP/HTTPS services) this path is used + # @default -- "/" + # path: "/ping" + # -- Readiness probe configuration + # @default -- See below + readiness: + # -- sets the probe type when not using a custom probe + # @default -- "TCP" + type: tcp + # -- If a HTTP probe is used (default for HTTP/HTTPS services) this path is used + # @default -- "/" + # path: "/ping" + # -- Startup probe configuration + # @default -- See below + startup: + # -- sets the probe type when not using a custom probe + # @default -- "TCP" + type: tcp + # -- If a HTTP probe is used (default for HTTP/HTTPS services) this path is used + # @default -- "/" + # path: "/ping" +# -- Options for all pods +# Can be overruled per pod +podOptions: + automountServiceAccountToken: true +operator: + register: true +# -- Use ingressClass. Ignored if Traefik version < 2.3 / kubernetes < 1.18.x +ingressClass: + # true is not unit-testable yet, pending https://github.com/rancher/helm-unittest/pull/12 + enabled: false + isDefaultClass: false + # Use to force a networking.k8s.io API Version for certain CI/CD applications. E.g. "v1beta1" + fallbackApiVersion: "" +# -- Create an IngressRoute for the dashboard +ingressRoute: + dashboard: + enabled: true + # Additional ingressRoute annotations (e.g. for kubernetes.io/ingress.class) + annotations: {} + # Additional ingressRoute labels (e.g. for filtering IngressRoute by custom labels) + labels: {} +# +# -- Configure providers +providers: + kubernetesCRD: + enabled: true + namespaces: [] + # - "default" + kubernetesIngress: + enabled: true + # labelSelector: environment=production,method=traefik + namespaces: [] + # - "default" + # IP used for Kubernetes Ingress endpoints + publishedService: + enabled: true + # Published Kubernetes Service to copy status from. Format: namespace/servicename + # By default this Traefik service + # pathOverride: "" +# -- Logs +# https://docs.traefik.io/observability/logs/ +logs: + # Traefik logs concern everything that happens to Traefik itself (startup, configuration, events, shutdown, and so on). + general: + # By default, the level is set to ERROR. Alternative logging levels are DEBUG, PANIC, FATAL, ERROR, WARN, and INFO. + level: ERROR + # -- Set the format of General Logs to be either Common Log Format or JSON. For more information: https://doc.traefik.io/traefik/observability/logs/#format + format: common + access: + # To enable access logs + enabled: false + # To write the logs in an asynchronous fashion, specify a bufferingSize option. + # This option represents the number of log lines Traefik will keep in memory before writing + # them to the selected output. In some cases, this option can greatly help performances. + # bufferingSize: 100 + # Filtering https://docs.traefik.io/observability/access-logs/#filtering + filters: {} + # statuscodes: "200,300-302" + # retryattempts: true + # minduration: 10ms + # Fields + # https://docs.traefik.io/observability/access-logs/#limiting-the-fieldsincluding-headers + fields: + general: + defaultmode: keep + names: {} + # Examples: + # ClientUsername: drop + headers: + defaultmode: drop + names: {} + # Examples: + # User-Agent: redact + # Authorization: drop + # Content-Type: keep + # -- Set the format of Access Logs to be either Common Log Format or JSON. For more information: https://doc.traefik.io/traefik/observability/access-logs/#format + format: common +metrics: + main: + enabled: false + type: servicemonitor + endpoints: + - port: metrics + path: /metrics + targetSelector: metrics +globalArguments: + - "--global.checknewversion" +## +# -- Additional arguments to be passed at Traefik's binary +# All available options available on https://docs.traefik.io/reference/static-configuration/cli/ +## Use curly braces to pass values: `helm install --set="additionalArguments={--providers.kubernetesingress.ingressclass=traefik-internal,--log.level=DEBUG}"` +additionalArguments: + - "--serverstransport.insecureskipverify=true" + - "--providers.kubernetesingress.allowexternalnameservices=true" + +# -- Default clusterCertificate generated by clusterissuer +defaultCertificate: "" + +# -- Add custom DNSStore objects +tlsStore: {} + +# -- TLS Options to be created as TLSOption CRDs +# https://doc.traefik.io/tccr.io/truecharts/https/tls/#tls-options +# Example: +tlsOptions: + default: + sniStrict: false + minVersion: VersionTLS12 + curvePreferences: + - CurveP521 + - CurveP384 + cipherSuites: + - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 + - TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 + - TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305 + - TLS_AES_128_GCM_SHA256 + - TLS_AES_256_GCM_SHA384 + - TLS_CHACHA20_POLY1305_SHA256 +# -- Options for the main traefik service, where the entrypoints traffic comes from +# from. +service: + main: + type: LoadBalancer + ports: + main: + port: 9000 + targetPort: 9000 + protocol: http + # -- Forwarded Headers should never be enabled on Main entrypoint + forwardedHeaders: + enabled: false + # -- Proxy Protocol should never be enabled on Main entrypoint + proxyProtocol: + enabled: false + tcp: + enabled: true + type: LoadBalancer + ports: + web: + enabled: true + port: 80 + protocol: http + redirectTo: websecure + # Options: Empty, 0 (ingore), or positive int + # redirectPort: + # -- Configure (Forwarded Headers)[https://doc.traefik.io/traefik/routing/entrypoints/#forwarded-headers] Support + forwardedHeaders: + enabled: false + # -- List of trusted IP and CIDR references + trustedIPs: [] + # -- Trust all forwarded headers + insecureMode: false + # -- Configure (Proxy Protocol Headers)[https://doc.traefik.io/traefik/routing/entrypoints/#proxyprotocol] Support + proxyProtocol: + enabled: false + # -- Only IPs in trustedIPs will lead to remote client address replacement + trustedIPs: [] + # -- Trust every incoming connection + insecureMode: false + websecure: + enabled: true + port: 443 + protocol: https + # -- Configure (Forwarded Headers)[https://doc.traefik.io/traefik/routing/entrypoints/#forwarded-headers] Support + forwardedHeaders: + enabled: false + # -- List of trusted IP and CIDR references + trustedIPs: [] + # -- Trust all forwarded headers + insecureMode: false + # -- Configure (Proxy Protocol Headers)[https://doc.traefik.io/traefik/routing/entrypoints/#proxyprotocol] Support + proxyProtocol: + enabled: false + # -- Only IPs in trustedIPs will lead to remote client address replacement + trustedIPs: [] + # -- Trust every incoming connection + insecureMode: false + # tcpexample: + # enabled: true + # targetPort: 9443 + # protocol: tcp + # tls: + # enabled: false + # # this is the name of a TLSOption definition + # options: "" + # certResolver: "" + # domains: [] + # # - main: example.com + # # sans: + # # - foo.example.com + # # - bar.example.com + metrics: + enabled: true + type: ClusterIP + ports: + metrics: + enabled: true + port: 9180 + targetPort: 9180 + protocol: http + # -- Forwarded Headers should never be enabled on Metrics entrypoint + forwardedHeaders: + enabled: false + # -- Proxy Protocol should never be enabled on Metrics entrypoint + proxyProtocol: + enabled: false + # udp: + # enabled: false +# -- Whether Role Based Access Control objects like roles and rolebindings should be created +rbac: + main: + enabled: true + primary: true + clusterWide: true + rules: + - apiGroups: + - "" + resources: + - services + - endpoints + - secrets + verbs: + - get + - list + - watch + - apiGroups: + - extensions + - networking.k8s.io + resources: + - ingresses + - ingressclasses + verbs: + - get + - list + - watch + - apiGroups: + - extensions + - networking.k8s.io + resources: + - ingresses/status + verbs: + - update + - apiGroups: + - traefik.containo.us + - traefik.io + resources: + - middlewares + - middlewaretcps + - ingressroutes + - traefikservices + - ingressroutetcps + - ingressrouteudps + - tlsoptions + - tlsstores + - serverstransports + verbs: + - get + - list + - watch +# -- The service account the pods will use to interact with the Kubernetes API +serviceAccount: + main: + enabled: true + primary: true +# -- SCALE Middleware Handlers +middlewares: + basicAuth: [] + # - name: basicauthexample + # users: + # - username: testuser + # password: testpassword + forwardAuth: [] + # - name: forwardAuthexample + # address: https://auth.example.com/ + # authResponseHeaders: + # - X-Secret + # - X-Auth-User + # authRequestHeaders: + # - "Accept" + # - "X-CustomHeader" + # authResponseHeadersRegex: "^X-" + # trustForwardHeader: true + customRequestHeaders: [] + # - name: customRequestHeaderExample + # headers: + # - name: X-Custom-Header + # value: "foobar" + # - name: X-Header-To-Remove + # value: "" + customResponseHeaders: [] + # - name: customResponseHeaderExample + # headers: + # - name: X-Custom-Header + # value: "foobar" + # - name: X-Header-To-Remove + # value: "" + rewriteResponseHeaders: [] + # - name: rewriteResponseHeadersName + # headers: + # - name: "Location" + # regex: "^http://(.+)$" + # replacement: "https://$1" + # - name: "Date" + # regex: "^[^,]+,\\s*(.+)$" + # replacement: "$1" + customFrameOptionsValue: [] + # - name: customFrameOptionsValueExample + # value: "SAMEORIGIN" + buffering: [] + # - name: bufferingExample + # maxRequestBodyBytes: 1000000 + # memRequestBodyBytes: 1000000 + # maxResponseBodyBytes: 1000000 + # memResponseBodyBytes: 1000000 + # retryExpression: "IsNetworkError() && Attempts() < 2" + chain: [] + # - name: chainname + # middlewares: + # - name: compress + redirectScheme: [] + # - name: redirectSchemeName + # scheme: https + # permanent: true + rateLimit: [] + # - name: rateLimitName + # average: 300 + # burst: 200 + redirectRegex: [] + # - name: redirectRegexName + # regex: putregexhere + # replacement: replacementurlhere + # permanent: false + stripPrefixRegex: [] + # - name: stripPrefixRegexName + # regex: [] + ipWhiteList: [] + # - name: ipWhiteListName + # sourceRange: [] + # ipStrategy: + # depth: 2 + # excludedIPs: [] + themePark: [] + # - name: themeParkName + # -- Supported apps, lower case name + # -- https://docs.theme-park.dev/themes + # app: appnamehere + # -- Supported themes, lower case name + # -- https://docs.theme-park.dev/themes/APPNAMEHERE + # -- https://docs.theme-park.dev/community-themes + # theme: themenamehere + # -- https://theme-park.dev or a self hosted url + # baseUrl: https://theme-park.dev + # Sets X-Real-Ip with an IP from the X-Forwarded-For or + # Cf-Connecting-Ip (If from Cloudflare) + # Evaluation of those headers will go from last to first + realIP: [] + # - name: realIPName + # -- The real IP will be the first one that is + # -- not included in any of the CIDRs passed here + # excludedNetworks: + # - 1.1.1.1/24 + addPrefix: [] + # - name: addPrefixName + # prefix: "/foo" + geoBlock: [] + # -- https://github.com/PascalMinder/geoblock + # - name: geoBlockName + # allowLocalRequests: true + # logLocalRequests: false + # logAllowedRequests: false + # logApiRequests: false + # api: https://get.geojs.io/v1/ip/country/{ip} + # apiTimeoutMs: 500 + # cacheSize: 25 + # forceMonthlyUpdate: true + # allowUnknownCountries: false + # unknownCountryApiResponse: nil + # blackListMode: false + # countries: + # - RU + modsecurity: [] + # - name: modsecurityName + # modSecurityUrl: modSecurity container URL + # timeoutMillis: Configurated timeout + # maxBodySize: maxBodySize + ## Note: body of every request will be buffered in memory while the request is in-flight + ## (i.e.: during the security check and during the request processing by traefik and the backend), + ## so you may want to tune maxBodySize depending on how much RAM you have. +portalhook: + enabled: true +persistence: + plugins: + enabled: true + mountPath: "/plugins-storage" + type: emptyDir +portal: + open: + enabled: true + path: /dashboard/ diff --git a/enterprise/traefik/25.1.17/questions.yaml b/enterprise/traefik/25.1.17/questions.yaml new file mode 100644 index 00000000000..dd0609d91e2 --- /dev/null +++ b/enterprise/traefik/25.1.17/questions.yaml @@ -0,0 +1,3404 @@ +groups: + - name: Container Image + description: Image to be used for container + - name: General Settings + description: General Deployment Settings + - name: Workload Settings + description: Workload Settings + - 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: Backup Configuration + description: Configure Velero Backup Schedule + - name: Advanced + description: Advanced Configuration + - name: Postgresql + description: Postgresql + - name: Documentation + description: Documentation +portals: + open: + protocols: + - "$kubernetes-resource_configmap_tcportal-open_protocol" + host: + - "$kubernetes-resource_configmap_tcportal-open_host" + ports: + - "$kubernetes-resource_configmap_tcportal-open_port" + path: "$kubernetes-resource_configmap_tcportal-open_path" +questions: + - variable: global + group: General Settings + label: "Global Settings" + schema: + additional_attrs: true + type: dict + attrs: + - variable: stopAll + label: Stop All + description: "Stops All Running pods and hibernates cnpg" + schema: + type: boolean + default: false + - variable: workload + group: "Workload Settings" + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type (Advanced) + schema: + type: string + default: Deployment + enum: + - value: Deployment + description: Deployment + - value: DaemonSet + description: DaemonSet + - variable: replicas + label: Replicas (Advanced) + description: Set the number of Replicas + schema: + type: int + show_if: [["type", "!=", "DaemonSet"]] + default: 1 + - variable: podSpec + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: containers + label: Containers + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: Main Container + schema: + additional_attrs: true + type: dict + attrs: + - 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..." + 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: extraArgs + label: Extra Args + schema: + type: list + default: [] + items: + - variable: arg + label: Arg + schema: + type: string + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: command + label: Command + schema: + type: list + default: [] + items: + - variable: param + label: Param + schema: + type: string + - variable: TZ + label: Timezone + group: "General Settings" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: podOptions + group: "General Settings" + label: "Global Pod Options (Advanced)" + schema: + additional_attrs: true + type: dict + attrs: + - variable: expertPodOpts + label: "Expert - Pod Options" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + label: "Host Networking" + schema: + type: boolean + default: false + - variable: dnsConfig + label: "DNS Configuration" + schema: + type: dict + additional_attrs: true + attrs: + - variable: options + label: "Options" + schema: + type: list + default: [{"name": "ndots", "value": "1"}] + items: + - variable: optionsEntry + label: "Option Entry" + schema: + type: dict + additional_attrs: true + attrs: + - variable: name + label: "Name" + schema: + type: string + required: true + - variable: value + label: "Value" + schema: + type: string + - variable: nameservers + label: "Nameservers" + schema: + type: list + default: [] + items: + - variable: nsEntry + label: "Nameserver Entry" + schema: + type: string + required: true + - variable: searches + label: "Searches" + schema: + type: list + default: [] + items: + - variable: searchEntry + label: "Search Entry" + schema: + type: string + required: true + + - variable: imagePullSecretList + group: "General Settings" + label: "Image Pull Secrets" + schema: + type: list + default: [] + items: + - variable: pullsecretentry + label: "Pull Secret" + schema: + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: true + - variable: data + label: Data + schema: + type: dict + additional_attrs: true + attrs: + - variable: registry + label: "Registry" + schema: + type: string + required: true + default: "https://index.docker.io/v1/" + - variable: username + label: "Username" + schema: + type: string + required: true + default: "" + - variable: password + label: "Password" + schema: + type: string + required: true + private: true + default: "" + - variable: email + label: "Email" + schema: + type: string + required: true + default: "" + - variable: expertIngressClass + label: Expert Mode + group: App Configuration + description: | + Expert Mode contains settings like:
+ - IngressClass
+ schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: ingressClass + label: "ingressClass" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: "Enable" + description: "When enabled, ingressClass will match the entered name of this app" + schema: + type: boolean + default: false + - variable: isDefaultClass + label: "isDefaultClass" + schema: + type: boolean + show_if: [["enabled", "=", true]] + default: false + - variable: logs + label: "Logs" + group: "App Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: general + label: "General Logs" + schema: + additional_attrs: true + type: dict + attrs: + - variable: level + label: "Log Level" + schema: + type: string + default: "ERROR" + enum: + - value: "INFO" + description: "Info" + - value: "WARN" + description: "Warnings" + - value: "ERROR" + description: "Errors" + - value: "FATAL" + description: "Fatal Errors" + - value: "PANIC" + description: "Panics" + - value: "DEBUG" + description: "Debug" + - variable: format + label: "General Log format" + schema: + type: string + default: "common" + enum: + - value: "common" + description: "Common Log Format" + - value: "json" + description: "JSON" + - variable: access + label: "Access Logs" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: "Enable" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabledFilters + label: "Enable Filters" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: filters + label: "Filters" + schema: + additional_attrs: true + type: dict + attrs: + - variable: statuscodes + label: "Status codes" + schema: + type: string + default: "200,300-302" + - variable: retryattempts + label: "retryattempts" + schema: + type: boolean + default: true + - variable: minduration + label: "minduration" + schema: + type: string + default: "10ms" + - variable: fields + label: "Fields" + schema: + additional_attrs: true + type: dict + attrs: + - variable: general + label: "General" + schema: + additional_attrs: true + type: dict + attrs: + - variable: defaultmode + label: "Default Mode" + schema: + type: string + default: "keep" + enum: + - value: "keep" + description: "Keep" + - value: "drop" + description: "Drop" + - variable: headers + label: "Headers" + schema: + additional_attrs: true + type: dict + attrs: + - variable: defaultmode + label: "Default Mode" + schema: + type: string + default: "drop" + enum: + - value: "keep" + description: "Keep" + - value: "drop" + description: "Drop" + - variable: format + label: "Access Log format" + schema: + type: string + default: "common" + enum: + - value: "common" + description: "Common Log Format" + - value: "json" + description: "JSON" + - variable: middlewares + label: "" + group: "Middlewares" + schema: + additional_attrs: true + type: dict + attrs: + - variable: basicAuth + label: basicAuth + schema: + type: list + default: [] + items: + - variable: basicAuthEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + default: "" + - variable: users + label: Users + schema: + type: list + default: [] + items: + - variable: usersEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: username + label: Username + schema: + type: string + required: true + default: "" + - variable: password + label: Password + schema: + type: string + required: true + default: "" + - variable: forwardAuth + label: forwardAuth + schema: + type: list + default: [] + items: + - variable: basicAuthEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + default: "" + - variable: address + label: Address + schema: + type: string + required: true + default: "" + - variable: trustForwardHeader + label: trustForwardHeader + schema: + type: boolean + default: false + - variable: tls + label: TLS + schema: + additional_attrs: true + type: dict + attrs: + - variable: insecureSkipVerify + label: insecureSkipVerify (expert) + description: >- + This disables all TLS certificate validation on communications with the authentication endpoint. + This could be a security risk and should only be used if you know what you are doing. + schema: + type: boolean + default: false + - variable: authResponseHeadersRegex + label: authResponseHeadersRegex + schema: + type: string + default: "" + - variable: authResponseHeaders + label: authResponseHeaders + schema: + type: list + default: [] + items: + - variable: authResponseHeadersEntry + label: "" + schema: + type: string + default: "" + - variable: authRequestHeaders + label: authRequestHeaders + schema: + type: list + default: [] + items: + - variable: authRequestHeadersEntry + label: "" + schema: + type: string + default: "" + - variable: buffering + label: Buffering + schema: + type: list + default: [] + items: + - variable: bufferingEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: maxRequestBodyBytes + label: Max Request Body Bytes + description: Leave empty and it won't be set + schema: + type: string + valid_chars: '^[0-9]*$' + default: "" + - variable: memRequestBodyBytes + label: Mem Request Body Bytes + description: Leave empty and it won't be set + schema: + type: string + valid_chars: '^[0-9]*$' + default: "" + - variable: maxResponseBodyBytes + label: Max Response Body Bytes + description: Leave empty and it won't be set + schema: + type: string + valid_chars: '^[0-9]*$' + default: "" + - variable: memResponseBodyBytes + label: Mem Response Body Bytes + description: Leave empty and it won't be set + schema: + type: string + valid_chars: '^[0-9]*$' + default: "" + - variable: retryExpression + label: Retry Expression + description: Leave empty and it won't be set + schema: + type: string + default: "" + - variable: customRequestHeaders + label: Custom Request Headers + schema: + type: list + default: [] + items: + - variable: customRequestHeadersEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: headers + label: Headers to Add + schema: + type: list + default: [] + items: + - variable: headersEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Header Name + description: Name of custom header to be added to requests, eg. X-Custom-Header + schema: + valid_chars: ^[a-zA-Z0-9_\-]*$ + type: string + required: true + default: "" + - variable: value + label: Header Value + description: The value of the header. If the value is empty, the header will be removed. + schema: + type: string + default: "" + - variable: customResponseHeaders + label: Custom Response Headers + schema: + type: list + default: [] + items: + - variable: customResponseHeadersEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: headers + label: Headers to Add + schema: + type: list + default: [] + items: + - variable: headersEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Header Name + description: Name of custom header to be added to responses, eg. X-Custom-Header + schema: + valid_chars: ^[a-zA-Z0-9_\-]*$ + type: string + required: true + default: "" + - variable: value + label: Header Value + description: The value of the header. If the value is empty, the header will be removed. + schema: + type: string + default: "" + - variable: rewriteResponseHeaders + label: Rewrite Response Headers + schema: + type: list + default: [] + items: + - variable: rewriteResponseHeadersEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: headers + label: Headers To Rewrite + schema: + type: list + default: [] + items: + - variable: headersEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Header Name + description: Name of a header to modified in responses, eg. X-Custom-Header + schema: + valid_chars: ^[a-zA-Z0-9_\-]*$ + type: string + required: true + default: "" + - variable: regex + label: Regex + description: The value of the header to match. Accepts regex expression. + schema: + type: string + default: "" + - variable: replacement + label: Replacement Regex + description: The new value of the header. Accepts regex expression. + schema: + type: string + default: "" + - variable: customFrameOptionsValue + label: Custom Frame Options Value + schema: + type: list + default: [] + items: + - variable: customFrameOptionsValueEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: X-Frame-Options Header Value + description: The value of the header. + schema: + type: string + required: true + default: "" + - variable: chain + label: Chain + schema: + type: list + default: [] + items: + - variable: chainEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: middlewares + label: Middlewares to Chain + schema: + type: list + default: [] + items: + - variable: name + label: Name + schema: + type: string + required: true + default: "" + - variable: redirectScheme + label: redirectScheme + schema: + type: list + default: [] + items: + - variable: redirectSchemeEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: scheme + label: Scheme + schema: + type: string + required: true + default: https + enum: + - value: https + description: https + - value: http + description: http + - variable: permanent + label: Permanent + schema: + type: boolean + default: false + - variable: rateLimit + label: rateLimit + schema: + type: list + default: [] + items: + - variable: rateLimitEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: average + label: Average + schema: + type: int + required: true + default: 300 + - variable: burst + label: Burst + schema: + type: int + required: true + default: 200 + - variable: redirectRegex + label: redirectRegex + schema: + type: list + default: [] + items: + - variable: redirectRegexEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: regex + label: Regex + schema: + type: string + required: true + default: "" + - variable: replacement + label: Replacement + schema: + type: string + required: true + default: "" + - variable: permanent + label: Permanent + schema: + type: boolean + default: false + - variable: stripPrefixRegex + label: stripPrefixRegex + schema: + type: list + default: [] + items: + - variable: stripPrefixRegexEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: regex + label: Regex + schema: + type: list + default: [] + items: + - variable: regexEntry + label: Regex + schema: + type: string + required: true + default: "" + - variable: ipWhiteList + label: ipWhiteList + schema: + type: list + default: [] + items: + - variable: ipWhiteListEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + default: "" + - variable: sourceRange + label: Source Range + schema: + type: list + default: [] + items: + - variable: sourceRangeEntry + label: "" + schema: + type: string + required: true + default: "" + - variable: ipStrategy + label: IP Strategy + schema: + additional_attrs: true + type: dict + attrs: + - variable: depth + label: Depth + schema: + type: int + required: true + - variable: excludedIPs + label: Excluded IPs + schema: + type: list + default: [] + items: + - variable: excludedIPsEntry + label: "" + schema: + type: string + required: true + default: "" + - variable: themePark + label: theme.park + schema: + type: list + default: [] + items: + - variable: themeParkEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: This is a 3rd party plugin and not maintained by TrueCharts, + for more information go to traefik-themepark + schema: + type: string + required: true + default: "" + - variable: appName + label: App Name + description: Lower case, name of the app to be themed. +
Go to https://docs.theme-park.dev/themes/ to see supported apps. + schema: + type: string + required: true + default: "" + - variable: themeName + label: Theme Name + description: Lower case, name of the theme to be applied. +
Go to https://docs.theme-park.dev/theme-options/ to see supported themes. + schema: + type: string + required: true + default: "" + - variable: baseUrl + label: Base URL + description: Replace `https://theme-park.dev` URL for self-hosting reference. + schema: + type: string + required: true + default: https://theme-park.dev + - variable: addons + label: Addons + schema: + type: list + default: [] + items: + - variable: addonEntry + label: Addon + description: Currently only supports 'darker' and '4k-logo' for *arr apps. +
Go to https://docs.theme-park.dev/themes/addons/ for Addon information. +
Go to https://github.com/packruler/traefik-themepark for more context on plugin + schema: + type: string + required: true + default: "" + - variable: realIP + label: Real IP + schema: + type: list + default: [] + items: + - variable: realIPEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + default: "" + - variable: excludedNetworks + label: Excluded Networks + schema: + type: list + default: [] + items: + - variable: excludedNetEntry + label: Excluded Network Entry + description: Network to exclude setting it to X-Real-Ip + schema: + type: string + required: true + default: "" + - variable: geoBlock + label: GeoBlock + schema: + type: list + default: [] + items: + - variable: geoBlockEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: This is a 3rd party plugin and not maintained by TrueCharts, + for more information go to geoblock + schema: + type: string + required: true + default: "" + - variable: allowLocalRequests + label: Allow Local Requests + description: If set to true, will not block request from Private IP Ranges + schema: + type: boolean + default: true + - variable: logLocalRequests + label: Log Local Requests + description: If set to true, will log every connection from any IP in the private IP range + schema: + type: boolean + default: false + - variable: logAllowedRequests + label: Log Allowed Requests + description: If set to true, will show a log message with the IP and the country of origin if a request is allowed. + schema: + type: boolean + default: false + - variable: logApiRequests + label: Log API Requests + description: If set to true, will show a log message for every API hit. + schema: + type: boolean + default: false + - variable: api + label: API + description: Defines the API URL for the IP to Country resolution. The IP to fetch can be added with {ip} to the URL. + schema: + type: string + required: true + default: https://get.geojs.io/v1/ip/country/{ip} + - variable: apiTimeoutMs + label: API Timeout in ms + description: Timeout for the call to the api uri. + schema: + type: int + required: true + default: 500 + - variable: cacheSize + label: Cache Size + description: Defines the max size of the LRU (least recently used) cache. + schema: + type: int + required: true + default: 25 + - variable: forceMonthlyUpdate + label: Force Monthly Update + description: Even if an IP stays in the cache for a period of a month (about 30 x 24 hours), it must be fetch again after a month. + schema: + type: boolean + default: true + - variable: allowUnknownCountries + label: Allow Unknown Countries + description: Some IP addresses have no country associated with them. If this option is set to true, all IPs with no associated country are also allowed. + schema: + type: boolean + default: false + - variable: unknownCountryApiResponse + label: Unknown Countries API Response + description: The API uri can be customized. This options allows to customize the response string of the API when a IP with no associated country is requested. + schema: + type: string + required: true + default: nil + - variable: blackListMode + label: Blacklist Mode + description: When set to true the filter logic is inverted, i.e. requests originating from countries listed in the countries list are blocked. + schema: + type: boolean + default: false + - variable: countries + description: Country codes (2 characters) from which connections to the service should be allowed or blocked, based on the mode. + label: Countries + schema: + type: list + default: [] + items: + - variable: countryEntry + label: Country + description: Country codes (2 characters) from which connections to the service should be allowed or blocked, based on the mode. + schema: + type: string + required: true + # Allow only 2 Characters + valid_chars: '^[a-zA-Z]{2}$' + default: "" + - variable: addPrefix + label: Add Prefix + schema: + type: list + default: [] + items: + - variable: addPrefixEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + default: "" + - variable: prefix + label: Prefix + schema: + type: string + required: true + default: "" + - variable: modsecurity + label: modsecurity + schema: + type: list + default: [] + items: + - variable: modsecurityEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: This is a 3rd party plugin and not maintained by TrueCharts, + for more information go to traefik-modsecurity-plugin + schema: + type: string + required: true + default: "" + - variable: modSecurityUrl + label: ModSecurity Url + description: It's the URL for the owasp/modsecurity container. + schema: + type: string + required: true + default: "https://someurl" + - variable: timeoutMillis + label: timeout Millis + description: timeout in milliseconds for the http client to talk with modsecurity container. ( + schema: + type: int + required: true + default: 2 + - variable: maxBodySize + label: maxBody Size + description: it's the maximum limit for requests body size. Requests exceeding this value will be rejected using HTTP 413 Request Entity Too Large. Zero means "use default value". + schema: + type: int + required: true + default: 0 + - variable: service + group: "Networking and Services" + label: "Configure Service Entrypoint" + 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) + - 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: ports + label: "Service's Port(s) Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "Main Entrypoint Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: "Entrypoints Port" + schema: + type: int + default: 9000 + required: true + - variable: tcp + label: "TCP Service" + description: "The tcp Entrypoint 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) + - 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: ports + label: "Service's Port(s) Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: web + label: "web Entrypoint Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: "Entrypoints Port" + schema: + type: int + default: 80 + required: true + - variable: advanced + label: Show Advanced Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: redirectPort + label: "Redirect to Port" + schema: + type: int + - variable: redirectTo + label: "Redirect to Entrypoint" + schema: + type: string + default: "websecure" + - variable: forwardedHeaders + label: Accept Forwarded Headers + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: trustedIPs + label: Trusted IPs + description: Trust Forwarded Headers from specific IPs. + schema: + type: list + default: [] + items: + - variable: trustedIPsEntry + label: "" + schema: + type: string + required: true + default: "" + - variable: insecureMode + label: Insecure Mode + description: Always Trust Forwarded Headers + schema: + type: boolean + default: false + - variable: proxyProtocol + label: Accept Proxy Protocol connections + description: If Proxy Protocol header parsing is enabled for the entry point, this entry point can accept connections with or without Proxy Protocol headers. + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: trustedIPs + label: Trusted IPs + description: Only IPs in trustedIPs will lead to remote client address replacement + schema: + type: list + default: [] + items: + - variable: trustedIPsEntry + label: "" + schema: + type: string + required: true + default: "" + - variable: insecureMode + label: Insecure Mode + description: Trust every incoming connection + schema: + type: boolean + default: false + - variable: websecure + label: "websecure Entrypoints Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: "Entrypoints Port" + schema: + type: int + default: 443 + required: true + - variable: advanced + label: Show Advanced Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: redirectPort + label: "Redirect to Port" + schema: + type: int + - variable: redirectTo + label: "Redirect to Entrypoint" + schema: + type: string + - variable: forwardedHeaders + label: Accept Forwarded Headers + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: trustedIPs + label: Trusted IPs + description: Trust Forwarded Headers from specific IPs. + schema: + type: list + default: [] + items: + - variable: trustedIPsEntry + label: "" + schema: + type: string + required: true + default: "" + - variable: insecureMode + label: Insecure Mode + description: Always Trust Forwarded Headers + schema: + type: boolean + default: false + - variable: proxyProtocol + label: Accept Proxy Protocol connections + description: If Proxy Protocol header parsing is enabled for the entry point, this entry point can accept connections with or without Proxy Protocol headers. + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: trustedIPs + label: Trusted IPs + description: Only IPs in trustedIPs will lead to remote client address replacement + schema: + type: list + default: [] + items: + - variable: trustedIPsEntry + label: "" + schema: + type: string + required: true + default: "" + - variable: insecureMode + label: Insecure Mode + description: Trust every incoming connection + schema: + type: boolean + default: false + - variable: tls + label: "websecure Entrypoints Configuration" + schema: + additional_attrs: true + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + hidden: true + - variable: portsList + label: "Additional TCP Entrypoints" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom Entrypoints" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Entrypoints Name" + schema: + type: string + default: "" + - variable: protocol + label: "Entrypoints Type" + schema: + type: string + default: "tcp" + enum: + - value: http + description: "HTTP" + - value: "https" + description: "HTTPS" + - value: tcp + description: "TCP" + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: tls + label: "websecure Entrypoints Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + - variable: redirectPort + label: "Redirect to Port" + schema: + type: int + - variable: redirectTo + label: "Redirect to Entrypoint" + schema: + type: string + - variable: forwardedHeaders + label: Accept Forwarded Headers + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: trustedIPs + label: Trusted IPs + description: Trust Forwarded Headers from specific IPs. + schema: + type: list + default: [] + items: + - variable: trustedIPsEntry + label: "" + schema: + type: string + required: true + default: "" + - variable: insecureMode + label: Insecure Mode + description: Always Trust Forwarded Headers + schema: + type: boolean + default: false + - variable: proxyProtocol + label: Accept Proxy Protocol connections + description: If Proxy Protocol header parsing is enabled for the entry point, this entry point can accept connections with or without Proxy Protocol headers. + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: trustedIPs + label: Trusted IPs + description: Only IPs in trustedIPs will lead to remote client address replacement + schema: + type: list + default: [] + items: + - variable: trustedIPsEntry + label: "" + schema: + type: string + required: true + default: "" + - variable: insecureMode + label: Insecure Mode + description: Trust every incoming connection + schema: + type: boolean + default: false + - 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: [{path: "/", pathType: "Prefix"}] + 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: integrations + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: traefik + label: Traefik + description: Connect ingress with Traefik + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: allowCors + label: 'Allow Cross Origin Requests (advanced)' + schema: + type: boolean + default: false + show_if: [["enabled", "=", true]] + - variable: entrypoints + label: Entrypoints + schema: + type: list + default: ["websecure"] + show_if: [["enabled", "=", true]] + items: + - variable: entrypoint + label: Entrypoint + schema: + type: string + - variable: middlewares + label: Middlewares + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: middleware + label: Middleware + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true + - variable: namespace + label: 'namespace (optional)' + schema: + type: string + default: "" + - variable: certManager + label: certManager + description: Connect ingress with certManager + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: certificateIssuer + label: certificateIssuer + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: homepage + label: Homepage + description: Connect ingress with Homepage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: name + label: Name (Optional) + description: Defaults to chart name + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: description + label: Description (Optional) + description: Defaults to chart description + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: icon + label: Icon (Optional) + description: Defaults to chart icon + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: group + label: Group + schema: + type: string + required: true + default: "default" + show_if: [["enabled", "=", true]] + - variable: widget + label: Widget Settings + schema: + type: dict + additional_attrs: true + show_if: [["enabled", "=", true]] + attrs: + - variable: enabled + label: Enable Widget + description: When disabled all widget annotations are skipped. + schema: + type: boolean + default: true + - variable: custom + label: Options + schema: + type: dict + additional_attrs: true + attrs: + - variable: key + label: API-key (key) + schema: + type: string + default: "" + - variable: customkv + label: Custom Options + schema: + type: list + default: [] + items: + - variable: option + label: Option + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + default: "" + required: true + - variable: value + label: Value + schema: + type: string + default: "" + required: true + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + - variable: ingressClassName + label: (Advanced/Optional) IngressClass Name + schema: + type: string + show_if: [["advanced", "=", true]] + default: "" + - variable: tls + label: TLS-Settings + schema: + type: list + show_if: [["advanced", "=", true]] + 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: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: 'Use Custom Certificate Secret (Advanced)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: string + default: "" + - variable: scaleCert + label: 'Use TrueNAS SCALE Certificate (Deprecated)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - 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: 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: overrideService + 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: [] + show_if: [["certificateIssuer", "=", ""]] + 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: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your Cert-Manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: scaleCert + label: Use TrueNAS SCALE Certificate (Deprecated) + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: Use Custom Secret (Advanced) + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: integrations + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: traefik + label: Traefik + description: Connect ingress with Traefik + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: allowCors + label: "Allow Cross Origin Requests" + schema: + type: boolean + default: false + show_if: [["enabled", "=", true]] + - variable: entrypoints + label: Entrypoints + schema: + type: list + default: ["websecure"] + show_if: [["enabled", "=", true]] + items: + - variable: entrypoint + label: Entrypoint + schema: + type: string + - variable: middlewares + label: Middlewares + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: middleware + label: Middleware + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true + - variable: namespace + label: namespace + schema: + type: string + default: "" + - variable: certManager + label: certManager + description: Connect ingress with certManager + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: certificateIssuer + label: certificateIssuer + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: homepage + label: Homepage + description: Connect ingress with Homepage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: name + label: Name + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: description + label: Description + description: defaults to chart description + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: group + label: Group + schema: + type: string + required: true + default: "default" + show_if: [["enabled", "=", true]] + - variable: securityContext + group: Security and Permissions + label: Security Context + schema: + additional_attrs: true + type: dict + attrs: + - variable: container + label: Container + schema: + additional_attrs: true + type: dict + attrs: + # Settings from questions.yaml get appended here on a per-app basis + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: "The groupID of the user running the application" + schema: + type: int + default: 568 + # Settings from questions.yaml get appended here on a per-app basis + - 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 + show_if: [["runAsUser", "=", 0]] + 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: "0022" + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: pod + label: Pod + schema: + additional_attrs: true + type: dict + attrs: + - 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 + # Settings from questions.yaml get appended here on a per-app basis + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: resources + group: Resources and Devices + label: "Resource Limits" + 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/manual/SCALE/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/manual/SCALE/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 + hidden: true + attrs: + - variable: cpu + label: CPU + description: "1000m means 1 hyperthread. Detailed info: https://truecharts.org/manual/SCALE/validation" + schema: + type: string + default: 10m + hidden: true + 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/manual/SCALE/validation" + schema: + type: string + default: 50Mi + hidden: true + 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: device + 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" + - variable: scaleGPU + label: GPU Configuration + group: Resources and Devices + schema: + type: list + default: [] + items: + - variable: scaleGPUEntry + label: GPU + schema: + additional_attrs: true + type: dict + attrs: + # Specify GPU configuration + - variable: gpu + label: Select GPU + schema: + additional_attrs: true + type: dict + $ref: + - "definitions/gpuConfiguration" + attrs: [] + - variable: workaround + label: "Workaround" + schema: + type: string + default: workaround + hidden: true + - variable: metrics + group: Metrics + label: Prometheus Metrics + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: Main Metrics + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + description: Enable Prometheus Metrics + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: prometheusRule + label: PrometheusRule + description: Enable and configure Prometheus Rules for the App. + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + description: Enable Prometheus Metrics + schema: + type: boolean + default: false + # TODO: Rule List section +# - 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: 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: 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: ingress + label: "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: [{path: "/", pathType: "Prefix"}] + 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: integrations + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: traefik + label: Traefik + description: Connect ingress with Traefik + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: allowCors + label: 'Allow Cross Origin Requests (advanced)' + schema: + type: boolean + default: false + show_if: [["enabled", "=", true]] + - variable: entrypoints + label: Entrypoints + schema: + type: list + default: ["websecure"] + show_if: [["enabled", "=", true]] + items: + - variable: entrypoint + label: Entrypoint + schema: + type: string + - variable: middlewares + label: Middlewares + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: middleware + label: Middleware + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true + - variable: namespace + label: 'namespace (optional)' + schema: + type: string + default: "" + - variable: certManager + label: certManager + description: Connect ingress with certManager + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: certificateIssuer + label: certificateIssuer + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + - variable: ingressClassName + label: (Advanced/Optional) IngressClass Name + schema: + type: string + show_if: [["advanced", "=", true]] + default: "" + - variable: tls + label: TLS-Settings + schema: + type: list + show_if: [["advanced", "=", true]] + 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: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: 'Use Custom Certificate Secret (Advanced)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: string + default: "" + - variable: scaleCert + label: 'Use TrueNAS SCALE Certificate (Deprecated)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - 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: 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: gluetun + description: Gluetun + - value: tailscale + description: Tailscale + - value: openvpn + description: OpenVPN (Deprecated) + - value: wireguard + description: Wireguard (Deprecated) + - variable: openvpn + label: OpenVPN Settings + schema: + additional_attrs: true + 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 + show_if: [["username", "!=", ""]] + default: "" + required: true + - variable: tailscale + label: Tailscale Settings + schema: + additional_attrs: true + 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: auth_once + label: Auth Once + description: Only attempt to log in if not already logged in. + schema: + type: boolean + default: true + - 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: The address on which to listen for SOCKS5 proxying into the tailscale net. + schema: + type: string + default: "" + - variable: outbound_http_proxy_listen + label: Outbound HTTP Proxy Listen + description: The address on which to listen for HTTP proxying into the tailscale net. + 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: string + show_if: [["type", "!=", "disabled"]] + 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 + max_length: 10240 + - 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 + - variable: warning + group: Documentation + label: 'WARNING: If installed, be sure to move the TrueNAS GUI to another port (not 80 or 443).' + description: 'See:
https://truecharts.org/charts/enterprise/traefik/how-to for more info.' + schema: + additional_attrs: true + type: dict + attrs: + - variable: warningconfim + label: I am aware that I will brick my system, if I did not follow the instructions. + schema: + type: boolean + default: true + required: true diff --git a/enterprise/velero/3.2.7/templates/NOTES.txt b/enterprise/traefik/25.1.17/templates/NOTES.txt similarity index 100% rename from enterprise/velero/3.2.7/templates/NOTES.txt rename to enterprise/traefik/25.1.17/templates/NOTES.txt diff --git a/enterprise/traefik/25.1.17/templates/_args.tpl b/enterprise/traefik/25.1.17/templates/_args.tpl new file mode 100644 index 00000000000..06e39a46890 --- /dev/null +++ b/enterprise/traefik/25.1.17/templates/_args.tpl @@ -0,0 +1,194 @@ +{{/* Define the args */}} +{{- define "traefik.args" -}} +args: + {{/* merge all ports */}} + {{- $ports := dict }} + {{- range $.Values.service }} + {{- range $name, $value := .ports }} + {{- $_ := set $ports $name $value }} + {{- end }} + {{- end }} + {{/* start of actual arguments */}} + {{- with .Values.globalArguments }} + {{- range . }} + - {{ . | quote }} + {{- end }} + {{- end }} + {{- range $name, $config := $ports }} + {{- if $config }} + {{- if or ( eq $config.protocol "http" ) ( eq $config.protocol "https" ) ( eq $config.protocol "tcp" ) }} + {{- $_ := set $config "protocol" "tcp" }} + {{- end }} + - "--entryPoints.{{$name}}.address=:{{ $config.port }}/{{ default "tcp" $config.protocol | lower }}" + {{- end }} + {{- end }} + - "--api.dashboard=true" + - "--ping=true" + {{- if .Values.traefikMetrics }} + {{- if .Values.traefikMetrics.datadog }} + - "--metrics.datadog=true" + - "--metrics.datadog.address={{ .Values.traefikMetrics.datadog.address }}" + {{- end }} + {{- if .Values.traefikMetrics.influxdb }} + - "--metrics.influxdb=true" + - "--metrics.influxdb.address={{ .Values.traefikMetrics.influxdb.address }}" + - "--metrics.influxdb.protocol={{ .Values.traefikMetrics.influxdb.protocol }}" + {{- end }} + {{- if .Values.traefikMetrics.statsd }} + - "--metrics.statsd=true" + - "--metrics.statsd.address={{ .Values.traefikMetrics.statsd.address }}" + {{- if or .Values.traefikMetrics.prometheus }} + - "--metrics.prometheus=true" + - "--metrics.prometheus.entrypoint=metrics" + {{- end }} + {{- end }} + {{- end }} + {{- if or .Values.metrics.main.enabled }} + - "--metrics.prometheus=true" + - "--metrics.prometheus.entrypoint=metrics" + {{- end }} + {{- if .Values.providers.kubernetesCRD.enabled }} + - "--providers.kubernetescrd" + {{- end }} + {{- if .Values.providers.kubernetesIngress.enabled }} + - "--providers.kubernetesingress" + {{- if .Values.providers.kubernetesIngress.publishedService.enabled }} + - "--providers.kubernetesingress.ingressendpoint.publishedservice={{ template "providers.kubernetesIngress.publishedServicePath" . }}" + {{- end }} + {{- if .Values.providers.kubernetesIngress.labelSelector }} + - "--providers.kubernetesingress.labelSelector={{ .Values.providers.kubernetesIngress.labelSelector }}" + {{- end }} + {{- end }} + {{- if and .Values.rbac.enabled .Values.rbac.namespaced }} + {{- if .Values.providers.kubernetesCRD.enabled }} + - "--providers.kubernetescrd.namespaces={{ template "providers.kubernetesCRD.namespaces" . }}" + {{- end }} + {{- if .Values.providers.kubernetesIngress.enabled }} + - "--providers.kubernetesingress.namespaces={{ template "providers.kubernetesIngress.namespaces" . }}" + {{- end }} + {{- end }} + {{- if $.Values.ingressClass.enabled }} + - "--providers.kubernetesingress.ingressclass={{ .Release.Name }}" + {{- end }} + {{- range $entrypoint, $config := $ports }} + {{/* add args for proxyProtocol support */}} + {{- if $config.proxyProtocol }} + {{- if $config.proxyProtocol.enabled }} + {{- if $config.proxyProtocol.insecureMode }} + - "--entrypoints.{{ $entrypoint }}.proxyProtocol.insecure" + {{- end }} + {{- if not ( empty $config.proxyProtocol.trustedIPs ) }} + - "--entrypoints.{{ $entrypoint }}.proxyProtocol.trustedIPs={{ join "," $config.proxyProtocol.trustedIPs }}" + {{- end }} + {{- end }} + {{- end }} + {{/* add args for forwardedHeaders support */}} + {{- if $config.forwardedHeaders.enabled }} + {{- if not ( empty $config.forwardedHeaders.trustedIPs ) }} + - "--entrypoints.{{ $entrypoint }}.forwardedHeaders.trustedIPs={{ join "," $config.forwardedHeaders.trustedIPs }}" + {{- end }} + {{- if $config.forwardedHeaders.insecureMode }} + - "--entrypoints.{{ $entrypoint }}.forwardedHeaders.insecure" + {{- end }} + {{- end }} + {{/* end forwardedHeaders configuration */}} + {{- if $config.redirectTo }} + {{- $toPort := index $ports $config.redirectTo }} + - "--entrypoints.{{ $entrypoint }}.http.redirections.entryPoint.to=:{{ $toPort.port }}" + - "--entrypoints.{{ $entrypoint }}.http.redirections.entryPoint.scheme=https" + {{- else if $config.redirectPort }} + {{ if gt $config.redirectPort 0.0 }} + - "--entrypoints.{{ $entrypoint }}.http.redirections.entryPoint.to=:{{ $config.redirectPort }}" + - "--entrypoints.{{ $entrypoint }}.http.redirections.entryPoint.scheme=https" + {{- end }} + {{- end }} + {{- if or ( $config.tls ) ( eq $config.protocol "https" ) }} + {{- if or ( $config.tls.enabled ) ( eq $config.protocol "https" ) }} + - "--entrypoints.{{ $entrypoint }}.http.tls=true" + {{- if $config.tls.options }} + - "--entrypoints.{{ $entrypoint }}.http.tls.options={{ $config.tls.options }}" + {{- end }} + {{- if $config.tls.certResolver }} + - "--entrypoints.{{ $entrypoint }}.http.tls.certResolver={{ $config.tls.certResolver }}" + {{- end }} + {{- if $config.tls.domains }} + {{- range $index, $domain := $config.tls.domains }} + {{- if $domain.main }} + - "--entrypoints.{{ $entrypoint }}.http.tls.domains[{{ $index }}].main={{ $domain.main }}" + {{- end }} + {{- if $domain.sans }} + - "--entrypoints.{{ $entrypoint }}.http.tls.domains[{{ $index }}].sans={{ join "," $domain.sans }}" + {{- end }} + {{- end }} + {{- end }} + {{- end }} + {{- end }} + {{- end }} + {{- with .Values.logs }} + - "--log.format={{ .general.format }}" + {{- if ne .general.level "ERROR" }} + - "--log.level={{ .general.level | upper }}" + {{- end }} + {{- if .access.enabled }} + - "--accesslog=true" + - "--accesslog.format={{ .access.format }}" + {{- if .access.bufferingsize }} + - "--accesslog.bufferingsize={{ .access.bufferingsize }}" + {{- end }} + {{- if .access.filters }} + {{- if .access.filters.statuscodes }} + - "--accesslog.filters.statuscodes={{ .access.filters.statuscodes }}" + {{- end }} + {{- if .access.filters.retryattempts }} + - "--accesslog.filters.retryattempts" + {{- end }} + {{- if .access.filters.minduration }} + - "--accesslog.filters.minduration={{ .access.filters.minduration }}" + {{- end }} + {{- end }} + - "--accesslog.fields.defaultmode={{ .access.fields.general.defaultmode }}" + {{- range $fieldname, $fieldaction := .access.fields.general.names }} + - "--accesslog.fields.names.{{ $fieldname }}={{ $fieldaction }}" + {{- end }} + - "--accesslog.fields.headers.defaultmode={{ .access.fields.headers.defaultmode }}" + {{- range $fieldname, $fieldaction := .access.fields.headers.names }} + - "--accesslog.fields.headers.names.{{ $fieldname }}={{ $fieldaction }}" + {{- end }} + {{- end }} + {{- end }} + {{/* + For new plugins, add them on the container also + https://github.com/truecharts/containers/blob/master/mirror/traefik/Dockerfile + moduleName must match on the container and here + */}} + {{- if .Values.middlewares.themePark }} + {{/* theme.park */}} + - "--experimental.localPlugins.traefik-themepark.modulename=github.com/packruler/traefik-themepark" + {{- end }} + {{/* End of theme.park */}} + {{/* GeoBlock */}} + {{- if .Values.middlewares.geoBlock }} + - "--experimental.localPlugins.GeoBlock.modulename=github.com/PascalMinder/geoblock" + {{- end }} + {{/* End of GeoBlock */}} + {{/* RealIP */}} + {{- if .Values.middlewares.realIP }} + - "--experimental.localPlugins.traefik-real-ip.modulename=github.com/jramsgz/traefik-real-ip" + {{- end }} + {{/* End of RealIP */}} + {{/* ModSecurity */}} + {{- if .Values.middlewares.modsecurity }} + - "--experimental.localPlugins.traefik-modsecurity-plugin.modulename=github.com/acouvreur/traefik-modsecurity-plugin" + {{- end }} + {{/* End of ModSecurity */}} + {{/* RewriteResponseHeaders */}} + {{- if .Values.middlewares.rewriteResponseHeaders }} + - "--experimental.localPlugins.rewriteResponseHeaders.modulename=github.com/XciD/traefik-plugin-rewrite-headers" + {{- end }} + {{/* End of RewriteResponseHeaders */}} + {{- with .Values.additionalArguments }} + {{- range . }} + - {{ . | quote }} + {{- end }} + {{- end }} +{{- end -}} diff --git a/enterprise/traefik/25.1.17/templates/_helpers.tpl b/enterprise/traefik/25.1.17/templates/_helpers.tpl new file mode 100644 index 00000000000..1345dcea39a --- /dev/null +++ b/enterprise/traefik/25.1.17/templates/_helpers.tpl @@ -0,0 +1,22 @@ +{{/* +Construct the path for the providers.kubernetesingress.ingressendpoint.publishedservice. +By convention this will simply use the / to match the name of the +service generated. +Users can provide an override for an explicit service they want bound via `.Values.providers.kubernetesIngress.publishedService.pathOverride` +*/}} +{{- define "providers.kubernetesIngress.publishedServicePath" -}} +{{- $fullName := include "tc.v1.common.lib.chart.names.fullname" . -}} +{{- $defServiceName := printf "%s/%s-tcp" .Release.Namespace $fullName -}} +{{- $servicePath := default $defServiceName .Values.providers.kubernetesIngress.publishedService.pathOverride }} +{{- print $servicePath | trimSuffix "-" -}} +{{- end -}} + +{{/* +Construct a comma-separated list of whitelisted namespaces +*/}} +{{- define "providers.kubernetesIngress.namespaces" -}} +{{- default .Release.Namespace (join "," .Values.providers.kubernetesIngress.namespaces) }} +{{- end -}} +{{- define "providers.kubernetesCRD.namespaces" -}} +{{- default .Release.Namespace (join "," .Values.providers.kubernetesCRD.namespaces) }} +{{- end -}} diff --git a/enterprise/traefik/25.1.17/templates/_ingressclass.tpl b/enterprise/traefik/25.1.17/templates/_ingressclass.tpl new file mode 100644 index 00000000000..4213783865c --- /dev/null +++ b/enterprise/traefik/25.1.17/templates/_ingressclass.tpl @@ -0,0 +1,24 @@ +{{/* Define the ingressClass */}} +{{- define "traefik.ingressClass" -}} +--- +{{ if $.Values.ingressClass.enabled }} + {{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1/IngressClass" }} +apiVersion: networking.k8s.io/v1 + {{- else if .Capabilities.APIVersions.Has "networking.k8s.io/v1beta1/IngressClass" }} +apiVersion: networking.k8s.io/v1beta1 + {{- else if or (eq .Values.ingressClass.fallbackApiVersion "v1beta1") (eq .Values.ingressClass.fallbackApiVersion "v1") }} +apiVersion: {{ printf "networking.k8s.io/%s" .Values.ingressClass.fallbackApiVersion }} + {{- else }} + {{- fail "\n\n ERROR: You must have at least networking.k8s.io/v1beta1 to use ingressClass" }} + {{- end }} +kind: IngressClass +metadata: + annotations: + ingressclass.kubernetes.io/is-default-class: {{ .Values.ingressClass.isDefaultClass | quote }} + labels: + {{- include "tc.v1.common.lib.metadata.allLabels" . | nindent 4 }} + name: {{ .Release.Name }} +spec: + controller: traefik.io/ingress-controller +{{- end }} +{{- end }} diff --git a/enterprise/traefik/25.1.17/templates/_ingressroute.tpl b/enterprise/traefik/25.1.17/templates/_ingressroute.tpl new file mode 100644 index 00000000000..8e1d0f4e3f9 --- /dev/null +++ b/enterprise/traefik/25.1.17/templates/_ingressroute.tpl @@ -0,0 +1,34 @@ +{{/* Define the ingressRoute */}} +{{- define "traefik.ingressRoute" -}} +{{ if .Values.ingressRoute.dashboard.enabled }} + +{{- $ingressRouteLabels := .Values.ingressRoute.dashboard.labels }} +{{- $ingressRouteAnnotations := .Values.ingressRoute.dashboard.annotations }} + +--- +apiVersion: traefik.io/v1alpha1 +kind: IngressRoute +metadata: + name: {{ include "tc.v1.common.lib.chart.names.fullname" . }}-dashboard + {{- $labels := (mustMerge ($ingressRouteLabels | default dict) (include "tc.v1.common.lib.metadata.allLabels" $ | fromYaml)) -}} + {{- with (include "tc.v1.common.lib.metadata.render" (dict "rootCtx" $ "labels" $labels) | trim) }} + labels: + {{- . | nindent 4 }} + {{- end }} + {{- $annotations := (mustMerge ($ingressRouteAnnotations | default dict) (include "tc.v1.common.lib.metadata.allAnnotations" $ | fromYaml)) -}} + {{- with (include "tc.v1.common.lib.metadata.render" (dict "rootCtx" $ "annotations" $annotations) | trim) }} + annotations: + {{- . | nindent 4 }} + {{- end }} + +spec: + entryPoints: + - main + routes: + - match: PathPrefix(`/dashboard`) || PathPrefix(`/api`) + kind: Rule + services: + - name: api@internal + kind: TraefikService +{{ end }} +{{- end }} diff --git a/enterprise/traefik/25.1.17/templates/_portalhook.tpl b/enterprise/traefik/25.1.17/templates/_portalhook.tpl new file mode 100644 index 00000000000..ec69a695ca6 --- /dev/null +++ b/enterprise/traefik/25.1.17/templates/_portalhook.tpl @@ -0,0 +1,24 @@ +{{/* Define the portalHook */}} +{{- define "traefik.portalhook" -}} +{{- if .Values.portalhook.enabled -}} + {{- $name := "portalhook" -}} + {{- if $.Values.ingressClass.enabled -}} + {{- $name = printf "portalhook-%v" .Release.Name -}} + {{- end }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ $name }} +data: + {{- $ports := dict }} + {{- range $.Values.service }} + {{- range $name, $value := .ports }} + {{- $_ := set $ports $name $value }} + {{- end }} + {{- end }} + {{- range $name, $value := $ports }} + {{ $name }}: {{ $value.port | quote }} + {{- end }} +{{- end }} +{{- end -}} diff --git a/enterprise/traefik/25.1.17/templates/_tlsoptions.tpl b/enterprise/traefik/25.1.17/templates/_tlsoptions.tpl new file mode 100644 index 00000000000..163b5364421 --- /dev/null +++ b/enterprise/traefik/25.1.17/templates/_tlsoptions.tpl @@ -0,0 +1,13 @@ +{{/* Define the tlsOptions */}} +{{- define "traefik.tlsOptions" -}} +{{- range $name, $config := .Values.tlsOptions }} + +--- +apiVersion: traefik.io/v1alpha1 +kind: TLSOption +metadata: + name: {{ $name }} +spec: + {{- toYaml $config | nindent 2 }} +{{- end }} +{{- end }} diff --git a/enterprise/traefik/25.1.17/templates/_tlsstore.tpl b/enterprise/traefik/25.1.17/templates/_tlsstore.tpl new file mode 100644 index 00000000000..17908e29201 --- /dev/null +++ b/enterprise/traefik/25.1.17/templates/_tlsstore.tpl @@ -0,0 +1,26 @@ +{{/* Define the tlsOptions */}} +{{- define "traefik.tlsstore" -}} +{{- if .Values.defaultCertificate }} +--- +apiVersion: traefik.io/v1alpha1 +kind: TLSStore +metadata: + name: default +spec: + certificates: + - secretName: clusterissuer-templated-{{ tpl .Values.defaultCertificate $ }} + defaultCertificate: + secretName: clusterissuer-templated-{{ tpl .Values.defaultCertificate $ }} +{{- end }} + +{{- range $name, $config := .Values.tlsStore }} + +--- +apiVersion: traefik.io/v1alpha1 +kind: TLSStore +metadata: + name: {{ $name }} +spec: + {{- toYaml $config | nindent 2 }} +{{- end }} +{{- end }} diff --git a/enterprise/traefik/25.1.17/templates/common.yaml b/enterprise/traefik/25.1.17/templates/common.yaml new file mode 100644 index 00000000000..d00c5ec4cc2 --- /dev/null +++ b/enterprise/traefik/25.1.17/templates/common.yaml @@ -0,0 +1,24 @@ +{{/* Make sure all variables are set properly */}} +{{- include "tc.v1.common.loader.init" . }} + +{{- $newArgs := (include "traefik.args" . | fromYaml) }} +{{- $_ := set .Values "newArgs" $newArgs -}} +{{- $mergedargs := concat $.Values.workload.main.podSpec.containers.main.args .Values.newArgs.args }} +{{- $_ := set $.Values.workload.main.podSpec.containers.main "args" $mergedargs -}} + +{{- include "traefik.portalhook" . }} +{{- include "traefik.tlsstore" . }} +{{- include "traefik.tlsOptions" . }} +{{- include "traefik.ingressRoute" . }} +{{- include "traefik.ingressClass" . }} + +{{- with .Values.ingress -}} + {{- with .main -}} + {{- if .enabled -}} + {{- $_ := set $.Values.portal.open.override "protocol" "https" -}} + {{- end -}} + {{- end -}} +{{- end -}} + +{{/* Render the templates */}} +{{ include "tc.v1.common.loader.apply" . }} diff --git a/enterprise/traefik/25.1.17/templates/middlewares/addPrefix.yaml b/enterprise/traefik/25.1.17/templates/middlewares/addPrefix.yaml new file mode 100644 index 00000000000..47138233643 --- /dev/null +++ b/enterprise/traefik/25.1.17/templates/middlewares/addPrefix.yaml @@ -0,0 +1,12 @@ +{{- range $index, $middlewareData := .Values.middlewares.addPrefix }} + +--- +apiVersion: traefik.io/v1alpha1 +kind: Middleware +metadata: + name: {{ ternary (printf "%v-%v" $.Release.Name $middlewareData.name) $middlewareData.name $.Values.ingressClass.enabled }} + namespace: {{ $.Release.Namespace }} +spec: + addPrefix: + prefix: {{ $middlewareData.prefix }} +{{- end }} diff --git a/enterprise/traefik/25.1.17/templates/middlewares/basic-middleware.yaml b/enterprise/traefik/25.1.17/templates/middlewares/basic-middleware.yaml new file mode 100644 index 00000000000..ef4671254ef --- /dev/null +++ b/enterprise/traefik/25.1.17/templates/middlewares/basic-middleware.yaml @@ -0,0 +1,57 @@ +--- +apiVersion: traefik.io/v1alpha1 +kind: Middleware +metadata: + name: {{ ternary (printf "%v-compress" $.Release.Name) "compress" $.Values.ingressClass.enabled }} + namespace: {{ $.Release.Namespace }} +spec: + compress: {} +--- +# Here, an average of 300 requests per second is allowed. +# In addition, a burst of 200 requests is allowed. +apiVersion: traefik.io/v1alpha1 +kind: Middleware +metadata: + name: {{ ternary (printf "%v-basic-ratelimit" $.Release.Name) "basic-ratelimit" $.Values.ingressClass.enabled }} + namespace: {{ $.Release.Namespace }} +spec: + rateLimit: + average: 600 + burst: 400 +--- +apiVersion: traefik.io/v1alpha1 +kind: Middleware +metadata: + name: {{ ternary (printf "%v-basic-secure-headers" $.Release.Name) "basic-secure-headers" $.Values.ingressClass.enabled }} + namespace: {{ $.Release.Namespace }} +spec: + headers: + accessControlAllowMethods: + - GET + - OPTIONS + - HEAD + - PUT + accessControlMaxAge: 100 + stsSeconds: 63072000 + # stsIncludeSubdomains: false + # stsPreload: false + forceSTSHeader: true + contentTypeNosniff: true + browserXssFilter: true + referrerPolicy: same-origin + customRequestHeaders: + X-Forwarded-Proto: "https" + customResponseHeaders: + server: '' +--- +apiVersion: traefik.io/v1alpha1 +kind: Middleware +metadata: + name: {{ ternary (printf "%v-chain-basic" $.Release.Name) "chain-basic" $.Values.ingressClass.enabled }} + namespace: {{ $.Release.Namespace }} +spec: + chain: + middlewares: + - name: {{ ternary (printf "%v-basic-ratelimit" $.Release.Name) "basic-ratelimit" $.Values.ingressClass.enabled }} + - name: {{ ternary (printf "%v-basic-secure-headers" $.Release.Name) "basic-secure-headers" $.Values.ingressClass.enabled }} + - name: {{ ternary (printf "%v-compress" $.Release.Name) "compress" $.Values.ingressClass.enabled }} diff --git a/enterprise/traefik/25.1.17/templates/middlewares/basicauth.yaml b/enterprise/traefik/25.1.17/templates/middlewares/basicauth.yaml new file mode 100644 index 00000000000..1bbdc462b34 --- /dev/null +++ b/enterprise/traefik/25.1.17/templates/middlewares/basicauth.yaml @@ -0,0 +1,30 @@ +{{- range $index, $middlewareData := .Values.middlewares.basicAuth -}} + + {{- $users := list -}} + {{- range $index, $userdata := $middlewareData.users -}} + {{- $users = append $users (htpasswd $userdata.username $userdata.password) -}} + {{- end }} + +--- +apiVersion: v1 +kind: Secret +metadata: + name: {{ printf "%v-%v" $middlewareData.name "secret" }} + namespace: {{ $.Release.Namespace }} +type: Opaque +stringData: + users: | + {{- range $index, $user := $users }} + {{ printf "%s" $user }} + {{- end }} +--- +# Declaring the user list +apiVersion: traefik.io/v1alpha1 +kind: Middleware +metadata: + name: {{ ternary (printf "%v-%v" $.Release.Name $middlewareData.name) $middlewareData.name $.Values.ingressClass.enabled }} + namespace: {{ $.Release.Namespace }} +spec: + basicAuth: + secret: {{ printf "%v-%v" $middlewareData.name "secret" }} +{{- end -}} diff --git a/enterprise/traefik/25.1.17/templates/middlewares/buffering.yaml b/enterprise/traefik/25.1.17/templates/middlewares/buffering.yaml new file mode 100644 index 00000000000..eade09784e4 --- /dev/null +++ b/enterprise/traefik/25.1.17/templates/middlewares/buffering.yaml @@ -0,0 +1,26 @@ +{{- range $index, $middlewareData := .Values.middlewares.buffering }} +--- +# Declaring the user list +apiVersion: traefik.io/v1alpha1 +kind: Middleware +metadata: + name: {{ ternary (printf "%v-%v" $.Release.Name $middlewareData.name) $middlewareData.name $.Values.ingressClass.enabled }} + namespace: {{ $.Release.Namespace }} +spec: + buffering: {{/* Only render if its not and has a value of 0 or greater */}} + {{- if and (not (kindIs "invalid" $middlewareData.maxRequestBodyBytes)) (ge ($middlewareData.maxRequestBodyBytes | int) 0) }} + maxRequestBodyBytes: {{ $middlewareData.maxRequestBodyBytes }} + {{- end -}} + {{- if and (not (kindIs "invalid" $middlewareData.memRequestBodyBytes)) (ge ($middlewareData.memRequestBodyBytes | int) 0) }} + memRequestBodyBytes: {{ $middlewareData.memRequestBodyBytes }} + {{- end -}} + {{- if and (not (kindIs "invalid" $middlewareData.maxResponseBodyBytes)) (ge ($middlewareData.maxResponseBodyBytes | int) 0) }} + maxResponseBodyBytes: {{ $middlewareData.maxResponseBodyBytes }} + {{- end -}} + {{- if and (not (kindIs "invalid" $middlewareData.memResponseBodyBytes)) (ge ($middlewareData.memResponseBodyBytes | int) 0) }} + memResponseBodyBytes: {{ $middlewareData.memResponseBodyBytes }} + {{- end -}} + {{- if $middlewareData.retryExpression }} + retryExpression: {{ $middlewareData.retryExpression | quote }} + {{- end -}} +{{- end -}} diff --git a/enterprise/traefik/25.1.17/templates/middlewares/chain.yaml b/enterprise/traefik/25.1.17/templates/middlewares/chain.yaml new file mode 100644 index 00000000000..17d8853fb05 --- /dev/null +++ b/enterprise/traefik/25.1.17/templates/middlewares/chain.yaml @@ -0,0 +1,21 @@ +{{- $values := .Values -}} +{{- $namespace := $.Release.Namespace -}} +{{- if $.Values.ingressClass.enabled -}} + {{- $namespace := (printf "%v-%v" $namespace .Release.Name) -}} +{{- end -}} + +{{- range $index, $middlewareData := .Values.middlewares.chain }} +--- +# Declaring the user list +apiVersion: traefik.io/v1alpha1 +kind: Middleware +metadata: + name: {{ ternary (printf "%v-%v" $.Release.Name $middlewareData.name) $middlewareData.name $.Values.ingressClass.enabled }} + namespace: {{ $.Release.Namespace }} +spec: + chain: + middlewares: + {{- range $index, $middleware := .middlewares }} + - name: {{ printf "%v-%v@%v" $namespace $middleware "kubernetescrd" }} + {{- end }} +{{- end -}} diff --git a/enterprise/traefik/25.1.17/templates/middlewares/customFrameOptionsValue.yaml b/enterprise/traefik/25.1.17/templates/middlewares/customFrameOptionsValue.yaml new file mode 100644 index 00000000000..9b9f2b6606c --- /dev/null +++ b/enterprise/traefik/25.1.17/templates/middlewares/customFrameOptionsValue.yaml @@ -0,0 +1,12 @@ +{{- range $index, $middlewareData := .Values.middlewares.customFrameOptionsValue }} +--- +# Declaring the user list +apiVersion: traefik.io/v1alpha1 +kind: Middleware +metadata: + name: {{ ternary (printf "%v-%v" $.Release.Name $middlewareData.name) $middlewareData.name $.Values.ingressClass.enabled }} + namespace: {{ $.Release.Namespace }} +spec: + headers: + customFrameOptionsValue: {{ $middlewareData.value }} +{{- end -}} diff --git a/enterprise/traefik/25.1.17/templates/middlewares/customRequestHeaders.yaml b/enterprise/traefik/25.1.17/templates/middlewares/customRequestHeaders.yaml new file mode 100644 index 00000000000..3c43a131a1d --- /dev/null +++ b/enterprise/traefik/25.1.17/templates/middlewares/customRequestHeaders.yaml @@ -0,0 +1,15 @@ +{{- range $index, $middlewareData := .Values.middlewares.customRequestHeaders }} +--- +# Declaring the user list +apiVersion: traefik.io/v1alpha1 +kind: Middleware +metadata: + name: {{ ternary (printf "%v-%v" $.Release.Name $middlewareData.name) $middlewareData.name $.Values.ingressClass.enabled }} + namespace: {{ $.Release.Namespace }} +spec: + headers: + customRequestHeaders: + {{- range $index, $customRequestHeader := $middlewareData.headers }} + {{ $customRequestHeader.name }}: {{ $customRequestHeader.value | quote }} + {{- end }} +{{- end -}} diff --git a/enterprise/traefik/25.1.17/templates/middlewares/customResponseHeaders.yaml b/enterprise/traefik/25.1.17/templates/middlewares/customResponseHeaders.yaml new file mode 100644 index 00000000000..a75db8a3382 --- /dev/null +++ b/enterprise/traefik/25.1.17/templates/middlewares/customResponseHeaders.yaml @@ -0,0 +1,15 @@ +{{- range $index, $middlewareData := .Values.middlewares.customResponseHeaders }} +--- +# Declaring the user list +apiVersion: traefik.io/v1alpha1 +kind: Middleware +metadata: + name: {{ ternary (printf "%v-%v" $.Release.Name $middlewareData.name) $middlewareData.name $.Values.ingressClass.enabled }} + namespace: {{ $.Release.Namespace }} +spec: + headers: + customResponseHeaders: + {{- range $index, $customResponseHeader := $middlewareData.headers }} + {{ $customResponseHeader.name }}: {{ $customResponseHeader.value | quote }} + {{- end }} +{{- end -}} diff --git a/enterprise/traefik/25.1.17/templates/middlewares/forwardauth.yaml b/enterprise/traefik/25.1.17/templates/middlewares/forwardauth.yaml new file mode 100644 index 00000000000..787fa796823 --- /dev/null +++ b/enterprise/traefik/25.1.17/templates/middlewares/forwardauth.yaml @@ -0,0 +1,29 @@ +{{- range $index, $middlewareData := .Values.middlewares.forwardAuth }} +--- +apiVersion: traefik.io/v1alpha1 +kind: Middleware +metadata: + name: {{ ternary (printf "%v-%v" $.Release.Name $middlewareData.name) $middlewareData.name $.Values.ingressClass.enabled }} + namespace: {{ $.Release.Namespace }} +spec: + forwardAuth: + address: {{ $middlewareData.address }} + {{- with $middlewareData.authResponseHeaders }} + authResponseHeaders: + {{- toYaml . | nindent 4 }} + {{- end -}} + {{- with $middlewareData.authRequestHeaders }} + authRequestHeaders: + {{- toYaml . | nindent 4 }} + {{- end -}} + {{- if $middlewareData.authResponseHeadersRegex }} + authResponseHeadersRegex: {{ $middlewareData.authResponseHeadersRegex }} + {{- end -}} + {{- if $middlewareData.trustForwardHeader }} + trustForwardHeader: true + {{- end -}} + {{- with $middlewareData.tls }} + tls: + insecureSkipVerify: {{ .insecureSkipVerify | default false }} + {{- end -}} +{{- end -}} diff --git a/enterprise/traefik/25.1.17/templates/middlewares/geoblock.yaml b/enterprise/traefik/25.1.17/templates/middlewares/geoblock.yaml new file mode 100644 index 00000000000..2a647778e56 --- /dev/null +++ b/enterprise/traefik/25.1.17/templates/middlewares/geoblock.yaml @@ -0,0 +1,29 @@ +{{- range $index, $middlewareData := .Values.middlewares.geoBlock }} +--- +apiVersion: traefik.io/v1alpha1 +kind: Middleware +metadata: + name: {{ ternary (printf "%v-%v" $.Release.Name $middlewareData.name) $middlewareData.name $.Values.ingressClass.enabled }} + namespace: {{ $.Release.Namespace }} +spec: + plugin: + GeoBlock: + allowLocalRequests: {{ $middlewareData.allowLocalRequests }} + logLocalRequests: {{ $middlewareData.logLocalRequests }} + logAllowedRequests: {{ $middlewareData.logAllowedRequests }} + logApiRequests: {{ $middlewareData.logApiRequests }} + api: {{ $middlewareData.api }} + apiTimeoutMs: {{ $middlewareData.apiTimeoutMs }} + cacheSize: {{ $middlewareData.cacheSize }} + forceMonthlyUpdate: {{ $middlewareData.forceMonthlyUpdate }} + allowUnknownCountries: {{ $middlewareData.allowUnknownCountries }} + unknownCountryApiResponse: {{ $middlewareData.unknownCountryApiResponse }} + blackListMode: {{ $middlewareData.blackListMode }} + {{- if not $middlewareData.countries -}} + {{- fail "You have to define at least one country..." -}} + {{- end }} + countries: + {{- range $middlewareData.countries }} + - {{ . }} + {{- end }} +{{- end -}} diff --git a/enterprise/traefik/25.1.17/templates/middlewares/ipwhitelist.yaml b/enterprise/traefik/25.1.17/templates/middlewares/ipwhitelist.yaml new file mode 100644 index 00000000000..fc876aca5fe --- /dev/null +++ b/enterprise/traefik/25.1.17/templates/middlewares/ipwhitelist.yaml @@ -0,0 +1,27 @@ +{{- range $index, $middlewareData := .Values.middlewares.ipWhiteList }} +--- +# Declaring the user list +apiVersion: traefik.io/v1alpha1 +kind: Middleware +metadata: + name: {{ ternary (printf "%v-%v" $.Release.Name $middlewareData.name) $middlewareData.name $.Values.ingressClass.enabled }} + namespace: {{ $.Release.Namespace }} +spec: + ipWhiteList: + sourceRange: + {{- range $middlewareData.sourceRange }} + - {{ . }} + {{- end }} + {{- if $middlewareData.ipStrategy }} + ipStrategy: + {{- if $middlewareData.ipStrategy.depth }} + depth: {{ $middlewareData.ipStrategy.depth }} + {{- end -}} + {{- if $middlewareData.ipStrategy.excludedIPs }} + excludedIPs: + {{- range $middlewareData.ipStrategy.excludedIPs }} + - {{ . }} + {{- end }} + {{- end -}} + {{- end -}} +{{- end -}} diff --git a/enterprise/traefik/25.1.17/templates/middlewares/modsecurity.yaml b/enterprise/traefik/25.1.17/templates/middlewares/modsecurity.yaml new file mode 100644 index 00000000000..07a8d5d358f --- /dev/null +++ b/enterprise/traefik/25.1.17/templates/middlewares/modsecurity.yaml @@ -0,0 +1,14 @@ +{{- range $index, $middlewareData := .Values.middlewares.modsecurity }} +--- +apiVersion: traefik.io/v1alpha1 +kind: Middleware +metadata: + name: {{ ternary (printf "%v-%v" $.Release.Name $middlewareData.name) $middlewareData.name $.Values.ingressClass.enabled }} + namespace: {{ $.Release.Namespace }} +spec: + plugin: + traefik-modsecurity-plugin: + modSecurityUrl: {{ $middlewareData.modSecurityUrl }} + timeoutMillis: {{ $middlewareData.timeoutMillis }} + maxBodySize: {{ $middlewareData.maxBodySize }} +{{- end -}} diff --git a/enterprise/traefik/25.1.17/templates/middlewares/ratelimit.yaml b/enterprise/traefik/25.1.17/templates/middlewares/ratelimit.yaml new file mode 100644 index 00000000000..cd9117633f6 --- /dev/null +++ b/enterprise/traefik/25.1.17/templates/middlewares/ratelimit.yaml @@ -0,0 +1,13 @@ +{{- range $index, $middlewareData := .Values.middlewares.rateLimit }} +--- +# Declaring the user list +apiVersion: traefik.io/v1alpha1 +kind: Middleware +metadata: + name: {{ ternary (printf "%v-%v" $.Release.Name $middlewareData.name) $middlewareData.name $.Values.ingressClass.enabled }} + namespace: {{ $.Release.Namespace }} +spec: + rateLimit: + average: {{ $middlewareData.average }} + burst: {{ $middlewareData.burst }} +{{- end -}} diff --git a/enterprise/traefik/25.1.17/templates/middlewares/real-ip.yaml b/enterprise/traefik/25.1.17/templates/middlewares/real-ip.yaml new file mode 100644 index 00000000000..2877d9ce7f7 --- /dev/null +++ b/enterprise/traefik/25.1.17/templates/middlewares/real-ip.yaml @@ -0,0 +1,15 @@ +{{- range $index, $middlewareData := .Values.middlewares.realIP }} +--- +apiVersion: traefik.io/v1alpha1 +kind: Middleware +metadata: + name: {{ ternary (printf "%v-%v" $.Release.Name $middlewareData.name) $middlewareData.name $.Values.ingressClass.enabled }} + namespace: {{ $.Release.Namespace }} +spec: + plugin: + traefik-real-ip: + excludednets: + {{- range $middlewareData.excludedNetworks }} + - {{ . | quote }} + {{- end }} +{{- end -}} diff --git a/enterprise/traefik/25.1.17/templates/middlewares/redirectScheme.yaml b/enterprise/traefik/25.1.17/templates/middlewares/redirectScheme.yaml new file mode 100644 index 00000000000..09f3093998a --- /dev/null +++ b/enterprise/traefik/25.1.17/templates/middlewares/redirectScheme.yaml @@ -0,0 +1,13 @@ +{{- range $index, $middlewareData := .Values.middlewares.redirectScheme }} +--- +# Declaring the user list +apiVersion: traefik.io/v1alpha1 +kind: Middleware +metadata: + name: {{ ternary (printf "%v-%v" $.Release.Name $middlewareData.name) $middlewareData.name $.Values.ingressClass.enabled }} + namespace: {{ $.Release.Namespace }} +spec: + redirectScheme: + scheme: {{ $middlewareData.scheme }} + permanent: {{ $middlewareData.permanent }} +{{- end -}} diff --git a/enterprise/traefik/25.1.17/templates/middlewares/redirectregex.yaml b/enterprise/traefik/25.1.17/templates/middlewares/redirectregex.yaml new file mode 100644 index 00000000000..30f44f9081b --- /dev/null +++ b/enterprise/traefik/25.1.17/templates/middlewares/redirectregex.yaml @@ -0,0 +1,14 @@ +{{- range $index, $middlewareData := .Values.middlewares.redirectRegex }} +--- +# Declaring the user list +apiVersion: traefik.io/v1alpha1 +kind: Middleware +metadata: + name: {{ ternary (printf "%v-%v" $.Release.Name $middlewareData.name) $middlewareData.name $.Values.ingressClass.enabled }} + namespace: {{ $.Release.Namespace }} +spec: + redirectRegex: + regex: {{ $middlewareData.regex | quote }} + replacement: {{ $middlewareData.replacement | quote }} + permanent: {{ $middlewareData.permanent }} +{{- end -}} diff --git a/enterprise/traefik/25.1.17/templates/middlewares/rewriteResponseHeaders.yaml b/enterprise/traefik/25.1.17/templates/middlewares/rewriteResponseHeaders.yaml new file mode 100644 index 00000000000..d7bfdcdbe07 --- /dev/null +++ b/enterprise/traefik/25.1.17/templates/middlewares/rewriteResponseHeaders.yaml @@ -0,0 +1,17 @@ +{{- range $index, $middlewareData := .Values.middlewares.rewriteResponseHeaders }} +--- +apiVersion: traefik.io/v1alpha1 +kind: Middleware +metadata: + name: {{ ternary (printf "%v-%v" $.Release.Name $middlewareData.name) $middlewareData.name $.Values.ingressClass.enabled }} + namespace: {{ $.Release.Namespace }} +spec: + plugin: + rewriteResponseHeaders: + rewrites: + {{- range $index, $rewriteResponseHeader := $middlewareData.headers }} + - header: {{ $rewriteResponseHeader.name }} + regex: {{ $rewriteResponseHeader.regex | quote }} + replacement: {{ $rewriteResponseHeader.replacement | quote }} + {{- end }} +{{- end -}} diff --git a/enterprise/traefik/25.1.17/templates/middlewares/stripPrefixRegex.yaml b/enterprise/traefik/25.1.17/templates/middlewares/stripPrefixRegex.yaml new file mode 100644 index 00000000000..6fd4c8c9970 --- /dev/null +++ b/enterprise/traefik/25.1.17/templates/middlewares/stripPrefixRegex.yaml @@ -0,0 +1,14 @@ +{{- range $index, $middlewareData := .Values.middlewares.stripPrefixRegex }} +--- +apiVersion: traefik.io/v1alpha1 +kind: Middleware +metadata: + name: {{ ternary (printf "%v-%v" $.Release.Name $middlewareData.name) $middlewareData.name $.Values.ingressClass.enabled }} + namespace: {{ $.Release.Namespace }} +spec: + stripPrefixRegex: + regex: + {{- range $middlewareData.regex }} + - {{ . | quote }} + {{- end }} +{{- end -}} diff --git a/enterprise/traefik/25.1.17/templates/middlewares/tc-chains.yaml b/enterprise/traefik/25.1.17/templates/middlewares/tc-chains.yaml new file mode 100644 index 00000000000..5566d77c146 --- /dev/null +++ b/enterprise/traefik/25.1.17/templates/middlewares/tc-chains.yaml @@ -0,0 +1,24 @@ +--- +apiVersion: traefik.io/v1alpha1 +kind: Middleware +metadata: + name: {{ ternary (printf "%v-%v" $.Release.Name "tc-opencors-chain") "tc-opencors-chain" $.Values.ingressClass.enabled }} + namespace: {{ $.Release.Namespace }} +spec: + chain: + middlewares: + - name: {{ ternary (printf "%v-%v" $.Release.Name "basic-ratelimit") "basic-ratelimit" $.Values.ingressClass.enabled }} + - name: {{ ternary (printf "%v-%v" $.Release.Name "tc-opencors-headers") "tc-opencors-headers" $.Values.ingressClass.enabled }} + - name: {{ ternary (printf "%v-%v" $.Release.Name "compress") "compress" $.Values.ingressClass.enabled }} +--- +apiVersion: traefik.io/v1alpha1 +kind: Middleware +metadata: + name: {{ ternary (printf "%v-%v" $.Release.Name "tc-closedcors-chain") "tc-closedcors-chain" $.Values.ingressClass.enabled }} + namespace: {{ $.Release.Namespace }} +spec: + chain: + middlewares: + - name: {{ ternary (printf "%v-%v" $.Release.Name "basic-ratelimit") "basic-ratelimit" $.Values.ingressClass.enabled }} + - name: {{ ternary (printf "%v-%v" $.Release.Name "tc-closedcors-headers") "tc-closedcors-headers" $.Values.ingressClass.enabled }} + - name: {{ ternary (printf "%v-%v" $.Release.Name "compress") "compress" $.Values.ingressClass.enabled }} diff --git a/enterprise/traefik/25.1.17/templates/middlewares/tc-headers.yaml b/enterprise/traefik/25.1.17/templates/middlewares/tc-headers.yaml new file mode 100644 index 00000000000..b0500afc708 --- /dev/null +++ b/enterprise/traefik/25.1.17/templates/middlewares/tc-headers.yaml @@ -0,0 +1,57 @@ +--- +apiVersion: traefik.io/v1alpha1 +kind: Middleware +metadata: + name: {{ ternary (printf "%v-%v" $.Release.Name "tc-opencors-headers") "tc-opencors-headers" $.Values.ingressClass.enabled }} + namespace: {{ $.Release.Namespace }} +spec: + headers: + accessControlAllowHeaders: + - '*' + accessControlAllowMethods: + - GET + - OPTIONS + - HEAD + - PUT + - POST + accessControlAllowOriginList: + - '*' + accessControlMaxAge: 100 + browserXssFilter: true + contentTypeNosniff: true + customRequestHeaders: + X-Forwarded-Proto: https + customResponseHeaders: + server: "" + forceSTSHeader: true + referrerPolicy: same-origin + sslForceHost: true + sslRedirect: true + stsSeconds: 63072000 +--- +apiVersion: traefik.io/v1alpha1 +kind: Middleware +metadata: + name: {{ ternary (printf "%v-%v" $.Release.Name "tc-closedcors-headers") "tc-closedcors-headers" $.Values.ingressClass.enabled }} + namespace: {{ $.Release.Namespace }} +spec: + headers: + accessControlAllowMethods: + - GET + - OPTIONS + - HEAD + - PUT + accessControlMaxAge: 100 + sslRedirect: true + stsSeconds: 63072000 + # stsIncludeSubdomains: false + # stsPreload: false + forceSTSHeader: true + contentTypeNosniff: true + browserXssFilter: true + sslForceHost: true + referrerPolicy: same-origin + customRequestHeaders: + X-Forwarded-Proto: "https" + customResponseHeaders: + server: '' diff --git a/enterprise/traefik/25.1.17/templates/middlewares/tc-nextcloud.yaml b/enterprise/traefik/25.1.17/templates/middlewares/tc-nextcloud.yaml new file mode 100644 index 00000000000..fcb09becb98 --- /dev/null +++ b/enterprise/traefik/25.1.17/templates/middlewares/tc-nextcloud.yaml @@ -0,0 +1,20 @@ +--- +apiVersion: traefik.io/v1alpha1 +kind: Middleware +metadata: + name: {{ ternary (printf "%v-%v" $.Release.Name "tc-nextcloud-redirectregex-dav") "tc-nextcloud-redirectregex-dav" $.Values.ingressClass.enabled }} + namespace: {{ $.Release.Namespace }} +spec: + redirectRegex: + regex: "https://(.*)/.well-known/(card|cal)dav" + replacement: "https://${1}/remote.php/dav/" +--- +apiVersion: traefik.io/v1alpha1 +kind: Middleware +metadata: + name: {{ ternary (printf "%v-%v" $.Release.Name "tc-nextcloud-chain") "tc-nextcloud-chain" $.Values.ingressClass.enabled }} + namespace: {{ $.Release.Namespace }} +spec: + chain: + middlewares: + - name: {{ ternary (printf "%v-%v" $.Release.Name "tc-nextcloud-redirectregex-dav") "tc-nextcloud-redirectregex-dav" $.Values.ingressClass.enabled }} diff --git a/enterprise/traefik/25.1.17/templates/middlewares/theme-park.yaml b/enterprise/traefik/25.1.17/templates/middlewares/theme-park.yaml new file mode 100644 index 00000000000..16abf2e2f34 --- /dev/null +++ b/enterprise/traefik/25.1.17/templates/middlewares/theme-park.yaml @@ -0,0 +1,20 @@ +{{- range $index, $middlewareData := .Values.middlewares.themePark }} +--- +apiVersion: traefik.io/v1alpha1 +kind: Middleware +metadata: + name: {{ ternary (printf "%v-%v" $.Release.Name $middlewareData.name) $middlewareData.name $.Values.ingressClass.enabled }} + namespace: {{ $.Release.Namespace }} +spec: + plugin: + traefik-themepark: + app: {{ $middlewareData.appName }} + theme: {{ $middlewareData.themeName }} + baseUrl: {{ $middlewareData.baseUrl }} + {{- if $middlewareData.addons }} + addons: + {{- range $middlewareData.addons }} + - {{ . | quote }} + {{- end }} + {{- end -}} +{{- end -}} diff --git a/enterprise/velero/3.2.7/values.yaml b/enterprise/traefik/25.1.17/values.yaml similarity index 100% rename from enterprise/velero/3.2.7/values.yaml rename to enterprise/traefik/25.1.17/values.yaml diff --git a/enterprise/velero/3.2.7/app-changelog.md b/enterprise/velero/3.2.7/app-changelog.md deleted file mode 100644 index c1ebfee7185..00000000000 --- a/enterprise/velero/3.2.7/app-changelog.md +++ /dev/null @@ -1,3 +0,0 @@ - - -## [velero-3.2.7](https://github.com/truecharts/charts/compare/velero-3.2.6...velero-3.2.7) (2024-02-07) \ No newline at end of file diff --git a/enterprise/velero/3.2.7/charts/common-17.3.8.tgz b/enterprise/velero/3.2.7/charts/common-17.3.8.tgz deleted file mode 100644 index f0bdfb5728578911048450334a6c9d5a55debc7e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 98415 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
LCaT8e_2A3Firl1Rxnb2t`lOZyIDH9 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 O0RR78j+D3nSPTH2LM^ZW diff --git a/enterprise/velero/3.2.7/CHANGELOG.md b/enterprise/velero/3.2.8/CHANGELOG.md similarity index 91% rename from enterprise/velero/3.2.7/CHANGELOG.md rename to enterprise/velero/3.2.8/CHANGELOG.md index 987eb2cd997..9a7872d1390 100644 --- a/enterprise/velero/3.2.7/CHANGELOG.md +++ b/enterprise/velero/3.2.8/CHANGELOG.md @@ -7,6 +7,15 @@ title: Changelog +## [velero-3.2.8](https://github.com/truecharts/charts/compare/velero-3.2.7...velero-3.2.8) (2024-02-12) + +### Chore + + + +- update container image tccr.io/tccr/alpine to latest[@ade0065](https://github.com/ade0065) by renovate ([#18108](https://github.com/truecharts/charts/issues/18108)) + + ## [velero-3.2.7](https://github.com/truecharts/charts/compare/velero-3.2.6...velero-3.2.7) (2024-02-07) @@ -88,12 +97,3 @@ title: Changelog ## [velero-3.1.12](https://github.com/truecharts/charts/compare/velero-3.1.11...velero-3.1.12) (2024-01-21) - -### Chore - - - -- update container image common to v17.2.26[@24c98f7](https://github.com/24c98f7) by renovate ([#17409](https://github.com/truecharts/charts/issues/17409)) - - -## [velero-3.1.11](https://github.com/truecharts/charts/compare/velero-3.1.10...velero-3.1.11) (2024-01-21) diff --git a/enterprise/velero/3.2.7/Chart.yaml b/enterprise/velero/3.2.8/Chart.yaml similarity index 98% rename from enterprise/velero/3.2.7/Chart.yaml rename to enterprise/velero/3.2.8/Chart.yaml index 8b71fa2f67a..a401561eff6 100644 --- a/enterprise/velero/3.2.7/Chart.yaml +++ b/enterprise/velero/3.2.8/Chart.yaml @@ -42,4 +42,4 @@ sources: - https://github.com/truecharts/charts/tree/master/charts/enterprise/velero - https://github.com/truecharts/containers/tree/master/apps/alpine type: application -version: 3.2.7 +version: 3.2.8 diff --git a/enterprise/velero/3.2.7/LICENSE b/enterprise/velero/3.2.8/LICENSE similarity index 100% rename from enterprise/velero/3.2.7/LICENSE rename to enterprise/velero/3.2.8/LICENSE diff --git a/enterprise/velero/3.2.7/README.md b/enterprise/velero/3.2.8/README.md similarity index 100% rename from enterprise/velero/3.2.7/README.md rename to enterprise/velero/3.2.8/README.md diff --git a/enterprise/velero/3.2.8/app-changelog.md b/enterprise/velero/3.2.8/app-changelog.md new file mode 100644 index 00000000000..6721f6a998a --- /dev/null +++ b/enterprise/velero/3.2.8/app-changelog.md @@ -0,0 +1,9 @@ + + +## [velero-3.2.8](https://github.com/truecharts/charts/compare/velero-3.2.7...velero-3.2.8) (2024-02-12) + +### Chore + + + +- update container image tccr.io/tccr/alpine to latest[@ade0065](https://github.com/ade0065) by renovate ([#18108](https://github.com/truecharts/charts/issues/18108)) \ No newline at end of file diff --git a/enterprise/velero/3.2.7/app-readme.md b/enterprise/velero/3.2.8/app-readme.md similarity index 100% rename from enterprise/velero/3.2.7/app-readme.md rename to enterprise/velero/3.2.8/app-readme.md diff --git a/enterprise/velero/3.2.8/charts/common-17.3.8.tgz b/enterprise/velero/3.2.8/charts/common-17.3.8.tgz new file mode 100644 index 0000000000000000000000000000000000000000..c0d3858ae98ec9854e965e99eb6589e2150092a9 GIT binary patch literal 98438 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%0AG{kS?|e6^Pc#U$&;$|IzTfumfBDT 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 literal 0 HcmV?d00001 diff --git a/enterprise/velero/3.2.7/charts/velero-5.2.2.tgz b/enterprise/velero/3.2.8/charts/velero-5.2.2.tgz similarity index 100% rename from enterprise/velero/3.2.7/charts/velero-5.2.2.tgz rename to enterprise/velero/3.2.8/charts/velero-5.2.2.tgz diff --git a/enterprise/velero/3.2.7/ix_values.yaml b/enterprise/velero/3.2.8/ix_values.yaml similarity index 94% rename from enterprise/velero/3.2.7/ix_values.yaml rename to enterprise/velero/3.2.8/ix_values.yaml index 57ce07efbfc..d2d6255a8f4 100644 --- a/enterprise/velero/3.2.7/ix_values.yaml +++ b/enterprise/velero/3.2.8/ix_values.yaml @@ -1,7 +1,7 @@ image: pullPolicy: IfNotPresent repository: tccr.io/tccr/alpine - tag: latest@sha256:14eaf3fc268822c9631c45eeabb818f6c357edada9380fd725d6591b70e6edcc + tag: latest@sha256:ade0065e19edaa4f6903d464ee70605111a48394536deb94f31b661264704558 manifestManager: enabled: false operator: diff --git a/enterprise/velero/3.2.7/questions.yaml b/enterprise/velero/3.2.8/questions.yaml similarity index 100% rename from enterprise/velero/3.2.7/questions.yaml rename to enterprise/velero/3.2.8/questions.yaml diff --git a/operators/cert-manager/3.1.15/templates/NOTES.txt b/enterprise/velero/3.2.8/templates/NOTES.txt similarity index 100% rename from operators/cert-manager/3.1.15/templates/NOTES.txt rename to enterprise/velero/3.2.8/templates/NOTES.txt diff --git a/enterprise/velero/3.2.7/templates/common.yaml b/enterprise/velero/3.2.8/templates/common.yaml similarity index 100% rename from enterprise/velero/3.2.7/templates/common.yaml rename to enterprise/velero/3.2.8/templates/common.yaml diff --git a/operators/cert-manager/3.1.15/values.yaml b/enterprise/velero/3.2.8/values.yaml similarity index 100% rename from operators/cert-manager/3.1.15/values.yaml rename to enterprise/velero/3.2.8/values.yaml diff --git a/operators/cert-manager/3.1.15/app-changelog.md b/operators/cert-manager/3.1.15/app-changelog.md deleted file mode 100644 index 24739f91ffa..00000000000 --- a/operators/cert-manager/3.1.15/app-changelog.md +++ /dev/null @@ -1,9 +0,0 @@ - - -## [cert-manager-3.1.15](https://github.com/truecharts/charts/compare/cert-manager-3.1.14...cert-manager-3.1.15) (2024-02-03) - -### Chore - - - -- update container image common to v17.2.30[@19ad5ec](https://github.com/19ad5ec) by renovate ([#17804](https://github.com/truecharts/charts/issues/17804)) \ No newline at end of file diff --git a/operators/cert-manager/3.1.15/CHANGELOG.md b/operators/cert-manager/3.1.16/CHANGELOG.md similarity index 90% rename from operators/cert-manager/3.1.15/CHANGELOG.md rename to operators/cert-manager/3.1.16/CHANGELOG.md index 8d14484be98..73891a55c4c 100644 --- a/operators/cert-manager/3.1.15/CHANGELOG.md +++ b/operators/cert-manager/3.1.16/CHANGELOG.md @@ -7,6 +7,15 @@ title: Changelog +## [cert-manager-3.1.16](https://github.com/truecharts/charts/compare/cert-manager-3.1.15...cert-manager-3.1.16) (2024-02-12) + +### Chore + + + +- update container image tccr.io/tccr/alpine to latest[@ade0065](https://github.com/ade0065) by renovate ([#18108](https://github.com/truecharts/charts/issues/18108)) + + ## [cert-manager-3.1.15](https://github.com/truecharts/charts/compare/cert-manager-3.1.14...cert-manager-3.1.15) (2024-02-03) ### Chore @@ -88,12 +97,3 @@ title: Changelog - update container image tccr.io/tccr/alpine to latest[@12e0f84](https://github.com/12e0f84) by renovate ([#16791](https://github.com/truecharts/charts/issues/16791)) - - -## [cert-manager-3.1.6](https://github.com/truecharts/charts/compare/cert-manager-3.1.5...cert-manager-3.1.6) (2024-01-02) - -### Chore - - - -- fix some refs ([#16749](https://github.com/truecharts/charts/issues/16749)) diff --git a/operators/cert-manager/3.1.15/Chart.yaml b/operators/cert-manager/3.1.16/Chart.yaml similarity index 98% rename from operators/cert-manager/3.1.15/Chart.yaml rename to operators/cert-manager/3.1.16/Chart.yaml index c0dca75ad1f..004d097e828 100644 --- a/operators/cert-manager/3.1.15/Chart.yaml +++ b/operators/cert-manager/3.1.16/Chart.yaml @@ -43,4 +43,4 @@ sources: - https://github.com/truecharts/charts/tree/master/charts/operators/cert-manager - https://github.com/truecharts/containers/tree/master/apps/alpine type: application -version: 3.1.15 +version: 3.1.16 diff --git a/operators/cert-manager/3.1.15/LICENSE b/operators/cert-manager/3.1.16/LICENSE similarity index 100% rename from operators/cert-manager/3.1.15/LICENSE rename to operators/cert-manager/3.1.16/LICENSE diff --git a/operators/cert-manager/3.1.15/README.md b/operators/cert-manager/3.1.16/README.md similarity index 100% rename from operators/cert-manager/3.1.15/README.md rename to operators/cert-manager/3.1.16/README.md diff --git a/operators/cert-manager/3.1.16/app-changelog.md b/operators/cert-manager/3.1.16/app-changelog.md new file mode 100644 index 00000000000..22d67549cff --- /dev/null +++ b/operators/cert-manager/3.1.16/app-changelog.md @@ -0,0 +1,9 @@ + + +## [cert-manager-3.1.16](https://github.com/truecharts/charts/compare/cert-manager-3.1.15...cert-manager-3.1.16) (2024-02-12) + +### Chore + + + +- update container image tccr.io/tccr/alpine to latest[@ade0065](https://github.com/ade0065) by renovate ([#18108](https://github.com/truecharts/charts/issues/18108)) \ No newline at end of file diff --git a/operators/cert-manager/3.1.15/app-readme.md b/operators/cert-manager/3.1.16/app-readme.md similarity index 100% rename from operators/cert-manager/3.1.15/app-readme.md rename to operators/cert-manager/3.1.16/app-readme.md diff --git a/operators/cert-manager/3.1.15/charts/cert-manager-v1.13.3.tgz b/operators/cert-manager/3.1.16/charts/cert-manager-v1.13.3.tgz similarity index 100% rename from operators/cert-manager/3.1.15/charts/cert-manager-v1.13.3.tgz rename to operators/cert-manager/3.1.16/charts/cert-manager-v1.13.3.tgz diff --git a/operators/cloudnative-pg/5.2.15/charts/common-17.2.30.tgz b/operators/cert-manager/3.1.16/charts/common-17.2.30.tgz similarity index 100% rename from operators/cloudnative-pg/5.2.15/charts/common-17.2.30.tgz rename to operators/cert-manager/3.1.16/charts/common-17.2.30.tgz diff --git a/operators/cert-manager/3.1.15/ix_values.yaml b/operators/cert-manager/3.1.16/ix_values.yaml similarity index 87% rename from operators/cert-manager/3.1.15/ix_values.yaml rename to operators/cert-manager/3.1.16/ix_values.yaml index 91ebf37a73d..210942c0124 100644 --- a/operators/cert-manager/3.1.15/ix_values.yaml +++ b/operators/cert-manager/3.1.16/ix_values.yaml @@ -1,7 +1,7 @@ image: repository: tccr.io/tccr/alpine pullPolicy: IfNotPresent - tag: latest@sha256:14eaf3fc268822c9631c45eeabb818f6c357edada9380fd725d6591b70e6edcc + tag: latest@sha256:ade0065e19edaa4f6903d464ee70605111a48394536deb94f31b661264704558 service: main: diff --git a/operators/cert-manager/3.1.15/questions.yaml b/operators/cert-manager/3.1.16/questions.yaml similarity index 96% rename from operators/cert-manager/3.1.15/questions.yaml rename to operators/cert-manager/3.1.16/questions.yaml index a805b08b12a..ecfdc2a43e9 100644 --- a/operators/cert-manager/3.1.15/questions.yaml +++ b/operators/cert-manager/3.1.16/questions.yaml @@ -23,6 +23,8 @@ groups: description: Metrics - name: Addons description: Addon Configuration + - name: Backup Configuration + description: Configure Velero Backup Schedule - name: Advanced description: Advanced Configuration - name: Postgresql diff --git a/operators/cloudnative-pg/5.2.15/templates/NOTES.txt b/operators/cert-manager/3.1.16/templates/NOTES.txt similarity index 100% rename from operators/cloudnative-pg/5.2.15/templates/NOTES.txt rename to operators/cert-manager/3.1.16/templates/NOTES.txt diff --git a/operators/cert-manager/3.1.15/templates/common.yaml b/operators/cert-manager/3.1.16/templates/common.yaml similarity index 100% rename from operators/cert-manager/3.1.15/templates/common.yaml rename to operators/cert-manager/3.1.16/templates/common.yaml diff --git a/operators/cert-manager/3.1.15/templates/crds.yaml b/operators/cert-manager/3.1.16/templates/crds.yaml similarity index 100% rename from operators/cert-manager/3.1.15/templates/crds.yaml rename to operators/cert-manager/3.1.16/templates/crds.yaml diff --git a/operators/cloudnative-pg/5.2.15/values.yaml b/operators/cert-manager/3.1.16/values.yaml similarity index 100% rename from operators/cloudnative-pg/5.2.15/values.yaml rename to operators/cert-manager/3.1.16/values.yaml diff --git a/operators/cloudnative-pg/5.2.15/app-changelog.md b/operators/cloudnative-pg/5.2.15/app-changelog.md deleted file mode 100644 index 53897128c6a..00000000000 --- a/operators/cloudnative-pg/5.2.15/app-changelog.md +++ /dev/null @@ -1,9 +0,0 @@ - - -## [cloudnative-pg-5.2.15](https://github.com/truecharts/charts/compare/cloudnative-pg-5.2.14...cloudnative-pg-5.2.15) (2024-02-03) - -### Chore - - - -- update container image common to v17.2.30[@19ad5ec](https://github.com/19ad5ec) by renovate ([#17804](https://github.com/truecharts/charts/issues/17804)) \ No newline at end of file diff --git a/operators/cloudnative-pg/5.2.15/CHANGELOG.md b/operators/cloudnative-pg/5.2.16/CHANGELOG.md similarity index 90% rename from operators/cloudnative-pg/5.2.15/CHANGELOG.md rename to operators/cloudnative-pg/5.2.16/CHANGELOG.md index 8ff2b5f0eb2..4db840f1893 100644 --- a/operators/cloudnative-pg/5.2.15/CHANGELOG.md +++ b/operators/cloudnative-pg/5.2.16/CHANGELOG.md @@ -7,6 +7,15 @@ title: Changelog +## [cloudnative-pg-5.2.16](https://github.com/truecharts/charts/compare/cloudnative-pg-5.2.15...cloudnative-pg-5.2.16) (2024-02-12) + +### Chore + + + +- update container image tccr.io/tccr/alpine to latest[@ade0065](https://github.com/ade0065) by renovate ([#18108](https://github.com/truecharts/charts/issues/18108)) + + ## [cloudnative-pg-5.2.15](https://github.com/truecharts/charts/compare/cloudnative-pg-5.2.14...cloudnative-pg-5.2.15) (2024-02-03) ### Chore @@ -88,12 +97,3 @@ title: Changelog - update container image tccr.io/tccr/alpine to latest[@12e0f84](https://github.com/12e0f84) by renovate ([#16791](https://github.com/truecharts/charts/issues/16791)) - - -## [cloudnative-pg-5.2.6](https://github.com/truecharts/charts/compare/cloudnative-pg-5.2.5...cloudnative-pg-5.2.6) (2024-01-02) - -### Chore - - - -- fix some refs ([#16749](https://github.com/truecharts/charts/issues/16749)) diff --git a/operators/cloudnative-pg/5.2.15/Chart.yaml b/operators/cloudnative-pg/5.2.16/Chart.yaml similarity index 98% rename from operators/cloudnative-pg/5.2.15/Chart.yaml rename to operators/cloudnative-pg/5.2.16/Chart.yaml index 73b161b2b97..780653a0c57 100644 --- a/operators/cloudnative-pg/5.2.15/Chart.yaml +++ b/operators/cloudnative-pg/5.2.16/Chart.yaml @@ -43,4 +43,4 @@ sources: - https://github.com/truecharts/charts/tree/master/charts/operators/cloudnative-pg - https://github.com/truecharts/containers/tree/master/apps/alpine type: application -version: 5.2.15 +version: 5.2.16 diff --git a/operators/cloudnative-pg/5.2.15/LICENSE b/operators/cloudnative-pg/5.2.16/LICENSE similarity index 100% rename from operators/cloudnative-pg/5.2.15/LICENSE rename to operators/cloudnative-pg/5.2.16/LICENSE diff --git a/operators/cloudnative-pg/5.2.15/README.md b/operators/cloudnative-pg/5.2.16/README.md similarity index 100% rename from operators/cloudnative-pg/5.2.15/README.md rename to operators/cloudnative-pg/5.2.16/README.md diff --git a/operators/cloudnative-pg/5.2.16/app-changelog.md b/operators/cloudnative-pg/5.2.16/app-changelog.md new file mode 100644 index 00000000000..0641cf9e08d --- /dev/null +++ b/operators/cloudnative-pg/5.2.16/app-changelog.md @@ -0,0 +1,9 @@ + + +## [cloudnative-pg-5.2.16](https://github.com/truecharts/charts/compare/cloudnative-pg-5.2.15...cloudnative-pg-5.2.16) (2024-02-12) + +### Chore + + + +- update container image tccr.io/tccr/alpine to latest[@ade0065](https://github.com/ade0065) by renovate ([#18108](https://github.com/truecharts/charts/issues/18108)) \ No newline at end of file diff --git a/operators/cloudnative-pg/5.2.15/app-readme.md b/operators/cloudnative-pg/5.2.16/app-readme.md similarity index 100% rename from operators/cloudnative-pg/5.2.15/app-readme.md rename to operators/cloudnative-pg/5.2.16/app-readme.md diff --git a/operators/cloudnative-pg/5.2.15/charts/cloudnative-pg-0.20.0.tgz b/operators/cloudnative-pg/5.2.16/charts/cloudnative-pg-0.20.0.tgz similarity index 100% rename from operators/cloudnative-pg/5.2.15/charts/cloudnative-pg-0.20.0.tgz rename to operators/cloudnative-pg/5.2.16/charts/cloudnative-pg-0.20.0.tgz diff --git a/operators/prometheus-operator/4.5.6/charts/common-17.2.30.tgz b/operators/cloudnative-pg/5.2.16/charts/common-17.2.30.tgz similarity index 100% rename from operators/prometheus-operator/4.5.6/charts/common-17.2.30.tgz rename to operators/cloudnative-pg/5.2.16/charts/common-17.2.30.tgz diff --git a/operators/cloudnative-pg/5.2.15/ix_values.yaml b/operators/cloudnative-pg/5.2.16/ix_values.yaml similarity index 77% rename from operators/cloudnative-pg/5.2.15/ix_values.yaml rename to operators/cloudnative-pg/5.2.16/ix_values.yaml index 9c5292b70d7..8ffafd21a48 100644 --- a/operators/cloudnative-pg/5.2.15/ix_values.yaml +++ b/operators/cloudnative-pg/5.2.16/ix_values.yaml @@ -1,7 +1,7 @@ image: repository: tccr.io/tccr/alpine pullPolicy: IfNotPresent - tag: latest@sha256:14eaf3fc268822c9631c45eeabb818f6c357edada9380fd725d6591b70e6edcc + tag: latest@sha256:ade0065e19edaa4f6903d464ee70605111a48394536deb94f31b661264704558 service: main: diff --git a/operators/cloudnative-pg/5.2.15/questions.yaml b/operators/cloudnative-pg/5.2.16/questions.yaml similarity index 94% rename from operators/cloudnative-pg/5.2.15/questions.yaml rename to operators/cloudnative-pg/5.2.16/questions.yaml index e4653ab8c34..4e31c1bf4ee 100644 --- a/operators/cloudnative-pg/5.2.15/questions.yaml +++ b/operators/cloudnative-pg/5.2.16/questions.yaml @@ -23,6 +23,8 @@ groups: description: Metrics - name: Addons description: Addon Configuration + - name: Backup Configuration + description: Configure Velero Backup Schedule - name: Advanced description: Advanced Configuration - name: Postgresql diff --git a/operators/prometheus-operator/4.5.6/templates/NOTES.txt b/operators/cloudnative-pg/5.2.16/templates/NOTES.txt similarity index 100% rename from operators/prometheus-operator/4.5.6/templates/NOTES.txt rename to operators/cloudnative-pg/5.2.16/templates/NOTES.txt diff --git a/operators/cloudnative-pg/5.2.15/templates/common.yaml b/operators/cloudnative-pg/5.2.16/templates/common.yaml similarity index 100% rename from operators/cloudnative-pg/5.2.15/templates/common.yaml rename to operators/cloudnative-pg/5.2.16/templates/common.yaml diff --git a/operators/prometheus-operator/4.5.6/values.yaml b/operators/cloudnative-pg/5.2.16/values.yaml similarity index 100% rename from operators/prometheus-operator/4.5.6/values.yaml rename to operators/cloudnative-pg/5.2.16/values.yaml diff --git a/operators/metallb/13.1.16/CHANGELOG.md b/operators/metallb/13.1.16/CHANGELOG.md new file mode 100644 index 00000000000..baef5d36dae --- /dev/null +++ b/operators/metallb/13.1.16/CHANGELOG.md @@ -0,0 +1,99 @@ +--- +title: Changelog +--- + +**Important:** +*for the complete changelog, please refer to the website* + + + +## [metallb-13.1.16](https://github.com/truecharts/charts/compare/metallb-13.1.15...metallb-13.1.16) (2024-02-12) + +### Chore + + + +- update container image tccr.io/tccr/alpine to latest[@ade0065](https://github.com/ade0065) by renovate ([#18108](https://github.com/truecharts/charts/issues/18108)) + + +## [metallb-13.1.15](https://github.com/truecharts/charts/compare/metallb-13.1.14...metallb-13.1.15) (2024-02-03) + +### Chore + + + +- update container image common to v17.2.30[@19ad5ec](https://github.com/19ad5ec) by renovate ([#17804](https://github.com/truecharts/charts/issues/17804)) + + +## [metallb-13.1.14](https://github.com/truecharts/charts/compare/metallb-13.1.13...metallb-13.1.14) (2024-01-26) + +### Chore + + + +- update container image common to v17.2.29[@d7c41a3](https://github.com/d7c41a3) by renovate ([#17545](https://github.com/truecharts/charts/issues/17545)) + + +## [metallb-13.1.13](https://github.com/truecharts/charts/compare/metallb-13.1.12...metallb-13.1.13) (2024-01-21) + +### Chore + + + +- update container image common to v17.2.28[@918b4c5](https://github.com/918b4c5) by renovate ([#17478](https://github.com/truecharts/charts/issues/17478)) + + +## [metallb-13.1.12](https://github.com/truecharts/charts/compare/metallb-13.1.11...metallb-13.1.12) (2024-01-21) + +### Chore + + + +- update container image tccr.io/tccr/alpine to latest[@14eaf3f](https://github.com/14eaf3f) by renovate ([#17470](https://github.com/truecharts/charts/issues/17470)) + + +## [metallb-13.1.11](https://github.com/truecharts/charts/compare/metallb-13.1.10...metallb-13.1.11) (2024-01-21) + +### Chore + + + +- update container image common to v17.2.26[@24c98f7](https://github.com/24c98f7) by renovate ([#17409](https://github.com/truecharts/charts/issues/17409)) + + +## [metallb-13.1.10](https://github.com/truecharts/charts/compare/metallb-13.1.9...metallb-13.1.10) (2024-01-21) + +### Chore + + + +- update metadata in chart.yaml ([#17457](https://github.com/truecharts/charts/issues/17457)) + + + + +## [metallb-13.1.9](https://github.com/truecharts/charts/compare/metallb-13.1.8...metallb-13.1.9) (2024-01-09) + +### Chore + + + +- update container image common to v17.2.22[@e7c9056](https://github.com/e7c9056) by renovate ([#16986](https://github.com/truecharts/charts/issues/16986)) + + +## [metallb-13.1.8](https://github.com/truecharts/charts/compare/metallb-13.1.7...metallb-13.1.8) (2024-01-02) + +### Chore + + + +- force bump to ensure up-to-date catalogs + + +## [metallb-13.1.7](https://github.com/truecharts/charts/compare/metallb-13.1.6...metallb-13.1.7) (2024-01-02) + +### Chore + + + +- update container image tccr.io/tccr/alpine to latest[@12e0f84](https://github.com/12e0f84) by renovate ([#16791](https://github.com/truecharts/charts/issues/16791)) diff --git a/operators/metallb/13.1.16/Chart.yaml b/operators/metallb/13.1.16/Chart.yaml new file mode 100644 index 00000000000..74391b92254 --- /dev/null +++ b/operators/metallb/13.1.16/Chart.yaml @@ -0,0 +1,45 @@ +annotations: + max_scale_version: 23.10.2 + min_scale_version: 23.10.0 + truecharts.org/SCALE-support: "true" + truecharts.org/category: operators + truecharts.org/max_helm_version: "3.14" + truecharts.org/min_helm_version: "3.12" + truecharts.org/train: operators +apiVersion: v2 +appVersion: latest +dependencies: + - name: common + version: 17.2.30 + repository: oci://tccr.io/truecharts + condition: "" + alias: "" + tags: [] + import-values: [] + - name: metallb + version: 0.13.12 + repository: https://metallb.github.io/metallb + condition: "" + alias: metallb + tags: [] + import-values: [] +deprecated: false +description: A network load-balancer implementation for Kubernetes using standard routing protocols +home: https://truecharts.org/charts/operators/metallb +icon: https://truecharts.org/img/hotlink-ok/chart-icons/metallb.png +keywords: + - metallb + - loadbalancer +kubeVersion: ">=1.24.0-0" +maintainers: + - name: TrueCharts + email: info@truecharts.org + url: https://truecharts.org +name: metallb +sources: + - https://github.com/metallb/metallb + - https://metallb.universe.tf + - https://github.com/truecharts/charts/tree/master/charts/operators/metallb + - https://github.com/truecharts/containers/tree/master/apps/alpine +type: application +version: 13.1.16 diff --git a/operators/prometheus-operator/4.5.6/LICENSE b/operators/metallb/13.1.16/LICENSE similarity index 100% rename from operators/prometheus-operator/4.5.6/LICENSE rename to operators/metallb/13.1.16/LICENSE diff --git a/operators/metallb/13.1.16/README.md b/operators/metallb/13.1.16/README.md new file mode 100644 index 00000000000..07b6c030324 --- /dev/null +++ b/operators/metallb/13.1.16/README.md @@ -0,0 +1,28 @@ +--- +title: README +--- + +## General Info + +TrueCharts can be installed as both _normal_ Helm Charts or as Apps on TrueNAS SCALE. +However only installations using the TrueNAS SCALE Apps system are supported. + +For more information about this App, please check the docs on the TrueCharts [website](https://truecharts.org/charts/operators/metallb) + +**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)** + +## Support + +- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/manual/SCALE/guides/scale-intro). +- See the [Website](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/charts/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/operators/metallb/13.1.16/app-changelog.md b/operators/metallb/13.1.16/app-changelog.md new file mode 100644 index 00000000000..c827ec5fcab --- /dev/null +++ b/operators/metallb/13.1.16/app-changelog.md @@ -0,0 +1,9 @@ + + +## [metallb-13.1.16](https://github.com/truecharts/charts/compare/metallb-13.1.15...metallb-13.1.16) (2024-02-12) + +### Chore + + + +- update container image tccr.io/tccr/alpine to latest[@ade0065](https://github.com/ade0065) by renovate ([#18108](https://github.com/truecharts/charts/issues/18108)) \ No newline at end of file diff --git a/operators/metallb/13.1.16/app-readme.md b/operators/metallb/13.1.16/app-readme.md new file mode 100644 index 00000000000..ef8e745914c --- /dev/null +++ b/operators/metallb/13.1.16/app-readme.md @@ -0,0 +1,8 @@ +A network load-balancer implementation for Kubernetes using standard routing protocols + +This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/charts/operators/metallb](https://truecharts.org/charts/operators/metallb) + +--- + +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! diff --git a/stable/blender/4.1.18/charts/common-17.2.30.tgz b/operators/metallb/13.1.16/charts/common-17.2.30.tgz similarity index 100% rename from stable/blender/4.1.18/charts/common-17.2.30.tgz rename to operators/metallb/13.1.16/charts/common-17.2.30.tgz diff --git a/operators/metallb/13.1.16/charts/metallb-0.13.12.tgz b/operators/metallb/13.1.16/charts/metallb-0.13.12.tgz new file mode 100644 index 0000000000000000000000000000000000000000..9e8367bda3002b90ae0b2eb0c933d89e731da9f0 GIT binary patch literal 24427 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 C0eS-f literal 0 HcmV?d00001 diff --git a/operators/metallb/13.1.16/ix_values.yaml b/operators/metallb/13.1.16/ix_values.yaml new file mode 100644 index 00000000000..8ffafd21a48 --- /dev/null +++ b/operators/metallb/13.1.16/ix_values.yaml @@ -0,0 +1,25 @@ +image: + repository: tccr.io/tccr/alpine + pullPolicy: IfNotPresent + tag: latest@sha256:ade0065e19edaa4f6903d464ee70605111a48394536deb94f31b661264704558 + +service: + main: + enabled: false + ports: + main: + enabled: false + +workload: + main: + enabled: false + +portal: + open: + enabled: false + +operator: + register: true + +manifestManager: + enabled: false diff --git a/operators/prometheus-operator/4.5.6/questions.yaml b/operators/metallb/13.1.16/questions.yaml similarity index 94% rename from operators/prometheus-operator/4.5.6/questions.yaml rename to operators/metallb/13.1.16/questions.yaml index e4653ab8c34..4e31c1bf4ee 100644 --- a/operators/prometheus-operator/4.5.6/questions.yaml +++ b/operators/metallb/13.1.16/questions.yaml @@ -23,6 +23,8 @@ groups: description: Metrics - name: Addons description: Addon Configuration + - name: Backup Configuration + description: Configure Velero Backup Schedule - name: Advanced description: Advanced Configuration - name: Postgresql diff --git a/stable/cops/7.1.17/templates/NOTES.txt b/operators/metallb/13.1.16/templates/NOTES.txt similarity index 100% rename from stable/cops/7.1.17/templates/NOTES.txt rename to operators/metallb/13.1.16/templates/NOTES.txt diff --git a/operators/metallb/13.1.16/templates/common.yaml b/operators/metallb/13.1.16/templates/common.yaml new file mode 100644 index 00000000000..995efb03eb0 --- /dev/null +++ b/operators/metallb/13.1.16/templates/common.yaml @@ -0,0 +1,5 @@ +{{/* Make sure all variables are set properly */}} +{{- include "tc.v1.common.loader.init" . }} + +{{/* Render the templates */}} +{{ include "tc.v1.common.loader.apply" . }} diff --git a/stable/blender/4.1.18/values.yaml b/operators/metallb/13.1.16/values.yaml similarity index 100% rename from stable/blender/4.1.18/values.yaml rename to operators/metallb/13.1.16/values.yaml diff --git a/operators/prometheus-operator/4.5.6/app-changelog.md b/operators/prometheus-operator/4.5.6/app-changelog.md deleted file mode 100644 index da44a19911c..00000000000 --- a/operators/prometheus-operator/4.5.6/app-changelog.md +++ /dev/null @@ -1,9 +0,0 @@ - - -## [prometheus-operator-4.5.6](https://github.com/truecharts/charts/compare/prometheus-operator-4.5.5...prometheus-operator-4.5.6) (2024-02-03) - -### Chore - - - -- update container image common to v17.2.30[@19ad5ec](https://github.com/19ad5ec) by renovate ([#17804](https://github.com/truecharts/charts/issues/17804)) \ No newline at end of file diff --git a/operators/prometheus-operator/4.5.6/CHANGELOG.md b/operators/prometheus-operator/4.5.7/CHANGELOG.md similarity index 90% rename from operators/prometheus-operator/4.5.6/CHANGELOG.md rename to operators/prometheus-operator/4.5.7/CHANGELOG.md index 236aaa5af45..a5ef5d5d8ae 100644 --- a/operators/prometheus-operator/4.5.6/CHANGELOG.md +++ b/operators/prometheus-operator/4.5.7/CHANGELOG.md @@ -7,6 +7,15 @@ title: Changelog +## [prometheus-operator-4.5.7](https://github.com/truecharts/charts/compare/prometheus-operator-4.5.6...prometheus-operator-4.5.7) (2024-02-12) + +### Chore + + + +- update container image tccr.io/tccr/alpine to latest[@ade0065](https://github.com/ade0065) by renovate ([#18108](https://github.com/truecharts/charts/issues/18108)) + + ## [prometheus-operator-4.5.6](https://github.com/truecharts/charts/compare/prometheus-operator-4.5.5...prometheus-operator-4.5.6) (2024-02-03) ### Chore @@ -88,12 +97,3 @@ title: Changelog - update container image common to v17.2.22[@e7c9056](https://github.com/e7c9056) by renovate ([#16986](https://github.com/truecharts/charts/issues/16986)) - - -## [prometheus-operator-4.3.0](https://github.com/truecharts/charts/compare/prometheus-operator-4.2.0...prometheus-operator-4.3.0) (2024-01-09) - -### Chore - - - -- update helm chart kube-prometheus-stack to 55.7.0 by renovate ([#17058](https://github.com/truecharts/charts/issues/17058)) diff --git a/operators/prometheus-operator/4.5.6/Chart.yaml b/operators/prometheus-operator/4.5.7/Chart.yaml similarity index 98% rename from operators/prometheus-operator/4.5.6/Chart.yaml rename to operators/prometheus-operator/4.5.7/Chart.yaml index 977fcf1c4d2..660e45b6817 100644 --- a/operators/prometheus-operator/4.5.6/Chart.yaml +++ b/operators/prometheus-operator/4.5.7/Chart.yaml @@ -42,4 +42,4 @@ sources: - https://github.com/truecharts/charts/tree/master/charts/operators/prometheus-operator - https://github.com/truecharts/containers/tree/master/apps/alpine type: application -version: 4.5.6 +version: 4.5.7 diff --git a/operators/prometheus-operator/4.5.7/LICENSE b/operators/prometheus-operator/4.5.7/LICENSE new file mode 100644 index 00000000000..4dfe12ac30e --- /dev/null +++ b/operators/prometheus-operator/4.5.7/LICENSE @@ -0,0 +1,106 @@ +Business Source License 1.1 + +Parameters + +Licensor: The TrueCharts Project, it's owner and it's contributors +Licensed Work: The TrueCharts "MetalLB" Helm Chart +Additional Use Grant: You may use the licensed work in production, as long + as it is directly sourced from a TrueCharts provided + official repository, catalog or source. You may also make private + modification to the directly sourced licenced work, + when used in production. + + The following cases are, due to their nature, also + defined as 'production use' and explicitly prohibited: + - Bundling, including or displaying the licensed work + with(in) another work intended for production use, + with the apparent intend of facilitating and/or + promoting production use by third parties in + violation of this license. + +Change Date: 2050-01-01 + +Change License: 3-clause BSD license + +For information about alternative licensing arrangements for the Software, +please contact: legal@truecharts.org + +Notice + +The Business Source License (this document, or the “License”) is not an Open +Source license. However, the Licensed Work will eventually be made available +under an Open Source License, as stated in this License. + +License text copyright (c) 2017 MariaDB Corporation Ab, All Rights Reserved. +“Business Source License” is a trademark of MariaDB Corporation Ab. + +----------------------------------------------------------------------------- + +Business Source License 1.1 + +Terms + +The Licensor hereby grants you the right to copy, modify, create derivative +works, redistribute, and make non-production use of the Licensed Work. The +Licensor may make an Additional Use Grant, above, permitting limited +production use. + +Effective on the Change Date, or the fourth anniversary of the first publicly +available distribution of a specific version of the Licensed Work under this +License, whichever comes first, the Licensor hereby grants you rights under +the terms of the Change License, and the rights granted in the paragraph +above terminate. + +If your use of the Licensed Work does not comply with the requirements +currently in effect as described in this License, you must purchase a +commercial license from the Licensor, its affiliated entities, or authorized +resellers, or you must refrain from using the Licensed Work. + +All copies of the original and modified Licensed Work, and derivative works +of the Licensed Work, are subject to this License. This License applies +separately for each version of the Licensed Work and the Change Date may vary +for each version of the Licensed Work released by Licensor. + +You must conspicuously display this License on each original or modified copy +of the Licensed Work. If you receive the Licensed Work in original or +modified form from a third party, the terms and conditions set forth in this +License apply to your use of that work. + +Any use of the Licensed Work in violation of this License will automatically +terminate your rights under this License for the current and all other +versions of the Licensed Work. + +This License does not grant you any right in any trademark or logo of +Licensor or its affiliates (provided that you may use a trademark or logo of +Licensor as expressly required by this License). + +TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON +AN “AS IS” BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS, +EXPRESS OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND +TITLE. + +MariaDB hereby grants you permission to use this License’s text to license +your works, and to refer to it using the trademark “Business Source License”, +as long as you comply with the Covenants of Licensor below. + +Covenants of Licensor + +In consideration of the right to use this License’s text and the “Business +Source License” name and trademark, Licensor covenants to MariaDB, and to all +other recipients of the licensed work to be provided by Licensor: + +1. To specify as the Change License the GPL Version 2.0 or any later version, + or a license that is compatible with GPL Version 2.0 or a later version, + where “compatible” means that software provided under the Change License can + be included in a program with software provided under GPL Version 2.0 or a + later version. Licensor may specify additional Change Licenses without + limitation. + +2. To either: (a) specify an additional grant of rights to use that does not + impose any additional restriction on the right granted in this License, as + the Additional Use Grant; or (b) insert the text “None”. + +3. To specify a Change Date. + +4. Not to modify this License in any other way. diff --git a/operators/prometheus-operator/4.5.6/README.md b/operators/prometheus-operator/4.5.7/README.md similarity index 100% rename from operators/prometheus-operator/4.5.6/README.md rename to operators/prometheus-operator/4.5.7/README.md diff --git a/operators/prometheus-operator/4.5.7/app-changelog.md b/operators/prometheus-operator/4.5.7/app-changelog.md new file mode 100644 index 00000000000..9f1f30a79e5 --- /dev/null +++ b/operators/prometheus-operator/4.5.7/app-changelog.md @@ -0,0 +1,9 @@ + + +## [prometheus-operator-4.5.7](https://github.com/truecharts/charts/compare/prometheus-operator-4.5.6...prometheus-operator-4.5.7) (2024-02-12) + +### Chore + + + +- update container image tccr.io/tccr/alpine to latest[@ade0065](https://github.com/ade0065) by renovate ([#18108](https://github.com/truecharts/charts/issues/18108)) \ No newline at end of file diff --git a/operators/prometheus-operator/4.5.6/app-readme.md b/operators/prometheus-operator/4.5.7/app-readme.md similarity index 100% rename from operators/prometheus-operator/4.5.6/app-readme.md rename to operators/prometheus-operator/4.5.7/app-readme.md diff --git a/stable/cops/7.1.17/charts/common-17.2.30.tgz b/operators/prometheus-operator/4.5.7/charts/common-17.2.30.tgz similarity index 100% rename from stable/cops/7.1.17/charts/common-17.2.30.tgz rename to operators/prometheus-operator/4.5.7/charts/common-17.2.30.tgz diff --git a/operators/prometheus-operator/4.5.6/charts/kube-prometheus-stack-55.11.0.tgz b/operators/prometheus-operator/4.5.7/charts/kube-prometheus-stack-55.11.0.tgz similarity index 100% rename from operators/prometheus-operator/4.5.6/charts/kube-prometheus-stack-55.11.0.tgz rename to operators/prometheus-operator/4.5.7/charts/kube-prometheus-stack-55.11.0.tgz diff --git a/operators/prometheus-operator/4.5.6/ix_values.yaml b/operators/prometheus-operator/4.5.7/ix_values.yaml similarity index 97% rename from operators/prometheus-operator/4.5.6/ix_values.yaml rename to operators/prometheus-operator/4.5.7/ix_values.yaml index 1b78b12193a..289bbe25c7d 100644 --- a/operators/prometheus-operator/4.5.6/ix_values.yaml +++ b/operators/prometheus-operator/4.5.7/ix_values.yaml @@ -1,7 +1,7 @@ image: repository: tccr.io/tccr/alpine pullPolicy: IfNotPresent - tag: latest@sha256:14eaf3fc268822c9631c45eeabb818f6c357edada9380fd725d6591b70e6edcc + tag: latest@sha256:ade0065e19edaa4f6903d464ee70605111a48394536deb94f31b661264704558 service: main: diff --git a/operators/prometheus-operator/4.5.7/questions.yaml b/operators/prometheus-operator/4.5.7/questions.yaml new file mode 100644 index 00000000000..4e31c1bf4ee --- /dev/null +++ b/operators/prometheus-operator/4.5.7/questions.yaml @@ -0,0 +1,47 @@ +groups: + - name: Container Image + description: Image to be used for container + - name: General Settings + description: General Deployment Settings + - name: Workload Settings + description: Workload Settings + - 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: Backup Configuration + description: Configure Velero Backup Schedule + - name: Advanced + description: Advanced Configuration + - name: Postgresql + description: Postgresql + - name: Documentation + description: Documentation +questions: + - variable: global + group: General Settings + label: "Global Settings" + schema: + additional_attrs: true + type: dict + attrs: + - variable: stopAll + label: Stop All + description: "Stops All Running pods and hibernates cnpg" + schema: + type: boolean + default: false diff --git a/stable/palworld/1.0.1/templates/NOTES.txt b/operators/prometheus-operator/4.5.7/templates/NOTES.txt similarity index 100% rename from stable/palworld/1.0.1/templates/NOTES.txt rename to operators/prometheus-operator/4.5.7/templates/NOTES.txt diff --git a/operators/prometheus-operator/4.5.6/templates/common.yaml b/operators/prometheus-operator/4.5.7/templates/common.yaml similarity index 100% rename from operators/prometheus-operator/4.5.6/templates/common.yaml rename to operators/prometheus-operator/4.5.7/templates/common.yaml diff --git a/stable/cops/7.1.17/values.yaml b/operators/prometheus-operator/4.5.7/values.yaml similarity index 100% rename from stable/cops/7.1.17/values.yaml rename to operators/prometheus-operator/4.5.7/values.yaml diff --git a/stable/blender/4.1.18/app-changelog.md b/stable/blender/4.1.18/app-changelog.md deleted file mode 100644 index 609a2bb7b90..00000000000 --- a/stable/blender/4.1.18/app-changelog.md +++ /dev/null @@ -1,9 +0,0 @@ - - -## [blender-4.1.18](https://github.com/truecharts/charts/compare/blender-4.1.17...blender-4.1.18) (2024-02-05) - -### Chore - - - -- update container image lscr.io/linuxserver/blender to latest[@87da613](https://github.com/87da613) by renovate ([#17881](https://github.com/truecharts/charts/issues/17881)) \ No newline at end of file diff --git a/stable/blender/4.1.18/CHANGELOG.md b/stable/blender/4.1.19/CHANGELOG.md similarity index 90% rename from stable/blender/4.1.18/CHANGELOG.md rename to stable/blender/4.1.19/CHANGELOG.md index 0d1dca6b136..1e72e00ca76 100644 --- a/stable/blender/4.1.18/CHANGELOG.md +++ b/stable/blender/4.1.19/CHANGELOG.md @@ -7,6 +7,15 @@ title: Changelog +## [blender-4.1.19](https://github.com/truecharts/charts/compare/blender-4.1.18...blender-4.1.19) (2024-02-12) + +### Chore + + + +- update container image lscr.io/linuxserver/blender to latest[@6f16e5f](https://github.com/6f16e5f) by renovate ([#18091](https://github.com/truecharts/charts/issues/18091)) + + ## [blender-4.1.18](https://github.com/truecharts/charts/compare/blender-4.1.17...blender-4.1.18) (2024-02-05) ### Chore @@ -88,12 +97,3 @@ title: Changelog - update container image lscr.io/linuxserver/blender to latest[@6888c91](https://github.com/6888c91) by renovate ([#17164](https://github.com/truecharts/charts/issues/17164)) - - -## [blender-4.1.9](https://github.com/truecharts/charts/compare/blender-4.1.8...blender-4.1.9) (2024-01-09) - -### Chore - - - -- update container image common to v17.2.22[@e7c9056](https://github.com/e7c9056) by renovate ([#16986](https://github.com/truecharts/charts/issues/16986)) diff --git a/stable/blender/4.1.18/Chart.yaml b/stable/blender/4.1.19/Chart.yaml similarity index 98% rename from stable/blender/4.1.18/Chart.yaml rename to stable/blender/4.1.19/Chart.yaml index bdd883fae83..2a51f8a3c1c 100644 --- a/stable/blender/4.1.18/Chart.yaml +++ b/stable/blender/4.1.19/Chart.yaml @@ -36,4 +36,4 @@ sources: - https://github.com/truecharts/charts/tree/master/charts/stable/blender - https://fleet.linuxserver.io/image?name=linuxserver/blender type: application -version: 4.1.18 +version: 4.1.19 diff --git a/stable/blender/4.1.18/README.md b/stable/blender/4.1.19/README.md similarity index 100% rename from stable/blender/4.1.18/README.md rename to stable/blender/4.1.19/README.md diff --git a/stable/blender/4.1.19/app-changelog.md b/stable/blender/4.1.19/app-changelog.md new file mode 100644 index 00000000000..a00da8aaa59 --- /dev/null +++ b/stable/blender/4.1.19/app-changelog.md @@ -0,0 +1,9 @@ + + +## [blender-4.1.19](https://github.com/truecharts/charts/compare/blender-4.1.18...blender-4.1.19) (2024-02-12) + +### Chore + + + +- update container image lscr.io/linuxserver/blender to latest[@6f16e5f](https://github.com/6f16e5f) by renovate ([#18091](https://github.com/truecharts/charts/issues/18091)) \ No newline at end of file diff --git a/stable/blender/4.1.18/app-readme.md b/stable/blender/4.1.19/app-readme.md similarity index 100% rename from stable/blender/4.1.18/app-readme.md rename to stable/blender/4.1.19/app-readme.md diff --git a/stable/goaccess-npm-logs/4.1.12/charts/common-17.2.30.tgz b/stable/blender/4.1.19/charts/common-17.2.30.tgz similarity index 100% rename from stable/goaccess-npm-logs/4.1.12/charts/common-17.2.30.tgz rename to stable/blender/4.1.19/charts/common-17.2.30.tgz diff --git a/stable/blender/4.1.18/ix_values.yaml b/stable/blender/4.1.19/ix_values.yaml similarity index 85% rename from stable/blender/4.1.18/ix_values.yaml rename to stable/blender/4.1.19/ix_values.yaml index 8e332b7c7b0..aaf4932bee8 100644 --- a/stable/blender/4.1.18/ix_values.yaml +++ b/stable/blender/4.1.19/ix_values.yaml @@ -1,7 +1,7 @@ image: pullPolicy: IfNotPresent repository: lscr.io/linuxserver/blender - tag: latest@sha256:87da613820041ffd30796c040c077ddc2ff0a03310bc7032e3239624b3eb4541 + tag: latest@sha256:6f16e5fd93399bce2dd53105f9c40cdf55599a4a968753d51c0daa09a7e41e78 persistence: config: enabled: true diff --git a/stable/blender/4.1.18/questions.yaml b/stable/blender/4.1.19/questions.yaml similarity index 99% rename from stable/blender/4.1.18/questions.yaml rename to stable/blender/4.1.19/questions.yaml index 43cee8dfee2..2764d940fca 100644 --- a/stable/blender/4.1.18/questions.yaml +++ b/stable/blender/4.1.19/questions.yaml @@ -23,6 +23,8 @@ groups: description: Metrics - name: Addons description: Addon Configuration + - name: Backup Configuration + description: Configure Velero Backup Schedule - name: Advanced description: Advanced Configuration - name: Postgresql diff --git a/stable/blender/4.1.18/templates/common.yaml b/stable/blender/4.1.19/templates/common.yaml similarity index 100% rename from stable/blender/4.1.18/templates/common.yaml rename to stable/blender/4.1.19/templates/common.yaml diff --git a/stable/goaccess-npm-logs/4.1.12/values.yaml b/stable/blender/4.1.19/values.yaml similarity index 100% rename from stable/goaccess-npm-logs/4.1.12/values.yaml rename to stable/blender/4.1.19/values.yaml diff --git a/stable/calibre-web/17.1.19/CHANGELOG.md b/stable/calibre-web/17.1.19/CHANGELOG.md new file mode 100644 index 00000000000..52a512c0842 --- /dev/null +++ b/stable/calibre-web/17.1.19/CHANGELOG.md @@ -0,0 +1,99 @@ +--- +title: Changelog +--- + +**Important:** +*for the complete changelog, please refer to the website* + + + +## [calibre-web-17.1.19](https://github.com/truecharts/charts/compare/calibre-web-17.1.18...calibre-web-17.1.19) (2024-02-12) + +### Chore + + + +- update container image linuxserver/calibre-web to version-0.6.21[@6fbeaa0](https://github.com/6fbeaa0) by renovate ([#18086](https://github.com/truecharts/charts/issues/18086)) + + +## [calibre-web-17.1.18](https://github.com/truecharts/charts/compare/calibre-web-17.1.17...calibre-web-17.1.18) (2024-02-05) + +### Chore + + + +- update container image linuxserver/calibre-web to version-0.6.21[@91832b7](https://github.com/91832b7) by renovate ([#17878](https://github.com/truecharts/charts/issues/17878)) + + +## [calibre-web-17.1.17](https://github.com/truecharts/charts/compare/calibre-web-17.1.16...calibre-web-17.1.17) (2024-02-03) + +### Chore + + + +- update container image common to v17.2.30[@19ad5ec](https://github.com/19ad5ec) by renovate ([#17804](https://github.com/truecharts/charts/issues/17804)) + + +## [calibre-web-17.1.16](https://github.com/truecharts/charts/compare/calibre-web-17.1.15...calibre-web-17.1.16) (2024-01-29) + +### Chore + + + +- update container image linuxserver/calibre-web to version-0.6.21[@663dece](https://github.com/663dece) by renovate ([#17640](https://github.com/truecharts/charts/issues/17640)) + + +## [calibre-web-17.1.15](https://github.com/truecharts/charts/compare/calibre-web-17.1.14...calibre-web-17.1.15) (2024-01-26) + +### Chore + + + +- update container image common to v17.2.29[@d7c41a3](https://github.com/d7c41a3) by renovate ([#17545](https://github.com/truecharts/charts/issues/17545)) + + +## [calibre-web-17.1.14](https://github.com/truecharts/charts/compare/calibre-web-17.1.13...calibre-web-17.1.14) (2024-01-21) + +### Chore + + + +- update container image common to v17.2.28[@918b4c5](https://github.com/918b4c5) by renovate ([#17478](https://github.com/truecharts/charts/issues/17478)) + + +## [calibre-web-17.1.13](https://github.com/truecharts/charts/compare/calibre-web-17.1.12...calibre-web-17.1.13) (2024-01-21) + +### Chore + + + +- update container image common to v17.2.26[@24c98f7](https://github.com/24c98f7) by renovate ([#17409](https://github.com/truecharts/charts/issues/17409)) + + +## [calibre-web-17.1.12](https://github.com/truecharts/charts/compare/calibre-web-17.1.11...calibre-web-17.1.12) (2024-01-21) + +### Chore + + + +- update metadata in chart.yaml ([#17457](https://github.com/truecharts/charts/issues/17457)) + + +## [calibre-web-17.1.11](https://github.com/truecharts/charts/compare/calibre-web-17.1.10...calibre-web-17.1.11) (2024-01-21) + +### Chore + + + +- update container image linuxserver/calibre-web to version-0.6.21[@ada5002](https://github.com/ada5002) by renovate ([#17380](https://github.com/truecharts/charts/issues/17380)) + + +## [calibre-web-17.1.10](https://github.com/truecharts/charts/compare/calibre-web-17.1.9...calibre-web-17.1.10) (2024-01-15) + +### Chore + + + +- update container image linuxserver/calibre-web to version-0.6.21[@1d0fed7](https://github.com/1d0fed7) by renovate ([#17237](https://github.com/truecharts/charts/issues/17237)) + + diff --git a/stable/calibre-web/17.1.19/Chart.yaml b/stable/calibre-web/17.1.19/Chart.yaml new file mode 100644 index 00000000000..d33f7afb012 --- /dev/null +++ b/stable/calibre-web/17.1.19/Chart.yaml @@ -0,0 +1,38 @@ +annotations: + max_scale_version: 23.10.2 + min_scale_version: 23.10.0 + truecharts.org/SCALE-support: "true" + truecharts.org/category: media + truecharts.org/max_helm_version: "3.14" + truecharts.org/min_helm_version: "3.12" + truecharts.org/train: stable +apiVersion: v2 +appVersion: 0.6.21 +dependencies: + - name: common + version: 17.2.30 + repository: oci://tccr.io/truecharts + condition: "" + alias: "" + tags: [] + import-values: [] +deprecated: false +description: Calibre-Web is a web app providing a clean interface for browsing, reading and downloading eBooks using an existing Calibre database. +home: https://truecharts.org/charts/stable/calibre-web +icon: https://truecharts.org/img/hotlink-ok/chart-icons/calibre-web.png +keywords: + - calibre-web + - calibre + - ebook +kubeVersion: ">=1.24.0-0" +maintainers: + - name: TrueCharts + email: info@truecharts.org + url: https://truecharts.org +name: calibre-web +sources: + - https://github.com/janeczku/calibre-web + - https://github.com/truecharts/charts/tree/master/charts/stable/calibre-web + - https://hub.docker.com/r/linuxserver/calibre-web +type: application +version: 17.1.19 diff --git a/stable/calibre-web/17.1.19/README.md b/stable/calibre-web/17.1.19/README.md new file mode 100644 index 00000000000..74200bf8b7b --- /dev/null +++ b/stable/calibre-web/17.1.19/README.md @@ -0,0 +1,28 @@ +--- +title: README +--- + +## General Info + +TrueCharts can be installed as both _normal_ Helm Charts or as Apps on TrueNAS SCALE. +However only installations using the TrueNAS SCALE Apps system are supported. + +For more information about this App, please check the docs on the TrueCharts [website](https://truecharts.org/charts/stable/calibre-web) + +**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)** + +## Support + +- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/manual/SCALE/guides/scale-intro). +- See the [Website](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/charts/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/stable/calibre-web/17.1.19/app-changelog.md b/stable/calibre-web/17.1.19/app-changelog.md new file mode 100644 index 00000000000..de0ad2007dc --- /dev/null +++ b/stable/calibre-web/17.1.19/app-changelog.md @@ -0,0 +1,9 @@ + + +## [calibre-web-17.1.19](https://github.com/truecharts/charts/compare/calibre-web-17.1.18...calibre-web-17.1.19) (2024-02-12) + +### Chore + + + +- update container image linuxserver/calibre-web to version-0.6.21[@6fbeaa0](https://github.com/6fbeaa0) by renovate ([#18086](https://github.com/truecharts/charts/issues/18086)) \ No newline at end of file diff --git a/stable/calibre-web/17.1.19/app-readme.md b/stable/calibre-web/17.1.19/app-readme.md new file mode 100644 index 00000000000..339588b8b4e --- /dev/null +++ b/stable/calibre-web/17.1.19/app-readme.md @@ -0,0 +1,8 @@ +Calibre-Web is a web app providing a clean interface for browsing, reading and downloading eBooks using an existing Calibre database. + +This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/charts/stable/calibre-web](https://truecharts.org/charts/stable/calibre-web) + +--- + +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! diff --git a/stable/kdenlive/4.1.16/charts/common-17.2.30.tgz b/stable/calibre-web/17.1.19/charts/common-17.2.30.tgz similarity index 100% rename from stable/kdenlive/4.1.16/charts/common-17.2.30.tgz rename to stable/calibre-web/17.1.19/charts/common-17.2.30.tgz diff --git a/stable/calibre-web/17.1.19/ix_values.yaml b/stable/calibre-web/17.1.19/ix_values.yaml new file mode 100644 index 00000000000..dc68d2858a2 --- /dev/null +++ b/stable/calibre-web/17.1.19/ix_values.yaml @@ -0,0 +1,40 @@ +image: + repository: linuxserver/calibre-web + pullPolicy: IfNotPresent + tag: version-0.6.21@sha256:6fbeaa09cbd0a262baaaccdbdeb07fa7460454d826179b007078462689f6b245 +securityContext: + container: + readOnlyRootFilesystem: false + runAsNonRoot: false + runAsUser: 0 + runAsGroup: 0 +service: + main: + ports: + main: + port: 8083 + protocol: http + targetPort: 8083 +workload: + main: + podSpec: + containers: + main: + probes: + liveness: + type: http + path: / + readiness: + type: http + path: / + startup: + type: http + path: / + env: {} +persistence: + config: + enabled: true + mountPath: /config +portal: + open: + enabled: true diff --git a/stable/calibre-web/17.1.19/questions.yaml b/stable/calibre-web/17.1.19/questions.yaml new file mode 100644 index 00000000000..8cecec3a04b --- /dev/null +++ b/stable/calibre-web/17.1.19/questions.yaml @@ -0,0 +1,2830 @@ +groups: + - name: Container Image + description: Image to be used for container + - name: General Settings + description: General Deployment Settings + - name: Workload Settings + description: Workload Settings + - 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: Backup Configuration + description: Configure Velero Backup Schedule + - name: Advanced + description: Advanced Configuration + - name: Postgresql + description: Postgresql + - name: Documentation + description: Documentation +portals: + open: + protocols: + - "$kubernetes-resource_configmap_tcportal-open_protocol" + host: + - "$kubernetes-resource_configmap_tcportal-open_host" + ports: + - "$kubernetes-resource_configmap_tcportal-open_port" +questions: + - variable: global + group: General Settings + label: "Global Settings" + schema: + additional_attrs: true + type: dict + attrs: + - variable: stopAll + label: Stop All + description: "Stops All Running pods and hibernates cnpg" + schema: + type: boolean + default: false + - variable: workload + group: "Workload Settings" + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type (Advanced) + schema: + type: string + default: Deployment + enum: + - value: Deployment + description: Deployment + - value: DaemonSet + description: DaemonSet + - variable: replicas + label: Replicas (Advanced) + description: Set the number of Replicas + schema: + type: int + show_if: [["type", "!=", "DaemonSet"]] + default: 1 + - variable: podSpec + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: containers + label: Containers + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: Main Container + schema: + additional_attrs: true + type: dict + attrs: + - 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..." + 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: extraArgs + label: Extra Args + schema: + type: list + default: [] + items: + - variable: arg + label: Arg + schema: + type: string + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: command + label: Command + schema: + type: list + default: [] + items: + - variable: param + label: Param + schema: + type: string + - variable: TZ + label: Timezone + group: "General Settings" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: podOptions + group: "General Settings" + label: "Global Pod Options (Advanced)" + schema: + additional_attrs: true + type: dict + attrs: + - variable: expertPodOpts + label: "Expert - Pod Options" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + label: "Host Networking" + schema: + type: boolean + default: false + - variable: dnsConfig + label: "DNS Configuration" + schema: + type: dict + additional_attrs: true + attrs: + - variable: options + label: "Options" + schema: + type: list + default: [{"name": "ndots", "value": "1"}] + items: + - variable: optionsEntry + label: "Option Entry" + schema: + type: dict + additional_attrs: true + attrs: + - variable: name + label: "Name" + schema: + type: string + required: true + - variable: value + label: "Value" + schema: + type: string + - variable: nameservers + label: "Nameservers" + schema: + type: list + default: [] + items: + - variable: nsEntry + label: "Nameserver Entry" + schema: + type: string + required: true + - variable: searches + label: "Searches" + schema: + type: list + default: [] + items: + - variable: searchEntry + label: "Search Entry" + schema: + type: string + required: true + + - variable: imagePullSecretList + group: "General Settings" + label: "Image Pull Secrets" + schema: + type: list + default: [] + items: + - variable: pullsecretentry + label: "Pull Secret" + schema: + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: true + - variable: data + label: Data + schema: + type: dict + additional_attrs: true + attrs: + - variable: registry + label: "Registry" + schema: + type: string + required: true + default: "https://index.docker.io/v1/" + - variable: username + label: "Username" + schema: + type: string + required: true + default: "" + - variable: password + label: "Password" + schema: + type: string + required: true + private: true + default: "" + - variable: email + label: "Email" + schema: + type: string + required: true + default: "" + - 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) + - 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: 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: 8083 + required: true + - variable: serviceexpert + group: Networking and Services + label: Show Expert Config + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: scaleExternalInterface + description: Add External Interfaces + label: Add external Interfaces + group: Networking + schema: + type: list + items: + - variable: interfaceConfiguration + description: Interface Configuration + label: Interface Configuration + schema: + additional_attrs: true + 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: + additional_attrs: true + 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 + - variable: staticIPConfigurations + label: Static IP Addresses + schema: + type: list + show_if: [["type", "=", "static"]] + items: + - variable: staticIP + label: Static IP + schema: + type: ipaddr + cidr: true + - variable: staticRoutes + label: Static Routes + schema: + type: list + show_if: [["type", "=", "static"]] + 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: 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: config + label: "App Config 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: pvc + enum: + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: emptyDir + description: emptyDir + - value: nfs + description: NFS Share + - value: iscsi + description: iSCSI 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: iscsi + label: iSCSI Options + schema: + show_if: [["type", "=", "iscsi"]] + type: dict + additional_attrs: true + attrs: + - variable: targetPortal + label: targetPortal + schema: + type: string + required: true + default: "" + - variable: iqn + label: iqn + schema: + type: string + required: true + default: "" + - variable: lun + label: lun + schema: + type: int + default: 0 + - variable: authSession + label: authSession + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: authDiscovery + label: authDiscovery + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + + - variable: autoPermissions + label: Automatic Permissions Configuration + description: Automatically set permissions + schema: + show_if: [["type", "!=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: chown + label: Run CHOWN + description: | + It will run CHOWN on the path with the given fsGroup + schema: + type: boolean + default: false + - variable: chmod + label: Run CHMOD + description: | + It will run CHMOD on the path with the given value
+ Format should be 3 digits, e.g. 770 + schema: + type: string + valid_chars: '[0-9]{3}' + default: "" + - variable: recursive + label: Recursive + description: | + It will run CHOWN and CHMOD recursively + schema: + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - 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 (Do NOT REDUCE after installation) + description: This value can ONLY be INCREASED after the installation + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: storageClass + label: 'storageClass (Advanced)' + description: 'sets the storageClass to something other than iX default. Only for advanced usecases!' + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "" + - variable: static + label: 'Static Fixed PVC Bindings (Experimental)' + description: Link a PVC to a specific storage location + schema: + show_if: [["type", "=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: mode + label: mode + description: | + disabled: use normal dynamic PVCs + smb: connect to an SMB share + nfs: connect to an NFS share + schema: + type: string + default: "disabled" + enum: + - value: disabled + description: disabled + - value: smb + description: smb + - value: nfs + description: nfs + - variable: server + label: Server + description: server to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "myserver" + - variable: share + label: Share + description: share to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "/myshare" + - variable: user + label: User + description: connecting user + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "myuser" + - variable: domain + label: Domain + description: user domain + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: password + label: Password + description: connecting password + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: volumeSnapshots + label: 'Volume Snapshots (Experimental)' + description: Add an entry to the list to force creation of a volumeSnapshot of this PVC + schema: + show_if: [["type", "=", "pvc"]] + type: list + default: [] + items: + - variable: volumeSnapshotEntry + label: Custom volumeSnapshot + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: 'WARNING: renaming this, means deletion of the snapshot with the old name!' + schema: + type: string + default: "mysnapshot" + required: true + - variable: volumeSnapshotClassName + label: 'volumeSnapshot Class Name (Advanced)' + description: For use with PVCs using a non-default storageClass + schema: + type: string + default: "" + - 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: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: hostPath + enum: + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: emptyDir + description: emptyDir + - 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: iscsi + label: iSCSI Options + schema: + show_if: [["type", "=", "iscsi"]] + type: dict + additional_attrs: true + attrs: + - variable: targetPortal + label: targetPortal + schema: + type: string + required: true + default: "" + - variable: iqn + label: iqn + schema: + type: string + required: true + default: "" + - variable: lun + label: lun + schema: + type: int + default: 0 + - variable: authSession + label: authSession + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: authDiscovery + label: authDiscovery + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: autoPermissions + label: Automatic Permissions Configuration + description: Automatically set permissions + schema: + show_if: [["type", "!=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: chown + label: Run CHOWN + description: | + It will run CHOWN on the path with the given fsGroup + schema: + type: boolean + default: false + - variable: chmod + label: Run CHMOD + description: | + It will run CHMOD on the path with the given value
+ Format should be 3 digits, e.g. 770 + schema: + type: string + valid_chars: '[0-9]{3}' + default: "" + - variable: recursive + label: Recursive + description: | + It will run CHOWN and CHMOD recursively + schema: + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - 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: storageClass + label: 'storageClass (Advanced)' + description: 'sets the storageClass to something other than iX default. Only for advanced usecases!' + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "" + - variable: static + label: 'Static Fixed PVC Bindings (Experimental)' + description: Link a PVC to a specific storage location + schema: + show_if: [["type", "=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: mode + label: mode + description: | + disabled: use normal dynamic PVCs + smb: connect to an SMB share + nfs: connect to an NFS share + schema: + type: string + default: "disabled" + enum: + - value: "disabled" + description: disabled + - value: smb + description: smb + - value: nfs + description: nfs + - variable: server + label: Server + description: server to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "myserver" + - variable: share + label: Share + description: share to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "/myshare" + - variable: user + label: User + description: connecting user + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "myuser" + - variable: domain + label: Domain + description: user domain + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: password + label: Password + description: connecting password + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: volumeSnapshots + label: 'Volume Snapshots (Experimental)' + description: Add an entry to the list to force creation of a volumeSnapshot of this PVC + schema: + show_if: [["type", "=", "pvc"]] + type: list + default: [] + items: + - variable: volumeSnapshotEntry + label: Custom volumeSnapshot + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: 'WARNING: renaming this, means deletion of the snapshot with the old name!' + schema: + type: string + default: "mysnapshot" + required: true + - variable: volumeSnapshotClassName + label: 'volumeSnapshot Class Name (Advanced)' + description: For use with PVCs using a non-default storageClass + schema: + type: string + default: "" + - 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: [{path: "/", pathType: "Prefix"}] + 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: integrations + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: traefik + label: Traefik + description: Connect ingress with Traefik + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: allowCors + label: 'Allow Cross Origin Requests (advanced)' + schema: + type: boolean + default: false + show_if: [["enabled", "=", true]] + - variable: entrypoints + label: Entrypoints + schema: + type: list + default: ["websecure"] + show_if: [["enabled", "=", true]] + items: + - variable: entrypoint + label: Entrypoint + schema: + type: string + - variable: middlewares + label: Middlewares + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: middleware + label: Middleware + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true + - variable: namespace + label: 'namespace (optional)' + schema: + type: string + default: "" + - variable: certManager + label: certManager + description: Connect ingress with certManager + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: certificateIssuer + label: certificateIssuer + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: homepage + label: Homepage + description: Connect ingress with Homepage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: name + label: Name (Optional) + description: Defaults to chart name + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: description + label: Description (Optional) + description: Defaults to chart description + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: icon + label: Icon (Optional) + description: Defaults to chart icon + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: group + label: Group + schema: + type: string + required: true + default: "default" + show_if: [["enabled", "=", true]] + - variable: widget + label: Widget Settings + schema: + type: dict + additional_attrs: true + show_if: [["enabled", "=", true]] + attrs: + - variable: enabled + label: Enable Widget + description: When disabled all widget annotations are skipped. + schema: + type: boolean + default: true + - variable: custom + label: Options + schema: + type: dict + additional_attrs: true + attrs: + - variable: key + label: API-key (key) + schema: + type: string + default: "" + - variable: customkv + label: Custom Options + schema: + type: list + default: [] + items: + - variable: option + label: Option + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + default: "" + required: true + - variable: value + label: Value + schema: + type: string + default: "" + required: true + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + - variable: ingressClassName + label: (Advanced/Optional) IngressClass Name + schema: + type: string + show_if: [["advanced", "=", true]] + default: "" + - variable: tls + label: TLS-Settings + schema: + type: list + show_if: [["advanced", "=", true]] + 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: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: 'Use Custom Certificate Secret (Advanced)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: string + default: "" + - variable: scaleCert + label: 'Use TrueNAS SCALE Certificate (Deprecated)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - 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: 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: overrideService + 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: [] + show_if: [["certificateIssuer", "=", ""]] + 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: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your Cert-Manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: scaleCert + label: Use TrueNAS SCALE Certificate (Deprecated) + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: Use Custom Secret (Advanced) + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: integrations + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: traefik + label: Traefik + description: Connect ingress with Traefik + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: allowCors + label: "Allow Cross Origin Requests" + schema: + type: boolean + default: false + show_if: [["enabled", "=", true]] + - variable: entrypoints + label: Entrypoints + schema: + type: list + default: ["websecure"] + show_if: [["enabled", "=", true]] + items: + - variable: entrypoint + label: Entrypoint + schema: + type: string + - variable: middlewares + label: Middlewares + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: middleware + label: Middleware + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true + - variable: namespace + label: namespace + schema: + type: string + default: "" + - variable: certManager + label: certManager + description: Connect ingress with certManager + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: certificateIssuer + label: certificateIssuer + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: homepage + label: Homepage + description: Connect ingress with Homepage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: name + label: Name + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: description + label: Description + description: defaults to chart description + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: group + label: Group + schema: + type: string + required: true + default: "default" + show_if: [["enabled", "=", true]] + - variable: securityContext + group: Security and Permissions + label: Security Context + schema: + additional_attrs: true + type: dict + attrs: + - variable: container + label: Container + schema: + additional_attrs: true + type: dict + attrs: + # Settings from questions.yaml get appended here on a per-app basis + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 0 + - variable: runAsGroup + label: "runAsGroup" + description: "The groupID this App of the user running the application" + schema: + type: int + default: 0 + # Settings from questions.yaml get appended here on a per-app basis + - 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 + show_if: [["runAsUser", "=", 0]] + 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: "0022" + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: pod + label: Pod + schema: + additional_attrs: true + type: dict + attrs: + - 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 + # Settings from questions.yaml get appended here on a per-app basis + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: resources + group: Resources and Devices + label: "Resource Limits" + 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/manual/SCALE/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/manual/SCALE/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 + hidden: true + attrs: + - variable: cpu + label: CPU + description: "1000m means 1 hyperthread. Detailed info: https://truecharts.org/manual/SCALE/validation" + schema: + type: string + default: 10m + hidden: true + 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/manual/SCALE/validation" + schema: + type: string + default: 50Mi + hidden: true + 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: device + 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" + - variable: scaleGPU + label: GPU Configuration + group: Resources and Devices + schema: + type: list + default: [] + items: + - variable: scaleGPUEntry + label: GPU + schema: + additional_attrs: true + type: dict + attrs: + # Specify GPU configuration + - variable: gpu + label: Select GPU + schema: + additional_attrs: true + type: dict + $ref: + - "definitions/gpuConfiguration" + attrs: [] + - variable: workaround + label: "Workaround" + schema: + type: string + default: workaround + hidden: true +# - 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: 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: 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: ingress + label: "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: [{path: "/", pathType: "Prefix"}] + 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: integrations + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: traefik + label: Traefik + description: Connect ingress with Traefik + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: allowCors + label: 'Allow Cross Origin Requests (advanced)' + schema: + type: boolean + default: false + show_if: [["enabled", "=", true]] + - variable: entrypoints + label: Entrypoints + schema: + type: list + default: ["websecure"] + show_if: [["enabled", "=", true]] + items: + - variable: entrypoint + label: Entrypoint + schema: + type: string + - variable: middlewares + label: Middlewares + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: middleware + label: Middleware + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true + - variable: namespace + label: 'namespace (optional)' + schema: + type: string + default: "" + - variable: certManager + label: certManager + description: Connect ingress with certManager + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: certificateIssuer + label: certificateIssuer + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + - variable: ingressClassName + label: (Advanced/Optional) IngressClass Name + schema: + type: string + show_if: [["advanced", "=", true]] + default: "" + - variable: tls + label: TLS-Settings + schema: + type: list + show_if: [["advanced", "=", true]] + 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: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: 'Use Custom Certificate Secret (Advanced)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: string + default: "" + - variable: scaleCert + label: 'Use TrueNAS SCALE Certificate (Deprecated)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - 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: 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: gluetun + description: Gluetun + - value: tailscale + description: Tailscale + - value: openvpn + description: OpenVPN (Deprecated) + - value: wireguard + description: Wireguard (Deprecated) + - variable: openvpn + label: OpenVPN Settings + schema: + additional_attrs: true + 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 + show_if: [["username", "!=", ""]] + default: "" + required: true + - variable: tailscale + label: Tailscale Settings + schema: + additional_attrs: true + 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: auth_once + label: Auth Once + description: Only attempt to log in if not already logged in. + schema: + type: boolean + default: true + - 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: The address on which to listen for SOCKS5 proxying into the tailscale net. + schema: + type: string + default: "" + - variable: outbound_http_proxy_listen + label: Outbound HTTP Proxy Listen + description: The address on which to listen for HTTP proxying into the tailscale net. + 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: string + show_if: [["type", "!=", "disabled"]] + 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 + max_length: 10240 + - 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/stable/posterr/7.1.14/templates/NOTES.txt b/stable/calibre-web/17.1.19/templates/NOTES.txt similarity index 100% rename from stable/posterr/7.1.14/templates/NOTES.txt rename to stable/calibre-web/17.1.19/templates/NOTES.txt diff --git a/stable/snapdrop/8.1.14/templates/common.yaml b/stable/calibre-web/17.1.19/templates/common.yaml similarity index 100% rename from stable/snapdrop/8.1.14/templates/common.yaml rename to stable/calibre-web/17.1.19/templates/common.yaml diff --git a/stable/kdenlive/4.1.16/values.yaml b/stable/calibre-web/17.1.19/values.yaml similarity index 100% rename from stable/kdenlive/4.1.16/values.yaml rename to stable/calibre-web/17.1.19/values.yaml diff --git a/stable/cops/7.1.17/app-changelog.md b/stable/cops/7.1.17/app-changelog.md deleted file mode 100644 index 47c1d15e976..00000000000 --- a/stable/cops/7.1.17/app-changelog.md +++ /dev/null @@ -1,9 +0,0 @@ - - -## [cops-7.1.17](https://github.com/truecharts/charts/compare/cops-7.1.16...cops-7.1.17) (2024-02-05) - -### Chore - - - -- update container image lscr.io/linuxserver/cops to 2.2.1[@31ef885](https://github.com/31ef885) by renovate ([#17882](https://github.com/truecharts/charts/issues/17882)) \ No newline at end of file diff --git a/stable/cops/7.1.17/CHANGELOG.md b/stable/cops/7.1.18/CHANGELOG.md similarity index 90% rename from stable/cops/7.1.17/CHANGELOG.md rename to stable/cops/7.1.18/CHANGELOG.md index 9adac16df2e..385365eea56 100644 --- a/stable/cops/7.1.17/CHANGELOG.md +++ b/stable/cops/7.1.18/CHANGELOG.md @@ -7,6 +7,15 @@ title: Changelog +## [cops-7.1.18](https://github.com/truecharts/charts/compare/cops-7.1.17...cops-7.1.18) (2024-02-12) + +### Chore + + + +- update container image lscr.io/linuxserver/cops to 2.2.1[@25577a2](https://github.com/25577a2) by renovate ([#18092](https://github.com/truecharts/charts/issues/18092)) + + ## [cops-7.1.17](https://github.com/truecharts/charts/compare/cops-7.1.16...cops-7.1.17) (2024-02-05) ### Chore @@ -88,12 +97,3 @@ title: Changelog - update container image common to v17.2.22[@e7c9056](https://github.com/e7c9056) by renovate ([#16986](https://github.com/truecharts/charts/issues/16986)) - - -## [cops-7.1.8](https://github.com/truecharts/charts/compare/cops-7.1.7...cops-7.1.8) (2024-01-08) - -### Chore - - - -- update container image lscr.io/linuxserver/cops to 2.2.1[@72554a2](https://github.com/72554a2) by renovate ([#16957](https://github.com/truecharts/charts/issues/16957)) diff --git a/stable/cops/7.1.17/Chart.yaml b/stable/cops/7.1.18/Chart.yaml similarity index 98% rename from stable/cops/7.1.17/Chart.yaml rename to stable/cops/7.1.18/Chart.yaml index c8433d85493..4b4a18ef18a 100644 --- a/stable/cops/7.1.17/Chart.yaml +++ b/stable/cops/7.1.18/Chart.yaml @@ -38,4 +38,4 @@ sources: - https://github.com/truecharts/charts/tree/master/charts/stable/cops - https://fleet.linuxserver.io/image?name=linuxserver/cops type: application -version: 7.1.17 +version: 7.1.18 diff --git a/stable/cops/7.1.17/README.md b/stable/cops/7.1.18/README.md similarity index 100% rename from stable/cops/7.1.17/README.md rename to stable/cops/7.1.18/README.md diff --git a/stable/cops/7.1.18/app-changelog.md b/stable/cops/7.1.18/app-changelog.md new file mode 100644 index 00000000000..8a3aad6c111 --- /dev/null +++ b/stable/cops/7.1.18/app-changelog.md @@ -0,0 +1,9 @@ + + +## [cops-7.1.18](https://github.com/truecharts/charts/compare/cops-7.1.17...cops-7.1.18) (2024-02-12) + +### Chore + + + +- update container image lscr.io/linuxserver/cops to 2.2.1[@25577a2](https://github.com/25577a2) by renovate ([#18092](https://github.com/truecharts/charts/issues/18092)) \ No newline at end of file diff --git a/stable/cops/7.1.17/app-readme.md b/stable/cops/7.1.18/app-readme.md similarity index 100% rename from stable/cops/7.1.17/app-readme.md rename to stable/cops/7.1.18/app-readme.md diff --git a/stable/posterr/7.1.14/charts/common-17.2.30.tgz b/stable/cops/7.1.18/charts/common-17.2.30.tgz similarity index 100% rename from stable/posterr/7.1.14/charts/common-17.2.30.tgz rename to stable/cops/7.1.18/charts/common-17.2.30.tgz diff --git a/stable/cops/7.1.17/ix_values.yaml b/stable/cops/7.1.18/ix_values.yaml similarity index 84% rename from stable/cops/7.1.17/ix_values.yaml rename to stable/cops/7.1.18/ix_values.yaml index c33b3cb8bdc..5053829af1e 100644 --- a/stable/cops/7.1.17/ix_values.yaml +++ b/stable/cops/7.1.18/ix_values.yaml @@ -1,7 +1,7 @@ image: pullPolicy: IfNotPresent repository: lscr.io/linuxserver/cops - tag: 2.2.1@sha256:31ef885c60304f56fa9a8e5cc31b25694d29649d94623432451ab784c79742b2 + tag: 2.2.1@sha256:25577a2acf95e57aa94c09b4880f4add4b21f316e3082c41c5d531f061bf09e8 securityContext: container: readOnlyRootFilesystem: false diff --git a/stable/cops/7.1.17/questions.yaml b/stable/cops/7.1.18/questions.yaml similarity index 99% rename from stable/cops/7.1.17/questions.yaml rename to stable/cops/7.1.18/questions.yaml index b523988e7e8..d00966049af 100644 --- a/stable/cops/7.1.17/questions.yaml +++ b/stable/cops/7.1.18/questions.yaml @@ -23,6 +23,8 @@ groups: description: Metrics - name: Addons description: Addon Configuration + - name: Backup Configuration + description: Configure Velero Backup Schedule - name: Advanced description: Advanced Configuration - name: Postgresql diff --git a/stable/prusaslicer-novnc/7.1.18/templates/NOTES.txt b/stable/cops/7.1.18/templates/NOTES.txt similarity index 100% rename from stable/prusaslicer-novnc/7.1.18/templates/NOTES.txt rename to stable/cops/7.1.18/templates/NOTES.txt diff --git a/stable/cops/7.1.17/templates/common.yaml b/stable/cops/7.1.18/templates/common.yaml similarity index 100% rename from stable/cops/7.1.17/templates/common.yaml rename to stable/cops/7.1.18/templates/common.yaml diff --git a/stable/palworld/1.0.1/values.yaml b/stable/cops/7.1.18/values.yaml similarity index 100% rename from stable/palworld/1.0.1/values.yaml rename to stable/cops/7.1.18/values.yaml diff --git a/stable/goaccess-npm-logs/4.1.12/app-changelog.md b/stable/goaccess-npm-logs/4.1.12/app-changelog.md deleted file mode 100644 index 3c4abe5b4e8..00000000000 --- a/stable/goaccess-npm-logs/4.1.12/app-changelog.md +++ /dev/null @@ -1,9 +0,0 @@ - - -## [goaccess-npm-logs-4.1.12](https://github.com/truecharts/charts/compare/goaccess-npm-logs-4.1.11...goaccess-npm-logs-4.1.12) (2024-02-03) - -### Chore - - - -- update container image common to v17.2.30[@19ad5ec](https://github.com/19ad5ec) by renovate ([#17804](https://github.com/truecharts/charts/issues/17804)) \ No newline at end of file diff --git a/stable/goaccess-npm-logs/4.1.12/CHANGELOG.md b/stable/goaccess-npm-logs/4.1.13/CHANGELOG.md similarity index 89% rename from stable/goaccess-npm-logs/4.1.12/CHANGELOG.md rename to stable/goaccess-npm-logs/4.1.13/CHANGELOG.md index 4b6b6410ce8..07d0cab39ca 100644 --- a/stable/goaccess-npm-logs/4.1.12/CHANGELOG.md +++ b/stable/goaccess-npm-logs/4.1.13/CHANGELOG.md @@ -7,6 +7,15 @@ title: Changelog +## [goaccess-npm-logs-4.1.13](https://github.com/truecharts/charts/compare/goaccess-npm-logs-4.1.12...goaccess-npm-logs-4.1.13) (2024-02-12) + +### Chore + + + +- update container image xavierh/goaccess-for-nginxproxymanager to latest[@a1b2ab3](https://github.com/a1b2ab3) by renovate ([#18115](https://github.com/truecharts/charts/issues/18115)) + + ## [goaccess-npm-logs-4.1.12](https://github.com/truecharts/charts/compare/goaccess-npm-logs-4.1.11...goaccess-npm-logs-4.1.12) (2024-02-03) ### Chore @@ -88,12 +97,3 @@ title: Changelog - increase common version for oci fixes - -- remove non-existent template refs ([#16738](https://github.com/truecharts/charts/issues/16738)) - - -## [goaccess-npm-logs-4.1.3](https://github.com/truecharts/charts/compare/goaccess-npm-logs-4.1.0...goaccess-npm-logs-4.1.3) (2024-01-01) - -### Chore - - diff --git a/stable/goaccess-npm-logs/4.1.12/Chart.yaml b/stable/goaccess-npm-logs/4.1.13/Chart.yaml similarity index 98% rename from stable/goaccess-npm-logs/4.1.12/Chart.yaml rename to stable/goaccess-npm-logs/4.1.13/Chart.yaml index cd26ecdb3d9..40aef749c65 100644 --- a/stable/goaccess-npm-logs/4.1.12/Chart.yaml +++ b/stable/goaccess-npm-logs/4.1.13/Chart.yaml @@ -35,4 +35,4 @@ sources: - https://github.com/truecharts/charts/tree/master/charts/stable/goaccess-npm-logs - https://hub.docker.com/r/xavierh/goaccess-for-nginxproxymanager type: application -version: 4.1.12 +version: 4.1.13 diff --git a/stable/goaccess-npm-logs/4.1.12/README.md b/stable/goaccess-npm-logs/4.1.13/README.md similarity index 100% rename from stable/goaccess-npm-logs/4.1.12/README.md rename to stable/goaccess-npm-logs/4.1.13/README.md diff --git a/stable/goaccess-npm-logs/4.1.13/app-changelog.md b/stable/goaccess-npm-logs/4.1.13/app-changelog.md new file mode 100644 index 00000000000..23f0b50bb93 --- /dev/null +++ b/stable/goaccess-npm-logs/4.1.13/app-changelog.md @@ -0,0 +1,9 @@ + + +## [goaccess-npm-logs-4.1.13](https://github.com/truecharts/charts/compare/goaccess-npm-logs-4.1.12...goaccess-npm-logs-4.1.13) (2024-02-12) + +### Chore + + + +- update container image xavierh/goaccess-for-nginxproxymanager to latest[@a1b2ab3](https://github.com/a1b2ab3) by renovate ([#18115](https://github.com/truecharts/charts/issues/18115)) \ No newline at end of file diff --git a/stable/goaccess-npm-logs/4.1.12/app-readme.md b/stable/goaccess-npm-logs/4.1.13/app-readme.md similarity index 100% rename from stable/goaccess-npm-logs/4.1.12/app-readme.md rename to stable/goaccess-npm-logs/4.1.13/app-readme.md diff --git a/stable/prusaslicer-novnc/7.1.18/charts/common-17.2.30.tgz b/stable/goaccess-npm-logs/4.1.13/charts/common-17.2.30.tgz similarity index 100% rename from stable/prusaslicer-novnc/7.1.18/charts/common-17.2.30.tgz rename to stable/goaccess-npm-logs/4.1.13/charts/common-17.2.30.tgz diff --git a/stable/goaccess-npm-logs/4.1.12/ix_values.yaml b/stable/goaccess-npm-logs/4.1.13/ix_values.yaml similarity index 88% rename from stable/goaccess-npm-logs/4.1.12/ix_values.yaml rename to stable/goaccess-npm-logs/4.1.13/ix_values.yaml index accaac539da..2c757e47b72 100644 --- a/stable/goaccess-npm-logs/4.1.12/ix_values.yaml +++ b/stable/goaccess-npm-logs/4.1.13/ix_values.yaml @@ -1,7 +1,7 @@ image: pullPolicy: IfNotPresent repository: xavierh/goaccess-for-nginxproxymanager - tag: latest@sha256:36a68d8928033293ee8d35921b485f2a7da200efc9ca8874ceccbbc4ac027d5b + tag: latest@sha256:a1b2ab3ec2fcdecf0540aa04c52b6c8caeb3cda10fc14a5ad50f3dd2ce4cdb24 persistence: hostpath1: enabled: true diff --git a/stable/goaccess-npm-logs/4.1.12/questions.yaml b/stable/goaccess-npm-logs/4.1.13/questions.yaml similarity index 99% rename from stable/goaccess-npm-logs/4.1.12/questions.yaml rename to stable/goaccess-npm-logs/4.1.13/questions.yaml index 356d7529bf1..81d696fbb50 100644 --- a/stable/goaccess-npm-logs/4.1.12/questions.yaml +++ b/stable/goaccess-npm-logs/4.1.13/questions.yaml @@ -23,6 +23,8 @@ groups: description: Metrics - name: Addons description: Addon Configuration + - name: Backup Configuration + description: Configure Velero Backup Schedule - name: Advanced description: Advanced Configuration - name: Postgresql diff --git a/stable/goaccess-npm-logs/4.1.12/templates/common.yaml b/stable/goaccess-npm-logs/4.1.13/templates/common.yaml similarity index 100% rename from stable/goaccess-npm-logs/4.1.12/templates/common.yaml rename to stable/goaccess-npm-logs/4.1.13/templates/common.yaml diff --git a/stable/posterr/7.1.14/values.yaml b/stable/goaccess-npm-logs/4.1.13/values.yaml similarity index 100% rename from stable/posterr/7.1.14/values.yaml rename to stable/goaccess-npm-logs/4.1.13/values.yaml diff --git a/stable/kdenlive/4.1.16/app-changelog.md b/stable/kdenlive/4.1.16/app-changelog.md deleted file mode 100644 index 5b44638fe83..00000000000 --- a/stable/kdenlive/4.1.16/app-changelog.md +++ /dev/null @@ -1,9 +0,0 @@ - - -## [kdenlive-4.1.16](https://github.com/truecharts/charts/compare/kdenlive-4.1.15...kdenlive-4.1.16) (2024-02-05) - -### Chore - - - -- update container image lscr.io/linuxserver/kdenlive to latest[@199f52f](https://github.com/199f52f) by renovate ([#17980](https://github.com/truecharts/charts/issues/17980)) \ No newline at end of file diff --git a/stable/kdenlive/4.1.16/CHANGELOG.md b/stable/kdenlive/4.1.17/CHANGELOG.md similarity index 92% rename from stable/kdenlive/4.1.16/CHANGELOG.md rename to stable/kdenlive/4.1.17/CHANGELOG.md index 994351e4705..93c24e5eaac 100644 --- a/stable/kdenlive/4.1.16/CHANGELOG.md +++ b/stable/kdenlive/4.1.17/CHANGELOG.md @@ -7,6 +7,15 @@ title: Changelog +## [kdenlive-4.1.17](https://github.com/truecharts/charts/compare/kdenlive-4.1.16...kdenlive-4.1.17) (2024-02-12) + +### Chore + + + +- update container image lscr.io/linuxserver/kdenlive to latest[@85d4ef5](https://github.com/85d4ef5) by renovate ([#18093](https://github.com/truecharts/charts/issues/18093)) + + ## [kdenlive-4.1.16](https://github.com/truecharts/charts/compare/kdenlive-4.1.15...kdenlive-4.1.16) (2024-02-05) ### Chore @@ -88,12 +97,3 @@ title: Changelog - update container image common to v17.2.22[@e7c9056](https://github.com/e7c9056) by renovate ([#16986](https://github.com/truecharts/charts/issues/16986)) - - -## [kdenlive-4.1.7](https://github.com/truecharts/charts/compare/kdenlive-4.1.6...kdenlive-4.1.7) (2024-01-08) - -### Chore - - - -- update container image lscr.io/linuxserver/kdenlive to latest[@c5f4cb0](https://github.com/c5f4cb0) by renovate ([#17039](https://github.com/truecharts/charts/issues/17039)) diff --git a/stable/kdenlive/4.1.16/Chart.yaml b/stable/kdenlive/4.1.17/Chart.yaml similarity index 98% rename from stable/kdenlive/4.1.16/Chart.yaml rename to stable/kdenlive/4.1.17/Chart.yaml index f3844916b15..fee4473e6a8 100644 --- a/stable/kdenlive/4.1.16/Chart.yaml +++ b/stable/kdenlive/4.1.17/Chart.yaml @@ -36,4 +36,4 @@ sources: - https://github.com/truecharts/charts/tree/master/charts/stable/kdenlive - https://fleet.linuxserver.io/image?name=linuxserver/kdenlive type: application -version: 4.1.16 +version: 4.1.17 diff --git a/stable/kdenlive/4.1.16/README.md b/stable/kdenlive/4.1.17/README.md similarity index 100% rename from stable/kdenlive/4.1.16/README.md rename to stable/kdenlive/4.1.17/README.md diff --git a/stable/kdenlive/4.1.17/app-changelog.md b/stable/kdenlive/4.1.17/app-changelog.md new file mode 100644 index 00000000000..c81f2c77a43 --- /dev/null +++ b/stable/kdenlive/4.1.17/app-changelog.md @@ -0,0 +1,9 @@ + + +## [kdenlive-4.1.17](https://github.com/truecharts/charts/compare/kdenlive-4.1.16...kdenlive-4.1.17) (2024-02-12) + +### Chore + + + +- update container image lscr.io/linuxserver/kdenlive to latest[@85d4ef5](https://github.com/85d4ef5) by renovate ([#18093](https://github.com/truecharts/charts/issues/18093)) \ No newline at end of file diff --git a/stable/kdenlive/4.1.16/app-readme.md b/stable/kdenlive/4.1.17/app-readme.md similarity index 100% rename from stable/kdenlive/4.1.16/app-readme.md rename to stable/kdenlive/4.1.17/app-readme.md diff --git a/stable/pyload-ng/4.1.17/charts/common-17.2.30.tgz b/stable/kdenlive/4.1.17/charts/common-17.2.30.tgz similarity index 100% rename from stable/pyload-ng/4.1.17/charts/common-17.2.30.tgz rename to stable/kdenlive/4.1.17/charts/common-17.2.30.tgz diff --git a/stable/kdenlive/4.1.16/ix_values.yaml b/stable/kdenlive/4.1.17/ix_values.yaml similarity index 85% rename from stable/kdenlive/4.1.16/ix_values.yaml rename to stable/kdenlive/4.1.17/ix_values.yaml index f34b90e4989..ef3412376c0 100644 --- a/stable/kdenlive/4.1.16/ix_values.yaml +++ b/stable/kdenlive/4.1.17/ix_values.yaml @@ -1,7 +1,7 @@ image: pullPolicy: IfNotPresent repository: lscr.io/linuxserver/kdenlive - tag: latest@sha256:199f52fb8f2bfbfe895172be54764630cc9b424eab7af4f90c2a70dddbea58c3 + tag: latest@sha256:85d4ef564d15d34b70a38b8dcf59c72518ef872610bb44a6829e704be6f2865d persistence: config: enabled: true diff --git a/stable/kdenlive/4.1.16/questions.yaml b/stable/kdenlive/4.1.17/questions.yaml similarity index 99% rename from stable/kdenlive/4.1.16/questions.yaml rename to stable/kdenlive/4.1.17/questions.yaml index 43cee8dfee2..2764d940fca 100644 --- a/stable/kdenlive/4.1.16/questions.yaml +++ b/stable/kdenlive/4.1.17/questions.yaml @@ -23,6 +23,8 @@ groups: description: Metrics - name: Addons description: Addon Configuration + - name: Backup Configuration + description: Configure Velero Backup Schedule - name: Advanced description: Advanced Configuration - name: Postgresql diff --git a/stable/kdenlive/4.1.16/templates/common.yaml b/stable/kdenlive/4.1.17/templates/common.yaml similarity index 100% rename from stable/kdenlive/4.1.16/templates/common.yaml rename to stable/kdenlive/4.1.17/templates/common.yaml diff --git a/stable/prusaslicer-novnc/7.1.18/values.yaml b/stable/kdenlive/4.1.17/values.yaml similarity index 100% rename from stable/prusaslicer-novnc/7.1.18/values.yaml rename to stable/kdenlive/4.1.17/values.yaml diff --git a/stable/littlelink/12.1.17/CHANGELOG.md b/stable/littlelink/12.1.17/CHANGELOG.md new file mode 100644 index 00000000000..e2240d9c103 --- /dev/null +++ b/stable/littlelink/12.1.17/CHANGELOG.md @@ -0,0 +1,99 @@ +--- +title: Changelog +--- + +**Important:** +*for the complete changelog, please refer to the website* + + + +## [littlelink-12.1.17](https://github.com/truecharts/charts/compare/littlelink-12.1.16...littlelink-12.1.17) (2024-02-12) + +### Chore + + + +- update container image ghcr.io/techno-tim/littlelink-server to latest[@f94c94f](https://github.com/f94c94f) by renovate ([#18084](https://github.com/truecharts/charts/issues/18084)) + + +## [littlelink-12.1.16](https://github.com/truecharts/charts/compare/littlelink-12.1.15...littlelink-12.1.16) (2024-02-05) + +### Chore + + + +- update container image ghcr.io/techno-tim/littlelink-server to latest[@c387a43](https://github.com/c387a43) by renovate ([#17874](https://github.com/truecharts/charts/issues/17874)) + + +## [littlelink-12.1.15](https://github.com/truecharts/charts/compare/littlelink-12.1.14...littlelink-12.1.15) (2024-02-03) + +### Chore + + + +- update container image common to v17.2.30[@19ad5ec](https://github.com/19ad5ec) by renovate ([#17804](https://github.com/truecharts/charts/issues/17804)) + + +## [littlelink-12.1.14](https://github.com/truecharts/charts/compare/littlelink-12.1.13...littlelink-12.1.14) (2024-01-29) + +### Chore + + + +- update container image ghcr.io/techno-tim/littlelink-server to latest[@fcb88ba](https://github.com/fcb88ba) by renovate ([#17719](https://github.com/truecharts/charts/issues/17719)) + + +## [littlelink-12.1.13](https://github.com/truecharts/charts/compare/littlelink-12.1.12...littlelink-12.1.13) (2024-01-26) + +### Chore + + + +- update container image common to v17.2.29[@d7c41a3](https://github.com/d7c41a3) by renovate ([#17545](https://github.com/truecharts/charts/issues/17545)) + +- update container image common to v17.2.28[@918b4c5](https://github.com/918b4c5) by renovate ([#17478](https://github.com/truecharts/charts/issues/17478)) + + +## [littlelink-12.1.12](https://github.com/truecharts/charts/compare/littlelink-12.1.11...littlelink-12.1.12) (2024-01-21) + +### Chore + + + +- update container image ghcr.io/techno-tim/littlelink-server to latest[@66371a0](https://github.com/66371a0) by renovate ([#17477](https://github.com/truecharts/charts/issues/17477)) + + +## [littlelink-12.1.11](https://github.com/truecharts/charts/compare/littlelink-12.1.10...littlelink-12.1.11) (2024-01-21) + +### Chore + + + +- update container image common to v17.2.26[@24c98f7](https://github.com/24c98f7) by renovate ([#17409](https://github.com/truecharts/charts/issues/17409)) + + +## [littlelink-12.1.10](https://github.com/truecharts/charts/compare/littlelink-12.1.9...littlelink-12.1.10) (2024-01-21) + +### Chore + + + +- update metadata in chart.yaml ([#17457](https://github.com/truecharts/charts/issues/17457)) + + +## [littlelink-12.1.9](https://github.com/truecharts/charts/compare/littlelink-12.1.8...littlelink-12.1.9) (2024-01-21) + +### Chore + + + +- update container image ghcr.io/techno-tim/littlelink-server to latest[@368c9aa](https://github.com/368c9aa) by renovate ([#17375](https://github.com/truecharts/charts/issues/17375)) + + +## [littlelink-12.1.8](https://github.com/truecharts/charts/compare/littlelink-12.1.7...littlelink-12.1.8) (2024-01-14) + +### Chore + + + +- update container image ghcr.io/techno-tim/littlelink-server to latest[@186fcad](https://github.com/186fcad) by renovate ([#17156](https://github.com/truecharts/charts/issues/17156)) diff --git a/stable/littlelink/12.1.17/Chart.yaml b/stable/littlelink/12.1.17/Chart.yaml new file mode 100644 index 00000000000..77fcfd9134a --- /dev/null +++ b/stable/littlelink/12.1.17/Chart.yaml @@ -0,0 +1,37 @@ +annotations: + max_scale_version: 23.10.2 + min_scale_version: 23.10.0 + truecharts.org/SCALE-support: "true" + truecharts.org/category: social + truecharts.org/max_helm_version: "3.14" + truecharts.org/min_helm_version: "3.12" + truecharts.org/train: stable +apiVersion: v2 +appVersion: latest +dependencies: + - name: common + version: 17.2.30 + repository: oci://tccr.io/truecharts + condition: "" + alias: "" + tags: [] + import-values: [] +deprecated: false +description: Easy platform to combine all your social links +home: https://truecharts.org/charts/stable/littlelink +icon: https://truecharts.org/img/hotlink-ok/chart-icons/littlelink.png +keywords: + - littlelink +kubeVersion: ">=1.24.0-0" +maintainers: + - name: TrueCharts + email: info@truecharts.org + url: https://truecharts.org +name: littlelink +sources: + - https://github.com/sethcottle/littlelink + - https://github.com/techno-tim/littlelink-server + - https://github.com/truecharts/charts/tree/master/charts/stable/littlelink + - https://ghcr.io/techno-tim/littlelink-server +type: application +version: 12.1.17 diff --git a/stable/littlelink/12.1.17/README.md b/stable/littlelink/12.1.17/README.md new file mode 100644 index 00000000000..37bbd136eb0 --- /dev/null +++ b/stable/littlelink/12.1.17/README.md @@ -0,0 +1,28 @@ +--- +title: README +--- + +## General Info + +TrueCharts can be installed as both _normal_ Helm Charts or as Apps on TrueNAS SCALE. +However only installations using the TrueNAS SCALE Apps system are supported. + +For more information about this App, please check the docs on the TrueCharts [website](https://truecharts.org/charts/stable/littlelink) + +**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)** + +## Support + +- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/manual/SCALE/guides/scale-intro). +- See the [Website](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/charts/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/stable/littlelink/12.1.17/app-changelog.md b/stable/littlelink/12.1.17/app-changelog.md new file mode 100644 index 00000000000..23afab6d57d --- /dev/null +++ b/stable/littlelink/12.1.17/app-changelog.md @@ -0,0 +1,9 @@ + + +## [littlelink-12.1.17](https://github.com/truecharts/charts/compare/littlelink-12.1.16...littlelink-12.1.17) (2024-02-12) + +### Chore + + + +- update container image ghcr.io/techno-tim/littlelink-server to latest[@f94c94f](https://github.com/f94c94f) by renovate ([#18084](https://github.com/truecharts/charts/issues/18084)) \ No newline at end of file diff --git a/stable/littlelink/12.1.17/app-readme.md b/stable/littlelink/12.1.17/app-readme.md new file mode 100644 index 00000000000..0221199b77f --- /dev/null +++ b/stable/littlelink/12.1.17/app-readme.md @@ -0,0 +1,8 @@ +Easy platform to combine all your social links + +This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/charts/stable/littlelink](https://truecharts.org/charts/stable/littlelink) + +--- + +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! diff --git a/stable/red-discordbot/4.1.15/charts/common-17.2.30.tgz b/stable/littlelink/12.1.17/charts/common-17.2.30.tgz similarity index 100% rename from stable/red-discordbot/4.1.15/charts/common-17.2.30.tgz rename to stable/littlelink/12.1.17/charts/common-17.2.30.tgz diff --git a/stable/littlelink/12.1.17/ix_values.yaml b/stable/littlelink/12.1.17/ix_values.yaml new file mode 100644 index 00000000000..42afa1af7dd --- /dev/null +++ b/stable/littlelink/12.1.17/ix_values.yaml @@ -0,0 +1,41 @@ +image: + repository: ghcr.io/techno-tim/littlelink-server + pullPolicy: IfNotPresent + tag: latest@sha256:f94c94fe1812a6cdd689f36dd812d283598913a3e6281b287c3003335f7cd77e +service: + main: + ports: + main: + port: 10040 + targetPort: 3000 +littlelink: + meta_title: "techno tim" + meta_description: "techno tim link page" + meta_author: "techno tim" + theme: "dark" + favicon_url: "https://pbs.twimg.com/profile_images/1286144221217316864/qiaskopb_200x200.jpg" + avatar_url: "https://pbs.twimg.com/profile_images/1286144221217316864/qiaskopb_200x200.jpg" + avatar_2x_url: "https://pbs.twimg.com/profile_images/1286144221217316864/qiaskopb_400x400.jpg" + avatar_alt: "techno tim profile pic" + name: "technotim" + bio: "hey! just a place where you can connect with me!" + github: "https://github.com/timothystewart6" + twitter: "https://twitter.com/technotimlive" + instagram: "https://www.instagram.com/techno.tim" + youtube: "https://www.youtube.com/channel/ucok-ghyjcwznj3br4oxwh0a" + twitch: "https://www.twitch.tv/technotim/" + discord: "https://discord.gg/djkexrj" + tiktok: "https://www.tiktok.com/@technotim" + kit: "https://kit.co/technotim" + footer: "thanks for stopping by!" +portal: + open: + enabled: true +workload: + main: + podSpec: + containers: + main: + envFrom: + - configMapRef: + name: config diff --git a/stable/littlelink/12.1.17/questions.yaml b/stable/littlelink/12.1.17/questions.yaml new file mode 100644 index 00000000000..8fb006bd72c --- /dev/null +++ b/stable/littlelink/12.1.17/questions.yaml @@ -0,0 +1,2871 @@ +groups: + - name: Container Image + description: Image to be used for container + - name: General Settings + description: General Deployment Settings + - name: Workload Settings + description: Workload Settings + - 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: Backup Configuration + description: Configure Velero Backup Schedule + - name: Advanced + description: Advanced Configuration + - name: Postgresql + description: Postgresql + - name: Documentation + description: Documentation +portals: + open: + protocols: + - "$kubernetes-resource_configmap_tcportal-open_protocol" + host: + - "$kubernetes-resource_configmap_tcportal-open_host" + ports: + - "$kubernetes-resource_configmap_tcportal-open_port" +questions: + - variable: global + group: General Settings + label: "Global Settings" + schema: + additional_attrs: true + type: dict + attrs: + - variable: stopAll + label: Stop All + description: "Stops All Running pods and hibernates cnpg" + schema: + type: boolean + default: false + - variable: workload + group: "Workload Settings" + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type (Advanced) + schema: + type: string + default: Deployment + enum: + - value: Deployment + description: Deployment + - value: DaemonSet + description: DaemonSet + - variable: replicas + label: Replicas (Advanced) + description: Set the number of Replicas + schema: + type: int + show_if: [["type", "!=", "DaemonSet"]] + default: 1 + - variable: podSpec + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: containers + label: Containers + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: Main Container + schema: + additional_attrs: true + type: dict + attrs: + - 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..." + 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: extraArgs + label: Extra Args + schema: + type: list + default: [] + items: + - variable: arg + label: Arg + schema: + type: string + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: command + label: Command + schema: + type: list + default: [] + items: + - variable: param + label: Param + schema: + type: string + - variable: littlelink + label: "" + group: "App Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: meta_title + label: "meta title" + schema: + type: string + default: "" + - variable: meta_description + label: "meta description" + schema: + type: string + default: "" + - variable: meta_author + label: "meta_author" + schema: + type: string + default: "" + - variable: lang + label: "lang" + schema: + type: string + default: "" + - variable: meta_index_status + label: "meta_index_status" + schema: + type: string + default: "" + - variable: ga_tracking_id + label: "ga_tracking_id" + schema: + type: string + default: "" + - variable: theme + label: "theme" + schema: + type: string + default: "" + - variable: favicon_url + label: "favicon_url" + schema: + type: string + default: "" + - variable: avatar_url + label: "avatar_url" + schema: + type: string + default: "" + - variable: avatar_2x_url + label: "avatar_2x_url" + schema: + type: string + default: "" + - variable: avatar_alt + label: "avatar_alt" + schema: + type: string + default: "" + - variable: name + label: "name" + schema: + type: string + default: "" + - variable: bio + label: "bio" + schema: + type: string + default: "" + - variable: github + label: "github" + schema: + type: string + default: "" + - variable: twitter + label: "twitter" + schema: + type: string + default: "" + - variable: instagram + label: "instagram" + schema: + type: string + default: "" + - variable: youtube + label: "youtube" + schema: + type: string + default: "" + - variable: twitch + label: "twitch" + schema: + type: string + default: "" + - variable: discord + label: "discord" + schema: + type: string + default: "" + - variable: tiktok + label: "tiktok" + schema: + type: string + default: "" + - variable: kit + label: "kit" + schema: + type: string + default: "" + - variable: facebook + label: "facebook" + schema: + type: string + default: "" + - variable: facebook_messenger + label: "facebook_messenger" + schema: + type: string + default: "" + - variable: linked_in + label: "linked_in" + schema: + type: string + default: "" + - variable: product_hunt + label: "product_hunt" + schema: + type: string + default: "" + - variable: snapchat + label: "snapchat" + schema: + type: string + default: "" + - variable: spotify + label: "spotify" + schema: + type: string + default: "" + - variable: reddit + label: "reddit" + schema: + type: string + default: "" + - variable: medium + label: "medium" + schema: + type: string + default: "" + - variable: pinterest + label: "pinterest" + schema: + type: string + default: "" + - variable: email + label: "email" + schema: + type: string + default: "" + - variable: email_text + label: "email_text" + schema: + type: string + default: "" + - variable: email_alt + label: "email_alt" + schema: + type: string + default: "" + - variable: email_alt_text + label: "email_alt_text" + schema: + type: string + default: "" + - variable: sound_cloud + label: "sound_cloud" + schema: + type: string + default: "" + - variable: figma + label: "figma" + schema: + type: string + default: "" + - variable: telegram + label: "telegram" + schema: + type: string + default: "" + - variable: tumblr + label: "tumblr" + schema: + type: string + default: "" + - variable: steam + label: "steam" + schema: + type: string + default: "" + - variable: vimeo + label: "vimeo" + schema: + type: string + default: "" + - variable: wordpress + label: "wordpressp" + schema: + type: string + default: "" + - variable: goodreads + label: "goodreads" + schema: + type: string + default: "" + - variable: skoob + label: "skoob" + schema: + type: string + default: "" + - variable: letterboxd + label: "letterboxd" + schema: + type: string + default: "" + - variable: mastodon + label: "mastodon" + schema: + type: string + default: "" + - variable: micro_blog + label: "micro_blog" + schema: + type: string + default: "" + - variable: whatsapp + label: "whatsapp" + schema: + type: string + default: "" + - variable: strava + label: "strava" + schema: + type: string + default: "" + - variable: buymeacoffee + label: "buymeacoffee" + schema: + type: string + default: "" + - variable: gitlab + label: "gitlab" + schema: + type: string + default: "" + - variable: patreon + label: "patreon" + schema: + type: string + default: "" + - variable: devto + label: "devto" + schema: + type: string + default: "" + - variable: umami_website_id + label: "umami_website_id" + schema: + type: string + default: "" + - variable: umami_app_url + label: "umami_app_url" + schema: + type: string + default: "" + - variable: paypal + label: "paypal" + schema: + type: string + default: "" + - variable: slack + label: "slack" + schema: + type: string + default: "" + - variable: lastfm + label: "lastfm" + schema: + type: string + default: "" + - variable: untappd + label: "untappd" + schema: + type: string + default: "" + - variable: stackoverflow + label: "stackoverflow" + schema: + type: string + default: "" + - variable: gitea + label: "gitea" + schema: + type: string + default: "" + - variable: polywork + label: "polywork" + schema: + type: string + default: "" + - variable: signal + label: "signal" + schema: + type: string + default: "" + - variable: footer + label: "footer" + schema: + type: string + default: "" + - variable: TZ + label: Timezone + group: "General Settings" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: podOptions + group: "General Settings" + label: "Global Pod Options (Advanced)" + schema: + additional_attrs: true + type: dict + attrs: + - variable: expertPodOpts + label: "Expert - Pod Options" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + label: "Host Networking" + schema: + type: boolean + default: false + - variable: dnsConfig + label: "DNS Configuration" + schema: + type: dict + additional_attrs: true + attrs: + - variable: options + label: "Options" + schema: + type: list + default: [{"name": "ndots", "value": "1"}] + items: + - variable: optionsEntry + label: "Option Entry" + schema: + type: dict + additional_attrs: true + attrs: + - variable: name + label: "Name" + schema: + type: string + required: true + - variable: value + label: "Value" + schema: + type: string + - variable: nameservers + label: "Nameservers" + schema: + type: list + default: [] + items: + - variable: nsEntry + label: "Nameserver Entry" + schema: + type: string + required: true + - variable: searches + label: "Searches" + schema: + type: list + default: [] + items: + - variable: searchEntry + label: "Search Entry" + schema: + type: string + required: true + + - variable: imagePullSecretList + group: "General Settings" + label: "Image Pull Secrets" + schema: + type: list + default: [] + items: + - variable: pullsecretentry + label: "Pull Secret" + schema: + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: true + - variable: data + label: Data + schema: + type: dict + additional_attrs: true + attrs: + - variable: registry + label: "Registry" + schema: + type: string + required: true + default: "https://index.docker.io/v1/" + - variable: username + label: "Username" + schema: + type: string + required: true + default: "" + - variable: password + label: "Password" + schema: + type: string + required: true + private: true + default: "" + - variable: email + label: "Email" + schema: + type: string + required: true + default: "" + - 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) + - 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: 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: 10040 + required: true + - variable: serviceexpert + group: Networking and Services + label: Show Expert Config + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: scaleExternalInterface + description: Add External Interfaces + label: Add external Interfaces + group: Networking + schema: + type: list + items: + - variable: interfaceConfiguration + description: Interface Configuration + label: Interface Configuration + schema: + additional_attrs: true + 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: + additional_attrs: true + 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 + - variable: staticIPConfigurations + label: Static IP Addresses + schema: + type: list + show_if: [["type", "=", "static"]] + items: + - variable: staticIP + label: Static IP + schema: + type: ipaddr + cidr: true + - variable: staticRoutes + label: Static Routes + schema: + type: list + show_if: [["type", "=", "static"]] + 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: 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: 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: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: hostPath + enum: + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: emptyDir + description: emptyDir + - 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: iscsi + label: iSCSI Options + schema: + show_if: [["type", "=", "iscsi"]] + type: dict + additional_attrs: true + attrs: + - variable: targetPortal + label: targetPortal + schema: + type: string + required: true + default: "" + - variable: iqn + label: iqn + schema: + type: string + required: true + default: "" + - variable: lun + label: lun + schema: + type: int + default: 0 + - variable: authSession + label: authSession + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: authDiscovery + label: authDiscovery + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: autoPermissions + label: Automatic Permissions Configuration + description: Automatically set permissions + schema: + show_if: [["type", "!=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: chown + label: Run CHOWN + description: | + It will run CHOWN on the path with the given fsGroup + schema: + type: boolean + default: false + - variable: chmod + label: Run CHMOD + description: | + It will run CHMOD on the path with the given value
+ Format should be 3 digits, e.g. 770 + schema: + type: string + valid_chars: '[0-9]{3}' + default: "" + - variable: recursive + label: Recursive + description: | + It will run CHOWN and CHMOD recursively + schema: + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - 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: storageClass + label: 'storageClass (Advanced)' + description: 'sets the storageClass to something other than iX default. Only for advanced usecases!' + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "" + - variable: static + label: 'Static Fixed PVC Bindings (Experimental)' + description: Link a PVC to a specific storage location + schema: + show_if: [["type", "=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: mode + label: mode + description: | + disabled: use normal dynamic PVCs + smb: connect to an SMB share + nfs: connect to an NFS share + schema: + type: string + default: "disabled" + enum: + - value: "disabled" + description: disabled + - value: smb + description: smb + - value: nfs + description: nfs + - variable: server + label: Server + description: server to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "myserver" + - variable: share + label: Share + description: share to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "/myshare" + - variable: user + label: User + description: connecting user + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "myuser" + - variable: domain + label: Domain + description: user domain + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: password + label: Password + description: connecting password + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: volumeSnapshots + label: 'Volume Snapshots (Experimental)' + description: Add an entry to the list to force creation of a volumeSnapshot of this PVC + schema: + show_if: [["type", "=", "pvc"]] + type: list + default: [] + items: + - variable: volumeSnapshotEntry + label: Custom volumeSnapshot + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: 'WARNING: renaming this, means deletion of the snapshot with the old name!' + schema: + type: string + default: "mysnapshot" + required: true + - variable: volumeSnapshotClassName + label: 'volumeSnapshot Class Name (Advanced)' + description: For use with PVCs using a non-default storageClass + schema: + type: string + default: "" + - 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: [{path: "/", pathType: "Prefix"}] + 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: integrations + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: traefik + label: Traefik + description: Connect ingress with Traefik + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: allowCors + label: 'Allow Cross Origin Requests (advanced)' + schema: + type: boolean + default: false + show_if: [["enabled", "=", true]] + - variable: entrypoints + label: Entrypoints + schema: + type: list + default: ["websecure"] + show_if: [["enabled", "=", true]] + items: + - variable: entrypoint + label: Entrypoint + schema: + type: string + - variable: middlewares + label: Middlewares + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: middleware + label: Middleware + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true + - variable: namespace + label: 'namespace (optional)' + schema: + type: string + default: "" + - variable: certManager + label: certManager + description: Connect ingress with certManager + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: certificateIssuer + label: certificateIssuer + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: homepage + label: Homepage + description: Connect ingress with Homepage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: name + label: Name (Optional) + description: Defaults to chart name + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: description + label: Description (Optional) + description: Defaults to chart description + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: icon + label: Icon (Optional) + description: Defaults to chart icon + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: group + label: Group + schema: + type: string + required: true + default: "default" + show_if: [["enabled", "=", true]] + - variable: widget + label: Widget Settings + schema: + type: dict + additional_attrs: true + show_if: [["enabled", "=", true]] + attrs: + - variable: enabled + label: Enable Widget + description: When disabled all widget annotations are skipped. + schema: + type: boolean + default: true + - variable: custom + label: Options + schema: + type: dict + additional_attrs: true + attrs: + - variable: key + label: API-key (key) + schema: + type: string + default: "" + - variable: customkv + label: Custom Options + schema: + type: list + default: [] + items: + - variable: option + label: Option + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + default: "" + required: true + - variable: value + label: Value + schema: + type: string + default: "" + required: true + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + - variable: ingressClassName + label: (Advanced/Optional) IngressClass Name + schema: + type: string + show_if: [["advanced", "=", true]] + default: "" + - variable: tls + label: TLS-Settings + schema: + type: list + show_if: [["advanced", "=", true]] + 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: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: 'Use Custom Certificate Secret (Advanced)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: string + default: "" + - variable: scaleCert + label: 'Use TrueNAS SCALE Certificate (Deprecated)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - 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: 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: overrideService + 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: [] + show_if: [["certificateIssuer", "=", ""]] + 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: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your Cert-Manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: scaleCert + label: Use TrueNAS SCALE Certificate (Deprecated) + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: Use Custom Secret (Advanced) + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: integrations + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: traefik + label: Traefik + description: Connect ingress with Traefik + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: allowCors + label: "Allow Cross Origin Requests" + schema: + type: boolean + default: false + show_if: [["enabled", "=", true]] + - variable: entrypoints + label: Entrypoints + schema: + type: list + default: ["websecure"] + show_if: [["enabled", "=", true]] + items: + - variable: entrypoint + label: Entrypoint + schema: + type: string + - variable: middlewares + label: Middlewares + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: middleware + label: Middleware + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true + - variable: namespace + label: namespace + schema: + type: string + default: "" + - variable: certManager + label: certManager + description: Connect ingress with certManager + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: certificateIssuer + label: certificateIssuer + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: homepage + label: Homepage + description: Connect ingress with Homepage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: name + label: Name + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: description + label: Description + description: defaults to chart description + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: group + label: Group + schema: + type: string + required: true + default: "default" + show_if: [["enabled", "=", true]] + - variable: securityContext + group: Security and Permissions + label: Security Context + schema: + additional_attrs: true + type: dict + attrs: + - variable: container + label: Container + schema: + additional_attrs: true + type: dict + attrs: + # Settings from questions.yaml get appended here on a per-app basis + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: "The groupID this App of the user running the application" + schema: + type: int + default: 568 + # Settings from questions.yaml get appended here on a per-app basis + - 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 + show_if: [["runAsUser", "=", 0]] + 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: "0022" + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: pod + label: Pod + schema: + additional_attrs: true + type: dict + attrs: + - 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 + # Settings from questions.yaml get appended here on a per-app basis + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: resources + group: Resources and Devices + label: "Resource Limits" + 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/manual/SCALE/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/manual/SCALE/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 + hidden: true + attrs: + - variable: cpu + label: CPU + description: "1000m means 1 hyperthread. Detailed info: https://truecharts.org/manual/SCALE/validation" + schema: + type: string + default: 10m + hidden: true + 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/manual/SCALE/validation" + schema: + type: string + default: 50Mi + hidden: true + 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: device + 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" + - variable: scaleGPU + label: GPU Configuration + group: Resources and Devices + schema: + type: list + default: [] + items: + - variable: scaleGPUEntry + label: GPU + schema: + additional_attrs: true + type: dict + attrs: + # Specify GPU configuration + - variable: gpu + label: Select GPU + schema: + additional_attrs: true + type: dict + $ref: + - "definitions/gpuConfiguration" + attrs: [] + - variable: workaround + label: "Workaround" + schema: + type: string + default: workaround + hidden: true +# - 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: 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: 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: ingress + label: "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: [{path: "/", pathType: "Prefix"}] + 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: integrations + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: traefik + label: Traefik + description: Connect ingress with Traefik + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: allowCors + label: 'Allow Cross Origin Requests (advanced)' + schema: + type: boolean + default: false + show_if: [["enabled", "=", true]] + - variable: entrypoints + label: Entrypoints + schema: + type: list + default: ["websecure"] + show_if: [["enabled", "=", true]] + items: + - variable: entrypoint + label: Entrypoint + schema: + type: string + - variable: middlewares + label: Middlewares + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: middleware + label: Middleware + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true + - variable: namespace + label: 'namespace (optional)' + schema: + type: string + default: "" + - variable: certManager + label: certManager + description: Connect ingress with certManager + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: certificateIssuer + label: certificateIssuer + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + - variable: ingressClassName + label: (Advanced/Optional) IngressClass Name + schema: + type: string + show_if: [["advanced", "=", true]] + default: "" + - variable: tls + label: TLS-Settings + schema: + type: list + show_if: [["advanced", "=", true]] + 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: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: 'Use Custom Certificate Secret (Advanced)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: string + default: "" + - variable: scaleCert + label: 'Use TrueNAS SCALE Certificate (Deprecated)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - 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: 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: gluetun + description: Gluetun + - value: tailscale + description: Tailscale + - value: openvpn + description: OpenVPN (Deprecated) + - value: wireguard + description: Wireguard (Deprecated) + - variable: openvpn + label: OpenVPN Settings + schema: + additional_attrs: true + 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 + show_if: [["username", "!=", ""]] + default: "" + required: true + - variable: tailscale + label: Tailscale Settings + schema: + additional_attrs: true + 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: auth_once + label: Auth Once + description: Only attempt to log in if not already logged in. + schema: + type: boolean + default: true + - 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: The address on which to listen for SOCKS5 proxying into the tailscale net. + schema: + type: string + default: "" + - variable: outbound_http_proxy_listen + label: Outbound HTTP Proxy Listen + description: The address on which to listen for HTTP proxying into the tailscale net. + 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: string + show_if: [["type", "!=", "disabled"]] + 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 + max_length: 10240 + - 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/stable/searxng/6.1.20/templates/NOTES.txt b/stable/littlelink/12.1.17/templates/NOTES.txt similarity index 100% rename from stable/searxng/6.1.20/templates/NOTES.txt rename to stable/littlelink/12.1.17/templates/NOTES.txt diff --git a/stable/littlelink/12.1.17/templates/_configmap.tpl b/stable/littlelink/12.1.17/templates/_configmap.tpl new file mode 100644 index 00000000000..8a55b503b2d --- /dev/null +++ b/stable/littlelink/12.1.17/templates/_configmap.tpl @@ -0,0 +1,195 @@ +{{/* Define the configmap */}} +{{- define "littlelink.configmap" -}} +enabled: true +data: + {{- if .Values.littlelink.meta_title }} + META_TITLE: {{ .Values.littlelink.meta_title | quote }} + {{- end }} + {{- if .Values.littlelink.meta_description }} + META_DESCRIPTION: {{ .Values.littlelink.meta_description | quote }} + {{- end }} + {{- if .Values.littlelink.meta_author }} + META_AUTHOR: {{ .Values.littlelink.meta_author | quote }} + {{- end }} + {{- if .Values.littlelink.lang }} + LANG: {{ .Values.littlelink.lang | quote }} + {{- end }} + {{- if .Values.littlelink.meta_index_status }} + META_INDEX_STATUS: {{ .Values.littlelink.meta_index_status | quote }} + {{- end }} + {{- if .Values.littlelink.ga_tracking_id }} + GA_TRACKING_ID: {{ .Values.littlelink.ga_tracking_id | quote }} + {{- end }} + {{- if .Values.littlelink.theme }} + THEME: {{ .Values.littlelink.theme | quote }} + {{- end }} + {{- if .Values.littlelink.favicon_url }} + FAVICON_URL: {{ .Values.littlelink.favicon_url | quote }} + {{- end }} + {{- if .Values.littlelink.avatar_url }} + AVATAR_URL: {{ .Values.littlelink.avatar_url | quote }} + {{- end }} + {{- if .Values.littlelink.avatar_2x_url }} + AVATAR_2X_URL: {{ .Values.littlelink.avatar_2x_url | quote }} + {{- end }} + {{- if .Values.littlelink.avatar_alt }} + AVATAR_ALT: {{ .Values.littlelink.avatar_alt | quote }} + {{- end }} + {{- if .Values.littlelink.name }} + NAME: {{ .Values.littlelink.name | quote }} + {{- end }} + {{- if .Values.littlelink.bio }} + BIO: {{ .Values.littlelink.bio | quote }} + {{- end }} + {{- if .Values.littlelink.github }} + GITHUB: {{ .Values.littlelink.github | quote }} + {{- end }} + {{- if .Values.littlelink.twitter }} + TWITTER: {{ .Values.littlelink.twitter | quote }} + {{- end }} + {{- if .Values.littlelink.instagram }} + INSTAGRAM: {{ .Values.littlelink.instagram | quote }} + {{- end }} + {{- if .Values.littlelink.youtube }} + YOUTUBE: {{ .Values.littlelink.youtube | quote }} + {{- end }} + {{- if .Values.littlelink.twitch }} + TWITCH: {{ .Values.littlelink.twitch | quote }} + {{- end }} + {{- if .Values.littlelink.discord }} + DISCORD: {{ .Values.littlelink.discord | quote }} + {{- end }} + {{- if .Values.littlelink.tiktok }} + TIKTOK: {{ .Values.littlelink.tiktok | quote }} + {{- end }} + {{- if .Values.littlelink.kit }} + KIT: {{ .Values.littlelink.kit | quote }} + {{- end }} + {{- if .Values.littlelink.facebook }} + FACEBOOK: {{ .Values.littlelink.facebook | quote }} + {{- end }} + {{- if .Values.littlelink.facebook_messenger }} + FACEBOOK_MESSENGER: {{ .Values.littlelink.facebook_messenger | quote }} + {{- end }} + {{- if .Values.littlelink.linked_in }} + LINKED_IN: {{ .Values.littlelink.linked_in | quote }} + {{- end }} + {{- if .Values.littlelink.product_hunt }} + PRODUCT_HUNT: {{ .Values.littlelink.product_hunt | quote }} + {{- end }} + {{- if .Values.littlelink.snapchat }} + SNAPCHAT: {{ .Values.littlelink.snapchat | quote }} + {{- end }} + {{- if .Values.littlelink.spotify }} + SPOTIFY: {{ .Values.littlelink.spotify | quote }} + {{- end }} + {{- if .Values.littlelink.reddit }} + REDDIT: {{ .Values.littlelink.reddit | quote }} + {{- end }} + {{- if .Values.littlelink.medium }} + MEDIUM: {{ .Values.littlelink.medium | quote }} + {{- end }} + {{- if .Values.littlelink.pinterest }} + PINTEREST: {{ .Values.littlelink.pinterest | quote }} + {{- end }} + {{- if .Values.littlelink.email }} + EMAIL: {{ .Values.littlelink.email | quote }} + {{- end }} + {{- if .Values.littlelink.email_text }} + EMAIL_TEXT: {{ .Values.littlelink.email_text | quote }} + {{- end }} + {{- if .Values.littlelink.email_alt }} + EMAIL_ALT: {{ .Values.littlelink.email_alt | quote }} + {{- end }} + {{- if .Values.littlelink.email_alt_text }} + EMAIL_ALT_TEXT: {{ .Values.littlelink.email_alt_text | quote }} + {{- end }} + {{- if .Values.littlelink.sound_cloud }} + SOUND_CLOUD: {{ .Values.littlelink.sound_cloud | quote }} + {{- end }} + {{- if .Values.littlelink.figma }} + FIGMA: {{ .Values.littlelink.figma | quote }} + {{- end }} + {{- if .Values.littlelink.telegram }} + TELEGRAM: {{ .Values.littlelink.telegram | quote }} + {{- end }} + {{- if .Values.littlelink.tumblr }} + TUMBLR: {{ .Values.littlelink.tumblr | quote }} + {{- end }} + {{- if .Values.littlelink.steam }} + STEAM: {{ .Values.littlelink.steam | quote }} + {{- end }} + {{- if .Values.littlelink.vimeo }} + VIMEO: {{ .Values.littlelink.vimeo | quote }} + {{- end }} + {{- if .Values.littlelink.wordpress }} + WORDPRESS: {{ .Values.littlelink.wordpress | quote }} + {{- end }} + {{- if .Values.littlelink.goodreads }} + GOODREADS: {{ .Values.littlelink.goodreads | quote }} + {{- end }} + {{- if .Values.littlelink.skoob }} + SKOOB: {{ .Values.littlelink.skoob | quote }} + {{- end }} + {{- if .Values.littlelink.letterboxd }} + LETTERBOXD: {{ .Values.littlelink.letterboxd | quote }} + {{- end }} + {{- if .Values.littlelink.mastodon }} + MASTODON: {{ .Values.littlelink.mastodon | quote }} + {{- end }} + {{- if .Values.littlelink.micro_blog }} + MICRO_BLOG: {{ .Values.littlelink.micro_blog | quote }} + {{- end }} + {{- if .Values.littlelink.whatsapp }} + WHATSAPP: {{ .Values.littlelink.whatsapp | quote }} + {{- end }} + {{- if .Values.littlelink.strava }} + STRAVA: {{ .Values.littlelink.strava | quote }} + {{- end }} + {{- if .Values.littlelink.buymeacoffee }} + BUYMEACOFFEE: {{ .Values.littlelink.buymeacoffee | quote }} + {{- end }} + {{- if .Values.littlelink.gitlab }} + GITLAB: {{ .Values.littlelink.gitlab | quote }} + {{- end }} + {{- if .Values.littlelink.patreon }} + PATREON: {{ .Values.littlelink.patreon | quote }} + {{- end }} + {{- if .Values.littlelink.devto }} + DEVTO: {{ .Values.littlelink.devto | quote }} + {{- end }} + {{- if .Values.littlelink.umami_website_id }} + UMAMI_WEBSITE_ID: {{ .Values.littlelink.umami_website_id | quote }} + {{- end }} + {{- if .Values.littlelink.umami_app_url }} + UMAMI_APP_URL: {{ .Values.littlelink.umami_app_url | quote }} + {{- end }} + {{- if .Values.littlelink.paypal }} + PAYPAL: {{ .Values.littlelink.paypal | quote }} + {{- end }} + {{- if .Values.littlelink.slack }} + SLACK: {{ .Values.littlelink.slack | quote }} + {{- end }} + {{- if .Values.littlelink.lastfm }} + LASTFM: {{ .Values.littlelink.lastfm | quote }} + {{- end }} + {{- if .Values.littlelink.untappd }} + UNTAPPD: {{ .Values.littlelink.untappd | quote }} + {{- end }} + {{- if .Values.littlelink.stackoverflow }} + STACKOVERFLOW: {{ .Values.littlelink.stackoverflow | quote }} + {{- end }} + {{- if .Values.littlelink.gitea }} + GITEA: {{ .Values.littlelink.gitea | quote }} + {{- end }} + {{- if .Values.littlelink.polywork }} + POLYWORK: {{ .Values.littlelink.polywork | quote }} + {{- end }} + {{- if .Values.littlelink.signal }} + SIGNAL: {{ .Values.littlelink.signal | quote }} + {{- end }} + {{- if .Values.littlelink.footer }} + FOOTER: {{ .Values.littlelink.footer | quote }} + {{- end }} + +{{- end -}} diff --git a/stable/littlelink/12.1.17/templates/common.yaml b/stable/littlelink/12.1.17/templates/common.yaml new file mode 100644 index 00000000000..a759b19a618 --- /dev/null +++ b/stable/littlelink/12.1.17/templates/common.yaml @@ -0,0 +1,11 @@ +{{/* Make sure all variables are set properly */}} +{{- include "tc.v1.common.loader.init" . }} + +{{/* Render configmap for littlelink */}} +{{- $configmap := include "littlelink.configmap" . | fromYaml -}} +{{- if $configmap -}} +{{- $_ := set .Values.configmap "config" $configmap -}} +{{- end -}} + +{{/* Render the templates */}} +{{ include "tc.v1.common.loader.apply" . }} diff --git a/stable/pyload-ng/4.1.17/values.yaml b/stable/littlelink/12.1.17/values.yaml similarity index 100% rename from stable/pyload-ng/4.1.17/values.yaml rename to stable/littlelink/12.1.17/values.yaml diff --git a/stable/logitech-media-server/10.1.12/CHANGELOG.md b/stable/logitech-media-server/10.1.12/CHANGELOG.md new file mode 100644 index 00000000000..4baccc259e3 --- /dev/null +++ b/stable/logitech-media-server/10.1.12/CHANGELOG.md @@ -0,0 +1,99 @@ +--- +title: Changelog +--- + +**Important:** +*for the complete changelog, please refer to the website* + + + +## [logitech-media-server-10.1.12](https://github.com/truecharts/charts/compare/logitech-media-server-10.1.11...logitech-media-server-10.1.12) (2024-02-12) + +### Chore + + + +- update container image lmscommunity/logitechmediaserver to stable[@d5c9075](https://github.com/d5c9075) by renovate ([#18090](https://github.com/truecharts/charts/issues/18090)) + + +## [logitech-media-server-10.1.11](https://github.com/truecharts/charts/compare/logitech-media-server-10.1.10...logitech-media-server-10.1.11) (2024-02-03) + +### Chore + + + +- update container image common to v17.2.30[@19ad5ec](https://github.com/19ad5ec) by renovate ([#17804](https://github.com/truecharts/charts/issues/17804)) + + +## [logitech-media-server-10.1.10](https://github.com/truecharts/charts/compare/logitech-media-server-10.1.9...logitech-media-server-10.1.10) (2024-01-26) + +### Chore + + + +- update container image common to v17.2.29[@d7c41a3](https://github.com/d7c41a3) by renovate ([#17545](https://github.com/truecharts/charts/issues/17545)) + + +## [logitech-media-server-10.1.9](https://github.com/truecharts/charts/compare/logitech-media-server-10.1.8...logitech-media-server-10.1.9) (2024-01-21) + +### Chore + + + +- update container image common to v17.2.28[@918b4c5](https://github.com/918b4c5) by renovate ([#17478](https://github.com/truecharts/charts/issues/17478)) + + +## [logitech-media-server-10.1.8](https://github.com/truecharts/charts/compare/logitech-media-server-10.1.7...logitech-media-server-10.1.8) (2024-01-21) + +### Chore + + + +- update container image common to v17.2.26[@24c98f7](https://github.com/24c98f7) by renovate ([#17409](https://github.com/truecharts/charts/issues/17409)) + + +## [logitech-media-server-10.1.7](https://github.com/truecharts/charts/compare/logitech-media-server-10.1.6...logitech-media-server-10.1.7) (2024-01-21) + +### Chore + + + +- update metadata in chart.yaml ([#17457](https://github.com/truecharts/charts/issues/17457)) + + + + +## [logitech-media-server-10.1.6](https://github.com/truecharts/charts/compare/logitech-media-server-10.1.5...logitech-media-server-10.1.6) (2024-01-09) + +### Chore + + + +- update container image common to v17.2.22[@e7c9056](https://github.com/e7c9056) by renovate ([#16986](https://github.com/truecharts/charts/issues/16986)) + + +## [logitech-media-server-10.1.5](https://github.com/truecharts/charts/compare/logitech-media-server-10.1.4...logitech-media-server-10.1.5) (2024-01-02) + +### Chore + + + +- force bump to ensure up-to-date catalogs + + +## [logitech-media-server-10.1.4](https://github.com/truecharts/charts/compare/logitech-media-server-10.1.3...logitech-media-server-10.1.4) (2024-01-01) + +### Chore + + + +- increase common version for oci fixes + +- remove non-existent template refs ([#16738](https://github.com/truecharts/charts/issues/16738)) + + +## [logitech-media-server-10.1.3](https://github.com/truecharts/charts/compare/logitech-media-server-10.1.0...logitech-media-server-10.1.3) (2024-01-01) + +### Chore + + diff --git a/stable/logitech-media-server/10.1.12/Chart.yaml b/stable/logitech-media-server/10.1.12/Chart.yaml new file mode 100644 index 00000000000..c2b830179aa --- /dev/null +++ b/stable/logitech-media-server/10.1.12/Chart.yaml @@ -0,0 +1,39 @@ +annotations: + max_scale_version: 23.10.2 + min_scale_version: 23.10.0 + truecharts.org/SCALE-support: "true" + truecharts.org/category: media + truecharts.org/max_helm_version: "3.14" + truecharts.org/min_helm_version: "3.12" + truecharts.org/train: stable +apiVersion: v2 +appVersion: stable +dependencies: + - name: common + version: 17.2.30 + repository: oci://tccr.io/truecharts + condition: "" + alias: "" + tags: [] + import-values: [] +deprecated: false +description: Logitech Media Server is a platform for home/office audio streaming. +home: https://truecharts.org/charts/stable/logitech-media-server +icon: https://truecharts.org/img/hotlink-ok/chart-icons/logitech-media-server.png +keywords: + - logitech-media-server + - squeezebox + - audio + - streaming +kubeVersion: ">=1.24.0-0" +maintainers: + - name: TrueCharts + email: info@truecharts.org + url: https://truecharts.org +name: logitech-media-server +sources: + - https://github.com/Logitech/slimserver + - https://github.com/truecharts/charts/tree/master/charts/stable/logitech-media-server + - https://hub.docker.com/r/lmscommunity/logitechmediaserver +type: application +version: 10.1.12 diff --git a/stable/logitech-media-server/10.1.12/README.md b/stable/logitech-media-server/10.1.12/README.md new file mode 100644 index 00000000000..97c6ce7ecca --- /dev/null +++ b/stable/logitech-media-server/10.1.12/README.md @@ -0,0 +1,28 @@ +--- +title: README +--- + +## General Info + +TrueCharts can be installed as both _normal_ Helm Charts or as Apps on TrueNAS SCALE. +However only installations using the TrueNAS SCALE Apps system are supported. + +For more information about this App, please check the docs on the TrueCharts [website](https://truecharts.org/charts/stable/logitech-media-server) + +**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)** + +## Support + +- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/manual/SCALE/guides/scale-intro). +- See the [Website](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/charts/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/stable/logitech-media-server/10.1.12/app-changelog.md b/stable/logitech-media-server/10.1.12/app-changelog.md new file mode 100644 index 00000000000..cafffc60d64 --- /dev/null +++ b/stable/logitech-media-server/10.1.12/app-changelog.md @@ -0,0 +1,9 @@ + + +## [logitech-media-server-10.1.12](https://github.com/truecharts/charts/compare/logitech-media-server-10.1.11...logitech-media-server-10.1.12) (2024-02-12) + +### Chore + + + +- update container image lmscommunity/logitechmediaserver to stable[@d5c9075](https://github.com/d5c9075) by renovate ([#18090](https://github.com/truecharts/charts/issues/18090)) \ No newline at end of file diff --git a/stable/logitech-media-server/10.1.12/app-readme.md b/stable/logitech-media-server/10.1.12/app-readme.md new file mode 100644 index 00000000000..14480534d3d --- /dev/null +++ b/stable/logitech-media-server/10.1.12/app-readme.md @@ -0,0 +1,8 @@ +Logitech Media Server is a platform for home/office audio streaming. + +This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/charts/stable/logitech-media-server](https://truecharts.org/charts/stable/logitech-media-server) + +--- + +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! diff --git a/stable/searxng/6.1.20/charts/common-17.2.30.tgz b/stable/logitech-media-server/10.1.12/charts/common-17.2.30.tgz similarity index 100% rename from stable/searxng/6.1.20/charts/common-17.2.30.tgz rename to stable/logitech-media-server/10.1.12/charts/common-17.2.30.tgz diff --git a/stable/logitech-media-server/10.1.12/ix_values.yaml b/stable/logitech-media-server/10.1.12/ix_values.yaml new file mode 100644 index 00000000000..b8b2d3ed02c --- /dev/null +++ b/stable/logitech-media-server/10.1.12/ix_values.yaml @@ -0,0 +1,51 @@ +image: + repository: lmscommunity/logitechmediaserver + pullPolicy: IfNotPresent + tag: stable@sha256:d5c90753960c9d5c2397a4da5b3b6a3ae85d5b69b898d39bdfdb1d15c79b209a +service: + main: + ports: + main: + port: 9000 + cli: + enabled: true + ports: + cli: + enabled: true + port: 9090 + targetPort: 9090 + playertcp: + enabled: true + ports: + slimprototcp: + enabled: true + port: 3483 + targetPort: 3483 + playerudp: + enabled: true + ports: + slimprotoudp: + enabled: true + port: 3483 + protocol: udp + targetPort: 3483 +persistence: + config: + enabled: true + mountPath: /config +portal: + open: + enabled: true +securityContext: + container: + readOnlyRootFilesystem: false + runAsNonRoot: false + runAsUser: 0 + runAsGroup: 0 +workload: + main: + podSpec: + containers: + main: + env: + HTTP_PORT: "{{ .Values.service.main.ports.main.port }}" diff --git a/stable/logitech-media-server/10.1.12/questions.yaml b/stable/logitech-media-server/10.1.12/questions.yaml new file mode 100644 index 00000000000..e2dcee8e5d4 --- /dev/null +++ b/stable/logitech-media-server/10.1.12/questions.yaml @@ -0,0 +1,2980 @@ +groups: + - name: Container Image + description: Image to be used for container + - name: General Settings + description: General Deployment Settings + - name: Workload Settings + description: Workload Settings + - 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: Backup Configuration + description: Configure Velero Backup Schedule + - name: Advanced + description: Advanced Configuration + - name: Postgresql + description: Postgresql + - name: Documentation + description: Documentation +portals: + open: + protocols: + - "$kubernetes-resource_configmap_tcportal-open_protocol" + host: + - "$kubernetes-resource_configmap_tcportal-open_host" + ports: + - "$kubernetes-resource_configmap_tcportal-open_port" +questions: + - variable: global + group: General Settings + label: "Global Settings" + schema: + additional_attrs: true + type: dict + attrs: + - variable: stopAll + label: Stop All + description: "Stops All Running pods and hibernates cnpg" + schema: + type: boolean + default: false + - variable: workload + group: "Workload Settings" + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type (Advanced) + schema: + type: string + default: Deployment + enum: + - value: Deployment + description: Deployment + - value: DaemonSet + description: DaemonSet + - variable: replicas + label: Replicas (Advanced) + description: Set the number of Replicas + schema: + type: int + show_if: [["type", "!=", "DaemonSet"]] + default: 1 + - variable: podSpec + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: containers + label: Containers + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: Main Container + schema: + additional_attrs: true + type: dict + attrs: + - 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..." + 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: extraArgs + label: Extra Args + schema: + type: list + default: [] + items: + - variable: arg + label: Arg + schema: + type: string + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: command + label: Command + schema: + type: list + default: [] + items: + - variable: param + label: Param + schema: + type: string + - variable: TZ + label: Timezone + group: "General Settings" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: podOptions + group: "General Settings" + label: "Global Pod Options (Advanced)" + schema: + additional_attrs: true + type: dict + attrs: + - variable: expertPodOpts + label: "Expert - Pod Options" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + label: "Host Networking" + schema: + type: boolean + default: false + - variable: dnsConfig + label: "DNS Configuration" + schema: + type: dict + additional_attrs: true + attrs: + - variable: options + label: "Options" + schema: + type: list + default: [{"name": "ndots", "value": "1"}] + items: + - variable: optionsEntry + label: "Option Entry" + schema: + type: dict + additional_attrs: true + attrs: + - variable: name + label: "Name" + schema: + type: string + required: true + - variable: value + label: "Value" + schema: + type: string + - variable: nameservers + label: "Nameservers" + schema: + type: list + default: [] + items: + - variable: nsEntry + label: "Nameserver Entry" + schema: + type: string + required: true + - variable: searches + label: "Searches" + schema: + type: list + default: [] + items: + - variable: searchEntry + label: "Search Entry" + schema: + type: string + required: true + + - variable: imagePullSecretList + group: "General Settings" + label: "Image Pull Secrets" + schema: + type: list + default: [] + items: + - variable: pullsecretentry + label: "Pull Secret" + schema: + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: true + - variable: data + label: Data + schema: + type: dict + additional_attrs: true + attrs: + - variable: registry + label: "Registry" + schema: + type: string + required: true + default: "https://index.docker.io/v1/" + - variable: username + label: "Username" + schema: + type: string + required: true + default: "" + - variable: password + label: "Password" + schema: + type: string + required: true + private: true + default: "" + - variable: email + label: "Email" + schema: + type: string + required: true + default: "" + - variable: service + group: Networking and Services + label: Configure Service(s) + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: Main Service + description: Logitech Media Web UI and music streaming + 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) + - 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: ports + label: "Service's Port(s) Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: Web Interface and music streaming port + 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: 9000 + required: true + - variable: cli + label: CLI Service + description: Logitech Media Server Telnet Command Line Interface + 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) + - 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: ports + label: "Service's Port(s) Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: cli + label: Port used for remote control using the Telnet Command Line interface + 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: 9090 + required: true + - variable: playertcp + label: Logitech Media Server Player TCP Communcation + description: Logitech Media Server Player Service for TCP communication + 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) + - 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: ports + label: "Service's Port(s) Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: slimprototcp + label: Player to server TCP communication + 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: 3483 + required: true + - variable: playerudp + label: Logitech Media Server Player Communcation + description: Logitech Media Server Player Service for UDP communication + 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) + - 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: ports + label: "Service's Port(s) Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: slimprotoudp + label: Player to server UDP communication + 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: 3483 + required: true + - variable: serviceexpert + group: Networking and Services + label: Show Expert Config + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: scaleExternalInterface + description: Add External Interfaces + label: Add external Interfaces + group: Networking + schema: + type: list + items: + - variable: interfaceConfiguration + description: Interface Configuration + label: Interface Configuration + schema: + additional_attrs: true + 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: + additional_attrs: true + 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 + - variable: staticIPConfigurations + label: Static IP Addresses + schema: + type: list + show_if: [["type", "=", "static"]] + items: + - variable: staticIP + label: Static IP + schema: + type: ipaddr + cidr: true + - variable: staticRoutes + label: Static Routes + schema: + type: list + show_if: [["type", "=", "static"]] + 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: 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: config + label: App Config 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: pvc + enum: + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: emptyDir + description: emptyDir + - value: nfs + description: NFS Share + - value: iscsi + description: iSCSI 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: iscsi + label: iSCSI Options + schema: + show_if: [["type", "=", "iscsi"]] + type: dict + additional_attrs: true + attrs: + - variable: targetPortal + label: targetPortal + schema: + type: string + required: true + default: "" + - variable: iqn + label: iqn + schema: + type: string + required: true + default: "" + - variable: lun + label: lun + schema: + type: int + default: 0 + - variable: authSession + label: authSession + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: authDiscovery + label: authDiscovery + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + + - variable: autoPermissions + label: Automatic Permissions Configuration + description: Automatically set permissions + schema: + show_if: [["type", "!=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: chown + label: Run CHOWN + description: | + It will run CHOWN on the path with the given fsGroup + schema: + type: boolean + default: false + - variable: chmod + label: Run CHMOD + description: | + It will run CHMOD on the path with the given value
+ Format should be 3 digits, e.g. 770 + schema: + type: string + valid_chars: '[0-9]{3}' + default: "" + - variable: recursive + label: Recursive + description: | + It will run CHOWN and CHMOD recursively + schema: + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - 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 (Do NOT REDUCE after installation) + description: This value can ONLY be INCREASED after the installation + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: storageClass + label: 'storageClass (Advanced)' + description: 'sets the storageClass to something other than iX default. Only for advanced usecases!' + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "" + - variable: static + label: 'Static Fixed PVC Bindings (Experimental)' + description: Link a PVC to a specific storage location + schema: + show_if: [["type", "=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: mode + label: mode + description: | + disabled: use normal dynamic PVCs + smb: connect to an SMB share + nfs: connect to an NFS share + schema: + type: string + default: "disabled" + enum: + - value: disabled + description: disabled + - value: smb + description: smb + - value: nfs + description: nfs + - variable: server + label: Server + description: server to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "myserver" + - variable: share + label: Share + description: share to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "/myshare" + - variable: user + label: User + description: connecting user + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "myuser" + - variable: domain + label: Domain + description: user domain + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: password + label: Password + description: connecting password + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: volumeSnapshots + label: 'Volume Snapshots (Experimental)' + description: Add an entry to the list to force creation of a volumeSnapshot of this PVC + schema: + show_if: [["type", "=", "pvc"]] + type: list + default: [] + items: + - variable: volumeSnapshotEntry + label: Custom volumeSnapshot + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: 'WARNING: renaming this, means deletion of the snapshot with the old name!' + schema: + type: string + default: "mysnapshot" + required: true + - variable: volumeSnapshotClassName + label: 'volumeSnapshot Class Name (Advanced)' + description: For use with PVCs using a non-default storageClass + schema: + type: string + default: "" + - 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: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: hostPath + enum: + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: emptyDir + description: emptyDir + - 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: iscsi + label: iSCSI Options + schema: + show_if: [["type", "=", "iscsi"]] + type: dict + additional_attrs: true + attrs: + - variable: targetPortal + label: targetPortal + schema: + type: string + required: true + default: "" + - variable: iqn + label: iqn + schema: + type: string + required: true + default: "" + - variable: lun + label: lun + schema: + type: int + default: 0 + - variable: authSession + label: authSession + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: authDiscovery + label: authDiscovery + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: autoPermissions + label: Automatic Permissions Configuration + description: Automatically set permissions + schema: + show_if: [["type", "!=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: chown + label: Run CHOWN + description: | + It will run CHOWN on the path with the given fsGroup + schema: + type: boolean + default: false + - variable: chmod + label: Run CHMOD + description: | + It will run CHMOD on the path with the given value
+ Format should be 3 digits, e.g. 770 + schema: + type: string + valid_chars: '[0-9]{3}' + default: "" + - variable: recursive + label: Recursive + description: | + It will run CHOWN and CHMOD recursively + schema: + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - 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: storageClass + label: 'storageClass (Advanced)' + description: 'sets the storageClass to something other than iX default. Only for advanced usecases!' + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "" + - variable: static + label: 'Static Fixed PVC Bindings (Experimental)' + description: Link a PVC to a specific storage location + schema: + show_if: [["type", "=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: mode + label: mode + description: | + disabled: use normal dynamic PVCs + smb: connect to an SMB share + nfs: connect to an NFS share + schema: + type: string + default: "disabled" + enum: + - value: "disabled" + description: disabled + - value: smb + description: smb + - value: nfs + description: nfs + - variable: server + label: Server + description: server to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "myserver" + - variable: share + label: Share + description: share to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "/myshare" + - variable: user + label: User + description: connecting user + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "myuser" + - variable: domain + label: Domain + description: user domain + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: password + label: Password + description: connecting password + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: volumeSnapshots + label: 'Volume Snapshots (Experimental)' + description: Add an entry to the list to force creation of a volumeSnapshot of this PVC + schema: + show_if: [["type", "=", "pvc"]] + type: list + default: [] + items: + - variable: volumeSnapshotEntry + label: Custom volumeSnapshot + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: 'WARNING: renaming this, means deletion of the snapshot with the old name!' + schema: + type: string + default: "mysnapshot" + required: true + - variable: volumeSnapshotClassName + label: 'volumeSnapshot Class Name (Advanced)' + description: For use with PVCs using a non-default storageClass + schema: + type: string + default: "" + - 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: [{path: "/", pathType: "Prefix"}] + 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: integrations + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: traefik + label: Traefik + description: Connect ingress with Traefik + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: allowCors + label: 'Allow Cross Origin Requests (advanced)' + schema: + type: boolean + default: false + show_if: [["enabled", "=", true]] + - variable: entrypoints + label: Entrypoints + schema: + type: list + default: ["websecure"] + show_if: [["enabled", "=", true]] + items: + - variable: entrypoint + label: Entrypoint + schema: + type: string + - variable: middlewares + label: Middlewares + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: middleware + label: Middleware + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true + - variable: namespace + label: 'namespace (optional)' + schema: + type: string + default: "" + - variable: certManager + label: certManager + description: Connect ingress with certManager + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: certificateIssuer + label: certificateIssuer + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: homepage + label: Homepage + description: Connect ingress with Homepage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: name + label: Name (Optional) + description: Defaults to chart name + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: description + label: Description (Optional) + description: Defaults to chart description + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: icon + label: Icon (Optional) + description: Defaults to chart icon + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: group + label: Group + schema: + type: string + required: true + default: "default" + show_if: [["enabled", "=", true]] + - variable: widget + label: Widget Settings + schema: + type: dict + additional_attrs: true + show_if: [["enabled", "=", true]] + attrs: + - variable: enabled + label: Enable Widget + description: When disabled all widget annotations are skipped. + schema: + type: boolean + default: true + - variable: custom + label: Options + schema: + type: dict + additional_attrs: true + attrs: + - variable: key + label: API-key (key) + schema: + type: string + default: "" + - variable: customkv + label: Custom Options + schema: + type: list + default: [] + items: + - variable: option + label: Option + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + default: "" + required: true + - variable: value + label: Value + schema: + type: string + default: "" + required: true + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + - variable: ingressClassName + label: (Advanced/Optional) IngressClass Name + schema: + type: string + show_if: [["advanced", "=", true]] + default: "" + - variable: tls + label: TLS-Settings + schema: + type: list + show_if: [["advanced", "=", true]] + 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: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: 'Use Custom Certificate Secret (Advanced)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: string + default: "" + - variable: scaleCert + label: 'Use TrueNAS SCALE Certificate (Deprecated)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - 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: 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: overrideService + 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: [] + show_if: [["certificateIssuer", "=", ""]] + 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: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your Cert-Manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: scaleCert + label: Use TrueNAS SCALE Certificate (Deprecated) + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: Use Custom Secret (Advanced) + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: integrations + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: traefik + label: Traefik + description: Connect ingress with Traefik + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: allowCors + label: "Allow Cross Origin Requests" + schema: + type: boolean + default: false + show_if: [["enabled", "=", true]] + - variable: entrypoints + label: Entrypoints + schema: + type: list + default: ["websecure"] + show_if: [["enabled", "=", true]] + items: + - variable: entrypoint + label: Entrypoint + schema: + type: string + - variable: middlewares + label: Middlewares + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: middleware + label: Middleware + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true + - variable: namespace + label: namespace + schema: + type: string + default: "" + - variable: certManager + label: certManager + description: Connect ingress with certManager + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: certificateIssuer + label: certificateIssuer + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: homepage + label: Homepage + description: Connect ingress with Homepage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: name + label: Name + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: description + label: Description + description: defaults to chart description + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: group + label: Group + schema: + type: string + required: true + default: "default" + show_if: [["enabled", "=", true]] + - variable: securityContext + group: Security and Permissions + label: Security Context + schema: + additional_attrs: true + type: dict + attrs: + - variable: container + label: Container + schema: + additional_attrs: true + type: dict + attrs: + # Settings from questions.yaml get appended here on a per-app basis + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 0 + - variable: runAsGroup + label: "runAsGroup" + description: "The groupID this App of the user running the application" + schema: + type: int + default: 0 + # Settings from questions.yaml get appended here on a per-app basis + - 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 + show_if: [["runAsUser", "=", 0]] + 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: "0022" + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: pod + label: Pod + schema: + additional_attrs: true + type: dict + attrs: + - 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 + # Settings from questions.yaml get appended here on a per-app basis + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: resources + group: Resources and Devices + label: "Resource Limits" + 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/manual/SCALE/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/manual/SCALE/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 + hidden: true + attrs: + - variable: cpu + label: CPU + description: "1000m means 1 hyperthread. Detailed info: https://truecharts.org/manual/SCALE/validation" + schema: + type: string + default: 10m + hidden: true + 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/manual/SCALE/validation" + schema: + type: string + default: 50Mi + hidden: true + 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: device + 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" + - variable: scaleGPU + label: GPU Configuration + group: Resources and Devices + schema: + type: list + default: [] + items: + - variable: scaleGPUEntry + label: GPU + schema: + additional_attrs: true + type: dict + attrs: + # Specify GPU configuration + - variable: gpu + label: Select GPU + schema: + additional_attrs: true + type: dict + $ref: + - "definitions/gpuConfiguration" + attrs: [] + - variable: workaround + label: "Workaround" + schema: + type: string + default: workaround + hidden: true +# - 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: 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: 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: ingress + label: "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: [{path: "/", pathType: "Prefix"}] + 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: integrations + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: traefik + label: Traefik + description: Connect ingress with Traefik + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: allowCors + label: 'Allow Cross Origin Requests (advanced)' + schema: + type: boolean + default: false + show_if: [["enabled", "=", true]] + - variable: entrypoints + label: Entrypoints + schema: + type: list + default: ["websecure"] + show_if: [["enabled", "=", true]] + items: + - variable: entrypoint + label: Entrypoint + schema: + type: string + - variable: middlewares + label: Middlewares + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: middleware + label: Middleware + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true + - variable: namespace + label: 'namespace (optional)' + schema: + type: string + default: "" + - variable: certManager + label: certManager + description: Connect ingress with certManager + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: certificateIssuer + label: certificateIssuer + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + - variable: ingressClassName + label: (Advanced/Optional) IngressClass Name + schema: + type: string + show_if: [["advanced", "=", true]] + default: "" + - variable: tls + label: TLS-Settings + schema: + type: list + show_if: [["advanced", "=", true]] + 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: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: 'Use Custom Certificate Secret (Advanced)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: string + default: "" + - variable: scaleCert + label: 'Use TrueNAS SCALE Certificate (Deprecated)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - 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: 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: gluetun + description: Gluetun + - value: tailscale + description: Tailscale + - value: openvpn + description: OpenVPN (Deprecated) + - value: wireguard + description: Wireguard (Deprecated) + - variable: openvpn + label: OpenVPN Settings + schema: + additional_attrs: true + 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 + show_if: [["username", "!=", ""]] + default: "" + required: true + - variable: tailscale + label: Tailscale Settings + schema: + additional_attrs: true + 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: auth_once + label: Auth Once + description: Only attempt to log in if not already logged in. + schema: + type: boolean + default: true + - 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: The address on which to listen for SOCKS5 proxying into the tailscale net. + schema: + type: string + default: "" + - variable: outbound_http_proxy_listen + label: Outbound HTTP Proxy Listen + description: The address on which to listen for HTTP proxying into the tailscale net. + 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: string + show_if: [["type", "!=", "disabled"]] + 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 + max_length: 10240 + - 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/stable/snapdrop/8.1.14/templates/NOTES.txt b/stable/logitech-media-server/10.1.12/templates/NOTES.txt similarity index 100% rename from stable/snapdrop/8.1.14/templates/NOTES.txt rename to stable/logitech-media-server/10.1.12/templates/NOTES.txt diff --git a/stable/steam-headless/2.1.18/templates/common.yaml b/stable/logitech-media-server/10.1.12/templates/common.yaml similarity index 100% rename from stable/steam-headless/2.1.18/templates/common.yaml rename to stable/logitech-media-server/10.1.12/templates/common.yaml diff --git a/stable/red-discordbot/4.1.15/values.yaml b/stable/logitech-media-server/10.1.12/values.yaml similarity index 100% rename from stable/red-discordbot/4.1.15/values.yaml rename to stable/logitech-media-server/10.1.12/values.yaml diff --git a/stable/mattermost/11.2.5/CHANGELOG.md b/stable/mattermost/11.2.5/CHANGELOG.md new file mode 100644 index 00000000000..e1728ec6849 --- /dev/null +++ b/stable/mattermost/11.2.5/CHANGELOG.md @@ -0,0 +1,99 @@ +--- +title: Changelog +--- + +**Important:** +*for the complete changelog, please refer to the website* + + + +## [mattermost-11.2.5](https://github.com/truecharts/charts/compare/mattermost-11.2.4...mattermost-11.2.5) (2024-02-12) + +### Chore + + + +- update container image mattermost/mattermost-enterprise-edition to release-9.5[@a6f732c](https://github.com/a6f732c) by renovate ([#18095](https://github.com/truecharts/charts/issues/18095)) + + +## [mattermost-11.2.4](https://github.com/truecharts/charts/compare/mattermost-11.2.3...mattermost-11.2.4) (2024-02-05) + +### Chore + + + +- update container image mattermost/mattermost-enterprise-edition to release-9.5[@e822934](https://github.com/e822934) by renovate ([#17885](https://github.com/truecharts/charts/issues/17885)) + + +## [mattermost-11.2.3](https://github.com/truecharts/charts/compare/mattermost-11.2.2...mattermost-11.2.3) (2024-02-03) + +### Chore + + + +- update container image common to v17.2.30[@19ad5ec](https://github.com/19ad5ec) by renovate ([#17804](https://github.com/truecharts/charts/issues/17804)) + + +## [mattermost-11.2.2](https://github.com/truecharts/charts/compare/mattermost-11.2.1...mattermost-11.2.2) (2024-01-29) + +### Chore + + + +- update container image mattermost/mattermost-enterprise-edition to release-9.5[@9154cfd](https://github.com/9154cfd) by renovate ([#17645](https://github.com/truecharts/charts/issues/17645)) + + +## [mattermost-11.2.1](https://github.com/truecharts/charts/compare/mattermost-11.2.0...mattermost-11.2.1) (2024-01-26) + +### Chore + + + +- update container image common to v17.2.29[@d7c41a3](https://github.com/d7c41a3) by renovate ([#17545](https://github.com/truecharts/charts/issues/17545)) + + +## [mattermost-11.2.0](https://github.com/truecharts/charts/compare/mattermost-11.1.14...mattermost-11.2.0) (2024-01-23) + +### Chore + + + +- update container image mattermost/mattermost-enterprise-edition to vrelease-9.5[@8605106](https://github.com/8605106) by renovate ([#17520](https://github.com/truecharts/charts/issues/17520)) + + +## [mattermost-11.1.14](https://github.com/truecharts/charts/compare/mattermost-11.1.13...mattermost-11.1.14) (2024-01-22) + +### Chore + + + +- update container image mattermost/mattermost-enterprise-edition to v[@ad422de](https://github.com/ad422de) by renovate ([#17514](https://github.com/truecharts/charts/issues/17514)) + + +## [mattermost-11.1.13](https://github.com/truecharts/charts/compare/mattermost-11.1.12...mattermost-11.1.13) (2024-01-21) + +### Chore + + + +- update container image common to v17.2.28[@918b4c5](https://github.com/918b4c5) by renovate ([#17478](https://github.com/truecharts/charts/issues/17478)) + + +## [mattermost-11.1.12](https://github.com/truecharts/charts/compare/mattermost-11.1.11...mattermost-11.1.12) (2024-01-21) + +### Chore + + + +- update container image common to v17.2.26[@24c98f7](https://github.com/24c98f7) by renovate ([#17409](https://github.com/truecharts/charts/issues/17409)) + + +## [mattermost-11.1.11](https://github.com/truecharts/charts/compare/mattermost-11.1.10...mattermost-11.1.11) (2024-01-21) + +### Chore + + + +- update metadata in chart.yaml ([#17457](https://github.com/truecharts/charts/issues/17457)) + + diff --git a/stable/mattermost/11.2.5/Chart.yaml b/stable/mattermost/11.2.5/Chart.yaml new file mode 100644 index 00000000000..27b29a49e8d --- /dev/null +++ b/stable/mattermost/11.2.5/Chart.yaml @@ -0,0 +1,39 @@ +annotations: + max_scale_version: 23.10.2 + min_scale_version: 23.10.0 + truecharts.org/SCALE-support: "true" + truecharts.org/category: hosting + truecharts.org/max_helm_version: "3.14" + truecharts.org/min_helm_version: "3.12" + truecharts.org/train: stable +apiVersion: v2 +appVersion: 9.5.0 +dependencies: + - name: common + version: 17.2.30 + repository: oci://tccr.io/truecharts + condition: "" + alias: "" + tags: [] + import-values: [] +deprecated: false +description: Mattermost is an open source platform for secure collaboration across the entire software development lifecycle. +home: https://truecharts.org/charts/stable/mattermost +icon: https://truecharts.org/img/hotlink-ok/chart-icons/mattermost.png +keywords: + - team + - mattermost + - development +kubeVersion: ">=1.24.0-0" +maintainers: + - name: TrueCharts + email: info@truecharts.org + url: https://truecharts.org +name: mattermost +sources: + - https://github.com/mattermost/mattermost-server + - https://github.com/mattermost/docker + - https://github.com/truecharts/charts/tree/master/charts/stable/mattermost + - https://hub.docker.com/r/mattermost/mattermost-enterprise-edition +type: application +version: 11.2.5 diff --git a/stable/mattermost/11.2.5/README.md b/stable/mattermost/11.2.5/README.md new file mode 100644 index 00000000000..11ae5603991 --- /dev/null +++ b/stable/mattermost/11.2.5/README.md @@ -0,0 +1,28 @@ +--- +title: README +--- + +## General Info + +TrueCharts can be installed as both _normal_ Helm Charts or as Apps on TrueNAS SCALE. +However only installations using the TrueNAS SCALE Apps system are supported. + +For more information about this App, please check the docs on the TrueCharts [website](https://truecharts.org/charts/stable/mattermost) + +**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)** + +## Support + +- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/manual/SCALE/guides/scale-intro). +- See the [Website](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/charts/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/stable/mattermost/11.2.5/app-changelog.md b/stable/mattermost/11.2.5/app-changelog.md new file mode 100644 index 00000000000..5c3cfeb0604 --- /dev/null +++ b/stable/mattermost/11.2.5/app-changelog.md @@ -0,0 +1,9 @@ + + +## [mattermost-11.2.5](https://github.com/truecharts/charts/compare/mattermost-11.2.4...mattermost-11.2.5) (2024-02-12) + +### Chore + + + +- update container image mattermost/mattermost-enterprise-edition to release-9.5[@a6f732c](https://github.com/a6f732c) by renovate ([#18095](https://github.com/truecharts/charts/issues/18095)) \ No newline at end of file diff --git a/stable/mattermost/11.2.5/app-readme.md b/stable/mattermost/11.2.5/app-readme.md new file mode 100644 index 00000000000..709cc54d5fd --- /dev/null +++ b/stable/mattermost/11.2.5/app-readme.md @@ -0,0 +1,8 @@ +Mattermost is an open source platform for secure collaboration across the entire software development lifecycle. + +This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/charts/stable/mattermost](https://truecharts.org/charts/stable/mattermost) + +--- + +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! diff --git a/stable/serpbear/2.1.13/charts/common-17.2.30.tgz b/stable/mattermost/11.2.5/charts/common-17.2.30.tgz similarity index 100% rename from stable/serpbear/2.1.13/charts/common-17.2.30.tgz rename to stable/mattermost/11.2.5/charts/common-17.2.30.tgz diff --git a/stable/mattermost/11.2.5/ix_values.yaml b/stable/mattermost/11.2.5/ix_values.yaml new file mode 100644 index 00000000000..5cfd9333a65 --- /dev/null +++ b/stable/mattermost/11.2.5/ix_values.yaml @@ -0,0 +1,48 @@ +image: + repository: mattermost/mattermost-enterprise-edition + tag: release-9.5@sha256:a6f732cc703f0b47e3e5a03c20cf6a4a0ad78f80ccfa36d0650c8a0114a75303 + pullPolicy: IfNotPresent +workload: + main: + podSpec: + containers: + main: + env: + TIMEZONE: "{{ .Values.TZ }}" + MM_SQLSETTINGS_DRIVERNAME: "postgres" + MM_BLEVESETTINGS_INDEXDIR: "/mattermost/bleve-indexes" + MM_SERVICESETTINGS_SITEURL: "https://test.example.com" + MM_SQLSETTINGS_DATASOURCE: '{{ .Values.cnpg.main.creds.std | trimAll "\"" }}' +service: + main: + ports: + main: + port: 10239 + targetPort: 8065 +persistence: + config: + enabled: true + mountPath: "/mattermost/config" + data: + enabled: true + mountPath: "/mattermost/data" + logs: + enabled: true + mountPath: "/mattermost/logs" + plugins: + enabled: true + mountPath: "/mattermost/plugins" + clientplugins: + enabled: true + mountPath: "/mattermost/client/plugins" + bleveindexes: + enabled: true + mountPath: "/mattermost/bleve-indexes" +cnpg: + main: + enabled: true + user: mattermost + database: mattermost +portal: + open: + enabled: true diff --git a/stable/mattermost/11.2.5/questions.yaml b/stable/mattermost/11.2.5/questions.yaml new file mode 100644 index 00000000000..8680bc9a215 --- /dev/null +++ b/stable/mattermost/11.2.5/questions.yaml @@ -0,0 +1,4668 @@ +groups: + - name: Container Image + description: Image to be used for container + - name: General Settings + description: General Deployment Settings + - name: Workload Settings + description: Workload Settings + - 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: Backup Configuration + description: Configure Velero Backup Schedule + - name: Advanced + description: Advanced Configuration + - name: Postgresql + description: Postgresql + - name: Documentation + description: Documentation +portals: + open: + protocols: + - "$kubernetes-resource_configmap_tcportal-open_protocol" + host: + - "$kubernetes-resource_configmap_tcportal-open_host" + ports: + - "$kubernetes-resource_configmap_tcportal-open_port" +questions: + - variable: global + group: General Settings + label: "Global Settings" + schema: + additional_attrs: true + type: dict + attrs: + - variable: stopAll + label: Stop All + description: "Stops All Running pods and hibernates cnpg" + schema: + type: boolean + default: false + - variable: workload + group: "Workload Settings" + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type (Advanced) + schema: + type: string + default: Deployment + enum: + - value: Deployment + description: Deployment + - value: DaemonSet + description: DaemonSet + - variable: replicas + label: Replicas (Advanced) + description: Set the number of Replicas + schema: + type: int + show_if: [["type", "!=", "DaemonSet"]] + default: 1 + - variable: podSpec + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: containers + label: Containers + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: Main Container + schema: + additional_attrs: true + type: dict + attrs: + - variable: env + group: "App Configuration" + label: "Image Environment" + schema: + additional_attrs: true + type: dict + attrs: + - variable: MM_SERVICESETTINGS_SITEURL + label: "MM_SERVICESETTINGS_SITEURL" + description: "HTTPS URL on which you will reach this instance, eg. https://matter.example.com/" + schema: + type: string + default: "" + - 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..." + 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: extraArgs + label: Extra Args + schema: + type: list + default: [] + items: + - variable: arg + label: Arg + schema: + type: string + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: command + label: Command + schema: + type: list + default: [] + items: + - variable: param + label: Param + schema: + type: string + - variable: TZ + label: Timezone + group: "General Settings" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: podOptions + group: "General Settings" + label: "Global Pod Options (Advanced)" + schema: + additional_attrs: true + type: dict + attrs: + - variable: expertPodOpts + label: "Expert - Pod Options" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + label: "Host Networking" + schema: + type: boolean + default: false + - variable: dnsConfig + label: "DNS Configuration" + schema: + type: dict + additional_attrs: true + attrs: + - variable: options + label: "Options" + schema: + type: list + default: [{"name": "ndots", "value": "1"}] + items: + - variable: optionsEntry + label: "Option Entry" + schema: + type: dict + additional_attrs: true + attrs: + - variable: name + label: "Name" + schema: + type: string + required: true + - variable: value + label: "Value" + schema: + type: string + - variable: nameservers + label: "Nameservers" + schema: + type: list + default: [] + items: + - variable: nsEntry + label: "Nameserver Entry" + schema: + type: string + required: true + - variable: searches + label: "Searches" + schema: + type: list + default: [] + items: + - variable: searchEntry + label: "Search Entry" + schema: + type: string + required: true + + - variable: imagePullSecretList + group: "General Settings" + label: "Image Pull Secrets" + schema: + type: list + default: [] + items: + - variable: pullsecretentry + label: "Pull Secret" + schema: + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: true + - variable: data + label: Data + schema: + type: dict + additional_attrs: true + attrs: + - variable: registry + label: "Registry" + schema: + type: string + required: true + default: "https://index.docker.io/v1/" + - variable: username + label: "Username" + schema: + type: string + required: true + default: "" + - variable: password + label: "Password" + schema: + type: string + required: true + private: true + default: "" + - variable: email + label: "Email" + schema: + type: string + required: true + default: "" + - 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) + - 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: 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: 10239 + required: true + - variable: serviceexpert + group: Networking and Services + label: Show Expert Config + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: scaleExternalInterface + description: Add External Interfaces + label: Add external Interfaces + group: Networking + schema: + type: list + items: + - variable: interfaceConfiguration + description: Interface Configuration + label: Interface Configuration + schema: + additional_attrs: true + 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: + additional_attrs: true + 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 + - variable: staticIPConfigurations + label: Static IP Addresses + schema: + type: list + show_if: [["type", "=", "static"]] + items: + - variable: staticIP + label: Static IP + schema: + type: ipaddr + cidr: true + - variable: staticRoutes + label: Static Routes + schema: + type: list + show_if: [["type", "=", "static"]] + 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: 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: config + label: "App Config Storage" + description: "Stores the Application Config." + 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: pvc + enum: + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: emptyDir + description: emptyDir + - value: nfs + description: NFS Share + - value: iscsi + description: iSCSI 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: iscsi + label: iSCSI Options + schema: + show_if: [["type", "=", "iscsi"]] + type: dict + additional_attrs: true + attrs: + - variable: targetPortal + label: targetPortal + schema: + type: string + required: true + default: "" + - variable: iqn + label: iqn + schema: + type: string + required: true + default: "" + - variable: lun + label: lun + schema: + type: int + default: 0 + - variable: authSession + label: authSession + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: authDiscovery + label: authDiscovery + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + + - variable: autoPermissions + label: Automatic Permissions Configuration + description: Automatically set permissions + schema: + show_if: [["type", "!=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: chown + label: Run CHOWN + description: | + It will run CHOWN on the path with the given fsGroup + schema: + type: boolean + default: false + - variable: chmod + label: Run CHMOD + description: | + It will run CHMOD on the path with the given value
+ Format should be 3 digits, e.g. 770 + schema: + type: string + valid_chars: '[0-9]{3}' + default: "" + - variable: recursive + label: Recursive + description: | + It will run CHOWN and CHMOD recursively + schema: + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - 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 (Do NOT REDUCE after installation) + description: This value can ONLY be INCREASED after the installation + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: storageClass + label: 'storageClass (Advanced)' + description: 'sets the storageClass to something other than iX default. Only for advanced usecases!' + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "" + - variable: static + label: 'Static Fixed PVC Bindings (Experimental)' + description: Link a PVC to a specific storage location + schema: + show_if: [["type", "=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: mode + label: mode + description: | + disabled: use normal dynamic PVCs + smb: connect to an SMB share + nfs: connect to an NFS share + schema: + type: string + default: "disabled" + enum: + - value: disabled + description: disabled + - value: smb + description: smb + - value: nfs + description: nfs + - variable: server + label: Server + description: server to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "myserver" + - variable: share + label: Share + description: share to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "/myshare" + - variable: user + label: User + description: connecting user + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "myuser" + - variable: domain + label: Domain + description: user domain + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: password + label: Password + description: connecting password + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: volumeSnapshots + label: 'Volume Snapshots (Experimental)' + description: Add an entry to the list to force creation of a volumeSnapshot of this PVC + schema: + show_if: [["type", "=", "pvc"]] + type: list + default: [] + items: + - variable: volumeSnapshotEntry + label: Custom volumeSnapshot + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: 'WARNING: renaming this, means deletion of the snapshot with the old name!' + schema: + type: string + default: "mysnapshot" + required: true + - variable: volumeSnapshotClassName + label: 'volumeSnapshot Class Name (Advanced)' + description: For use with PVCs using a non-default storageClass + schema: + type: string + default: "" + - variable: data + label: "App Data Storage" + description: "Stores the Application Data." + 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: pvc + enum: + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: emptyDir + description: emptyDir + - value: nfs + description: NFS Share + - value: iscsi + description: iSCSI 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: iscsi + label: iSCSI Options + schema: + show_if: [["type", "=", "iscsi"]] + type: dict + additional_attrs: true + attrs: + - variable: targetPortal + label: targetPortal + schema: + type: string + required: true + default: "" + - variable: iqn + label: iqn + schema: + type: string + required: true + default: "" + - variable: lun + label: lun + schema: + type: int + default: 0 + - variable: authSession + label: authSession + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: authDiscovery + label: authDiscovery + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + + - variable: autoPermissions + label: Automatic Permissions Configuration + description: Automatically set permissions + schema: + show_if: [["type", "!=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: chown + label: Run CHOWN + description: | + It will run CHOWN on the path with the given fsGroup + schema: + type: boolean + default: false + - variable: chmod + label: Run CHMOD + description: | + It will run CHMOD on the path with the given value
+ Format should be 3 digits, e.g. 770 + schema: + type: string + valid_chars: '[0-9]{3}' + default: "" + - variable: recursive + label: Recursive + description: | + It will run CHOWN and CHMOD recursively + schema: + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - 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 (Do NOT REDUCE after installation) + description: This value can ONLY be INCREASED after the installation + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: storageClass + label: 'storageClass (Advanced)' + description: 'sets the storageClass to something other than iX default. Only for advanced usecases!' + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "" + - variable: static + label: 'Static Fixed PVC Bindings (Experimental)' + description: Link a PVC to a specific storage location + schema: + show_if: [["type", "=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: mode + label: mode + description: | + disabled: use normal dynamic PVCs + smb: connect to an SMB share + nfs: connect to an NFS share + schema: + type: string + default: "disabled" + enum: + - value: disabled + description: disabled + - value: smb + description: smb + - value: nfs + description: nfs + - variable: server + label: Server + description: server to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "myserver" + - variable: share + label: Share + description: share to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "/myshare" + - variable: user + label: User + description: connecting user + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "myuser" + - variable: domain + label: Domain + description: user domain + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: password + label: Password + description: connecting password + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: volumeSnapshots + label: 'Volume Snapshots (Experimental)' + description: Add an entry to the list to force creation of a volumeSnapshot of this PVC + schema: + show_if: [["type", "=", "pvc"]] + type: list + default: [] + items: + - variable: volumeSnapshotEntry + label: Custom volumeSnapshot + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: 'WARNING: renaming this, means deletion of the snapshot with the old name!' + schema: + type: string + default: "mysnapshot" + required: true + - variable: volumeSnapshotClassName + label: 'volumeSnapshot Class Name (Advanced)' + description: For use with PVCs using a non-default storageClass + schema: + type: string + default: "" + - variable: logs + label: "App Logs Storage" + description: "Stores the Application Logs." + 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: pvc + enum: + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: emptyDir + description: emptyDir + - value: nfs + description: NFS Share + - value: iscsi + description: iSCSI 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: iscsi + label: iSCSI Options + schema: + show_if: [["type", "=", "iscsi"]] + type: dict + additional_attrs: true + attrs: + - variable: targetPortal + label: targetPortal + schema: + type: string + required: true + default: "" + - variable: iqn + label: iqn + schema: + type: string + required: true + default: "" + - variable: lun + label: lun + schema: + type: int + default: 0 + - variable: authSession + label: authSession + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: authDiscovery + label: authDiscovery + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + + - variable: autoPermissions + label: Automatic Permissions Configuration + description: Automatically set permissions + schema: + show_if: [["type", "!=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: chown + label: Run CHOWN + description: | + It will run CHOWN on the path with the given fsGroup + schema: + type: boolean + default: false + - variable: chmod + label: Run CHMOD + description: | + It will run CHMOD on the path with the given value
+ Format should be 3 digits, e.g. 770 + schema: + type: string + valid_chars: '[0-9]{3}' + default: "" + - variable: recursive + label: Recursive + description: | + It will run CHOWN and CHMOD recursively + schema: + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - 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 (Do NOT REDUCE after installation) + description: This value can ONLY be INCREASED after the installation + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: storageClass + label: 'storageClass (Advanced)' + description: 'sets the storageClass to something other than iX default. Only for advanced usecases!' + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "" + - variable: static + label: 'Static Fixed PVC Bindings (Experimental)' + description: Link a PVC to a specific storage location + schema: + show_if: [["type", "=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: mode + label: mode + description: | + disabled: use normal dynamic PVCs + smb: connect to an SMB share + nfs: connect to an NFS share + schema: + type: string + default: "disabled" + enum: + - value: disabled + description: disabled + - value: smb + description: smb + - value: nfs + description: nfs + - variable: server + label: Server + description: server to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "myserver" + - variable: share + label: Share + description: share to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "/myshare" + - variable: user + label: User + description: connecting user + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "myuser" + - variable: domain + label: Domain + description: user domain + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: password + label: Password + description: connecting password + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: volumeSnapshots + label: 'Volume Snapshots (Experimental)' + description: Add an entry to the list to force creation of a volumeSnapshot of this PVC + schema: + show_if: [["type", "=", "pvc"]] + type: list + default: [] + items: + - variable: volumeSnapshotEntry + label: Custom volumeSnapshot + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: 'WARNING: renaming this, means deletion of the snapshot with the old name!' + schema: + type: string + default: "mysnapshot" + required: true + - variable: volumeSnapshotClassName + label: 'volumeSnapshot Class Name (Advanced)' + description: For use with PVCs using a non-default storageClass + schema: + type: string + default: "" + - variable: plugins + label: "App Plugins Storage" + description: "Stores the Application Plugins." + 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: pvc + enum: + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: emptyDir + description: emptyDir + - value: nfs + description: NFS Share + - value: iscsi + description: iSCSI 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: iscsi + label: iSCSI Options + schema: + show_if: [["type", "=", "iscsi"]] + type: dict + additional_attrs: true + attrs: + - variable: targetPortal + label: targetPortal + schema: + type: string + required: true + default: "" + - variable: iqn + label: iqn + schema: + type: string + required: true + default: "" + - variable: lun + label: lun + schema: + type: int + default: 0 + - variable: authSession + label: authSession + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: authDiscovery + label: authDiscovery + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + + - variable: autoPermissions + label: Automatic Permissions Configuration + description: Automatically set permissions + schema: + show_if: [["type", "!=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: chown + label: Run CHOWN + description: | + It will run CHOWN on the path with the given fsGroup + schema: + type: boolean + default: false + - variable: chmod + label: Run CHMOD + description: | + It will run CHMOD on the path with the given value
+ Format should be 3 digits, e.g. 770 + schema: + type: string + valid_chars: '[0-9]{3}' + default: "" + - variable: recursive + label: Recursive + description: | + It will run CHOWN and CHMOD recursively + schema: + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - 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 (Do NOT REDUCE after installation) + description: This value can ONLY be INCREASED after the installation + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: storageClass + label: 'storageClass (Advanced)' + description: 'sets the storageClass to something other than iX default. Only for advanced usecases!' + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "" + - variable: static + label: 'Static Fixed PVC Bindings (Experimental)' + description: Link a PVC to a specific storage location + schema: + show_if: [["type", "=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: mode + label: mode + description: | + disabled: use normal dynamic PVCs + smb: connect to an SMB share + nfs: connect to an NFS share + schema: + type: string + default: "disabled" + enum: + - value: disabled + description: disabled + - value: smb + description: smb + - value: nfs + description: nfs + - variable: server + label: Server + description: server to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "myserver" + - variable: share + label: Share + description: share to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "/myshare" + - variable: user + label: User + description: connecting user + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "myuser" + - variable: domain + label: Domain + description: user domain + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: password + label: Password + description: connecting password + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: volumeSnapshots + label: 'Volume Snapshots (Experimental)' + description: Add an entry to the list to force creation of a volumeSnapshot of this PVC + schema: + show_if: [["type", "=", "pvc"]] + type: list + default: [] + items: + - variable: volumeSnapshotEntry + label: Custom volumeSnapshot + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: 'WARNING: renaming this, means deletion of the snapshot with the old name!' + schema: + type: string + default: "mysnapshot" + required: true + - variable: volumeSnapshotClassName + label: 'volumeSnapshot Class Name (Advanced)' + description: For use with PVCs using a non-default storageClass + schema: + type: string + default: "" + - variable: clientplugins + label: "App Client's Plugins Storage" + description: "Stores the Application Client's Plugins." + 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: pvc + enum: + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: emptyDir + description: emptyDir + - value: nfs + description: NFS Share + - value: iscsi + description: iSCSI 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: iscsi + label: iSCSI Options + schema: + show_if: [["type", "=", "iscsi"]] + type: dict + additional_attrs: true + attrs: + - variable: targetPortal + label: targetPortal + schema: + type: string + required: true + default: "" + - variable: iqn + label: iqn + schema: + type: string + required: true + default: "" + - variable: lun + label: lun + schema: + type: int + default: 0 + - variable: authSession + label: authSession + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: authDiscovery + label: authDiscovery + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + + - variable: autoPermissions + label: Automatic Permissions Configuration + description: Automatically set permissions + schema: + show_if: [["type", "!=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: chown + label: Run CHOWN + description: | + It will run CHOWN on the path with the given fsGroup + schema: + type: boolean + default: false + - variable: chmod + label: Run CHMOD + description: | + It will run CHMOD on the path with the given value
+ Format should be 3 digits, e.g. 770 + schema: + type: string + valid_chars: '[0-9]{3}' + default: "" + - variable: recursive + label: Recursive + description: | + It will run CHOWN and CHMOD recursively + schema: + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - 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 (Do NOT REDUCE after installation) + description: This value can ONLY be INCREASED after the installation + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: storageClass + label: 'storageClass (Advanced)' + description: 'sets the storageClass to something other than iX default. Only for advanced usecases!' + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "" + - variable: static + label: 'Static Fixed PVC Bindings (Experimental)' + description: Link a PVC to a specific storage location + schema: + show_if: [["type", "=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: mode + label: mode + description: | + disabled: use normal dynamic PVCs + smb: connect to an SMB share + nfs: connect to an NFS share + schema: + type: string + default: "disabled" + enum: + - value: disabled + description: disabled + - value: smb + description: smb + - value: nfs + description: nfs + - variable: server + label: Server + description: server to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "myserver" + - variable: share + label: Share + description: share to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "/myshare" + - variable: user + label: User + description: connecting user + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "myuser" + - variable: domain + label: Domain + description: user domain + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: password + label: Password + description: connecting password + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: volumeSnapshots + label: 'Volume Snapshots (Experimental)' + description: Add an entry to the list to force creation of a volumeSnapshot of this PVC + schema: + show_if: [["type", "=", "pvc"]] + type: list + default: [] + items: + - variable: volumeSnapshotEntry + label: Custom volumeSnapshot + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: 'WARNING: renaming this, means deletion of the snapshot with the old name!' + schema: + type: string + default: "mysnapshot" + required: true + - variable: volumeSnapshotClassName + label: 'volumeSnapshot Class Name (Advanced)' + description: For use with PVCs using a non-default storageClass + schema: + type: string + default: "" + - variable: bleveindexes + label: "App bleveIndexes Storage" + description: "Stores the Application bleveIndexes." + 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: pvc + enum: + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: emptyDir + description: emptyDir + - value: nfs + description: NFS Share + - value: iscsi + description: iSCSI 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: iscsi + label: iSCSI Options + schema: + show_if: [["type", "=", "iscsi"]] + type: dict + additional_attrs: true + attrs: + - variable: targetPortal + label: targetPortal + schema: + type: string + required: true + default: "" + - variable: iqn + label: iqn + schema: + type: string + required: true + default: "" + - variable: lun + label: lun + schema: + type: int + default: 0 + - variable: authSession + label: authSession + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: authDiscovery + label: authDiscovery + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + + - variable: autoPermissions + label: Automatic Permissions Configuration + description: Automatically set permissions + schema: + show_if: [["type", "!=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: chown + label: Run CHOWN + description: | + It will run CHOWN on the path with the given fsGroup + schema: + type: boolean + default: false + - variable: chmod + label: Run CHMOD + description: | + It will run CHMOD on the path with the given value
+ Format should be 3 digits, e.g. 770 + schema: + type: string + valid_chars: '[0-9]{3}' + default: "" + - variable: recursive + label: Recursive + description: | + It will run CHOWN and CHMOD recursively + schema: + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - 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 (Do NOT REDUCE after installation) + description: This value can ONLY be INCREASED after the installation + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: storageClass + label: 'storageClass (Advanced)' + description: 'sets the storageClass to something other than iX default. Only for advanced usecases!' + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "" + - variable: static + label: 'Static Fixed PVC Bindings (Experimental)' + description: Link a PVC to a specific storage location + schema: + show_if: [["type", "=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: mode + label: mode + description: | + disabled: use normal dynamic PVCs + smb: connect to an SMB share + nfs: connect to an NFS share + schema: + type: string + default: "disabled" + enum: + - value: disabled + description: disabled + - value: smb + description: smb + - value: nfs + description: nfs + - variable: server + label: Server + description: server to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "myserver" + - variable: share + label: Share + description: share to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "/myshare" + - variable: user + label: User + description: connecting user + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "myuser" + - variable: domain + label: Domain + description: user domain + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: password + label: Password + description: connecting password + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: volumeSnapshots + label: 'Volume Snapshots (Experimental)' + description: Add an entry to the list to force creation of a volumeSnapshot of this PVC + schema: + show_if: [["type", "=", "pvc"]] + type: list + default: [] + items: + - variable: volumeSnapshotEntry + label: Custom volumeSnapshot + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: 'WARNING: renaming this, means deletion of the snapshot with the old name!' + schema: + type: string + default: "mysnapshot" + required: true + - variable: volumeSnapshotClassName + label: 'volumeSnapshot Class Name (Advanced)' + description: For use with PVCs using a non-default storageClass + schema: + type: string + default: "" + - 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: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: hostPath + enum: + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: emptyDir + description: emptyDir + - 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: iscsi + label: iSCSI Options + schema: + show_if: [["type", "=", "iscsi"]] + type: dict + additional_attrs: true + attrs: + - variable: targetPortal + label: targetPortal + schema: + type: string + required: true + default: "" + - variable: iqn + label: iqn + schema: + type: string + required: true + default: "" + - variable: lun + label: lun + schema: + type: int + default: 0 + - variable: authSession + label: authSession + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: authDiscovery + label: authDiscovery + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: autoPermissions + label: Automatic Permissions Configuration + description: Automatically set permissions + schema: + show_if: [["type", "!=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: chown + label: Run CHOWN + description: | + It will run CHOWN on the path with the given fsGroup + schema: + type: boolean + default: false + - variable: chmod + label: Run CHMOD + description: | + It will run CHMOD on the path with the given value
+ Format should be 3 digits, e.g. 770 + schema: + type: string + valid_chars: '[0-9]{3}' + default: "" + - variable: recursive + label: Recursive + description: | + It will run CHOWN and CHMOD recursively + schema: + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - 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: storageClass + label: 'storageClass (Advanced)' + description: 'sets the storageClass to something other than iX default. Only for advanced usecases!' + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "" + - variable: static + label: 'Static Fixed PVC Bindings (Experimental)' + description: Link a PVC to a specific storage location + schema: + show_if: [["type", "=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: mode + label: mode + description: | + disabled: use normal dynamic PVCs + smb: connect to an SMB share + nfs: connect to an NFS share + schema: + type: string + default: "disabled" + enum: + - value: "disabled" + description: disabled + - value: smb + description: smb + - value: nfs + description: nfs + - variable: server + label: Server + description: server to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "myserver" + - variable: share + label: Share + description: share to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "/myshare" + - variable: user + label: User + description: connecting user + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "myuser" + - variable: domain + label: Domain + description: user domain + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: password + label: Password + description: connecting password + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: volumeSnapshots + label: 'Volume Snapshots (Experimental)' + description: Add an entry to the list to force creation of a volumeSnapshot of this PVC + schema: + show_if: [["type", "=", "pvc"]] + type: list + default: [] + items: + - variable: volumeSnapshotEntry + label: Custom volumeSnapshot + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: 'WARNING: renaming this, means deletion of the snapshot with the old name!' + schema: + type: string + default: "mysnapshot" + required: true + - variable: volumeSnapshotClassName + label: 'volumeSnapshot Class Name (Advanced)' + description: For use with PVCs using a non-default storageClass + schema: + type: string + default: "" + - 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: [{path: "/", pathType: "Prefix"}] + 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: integrations + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: traefik + label: Traefik + description: Connect ingress with Traefik + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: allowCors + label: 'Allow Cross Origin Requests (advanced)' + schema: + type: boolean + default: false + show_if: [["enabled", "=", true]] + - variable: entrypoints + label: Entrypoints + schema: + type: list + default: ["websecure"] + show_if: [["enabled", "=", true]] + items: + - variable: entrypoint + label: Entrypoint + schema: + type: string + - variable: middlewares + label: Middlewares + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: middleware + label: Middleware + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true + - variable: namespace + label: 'namespace (optional)' + schema: + type: string + default: "" + - variable: certManager + label: certManager + description: Connect ingress with certManager + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: certificateIssuer + label: certificateIssuer + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: homepage + label: Homepage + description: Connect ingress with Homepage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: name + label: Name (Optional) + description: Defaults to chart name + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: description + label: Description (Optional) + description: Defaults to chart description + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: icon + label: Icon (Optional) + description: Defaults to chart icon + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: group + label: Group + schema: + type: string + required: true + default: "default" + show_if: [["enabled", "=", true]] + - variable: widget + label: Widget Settings + schema: + type: dict + additional_attrs: true + show_if: [["enabled", "=", true]] + attrs: + - variable: enabled + label: Enable Widget + description: When disabled all widget annotations are skipped. + schema: + type: boolean + default: true + - variable: custom + label: Options + schema: + type: dict + additional_attrs: true + attrs: + - variable: key + label: API-key (key) + schema: + type: string + default: "" + - variable: customkv + label: Custom Options + schema: + type: list + default: [] + items: + - variable: option + label: Option + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + default: "" + required: true + - variable: value + label: Value + schema: + type: string + default: "" + required: true + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + - variable: ingressClassName + label: (Advanced/Optional) IngressClass Name + schema: + type: string + show_if: [["advanced", "=", true]] + default: "" + - variable: tls + label: TLS-Settings + schema: + type: list + show_if: [["advanced", "=", true]] + 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: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: 'Use Custom Certificate Secret (Advanced)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: string + default: "" + - variable: scaleCert + label: 'Use TrueNAS SCALE Certificate (Deprecated)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - 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: 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: overrideService + 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: [] + show_if: [["certificateIssuer", "=", ""]] + 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: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your Cert-Manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: scaleCert + label: Use TrueNAS SCALE Certificate (Deprecated) + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: Use Custom Secret (Advanced) + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: integrations + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: traefik + label: Traefik + description: Connect ingress with Traefik + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: allowCors + label: "Allow Cross Origin Requests" + schema: + type: boolean + default: false + show_if: [["enabled", "=", true]] + - variable: entrypoints + label: Entrypoints + schema: + type: list + default: ["websecure"] + show_if: [["enabled", "=", true]] + items: + - variable: entrypoint + label: Entrypoint + schema: + type: string + - variable: middlewares + label: Middlewares + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: middleware + label: Middleware + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true + - variable: namespace + label: namespace + schema: + type: string + default: "" + - variable: certManager + label: certManager + description: Connect ingress with certManager + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: certificateIssuer + label: certificateIssuer + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: homepage + label: Homepage + description: Connect ingress with Homepage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: name + label: Name + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: description + label: Description + description: defaults to chart description + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: group + label: Group + schema: + type: string + required: true + default: "default" + show_if: [["enabled", "=", true]] + - variable: securityContext + group: Security and Permissions + label: Security Context + schema: + additional_attrs: true + type: dict + attrs: + - variable: container + label: Container + schema: + additional_attrs: true + type: dict + attrs: + # Settings from questions.yaml get appended here on a per-app basis + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: "The groupID of the user running the application" + schema: + type: int + default: 568 + # Settings from questions.yaml get appended here on a per-app basis + - 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 + show_if: [["runAsUser", "=", 0]] + 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: "0022" + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: pod + label: Pod + schema: + additional_attrs: true + type: dict + attrs: + - 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 + # Settings from questions.yaml get appended here on a per-app basis + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: resources + group: Resources and Devices + label: "Resource Limits" + 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/manual/SCALE/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/manual/SCALE/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 + hidden: true + attrs: + - variable: cpu + label: CPU + description: "1000m means 1 hyperthread. Detailed info: https://truecharts.org/manual/SCALE/validation" + schema: + type: string + default: 10m + hidden: true + 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/manual/SCALE/validation" + schema: + type: string + default: 50Mi + hidden: true + 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: device + 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" + - variable: scaleGPU + label: GPU Configuration + group: Resources and Devices + schema: + type: list + default: [] + items: + - variable: scaleGPUEntry + label: GPU + schema: + additional_attrs: true + type: dict + attrs: + # Specify GPU configuration + - variable: gpu + label: Select GPU + schema: + additional_attrs: true + type: dict + $ref: + - "definitions/gpuConfiguration" + attrs: [] + - variable: workaround + label: "Workaround" + schema: + type: string + default: workaround + hidden: true + - variable: cnpg + group: Postgresql + label: "CloudNative-PG (CNPG)" + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "Main Postgresql Database" + schema: + additional_attrs: true + type: dict + attrs: + - variable: hibernate + label: Hibernate + description: "enable to safely hibernate and shutdown the postgresql cluster" + schema: + type: boolean + default: false + - variable: mode + label: Mode + description: 'Cluster mode of operation. Available modes: standalone - default mode. Creates new or updates an existing CNPG cluster. recovery - Same as standalone but creates a cluster from a backup, object store or via pg_basebackup replica - Creates a replica cluster from an existing CNPG cluster. # TODO.' + schema: + type: string + default: "standalone" + enum: + - value: standalone + description: standalone + - value: replica + description: replica + - value: recovery + description: recovery + - variable: cluster + label: "Cluster Settings" + schema: + additional_attrs: true + type: dict + attrs: + - variable: instances + label: Instances + schema: + type: int + default: 1 + - variable: singleNode + label: singleNode + schema: + type: boolean + default: true + hidden: true + - variable: storage + label: "Storage" + schema: + additional_attrs: true + type: dict + attrs: + - variable: size + label: Size + schema: + type: string + default: "256Gi" + - variable: walStorage + label: "WAL Storage" + schema: + additional_attrs: true + type: dict + attrs: + - variable: size + label: Size + schema: + type: string + default: "256Gi" + - variable: monitoring + label: "Monitoring Settings" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enablePodMonitor + label: "enablePodMonitor" + schema: + type: boolean + default: true + - variable: disableDefaultQueries + label: "disableDefaultQueries" + schema: + type: boolean + default: false + - variable: pooler + label: "Pooler Settings" + schema: + additional_attrs: true + type: dict + attrs: + - variable: instances + label: Instances + schema: + type: int + default: 1 + - variable: createRO + label: "Create ReadOnly Instance" + schema: + type: boolean + default: false + - variable: recovery + label: "Recovery Settings (Experimental)" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + - variable: endpointURL + label: "endpointURL" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "" + - variable: method + label: "method" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "object_store" + - variable: backupName + label: "backupName" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "" + - variable: provider + label: "provider" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "s3" + enum: + - value: s3 + description: S3 + - value: azure + description: Azure + - value: google + description: Google + - variable: s3 + label: "s3" + schema: + additional_attrs: true + type: dict + show_if: [["provider", "=", "s3"]] + attrs: + - variable: region + label: "region" + schema: + type: string + default: "" + - variable: bucket + label: "bucket" + schema: + type: string + default: "" + - variable: path + label: "path" + schema: + type: string + default: "/" + - variable: accessKey + label: "accessKey" + schema: + type: string + default: "" + - variable: secretKey + label: "secretKey" + schema: + type: string + default: "" + - variable: azure + label: "azure (EXTREMELY EXPERIMENTAL)" + schema: + additional_attrs: true + type: dict + show_if: [["provider", "=", "azure"]] + attrs: + - variable: path + label: "path" + schema: + type: string + default: "/" + - variable: connectionString + label: "connectionString" + schema: + type: string + default: "" + - variable: storageAccount + label: "storageAccount" + schema: + type: string + default: "" + - variable: storageKey + label: "storageKey" + schema: + type: string + default: "" + - variable: storageSasToken + label: "storageSasToken" + schema: + type: string + default: "" + - variable: containerName + label: "containerName" + schema: + type: string + default: "" + - variable: serviceName + label: "serviceName" + schema: + type: string + default: "blob" + - variable: inheritFromAzureAD + label: "inheritFromAzureAD" + schema: + type: boolean + default: false + - variable: google + label: "google (EXTREMELY EXPERIMENTAL)" + schema: + additional_attrs: true + type: dict + show_if: [["provider", "=", "google"]] + attrs: + - variable: path + label: "path" + schema: + type: string + default: "/" + - variable: bucket + label: "bucket" + schema: + type: string + default: "" + - variable: gkeEnvironment + label: "gkeEnvironment" + schema: + type: string + default: "" + - variable: applicationCredentials + label: "applicationCredentials" + schema: + type: string + default: "" + - variable: backups + label: "Backup Settings (Experimental)" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + - variable: endpointURL + label: "endpointURL" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "" + - variable: destinationPath + label: "destinationPath" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "" + - variable: retentionPolicy + label: "retentionPolicy" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "30d" + - variable: provider + label: "provider" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "s3" + enum: + - value: s3 + description: S3 + - value: azure + description: Azure + - value: google + description: Google + - variable: s3 + label: "s3" + schema: + additional_attrs: true + type: dict + show_if: [["provider", "=", "s3"]] + attrs: + - variable: region + label: "region" + schema: + type: string + default: "" + - variable: bucket + label: "bucket" + schema: + type: string + default: "" + - variable: path + label: "path" + schema: + type: string + default: "/" + - variable: accessKey + label: "accessKey" + schema: + type: string + default: "" + - variable: secretKey + label: "secretKey" + schema: + type: string + default: "" + - variable: azure + label: "azure (EXTREMELY EXPERIMENTAL)" + schema: + additional_attrs: true + type: dict + show_if: [["provider", "=", "azure"]] + attrs: + - variable: path + label: "path" + schema: + type: string + default: "/" + - variable: connectionString + label: "connectionString" + schema: + type: string + default: "" + - variable: storageAccount + label: "storageAccount" + schema: + type: string + default: "" + - variable: storageKey + label: "storageKey" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "" + - variable: storageSasToken + label: "storageSasToken" + schema: + type: string + default: "" + - variable: containerName + label: "containerName" + schema: + type: string + default: "" + - variable: serviceName + label: "serviceName" + schema: + type: string + default: "blob" + - variable: inheritFromAzureAD + label: "inheritFromAzureAD" + schema: + type: boolean + default: false + - variable: google + label: "google (EXTREMELY EXPERIMENTAL)" + schema: + additional_attrs: true + type: dict + show_if: [["provider", "=", "google"]] + attrs: + - variable: path + label: "path" + schema: + type: string + default: "/" + - variable: bucket + label: "bucket" + schema: + type: string + default: "" + - variable: gkeEnvironment + label: "gkeEnvironment" + schema: + type: string + default: "" + - variable: applicationCredentials + label: "applicationCredentials" + schema: + type: string + default: "" + - variable: scheduledBackups + label: ScheduledBackups + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: backupschedule + label: BackupSchedule + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "daily-backup" + required: true + - variable: schedule + label: schedule + schema: + type: string + required: true + default: "0 0 0 * * *" + - variable: backupOwnerReference + label: backupOwnerReference + schema: + type: string + required: true + default: "self" + - variable: immediate + label: immediate + schema: + type: boolean + default: false + - variable: suspend + label: suspend + schema: + type: boolean + default: false + - variable: manualBackups + label: manualBackups + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: backup + label: Backup + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true +# - 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: 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: 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: ingress + label: "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: [{path: "/", pathType: "Prefix"}] + 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: integrations + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: traefik + label: Traefik + description: Connect ingress with Traefik + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: allowCors + label: 'Allow Cross Origin Requests (advanced)' + schema: + type: boolean + default: false + show_if: [["enabled", "=", true]] + - variable: entrypoints + label: Entrypoints + schema: + type: list + default: ["websecure"] + show_if: [["enabled", "=", true]] + items: + - variable: entrypoint + label: Entrypoint + schema: + type: string + - variable: middlewares + label: Middlewares + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: middleware + label: Middleware + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true + - variable: namespace + label: 'namespace (optional)' + schema: + type: string + default: "" + - variable: certManager + label: certManager + description: Connect ingress with certManager + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: certificateIssuer + label: certificateIssuer + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + - variable: ingressClassName + label: (Advanced/Optional) IngressClass Name + schema: + type: string + show_if: [["advanced", "=", true]] + default: "" + - variable: tls + label: TLS-Settings + schema: + type: list + show_if: [["advanced", "=", true]] + 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: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: 'Use Custom Certificate Secret (Advanced)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: string + default: "" + - variable: scaleCert + label: 'Use TrueNAS SCALE Certificate (Deprecated)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - 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: 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: gluetun + description: Gluetun + - value: tailscale + description: Tailscale + - value: openvpn + description: OpenVPN (Deprecated) + - value: wireguard + description: Wireguard (Deprecated) + - variable: openvpn + label: OpenVPN Settings + schema: + additional_attrs: true + 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 + show_if: [["username", "!=", ""]] + default: "" + required: true + - variable: tailscale + label: Tailscale Settings + schema: + additional_attrs: true + 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: auth_once + label: Auth Once + description: Only attempt to log in if not already logged in. + schema: + type: boolean + default: true + - 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: The address on which to listen for SOCKS5 proxying into the tailscale net. + schema: + type: string + default: "" + - variable: outbound_http_proxy_listen + label: Outbound HTTP Proxy Listen + description: The address on which to listen for HTTP proxying into the tailscale net. + 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: string + show_if: [["type", "!=", "disabled"]] + 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 + max_length: 10240 + - 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/stable/splunk/6.2.0/templates/NOTES.txt b/stable/mattermost/11.2.5/templates/NOTES.txt similarity index 100% rename from stable/splunk/6.2.0/templates/NOTES.txt rename to stable/mattermost/11.2.5/templates/NOTES.txt diff --git a/stable/posterr/7.1.14/templates/common.yaml b/stable/mattermost/11.2.5/templates/common.yaml similarity index 100% rename from stable/posterr/7.1.14/templates/common.yaml rename to stable/mattermost/11.2.5/templates/common.yaml diff --git a/stable/searxng/6.1.20/values.yaml b/stable/mattermost/11.2.5/values.yaml similarity index 100% rename from stable/searxng/6.1.20/values.yaml rename to stable/mattermost/11.2.5/values.yaml diff --git a/stable/mylar/12.1.18/CHANGELOG.md b/stable/mylar/12.1.18/CHANGELOG.md new file mode 100644 index 00000000000..b05795210c2 --- /dev/null +++ b/stable/mylar/12.1.18/CHANGELOG.md @@ -0,0 +1,99 @@ +--- +title: Changelog +--- + +**Important:** +*for the complete changelog, please refer to the website* + + + +## [mylar-12.1.18](https://github.com/truecharts/charts/compare/mylar-12.1.17...mylar-12.1.18) (2024-02-12) + +### Chore + + + +- update container image linuxserver/mylar3 to version-v0.7.8[@06d90fc](https://github.com/06d90fc) by renovate ([#18088](https://github.com/truecharts/charts/issues/18088)) + + +## [mylar-12.1.17](https://github.com/truecharts/charts/compare/mylar-12.1.16...mylar-12.1.17) (2024-02-05) + +### Chore + + + +- update container image linuxserver/mylar3 to version-v0.7.8[@5f74433](https://github.com/5f74433) by renovate ([#17880](https://github.com/truecharts/charts/issues/17880)) + + +## [mylar-12.1.16](https://github.com/truecharts/charts/compare/mylar-12.1.15...mylar-12.1.16) (2024-02-03) + +### Chore + + + +- update container image common to v17.2.30[@19ad5ec](https://github.com/19ad5ec) by renovate ([#17804](https://github.com/truecharts/charts/issues/17804)) + + +## [mylar-12.1.15](https://github.com/truecharts/charts/compare/mylar-12.1.14...mylar-12.1.15) (2024-01-29) + +### Chore + + + +- update container image linuxserver/mylar3 to version-v0.7.8[@88a49b7](https://github.com/88a49b7) by renovate ([#17641](https://github.com/truecharts/charts/issues/17641)) + + +## [mylar-12.1.14](https://github.com/truecharts/charts/compare/mylar-12.1.13...mylar-12.1.14) (2024-01-26) + +### Chore + + + +- update container image common to v17.2.29[@d7c41a3](https://github.com/d7c41a3) by renovate ([#17545](https://github.com/truecharts/charts/issues/17545)) + + +## [mylar-12.1.13](https://github.com/truecharts/charts/compare/mylar-12.1.12...mylar-12.1.13) (2024-01-21) + +### Chore + + + +- update container image common to v17.2.28[@918b4c5](https://github.com/918b4c5) by renovate ([#17478](https://github.com/truecharts/charts/issues/17478)) + + +## [mylar-12.1.12](https://github.com/truecharts/charts/compare/mylar-12.1.11...mylar-12.1.12) (2024-01-21) + +### Chore + + + +- update container image common to v17.2.26[@24c98f7](https://github.com/24c98f7) by renovate ([#17409](https://github.com/truecharts/charts/issues/17409)) + + +## [mylar-12.1.11](https://github.com/truecharts/charts/compare/mylar-12.1.10...mylar-12.1.11) (2024-01-21) + +### Chore + + + +- update metadata in chart.yaml ([#17457](https://github.com/truecharts/charts/issues/17457)) + + +## [mylar-12.1.10](https://github.com/truecharts/charts/compare/mylar-12.1.9...mylar-12.1.10) (2024-01-21) + +### Chore + + + +- update container image linuxserver/mylar3 to vversion-v0.7.8[@8e6b850](https://github.com/8e6b850) by renovate ([#17432](https://github.com/truecharts/charts/issues/17432)) + + +## [mylar-12.1.9](https://github.com/truecharts/charts/compare/mylar-12.1.8...mylar-12.1.9) (2024-01-14) + +### Chore + + + +- update container image linuxserver/mylar3 to version-v0.7.7[@e4c4bb7](https://github.com/e4c4bb7) by renovate ([#17162](https://github.com/truecharts/charts/issues/17162)) + + diff --git a/stable/mylar/12.1.18/Chart.yaml b/stable/mylar/12.1.18/Chart.yaml new file mode 100644 index 00000000000..d5a9adbdd07 --- /dev/null +++ b/stable/mylar/12.1.18/Chart.yaml @@ -0,0 +1,37 @@ +annotations: + max_scale_version: 23.10.2 + min_scale_version: 23.10.0 + truecharts.org/SCALE-support: "true" + truecharts.org/category: media + truecharts.org/max_helm_version: "3.14" + truecharts.org/min_helm_version: "3.12" + truecharts.org/train: stable +apiVersion: v2 +appVersion: 0.7.8 +dependencies: + - name: common + version: 17.2.30 + repository: oci://tccr.io/truecharts + condition: "" + alias: "" + tags: [] + import-values: [] +deprecated: false +description: Mylar is a automated Comic Book downloader +home: https://truecharts.org/charts/stable/mylar +icon: https://truecharts.org/img/hotlink-ok/chart-icons/mylar.png +keywords: + - mylar +kubeVersion: ">=1.24.0-0" +maintainers: + - name: TrueCharts + email: info@truecharts.org + url: https://truecharts.org +name: mylar +sources: + - https://github.com/linuxserver/docker-mylar3 + - https://github.com/mylar3/mylar3 + - https://github.com/truecharts/charts/tree/master/charts/stable/mylar + - https://hub.docker.com/r/linuxserver/mylar3 +type: application +version: 12.1.18 diff --git a/stable/mylar/12.1.18/README.md b/stable/mylar/12.1.18/README.md new file mode 100644 index 00000000000..21ab6197847 --- /dev/null +++ b/stable/mylar/12.1.18/README.md @@ -0,0 +1,28 @@ +--- +title: README +--- + +## General Info + +TrueCharts can be installed as both _normal_ Helm Charts or as Apps on TrueNAS SCALE. +However only installations using the TrueNAS SCALE Apps system are supported. + +For more information about this App, please check the docs on the TrueCharts [website](https://truecharts.org/charts/stable/mylar) + +**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)** + +## Support + +- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/manual/SCALE/guides/scale-intro). +- See the [Website](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/charts/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/stable/mylar/12.1.18/app-changelog.md b/stable/mylar/12.1.18/app-changelog.md new file mode 100644 index 00000000000..febd45c4ef7 --- /dev/null +++ b/stable/mylar/12.1.18/app-changelog.md @@ -0,0 +1,9 @@ + + +## [mylar-12.1.18](https://github.com/truecharts/charts/compare/mylar-12.1.17...mylar-12.1.18) (2024-02-12) + +### Chore + + + +- update container image linuxserver/mylar3 to version-v0.7.8[@06d90fc](https://github.com/06d90fc) by renovate ([#18088](https://github.com/truecharts/charts/issues/18088)) \ No newline at end of file diff --git a/stable/mylar/12.1.18/app-readme.md b/stable/mylar/12.1.18/app-readme.md new file mode 100644 index 00000000000..c870d050989 --- /dev/null +++ b/stable/mylar/12.1.18/app-readme.md @@ -0,0 +1,8 @@ +Mylar is a automated Comic Book downloader + +This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/charts/stable/mylar](https://truecharts.org/charts/stable/mylar) + +--- + +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! diff --git a/stable/snapdrop/8.1.14/charts/common-17.2.30.tgz b/stable/mylar/12.1.18/charts/common-17.2.30.tgz similarity index 100% rename from stable/snapdrop/8.1.14/charts/common-17.2.30.tgz rename to stable/mylar/12.1.18/charts/common-17.2.30.tgz diff --git a/stable/mylar/12.1.18/ix_values.yaml b/stable/mylar/12.1.18/ix_values.yaml new file mode 100644 index 00000000000..1909f2a7bc1 --- /dev/null +++ b/stable/mylar/12.1.18/ix_values.yaml @@ -0,0 +1,25 @@ +image: + repository: linuxserver/mylar3 + tag: version-v0.7.8@sha256:06d90fc082d7c7c506c3408a6f15e722c52a8a8207453dc8653468a85c8c3a52 + pullPolicy: IfNotPresent +service: + main: + ports: + main: + port: 8090 + targetPort: 8090 +persistence: + config: + enabled: true + mountPath: "/config" + varrun: + enabled: true +portal: + open: + enabled: true +securityContext: + container: + runAsNonRoot: false + readOnlyRootFilesystem: false + runAsUser: 0 + runAsGroup: 0 diff --git a/stable/mylar/12.1.18/questions.yaml b/stable/mylar/12.1.18/questions.yaml new file mode 100644 index 00000000000..a3cb8c36a01 --- /dev/null +++ b/stable/mylar/12.1.18/questions.yaml @@ -0,0 +1,2830 @@ +groups: + - name: Container Image + description: Image to be used for container + - name: General Settings + description: General Deployment Settings + - name: Workload Settings + description: Workload Settings + - 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: Backup Configuration + description: Configure Velero Backup Schedule + - name: Advanced + description: Advanced Configuration + - name: Postgresql + description: Postgresql + - name: Documentation + description: Documentation +portals: + open: + protocols: + - "$kubernetes-resource_configmap_tcportal-open_protocol" + host: + - "$kubernetes-resource_configmap_tcportal-open_host" + ports: + - "$kubernetes-resource_configmap_tcportal-open_port" +questions: + - variable: global + group: General Settings + label: "Global Settings" + schema: + additional_attrs: true + type: dict + attrs: + - variable: stopAll + label: Stop All + description: "Stops All Running pods and hibernates cnpg" + schema: + type: boolean + default: false + - variable: workload + group: "Workload Settings" + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type (Advanced) + schema: + type: string + default: Deployment + enum: + - value: Deployment + description: Deployment + - value: DaemonSet + description: DaemonSet + - variable: replicas + label: Replicas (Advanced) + description: Set the number of Replicas + schema: + type: int + show_if: [["type", "!=", "DaemonSet"]] + default: 1 + - variable: podSpec + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: containers + label: Containers + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: Main Container + schema: + additional_attrs: true + type: dict + attrs: + - 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..." + 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: extraArgs + label: Extra Args + schema: + type: list + default: [] + items: + - variable: arg + label: Arg + schema: + type: string + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: command + label: Command + schema: + type: list + default: [] + items: + - variable: param + label: Param + schema: + type: string + - variable: TZ + label: Timezone + group: "General Settings" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: podOptions + group: "General Settings" + label: "Global Pod Options (Advanced)" + schema: + additional_attrs: true + type: dict + attrs: + - variable: expertPodOpts + label: "Expert - Pod Options" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + label: "Host Networking" + schema: + type: boolean + default: false + - variable: dnsConfig + label: "DNS Configuration" + schema: + type: dict + additional_attrs: true + attrs: + - variable: options + label: "Options" + schema: + type: list + default: [{"name": "ndots", "value": "1"}] + items: + - variable: optionsEntry + label: "Option Entry" + schema: + type: dict + additional_attrs: true + attrs: + - variable: name + label: "Name" + schema: + type: string + required: true + - variable: value + label: "Value" + schema: + type: string + - variable: nameservers + label: "Nameservers" + schema: + type: list + default: [] + items: + - variable: nsEntry + label: "Nameserver Entry" + schema: + type: string + required: true + - variable: searches + label: "Searches" + schema: + type: list + default: [] + items: + - variable: searchEntry + label: "Search Entry" + schema: + type: string + required: true + + - variable: imagePullSecretList + group: "General Settings" + label: "Image Pull Secrets" + schema: + type: list + default: [] + items: + - variable: pullsecretentry + label: "Pull Secret" + schema: + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: true + - variable: data + label: Data + schema: + type: dict + additional_attrs: true + attrs: + - variable: registry + label: "Registry" + schema: + type: string + required: true + default: "https://index.docker.io/v1/" + - variable: username + label: "Username" + schema: + type: string + required: true + default: "" + - variable: password + label: "Password" + schema: + type: string + required: true + private: true + default: "" + - variable: email + label: "Email" + schema: + type: string + required: true + default: "" + - 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) + - 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: 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: 8090 + required: true + - variable: serviceexpert + group: Networking and Services + label: Show Expert Config + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: scaleExternalInterface + description: Add External Interfaces + label: Add external Interfaces + group: Networking + schema: + type: list + items: + - variable: interfaceConfiguration + description: Interface Configuration + label: Interface Configuration + schema: + additional_attrs: true + 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: + additional_attrs: true + 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 + - variable: staticIPConfigurations + label: Static IP Addresses + schema: + type: list + show_if: [["type", "=", "static"]] + items: + - variable: staticIP + label: Static IP + schema: + type: ipaddr + cidr: true + - variable: staticRoutes + label: Static Routes + schema: + type: list + show_if: [["type", "=", "static"]] + 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: 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: config + label: "App Config 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: pvc + enum: + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: emptyDir + description: emptyDir + - value: nfs + description: NFS Share + - value: iscsi + description: iSCSI 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: iscsi + label: iSCSI Options + schema: + show_if: [["type", "=", "iscsi"]] + type: dict + additional_attrs: true + attrs: + - variable: targetPortal + label: targetPortal + schema: + type: string + required: true + default: "" + - variable: iqn + label: iqn + schema: + type: string + required: true + default: "" + - variable: lun + label: lun + schema: + type: int + default: 0 + - variable: authSession + label: authSession + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: authDiscovery + label: authDiscovery + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + + - variable: autoPermissions + label: Automatic Permissions Configuration + description: Automatically set permissions + schema: + show_if: [["type", "!=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: chown + label: Run CHOWN + description: | + It will run CHOWN on the path with the given fsGroup + schema: + type: boolean + default: false + - variable: chmod + label: Run CHMOD + description: | + It will run CHMOD on the path with the given value
+ Format should be 3 digits, e.g. 770 + schema: + type: string + valid_chars: '[0-9]{3}' + default: "" + - variable: recursive + label: Recursive + description: | + It will run CHOWN and CHMOD recursively + schema: + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - 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 (Do NOT REDUCE after installation) + description: This value can ONLY be INCREASED after the installation + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: storageClass + label: 'storageClass (Advanced)' + description: 'sets the storageClass to something other than iX default. Only for advanced usecases!' + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "" + - variable: static + label: 'Static Fixed PVC Bindings (Experimental)' + description: Link a PVC to a specific storage location + schema: + show_if: [["type", "=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: mode + label: mode + description: | + disabled: use normal dynamic PVCs + smb: connect to an SMB share + nfs: connect to an NFS share + schema: + type: string + default: "disabled" + enum: + - value: disabled + description: disabled + - value: smb + description: smb + - value: nfs + description: nfs + - variable: server + label: Server + description: server to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "myserver" + - variable: share + label: Share + description: share to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "/myshare" + - variable: user + label: User + description: connecting user + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "myuser" + - variable: domain + label: Domain + description: user domain + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: password + label: Password + description: connecting password + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: volumeSnapshots + label: 'Volume Snapshots (Experimental)' + description: Add an entry to the list to force creation of a volumeSnapshot of this PVC + schema: + show_if: [["type", "=", "pvc"]] + type: list + default: [] + items: + - variable: volumeSnapshotEntry + label: Custom volumeSnapshot + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: 'WARNING: renaming this, means deletion of the snapshot with the old name!' + schema: + type: string + default: "mysnapshot" + required: true + - variable: volumeSnapshotClassName + label: 'volumeSnapshot Class Name (Advanced)' + description: For use with PVCs using a non-default storageClass + schema: + type: string + default: "" + - 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: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: hostPath + enum: + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: emptyDir + description: emptyDir + - 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: iscsi + label: iSCSI Options + schema: + show_if: [["type", "=", "iscsi"]] + type: dict + additional_attrs: true + attrs: + - variable: targetPortal + label: targetPortal + schema: + type: string + required: true + default: "" + - variable: iqn + label: iqn + schema: + type: string + required: true + default: "" + - variable: lun + label: lun + schema: + type: int + default: 0 + - variable: authSession + label: authSession + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: authDiscovery + label: authDiscovery + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: autoPermissions + label: Automatic Permissions Configuration + description: Automatically set permissions + schema: + show_if: [["type", "!=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: chown + label: Run CHOWN + description: | + It will run CHOWN on the path with the given fsGroup + schema: + type: boolean + default: false + - variable: chmod + label: Run CHMOD + description: | + It will run CHMOD on the path with the given value
+ Format should be 3 digits, e.g. 770 + schema: + type: string + valid_chars: '[0-9]{3}' + default: "" + - variable: recursive + label: Recursive + description: | + It will run CHOWN and CHMOD recursively + schema: + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - 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: storageClass + label: 'storageClass (Advanced)' + description: 'sets the storageClass to something other than iX default. Only for advanced usecases!' + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "" + - variable: static + label: 'Static Fixed PVC Bindings (Experimental)' + description: Link a PVC to a specific storage location + schema: + show_if: [["type", "=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: mode + label: mode + description: | + disabled: use normal dynamic PVCs + smb: connect to an SMB share + nfs: connect to an NFS share + schema: + type: string + default: "disabled" + enum: + - value: "disabled" + description: disabled + - value: smb + description: smb + - value: nfs + description: nfs + - variable: server + label: Server + description: server to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "myserver" + - variable: share + label: Share + description: share to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "/myshare" + - variable: user + label: User + description: connecting user + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "myuser" + - variable: domain + label: Domain + description: user domain + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: password + label: Password + description: connecting password + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: volumeSnapshots + label: 'Volume Snapshots (Experimental)' + description: Add an entry to the list to force creation of a volumeSnapshot of this PVC + schema: + show_if: [["type", "=", "pvc"]] + type: list + default: [] + items: + - variable: volumeSnapshotEntry + label: Custom volumeSnapshot + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: 'WARNING: renaming this, means deletion of the snapshot with the old name!' + schema: + type: string + default: "mysnapshot" + required: true + - variable: volumeSnapshotClassName + label: 'volumeSnapshot Class Name (Advanced)' + description: For use with PVCs using a non-default storageClass + schema: + type: string + default: "" + - 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: [{path: "/", pathType: "Prefix"}] + 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: integrations + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: traefik + label: Traefik + description: Connect ingress with Traefik + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: allowCors + label: 'Allow Cross Origin Requests (advanced)' + schema: + type: boolean + default: false + show_if: [["enabled", "=", true]] + - variable: entrypoints + label: Entrypoints + schema: + type: list + default: ["websecure"] + show_if: [["enabled", "=", true]] + items: + - variable: entrypoint + label: Entrypoint + schema: + type: string + - variable: middlewares + label: Middlewares + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: middleware + label: Middleware + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true + - variable: namespace + label: 'namespace (optional)' + schema: + type: string + default: "" + - variable: certManager + label: certManager + description: Connect ingress with certManager + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: certificateIssuer + label: certificateIssuer + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: homepage + label: Homepage + description: Connect ingress with Homepage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: name + label: Name (Optional) + description: Defaults to chart name + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: description + label: Description (Optional) + description: Defaults to chart description + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: icon + label: Icon (Optional) + description: Defaults to chart icon + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: group + label: Group + schema: + type: string + required: true + default: "default" + show_if: [["enabled", "=", true]] + - variable: widget + label: Widget Settings + schema: + type: dict + additional_attrs: true + show_if: [["enabled", "=", true]] + attrs: + - variable: enabled + label: Enable Widget + description: When disabled all widget annotations are skipped. + schema: + type: boolean + default: true + - variable: custom + label: Options + schema: + type: dict + additional_attrs: true + attrs: + - variable: key + label: API-key (key) + schema: + type: string + default: "" + - variable: customkv + label: Custom Options + schema: + type: list + default: [] + items: + - variable: option + label: Option + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + default: "" + required: true + - variable: value + label: Value + schema: + type: string + default: "" + required: true + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + - variable: ingressClassName + label: (Advanced/Optional) IngressClass Name + schema: + type: string + show_if: [["advanced", "=", true]] + default: "" + - variable: tls + label: TLS-Settings + schema: + type: list + show_if: [["advanced", "=", true]] + 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: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: 'Use Custom Certificate Secret (Advanced)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: string + default: "" + - variable: scaleCert + label: 'Use TrueNAS SCALE Certificate (Deprecated)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - 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: 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: overrideService + 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: [] + show_if: [["certificateIssuer", "=", ""]] + 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: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your Cert-Manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: scaleCert + label: Use TrueNAS SCALE Certificate (Deprecated) + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: Use Custom Secret (Advanced) + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: integrations + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: traefik + label: Traefik + description: Connect ingress with Traefik + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: allowCors + label: "Allow Cross Origin Requests" + schema: + type: boolean + default: false + show_if: [["enabled", "=", true]] + - variable: entrypoints + label: Entrypoints + schema: + type: list + default: ["websecure"] + show_if: [["enabled", "=", true]] + items: + - variable: entrypoint + label: Entrypoint + schema: + type: string + - variable: middlewares + label: Middlewares + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: middleware + label: Middleware + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true + - variable: namespace + label: namespace + schema: + type: string + default: "" + - variable: certManager + label: certManager + description: Connect ingress with certManager + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: certificateIssuer + label: certificateIssuer + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: homepage + label: Homepage + description: Connect ingress with Homepage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: name + label: Name + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: description + label: Description + description: defaults to chart description + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: group + label: Group + schema: + type: string + required: true + default: "default" + show_if: [["enabled", "=", true]] + - variable: securityContext + group: Security and Permissions + label: Security Context + schema: + additional_attrs: true + type: dict + attrs: + - variable: container + label: Container + schema: + additional_attrs: true + type: dict + attrs: + # Settings from questions.yaml get appended here on a per-app basis + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 0 + - variable: runAsGroup + label: "runAsGroup" + description: "The groupID this App of the user running the application" + schema: + type: int + default: 0 + # Settings from questions.yaml get appended here on a per-app basis + - 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 + show_if: [["runAsUser", "=", 0]] + 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: "0022" + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: pod + label: Pod + schema: + additional_attrs: true + type: dict + attrs: + - 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 + # Settings from questions.yaml get appended here on a per-app basis + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: resources + group: Resources and Devices + label: "Resource Limits" + 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/manual/SCALE/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/manual/SCALE/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 + hidden: true + attrs: + - variable: cpu + label: CPU + description: "1000m means 1 hyperthread. Detailed info: https://truecharts.org/manual/SCALE/validation" + schema: + type: string + default: 10m + hidden: true + 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/manual/SCALE/validation" + schema: + type: string + default: 50Mi + hidden: true + 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: device + 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" + - variable: scaleGPU + label: GPU Configuration + group: Resources and Devices + schema: + type: list + default: [] + items: + - variable: scaleGPUEntry + label: GPU + schema: + additional_attrs: true + type: dict + attrs: + # Specify GPU configuration + - variable: gpu + label: Select GPU + schema: + additional_attrs: true + type: dict + $ref: + - "definitions/gpuConfiguration" + attrs: [] + - variable: workaround + label: "Workaround" + schema: + type: string + default: workaround + hidden: true +# - 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: 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: 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: ingress + label: "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: [{path: "/", pathType: "Prefix"}] + 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: integrations + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: traefik + label: Traefik + description: Connect ingress with Traefik + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: allowCors + label: 'Allow Cross Origin Requests (advanced)' + schema: + type: boolean + default: false + show_if: [["enabled", "=", true]] + - variable: entrypoints + label: Entrypoints + schema: + type: list + default: ["websecure"] + show_if: [["enabled", "=", true]] + items: + - variable: entrypoint + label: Entrypoint + schema: + type: string + - variable: middlewares + label: Middlewares + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: middleware + label: Middleware + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true + - variable: namespace + label: 'namespace (optional)' + schema: + type: string + default: "" + - variable: certManager + label: certManager + description: Connect ingress with certManager + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: certificateIssuer + label: certificateIssuer + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + - variable: ingressClassName + label: (Advanced/Optional) IngressClass Name + schema: + type: string + show_if: [["advanced", "=", true]] + default: "" + - variable: tls + label: TLS-Settings + schema: + type: list + show_if: [["advanced", "=", true]] + 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: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: 'Use Custom Certificate Secret (Advanced)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: string + default: "" + - variable: scaleCert + label: 'Use TrueNAS SCALE Certificate (Deprecated)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - 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: 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: gluetun + description: Gluetun + - value: tailscale + description: Tailscale + - value: openvpn + description: OpenVPN (Deprecated) + - value: wireguard + description: Wireguard (Deprecated) + - variable: openvpn + label: OpenVPN Settings + schema: + additional_attrs: true + 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 + show_if: [["username", "!=", ""]] + default: "" + required: true + - variable: tailscale + label: Tailscale Settings + schema: + additional_attrs: true + 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: auth_once + label: Auth Once + description: Only attempt to log in if not already logged in. + schema: + type: boolean + default: true + - 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: The address on which to listen for SOCKS5 proxying into the tailscale net. + schema: + type: string + default: "" + - variable: outbound_http_proxy_listen + label: Outbound HTTP Proxy Listen + description: The address on which to listen for HTTP proxying into the tailscale net. + 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: string + show_if: [["type", "!=", "disabled"]] + 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 + max_length: 10240 + - 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/stable/steam-headless/2.1.18/templates/NOTES.txt b/stable/mylar/12.1.18/templates/NOTES.txt similarity index 100% rename from stable/steam-headless/2.1.18/templates/NOTES.txt rename to stable/mylar/12.1.18/templates/NOTES.txt diff --git a/stable/znc/8.1.16/templates/common.yaml b/stable/mylar/12.1.18/templates/common.yaml similarity index 100% rename from stable/znc/8.1.16/templates/common.yaml rename to stable/mylar/12.1.18/templates/common.yaml diff --git a/stable/serpbear/2.1.13/values.yaml b/stable/mylar/12.1.18/values.yaml similarity index 100% rename from stable/serpbear/2.1.13/values.yaml rename to stable/mylar/12.1.18/values.yaml diff --git a/stable/omada-controller/13.0.12/CHANGELOG.md b/stable/omada-controller/13.0.12/CHANGELOG.md new file mode 100644 index 00000000000..cac95a2d71b --- /dev/null +++ b/stable/omada-controller/13.0.12/CHANGELOG.md @@ -0,0 +1,99 @@ +--- +title: Changelog +--- + +**Important:** +*for the complete changelog, please refer to the website* + + + +## [omada-controller-13.0.12](https://github.com/truecharts/charts/compare/omada-controller-13.0.11...omada-controller-13.0.12) (2024-02-12) + +### Chore + + + +- update container image mbentley/omada-controller to 5.13[@6b878ec](https://github.com/6b878ec) by renovate ([#18096](https://github.com/truecharts/charts/issues/18096)) + + +## [omada-controller-13.0.11](https://github.com/truecharts/charts/compare/omada-controller-13.0.10...omada-controller-13.0.11) (2024-02-03) + +### Chore + + + +- update container image common to v17.2.30[@19ad5ec](https://github.com/19ad5ec) by renovate ([#17804](https://github.com/truecharts/charts/issues/17804)) + + +## [omada-controller-13.0.10](https://github.com/truecharts/charts/compare/omada-controller-13.0.9...omada-controller-13.0.10) (2024-02-03) + +### Chore + + + +- update container image mbentley/omada-controller to 5.13[@a53f929](https://github.com/a53f929) by renovate ([#17781](https://github.com/truecharts/charts/issues/17781)) + + +## [omada-controller-13.0.9](https://github.com/truecharts/charts/compare/omada-controller-13.0.8...omada-controller-13.0.9) (2024-01-26) + +### Chore + + + +- update container image common to v17.2.29[@d7c41a3](https://github.com/d7c41a3) by renovate ([#17545](https://github.com/truecharts/charts/issues/17545)) + + +## [omada-controller-13.0.8](https://github.com/truecharts/charts/compare/omada-controller-13.0.7...omada-controller-13.0.8) (2024-01-26) + +### Chore + + + +- update container image mbentley/omada-controller to 5.13[@f1e50b9](https://github.com/f1e50b9) by renovate ([#17543](https://github.com/truecharts/charts/issues/17543)) + + +## [omada-controller-13.0.7](https://github.com/truecharts/charts/compare/omada-controller-13.0.6...omada-controller-13.0.7) (2024-01-21) + +### Chore + + + +- update container image common to v17.2.28[@918b4c5](https://github.com/918b4c5) by renovate ([#17478](https://github.com/truecharts/charts/issues/17478)) + + +## [omada-controller-13.0.6](https://github.com/truecharts/charts/compare/omada-controller-13.0.5...omada-controller-13.0.6) (2024-01-21) + +### Chore + + + +- update container image common to v17.2.26[@24c98f7](https://github.com/24c98f7) by renovate ([#17409](https://github.com/truecharts/charts/issues/17409)) + + +## [omada-controller-13.0.5](https://github.com/truecharts/charts/compare/omada-controller-13.0.4...omada-controller-13.0.5) (2024-01-21) + +### Chore + + + +- update metadata in chart.yaml ([#17457](https://github.com/truecharts/charts/issues/17457)) + + +## [omada-controller-13.0.4](https://github.com/truecharts/charts/compare/omada-controller-13.0.3...omada-controller-13.0.4) (2024-01-21) + +### Chore + + + +- update container image mbentley/omada-controller to 5.13[@eb41821](https://github.com/eb41821) by renovate ([#17385](https://github.com/truecharts/charts/issues/17385)) + + +## [omada-controller-13.0.3](https://github.com/truecharts/charts/compare/omada-controller-13.0.2...omada-controller-13.0.3) (2024-01-15) + +### Chore + + + +- update container image mbentley/omada-controller to 5.13[@b6a4ced](https://github.com/b6a4ced) by renovate ([#17264](https://github.com/truecharts/charts/issues/17264)) + + diff --git a/stable/omada-controller/13.0.12/Chart.yaml b/stable/omada-controller/13.0.12/Chart.yaml new file mode 100644 index 00000000000..848c5206ac8 --- /dev/null +++ b/stable/omada-controller/13.0.12/Chart.yaml @@ -0,0 +1,36 @@ +annotations: + max_scale_version: 23.10.2 + min_scale_version: 23.10.0 + truecharts.org/SCALE-support: "true" + truecharts.org/category: media + truecharts.org/max_helm_version: "3.14" + truecharts.org/min_helm_version: "3.12" + truecharts.org/train: stable +apiVersion: v2 +appVersion: 5.13.0 +dependencies: + - name: common + version: 17.2.30 + repository: oci://tccr.io/truecharts + condition: "" + alias: "" + tags: [] + import-values: [] +deprecated: false +description: Omada is a SDN tool for TP-Link Omada hardware +home: https://truecharts.org/charts/stable/omada-controller +icon: https://truecharts.org/img/hotlink-ok/chart-icons/omada-controller.png +keywords: + - omada-controller +kubeVersion: ">=1.24.0-0" +maintainers: + - name: TrueCharts + email: info@truecharts.org + url: https://truecharts.org +name: omada-controller +sources: + - https://github.com/mbentley/docker-omada-controller + - https://github.com/truecharts/charts/tree/master/charts/stable/omada-controller + - https://hub.docker.com/r/mbentley/omada-controller +type: application +version: 13.0.12 diff --git a/stable/omada-controller/13.0.12/README.md b/stable/omada-controller/13.0.12/README.md new file mode 100644 index 00000000000..0bb3cf221e2 --- /dev/null +++ b/stable/omada-controller/13.0.12/README.md @@ -0,0 +1,28 @@ +--- +title: README +--- + +## General Info + +TrueCharts can be installed as both _normal_ Helm Charts or as Apps on TrueNAS SCALE. +However only installations using the TrueNAS SCALE Apps system are supported. + +For more information about this App, please check the docs on the TrueCharts [website](https://truecharts.org/charts/stable/omada-controller) + +**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)** + +## Support + +- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/manual/SCALE/guides/scale-intro). +- See the [Website](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/charts/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/stable/omada-controller/13.0.12/app-changelog.md b/stable/omada-controller/13.0.12/app-changelog.md new file mode 100644 index 00000000000..579f478637f --- /dev/null +++ b/stable/omada-controller/13.0.12/app-changelog.md @@ -0,0 +1,9 @@ + + +## [omada-controller-13.0.12](https://github.com/truecharts/charts/compare/omada-controller-13.0.11...omada-controller-13.0.12) (2024-02-12) + +### Chore + + + +- update container image mbentley/omada-controller to 5.13[@6b878ec](https://github.com/6b878ec) by renovate ([#18096](https://github.com/truecharts/charts/issues/18096)) \ No newline at end of file diff --git a/stable/omada-controller/13.0.12/app-readme.md b/stable/omada-controller/13.0.12/app-readme.md new file mode 100644 index 00000000000..f96c4abc38c --- /dev/null +++ b/stable/omada-controller/13.0.12/app-readme.md @@ -0,0 +1,8 @@ +Omada is a SDN tool for TP-Link Omada hardware + +This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/charts/stable/omada-controller](https://truecharts.org/charts/stable/omada-controller) + +--- + +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! diff --git a/stable/splunk/6.2.0/charts/common-17.2.30.tgz b/stable/omada-controller/13.0.12/charts/common-17.2.30.tgz similarity index 100% rename from stable/splunk/6.2.0/charts/common-17.2.30.tgz rename to stable/omada-controller/13.0.12/charts/common-17.2.30.tgz diff --git a/stable/omada-controller/13.0.12/ix_values.yaml b/stable/omada-controller/13.0.12/ix_values.yaml new file mode 100644 index 00000000000..ca6c10c98cc --- /dev/null +++ b/stable/omada-controller/13.0.12/ix_values.yaml @@ -0,0 +1,84 @@ +image: + repository: mbentley/omada-controller + tag: 5.13@sha256:6b878ecca6e2806ef0495961d33db1b9adb1ba7582d2bdd4d759ff0ff7288470 + pullPolicy: IfNotPresent +service: + main: + ports: + main: + protocol: https + port: 8043 + comm: + enabled: true + ports: + comm: + protocol: https + enabled: true + port: 8843 + omada-tcp: + enabled: true + ports: + omada-tcp1: + enabled: true + port: 29811 + targetPort: 29811 + omada-tcp2: + enabled: true + port: 29812 + targetPort: 29812 + omada-tcp3: + enabled: true + port: 29813 + targetPort: 29813 + omada-tcp4: + enabled: true + port: 29814 + targetPort: 29814 + omada-udp: + enabled: true + ports: + omada-udp1: + enabled: true + protocol: udp + port: 29810 + targetPort: 29810 +ingress: + comm: + autoLink: true +persistence: + data: + enabled: true + mountPath: /opt/tplink/EAPController/data + work: + enabled: true + mountPath: /opt/tplink/EAPController/work +portal: + open: + enabled: true +securityContext: + container: + readOnlyRootFilesystem: false + runAsNonRoot: false + runAsUser: 0 + runAsGroup: 0 +workload: + main: + podSpec: + containers: + main: + env: + MANAGE_HTTPS_PORT: "{{ .Values.service.main.ports.main.port }}" + PORTAL_HTTPS_PORT: "{{ .Values.service.comm.ports.comm.port }}" + probes: + startup: + path: /api/info + httpHeaders: + Host: kube.internal.health + liveness: + path: /api/info + httpHeaders: + Host: kube.internal.health + readiness: + path: /api/info + httpHeaders: + Host: kube.internal.health diff --git a/stable/omada-controller/13.0.12/questions.yaml b/stable/omada-controller/13.0.12/questions.yaml new file mode 100644 index 00000000000..97ef1f8e2fc --- /dev/null +++ b/stable/omada-controller/13.0.12/questions.yaml @@ -0,0 +1,3583 @@ +groups: + - name: Container Image + description: Image to be used for container + - name: General Settings + description: General Deployment Settings + - name: Workload Settings + description: Workload Settings + - 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: Backup Configuration + description: Configure Velero Backup Schedule + - name: Advanced + description: Advanced Configuration + - name: Postgresql + description: Postgresql + - name: Documentation + description: Documentation +portals: + open: + protocols: + - "$kubernetes-resource_configmap_tcportal-open_protocol" + host: + - "$kubernetes-resource_configmap_tcportal-open_host" + ports: + - "$kubernetes-resource_configmap_tcportal-open_port" +questions: + - variable: global + group: General Settings + label: "Global Settings" + schema: + additional_attrs: true + type: dict + attrs: + - variable: stopAll + label: Stop All + description: "Stops All Running pods and hibernates cnpg" + schema: + type: boolean + default: false + - variable: workload + group: "Workload Settings" + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type (Advanced) + schema: + type: string + default: Deployment + enum: + - value: Deployment + description: Deployment + - value: DaemonSet + description: DaemonSet + - variable: replicas + label: Replicas (Advanced) + description: Set the number of Replicas + schema: + type: int + show_if: [["type", "!=", "DaemonSet"]] + default: 1 + - variable: podSpec + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: containers + label: Containers + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: Main Container + schema: + additional_attrs: true + type: dict + attrs: + - 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..." + 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: extraArgs + label: Extra Args + schema: + type: list + default: [] + items: + - variable: arg + label: Arg + schema: + type: string + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: command + label: Command + schema: + type: list + default: [] + items: + - variable: param + label: Param + schema: + type: string + - variable: TZ + label: Timezone + group: "General Settings" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: podOptions + group: "General Settings" + label: "Global Pod Options (Advanced)" + schema: + additional_attrs: true + type: dict + attrs: + - variable: expertPodOpts + label: "Expert - Pod Options" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + label: "Host Networking" + schema: + type: boolean + default: false + - variable: dnsConfig + label: "DNS Configuration" + schema: + type: dict + additional_attrs: true + attrs: + - variable: options + label: "Options" + schema: + type: list + default: [{"name": "ndots", "value": "1"}] + items: + - variable: optionsEntry + label: "Option Entry" + schema: + type: dict + additional_attrs: true + attrs: + - variable: name + label: "Name" + schema: + type: string + required: true + - variable: value + label: "Value" + schema: + type: string + - variable: nameservers + label: "Nameservers" + schema: + type: list + default: [] + items: + - variable: nsEntry + label: "Nameserver Entry" + schema: + type: string + required: true + - variable: searches + label: "Searches" + schema: + type: list + default: [] + items: + - variable: searchEntry + label: "Search Entry" + schema: + type: string + required: true + + - variable: imagePullSecretList + group: "General Settings" + label: "Image Pull Secrets" + schema: + type: list + default: [] + items: + - variable: pullsecretentry + label: "Pull Secret" + schema: + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: true + - variable: data + label: Data + schema: + type: dict + additional_attrs: true + attrs: + - variable: registry + label: "Registry" + schema: + type: string + required: true + default: "https://index.docker.io/v1/" + - variable: username + label: "Username" + schema: + type: string + required: true + default: "" + - variable: password + label: "Password" + schema: + type: string + required: true + private: true + default: "" + - variable: email + label: "Email" + schema: + type: string + required: true + default: "" + - 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) + - 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: 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: 8043 + required: true + - variable: comm + label: Omada Controller User HTTPS portal + description: Omada Controller User HTTPS portal + 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) + - 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: ports + label: "Service's Port(s) Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: comm + label: TCP 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: 8843 + required: true + - variable: omada-tcp + label: Omada TCP + description: Omada TCP + 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) + - 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: ports + label: "Service's Port(s) Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: omada-tcp1 + label: Omada TCP 1 + description: Omada Controller or EAP Discovery Utility manages Omada devices before Omada Controller v5.x. + 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: 29811 + required: true + - variable: omada-tcp2 + label: Omada TCP 2 + description: Omada Controller or EAP Discovery Utility manages Omada devices before Omada Controller v5.x. + 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: 29812 + required: true + - variable: omada-tcp3 + label: Omada TCP 3 + description: Omada Controller upgrades Omada devices before Omada Controller v5.x. + 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: 29813 + required: true + - variable: omada-tcp4 + label: Omada TCP 4 + description: Omada Controller or EAP Discovery Utility adopts Omada devices since Omada Controller v5.x. + 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: 29814 + required: true + - variable: omada-udp + label: Omada UDP + description: Omada UDP + 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) + - 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: ports + label: "Service's Port(s) Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: omada-udp1 + label: Omada UDP 1 + description: Omada Controller or EAP Discovery Utility discovers Omada devices. + 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: 29810 + required: true + - variable: serviceexpert + group: Networking and Services + label: Show Expert Config + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: scaleExternalInterface + description: Add External Interfaces + label: Add external Interfaces + group: Networking + schema: + type: list + items: + - variable: interfaceConfiguration + description: Interface Configuration + label: Interface Configuration + schema: + additional_attrs: true + 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: + additional_attrs: true + 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 + - variable: staticIPConfigurations + label: Static IP Addresses + schema: + type: list + show_if: [["type", "=", "static"]] + items: + - variable: staticIP + label: Static IP + schema: + type: ipaddr + cidr: true + - variable: staticRoutes + label: Static Routes + schema: + type: list + show_if: [["type", "=", "static"]] + 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: 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: data + label: App data Storage + description: Stores the Application data. + 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: pvc + enum: + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: emptyDir + description: emptyDir + - value: nfs + description: NFS Share + - value: iscsi + description: iSCSI 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: iscsi + label: iSCSI Options + schema: + show_if: [["type", "=", "iscsi"]] + type: dict + additional_attrs: true + attrs: + - variable: targetPortal + label: targetPortal + schema: + type: string + required: true + default: "" + - variable: iqn + label: iqn + schema: + type: string + required: true + default: "" + - variable: lun + label: lun + schema: + type: int + default: 0 + - variable: authSession + label: authSession + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: authDiscovery + label: authDiscovery + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + + - variable: autoPermissions + label: Automatic Permissions Configuration + description: Automatically set permissions + schema: + show_if: [["type", "!=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: chown + label: Run CHOWN + description: | + It will run CHOWN on the path with the given fsGroup + schema: + type: boolean + default: false + - variable: chmod + label: Run CHMOD + description: | + It will run CHMOD on the path with the given value
+ Format should be 3 digits, e.g. 770 + schema: + type: string + valid_chars: '[0-9]{3}' + default: "" + - variable: recursive + label: Recursive + description: | + It will run CHOWN and CHMOD recursively + schema: + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - 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 (Do NOT REDUCE after installation) + description: This value can ONLY be INCREASED after the installation + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: storageClass + label: 'storageClass (Advanced)' + description: 'sets the storageClass to something other than iX default. Only for advanced usecases!' + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "" + - variable: static + label: 'Static Fixed PVC Bindings (Experimental)' + description: Link a PVC to a specific storage location + schema: + show_if: [["type", "=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: mode + label: mode + description: | + disabled: use normal dynamic PVCs + smb: connect to an SMB share + nfs: connect to an NFS share + schema: + type: string + default: "disabled" + enum: + - value: disabled + description: disabled + - value: smb + description: smb + - value: nfs + description: nfs + - variable: server + label: Server + description: server to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "myserver" + - variable: share + label: Share + description: share to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "/myshare" + - variable: user + label: User + description: connecting user + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "myuser" + - variable: domain + label: Domain + description: user domain + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: password + label: Password + description: connecting password + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: volumeSnapshots + label: 'Volume Snapshots (Experimental)' + description: Add an entry to the list to force creation of a volumeSnapshot of this PVC + schema: + show_if: [["type", "=", "pvc"]] + type: list + default: [] + items: + - variable: volumeSnapshotEntry + label: Custom volumeSnapshot + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: 'WARNING: renaming this, means deletion of the snapshot with the old name!' + schema: + type: string + default: "mysnapshot" + required: true + - variable: volumeSnapshotClassName + label: 'volumeSnapshot Class Name (Advanced)' + description: For use with PVCs using a non-default storageClass + schema: + type: string + default: "" + - variable: work + label: App working Storage + description: Stores the Application data between resets. + 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: pvc + enum: + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: emptyDir + description: emptyDir + - value: nfs + description: NFS Share + - value: iscsi + description: iSCSI 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: iscsi + label: iSCSI Options + schema: + show_if: [["type", "=", "iscsi"]] + type: dict + additional_attrs: true + attrs: + - variable: targetPortal + label: targetPortal + schema: + type: string + required: true + default: "" + - variable: iqn + label: iqn + schema: + type: string + required: true + default: "" + - variable: lun + label: lun + schema: + type: int + default: 0 + - variable: authSession + label: authSession + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: authDiscovery + label: authDiscovery + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + + - variable: autoPermissions + label: Automatic Permissions Configuration + description: Automatically set permissions + schema: + show_if: [["type", "!=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: chown + label: Run CHOWN + description: | + It will run CHOWN on the path with the given fsGroup + schema: + type: boolean + default: false + - variable: chmod + label: Run CHMOD + description: | + It will run CHMOD on the path with the given value
+ Format should be 3 digits, e.g. 770 + schema: + type: string + valid_chars: '[0-9]{3}' + default: "" + - variable: recursive + label: Recursive + description: | + It will run CHOWN and CHMOD recursively + schema: + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - 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 (Do NOT REDUCE after installation) + description: This value can ONLY be INCREASED after the installation + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: storageClass + label: 'storageClass (Advanced)' + description: 'sets the storageClass to something other than iX default. Only for advanced usecases!' + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "" + - variable: static + label: 'Static Fixed PVC Bindings (Experimental)' + description: Link a PVC to a specific storage location + schema: + show_if: [["type", "=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: mode + label: mode + description: | + disabled: use normal dynamic PVCs + smb: connect to an SMB share + nfs: connect to an NFS share + schema: + type: string + default: "disabled" + enum: + - value: disabled + description: disabled + - value: smb + description: smb + - value: nfs + description: nfs + - variable: server + label: Server + description: server to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "myserver" + - variable: share + label: Share + description: share to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "/myshare" + - variable: user + label: User + description: connecting user + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "myuser" + - variable: domain + label: Domain + description: user domain + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: password + label: Password + description: connecting password + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: volumeSnapshots + label: 'Volume Snapshots (Experimental)' + description: Add an entry to the list to force creation of a volumeSnapshot of this PVC + schema: + show_if: [["type", "=", "pvc"]] + type: list + default: [] + items: + - variable: volumeSnapshotEntry + label: Custom volumeSnapshot + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: 'WARNING: renaming this, means deletion of the snapshot with the old name!' + schema: + type: string + default: "mysnapshot" + required: true + - variable: volumeSnapshotClassName + label: 'volumeSnapshot Class Name (Advanced)' + description: For use with PVCs using a non-default storageClass + schema: + type: string + default: "" + - 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: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: hostPath + enum: + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: emptyDir + description: emptyDir + - 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: iscsi + label: iSCSI Options + schema: + show_if: [["type", "=", "iscsi"]] + type: dict + additional_attrs: true + attrs: + - variable: targetPortal + label: targetPortal + schema: + type: string + required: true + default: "" + - variable: iqn + label: iqn + schema: + type: string + required: true + default: "" + - variable: lun + label: lun + schema: + type: int + default: 0 + - variable: authSession + label: authSession + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: authDiscovery + label: authDiscovery + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: autoPermissions + label: Automatic Permissions Configuration + description: Automatically set permissions + schema: + show_if: [["type", "!=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: chown + label: Run CHOWN + description: | + It will run CHOWN on the path with the given fsGroup + schema: + type: boolean + default: false + - variable: chmod + label: Run CHMOD + description: | + It will run CHMOD on the path with the given value
+ Format should be 3 digits, e.g. 770 + schema: + type: string + valid_chars: '[0-9]{3}' + default: "" + - variable: recursive + label: Recursive + description: | + It will run CHOWN and CHMOD recursively + schema: + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - 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: storageClass + label: 'storageClass (Advanced)' + description: 'sets the storageClass to something other than iX default. Only for advanced usecases!' + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "" + - variable: static + label: 'Static Fixed PVC Bindings (Experimental)' + description: Link a PVC to a specific storage location + schema: + show_if: [["type", "=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: mode + label: mode + description: | + disabled: use normal dynamic PVCs + smb: connect to an SMB share + nfs: connect to an NFS share + schema: + type: string + default: "disabled" + enum: + - value: "disabled" + description: disabled + - value: smb + description: smb + - value: nfs + description: nfs + - variable: server + label: Server + description: server to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "myserver" + - variable: share + label: Share + description: share to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "/myshare" + - variable: user + label: User + description: connecting user + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "myuser" + - variable: domain + label: Domain + description: user domain + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: password + label: Password + description: connecting password + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: volumeSnapshots + label: 'Volume Snapshots (Experimental)' + description: Add an entry to the list to force creation of a volumeSnapshot of this PVC + schema: + show_if: [["type", "=", "pvc"]] + type: list + default: [] + items: + - variable: volumeSnapshotEntry + label: Custom volumeSnapshot + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: 'WARNING: renaming this, means deletion of the snapshot with the old name!' + schema: + type: string + default: "mysnapshot" + required: true + - variable: volumeSnapshotClassName + label: 'volumeSnapshot Class Name (Advanced)' + description: For use with PVCs using a non-default storageClass + schema: + type: string + default: "" + - 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: [{path: "/", pathType: "Prefix"}] + 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: integrations + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: traefik + label: Traefik + description: Connect ingress with Traefik + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: allowCors + label: 'Allow Cross Origin Requests (advanced)' + schema: + type: boolean + default: false + show_if: [["enabled", "=", true]] + - variable: entrypoints + label: Entrypoints + schema: + type: list + default: ["websecure"] + show_if: [["enabled", "=", true]] + items: + - variable: entrypoint + label: Entrypoint + schema: + type: string + - variable: middlewares + label: Middlewares + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: middleware + label: Middleware + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true + - variable: namespace + label: 'namespace (optional)' + schema: + type: string + default: "" + - variable: certManager + label: certManager + description: Connect ingress with certManager + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: certificateIssuer + label: certificateIssuer + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: homepage + label: Homepage + description: Connect ingress with Homepage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: name + label: Name (Optional) + description: Defaults to chart name + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: description + label: Description (Optional) + description: Defaults to chart description + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: icon + label: Icon (Optional) + description: Defaults to chart icon + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: group + label: Group + schema: + type: string + required: true + default: "default" + show_if: [["enabled", "=", true]] + - variable: widget + label: Widget Settings + schema: + type: dict + additional_attrs: true + show_if: [["enabled", "=", true]] + attrs: + - variable: enabled + label: Enable Widget + description: When disabled all widget annotations are skipped. + schema: + type: boolean + default: true + - variable: custom + label: Options + schema: + type: dict + additional_attrs: true + attrs: + - variable: key + label: API-key (key) + schema: + type: string + default: "" + - variable: customkv + label: Custom Options + schema: + type: list + default: [] + items: + - variable: option + label: Option + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + default: "" + required: true + - variable: value + label: Value + schema: + type: string + default: "" + required: true + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + - variable: ingressClassName + label: (Advanced/Optional) IngressClass Name + schema: + type: string + show_if: [["advanced", "=", true]] + default: "" + - variable: tls + label: TLS-Settings + schema: + type: list + show_if: [["advanced", "=", true]] + 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: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: 'Use Custom Certificate Secret (Advanced)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: string + default: "" + - variable: scaleCert + label: 'Use TrueNAS SCALE Certificate (Deprecated)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - variable: comm + label: Comm 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: [{path: "/", pathType: "Prefix"}] + 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: integrations + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: traefik + label: Traefik + description: Connect ingress with Traefik + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: allowCors + label: 'Allow Cross Origin Requests (advanced)' + schema: + type: boolean + default: false + show_if: [["enabled", "=", true]] + - variable: entrypoints + label: Entrypoints + schema: + type: list + default: ["websecure"] + show_if: [["enabled", "=", true]] + items: + - variable: entrypoint + label: Entrypoint + schema: + type: string + - variable: middlewares + label: Middlewares + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: middleware + label: Middleware + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true + - variable: namespace + label: 'namespace (optional)' + schema: + type: string + default: "" + - variable: certManager + label: certManager + description: Connect ingress with certManager + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: certificateIssuer + label: certificateIssuer + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: homepage + label: Homepage + description: Connect ingress with Homepage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: name + label: Name (Optional) + description: Defaults to chart name + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: description + label: Description (Optional) + description: Defaults to chart description + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: icon + label: Icon (Optional) + description: Defaults to chart icon + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: group + label: Group + schema: + type: string + required: true + default: "default" + show_if: [["enabled", "=", true]] + - variable: widget + label: Widget Settings + schema: + type: dict + additional_attrs: true + show_if: [["enabled", "=", true]] + attrs: + - variable: enabled + label: Enable Widget + description: When disabled all widget annotations are skipped. + schema: + type: boolean + default: true + - variable: custom + label: Options + schema: + type: dict + additional_attrs: true + attrs: + - variable: key + label: API-key (key) + schema: + type: string + default: "" + - variable: customkv + label: Custom Options + schema: + type: list + default: [] + items: + - variable: option + label: Option + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + default: "" + required: true + - variable: value + label: Value + schema: + type: string + default: "" + required: true + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + - variable: ingressClassName + label: (Advanced/Optional) IngressClass Name + schema: + type: string + show_if: [["advanced", "=", true]] + default: "" + - variable: tls + label: TLS-Settings + schema: + type: list + show_if: [["advanced", "=", true]] + 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: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: 'Use Custom Certificate Secret (Advanced)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: string + default: "" + - variable: scaleCert + label: 'Use TrueNAS SCALE Certificate (Deprecated)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - 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: 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: overrideService + 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: [] + show_if: [["certificateIssuer", "=", ""]] + 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: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your Cert-Manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: scaleCert + label: Use TrueNAS SCALE Certificate (Deprecated) + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: Use Custom Secret (Advanced) + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: integrations + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: traefik + label: Traefik + description: Connect ingress with Traefik + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: allowCors + label: "Allow Cross Origin Requests" + schema: + type: boolean + default: false + show_if: [["enabled", "=", true]] + - variable: entrypoints + label: Entrypoints + schema: + type: list + default: ["websecure"] + show_if: [["enabled", "=", true]] + items: + - variable: entrypoint + label: Entrypoint + schema: + type: string + - variable: middlewares + label: Middlewares + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: middleware + label: Middleware + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true + - variable: namespace + label: namespace + schema: + type: string + default: "" + - variable: certManager + label: certManager + description: Connect ingress with certManager + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: certificateIssuer + label: certificateIssuer + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: homepage + label: Homepage + description: Connect ingress with Homepage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: name + label: Name + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: description + label: Description + description: defaults to chart description + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: group + label: Group + schema: + type: string + required: true + default: "default" + show_if: [["enabled", "=", true]] + - variable: securityContext + group: Security and Permissions + label: Security Context + schema: + additional_attrs: true + type: dict + attrs: + - variable: container + label: Container + schema: + additional_attrs: true + type: dict + attrs: + # Settings from questions.yaml get appended here on a per-app basis + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 0 + - variable: runAsGroup + label: "runAsGroup" + description: "The groupID this App of the user running the application" + schema: + type: int + default: 0 + # Settings from questions.yaml get appended here on a per-app basis + - 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 + show_if: [["runAsUser", "=", 0]] + 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: "0022" + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: pod + label: Pod + schema: + additional_attrs: true + type: dict + attrs: + - 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 + # Settings from questions.yaml get appended here on a per-app basis + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: resources + group: Resources and Devices + label: "Resource Limits" + 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/manual/SCALE/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/manual/SCALE/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 + hidden: true + attrs: + - variable: cpu + label: CPU + description: "1000m means 1 hyperthread. Detailed info: https://truecharts.org/manual/SCALE/validation" + schema: + type: string + default: 10m + hidden: true + 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/manual/SCALE/validation" + schema: + type: string + default: 50Mi + hidden: true + 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: device + 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" + - variable: scaleGPU + label: GPU Configuration + group: Resources and Devices + schema: + type: list + default: [] + items: + - variable: scaleGPUEntry + label: GPU + schema: + additional_attrs: true + type: dict + attrs: + # Specify GPU configuration + - variable: gpu + label: Select GPU + schema: + additional_attrs: true + type: dict + $ref: + - "definitions/gpuConfiguration" + attrs: [] + - variable: workaround + label: "Workaround" + schema: + type: string + default: workaround + hidden: true +# - 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: 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: 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: ingress + label: "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: [{path: "/", pathType: "Prefix"}] + 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: integrations + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: traefik + label: Traefik + description: Connect ingress with Traefik + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: allowCors + label: 'Allow Cross Origin Requests (advanced)' + schema: + type: boolean + default: false + show_if: [["enabled", "=", true]] + - variable: entrypoints + label: Entrypoints + schema: + type: list + default: ["websecure"] + show_if: [["enabled", "=", true]] + items: + - variable: entrypoint + label: Entrypoint + schema: + type: string + - variable: middlewares + label: Middlewares + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: middleware + label: Middleware + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true + - variable: namespace + label: 'namespace (optional)' + schema: + type: string + default: "" + - variable: certManager + label: certManager + description: Connect ingress with certManager + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: certificateIssuer + label: certificateIssuer + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + - variable: ingressClassName + label: (Advanced/Optional) IngressClass Name + schema: + type: string + show_if: [["advanced", "=", true]] + default: "" + - variable: tls + label: TLS-Settings + schema: + type: list + show_if: [["advanced", "=", true]] + 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: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: 'Use Custom Certificate Secret (Advanced)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: string + default: "" + - variable: scaleCert + label: 'Use TrueNAS SCALE Certificate (Deprecated)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - 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: 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: gluetun + description: Gluetun + - value: tailscale + description: Tailscale + - value: openvpn + description: OpenVPN (Deprecated) + - value: wireguard + description: Wireguard (Deprecated) + - variable: openvpn + label: OpenVPN Settings + schema: + additional_attrs: true + 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 + show_if: [["username", "!=", ""]] + default: "" + required: true + - variable: tailscale + label: Tailscale Settings + schema: + additional_attrs: true + 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: auth_once + label: Auth Once + description: Only attempt to log in if not already logged in. + schema: + type: boolean + default: true + - 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: The address on which to listen for SOCKS5 proxying into the tailscale net. + schema: + type: string + default: "" + - variable: outbound_http_proxy_listen + label: Outbound HTTP Proxy Listen + description: The address on which to listen for HTTP proxying into the tailscale net. + 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: string + show_if: [["type", "!=", "disabled"]] + 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 + max_length: 10240 + - 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/stable/valheim/9.1.11/templates/NOTES.txt b/stable/omada-controller/13.0.12/templates/NOTES.txt similarity index 100% rename from stable/valheim/9.1.11/templates/NOTES.txt rename to stable/omada-controller/13.0.12/templates/NOTES.txt diff --git a/stable/omada-controller/13.0.12/templates/common.yaml b/stable/omada-controller/13.0.12/templates/common.yaml new file mode 100644 index 00000000000..3c921cfd439 --- /dev/null +++ b/stable/omada-controller/13.0.12/templates/common.yaml @@ -0,0 +1,9 @@ +{{/* Render the templates */}} + +{{/* +The old behavior of always running on port 443 seams to have changed upstream. The +current upstream behavior is to not allow the port to be changed (without re-install) +after setup. +*/}} + +{{ include "tc.v1.common.loader.all" . }} diff --git a/stable/snapdrop/8.1.14/values.yaml b/stable/omada-controller/13.0.12/values.yaml similarity index 100% rename from stable/snapdrop/8.1.14/values.yaml rename to stable/omada-controller/13.0.12/values.yaml diff --git a/stable/palworld/1.0.1/app-changelog.md b/stable/palworld/1.0.1/app-changelog.md deleted file mode 100644 index 70daed1f16f..00000000000 --- a/stable/palworld/1.0.1/app-changelog.md +++ /dev/null @@ -1,9 +0,0 @@ - - -## [palworld-1.0.1](https://github.com/truecharts/charts/compare/palworld-1.0.0...palworld-1.0.1) (2024-02-10) - -### Docs - - - -- fix a typo in questions ([#18012](https://github.com/truecharts/charts/issues/18012)) \ No newline at end of file diff --git a/stable/palworld/1.0.1/CHANGELOG.md b/stable/palworld/1.0.2/CHANGELOG.md similarity index 59% rename from stable/palworld/1.0.1/CHANGELOG.md rename to stable/palworld/1.0.2/CHANGELOG.md index 3ab55301538..5773ec757d1 100644 --- a/stable/palworld/1.0.1/CHANGELOG.md +++ b/stable/palworld/1.0.2/CHANGELOG.md @@ -7,6 +7,15 @@ title: Changelog +## [palworld-1.0.2](https://github.com/truecharts/charts/compare/palworld-1.0.1...palworld-1.0.2) (2024-02-12) + +### Chore + + + +- update container image outdead/rcon to latest[@f4ab6d4](https://github.com/f4ab6d4) by renovate ([#18101](https://github.com/truecharts/charts/issues/18101)) + + ## [palworld-1.0.1](https://github.com/truecharts/charts/compare/palworld-1.0.0...palworld-1.0.1) (2024-02-10) ### Docs diff --git a/stable/palworld/1.0.1/Chart.yaml b/stable/palworld/1.0.2/Chart.yaml similarity index 98% rename from stable/palworld/1.0.1/Chart.yaml rename to stable/palworld/1.0.2/Chart.yaml index a28571bcbe6..9d3feefdfe0 100644 --- a/stable/palworld/1.0.1/Chart.yaml +++ b/stable/palworld/1.0.2/Chart.yaml @@ -35,4 +35,4 @@ sources: - https://ghcr.io/ich777/steamcmd - https://hub.docker.com/r/outdead/rcon type: application -version: 1.0.1 +version: 1.0.2 diff --git a/stable/palworld/1.0.1/README.md b/stable/palworld/1.0.2/README.md similarity index 100% rename from stable/palworld/1.0.1/README.md rename to stable/palworld/1.0.2/README.md diff --git a/stable/palworld/1.0.2/app-changelog.md b/stable/palworld/1.0.2/app-changelog.md new file mode 100644 index 00000000000..5314edc644b --- /dev/null +++ b/stable/palworld/1.0.2/app-changelog.md @@ -0,0 +1,9 @@ + + +## [palworld-1.0.2](https://github.com/truecharts/charts/compare/palworld-1.0.1...palworld-1.0.2) (2024-02-12) + +### Chore + + + +- update container image outdead/rcon to latest[@f4ab6d4](https://github.com/f4ab6d4) by renovate ([#18101](https://github.com/truecharts/charts/issues/18101)) \ No newline at end of file diff --git a/stable/palworld/1.0.1/app-readme.md b/stable/palworld/1.0.2/app-readme.md similarity index 100% rename from stable/palworld/1.0.1/app-readme.md rename to stable/palworld/1.0.2/app-readme.md diff --git a/stable/palworld/1.0.1/charts/common-17.2.26.tgz b/stable/palworld/1.0.2/charts/common-17.2.26.tgz similarity index 100% rename from stable/palworld/1.0.1/charts/common-17.2.26.tgz rename to stable/palworld/1.0.2/charts/common-17.2.26.tgz diff --git a/stable/palworld/1.0.1/ix_values.yaml b/stable/palworld/1.0.2/ix_values.yaml similarity index 99% rename from stable/palworld/1.0.1/ix_values.yaml rename to stable/palworld/1.0.2/ix_values.yaml index 65f4a76345f..c1d5f189a77 100644 --- a/stable/palworld/1.0.1/ix_values.yaml +++ b/stable/palworld/1.0.2/ix_values.yaml @@ -5,7 +5,7 @@ image: rconImage: repository: outdead/rcon pullPolicy: IfNotPresent - tag: latest@sha256:3d999cb1b976409c5501fe3ac1b72347d74ecadb0c354f9144e5aba2d477c2ee + tag: latest@sha256:f4ab6d4f86525e2d71534b839cc4e2241ffc9278759f7a70ef3aa434c5aec927 securityContext: container: diff --git a/stable/palworld/1.0.1/questions.yaml b/stable/palworld/1.0.2/questions.yaml similarity index 100% rename from stable/palworld/1.0.1/questions.yaml rename to stable/palworld/1.0.2/questions.yaml diff --git a/stable/znc/8.1.16/templates/NOTES.txt b/stable/palworld/1.0.2/templates/NOTES.txt similarity index 100% rename from stable/znc/8.1.16/templates/NOTES.txt rename to stable/palworld/1.0.2/templates/NOTES.txt diff --git a/stable/palworld/1.0.1/templates/_configmap.tpl b/stable/palworld/1.0.2/templates/_configmap.tpl similarity index 100% rename from stable/palworld/1.0.1/templates/_configmap.tpl rename to stable/palworld/1.0.2/templates/_configmap.tpl diff --git a/stable/palworld/1.0.1/templates/common.yaml b/stable/palworld/1.0.2/templates/common.yaml similarity index 100% rename from stable/palworld/1.0.1/templates/common.yaml rename to stable/palworld/1.0.2/templates/common.yaml diff --git a/stable/splunk/6.2.0/values.yaml b/stable/palworld/1.0.2/values.yaml similarity index 100% rename from stable/splunk/6.2.0/values.yaml rename to stable/palworld/1.0.2/values.yaml diff --git a/stable/posterr/7.1.14/app-changelog.md b/stable/posterr/7.1.14/app-changelog.md deleted file mode 100644 index 5c68341111b..00000000000 --- a/stable/posterr/7.1.14/app-changelog.md +++ /dev/null @@ -1,9 +0,0 @@ - - -## [posterr-7.1.14](https://github.com/truecharts/charts/compare/posterr-7.1.13...posterr-7.1.14) (2024-02-05) - -### Chore - - - -- update container image petersem/posterr to latest[@7ffe3c5](https://github.com/7ffe3c5) by renovate ([#17890](https://github.com/truecharts/charts/issues/17890)) \ No newline at end of file diff --git a/stable/posterr/7.1.14/CHANGELOG.md b/stable/posterr/7.1.15/CHANGELOG.md similarity index 90% rename from stable/posterr/7.1.14/CHANGELOG.md rename to stable/posterr/7.1.15/CHANGELOG.md index 8370b40ac26..cdddef75e19 100644 --- a/stable/posterr/7.1.14/CHANGELOG.md +++ b/stable/posterr/7.1.15/CHANGELOG.md @@ -7,6 +7,15 @@ title: Changelog +## [posterr-7.1.15](https://github.com/truecharts/charts/compare/posterr-7.1.14...posterr-7.1.15) (2024-02-12) + +### Chore + + + +- update container image petersem/posterr to latest[@93583c6](https://github.com/93583c6) by renovate ([#18102](https://github.com/truecharts/charts/issues/18102)) + + ## [posterr-7.1.14](https://github.com/truecharts/charts/compare/posterr-7.1.13...posterr-7.1.14) (2024-02-05) ### Chore @@ -88,12 +97,3 @@ title: Changelog - update container image petersem/posterr to latest[@055616b](https://github.com/055616b) by renovate ([#16787](https://github.com/truecharts/charts/issues/16787)) - - -## [posterr-7.1.5](https://github.com/truecharts/charts/compare/posterr-7.1.4...posterr-7.1.5) (2024-01-02) - -### Chore - - - -- force bump to ensure up-to-date catalogs diff --git a/stable/posterr/7.1.14/Chart.yaml b/stable/posterr/7.1.15/Chart.yaml similarity index 98% rename from stable/posterr/7.1.14/Chart.yaml rename to stable/posterr/7.1.15/Chart.yaml index 4f54068d76b..4a21562e258 100644 --- a/stable/posterr/7.1.14/Chart.yaml +++ b/stable/posterr/7.1.15/Chart.yaml @@ -34,4 +34,4 @@ sources: - https://github.com/truecharts/charts/tree/master/charts/stable/posterr - https://hub.docker.com/r/petersem/posterr type: application -version: 7.1.14 +version: 7.1.15 diff --git a/stable/posterr/7.1.14/README.md b/stable/posterr/7.1.15/README.md similarity index 100% rename from stable/posterr/7.1.14/README.md rename to stable/posterr/7.1.15/README.md diff --git a/stable/posterr/7.1.15/app-changelog.md b/stable/posterr/7.1.15/app-changelog.md new file mode 100644 index 00000000000..fa6d841489d --- /dev/null +++ b/stable/posterr/7.1.15/app-changelog.md @@ -0,0 +1,9 @@ + + +## [posterr-7.1.15](https://github.com/truecharts/charts/compare/posterr-7.1.14...posterr-7.1.15) (2024-02-12) + +### Chore + + + +- update container image petersem/posterr to latest[@93583c6](https://github.com/93583c6) by renovate ([#18102](https://github.com/truecharts/charts/issues/18102)) \ No newline at end of file diff --git a/stable/posterr/7.1.14/app-readme.md b/stable/posterr/7.1.15/app-readme.md similarity index 100% rename from stable/posterr/7.1.14/app-readme.md rename to stable/posterr/7.1.15/app-readme.md diff --git a/stable/steam-headless/2.1.18/charts/common-17.2.30.tgz b/stable/posterr/7.1.15/charts/common-17.2.30.tgz similarity index 100% rename from stable/steam-headless/2.1.18/charts/common-17.2.30.tgz rename to stable/posterr/7.1.15/charts/common-17.2.30.tgz diff --git a/stable/posterr/7.1.14/ix_values.yaml b/stable/posterr/7.1.15/ix_values.yaml similarity index 84% rename from stable/posterr/7.1.14/ix_values.yaml rename to stable/posterr/7.1.15/ix_values.yaml index e754b63daad..8e734b99a44 100644 --- a/stable/posterr/7.1.14/ix_values.yaml +++ b/stable/posterr/7.1.15/ix_values.yaml @@ -1,7 +1,7 @@ image: pullPolicy: IfNotPresent repository: petersem/posterr - tag: latest@sha256:7ffe3c563707905452e6daf652cd6c8e338906a6842955525bd875d6f8b2a588 + tag: latest@sha256:93583c643b4efc40690e9de629bf8879bd414de97a6215a7260ab0e83d47897b service: main: ports: diff --git a/stable/posterr/7.1.14/questions.yaml b/stable/posterr/7.1.15/questions.yaml similarity index 99% rename from stable/posterr/7.1.14/questions.yaml rename to stable/posterr/7.1.15/questions.yaml index 2dc1880f08b..4d81bd78b5f 100644 --- a/stable/posterr/7.1.14/questions.yaml +++ b/stable/posterr/7.1.15/questions.yaml @@ -23,6 +23,8 @@ groups: description: Metrics - name: Addons description: Addon Configuration + - name: Backup Configuration + description: Configure Velero Backup Schedule - name: Advanced description: Advanced Configuration - name: Postgresql diff --git a/stable/posterr/7.1.15/templates/NOTES.txt b/stable/posterr/7.1.15/templates/NOTES.txt new file mode 100644 index 00000000000..efcb74cb772 --- /dev/null +++ b/stable/posterr/7.1.15/templates/NOTES.txt @@ -0,0 +1 @@ +{{- include "tc.v1.common.lib.chart.notes" $ -}} diff --git a/stable/prusaslicer-novnc/7.1.18/templates/common.yaml b/stable/posterr/7.1.15/templates/common.yaml similarity index 100% rename from stable/prusaslicer-novnc/7.1.18/templates/common.yaml rename to stable/posterr/7.1.15/templates/common.yaml diff --git a/stable/steam-headless/2.1.18/values.yaml b/stable/posterr/7.1.15/values.yaml similarity index 100% rename from stable/steam-headless/2.1.18/values.yaml rename to stable/posterr/7.1.15/values.yaml diff --git a/stable/prusaslicer-novnc/7.1.18/app-changelog.md b/stable/prusaslicer-novnc/7.1.18/app-changelog.md deleted file mode 100644 index 8d3aa63f640..00000000000 --- a/stable/prusaslicer-novnc/7.1.18/app-changelog.md +++ /dev/null @@ -1,9 +0,0 @@ - - -## [prusaslicer-novnc-7.1.18](https://github.com/truecharts/charts/compare/prusaslicer-novnc-7.1.17...prusaslicer-novnc-7.1.18) (2024-02-05) - -### Chore - - - -- update container image mikeah/prusaslicer-novnc to latest[@27c0bf5](https://github.com/27c0bf5) by renovate ([#17886](https://github.com/truecharts/charts/issues/17886)) \ No newline at end of file diff --git a/stable/prusaslicer-novnc/7.1.18/CHANGELOG.md b/stable/prusaslicer-novnc/7.1.19/CHANGELOG.md similarity index 90% rename from stable/prusaslicer-novnc/7.1.18/CHANGELOG.md rename to stable/prusaslicer-novnc/7.1.19/CHANGELOG.md index 1d1b051a6c6..e610ca0596f 100644 --- a/stable/prusaslicer-novnc/7.1.18/CHANGELOG.md +++ b/stable/prusaslicer-novnc/7.1.19/CHANGELOG.md @@ -7,6 +7,15 @@ title: Changelog +## [prusaslicer-novnc-7.1.19](https://github.com/truecharts/charts/compare/prusaslicer-novnc-7.1.18...prusaslicer-novnc-7.1.19) (2024-02-12) + +### Chore + + + +- update container image mikeah/prusaslicer-novnc to latest[@7537fd2](https://github.com/7537fd2) by renovate ([#18097](https://github.com/truecharts/charts/issues/18097)) + + ## [prusaslicer-novnc-7.1.18](https://github.com/truecharts/charts/compare/prusaslicer-novnc-7.1.17...prusaslicer-novnc-7.1.18) (2024-02-05) ### Chore @@ -88,12 +97,3 @@ title: Changelog -- update container image mikeah/prusaslicer-novnc to latest[@9e55552](https://github.com/9e55552) by renovate ([#17167](https://github.com/truecharts/charts/issues/17167)) - - - - -## [prusaslicer-novnc-7.1.8](https://github.com/truecharts/charts/compare/prusaslicer-novnc-7.1.7...prusaslicer-novnc-7.1.8) (2024-01-09) - -### Chore - diff --git a/stable/prusaslicer-novnc/7.1.18/Chart.yaml b/stable/prusaslicer-novnc/7.1.19/Chart.yaml similarity index 98% rename from stable/prusaslicer-novnc/7.1.18/Chart.yaml rename to stable/prusaslicer-novnc/7.1.19/Chart.yaml index ecad1303449..30aff740cc1 100644 --- a/stable/prusaslicer-novnc/7.1.18/Chart.yaml +++ b/stable/prusaslicer-novnc/7.1.19/Chart.yaml @@ -35,4 +35,4 @@ sources: - https://github.com/truecharts/charts/tree/master/charts/stable/prusaslicer-novnc - https://hub.docker.com/r/mikeah/prusaslicer-novnc type: application -version: 7.1.18 +version: 7.1.19 diff --git a/stable/prusaslicer-novnc/7.1.18/README.md b/stable/prusaslicer-novnc/7.1.19/README.md similarity index 100% rename from stable/prusaslicer-novnc/7.1.18/README.md rename to stable/prusaslicer-novnc/7.1.19/README.md diff --git a/stable/prusaslicer-novnc/7.1.19/app-changelog.md b/stable/prusaslicer-novnc/7.1.19/app-changelog.md new file mode 100644 index 00000000000..b6487d46d3c --- /dev/null +++ b/stable/prusaslicer-novnc/7.1.19/app-changelog.md @@ -0,0 +1,9 @@ + + +## [prusaslicer-novnc-7.1.19](https://github.com/truecharts/charts/compare/prusaslicer-novnc-7.1.18...prusaslicer-novnc-7.1.19) (2024-02-12) + +### Chore + + + +- update container image mikeah/prusaslicer-novnc to latest[@7537fd2](https://github.com/7537fd2) by renovate ([#18097](https://github.com/truecharts/charts/issues/18097)) \ No newline at end of file diff --git a/stable/prusaslicer-novnc/7.1.18/app-readme.md b/stable/prusaslicer-novnc/7.1.19/app-readme.md similarity index 100% rename from stable/prusaslicer-novnc/7.1.18/app-readme.md rename to stable/prusaslicer-novnc/7.1.19/app-readme.md diff --git a/stable/tar1090/4.1.20/charts/common-17.2.30.tgz b/stable/prusaslicer-novnc/7.1.19/charts/common-17.2.30.tgz similarity index 100% rename from stable/tar1090/4.1.20/charts/common-17.2.30.tgz rename to stable/prusaslicer-novnc/7.1.19/charts/common-17.2.30.tgz diff --git a/stable/prusaslicer-novnc/7.1.18/ix_values.yaml b/stable/prusaslicer-novnc/7.1.19/ix_values.yaml similarity index 87% rename from stable/prusaslicer-novnc/7.1.18/ix_values.yaml rename to stable/prusaslicer-novnc/7.1.19/ix_values.yaml index 996e4e70cf7..14eee61548e 100644 --- a/stable/prusaslicer-novnc/7.1.18/ix_values.yaml +++ b/stable/prusaslicer-novnc/7.1.19/ix_values.yaml @@ -1,7 +1,7 @@ image: pullPolicy: IfNotPresent repository: mikeah/prusaslicer-novnc - tag: latest@sha256:27c0bf5b2bfa67fc77ff93e93059f115709cf4b268a1318c4a2cebf2698aca58 + tag: latest@sha256:7537fd2cb0b6d6a4d8be036b09a3b71902f2043ced56f75b0bcda8409b61979d persistence: configsfolder: enabled: true diff --git a/stable/prusaslicer-novnc/7.1.18/questions.yaml b/stable/prusaslicer-novnc/7.1.19/questions.yaml similarity index 99% rename from stable/prusaslicer-novnc/7.1.18/questions.yaml rename to stable/prusaslicer-novnc/7.1.19/questions.yaml index 4ec0254538f..5da6052d6f1 100644 --- a/stable/prusaslicer-novnc/7.1.18/questions.yaml +++ b/stable/prusaslicer-novnc/7.1.19/questions.yaml @@ -23,6 +23,8 @@ groups: description: Metrics - name: Addons description: Addon Configuration + - name: Backup Configuration + description: Configure Velero Backup Schedule - name: Advanced description: Advanced Configuration - name: Postgresql diff --git a/stable/prusaslicer-novnc/7.1.19/templates/NOTES.txt b/stable/prusaslicer-novnc/7.1.19/templates/NOTES.txt new file mode 100644 index 00000000000..efcb74cb772 --- /dev/null +++ b/stable/prusaslicer-novnc/7.1.19/templates/NOTES.txt @@ -0,0 +1 @@ +{{- include "tc.v1.common.lib.chart.notes" $ -}} diff --git a/stable/pyload-ng/4.1.17/templates/common.yaml b/stable/prusaslicer-novnc/7.1.19/templates/common.yaml similarity index 100% rename from stable/pyload-ng/4.1.17/templates/common.yaml rename to stable/prusaslicer-novnc/7.1.19/templates/common.yaml diff --git a/stable/tar1090/4.1.20/values.yaml b/stable/prusaslicer-novnc/7.1.19/values.yaml similarity index 100% rename from stable/tar1090/4.1.20/values.yaml rename to stable/prusaslicer-novnc/7.1.19/values.yaml diff --git a/stable/pyload-ng/4.1.17/app-changelog.md b/stable/pyload-ng/4.1.17/app-changelog.md deleted file mode 100644 index 534131e753a..00000000000 --- a/stable/pyload-ng/4.1.17/app-changelog.md +++ /dev/null @@ -1,9 +0,0 @@ - - -## [pyload-ng-4.1.17](https://github.com/truecharts/charts/compare/pyload-ng-4.1.16...pyload-ng-4.1.17) (2024-02-05) - -### Chore - - - -- update container image lscr.io/linuxserver/pyload-ng to latest[@1bc743d](https://github.com/1bc743d) by renovate ([#17883](https://github.com/truecharts/charts/issues/17883)) \ No newline at end of file diff --git a/stable/pyload-ng/4.1.17/CHANGELOG.md b/stable/pyload-ng/4.1.18/CHANGELOG.md similarity index 90% rename from stable/pyload-ng/4.1.17/CHANGELOG.md rename to stable/pyload-ng/4.1.18/CHANGELOG.md index 31f8e432219..9c2d6a5527f 100644 --- a/stable/pyload-ng/4.1.17/CHANGELOG.md +++ b/stable/pyload-ng/4.1.18/CHANGELOG.md @@ -7,6 +7,15 @@ title: Changelog +## [pyload-ng-4.1.18](https://github.com/truecharts/charts/compare/pyload-ng-4.1.17...pyload-ng-4.1.18) (2024-02-12) + +### Chore + + + +- update container image lscr.io/linuxserver/pyload-ng to latest[@ede9324](https://github.com/ede9324) by renovate ([#18094](https://github.com/truecharts/charts/issues/18094)) + + ## [pyload-ng-4.1.17](https://github.com/truecharts/charts/compare/pyload-ng-4.1.16...pyload-ng-4.1.17) (2024-02-05) ### Chore @@ -88,12 +97,3 @@ title: Changelog - update container image lscr.io/linuxserver/pyload-ng to latest[@40ec7a3](https://github.com/40ec7a3) by renovate ([#17165](https://github.com/truecharts/charts/issues/17165)) - - -## [pyload-ng-4.1.8](https://github.com/truecharts/charts/compare/pyload-ng-4.1.7...pyload-ng-4.1.8) (2024-01-09) - -### Chore - - - -- update container image common to v17.2.22[@e7c9056](https://github.com/e7c9056) by renovate ([#16986](https://github.com/truecharts/charts/issues/16986)) diff --git a/stable/pyload-ng/4.1.17/Chart.yaml b/stable/pyload-ng/4.1.18/Chart.yaml similarity index 98% rename from stable/pyload-ng/4.1.17/Chart.yaml rename to stable/pyload-ng/4.1.18/Chart.yaml index 4a095406202..821f41e2dfa 100644 --- a/stable/pyload-ng/4.1.17/Chart.yaml +++ b/stable/pyload-ng/4.1.18/Chart.yaml @@ -36,4 +36,4 @@ sources: - https://github.com/truecharts/charts/tree/master/charts/stable/pyload-ng - https://fleet.linuxserver.io/image?name=linuxserver/pyload-ng type: application -version: 4.1.17 +version: 4.1.18 diff --git a/stable/pyload-ng/4.1.17/README.md b/stable/pyload-ng/4.1.18/README.md similarity index 100% rename from stable/pyload-ng/4.1.17/README.md rename to stable/pyload-ng/4.1.18/README.md diff --git a/stable/pyload-ng/4.1.18/app-changelog.md b/stable/pyload-ng/4.1.18/app-changelog.md new file mode 100644 index 00000000000..7331dc1687b --- /dev/null +++ b/stable/pyload-ng/4.1.18/app-changelog.md @@ -0,0 +1,9 @@ + + +## [pyload-ng-4.1.18](https://github.com/truecharts/charts/compare/pyload-ng-4.1.17...pyload-ng-4.1.18) (2024-02-12) + +### Chore + + + +- update container image lscr.io/linuxserver/pyload-ng to latest[@ede9324](https://github.com/ede9324) by renovate ([#18094](https://github.com/truecharts/charts/issues/18094)) \ No newline at end of file diff --git a/stable/pyload-ng/4.1.17/app-readme.md b/stable/pyload-ng/4.1.18/app-readme.md similarity index 100% rename from stable/pyload-ng/4.1.17/app-readme.md rename to stable/pyload-ng/4.1.18/app-readme.md diff --git a/stable/valheim/9.1.11/charts/common-17.2.30.tgz b/stable/pyload-ng/4.1.18/charts/common-17.2.30.tgz similarity index 100% rename from stable/valheim/9.1.11/charts/common-17.2.30.tgz rename to stable/pyload-ng/4.1.18/charts/common-17.2.30.tgz diff --git a/stable/pyload-ng/4.1.17/ix_values.yaml b/stable/pyload-ng/4.1.18/ix_values.yaml similarity index 88% rename from stable/pyload-ng/4.1.17/ix_values.yaml rename to stable/pyload-ng/4.1.18/ix_values.yaml index d1a19f94418..b3d36acae92 100644 --- a/stable/pyload-ng/4.1.17/ix_values.yaml +++ b/stable/pyload-ng/4.1.18/ix_values.yaml @@ -1,7 +1,7 @@ image: pullPolicy: IfNotPresent repository: lscr.io/linuxserver/pyload-ng - tag: latest@sha256:1bc743d6b06ab8614cdf79363e4daf312a3a06f7ca2fb6c7e90e8106e6fe5fd0 + tag: latest@sha256:ede93245b2e73f1bf3f5f8c28b9d59ca6a2559ab1c3f10b42cefeab9415f1165 persistence: config: enabled: true diff --git a/stable/pyload-ng/4.1.17/questions.yaml b/stable/pyload-ng/4.1.18/questions.yaml similarity index 99% rename from stable/pyload-ng/4.1.17/questions.yaml rename to stable/pyload-ng/4.1.18/questions.yaml index b7e178ef0db..55c8f766537 100644 --- a/stable/pyload-ng/4.1.17/questions.yaml +++ b/stable/pyload-ng/4.1.18/questions.yaml @@ -23,6 +23,8 @@ groups: description: Metrics - name: Addons description: Addon Configuration + - name: Backup Configuration + description: Configure Velero Backup Schedule - name: Advanced description: Advanced Configuration - name: Postgresql diff --git a/stable/red-discordbot/4.1.15/templates/common.yaml b/stable/pyload-ng/4.1.18/templates/common.yaml similarity index 100% rename from stable/red-discordbot/4.1.15/templates/common.yaml rename to stable/pyload-ng/4.1.18/templates/common.yaml diff --git a/stable/valheim/9.1.11/values.yaml b/stable/pyload-ng/4.1.18/values.yaml similarity index 100% rename from stable/valheim/9.1.11/values.yaml rename to stable/pyload-ng/4.1.18/values.yaml diff --git a/stable/red-discordbot/4.1.15/app-changelog.md b/stable/red-discordbot/4.1.15/app-changelog.md deleted file mode 100644 index 150733a0836..00000000000 --- a/stable/red-discordbot/4.1.15/app-changelog.md +++ /dev/null @@ -1,9 +0,0 @@ - - -## [red-discordbot-4.1.15](https://github.com/truecharts/charts/compare/red-discordbot-4.1.14...red-discordbot-4.1.15) (2024-02-05) - -### Chore - - - -- update container image phasecorex/red-discordbot to full[@040aa12](https://github.com/040aa12) by renovate ([#17891](https://github.com/truecharts/charts/issues/17891)) \ No newline at end of file diff --git a/stable/red-discordbot/4.1.15/CHANGELOG.md b/stable/red-discordbot/4.1.16/CHANGELOG.md similarity index 90% rename from stable/red-discordbot/4.1.15/CHANGELOG.md rename to stable/red-discordbot/4.1.16/CHANGELOG.md index 9eed2eb5ddc..b73046cf4ed 100644 --- a/stable/red-discordbot/4.1.15/CHANGELOG.md +++ b/stable/red-discordbot/4.1.16/CHANGELOG.md @@ -7,6 +7,15 @@ title: Changelog +## [red-discordbot-4.1.16](https://github.com/truecharts/charts/compare/red-discordbot-4.1.15...red-discordbot-4.1.16) (2024-02-12) + +### Chore + + + +- update container image phasecorex/red-discordbot to full[@1ccb339](https://github.com/1ccb339) by renovate ([#18103](https://github.com/truecharts/charts/issues/18103)) + + ## [red-discordbot-4.1.15](https://github.com/truecharts/charts/compare/red-discordbot-4.1.14...red-discordbot-4.1.15) (2024-02-05) ### Chore @@ -88,12 +97,3 @@ title: Changelog - update container image common to v17.2.22[@e7c9056](https://github.com/e7c9056) by renovate ([#16986](https://github.com/truecharts/charts/issues/16986)) - - -## [red-discordbot-4.1.6](https://github.com/truecharts/charts/compare/red-discordbot-4.1.5...red-discordbot-4.1.6) (2024-01-08) - -### Chore - - - -- update container image phasecorex/red-discordbot to full[@31e7731](https://github.com/31e7731) by renovate ([#16961](https://github.com/truecharts/charts/issues/16961)) diff --git a/stable/red-discordbot/4.1.15/Chart.yaml b/stable/red-discordbot/4.1.16/Chart.yaml similarity index 98% rename from stable/red-discordbot/4.1.15/Chart.yaml rename to stable/red-discordbot/4.1.16/Chart.yaml index 868aace1d43..1fb254e2bfb 100644 --- a/stable/red-discordbot/4.1.15/Chart.yaml +++ b/stable/red-discordbot/4.1.16/Chart.yaml @@ -34,4 +34,4 @@ sources: - https://github.com/truecharts/charts/tree/master/charts/stable/red-discordbot - https://hub.docker.com/r/phasecorex/red-discordbot type: application -version: 4.1.15 +version: 4.1.16 diff --git a/stable/red-discordbot/4.1.15/README.md b/stable/red-discordbot/4.1.16/README.md similarity index 100% rename from stable/red-discordbot/4.1.15/README.md rename to stable/red-discordbot/4.1.16/README.md diff --git a/stable/red-discordbot/4.1.16/app-changelog.md b/stable/red-discordbot/4.1.16/app-changelog.md new file mode 100644 index 00000000000..276af7fe160 --- /dev/null +++ b/stable/red-discordbot/4.1.16/app-changelog.md @@ -0,0 +1,9 @@ + + +## [red-discordbot-4.1.16](https://github.com/truecharts/charts/compare/red-discordbot-4.1.15...red-discordbot-4.1.16) (2024-02-12) + +### Chore + + + +- update container image phasecorex/red-discordbot to full[@1ccb339](https://github.com/1ccb339) by renovate ([#18103](https://github.com/truecharts/charts/issues/18103)) \ No newline at end of file diff --git a/stable/red-discordbot/4.1.15/app-readme.md b/stable/red-discordbot/4.1.16/app-readme.md similarity index 100% rename from stable/red-discordbot/4.1.15/app-readme.md rename to stable/red-discordbot/4.1.16/app-readme.md diff --git a/stable/webp-server/4.1.12/charts/common-17.2.30.tgz b/stable/red-discordbot/4.1.16/charts/common-17.2.30.tgz similarity index 100% rename from stable/webp-server/4.1.12/charts/common-17.2.30.tgz rename to stable/red-discordbot/4.1.16/charts/common-17.2.30.tgz diff --git a/stable/red-discordbot/4.1.15/ix_values.yaml b/stable/red-discordbot/4.1.16/ix_values.yaml similarity index 88% rename from stable/red-discordbot/4.1.15/ix_values.yaml rename to stable/red-discordbot/4.1.16/ix_values.yaml index 8bf246a2159..b64cbf505f8 100644 --- a/stable/red-discordbot/4.1.15/ix_values.yaml +++ b/stable/red-discordbot/4.1.16/ix_values.yaml @@ -1,7 +1,7 @@ image: pullPolicy: IfNotPresent repository: phasecorex/red-discordbot - tag: full@sha256:040aa1271ec19048d20344f730568ba8ff0b65097bcaa0d24f067c6e7515b2ac + tag: full@sha256:1ccb33962d2362d588665b89dfb3d99d8b6961a559926cb68ecd45e3cc2eaad9 persistence: data: enabled: true diff --git a/stable/red-discordbot/4.1.15/questions.yaml b/stable/red-discordbot/4.1.16/questions.yaml similarity index 99% rename from stable/red-discordbot/4.1.15/questions.yaml rename to stable/red-discordbot/4.1.16/questions.yaml index 043d49ffb9f..ca0b717a3e3 100644 --- a/stable/red-discordbot/4.1.15/questions.yaml +++ b/stable/red-discordbot/4.1.16/questions.yaml @@ -23,6 +23,8 @@ groups: description: Metrics - name: Addons description: Addon Configuration + - name: Backup Configuration + description: Configure Velero Backup Schedule - name: Advanced description: Advanced Configuration - name: Postgresql diff --git a/stable/searxng/6.1.20/templates/common.yaml b/stable/red-discordbot/4.1.16/templates/common.yaml similarity index 100% rename from stable/searxng/6.1.20/templates/common.yaml rename to stable/red-discordbot/4.1.16/templates/common.yaml diff --git a/stable/webp-server/4.1.12/values.yaml b/stable/red-discordbot/4.1.16/values.yaml similarity index 100% rename from stable/webp-server/4.1.12/values.yaml rename to stable/red-discordbot/4.1.16/values.yaml diff --git a/stable/redmine/10.1.15/CHANGELOG.md b/stable/redmine/10.1.15/CHANGELOG.md new file mode 100644 index 00000000000..b6632505cf5 --- /dev/null +++ b/stable/redmine/10.1.15/CHANGELOG.md @@ -0,0 +1,99 @@ +--- +title: Changelog +--- + +**Important:** +*for the complete changelog, please refer to the website* + + + +## [redmine-10.1.15](https://github.com/truecharts/charts/compare/redmine-10.1.14...redmine-10.1.15) (2024-02-12) + +### Chore + + + +- update container image redmine to 5.1.1[@52c629e](https://github.com/52c629e) by renovate ([#18104](https://github.com/truecharts/charts/issues/18104)) + + +## [redmine-10.1.14](https://github.com/truecharts/charts/compare/redmine-10.1.13...redmine-10.1.14) (2024-02-05) + +### Chore + + + +- update container image redmine to 5.1.1[@d3941ff](https://github.com/d3941ff) by renovate ([#17893](https://github.com/truecharts/charts/issues/17893)) + + +## [redmine-10.1.13](https://github.com/truecharts/charts/compare/redmine-10.1.12...redmine-10.1.13) (2024-02-03) + +### Chore + + + +- update container image common to v17.2.30[@19ad5ec](https://github.com/19ad5ec) by renovate ([#17804](https://github.com/truecharts/charts/issues/17804)) + + +## [redmine-10.1.12](https://github.com/truecharts/charts/compare/redmine-10.1.11...redmine-10.1.12) (2024-01-26) + +### Chore + + + +- update container image common to v17.2.29[@d7c41a3](https://github.com/d7c41a3) by renovate ([#17545](https://github.com/truecharts/charts/issues/17545)) + + +## [redmine-10.1.11](https://github.com/truecharts/charts/compare/redmine-10.1.10...redmine-10.1.11) (2024-01-21) + +### Chore + + + +- update container image common to v17.2.28[@918b4c5](https://github.com/918b4c5) by renovate ([#17478](https://github.com/truecharts/charts/issues/17478)) + + +## [redmine-10.1.10](https://github.com/truecharts/charts/compare/redmine-10.1.9...redmine-10.1.10) (2024-01-21) + +### Chore + + + +- update container image common to v17.2.26[@24c98f7](https://github.com/24c98f7) by renovate ([#17409](https://github.com/truecharts/charts/issues/17409)) + + +## [redmine-10.1.9](https://github.com/truecharts/charts/compare/redmine-10.1.8...redmine-10.1.9) (2024-01-21) + +### Chore + + + +- update metadata in chart.yaml ([#17457](https://github.com/truecharts/charts/issues/17457)) + + +## [redmine-10.1.8](https://github.com/truecharts/charts/compare/redmine-10.1.7...redmine-10.1.8) (2024-01-21) + +### Chore + + + +- update container image redmine to 5.1.1[@08a411f](https://github.com/08a411f) by renovate ([#17393](https://github.com/truecharts/charts/issues/17393)) + + +## [redmine-10.1.7](https://github.com/truecharts/charts/compare/redmine-10.1.6...redmine-10.1.7) (2024-01-14) + +### Chore + + + +- update container image redmine to 5.1.1[@f5f56b0](https://github.com/f5f56b0) by renovate ([#17175](https://github.com/truecharts/charts/issues/17175)) + + + + +## [redmine-10.1.6](https://github.com/truecharts/charts/compare/redmine-10.1.5...redmine-10.1.6) (2024-01-09) + +### Chore + + + +- update container image common to v17.2.22[@e7c9056](https://github.com/e7c9056) by renovate ([#16986](https://github.com/truecharts/charts/issues/16986)) diff --git a/stable/redmine/10.1.15/Chart.yaml b/stable/redmine/10.1.15/Chart.yaml new file mode 100644 index 00000000000..700c4e80522 --- /dev/null +++ b/stable/redmine/10.1.15/Chart.yaml @@ -0,0 +1,40 @@ +annotations: + max_scale_version: 23.10.2 + min_scale_version: 23.10.0 + truecharts.org/SCALE-support: "true" + truecharts.org/category: productivity + truecharts.org/max_helm_version: "3.14" + truecharts.org/min_helm_version: "3.12" + truecharts.org/train: stable +apiVersion: v2 +appVersion: 5.1.1 +dependencies: + - name: common + version: 17.2.30 + repository: oci://tccr.io/truecharts + condition: "" + alias: "" + tags: [] + import-values: [] +deprecated: false +description: Redmine is a flexible project management web application written using Ruby on Rails framework. +home: https://truecharts.org/charts/stable/redmine +icon: https://truecharts.org/img/hotlink-ok/chart-icons/redmine.png +keywords: + - project + - management + - time + - tracking + - ticket +kubeVersion: ">=1.24.0-0" +maintainers: + - name: TrueCharts + email: info@truecharts.org + url: https://truecharts.org +name: redmine +sources: + - https://github.com/redmine/redmine + - https://github.com/truecharts/charts/tree/master/charts/stable/redmine + - https://hub.docker.com/_/redmine +type: application +version: 10.1.15 diff --git a/stable/redmine/10.1.15/README.md b/stable/redmine/10.1.15/README.md new file mode 100644 index 00000000000..c561d358c4a --- /dev/null +++ b/stable/redmine/10.1.15/README.md @@ -0,0 +1,28 @@ +--- +title: README +--- + +## General Info + +TrueCharts can be installed as both _normal_ Helm Charts or as Apps on TrueNAS SCALE. +However only installations using the TrueNAS SCALE Apps system are supported. + +For more information about this App, please check the docs on the TrueCharts [website](https://truecharts.org/charts/stable/redmine) + +**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)** + +## Support + +- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/manual/SCALE/guides/scale-intro). +- See the [Website](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/charts/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/stable/redmine/10.1.15/app-changelog.md b/stable/redmine/10.1.15/app-changelog.md new file mode 100644 index 00000000000..e36a0ebcc6a --- /dev/null +++ b/stable/redmine/10.1.15/app-changelog.md @@ -0,0 +1,9 @@ + + +## [redmine-10.1.15](https://github.com/truecharts/charts/compare/redmine-10.1.14...redmine-10.1.15) (2024-02-12) + +### Chore + + + +- update container image redmine to 5.1.1[@52c629e](https://github.com/52c629e) by renovate ([#18104](https://github.com/truecharts/charts/issues/18104)) \ No newline at end of file diff --git a/stable/redmine/10.1.15/app-readme.md b/stable/redmine/10.1.15/app-readme.md new file mode 100644 index 00000000000..e13bebcd0d2 --- /dev/null +++ b/stable/redmine/10.1.15/app-readme.md @@ -0,0 +1,8 @@ +Redmine is a flexible project management web application written using Ruby on Rails framework. + +This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/charts/stable/redmine](https://truecharts.org/charts/stable/redmine) + +--- + +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! diff --git a/stable/znc/8.1.16/charts/common-17.2.30.tgz b/stable/redmine/10.1.15/charts/common-17.2.30.tgz similarity index 100% rename from stable/znc/8.1.16/charts/common-17.2.30.tgz rename to stable/redmine/10.1.15/charts/common-17.2.30.tgz diff --git a/stable/redmine/10.1.15/ix_values.yaml b/stable/redmine/10.1.15/ix_values.yaml new file mode 100644 index 00000000000..7ff698d36d9 --- /dev/null +++ b/stable/redmine/10.1.15/ix_values.yaml @@ -0,0 +1,57 @@ +image: + repository: redmine + pullPolicy: IfNotPresent + tag: 5.1.1@sha256:52c629e6e7e236fb8bd6305bd0a0dd692e907b462df0fc4948633dbde81440fa +redmine: + plugins_migrate: true + no_db_migrate: false +service: + main: + ports: + main: + port: 10171 + targetPort: 3000 +persistence: + data: + enabled: true + mountPath: "/usr/src/redmine/files" +# Enabled postgres +cnpg: + main: + enabled: true + user: redmine + database: redmine +portal: + open: + enabled: true +securityContext: + container: + readOnlyRootFilesystem: false + runAsUser: 999 + runAsGroup: 999 + pod: + fsGroup: 999 +workload: + main: + podSpec: + containers: + main: + env: + REDMINE_DB_DATABASE: "{{ .Values.cnpg.main.database }}" + REDMINE_DB_USERNAME: "{{ .Values.cnpg.main.user }}" + REDMINE_DB_PORT: "5432" + # Anything but empty means true, empty means false + REDMINE_NO_DB_MIGRATE: '{{ ternary "true" "" .Values.redmine.no_db_migrate }}' + REDMINE_PLUGINS_MIGRATE: '{{ ternary "true" "" .Values.redmine.plugins_migrate }}' + REDMINE_DB_PASSWORD: + secretKeyRef: + name: cnpg-main-user + key: password + REDMINE_DB_POSTGRES: + secretKeyRef: + name: cnpg-main-urls + key: host + REDMINE_SECRET_KEY_BASE: + secretKeyRef: + name: secrets + key: REDMINE_SECRET_KEY_BASE diff --git a/stable/redmine/10.1.15/questions.yaml b/stable/redmine/10.1.15/questions.yaml new file mode 100644 index 00000000000..32d8f337e45 --- /dev/null +++ b/stable/redmine/10.1.15/questions.yaml @@ -0,0 +1,3309 @@ +groups: + - name: Container Image + description: Image to be used for container + - name: General Settings + description: General Deployment Settings + - name: Workload Settings + description: Workload Settings + - 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: Backup Configuration + description: Configure Velero Backup Schedule + - name: Advanced + description: Advanced Configuration + - name: Postgresql + description: Postgresql + - name: Documentation + description: Documentation +portals: + open: + protocols: + - "$kubernetes-resource_configmap_tcportal-open_protocol" + host: + - "$kubernetes-resource_configmap_tcportal-open_host" + ports: + - "$kubernetes-resource_configmap_tcportal-open_port" +questions: + - variable: global + group: General Settings + label: "Global Settings" + schema: + additional_attrs: true + type: dict + attrs: + - variable: stopAll + label: Stop All + description: "Stops All Running pods and hibernates cnpg" + schema: + type: boolean + default: false + - variable: workload + group: "Workload Settings" + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type (Advanced) + schema: + type: string + default: Deployment + enum: + - value: Deployment + description: Deployment + - value: DaemonSet + description: DaemonSet + - variable: replicas + label: Replicas (Advanced) + description: Set the number of Replicas + schema: + type: int + show_if: [["type", "!=", "DaemonSet"]] + default: 1 + - variable: podSpec + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: containers + label: Containers + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: Main Container + schema: + additional_attrs: true + type: dict + attrs: + - 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..." + 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: extraArgs + label: Extra Args + schema: + type: list + default: [] + items: + - variable: arg + label: Arg + schema: + type: string + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: command + label: Command + schema: + type: list + default: [] + items: + - variable: param + label: Param + schema: + type: string + - variable: redmine + group: "App Configuration" + label: "Redmine Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: plugins_migrate + label: "Plugins Migrate" + description: "Set to true and the migrate script will be automatically run on every container start" + schema: + type: boolean + default: true + - variable: no_db_migrate + label: "No DB Migrate" + description: "Set to true and the migrate script will NOT automatically run on container start." + schema: + type: boolean + default: false + - variable: TZ + label: Timezone + group: "General Settings" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: podOptions + group: "General Settings" + label: "Global Pod Options (Advanced)" + schema: + additional_attrs: true + type: dict + attrs: + - variable: expertPodOpts + label: "Expert - Pod Options" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + label: "Host Networking" + schema: + type: boolean + default: false + - variable: dnsConfig + label: "DNS Configuration" + schema: + type: dict + additional_attrs: true + attrs: + - variable: options + label: "Options" + schema: + type: list + default: [{"name": "ndots", "value": "1"}] + items: + - variable: optionsEntry + label: "Option Entry" + schema: + type: dict + additional_attrs: true + attrs: + - variable: name + label: "Name" + schema: + type: string + required: true + - variable: value + label: "Value" + schema: + type: string + - variable: nameservers + label: "Nameservers" + schema: + type: list + default: [] + items: + - variable: nsEntry + label: "Nameserver Entry" + schema: + type: string + required: true + - variable: searches + label: "Searches" + schema: + type: list + default: [] + items: + - variable: searchEntry + label: "Search Entry" + schema: + type: string + required: true + + - variable: imagePullSecretList + group: "General Settings" + label: "Image Pull Secrets" + schema: + type: list + default: [] + items: + - variable: pullsecretentry + label: "Pull Secret" + schema: + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: true + - variable: data + label: Data + schema: + type: dict + additional_attrs: true + attrs: + - variable: registry + label: "Registry" + schema: + type: string + required: true + default: "https://index.docker.io/v1/" + - variable: username + label: "Username" + schema: + type: string + required: true + default: "" + - variable: password + label: "Password" + schema: + type: string + required: true + private: true + default: "" + - variable: email + label: "Email" + schema: + type: string + required: true + default: "" + - 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) + - 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: 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: 10171 + required: true + - variable: serviceexpert + group: Networking and Services + label: Show Expert Config + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: scaleExternalInterface + description: Add External Interfaces + label: Add external Interfaces + group: Networking + schema: + type: list + items: + - variable: interfaceConfiguration + description: Interface Configuration + label: Interface Configuration + schema: + additional_attrs: true + 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: + additional_attrs: true + 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 + - variable: staticIPConfigurations + label: Static IP Addresses + schema: + type: list + show_if: [["type", "=", "static"]] + items: + - variable: staticIP + label: Static IP + schema: + type: ipaddr + cidr: true + - variable: staticRoutes + label: Static Routes + schema: + type: list + show_if: [["type", "=", "static"]] + 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: 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: data + label: "App Config 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: pvc + enum: + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: emptyDir + description: emptyDir + - value: nfs + description: NFS Share + - value: iscsi + description: iSCSI 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: iscsi + label: iSCSI Options + schema: + show_if: [["type", "=", "iscsi"]] + type: dict + additional_attrs: true + attrs: + - variable: targetPortal + label: targetPortal + schema: + type: string + required: true + default: "" + - variable: iqn + label: iqn + schema: + type: string + required: true + default: "" + - variable: lun + label: lun + schema: + type: int + default: 0 + - variable: authSession + label: authSession + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: authDiscovery + label: authDiscovery + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + + - variable: autoPermissions + label: Automatic Permissions Configuration + description: Automatically set permissions + schema: + show_if: [["type", "!=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: chown + label: Run CHOWN + description: | + It will run CHOWN on the path with the given fsGroup + schema: + type: boolean + default: false + - variable: chmod + label: Run CHMOD + description: | + It will run CHMOD on the path with the given value
+ Format should be 3 digits, e.g. 770 + schema: + type: string + valid_chars: '[0-9]{3}' + default: "" + - variable: recursive + label: Recursive + description: | + It will run CHOWN and CHMOD recursively + schema: + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - 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 (Do NOT REDUCE after installation) + description: This value can ONLY be INCREASED after the installation + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: storageClass + label: 'storageClass (Advanced)' + description: 'sets the storageClass to something other than iX default. Only for advanced usecases!' + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "" + - variable: static + label: 'Static Fixed PVC Bindings (Experimental)' + description: Link a PVC to a specific storage location + schema: + show_if: [["type", "=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: mode + label: mode + description: | + disabled: use normal dynamic PVCs + smb: connect to an SMB share + nfs: connect to an NFS share + schema: + type: string + default: "disabled" + enum: + - value: disabled + description: disabled + - value: smb + description: smb + - value: nfs + description: nfs + - variable: server + label: Server + description: server to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "myserver" + - variable: share + label: Share + description: share to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "/myshare" + - variable: user + label: User + description: connecting user + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "myuser" + - variable: domain + label: Domain + description: user domain + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: password + label: Password + description: connecting password + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: volumeSnapshots + label: 'Volume Snapshots (Experimental)' + description: Add an entry to the list to force creation of a volumeSnapshot of this PVC + schema: + show_if: [["type", "=", "pvc"]] + type: list + default: [] + items: + - variable: volumeSnapshotEntry + label: Custom volumeSnapshot + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: 'WARNING: renaming this, means deletion of the snapshot with the old name!' + schema: + type: string + default: "mysnapshot" + required: true + - variable: volumeSnapshotClassName + label: 'volumeSnapshot Class Name (Advanced)' + description: For use with PVCs using a non-default storageClass + schema: + type: string + default: "" + - 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: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: hostPath + enum: + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: emptyDir + description: emptyDir + - 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: iscsi + label: iSCSI Options + schema: + show_if: [["type", "=", "iscsi"]] + type: dict + additional_attrs: true + attrs: + - variable: targetPortal + label: targetPortal + schema: + type: string + required: true + default: "" + - variable: iqn + label: iqn + schema: + type: string + required: true + default: "" + - variable: lun + label: lun + schema: + type: int + default: 0 + - variable: authSession + label: authSession + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: authDiscovery + label: authDiscovery + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: autoPermissions + label: Automatic Permissions Configuration + description: Automatically set permissions + schema: + show_if: [["type", "!=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: chown + label: Run CHOWN + description: | + It will run CHOWN on the path with the given fsGroup + schema: + type: boolean + default: false + - variable: chmod + label: Run CHMOD + description: | + It will run CHMOD on the path with the given value
+ Format should be 3 digits, e.g. 770 + schema: + type: string + valid_chars: '[0-9]{3}' + default: "" + - variable: recursive + label: Recursive + description: | + It will run CHOWN and CHMOD recursively + schema: + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - 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: storageClass + label: 'storageClass (Advanced)' + description: 'sets the storageClass to something other than iX default. Only for advanced usecases!' + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "" + - variable: static + label: 'Static Fixed PVC Bindings (Experimental)' + description: Link a PVC to a specific storage location + schema: + show_if: [["type", "=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: mode + label: mode + description: | + disabled: use normal dynamic PVCs + smb: connect to an SMB share + nfs: connect to an NFS share + schema: + type: string + default: "disabled" + enum: + - value: "disabled" + description: disabled + - value: smb + description: smb + - value: nfs + description: nfs + - variable: server + label: Server + description: server to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "myserver" + - variable: share + label: Share + description: share to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "/myshare" + - variable: user + label: User + description: connecting user + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "myuser" + - variable: domain + label: Domain + description: user domain + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: password + label: Password + description: connecting password + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: volumeSnapshots + label: 'Volume Snapshots (Experimental)' + description: Add an entry to the list to force creation of a volumeSnapshot of this PVC + schema: + show_if: [["type", "=", "pvc"]] + type: list + default: [] + items: + - variable: volumeSnapshotEntry + label: Custom volumeSnapshot + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: 'WARNING: renaming this, means deletion of the snapshot with the old name!' + schema: + type: string + default: "mysnapshot" + required: true + - variable: volumeSnapshotClassName + label: 'volumeSnapshot Class Name (Advanced)' + description: For use with PVCs using a non-default storageClass + schema: + type: string + default: "" + - 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: [{path: "/", pathType: "Prefix"}] + 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: integrations + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: traefik + label: Traefik + description: Connect ingress with Traefik + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: allowCors + label: 'Allow Cross Origin Requests (advanced)' + schema: + type: boolean + default: false + show_if: [["enabled", "=", true]] + - variable: entrypoints + label: Entrypoints + schema: + type: list + default: ["websecure"] + show_if: [["enabled", "=", true]] + items: + - variable: entrypoint + label: Entrypoint + schema: + type: string + - variable: middlewares + label: Middlewares + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: middleware + label: Middleware + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true + - variable: namespace + label: 'namespace (optional)' + schema: + type: string + default: "" + - variable: certManager + label: certManager + description: Connect ingress with certManager + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: certificateIssuer + label: certificateIssuer + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: homepage + label: Homepage + description: Connect ingress with Homepage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: name + label: Name (Optional) + description: Defaults to chart name + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: description + label: Description (Optional) + description: Defaults to chart description + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: icon + label: Icon (Optional) + description: Defaults to chart icon + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: group + label: Group + schema: + type: string + required: true + default: "default" + show_if: [["enabled", "=", true]] + - variable: widget + label: Widget Settings + schema: + type: dict + additional_attrs: true + show_if: [["enabled", "=", true]] + attrs: + - variable: enabled + label: Enable Widget + description: When disabled all widget annotations are skipped. + schema: + type: boolean + default: true + - variable: custom + label: Options + schema: + type: dict + additional_attrs: true + attrs: + - variable: key + label: API-key (key) + schema: + type: string + default: "" + - variable: customkv + label: Custom Options + schema: + type: list + default: [] + items: + - variable: option + label: Option + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + default: "" + required: true + - variable: value + label: Value + schema: + type: string + default: "" + required: true + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + - variable: ingressClassName + label: (Advanced/Optional) IngressClass Name + schema: + type: string + show_if: [["advanced", "=", true]] + default: "" + - variable: tls + label: TLS-Settings + schema: + type: list + show_if: [["advanced", "=", true]] + 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: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: 'Use Custom Certificate Secret (Advanced)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: string + default: "" + - variable: scaleCert + label: 'Use TrueNAS SCALE Certificate (Deprecated)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - 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: 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: overrideService + 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: [] + show_if: [["certificateIssuer", "=", ""]] + 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: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your Cert-Manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: scaleCert + label: Use TrueNAS SCALE Certificate (Deprecated) + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: Use Custom Secret (Advanced) + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: integrations + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: traefik + label: Traefik + description: Connect ingress with Traefik + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: allowCors + label: "Allow Cross Origin Requests" + schema: + type: boolean + default: false + show_if: [["enabled", "=", true]] + - variable: entrypoints + label: Entrypoints + schema: + type: list + default: ["websecure"] + show_if: [["enabled", "=", true]] + items: + - variable: entrypoint + label: Entrypoint + schema: + type: string + - variable: middlewares + label: Middlewares + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: middleware + label: Middleware + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true + - variable: namespace + label: namespace + schema: + type: string + default: "" + - variable: certManager + label: certManager + description: Connect ingress with certManager + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: certificateIssuer + label: certificateIssuer + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: homepage + label: Homepage + description: Connect ingress with Homepage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: name + label: Name + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: description + label: Description + description: defaults to chart description + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: group + label: Group + schema: + type: string + required: true + default: "default" + show_if: [["enabled", "=", true]] + - variable: securityContext + group: Security and Permissions + label: Security Context + schema: + additional_attrs: true + type: dict + attrs: + - variable: container + label: Container + schema: + additional_attrs: true + type: dict + attrs: + # Settings from questions.yaml get appended here on a per-app basis + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 999 + - variable: runAsGroup + label: "runAsGroup" + description: "The groupID this App of the user running the application" + schema: + type: int + default: 999 + # Settings from questions.yaml get appended here on a per-app basis + - 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 + show_if: [["runAsUser", "=", 0]] + 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: "0022" + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: pod + label: Pod + schema: + additional_attrs: true + type: dict + attrs: + - 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 + # Settings from questions.yaml get appended here on a per-app basis + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 999 + - variable: resources + group: Resources and Devices + label: "Resource Limits" + 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/manual/SCALE/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/manual/SCALE/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 + hidden: true + attrs: + - variable: cpu + label: CPU + description: "1000m means 1 hyperthread. Detailed info: https://truecharts.org/manual/SCALE/validation" + schema: + type: string + default: 10m + hidden: true + 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/manual/SCALE/validation" + schema: + type: string + default: 50Mi + hidden: true + 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: device + 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" + - variable: scaleGPU + label: GPU Configuration + group: Resources and Devices + schema: + type: list + default: [] + items: + - variable: scaleGPUEntry + label: GPU + schema: + additional_attrs: true + type: dict + attrs: + # Specify GPU configuration + - variable: gpu + label: Select GPU + schema: + additional_attrs: true + type: dict + $ref: + - "definitions/gpuConfiguration" + attrs: [] + - variable: workaround + label: "Workaround" + schema: + type: string + default: workaround + hidden: true + - variable: cnpg + group: Postgresql + label: "CloudNative-PG (CNPG)" + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "Main Postgresql Database" + schema: + additional_attrs: true + type: dict + attrs: + - variable: hibernate + label: Hibernate + description: "enable to safely hibernate and shutdown the postgresql cluster" + schema: + type: boolean + default: false + - variable: mode + label: Mode + description: 'Cluster mode of operation. Available modes: standalone - default mode. Creates new or updates an existing CNPG cluster. recovery - Same as standalone but creates a cluster from a backup, object store or via pg_basebackup replica - Creates a replica cluster from an existing CNPG cluster. # TODO.' + schema: + type: string + default: "standalone" + enum: + - value: standalone + description: standalone + - value: replica + description: replica + - value: recovery + description: recovery + - variable: cluster + label: "Cluster Settings" + schema: + additional_attrs: true + type: dict + attrs: + - variable: instances + label: Instances + schema: + type: int + default: 1 + - variable: singleNode + label: singleNode + schema: + type: boolean + default: true + hidden: true + - variable: storage + label: "Storage" + schema: + additional_attrs: true + type: dict + attrs: + - variable: size + label: Size + schema: + type: string + default: "256Gi" + - variable: walStorage + label: "WAL Storage" + schema: + additional_attrs: true + type: dict + attrs: + - variable: size + label: Size + schema: + type: string + default: "256Gi" + - variable: monitoring + label: "Monitoring Settings" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enablePodMonitor + label: "enablePodMonitor" + schema: + type: boolean + default: true + - variable: disableDefaultQueries + label: "disableDefaultQueries" + schema: + type: boolean + default: false + - variable: pooler + label: "Pooler Settings" + schema: + additional_attrs: true + type: dict + attrs: + - variable: instances + label: Instances + schema: + type: int + default: 1 + - variable: createRO + label: "Create ReadOnly Instance" + schema: + type: boolean + default: false + - variable: recovery + label: "Recovery Settings (Experimental)" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + - variable: endpointURL + label: "endpointURL" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "" + - variable: method + label: "method" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "object_store" + - variable: backupName + label: "backupName" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "" + - variable: provider + label: "provider" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "s3" + enum: + - value: s3 + description: S3 + - value: azure + description: Azure + - value: google + description: Google + - variable: s3 + label: "s3" + schema: + additional_attrs: true + type: dict + show_if: [["provider", "=", "s3"]] + attrs: + - variable: region + label: "region" + schema: + type: string + default: "" + - variable: bucket + label: "bucket" + schema: + type: string + default: "" + - variable: path + label: "path" + schema: + type: string + default: "/" + - variable: accessKey + label: "accessKey" + schema: + type: string + default: "" + - variable: secretKey + label: "secretKey" + schema: + type: string + default: "" + - variable: azure + label: "azure (EXTREMELY EXPERIMENTAL)" + schema: + additional_attrs: true + type: dict + show_if: [["provider", "=", "azure"]] + attrs: + - variable: path + label: "path" + schema: + type: string + default: "/" + - variable: connectionString + label: "connectionString" + schema: + type: string + default: "" + - variable: storageAccount + label: "storageAccount" + schema: + type: string + default: "" + - variable: storageKey + label: "storageKey" + schema: + type: string + default: "" + - variable: storageSasToken + label: "storageSasToken" + schema: + type: string + default: "" + - variable: containerName + label: "containerName" + schema: + type: string + default: "" + - variable: serviceName + label: "serviceName" + schema: + type: string + default: "blob" + - variable: inheritFromAzureAD + label: "inheritFromAzureAD" + schema: + type: boolean + default: false + - variable: google + label: "google (EXTREMELY EXPERIMENTAL)" + schema: + additional_attrs: true + type: dict + show_if: [["provider", "=", "google"]] + attrs: + - variable: path + label: "path" + schema: + type: string + default: "/" + - variable: bucket + label: "bucket" + schema: + type: string + default: "" + - variable: gkeEnvironment + label: "gkeEnvironment" + schema: + type: string + default: "" + - variable: applicationCredentials + label: "applicationCredentials" + schema: + type: string + default: "" + - variable: backups + label: "Backup Settings (Experimental)" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + - variable: endpointURL + label: "endpointURL" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "" + - variable: destinationPath + label: "destinationPath" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "" + - variable: retentionPolicy + label: "retentionPolicy" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "30d" + - variable: provider + label: "provider" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "s3" + enum: + - value: s3 + description: S3 + - value: azure + description: Azure + - value: google + description: Google + - variable: s3 + label: "s3" + schema: + additional_attrs: true + type: dict + show_if: [["provider", "=", "s3"]] + attrs: + - variable: region + label: "region" + schema: + type: string + default: "" + - variable: bucket + label: "bucket" + schema: + type: string + default: "" + - variable: path + label: "path" + schema: + type: string + default: "/" + - variable: accessKey + label: "accessKey" + schema: + type: string + default: "" + - variable: secretKey + label: "secretKey" + schema: + type: string + default: "" + - variable: azure + label: "azure (EXTREMELY EXPERIMENTAL)" + schema: + additional_attrs: true + type: dict + show_if: [["provider", "=", "azure"]] + attrs: + - variable: path + label: "path" + schema: + type: string + default: "/" + - variable: connectionString + label: "connectionString" + schema: + type: string + default: "" + - variable: storageAccount + label: "storageAccount" + schema: + type: string + default: "" + - variable: storageKey + label: "storageKey" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "" + - variable: storageSasToken + label: "storageSasToken" + schema: + type: string + default: "" + - variable: containerName + label: "containerName" + schema: + type: string + default: "" + - variable: serviceName + label: "serviceName" + schema: + type: string + default: "blob" + - variable: inheritFromAzureAD + label: "inheritFromAzureAD" + schema: + type: boolean + default: false + - variable: google + label: "google (EXTREMELY EXPERIMENTAL)" + schema: + additional_attrs: true + type: dict + show_if: [["provider", "=", "google"]] + attrs: + - variable: path + label: "path" + schema: + type: string + default: "/" + - variable: bucket + label: "bucket" + schema: + type: string + default: "" + - variable: gkeEnvironment + label: "gkeEnvironment" + schema: + type: string + default: "" + - variable: applicationCredentials + label: "applicationCredentials" + schema: + type: string + default: "" + - variable: scheduledBackups + label: ScheduledBackups + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: backupschedule + label: BackupSchedule + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "daily-backup" + required: true + - variable: schedule + label: schedule + schema: + type: string + required: true + default: "0 0 0 * * *" + - variable: backupOwnerReference + label: backupOwnerReference + schema: + type: string + required: true + default: "self" + - variable: immediate + label: immediate + schema: + type: boolean + default: false + - variable: suspend + label: suspend + schema: + type: boolean + default: false + - variable: manualBackups + label: manualBackups + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: backup + label: Backup + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true +# - 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: 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: 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: ingress + label: "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: [{path: "/", pathType: "Prefix"}] + 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: integrations + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: traefik + label: Traefik + description: Connect ingress with Traefik + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: allowCors + label: 'Allow Cross Origin Requests (advanced)' + schema: + type: boolean + default: false + show_if: [["enabled", "=", true]] + - variable: entrypoints + label: Entrypoints + schema: + type: list + default: ["websecure"] + show_if: [["enabled", "=", true]] + items: + - variable: entrypoint + label: Entrypoint + schema: + type: string + - variable: middlewares + label: Middlewares + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: middleware + label: Middleware + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true + - variable: namespace + label: 'namespace (optional)' + schema: + type: string + default: "" + - variable: certManager + label: certManager + description: Connect ingress with certManager + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: certificateIssuer + label: certificateIssuer + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + - variable: ingressClassName + label: (Advanced/Optional) IngressClass Name + schema: + type: string + show_if: [["advanced", "=", true]] + default: "" + - variable: tls + label: TLS-Settings + schema: + type: list + show_if: [["advanced", "=", true]] + 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: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: 'Use Custom Certificate Secret (Advanced)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: string + default: "" + - variable: scaleCert + label: 'Use TrueNAS SCALE Certificate (Deprecated)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - 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: 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: gluetun + description: Gluetun + - value: tailscale + description: Tailscale + - value: openvpn + description: OpenVPN (Deprecated) + - value: wireguard + description: Wireguard (Deprecated) + - variable: openvpn + label: OpenVPN Settings + schema: + additional_attrs: true + 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 + show_if: [["username", "!=", ""]] + default: "" + required: true + - variable: tailscale + label: Tailscale Settings + schema: + additional_attrs: true + 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: auth_once + label: Auth Once + description: Only attempt to log in if not already logged in. + schema: + type: boolean + default: true + - 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: The address on which to listen for SOCKS5 proxying into the tailscale net. + schema: + type: string + default: "" + - variable: outbound_http_proxy_listen + label: Outbound HTTP Proxy Listen + description: The address on which to listen for HTTP proxying into the tailscale net. + 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: string + show_if: [["type", "!=", "disabled"]] + 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 + max_length: 10240 + - 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/stable/redmine/10.1.15/templates/NOTES.txt b/stable/redmine/10.1.15/templates/NOTES.txt new file mode 100644 index 00000000000..efcb74cb772 --- /dev/null +++ b/stable/redmine/10.1.15/templates/NOTES.txt @@ -0,0 +1 @@ +{{- include "tc.v1.common.lib.chart.notes" $ -}} diff --git a/stable/redmine/10.1.15/templates/_secrets.tpl b/stable/redmine/10.1.15/templates/_secrets.tpl new file mode 100644 index 00000000000..12c4b69e7a6 --- /dev/null +++ b/stable/redmine/10.1.15/templates/_secrets.tpl @@ -0,0 +1,14 @@ +{{/* Define the secrets */}} +{{- define "redmine.secrets" -}} +{{- $secretName := (printf "%s-redmine-secrets" (include "tc.v1.common.lib.chart.names.fullname" $)) }} +{{- $redmineprevious := lookup "v1" "Secret" .Release.Namespace $secretName }} +enabled: true +data: + {{- if $redmineprevious }} + REDMINE_SECRET_KEY_BASE: {{ index $redmineprevious.data "REDMINE_SECRET_KEY_BASE" | b64dec }} + {{- else }} + {{- $secret_key_base := randAlphaNum 80 }} + REDMINE_SECRET_KEY_BASE: {{ $secret_key_base }} + {{- end }} + +{{- end -}} diff --git a/stable/redmine/10.1.15/templates/common.yaml b/stable/redmine/10.1.15/templates/common.yaml new file mode 100644 index 00000000000..4cc3e59066d --- /dev/null +++ b/stable/redmine/10.1.15/templates/common.yaml @@ -0,0 +1,11 @@ +{{/* Make sure all variables are set properly */}} +{{- include "tc.v1.common.loader.init" . }} + +{{/* Render secrets for redmine */}} +{{- $secrets := include "redmine.secrets" . | fromYaml -}} +{{- if $secrets -}} + {{- $_ := set .Values.secret "secrets" $secrets -}} +{{- end -}} + +{{/* Render the templates */}} +{{ include "tc.v1.common.loader.apply" . }} diff --git a/stable/znc/8.1.16/values.yaml b/stable/redmine/10.1.15/values.yaml similarity index 100% rename from stable/znc/8.1.16/values.yaml rename to stable/redmine/10.1.15/values.yaml diff --git a/stable/searxng/6.1.20/app-changelog.md b/stable/searxng/6.1.20/app-changelog.md deleted file mode 100644 index c2c93df01b8..00000000000 --- a/stable/searxng/6.1.20/app-changelog.md +++ /dev/null @@ -1,9 +0,0 @@ - - -## [searxng-6.1.20](https://github.com/truecharts/charts/compare/searxng-6.1.19...searxng-6.1.20) (2024-02-05) - -### Chore - - - -- update container image searxng/searxng to latest[@1d508f2](https://github.com/1d508f2) by renovate ([#17896](https://github.com/truecharts/charts/issues/17896)) \ No newline at end of file diff --git a/stable/searxng/6.1.20/CHANGELOG.md b/stable/searxng/6.1.21/CHANGELOG.md similarity index 90% rename from stable/searxng/6.1.20/CHANGELOG.md rename to stable/searxng/6.1.21/CHANGELOG.md index 5975008bb05..460000e1036 100644 --- a/stable/searxng/6.1.20/CHANGELOG.md +++ b/stable/searxng/6.1.21/CHANGELOG.md @@ -7,6 +7,15 @@ title: Changelog +## [searxng-6.1.21](https://github.com/truecharts/charts/compare/searxng-6.1.20...searxng-6.1.21) (2024-02-12) + +### Chore + + + +- update container image searxng/searxng to latest[@f396210](https://github.com/f396210) by renovate ([#18106](https://github.com/truecharts/charts/issues/18106)) + + ## [searxng-6.1.20](https://github.com/truecharts/charts/compare/searxng-6.1.19...searxng-6.1.20) (2024-02-05) ### Chore @@ -88,12 +97,3 @@ title: Changelog - update container image searxng/searxng to latest[@13d7d09](https://github.com/13d7d09) by renovate ([#17395](https://github.com/truecharts/charts/issues/17395)) -## [searxng-6.1.11](https://github.com/truecharts/charts/compare/searxng-6.1.10...searxng-6.1.11) (2024-01-15) - -### Chore - - - -- update container image searxng/searxng to latest[@c409c53](https://github.com/c409c53) by renovate ([#17279](https://github.com/truecharts/charts/issues/17279)) - - diff --git a/stable/searxng/6.1.20/Chart.yaml b/stable/searxng/6.1.21/Chart.yaml similarity index 98% rename from stable/searxng/6.1.20/Chart.yaml rename to stable/searxng/6.1.21/Chart.yaml index bb80f009f56..f42ee7653e0 100644 --- a/stable/searxng/6.1.20/Chart.yaml +++ b/stable/searxng/6.1.21/Chart.yaml @@ -35,4 +35,4 @@ sources: - https://github.com/truecharts/charts/tree/master/charts/stable/searxng - https://hub.docker.com/r/searxng/searxng type: application -version: 6.1.20 +version: 6.1.21 diff --git a/stable/searxng/6.1.20/README.md b/stable/searxng/6.1.21/README.md similarity index 100% rename from stable/searxng/6.1.20/README.md rename to stable/searxng/6.1.21/README.md diff --git a/stable/searxng/6.1.21/app-changelog.md b/stable/searxng/6.1.21/app-changelog.md new file mode 100644 index 00000000000..1b47b279228 --- /dev/null +++ b/stable/searxng/6.1.21/app-changelog.md @@ -0,0 +1,9 @@ + + +## [searxng-6.1.21](https://github.com/truecharts/charts/compare/searxng-6.1.20...searxng-6.1.21) (2024-02-12) + +### Chore + + + +- update container image searxng/searxng to latest[@f396210](https://github.com/f396210) by renovate ([#18106](https://github.com/truecharts/charts/issues/18106)) \ No newline at end of file diff --git a/stable/searxng/6.1.20/app-readme.md b/stable/searxng/6.1.21/app-readme.md similarity index 100% rename from stable/searxng/6.1.20/app-readme.md rename to stable/searxng/6.1.21/app-readme.md diff --git a/stable/searxng/6.1.21/charts/common-17.2.30.tgz b/stable/searxng/6.1.21/charts/common-17.2.30.tgz new file mode 100644 index 0000000000000000000000000000000000000000..a6cb126e1b283d49dc218680d9b1047e66af30f3 GIT binary patch literal 98054 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%0AIfL=!jZC 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 tJ6Yu~*;FIb@G=`MgUep6of};?E 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%0DK5lRM<-l2d&_56tFfI;Cr|eU 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 Re*gdg|NqdaNH_pY3;-e0QZ4`h literal 0 HcmV?d00001 diff --git a/stable/searxng/6.1.20/ix_values.yaml b/stable/searxng/6.1.21/ix_values.yaml similarity index 92% rename from stable/searxng/6.1.20/ix_values.yaml rename to stable/searxng/6.1.21/ix_values.yaml index 9f9e5e1124f..3c39eed44f5 100644 --- a/stable/searxng/6.1.20/ix_values.yaml +++ b/stable/searxng/6.1.21/ix_values.yaml @@ -1,7 +1,7 @@ image: pullPolicy: IfNotPresent repository: searxng/searxng - tag: latest@sha256:1d508f23248068842da10917a72139418b3fee17ad350bab8ee4d61fb24253cc + tag: latest@sha256:f396210d8eb248442a78ccc7e547049a02b7ae37684233b88aa591ed153b0257 workload: main: podSpec: diff --git a/stable/searxng/6.1.20/questions.yaml b/stable/searxng/6.1.21/questions.yaml similarity index 99% rename from stable/searxng/6.1.20/questions.yaml rename to stable/searxng/6.1.21/questions.yaml index fc5d7d6838c..a625b9c206e 100644 --- a/stable/searxng/6.1.20/questions.yaml +++ b/stable/searxng/6.1.21/questions.yaml @@ -23,6 +23,8 @@ groups: description: Metrics - name: Addons description: Addon Configuration + - name: Backup Configuration + description: Configure Velero Backup Schedule - name: Advanced description: Advanced Configuration - name: Postgresql diff --git a/stable/searxng/6.1.21/templates/NOTES.txt b/stable/searxng/6.1.21/templates/NOTES.txt new file mode 100644 index 00000000000..efcb74cb772 --- /dev/null +++ b/stable/searxng/6.1.21/templates/NOTES.txt @@ -0,0 +1 @@ +{{- include "tc.v1.common.lib.chart.notes" $ -}} diff --git a/stable/tar1090/4.1.20/templates/common.yaml b/stable/searxng/6.1.21/templates/common.yaml similarity index 100% rename from stable/tar1090/4.1.20/templates/common.yaml rename to stable/searxng/6.1.21/templates/common.yaml diff --git a/stable/searxng/6.1.21/values.yaml b/stable/searxng/6.1.21/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/serpbear/2.1.13/app-changelog.md b/stable/serpbear/2.1.13/app-changelog.md deleted file mode 100644 index 2c067af13bc..00000000000 --- a/stable/serpbear/2.1.13/app-changelog.md +++ /dev/null @@ -1,9 +0,0 @@ - - -## [serpbear-2.1.13](https://github.com/truecharts/charts/compare/serpbear-2.1.12...serpbear-2.1.13) (2024-02-03) - -### Chore - - - -- update container image common to v17.2.30[@19ad5ec](https://github.com/19ad5ec) by renovate ([#17804](https://github.com/truecharts/charts/issues/17804)) \ No newline at end of file diff --git a/stable/serpbear/2.1.13/CHANGELOG.md b/stable/serpbear/2.1.14/CHANGELOG.md similarity index 90% rename from stable/serpbear/2.1.13/CHANGELOG.md rename to stable/serpbear/2.1.14/CHANGELOG.md index cd9b1b3a255..2f236e0aefd 100644 --- a/stable/serpbear/2.1.13/CHANGELOG.md +++ b/stable/serpbear/2.1.14/CHANGELOG.md @@ -7,6 +7,15 @@ title: Changelog +## [serpbear-2.1.14](https://github.com/truecharts/charts/compare/serpbear-2.1.13...serpbear-2.1.14) (2024-02-12) + +### Chore + + + +- update container image towfiqi/serpbear to latest[@27b3e49](https://github.com/27b3e49) by renovate ([#18111](https://github.com/truecharts/charts/issues/18111)) + + ## [serpbear-2.1.13](https://github.com/truecharts/charts/compare/serpbear-2.1.12...serpbear-2.1.13) (2024-02-03) ### Chore @@ -88,12 +97,3 @@ title: Changelog - force bump to ensure up-to-date catalogs - - -## [serpbear-2.1.4](https://github.com/truecharts/charts/compare/serpbear-2.1.3...serpbear-2.1.4) (2024-01-01) - -### Chore - - - -- increase common version for oci fixes diff --git a/stable/serpbear/2.1.13/Chart.yaml b/stable/serpbear/2.1.14/Chart.yaml similarity index 98% rename from stable/serpbear/2.1.13/Chart.yaml rename to stable/serpbear/2.1.14/Chart.yaml index 3e49bb398d0..7a5912c7b9b 100644 --- a/stable/serpbear/2.1.13/Chart.yaml +++ b/stable/serpbear/2.1.14/Chart.yaml @@ -34,4 +34,4 @@ sources: - https://github.com/truecharts/charts/tree/master/charts/stable/serpbear - https://hub.docker.com/r/towfiqi/serpbear type: application -version: 2.1.13 +version: 2.1.14 diff --git a/stable/serpbear/2.1.13/README.md b/stable/serpbear/2.1.14/README.md similarity index 100% rename from stable/serpbear/2.1.13/README.md rename to stable/serpbear/2.1.14/README.md diff --git a/stable/serpbear/2.1.14/app-changelog.md b/stable/serpbear/2.1.14/app-changelog.md new file mode 100644 index 00000000000..d557757bcb6 --- /dev/null +++ b/stable/serpbear/2.1.14/app-changelog.md @@ -0,0 +1,9 @@ + + +## [serpbear-2.1.14](https://github.com/truecharts/charts/compare/serpbear-2.1.13...serpbear-2.1.14) (2024-02-12) + +### Chore + + + +- update container image towfiqi/serpbear to latest[@27b3e49](https://github.com/27b3e49) by renovate ([#18111](https://github.com/truecharts/charts/issues/18111)) \ No newline at end of file diff --git a/stable/serpbear/2.1.13/app-readme.md b/stable/serpbear/2.1.14/app-readme.md similarity index 100% rename from stable/serpbear/2.1.13/app-readme.md rename to stable/serpbear/2.1.14/app-readme.md diff --git a/stable/serpbear/2.1.14/charts/common-17.2.30.tgz b/stable/serpbear/2.1.14/charts/common-17.2.30.tgz new file mode 100644 index 0000000000000000000000000000000000000000..a6cb126e1b283d49dc218680d9b1047e66af30f3 GIT binary patch literal 98054 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%0AIfL=!jZC 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 tJ6Yu~*;FIb@G=`MgUep6of};?E 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%0DK5lRM<-l2d&_56tFfI;Cr|eU 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 Re*gdg|NqdaNH_pY3;-e0QZ4`h literal 0 HcmV?d00001 diff --git a/stable/serpbear/2.1.13/ix_values.yaml b/stable/serpbear/2.1.14/ix_values.yaml similarity index 86% rename from stable/serpbear/2.1.13/ix_values.yaml rename to stable/serpbear/2.1.14/ix_values.yaml index 8b483ff143d..e7f85370c03 100644 --- a/stable/serpbear/2.1.13/ix_values.yaml +++ b/stable/serpbear/2.1.14/ix_values.yaml @@ -1,7 +1,7 @@ image: pullPolicy: IfNotPresent repository: towfiqi/serpbear - tag: latest@sha256:b12887365016ebf7d1990eb49e7b5f68d7192b28b7e498c8bcfe348f6e09d3cc + tag: latest@sha256:27b3e49dc9e6352946a78aeb19bb35c959155a7ad6283f51699e056cd15df81a persistence: data: enabled: true diff --git a/stable/serpbear/2.1.13/questions.yaml b/stable/serpbear/2.1.14/questions.yaml similarity index 99% rename from stable/serpbear/2.1.13/questions.yaml rename to stable/serpbear/2.1.14/questions.yaml index dae54b296b4..e4513bbdd72 100644 --- a/stable/serpbear/2.1.13/questions.yaml +++ b/stable/serpbear/2.1.14/questions.yaml @@ -23,6 +23,8 @@ groups: description: Metrics - name: Addons description: Addon Configuration + - name: Backup Configuration + description: Configure Velero Backup Schedule - name: Advanced description: Advanced Configuration - name: Postgresql diff --git a/stable/serpbear/2.1.13/templates/_secret.tpl b/stable/serpbear/2.1.14/templates/_secret.tpl similarity index 100% rename from stable/serpbear/2.1.13/templates/_secret.tpl rename to stable/serpbear/2.1.14/templates/_secret.tpl diff --git a/stable/serpbear/2.1.13/templates/common.yaml b/stable/serpbear/2.1.14/templates/common.yaml similarity index 100% rename from stable/serpbear/2.1.13/templates/common.yaml rename to stable/serpbear/2.1.14/templates/common.yaml diff --git a/stable/serpbear/2.1.14/values.yaml b/stable/serpbear/2.1.14/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/snapdrop/8.1.14/app-changelog.md b/stable/snapdrop/8.1.14/app-changelog.md deleted file mode 100644 index af2635d776f..00000000000 --- a/stable/snapdrop/8.1.14/app-changelog.md +++ /dev/null @@ -1,9 +0,0 @@ - - -## [snapdrop-8.1.14](https://github.com/truecharts/charts/compare/snapdrop-8.1.13...snapdrop-8.1.14) (2024-02-03) - -### Chore - - - -- update container image common to v17.2.30[@19ad5ec](https://github.com/19ad5ec) by renovate ([#17804](https://github.com/truecharts/charts/issues/17804)) \ No newline at end of file diff --git a/stable/snapdrop/8.1.14/CHANGELOG.md b/stable/snapdrop/8.1.15/CHANGELOG.md similarity index 89% rename from stable/snapdrop/8.1.14/CHANGELOG.md rename to stable/snapdrop/8.1.15/CHANGELOG.md index 59a94ec65b8..9a4f5112e08 100644 --- a/stable/snapdrop/8.1.14/CHANGELOG.md +++ b/stable/snapdrop/8.1.15/CHANGELOG.md @@ -7,6 +7,15 @@ title: Changelog +## [snapdrop-8.1.15](https://github.com/truecharts/charts/compare/snapdrop-8.1.14...snapdrop-8.1.15) (2024-02-12) + +### Chore + + + +- update container image linuxserver/snapdrop to latest[@79fe077](https://github.com/79fe077) by renovate ([#18089](https://github.com/truecharts/charts/issues/18089)) + + ## [snapdrop-8.1.14](https://github.com/truecharts/charts/compare/snapdrop-8.1.13...snapdrop-8.1.14) (2024-02-03) ### Chore @@ -88,12 +97,3 @@ title: Changelog - force bump to ensure up-to-date catalogs - - -## [snapdrop-8.1.5](https://github.com/truecharts/charts/compare/snapdrop-8.1.4...snapdrop-8.1.5) (2024-01-01) - -### Chore - - - -- increase common version for oci fixes diff --git a/stable/snapdrop/8.1.14/Chart.yaml b/stable/snapdrop/8.1.15/Chart.yaml similarity index 98% rename from stable/snapdrop/8.1.14/Chart.yaml rename to stable/snapdrop/8.1.15/Chart.yaml index 29c5a8219bb..eb18c8a1847 100644 --- a/stable/snapdrop/8.1.14/Chart.yaml +++ b/stable/snapdrop/8.1.15/Chart.yaml @@ -33,4 +33,4 @@ sources: - https://github.com/truecharts/charts/tree/master/charts/stable/snapdrop - https://hub.docker.com/r/linuxserver/snapdrop type: application -version: 8.1.14 +version: 8.1.15 diff --git a/stable/snapdrop/8.1.14/README.md b/stable/snapdrop/8.1.15/README.md similarity index 100% rename from stable/snapdrop/8.1.14/README.md rename to stable/snapdrop/8.1.15/README.md diff --git a/stable/snapdrop/8.1.15/app-changelog.md b/stable/snapdrop/8.1.15/app-changelog.md new file mode 100644 index 00000000000..57dc6b020d8 --- /dev/null +++ b/stable/snapdrop/8.1.15/app-changelog.md @@ -0,0 +1,9 @@ + + +## [snapdrop-8.1.15](https://github.com/truecharts/charts/compare/snapdrop-8.1.14...snapdrop-8.1.15) (2024-02-12) + +### Chore + + + +- update container image linuxserver/snapdrop to latest[@79fe077](https://github.com/79fe077) by renovate ([#18089](https://github.com/truecharts/charts/issues/18089)) \ No newline at end of file diff --git a/stable/snapdrop/8.1.14/app-readme.md b/stable/snapdrop/8.1.15/app-readme.md similarity index 100% rename from stable/snapdrop/8.1.14/app-readme.md rename to stable/snapdrop/8.1.15/app-readme.md diff --git a/stable/snapdrop/8.1.15/charts/common-17.2.30.tgz b/stable/snapdrop/8.1.15/charts/common-17.2.30.tgz new file mode 100644 index 0000000000000000000000000000000000000000..a6cb126e1b283d49dc218680d9b1047e66af30f3 GIT binary patch literal 98054 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%0AIfL=!jZC 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 tJ6Yu~*;FIb@G=`MgUep6of};?E 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%0DK5lRM<-l2d&_56tFfI;Cr|eU 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 Re*gdg|NqdaNH_pY3;-e0QZ4`h literal 0 HcmV?d00001 diff --git a/stable/snapdrop/8.1.14/ix_values.yaml b/stable/snapdrop/8.1.15/ix_values.yaml similarity index 81% rename from stable/snapdrop/8.1.14/ix_values.yaml rename to stable/snapdrop/8.1.15/ix_values.yaml index 857e52461ab..fb17e33ced3 100644 --- a/stable/snapdrop/8.1.14/ix_values.yaml +++ b/stable/snapdrop/8.1.15/ix_values.yaml @@ -1,6 +1,6 @@ image: repository: linuxserver/snapdrop - tag: latest@sha256:21b1d4c9e45ea6e32d5be97c4846b6fdaad846d0e3f6e1d0eb38b4e5c29946e6 + tag: latest@sha256:79fe077582184814b59e0808e937ed39cd3062887f979ef135ceaf00a8e71e44 pullPolicy: IfNotPresent service: main: diff --git a/stable/snapdrop/8.1.14/questions.yaml b/stable/snapdrop/8.1.15/questions.yaml similarity index 99% rename from stable/snapdrop/8.1.14/questions.yaml rename to stable/snapdrop/8.1.15/questions.yaml index 5077ad30c24..b3c199a63c0 100644 --- a/stable/snapdrop/8.1.14/questions.yaml +++ b/stable/snapdrop/8.1.15/questions.yaml @@ -23,6 +23,8 @@ groups: description: Metrics - name: Addons description: Addon Configuration + - name: Backup Configuration + description: Configure Velero Backup Schedule - name: Advanced description: Advanced Configuration - name: Postgresql diff --git a/stable/snapdrop/8.1.15/templates/NOTES.txt b/stable/snapdrop/8.1.15/templates/NOTES.txt new file mode 100644 index 00000000000..efcb74cb772 --- /dev/null +++ b/stable/snapdrop/8.1.15/templates/NOTES.txt @@ -0,0 +1 @@ +{{- include "tc.v1.common.lib.chart.notes" $ -}} diff --git a/stable/snapdrop/8.1.15/templates/common.yaml b/stable/snapdrop/8.1.15/templates/common.yaml new file mode 100644 index 00000000000..b51394e00a4 --- /dev/null +++ b/stable/snapdrop/8.1.15/templates/common.yaml @@ -0,0 +1 @@ +{{ include "tc.v1.common.loader.all" . }} diff --git a/stable/snapdrop/8.1.15/values.yaml b/stable/snapdrop/8.1.15/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/splunk/6.2.0/app-changelog.md b/stable/splunk/6.2.0/app-changelog.md deleted file mode 100644 index f77782983fc..00000000000 --- a/stable/splunk/6.2.0/app-changelog.md +++ /dev/null @@ -1,9 +0,0 @@ - - -## [splunk-6.2.0](https://github.com/truecharts/charts/compare/splunk-6.1.12...splunk-6.2.0) (2024-02-05) - -### Chore - - - -- update container image splunk/splunk to v9.2.0[@f27a7e6](https://github.com/f27a7e6) by renovate ([#17948](https://github.com/truecharts/charts/issues/17948)) \ No newline at end of file diff --git a/stable/splunk/6.2.0/CHANGELOG.md b/stable/splunk/6.2.1/CHANGELOG.md similarity index 90% rename from stable/splunk/6.2.0/CHANGELOG.md rename to stable/splunk/6.2.1/CHANGELOG.md index e55b56d3667..0738ff82c33 100644 --- a/stable/splunk/6.2.0/CHANGELOG.md +++ b/stable/splunk/6.2.1/CHANGELOG.md @@ -7,6 +7,15 @@ title: Changelog +## [splunk-6.2.1](https://github.com/truecharts/charts/compare/splunk-6.2.0...splunk-6.2.1) (2024-02-12) + +### Chore + + + +- update container image splunk/splunk to 9.2.0[@5923c52](https://github.com/5923c52) by renovate ([#18107](https://github.com/truecharts/charts/issues/18107)) + + ## [splunk-6.2.0](https://github.com/truecharts/charts/compare/splunk-6.1.12...splunk-6.2.0) (2024-02-05) ### Chore @@ -88,12 +97,3 @@ title: Changelog - force bump to ensure up-to-date catalogs - - -## [splunk-6.1.4](https://github.com/truecharts/charts/compare/splunk-6.1.3...splunk-6.1.4) (2024-01-01) - -### Chore - - - -- increase common version for oci fixes diff --git a/stable/splunk/6.2.0/Chart.yaml b/stable/splunk/6.2.1/Chart.yaml similarity index 98% rename from stable/splunk/6.2.0/Chart.yaml rename to stable/splunk/6.2.1/Chart.yaml index 81d62fa16e7..35c044813a7 100644 --- a/stable/splunk/6.2.0/Chart.yaml +++ b/stable/splunk/6.2.1/Chart.yaml @@ -35,4 +35,4 @@ sources: - https://github.com/truecharts/charts/tree/master/charts/stable/splunk - https://hub.docker.com/r/splunk/splunk type: application -version: 6.2.0 +version: 6.2.1 diff --git a/stable/splunk/6.2.0/README.md b/stable/splunk/6.2.1/README.md similarity index 100% rename from stable/splunk/6.2.0/README.md rename to stable/splunk/6.2.1/README.md diff --git a/stable/splunk/6.2.1/app-changelog.md b/stable/splunk/6.2.1/app-changelog.md new file mode 100644 index 00000000000..446f3bf2029 --- /dev/null +++ b/stable/splunk/6.2.1/app-changelog.md @@ -0,0 +1,9 @@ + + +## [splunk-6.2.1](https://github.com/truecharts/charts/compare/splunk-6.2.0...splunk-6.2.1) (2024-02-12) + +### Chore + + + +- update container image splunk/splunk to 9.2.0[@5923c52](https://github.com/5923c52) by renovate ([#18107](https://github.com/truecharts/charts/issues/18107)) \ No newline at end of file diff --git a/stable/splunk/6.2.0/app-readme.md b/stable/splunk/6.2.1/app-readme.md similarity index 100% rename from stable/splunk/6.2.0/app-readme.md rename to stable/splunk/6.2.1/app-readme.md diff --git a/stable/splunk/6.2.1/charts/common-17.2.30.tgz b/stable/splunk/6.2.1/charts/common-17.2.30.tgz new file mode 100644 index 0000000000000000000000000000000000000000..a6cb126e1b283d49dc218680d9b1047e66af30f3 GIT binary patch literal 98054 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%0AIfL=!jZC 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 tJ6Yu~*;FIb@G=`MgUep6of};?E z=<_j=9QbVWjD40(lzN^ZQS0>6(M%dmMg^{4Xh4ZP8^Kn~GzT}QGUutUE>Az4ToTrL z^vmhn)9cfdD@Jy~KPxsG?i8ZOayr^lj49ub(lCOZJ1W~V)njgllv`oPCbpd^!su4Ep9c6|e&Oys?9 zy`=9lNY@{L$=DRhC@(^p!d!|?rjw15Bm5r2j53z;B6L}kGA*#)hrE!RAvK~Ismhlc zgEBpc_g5#ExAQ}p8v@~o0>tatK)k*@e}8d1KNu&3l1YY8{_7Q)QW^9^x{%HDw}6P08+1 zVy&UZqSj)~H4A_0>_5@a@53t?!yrd9gnp$@js0h9e{08#|FXZky8pS9N3;JBX^9TF z63AmQrXXz^{S@{fqeqMO3!>o9nODCw*AxmZYnD0y(2^r9f2uwQ}Oc9Q9lsS?iH1?<| z@KNC1%!pC$_ZNdo?)PWKAsxl>1&X6!Qf6+HL+ur1J>Z@8&QN}lK@5|;GWjB@5JA<- zrC0Ti;s<|%iGBdbN;pcV$;ySdY+`zgpF+a|V3SDia(=6ptO5@go>gW*N#m~|N7Rrt zk1$cU|Hn}e29scp?B5OI|L*Ub`~T+lD*yLV9&P`ZgT0tdUxNE7HhiTwi{9)92;Hkp zFU{apPIL$_ML568{Vdm59nDgyR)C*j-~n%t=PCaOdsezmRU{}zT4jS=Ya{5qWdHCz zng;gK%{UgjCB=DHX1nAmak>E?377`FRpqF>W%_S}dz@l-D|*?{5)4o0RH5QdvkjY8 zuW}4@3aY5EVV<9uEdB9R#N;iTD7olLR}dfm;$~`LQnk9pXRFz(MiIpVcI3z)G&Bb& z^SJQpEmm`jUpoX}K@ue)OmeVgc9Z+7mW~u(hR*djTMr40*U;rW^=O?mJ=IGN)xHnA z#p+qiQz!qWD9h&!09hCRWovKS^#9r3S;>D(c{KTt4)y}0e^Gcph49CF@;Kg~7-r)r zfM@;?zLdWT$;&=7rv-E!JVhb1@Ic2!Z*e{$YDO6FES;TB$2#59G3fA;y7a=}e zXg-iit`dyJ4KMezKFl?9l(I{9Ux1?|q$lL`WR7>q3h}~ai%QU{z)R>Ov%K3^2{igS zZmO4vaL~L?FDR3sf+7)?cRh%}#k-bf(NLOKjh-2ZU+|)fL%aOyaDjsgT9*{~v`slV zU$Q@y39F9^<0>XvYjSb9=dDH3n#rr9F3{0tuS&Z{6SxFs)eP2VvFu{`TsG!&c`I5P zhmx6GLEDn(3yuj=I=36nZ>`hLSzb2Nozr}=eKPJ!Ig2Wjqhtj6enJMzJppZ89cxz> zx*%}Ky0J!|eo?%qlmfJI8>-8jbwyZ|SDQE(l*I^_sP z$z&AA(=W2BO~|OApO|-Ffa_64J$VQYXE1+2**!qXOAzHCpzb?Zq6hp@j)s075si34 zopy3wJIZNtLx6g{!a<{O8XI=N70h$d4h053r*RZSc}$&FNyouM6vtXE+M8>-tN0lN zI41=HA4AMsJ0!43Z83aFo!sDOf0)MbC7F2>G-9sAKDa)-c3e0tnMX-naponHgL*CS%KLjIS) z$Fd0TG93wujsS{T)2BJ}jvl}`#Y{MtcA4MW0aAt1@(GdWPfUv>8E;X^?$Z0 zf0!o?P@VtB_V%8c|95Y1b^m86kI4Tc9MOL9aTF{r4UkZu%~>>y_dMMKrc&DNRvT;R zHCn!O`b(lb^5f_aXapl==Q=(Xx|^Ysi_a%qJuy`u3j8$!Xsp>SV4`0R;+j~(w6H>0 zHGIj5Dwo2bqc|M4wdBI5JzdfjT9aiOP(AZZ#melHBA%;u14}V-=m@Hpt#CFe>Ug|{ z*8=Nn)^JNUL*uYQ7J}lZJ z0vg%kV&sSJuw-p3WQu}>i@1$rf{6)s2|tY@BC6ydhCa?I#uhd_4_}%gL57LRPXy zN3;K5(7|5RmQP^)9L9g%l|{RKP`E_rS4|^vG=>Sp*aIHfq9Xn`nWgzC)!jfSfNR4S zM6;?0Q%gTf1CO7)w_HwsnjMbLf@-eqa)MwLtCA4v0kTyBv~@v)Iz||It^{JPbXQGW zA~-8^g>uy(Rv066`?tXUCI8zJy9z>}+f4OG@ z1*RS>(5 z1lO8v&``Hb0TKu#7br+p^!o>uCyO2}N~|=cN?NA)rAnT;7@-4p`STTo=`l(t?)aJ| zJEnkPiVp7hFF1t(C@z_gVfK(kIb@rxI6uy{nIpGZ`I=$-4rYB=Kqx-D+AFz5L36(p zLUY9Ic&}jWPp)8ql90&GWUC!z@OqFzJV0?s;ADF{5MmRcgb{`o^=jp5O_XxX zK6a!lyWuE7Dw-42sAYa8Rm>h3Rm{(%iax=O3i?MMUM@lZiJvou5K#Q+l&#Ltqi>$dt!SQLHFgE@|my zq-asRc1uyk_bOnnU3;pKNn^(ua6#Du3oc7$@Y4w593MObAV^0CJiNAmCO&t9bi`bf zhH!|oNohIu8K?(XO0hT^MmgP=*k1?FbX$;Fk~hm_+6y1!DCvWZm&_A}`S;Li7v(R( z5c<^fXq3>p#W|YjR>z$psq8WyY^K?%tzm~H_fw{xuyy%2<#}Cg8KM+Q&24HlG8Ezr~Smx(C zlF>mNaVKe(;zANpN1`Mpo8|i;yg`_gJjXE|KFD0w2iN;T-oWUE6sZBtV znXID9ODLjq;6s5vz*PAS19>Q4tO|R z91LJMiXqq_TbU!hb<_j>oEtjEEwCX@W9a>BmRfNBG=j=xG`MQTFgSu(HgM}^`!jdb zgIEdunIkat^I!mckotKJvjzDh&LWOZv4zW8yrk?8TemZA(POtCqozDKxxo*~dweuSqopv`1udeP3@b2VYX@#@1iw|3`)Cv@dKBRJhJ2#gX z5b?tMpY@IZ{_oDm&Gz4JzS94H+-U#p=0$6ryd{5r9sZ-WX6M=Rn0!hgDAm?Ko?KkN ze)r}k`o~vDU;TUQA8WdY1k5s&y~F)-)D-mAFJeDRz-f}hK3&?d-vOJgmtg(Z82LGW zvC-Kjuiiy*M5KTAa(826*m5TbE0AAjnT=t{r1_KXMfbY1lz_VlSwg(b#?}rgbn-bx2@$0E>+K!5*V6q!E( zA6gE{Ebw#KN12-PTxeUKlD_|U7MItLF#>)V0*`4h9$+q+J@5d*gP-I~uw{OU^iF^& z78R}`ipDCCn8B{CuO1C5kz)2mf>prRLRX0(lYyJPgoZlJ+l zQ02>Gj=UV-mfH$(tj-#f4wgHPs-?@C#u;kUQ7{nsAdsQ099% z+r5N@ue*pF;N)@6CE=y-Xhne&VXhnzMM%-wZ@II>H96fd=ZTrIlk99g6vya+G}}Yj z(9f|u))_tbVIfgi0!zVvIraw54gss`_L%)QHpx)U;HO7wB2oR)4Ffw*`bTGfhA^lTmm0UD+k8R|tb^`#`crd3HV##~d?0}U1! zrLws976pDhKsfhU)mZ!%jn_1qvVVc;$`JUee;3739zl9~Qka*5VonuBIz$zqF#Iq) zFeU2RN&vJg&MdxYch*S*;Ny)Wcz-p9VTMu$f&A4N$D-OaNYW;3ENyGau~?W(=h~G# z;fLqnYVQ_(%u9s(i(<0yc(1$S+X z;t|hYKiw|ND!xObB=1C6#E6m0$)JjhP8O~%!dIlla8b^!e86AQEF~;H z1C0?egnq&UUFgAc20jLU0(^|4K2d}jNnMJtxkzR_foXc|&@daB2D#Z0KrPJjds6cY zeU&~W)x8uLoR49aMIm?4RgMH5ty|%RjV5$%q@e2dL{SQKDri*P>&G+#$pZw#s6WU_ z!BNVPqESq^*~RbWFatxv8RR;dNta0)0vxC~Gew3+WKm2 z9d9%)&(^xE(A4&=5~iZZMprzy^0^3BV_d`>n~fUk(Gc=`GM=Vod+(C~B@Ak1+L9X0UA8-Y29su8Z+=&lqfvu# zb%vQKZ51vDuX-azW2dhg5($9DECDFtGhSj^;wIK~ZmX7rnP;{NWQuv6!(n=^>9brd zk^WO&d1PG~ny18dNe^Fuviy>A(uQ_QmT1qGV0olW3ahc9QtxNWSd-NIN+Q^a(F0hI z#qA>PeTyBl8yZp}R6qDhPCZ%fq9g=93*q;_4{0rW5`K1aef!Jl*{j>DlgkgM$40u< zH9riGd9v;*dsvmM>8VYeemFky1Xy!B5UuH+Ui_tJVp=xIE4EmDYI}YdN?giCeG2j& z!nu|*lc<^5C@IovMi|_|z#m~qlu@E{<_H7>^pH>hj9cHq9?BrV4^bWrqNGpC_zB7f zFaskDGZv-rEzB_;96f?0QNxaZJOBL*1b#|Nx)KPN3%bDcx^r#Qr3S?a`*$(C+B=>x z3wsrR(4kMWy*EO)*!i3Ft}X_}6lFT^XI=(&saB_Kh`l@7wFMNrYNYu2d7iP%PyrUcrUDB}LcD-nfV`|!?@D{$N z6gipn$L%d4R|Z9)nWqu$z1y$I4F24i$%%+GfTMnLHGe(m@^t4+cgz3qr zksq^7?R^q`5`#AD*iGHXQ4)P3db_KKieOwZj&6ZV(d8DB(r>D#&i^Ba*)U3Gjr_`< zy7;e~o4e-y&)v;c{I{h%dj8*HuorW5r~v#a4hyyZEc$p*rGBAx4I##UA71$RzyqFF zyb#G%b*Eg*6t6;6c@izyQJ|YLLb0{0Aas1z^`KWZyO-W%kw{i;HD#|44&AV=qI$O2 zU!xd$!26X4EV)K+Q6HZtCs~Fv*Rh`wfU7h|>@*^Q$}zRRPHSK(GQ_4@QdlQ_n++PD zGoq&@qvf^=6yTP>ORb*Adg}In<*0h*5D+!~pS%0p8&>}Rjg|lBQXXypR|b25S>P0? zKZOvW^=HvSz!=4BvAOO-uLUTCS1=pH?6jYt42ITi9hCH<{?Jc7;9(eKF!z8r4sz$s zot2xB_klUGu)&-TlSuDh>+|OZe6koyIaO@G+P33LVAzkfq-gGg{0+@Hl0lkSu zCLE>{&JmtpN7Z@L+A9Ef>b2~Wew9pchij5tC_kY4RfVe+>r&fxiz@hnZnP`jyQ?q2 zS&DNDmEcOV1(@y&A_bHAVBT{wL{kaLqmxfjCFG}${8FM^IKko3of8;;KMg3>euh%N zFVt5Tf<*zBqN19e9X+cuSzV}1*6Cm-;oNvNdY4$LG$#Y>MW2D!^;{TLThU5TQV^lH z*K=Q_sPaJ%Weq=n70Gqhgcx6@7tAI8A!Mlz{1xWq43B!6@yU{d!iy16S2y10Ic zyx2Ald7HS3i@U(w*BKK9q{xRyCXbIL>QRr4c}m{%)PT;gK()K51GQq_tC>WtViK>S zl&5(rRrycOg^baRHnD5=c}ELkZI;1zLKLgs4N~%i0w(o9tOe_kB1&nZFaaBNJ*1X> zb%bZERYEHr#WBlS%j3RbKs5Lig}AFYQIN^Ss+)CXQp}-$4*`Y=hBQefQ4Aajpd2g0 z07#XUYJEnVT)eAR{G#p)a0PP^jBt*IfUX#nP(O_nX2S?$>YZK^TuD{E+zN{U$ZNTf zCWS7P)-1zveH~|J>WYpxUUXtx?$VdI`+RJ3v?rSznjaWww`pyQ;@`NZQ zVB!3wA=cnPt8m)VC^=J)6y4eGTRHl*SUU1&x^n%0DK5lRM<-l2d&_56tFfI;Cr|eU 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 Re*gdg|NqdaNH_pY3;-e0QZ4`h literal 0 HcmV?d00001 diff --git a/stable/splunk/6.2.0/ix_values.yaml b/stable/splunk/6.2.1/ix_values.yaml similarity index 93% rename from stable/splunk/6.2.0/ix_values.yaml rename to stable/splunk/6.2.1/ix_values.yaml index 2cf84035343..e6e2f335ae2 100644 --- a/stable/splunk/6.2.0/ix_values.yaml +++ b/stable/splunk/6.2.1/ix_values.yaml @@ -1,7 +1,7 @@ image: pullPolicy: IfNotPresent repository: splunk/splunk - tag: 9.2.0@sha256:f27a7e634df731d8328d5578c47a6d42584fc33284bd612a00fc0359fcd9c33e + tag: 9.2.0@sha256:5923c523f8eeb6b7b083b58e24ca946b1647a8868b2f02a636c4161287368cec securityContext: container: diff --git a/stable/splunk/6.2.0/questions.yaml b/stable/splunk/6.2.1/questions.yaml similarity index 99% rename from stable/splunk/6.2.0/questions.yaml rename to stable/splunk/6.2.1/questions.yaml index af611c444f3..59a3d023d9c 100644 --- a/stable/splunk/6.2.0/questions.yaml +++ b/stable/splunk/6.2.1/questions.yaml @@ -23,6 +23,8 @@ groups: description: Metrics - name: Addons description: Addon Configuration + - name: Backup Configuration + description: Configure Velero Backup Schedule - name: Advanced description: Advanced Configuration - name: Postgresql diff --git a/stable/splunk/6.2.1/templates/NOTES.txt b/stable/splunk/6.2.1/templates/NOTES.txt new file mode 100644 index 00000000000..efcb74cb772 --- /dev/null +++ b/stable/splunk/6.2.1/templates/NOTES.txt @@ -0,0 +1 @@ +{{- include "tc.v1.common.lib.chart.notes" $ -}} diff --git a/stable/splunk/6.2.0/templates/_config.tpl b/stable/splunk/6.2.1/templates/_config.tpl similarity index 100% rename from stable/splunk/6.2.0/templates/_config.tpl rename to stable/splunk/6.2.1/templates/_config.tpl diff --git a/stable/splunk/6.2.0/templates/common.yaml b/stable/splunk/6.2.1/templates/common.yaml similarity index 100% rename from stable/splunk/6.2.0/templates/common.yaml rename to stable/splunk/6.2.1/templates/common.yaml diff --git a/stable/splunk/6.2.1/values.yaml b/stable/splunk/6.2.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/steam-headless/2.1.18/app-changelog.md b/stable/steam-headless/2.1.18/app-changelog.md deleted file mode 100644 index 6b81d9fae9a..00000000000 --- a/stable/steam-headless/2.1.18/app-changelog.md +++ /dev/null @@ -1,9 +0,0 @@ - - -## [steam-headless-2.1.18](https://github.com/truecharts/charts/compare/steam-headless-2.1.17...steam-headless-2.1.18) (2024-02-05) - -### Chore - - - -- update container image josh5/steam-headless to latest[@0364932](https://github.com/0364932) by renovate ([#17876](https://github.com/truecharts/charts/issues/17876)) \ No newline at end of file diff --git a/stable/steam-headless/2.1.18/CHANGELOG.md b/stable/steam-headless/2.1.19/CHANGELOG.md similarity index 90% rename from stable/steam-headless/2.1.18/CHANGELOG.md rename to stable/steam-headless/2.1.19/CHANGELOG.md index e7912baf6d8..117e41aa30f 100644 --- a/stable/steam-headless/2.1.18/CHANGELOG.md +++ b/stable/steam-headless/2.1.19/CHANGELOG.md @@ -7,6 +7,15 @@ title: Changelog +## [steam-headless-2.1.19](https://github.com/truecharts/charts/compare/steam-headless-2.1.18...steam-headless-2.1.19) (2024-02-12) + +### Chore + + + +- update container image josh5/steam-headless to latest[@65190a8](https://github.com/65190a8) by renovate ([#18085](https://github.com/truecharts/charts/issues/18085)) + + ## [steam-headless-2.1.18](https://github.com/truecharts/charts/compare/steam-headless-2.1.17...steam-headless-2.1.18) (2024-02-05) ### Chore @@ -88,12 +97,3 @@ title: Changelog - update container image josh5/steam-headless to latest[@d283bcc](https://github.com/d283bcc) by renovate ([#17160](https://github.com/truecharts/charts/issues/17160)) - - -## [steam-headless-2.1.9](https://github.com/truecharts/charts/compare/steam-headless-2.1.8...steam-headless-2.1.9) (2024-01-09) - -### Chore - - - -- update container image common to v17.2.22[@e7c9056](https://github.com/e7c9056) by renovate ([#16986](https://github.com/truecharts/charts/issues/16986)) diff --git a/stable/steam-headless/2.1.18/Chart.yaml b/stable/steam-headless/2.1.19/Chart.yaml similarity index 98% rename from stable/steam-headless/2.1.18/Chart.yaml rename to stable/steam-headless/2.1.19/Chart.yaml index eaad559560a..90e1fe69bd6 100644 --- a/stable/steam-headless/2.1.18/Chart.yaml +++ b/stable/steam-headless/2.1.19/Chart.yaml @@ -34,4 +34,4 @@ sources: - https://github.com/truecharts/charts/tree/master/charts/stable/steam-headless - https://hub.docker.com/r/josh5/steam-headless type: application -version: 2.1.18 +version: 2.1.19 diff --git a/stable/steam-headless/2.1.18/README.md b/stable/steam-headless/2.1.19/README.md similarity index 100% rename from stable/steam-headless/2.1.18/README.md rename to stable/steam-headless/2.1.19/README.md diff --git a/stable/steam-headless/2.1.19/app-changelog.md b/stable/steam-headless/2.1.19/app-changelog.md new file mode 100644 index 00000000000..4e52049c9ad --- /dev/null +++ b/stable/steam-headless/2.1.19/app-changelog.md @@ -0,0 +1,9 @@ + + +## [steam-headless-2.1.19](https://github.com/truecharts/charts/compare/steam-headless-2.1.18...steam-headless-2.1.19) (2024-02-12) + +### Chore + + + +- update container image josh5/steam-headless to latest[@65190a8](https://github.com/65190a8) by renovate ([#18085](https://github.com/truecharts/charts/issues/18085)) \ No newline at end of file diff --git a/stable/steam-headless/2.1.18/app-readme.md b/stable/steam-headless/2.1.19/app-readme.md similarity index 100% rename from stable/steam-headless/2.1.18/app-readme.md rename to stable/steam-headless/2.1.19/app-readme.md diff --git a/stable/steam-headless/2.1.19/charts/common-17.2.30.tgz b/stable/steam-headless/2.1.19/charts/common-17.2.30.tgz new file mode 100644 index 0000000000000000000000000000000000000000..a6cb126e1b283d49dc218680d9b1047e66af30f3 GIT binary patch literal 98054 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%0AIfL=!jZC zrz8n{&SDgWtZud?RWaob2|vH3>)})SpY`4zoIo{Ze3dFr^6k%DrjUPrFoHK>M z9hJ zP91Hd96KG~lJrQTxOsavOOpu3aE6!&PnWLN!b~ed zA2dN?kvm6y6UwA?=sf)x!BA%Vv#Bh;y}==u+};WA@w3?s`4}=?M7U$?sC(sZxC5>X zDn?v<1HHQ>8p{5k6X}Taitg5}1!R^43`YU7#6`lUCM88vC1jKfpUp5k|K$}XPSiNz*TlB$*0OFWH75Lk+51f z3PruR(~6ynzg2e3ZlW<#IK~bkG#`{9t1H#*iQuDHgO!Q(RO`0S`6%)35Gy3Q{34Tp zS!BjxU0dw^x`8B1+mJnYjD*H5UFo1O4D>nxg&yHb&G8W!C800#jB!z4m~7@K#^Z(X z7d#*GJu#GWh$Skho?3L*jmjn+mwK_Q>F)VB7W>8mBq67;ltW<`ok8EK{ zcC)B$*-|=;deMcF)d@Se7ifTDV?O5yY|GNLNL*1K7JDO!JJ`j>=Z`37zxr+ z4KBrWkU~@6ycqc?WEckaz#jcF+^22pqxQs%5(aQ6(lT;w9=zh42^52l$LZvH{Tje~ zx=-6_oCLh5Rxl;Nd>8j8)E`f#;y>0mVejzA6MvlfwBt-6g@Pc&Xkn8$vks(eWUmD_ zIIimpomb_mpmqa-ZDscpYR^iJrx`KJ$e_tkD?Ylfi}hc49m5fsrwcS+hI}ME4mna< zb=%jmEntjM;LB}Gcm-$ICE1L%!|w1+c49^1?f^jBKa$u(Tq+&1MSz@7@8iJweK(^& zqs5s&u)#@1My3Z!-``9TI6E;zlZ=c^qG`$*ReV$I4`mF)9%mdMkCnnDqCSKPM;>kb zfB(<_OC4}^@apI{z9Ew^SnOK3TV))KReL&QBK;60qX2tuk8N%4?eSH5+9_-6#nc=L zl}>5PN5MiR15F;Ej~)AqSgTcn7J$X{V+#@VfS}Nb<)CY7a?Ty&0M%b{bh9*ZqeapW za={V1&mE3zE1k9G0TRnxlVjezIFlIO;ppak_(5zV>S#et4KAAPsgV;-FBJPouewy4 zUQz_c0i4vqk0jR1v#NAVW;1c_fbWoANEMBxm^(synfC#i(9~NT`o1)Q1#kjtHH~w49BEg_6NLloMofLTSBTFF~y^P_SIA%jkt`$$Hsdt&;J6XB%ZPY3l&I(!$98 zkw1r_XU95jWcys+#Mi#3ikJ4DDqg?{t8A$QyHswg6z`X8m2yU9STnDCJ$%nR8*4v8 zUK<9KXi`w{Z3{(m}_JE7?EK1A`gIXpQFW$#>6m^n7n%`g@WK(*CrOw+h~3Ju}4=LQj7czb!tN`Ld{5s8Hx8mM11wPWqz!>rL@zEZ`t9sKa^#lrN+*x zj$=^hJ02l56-qX2>4T&FSVho#KHPXEaau_;REb&@86 zEp!o>sEnSUK3gaAd;q0+-|?l`0Rg5=EV_K+Ip5^rgY8LS)!@`pR}(1NNuF`cF%+wu zj0u1H{>&V3k~xaGsy)?GalXa$m@M1&4mdAvRdyC6R6{iltC}fHMVGY2nsJvf)Tw@B z)T!8+kZJ0MuDlrJmN`YiOrEw=ThAl0A{&WN%%vV$(SI3_baCke1SUXU3&gr0|IIgA zzN6X6s-ZYq*QF}J6v|{>7m_?iKDb9h^wwK{ic>ZXHkV(`nY#)zN4_$t$Toz#(_HBY z`IQambD4MWPMqn7wJ}LTyUi(#{n{AfKp$7|zc0hnIOZ#X3k4b`K_6KREhv1$6A{Q` zwGgEvc&Q614%!i*gz(2nC*(0{a}*{)s4x0R36D8tlF*m&^ZFhT<)E<&n!d)P1e*4q zTN7HkHkAQPORNji3rOOJkl{J1MUyhPZmG3lqnOoZ(#x3t$x4dtjRsy8og+&YQ(t~F847SXCaL360hFTq!F2o9U!#DG z_PMAaO#^oabU#kQI-RPcT~#jiT;OYP!lqJtBlko<`91e9PwGe zspr91q;yxRiU{@ykxbJZCn3NhCq}GqC;}=ym2y?Id{KETw>c8hIK14_KR?yX6$rC*B`^%lkxr#9p=+->1ElCTk<#J7ArZljodT-*jCe~?2F zPF2gbXKb^grj+hf*3Hd8SP^Ttio4W|aEAKWHBpq0wu=7|2XZyIYhZ|j2f3^31Y+{? z9+FI^){ti0M6G0FRjY?bK>+43#?pby=%&&nst*UHf1Wm!MWLo&CKtY(OyUU2O};TU zeUrgqR>J);p6DCA&wAgMUN57(!?2Nm3XKXlmAyhBYyEb&ERfhk$1(@bIhCPsWnxY(q?D?*6wl#wDd zc`UWnkaK=Y6m8j%tgnjd#9aXNt8lkV(by4aL2f^?jGjD3`bm*fp&`8HfdV6*?@0dwm z^tGqlobs}qzH~G%%~`oZlvF4BFE5eeY(qCD<)w7Y`S5bNAj~6_Ue%(!0_4>sIg5lP zJ0i}t3%(}en1p;iwU%l=3O0PRH0U+|DQmpNCXZU`t@_Wq;yc8$TJ_9}%t~@SynbG^Q&x4L^{)II$u|et-T@FN_ zGxCv{V$R8O&7TopR?#mrDHg2bTzLv1WFnZ+mc{PJTT#~)R|@7qx#oO=D2vHLAuI1c zHuy4OXqh0vXZPl{$R#WD{VSVYs$?I%8D5^hzd1es2RJz$-dw*wzB&6KubUI0wAZR) zh8_7t(5v?G#noG3DI7tH>cBYCi{;Ze=KlcxtrI@|8vHx+5>x99!!snz3I6EcmYFK8 zt&z|(mW;ub`KWx1_Vf;Hs1QOC0zthgnxV9{08OB`(9O$xrG<00%w8xq%GAF_-ODZq z&0NwhVQ93}ej(U}<7P;1(`J@lUMkQK7u||`ZvPExW>ev%>fl%$R#GvhBnC<3i=Vbu zA;v)Uw4OqZk;uEqL24insF#K?;&{Cjm?DY|Q*s0cIutSf6r|XLQNq;esyO{{+E6Y{ zd$waL;$50!2%^a?XCPTb_CY0)H^4Q8PZYCh&j;~ZbKn3}VWdu@REBu-yU18$fN5Ow zwkY)_-9^`%>GoPuw%--bbl${8G8^%^JC-Lkp=XY?%7OjpQ%;& zN0AIzdCqXQ;bI==9i8>}Dsw~eYkBFg>YesI*Dru*asaBWZtpFwu7TA(3^t6^Jq(8H z;#I53^cHeq)(w2?{z&ug9b!|d+sjPMVrh&f zG4xR`ZVtuT*&2eF$n?{4p^;fTd=bxqX1t+z$>-T?E;bbx)ue{L*SKS!CftVDn#E4Sh80G3ryPMA&VhHlf_rj=K;W` z&*~Cb_!Gw>#B;{ zxiv8eXKxtTses%k-*Zh=KOIA>dAo7rhoyR_ziBNR#aw49X!b` z*pr81hH`trN26r22UwgQ9|dG`&LI!vM0YUAno{KocYLJI@&hr}me+H-<_(d$jGhkm z_uVsK<#n4HarTvbxep_JYr^06ckGJ|j&qx(lN7;Tj>H|w!nP(4Jmu+%I_-2kBZRF$ zrkF=y$VY*1dpS1W|um1TtrPEm&lS=)T(n^vvw0BA*wI!MtW+S zhbR*o6?Vmww`uH2cQ7Qbj27qY1xWaN1_M6GjF%e)FuYTVy3~o4o*@odMhjz?!h(Po z@6XTc>By+-dNp?Pwtb}{nL^G;>vojfJ^Y_@U~)5Wj?uJKU&LgoI$*Kb8$uXg4x_UW zvy(U4G1@CaeWc5pv{ZujIK<2!=?J8!b;mTZzfrOnuo71z7V;k%Lky=9r^WDp&a*j* zj;~LTZcf4J-)~MYhG&--;Os|mad`ty|9&>S8G^Ym5dNhA)=`?w{o!DRCHEskBH;Be zsa~tZSILRCTa5B@RQiDMKQ!^uTEo90{yX`}6;jo-RNj>Tlb{%*%mKSRqcWcypEPqv zQ8c;rpf^RgQ_OA!7rD-E`OJ%%$5vlGvmHAsqa5X3u+L?R+}r;vQ#3}<-xaV#AHk2; zm+!b*Ca$s~w|r^1Wy0F@7q|bGCu;hVGlRk@`vC~mjLXfSdVcig^t@V7z>NgA1DAZG z{;5B*)oZc?OPYOq^#1MX%0`d*po1x9z#8-&plu?ls~}dV9aBP)v=i|KBvqAl+D?7x zqH1<0UAUyjw}C8$+*IE*b^~L`nTZmXW%md0Z>c+T#asd6D!8r9Ydu`NQ}IQwuFh_* z^&uMacfo~qq^c5e3EjxDikWvNbw%CAL#p?;LcL!Dn-Pp>Fm#OqS*#rRj;UZ-19J=^ zmyZ!t=`YO6Wo+nm@SdV^5@h1kvht`5K}}gs5a^h%-xp&2zIwX{&>V%bPb6U?JSex|$8ohxUgG#FNT@f5IL1H|!Mq3`+q+xeO!lt?K1GD%>lusuBhc*D!D#wBY#v!== z@wnY?9|Cz|VHqCsq4UC1RbV2zmj*s@qRFlZepdsc$4dS*7r>hqua-o|EoF<<7E9?-6Juo-{a6H_p}}&w*Oa)>RHfl37G_F04B7oc^^@x?(M&_FPgDJ z%>Zo+M=QZ!w7m!5Z$ibM2;kb{)K1w}1tQsLbyTVV`<1%aW{vzz8*q)L++50x~jRa5zOVWQ#OmDb(xRlbhp%`s@9RbWmTnxC=SX1JL0}E?V;m2 z$(xc$TNHxD9-zd$w7qDpWR#Y=^9?Q{+f^iuHyUV*&7L}xQF?eJRHT|XE*NR!klZ*+ z7NhNo^ZQtF(ilYljapEOH8~&RU{O=65nrcpumF&O8TLawnKDNs$iy}3$i|iRBzQOM zaR4X^#!fM;vpMCn)B->g8llj20^rQac;C~o!D_qVTY^;$ypuLo9af{(L@jiRkIN~< zhz}PID!C&o`MTWsLxUQjF^SQ8X(xUR$gwX7J;!%p!5i zSBL?qHXDsb)heOZ$6JoytvQC$B~~9jrq&qa(qRYw!_Wsw98j*^M2WccPhDK7VzhW+ z4N8EyMn0yg%g18PD_+FCMZD_;d3-r?@<=677JhLJhe$?C_2^+f-XUQ~+;mS&ixR@k(jHsJRJ%@<8(bjZZFG+=RjG~6RJ?i1~P!$U)l5-YTg+-UD z>yr#VGszSQvX=8=|daYf4l8o z@4IHF+wJvx?Owb2U8B`(_1oWp#)DgW#FJ14*@0Ki1@<@c_~`d4Q9$=lDU^%z@0*RCG7+{ z@N@85*_F~t^6K~R>D;>zXJ`B`b$9;YwHY-XMd0AA2X62hyecMhfJgO&;XsdZ6}$LwPjd=IK}edl^l)xxN_9@n+1rU#(v!64u?svZ*`iI`Uu>(JL~F$i%S zSUMQ^*S+u_j{*8MB|w$yGu6yx_MBe~=5_68l$I$Sq}S4g(S=rY&wt6t^ZDcF zCyyRNYo;unmO7WbJ3STF>SLZ!O5v2TybG!7&XelWiK9Xn3P|YEuDmrhDpi-_Mf6T# zWT%8XFWm+nHbOcWW!(|dQ6+^Vq&}`QLb}}|+B#s0Hw;;Y_leSEhSa5nBY6*+b(J7d z30OpssU4xF`dctuZYOfgAr=#N0PG*Tg(F%in0jZ50-5#ESs`&aQ7a@4Cn;IYTA!uj zvn-O!mPvzFSxvQ2s*aQ_l!_F^3+0lfQgz>1D%V>q)8*3ipm4b?9ktwonV-VT7ttjv z%31NKma^#T6{TY4%Q<3zM)02R;!`M7dCLo0SUM*%&1JdGU42|+@~cnT-(Onl{(7D@ z^*<$iJxcvsrT?`$?VSGCZ1lJK-%C7F|I3O_*}!k*8-zoOVut*OYH+r;!Ka@a{VFeI z9#jAbxRz*wSMxElGT8Ogr!}NF5ru1i5Zkd@W9$Q}7(pMubfY5JL8ljdi6%uTetHd# zwTg;M)m4Ej>vD0c^-SS>;4>=Qs0&J_Cm zdEmU1W&aC)O$ak}Y5;L*%G%1t5C@>DuGQ12T{ysf2|(v^P&2P6(zm+C#wM(RO9^3$ zDgxf^f$!&nd})X8OfTnl&x#uU{JA2N9Hb!2o988Yjhf)9BGBSvwN~TYTjhT~iTSIl zrBVQCS^@B1<3Lf}uV#DurB~Rxbmw29W|JN+E zeD_!BTKKk61N$Q!?u-0>HBj@!KQurn0yrGw5VOTD_tUg87pFJ3MlN53rFEVFiPGf3aaUTG3uJZYy~ zMuq3!C`(&kYoFZg{@Rib zRG2#uFj+sT8)`E`P?$|*=V3k ztqGR)^)$o6nwEnHTMBG@L$`PE6x)IR{qEbZ3yUUaJ=cg5ET>#+ZVtD)W z>FL$&#nHRd;pz2<)9V4KlCa9ZUEc7&$K&d+$$r=YtMaK4{@a0HPR&Yz(S@ zn(zH-UQJ<%^q`8CT%J8XJGn0TO6Q*Vx|>z+3-BsTS#5g@=CCY6GFPZ>HE!wh55uFk z43By5(U<`6ozlg=F_CS*tm&_hx?OIM-ZEMo0s@Eg&?@IRB zJ}cxub?eG=%YXfDJ1_rj^}iQ+o>Bf&-18v$Pu2N@%YW9%(R0gjo7{hM`)C13%@q1x zrKN>TjynPQ!_~#@(fga9#7_Gv6>|RK$b?UAYZnx5s_ToeIGT5YWnxF6bgB1iyPZPu zHrLE+0Hq;2eYF+@YdbG(R7=f|Z!`lzi+zqzczIE+WL%GZ^l=Y-FJ&N3N7ITJoa@W? zH>bCsK8Xu2WNFY$kK{^Zuj2l$l((0P+k@AjTFpn7JW#1vSDgP#p*TP98G+vE=?aoQ zi~xedz{xuVtuQD*wrt_oo^E*RcP$8yWep+3WYV=f5xV82L|M(5SB` zGpTnUW&W4d%WePSvQ%+M;2PcYysz+CVvPUNB>bkIrSsoh^Z7IlaK-%Zbo*KVk7m2o z+0Or$c+C92$zJKY0S(ab&x3Tps;Q>@?S6lHpzHLQ(0E_mZ6(|v4XH+iup*6d2^ms? zo2!TwvZ2P3>W|ikD}vL9h=HHqzd5}fo*rMH z-iQR$A|D?WiPzM9N*=N<+t!&q#BFsNJ9$+Q6FyTh^zLvtsaJl%A_Uaj_UV4tH@*Iu z0T|rF1+CnLnUpCui5HN`OaJ z713u|kn8HVmlwyUQruq3uI7$xR}Q}!-o786UJtL1)`F5UeHO~m@$u=^&F#s>a2;gK z)!cclpj1XrtCwG^ZO}0%DnH%aT-{z>U;h0cx94ZWo6`#!c$2q5tlhf2Kisq=^tR!X zp{h&B4cL>@;mz&Y)sx}cSD72&oFj+bTYaYZ#3s_K&rJiTf4{jtx;?sns|i!6xIT

d@<=fmTp^V5^(XjfffpE5e1bU&Z|qlj!vQY>-FB~^_5W+Mw(-9&@)-GFjx~6tZyn(h3!hrbTW&X_1OOb$tDN*@Y3pkR zimMc0%fEXBDY}Aex+Hf*4vMZ*1$AM$cQp%nkEHQMtPtzMj(Mc+c&C;8Z5~qgRFQ!) z^Jlfu@As<}%+M^=MOL~l*5o}P!hf-%BXZ@hf+L1CycHEd<+5l%>fhE%lfU@+Q(3I0 z+*2I)alOFtrB2G%^C;AUwz$SwW^3jvpBcDS3+@VDlLNJRR+Dfy%xMCUA%xgPZ8~H) zQ4KJOm)N)pE%J84LNTg>rKOg!j6u2XBREAjU`2$RSLJM%Z`htY`QX~(I%N~fRvI&N zQqrQJrXi!lTM9^KFkV~dgJLfe-L0l0w40K0N~ow*(SMY6Ph!S3R3~V79)%)qSXY-f zMpt>cY6T{YT%mY|Mb=<9#jR3*y(zg5%`bU>sr2ESqz-*wWLl^6+{nBJV-ol%-u(2I za9>~}c_^z0ylkm(Q|$27E$t}}NOOu&P}HD5bVyD8B73164AIaDjyFyW({=$#@)nO( z8peA4O}Wo<@3h%ituwXHpJnjc8?F(Fk6Z`3 z(;#mTF>l{3Sk&?_x`f@lSd~}cp!|)NVPF?2YWuBnS+ZMp^yd`Z?<;6ygU@pPkB`<9 zmA}>cU%%h#X3u}yt!@6_7kSF!fBAy)MdE(-GN)xzUQA!^Q!QOiYH1qSVtH1HAn9V` z1^~~aFn{u$UL#90`RP=d6_LO8L3lyLZ+eoWz?J3POEYkaVpSt0S94YKYhdbewNwSM zwANKh=rS56(Y`2Sg%76JvCd$WC8YVV4lS*i!lmR)fv%!xTC$p&1FA(39!*$FYj}$0 zw+7=XT3eEIA+e*?A?pRI^BM$?P`r}hHgXOh=Rp)xy!LXuoZ;bex~hT?BdlSzcS2*DRx*l=@ebPL_KZ<+QrDlyE8Fhtf@hF95NEYWqKc(~u@HQg@I6 zqh#0@|IQ!|K}39cc_jBte|MVR3^>7Tnv6K{io68&F{KHj`v=W~gC$9>&BP=ArMSnB zf~vUxo~zleXM?!Eu3D5I{$Yb#=!o=n4zE2(j~QeY&+tsMq#&l}>m=jjXNhI=coq^G z_`f?Mu8=1lx&&qSlw!-`Y8fN-V!{s*Gb~h>N*WIM2MHUdrf{07mVjD9+A_oA1N8r; z_8-Hl&+7l%?&RY?+nufd|BF1&82?$g(5>|THMRbjF`)9OC!fz_m6I$C0&;&9<2eq{ z1fB9#L|uKS&y|)t&K|u#IlH<2<@)UAbcr+V@bu>W*@^x0?b%BPmkv*_j;@bxF0Tim z`j=`2fU~Qcqc`WL!`nAU$3LH5oD4uU9J2>x9Rc9yv-9)eFK0K$KMmAf9i{PpooqUi zzicKQ33!Is!OnWIgPpS2!IUhwr++^_e}8g%a&da|%jNaY!`ri~51ry9AoET(4akFH zEv=)QZ!Xw!1;Kiyj>pBMSdmtC8$bDV#7}$_h2**jpq@*ay5S3hE@JgD)V6ZD?>~bMHM`=sb{$5d0_^Io^t&KG$o+x4c{QS96 ztJNwn!XLPr%7w>yvvP++f1p_89gHe7#Gvnxo^J*z7`;ijeJ^F20FUY#WZhIK;2qtS zG8S^~chiKivUz;32A+#>vxKsDD4rnj%EnxkNWJ?w4!g_lu``&%AUGGbElg9R!R~H0 zs$(6P@+f{8DFWT3{9~8zX)&IuUMsFIPib1{Gh_4o5?a~C9!apH6vT^C4La>wzcTc* zmxFbP`1!MmZWl^t6o6Ms#IPyni}lXxuOodZyVnh0b9wjp2TZ{f#qxG>-vPP?msKzKl<%#{^wq+(c13+FY(A-J|^M+CZmn){*rHAWbYS6 zfZ-G`0rs+P)Cx_B8YylVOb46rX&9z)1w#LMp5Bgnkz ze!6$d-hUH2w?uWjZ*TYQ7u~mMguKCnr|B?4-Xr*(qw8+@{7IKseN<=9*YsI)PU!Qz z;<@2KEPpmIgErVwM10-SqiFsdI8k+Qu`XgaiwIRgH6nghzq*juR9j<5rvRZqUcV$3 zuXl@PmCFh*wkqkzUY%@2>n>fIrI##WYmV&tnL}iP1b=kZg`%*gW%jmCPo9_Bm>#Z-Yvu5?x?DRhX8SJuZ>X%Yc zUtB%?mQ>T{QA@v|N?NFnuEneBm92rkwD#Hi3NzbnpLL#6{oiPDPd5Op)c@PPT>k&o z_Wq|Ad8Gbt2K)DI07!XyO$&h4lP_QbFs*Oa24KK`6Gnh^2)0&$trg&FwgMPV-I@Wm zW`M03U~2~0ngO8@|9_E3Wv!Bfy$S7K zGtSHD{#2$663YLcyhKSPtSmMHs02gGVz8zmAnlZ;Ts=#il^zQEEhy(2*{y26Rn1>k zHBUwqF?GuU^!*r7iq_PM&CX`(ZBY2(%||3=55+~)`4U3ds{MZ$VDG6n0Ik^nJB@ZT zd;d?nz1{y`1GkhTiWfd!1`oeKyr39?_`sL zmeg_*px7T?i(pmf)%R`}RHZo#u+P8CO-rUFl^F1UdR0*U@qbP(s=L`VX(3^9kNXMI zOhYNm-Aw*8kuk*FfecnH$Ckcrk(u`IUrJ$Vm#ks|f zTvtV=(l=E7d!VTa^>>a*pB{`&_ovQ0&*P)}cxK+Dgw@6X_ZCmnASPX&@`H zmusRkB3H*T@!#_9km#njb6`;>^cMKt?bqDRYfPX2tr2 z`MOeQPY3>~!us<`i7ziyXZU<0!t`^}=efk^n&kr}`1(eyzSn51@&^~V81naWYKR-r zCELnX`)3^b7BOFyOg*{QdL(2q;o7M5IH?13MxM?m2fRHOtZhP6n&I#oMFI98b!uAg zt?Erx34ScDl)kqrwN)j=V(eM;#p4W~$5-#)GaTUG#7JDB*h3+M6QsLW1M+&yYeY#B zdq^$rvHF=h1xPx0QDWZ629D+^h7)8pQb4U$SY#bw3cKle zNO@h?eahs298S2N`~vyknvGs7cmCgMZu7ss$RjNLXL7JNVfj~l^Obr2s}8Pd<2QZS zxOJb-JzZqUrf=q+b0yYOed>yBr?&Z5I)fr#9gI{{d|jbl*z&bdZv(&~Lz7sEBCZL& zq)DfS5U@(slw}RuBG6jxIx?B$ zzGmIN_RAE7V8}=Wj)DMS$~(Qs)pid78z87sMxqG$)e7L#WPuRV1q8Q<8KYjLa#-ei z=_Tx&FdWo*8%IG<&7odShAQ)F8nq=C39Xzq7EjeZ6tj0Qgp=hK=+gPKPQXr4yDWxi zjPIV>rnvq#Ppd4YfRq5t>5vt2{f~o_PI!PrS6oo?SHL6v-_mDd9pKsLPF#09nnc3r40{cZ4aS zjHY@X|0&v#yV+EHw^o1Weh~gl8H-Z=FM@1JvkBBx)8caI@27Q9rZ|J37F5=ft47ef zL!mDcajQ|v1soKOnrg(7i>gGMF~RpyUH?$>)2=OkISn{HsENJ{(h15%qMvEAneOtB z<~UQN7*{p2ej!&e8sm@E-BL)341-MH)wy~0wY|`)?pv#@`$QyW`T78a$!vsT7X~lu z!YHym*eitG>mcBJJ04>XGIU01f?~e^NwMAsSl&N>KP7SXFYsx2#X*ZGLS}`O2)OBR z)YhM*1(eq}WkTLFjwA2CO?XLSeXm6#31sBT7}=!P!0e82uq!CXvXo;1&7Om#)N{mj zU|-x=w+iJVy{vD_JIX1abC1gOh}DJ3^ccl#1#D|zMU^#&x3t~-v{<|Sr?wmSvd7~4b`U)NKn|IHFk{BZIM8chkgJGQMk4^<3T=zr~Y zJ9GbUtJT@Yf4=2742V;WB3WvbO{;>-qAFgICpD=Puz@Fp94iUR7(=jl)ap zKll>j({DjbR(NkU<*latqMGu(u2NtTCLvp{^u8Ygh+QG2OFfL4btJ>gaEjNo4&04x3uTW1;CY6*O35M0+Gk) zvcCLVSH;@mu%4W@bO@eHOydHX7vj1XdSgd2yC}!zTM*2a4qKVH_H_9xBcgn}(%6P1 zs~4fi3!F&kNuJ?zHQ)aWsPQb=xQMf2|Gy#u_7=~Y|Et;Vb+hq5{Z6Z~-Tz5Uy{SG&f3?C*jIcLiHg-{3AlGy^MRrFPTkD};pai7Hs?o$<2xi=Cotcs@P$J3 z^MjHP*3Xw&KWyI-8zh8Bgz`I-$_MoqOCEW&3uKQk6Tn}@D%(*068da|`dz6bBL2|2 zVC0h<;%$9RAqanSMtF~l3hoM;6t%3KM4gyz7k;6BAqkTWgj@rRj%BTVe-X1B85rCtKM)-zu8vf6zigRSMua*!F%7sob(YPDK| zoXXEwz|wpf(5c_dXY^}PiK>YL7G={fbO8QoqPzZ;Vek@IXbGrO4QV}43a#2QkQ%!^ zkV0Q3c;rbXp-bTM?~Ev4`%BhNFr zkIT4)uSp@bD3_610Lbr1wbDW*BUgs*x=dA8|4Hn$luQp|q@|EH&O!w&m1@o+d8&qP zCCb-QYYvxQncTnbPNp*(h@$F8@m}VXtO=1Zx1EVNw(W+t-O#oh+IBr9P=dx#j>RJ0x%--9_Z7vEIoxUZ;a=jT74)wEz&kLKQxkIS0f6=gH03r>_- z`aRQtOk7dVCad^Vo_otU=wzAYAznGlPOP?m%HM>aGM7@FX`s+evnkpbRsT1q37LVYZO;g~)b%Fm`8mg;}RKfyFk z#5{PD_!IQ_tH4+2f1O@Gr~h?3+x$N-@(A@VBED}1dn5*XBPw8?hrX;%Sj5yzmBf+? z>u8N7Rf|J9OA4=w6BeQeclNdZ>E}D{-3$lLXyWLwMxaJR6i+un7Hznb+UOmwD z@99fLMuvaU3`K>`hr2~IFH{DKE?}79@MsQk07n5*K56!=G+8ktLl)z3;;LL$(QLlr z^-+Ky--j@Zg!6J08cyNWh~zABNjOC?VAI7F@lWSijdwlrN2<*PG$)5VLO=u&w15m+Em$%n^$ICD$x@%*cPY>UnW#1#}$8wIGyz*{o*;W zjnM(%KV&2ZT->mkIS=8inUnrMx!#YoAU38bh=(qV;K`er3l#rtq|Rog`KLtcO}l4oP?RH~2^U6l(_HUwd9 ze<=q_#%;=N;dObv)rtZ2rpQl%qTBwi>^10{I2KR{%PF)y57?duyy$s=5ZiLoLOQEh z*W1etidTqYgl1933hBC4xdk%!%kgjLGx#A=0#aKYjHEMmc z+q)pZ{xZRH6jryQ=o6oE`H##Ho1%nXC&81v|5w|8Tm5cU{_FO)^52U*D{R~xY{3qCYuSUH8ehsLoF9?`yKuhHv)YE8=1T3u&bn1*BhF*~_1KAv zIA&`rE}_rXUhLY7CoxH)yqh!U&OPwG`1&DTLuF|yd-#&z#=DTfbzA4`|F&9qeT)7(E>K*hBAN6-_G-M%RD3Zc31wKBtt%e;N{ z$|ln9eMGj>{zjit`G4-c)cvoWMmy{O(QUW4{vR*$6vqD^2N2IT69imzf8vWq0Uxgl z13q3q4psPD0Ys3N{uN4ez1%4^K(zalB$`e-pO!Y#<;I zsBewxzZ;`E7k#r+SYiAOVaDHv34gsiigmyt7t-kC?#u;9|01BkcjwAX^WBl5_XUbT$+e3X|Y`Wa!aixjZ4BmSJ0+F1SV`sV*Fe2 zO`D%Sr8#hpB{8l^fU2M>|8YXVQfh+IOBYHL%P8NKB>=yi%*yAHEugwq?X9%>ElaE4 zhWu!(zsm(kF{4G<4T_GNTQ=U{(8u9Ktsdsrms~`Qg1_WQZ#&($)BS~~I|H`-hM?5)N$gl8qQ=Lyp)&c<@#V}sf*SbDXuwB(eyB9coi4vy3N++)p7q1jbxqH{AlF<89 z#Y)&(E?uJFx}IDc@~zv9JD7`1-UZBjDut0Hq9n%8IP`5Q@NLQV_5JDQ=IT0S1!<6Y zi z+$P9!FVkR)`eA6Q=$7fD>p@w_5t+twoZ)^i<&c8*^Sn|}XeIm{_qaf=NX!hyGO%Q3 z_O-{Em(GngoqKvU$&t$81Ww;2?4o!ib?zGPjt6x!P<4k&A4Ss z4NA9Hs<0W3{c7AX?M40%;f1-TYL?s6p27RFNGp12U(AOb+C?x%A-hK7k_(2?@2QL6 zMCxpxKBb#q>B3P}9-FD7oS9sv@>^NC3gn(@N}4$qqhAvoBR`$l1}(X>Vw#rWLf@a} zK&;>C^fl9T7t~#MPB7OtdMR&2vP=CJn2Xg5+zxX; zN|x#+ORlx9Y9^Qx%0wq5T=Uam?vlc#zLRC1)aHj{7j(JO^3be-5%lg*=xZLf%h#=M zOZnHZsUq(ZZdJQ!Ik%d%yFhwa%6rQe{URpf0>H8sxu_we1bOF6TJav?$<(dd1a$J_8*G8_z5YW zooAK*Z@ZJr|JGJ`aWT*ny$%Y!wDuj!r`_;n?hQPL4BeqcaplLXkfLHe zyZjZlzqC;|fasn|C~JDxnm%nj-i^*ZEnDYSZ|mS< zRdAU?@J7p?6}5bxg_wakj4>Pqh}z5K_ftrJy1BU;>Lavlia1e#P*(n(P(8 zosZQdhqXGcERc~(r@ANq%#uMK;niHLnJ8IDA@5T5%4WF_%1hQ{xhN)#cqFh7m#g+o zYSk%Yk(Cn0Ncawc)a~xIoGGnVe8spqU*(mnQ$-vK41s6ljDz z3QpS`L(dkFw{uRhXvgYU6m398N{{ztPfiSo3r@zmxfKLz=K9n&E7J!7}R68QR zKL56OO=lZ4a+>CP2R%C|Qyr;a5g#ZX8bLmnNvM=$l}7lLx;Yn)C<>(#joGelJI9D$ z`YI4@?N;J;hO0G}_IO)_u;-f;-I7>{%xQNEX67>Yk%;(ptL)l+GpO!nas6eALI+Vy zMHHVJw}|+AU`%4M(+ID^v#UKoiC)7gxF;b4EMBBh(R{c$_sO+D0pd+$yREM37t=2j z0Bm8joB8FImlABYhOpDyy{htgS>4^uPhZX1uZ>^j*;RGT8C=PeQ7i+Ps=X;sJOJrE z3IdnmIXBtMNG6NbauioADH^#UBM~?X0yV%zhyfcjt*Wi^#$Y5m3WBP&KD$PYWzHz)Cw5T}lvQI!pEhqxa!!7=WdcXo za9w7~Y}js{LTh&E1v;z7{~2z5G-{hG0F_*=U*aCLdbcm*_3smkhJkW%cMKZ}T6xwc zQ!}H=nD?)j7cbDVBmhcJhiS2%`c%dY1jmaCO8@{a$wA$Q14 z;W!gCwoaoo*%>ct(#JgHXv&cJxl+JnEn=#{Z^$sFnft3TkZlc4e*jOV&z~!NB@k2I zojPh=$V``Ig)N%O)7DLhV=MOmjobmg%Ky97Xyx|*PItTizr?fN{_?DMfV*ux@ctLK za>gFMp`}!mW%MkG(Tof!Nr+;n@TnnfG7v{_v7x@dC_O-Xo5-w}=0J zo>KXrL59XjKsOKsx{;wB#r2S6~_HZ*npgxKMvY4S4vipgm^0$n- zWTeddJMHJX_O)~xY&^KKe3ic^@m)ZmZ#Vw|2G|!ufg$QLLS|)b7)3PAyJ`{Qn=s*} z=x)t-Tl3vlcq2#Aj2%AyW)3$P&Xw4oQD$7*m!Qm>GIO4+a3cS$F0ZOrdfNgkw+FLziP^jfH=-U`-=R?5WHnDOr@PUr=+pfRi=eK%@Bcwe6y^GV zdTZoU4FD_j|8}pH&HvqRHMaM^zQ`kWd=XDLgV9DjeBk7l{MweEt?fIlU2SnF^7*=An}(9ikN`w6$=;ZnY3TLJ z`m4_X^+u4rA!cZ;Ll3>>WosYU+6SK9J`lxZjyVsbILD6GH!V`+ZvBm53}=X;SVSG9 zzXmD;&gIGFzz(BTsT1z@!1r^p7`Rh&4g)dqqkw-m6j0T{_jlm)=OxxVc}P~D!8>#o zvdj2_kVu}&xyf>iT*5zpuEcz8!?P=KDQk`#&R07lgS-M(q$es`JtUyaqEkjs;XNg@ z=Lw41zcUGNNyH=tMVD&gS{zO{{ys~&!tP4>Qr%DWj`;ZnDObYo_StNPe5{j6eHnqX zO#YiIb8|TP1&yYJ+#TCF2OcI7u9E-S-HiWNtJQCB&wpOz5sS=+>|nbICN>}x=Ge(; z;meAN%W+#SIIga{jwrbrN^xG%)%8~88(jh6!Ffnmjq`K)r$c{+DgQG@6HHlLeBI#x z&)&Otw~Zr-;`i@-3LO5N9V;72etX7qedoFzciNl8_S#PR&St$nGzm!@Qv^d$a@0w_ z`|sdMy!g<=a*`I$>5fGLg+c)+R22$U);!mk+K+G&#_?XAf~}<7rAoOEY~Gm?6n||7 z?h>UNUUufiW!L0y3E%Fm^XlsAw&K)Jsr*L;*Q>-&@c=#U{lD#<4a@&$cYkI7TgpQP zIyTst5B5UjJq_X$%XbUh{$bq3k)u?~wP%)^JfqIX9X|?Q#eLgMDo+;+{Dy9@Q9TJurB_`{)UnNWovVLe|7%5l!wW7N}{R-$bDLx ztf!Rs)OlMe=NSc?$ahASI)k5D+_Lu72!vKD#mBJpsViO+xRlB9BbfIHy5Jq_hl=~k z(D#E2fIq6Ck7e{ct6nW(LT!2G`Rc$tSsfspE7{kD__Q`ClbEz?Av~qv8#rN|@Z&zp zqI@ts04K+U9sL0hz}D^_{gv@<3t93ge()#w82}N+BbZ&n9s?!0fhnIV%Moma2;(*^koISgE4Srz*(9)>)j>FaHhwlER1R1Q8XVoEN zaqL)2ZV-$LxE|D9Ef8l|yHXH`px8_FFG_!19Z+>8boVbam|`Olwv0vJweg^TUnDGf!Yh(aQ6h>t|J*}>&EiOw@5}o2HhAi=& zzdvhmxS&tlA61K7jPB@|g)1#l%rRY=s+esH5&$dZKi=fy-v8d*-{0G`;=k>!?7vHS zn#g~A8Z1}<XrxXt4#6S3Wu^gE0&DaDUh|8oSh zh&5%E3`RIdL!|`GOl`GyHA-Rj9>dIWn|&=xE;2*}5O)(99AS9z;n-C*&0viD@NIOL z`DGY9`0*8?G!e)6WGl_UJ`QqPRt@AmN8L1whJH4ApN4)8uky^#VShqLXOv(FBYc`!g@WBtac{}zrRy)5iSNe_9ta^c@YfJYew_i%y%{7h(b2YV=k zB0sYq1cdT_G68sW$I3afev4S-+Emvjx3nO+^Yu#ZW5~Mhv~aHGhH}z2Yf&jbd!t+l zXx5@AJZp1;Uy;>I{UDk&Ygd}Td9r3^!9b~3hQuT3y&MI1Z6N?n2}RSn^iK+=i`Gtg zLltmDcV>p?>R6RFsdUkDB@xIJTaxZfCSM zu!$=Hxj^nUOkn0~xH$qAnAsQTn~Gjn5YxSJXwcn7+|5nX8sBru+u{XgYDsQa8hH7( zdWtAQOZ7m=V%oh$%NMf4WRnXNa>#1fIJdBLXjjr2F;7z*jXGs3t7W$Yc34uq5(kzU zMHkeJ*7T3fGNZ_aOXQdl5$*JqTj6*rW`iOd5&%b35;4}PDL=Y7p%YRC(r098zVo9b zhY8_M;P)sA(Sw8e7*Zck6B2zsCaTCWcWH5F(4cGQJNCS_GcHUl1-P$YL)C%&S&nKiwhk`)sSY} z=L&hz0aqw)Hs~ph*jx#(cYCrd!B1+@E^G&-CT%wG2ULEkHeBoC>rZRBcH3_=6vuqH zGd~HB;&kAjjfP;?bW0X=Rir~UNmOysa?GhRk~^g9pTtT&jal5eKQqdj8$1Q!6mD60 zx7=&jVq&VJ4wqlqn&OftD<S6QOs=B5K2C%x&i z&j6G-?Tf8e28}br${DM`y{EhHe7buF03P@m3~%}8+gN;epc_Ybbk&flL{`rGB>JSp zP;RraiSDLFQ{xFvsfZy{$TSD0#KYkVx#U2XSQ@Xs042E}B{1t`kll=(B`UI*4#ql^ zAe(1r<9j))kd6c0qppFaM@R#}BipveWdL2PsE-z%j)M-KExUq=NO}0`Ld2M(y9E&0 zV60iJ%)t4-y*E>IT z@QY8>9_EB0M^hX}t$kv?MQyVHq~Rxphf zIPp}gx32ShEqMl|Ojo9gD8%rH*6C^VQb~FU)}=QWZWD2-{T#QS6G=gy0y>jNh;G@T z`ITt*gxME@d7{J#AkRJIBEYB4J=89|v5vMs@t)4KLEIsf<2++CPN5C8;yF&!>ejn@ z20K>a7 zD>O%^8Xkb^zBdk(ithzN1vh_!qfYe*c4IzEDx1J1hE!#BJ-zW%F0}>NPPIwDGM&0i zr*&pfdx`xCt)Npo2iF-P$@XYxt5CL1W@_x;p-~cuhRJtlk^^2*d{-4L3~5wuujq64 z1sLRciVwQoAV#Aw@$+a5+iYotC>RZ4!YJ0=>}>9K1C%5%Ait?N8YTVi|0fY^YvIM) zh^Kwv{ISG1D$vzJnSff`D4e|Hxy@Y`QaI6Vq_o^@cG3!IeeqAF{EveH3`a2xf0^qd zV2%90yScw@$A8;e$^XlEn#lih8hj5I0Vy(n?(2Y8VmwwC16LOVpZsE=I`v+e(+-a? zbu}r8G3an5rt6!{dS2P|Bo;6a-Ss-+dxhQZ(Nv}aw-P5Tp<0R5PqR@*RyS!=z%8Rr zQDQEI?n)O8euRsj4z^jU!=o z6<2k$gq|g_bA86P7%;)Zm>wzE1=k}b_n=>&>elM&S=3Xa|BYb`GbAFwaG!yjFo*D^8yZ!kRaD8R5FTl2>98#4bSV6x-QK|& zB+w(Ddj%K24MDD>dQu55st&VtH@v?`?en}D`gd)laK**UPeQO>lCgf=YJv3xf^`uz zoV)^_r|2z)LVG#CDw!A~QY1bh@6A6%f> zgrolR&O@BylO7S?4}Z_1Tqp{xg60={Hwx}yZo$(^c32@-Fn6n?dc`z@y-0=%Wxsg$ zDkH-;0v`A@TCngVrN7Ga2mO?~OO5<56wtYR!0O^ZZthw6ANRI*R`UNc9xB;OGsEIU zegX1nrF=PkD+PPCR1;ZVEng?T%d)dd>;)m0D5MKh>5m|n3tU&C_(~N24(+&vty&&W z)nN`s80uDAe3~$|nIl_Xz`~)tXk*DU*Fvf1RuJ_ZkpZlmaX+Q>^y5D@@}Hgtaz+Di zo&2}EW#<3c+TGn>$$!gu9Qhv~!2s-T;Co62*~|o7UT6B0kkc4}OKQ$4Q<=ESVC^1G=<1$9Af!dvZ$RCoa|G@n(Wyi7Cu8ZXuEf74O=C@e7wRtGmZTsh_@4?0 zdVPm{GOobVD=OqY`B#M&j#5a5p6tJUBa8{}2dB4EE9w;$Rp!|9qqvCla4ZM{+GKV` z8A^s^FZ;k_mxGVb@ePO)_HUj=YzWX8W?2+MItb2s`M}RXgn=Jt&<`hkR6+rYO%O>a zfhng}t32MEJD7_~1u=PzdC7_MM zehKqYmSFG}JwTjOS?jl`KOldnD9bVMF^>8PTb(&oZYKqIB&&|ROi?)NhCzgCKJhvj z2BR#>Cp<=KN1caLTMQm`f4D$l-OkXwV+-9Rz*;IGQ@+lKHi-HI4{QK0Mh_m?U?vq! z04GBJOR$DvHjV;k_5$%qzx4oP8065p=D}};oc4gI7GWMSD(rMR`aMmurSM`hhKdq* zNI=R5Fr#pMz?wx_0mp`v`&l36SE8g5$f)}Q93>&0xe*4k8wxxL5q>HK>W*9Fh=e2? zFar3Rs)ee3sMJ*Hkf5Uf5tcjP-6$8`;lT@?z0uV~R&GHEm#9m|ICHpq5Hx)jk}1q) z9i51R_>3c&m=LH%1=j?Uog&4q5tDhz;!x|cktNGgF*K+J$e%3-siGc`0fTdvIznqm zui?PtkZ1B$->Er$qa=4UYYc#b4a%6lTyTO;j2>EGJ(n5 zbaP06b@Jc#z9s+d@2}2(mh!N`GGbE)uVD_vs1x~S5dxh)kr*GHDaaXF5>8gyE4i}SgFK$RB&x{J&w~NGBmxKiI6|Y0Ol@DT00NK92{g(L9HhLs?qfU}LJYhS zhC*cYTDoYi?VVznJ=sZ5kFzf%R!sp&kcmMdw7w*?V|b_wn3NddDCslpl1r&l%aqWM zVvGp<1TqaRpxby4Wnegp^C*o)lmH?x(M6DEkn{!8m_|wx4;4o#VEw=cHIMW(lK-xR-uo!=f3|lwx6JrI zdpmn8`EMCdmHa1OFIEQRP=6LV(CE%mWkIaAJ+C~d18X7^ian%EB-9}`m&gR%g@}e4 z5;KU0E@W0BVwH%f5Bn2|iCE=bk0L6H7HT9#UhHgY%X+m{+!Pw6b+pQuTd}~`?B*X; zfGnRRD#gAJK~l%{=MpB%<-ehS4^NZ)JUc^Z=FpGysq_EY+T645|81@Of0pvp`Lt-W zKof72P^iiR<14cbPLrIjuis!iq)g%t0vP23dS0BrB>&sn0Vo5#82S0$PDj?{>x}w% zkip5B9P1IHa5K9d*zd!z_oP=%6B zCJ%1`Je9Rmk&wHHUEwE1W)O%5qd-VT%J09>j5xrJRR2Qkb zFW3cYZ^HxYe9Q<3WA2ZwqCD>grhTwWg0CP(4=|$@G`UffEDorwb4#V%&*M4yb37LR zkE6TpZ64ePe(K*vag;|8&zS+Fj{om%S@}PtP$5d`_A9GC@fj z4%2)BK3X7eN>jW$Q5qneY=Cm4KhZXjR=jXn+&Pg!}jU;3IA5<|Xx^?4z7t zC6M};)qcfA0&e^pm?7J38VW)WTsG+`X$zA)o6t)TI+06EtZOh$vyLs9%c@;0rJF;H+>10C4or$8Uifq$WyA3QqV!kF># zU>a=8k ze-C_Qn7mYP=iYcF257Z6i_HE}K|>|LeHjJTOKZ2hvZ=SS&ir{ExBO4UsO~L29pi?e zJc?&F1l8Gpc6T-m`G0d`ZzcaPAi1NtJTEb0gQ)2cP4`Ev8w+5R($M;LU!F_ z#1g}J|7W}Nx6Y1d$bg+=D$JXyW~A^kjA+YI62i}}!ZaZ{oyoX^vVM0MCAXyI+p(^d z7iXvhqRQL5FThcn#uMO!495Ov7y@3G9~>L^jno#->AAHSLA-eskHA-7b5fTRc!5}3%)L!*Sb)ONu8 zw4eDQ1lQRJo*i9*tK*}$C*b_bYtomJ177_`)MD_XMT0m3IYM!#5q3Yvo>|5JSst`` zvwt^;|GHtG|L*Oq?*A_5Vdfp7Vf02xz_@1*WuOlenE82>^jWYaAS@=zmEqioszv!o zjjh_uw8zrwDcp~9bLs)Y&mC#BoKX^hy=@*i=W5iWI$hfnhF-VTm*LnO#qqp&3K)8z ztc2$%Y?f6pQ5>NPUN2QV2CZ`mi5>zwnh#9T+M%*@}ZPJ+NU}a;h(EN=F!c;cK3RO4u)Dv{| zJnG}-|1|r*lDhM8<3Da~?^y94H&_1OOL?kUNs{)}46fcHJR8QELD;$&q6UAImRc`{ zeLt8~I1Q|+iDr#McTHDfMqQ`~;5?=o2fzgMs0aM9AH_7naQH2Ejdp0UE<>0$A*!X}hGho5A3N;;CKR5A5k*D`3?P+mB{D{TZGL{vX~Q z%V^N-==gEY|Ms?bH?8x(ot6B*l&7Bmhj&Vpa2mys%!Dbn0@hm#*M6Ij8Y4k&-p^WkI?q{>ZSp%Gz>-gA#|Ply9QW!FrjB!^jw zV&)U+Cn3M?2&FG1pzjgA+r*nz`0Esl@^RZ?GOc2KLbZz|u<9LWdco;^Q>ETd`CtPNSw$bf6a-IEs+ID@7!EM3I)=tIKmo@BlMPBtkLF2rKY&czJG!2ONq@oC@+F zPh2~zB#=_9oW^ob7gH8ocEEkW@3{TFHg?5fMJZByt)sP?``7u~0;9KH~I1M*TbQl&9KAo8A0KaGX22S`M$4OAyIkk|v=*r`f zGhK`kRqTD9y_1#Jp=*&1LI>yCw&||GS0=AQf7Mqai;^urUQevj`l?#BL8B^c4f87G zhoO2l=3k{GQ)jM1wtB*86;a`g)v1Nu!+S^X@DOiP$w2l5M* zER-*lOxm8QpiI%bJXgx|SyZ5Ces!Q}7O_z^OX%pDUv-pSPD@jaE7pz7Yjis!BS-&G z!gFO`sNe!Dt(dR-7ZU_o9iFF`@RU z(El07dR0-ZPXIO@imR$??1eD6c9fqbtGl=g z{!By(B5Rt)sCuj9kE6{-s9Qkf%i3rmOi`5Nv{IXL%LBlXU9J44PsREdMrA65KkoY9 zu-E^}|9>e@gYzGnt8eJ19Wfz9f&|d91NiD{C9KDy8pkiyR!c;;Lo<_zju6g@ft8@UlK%wuyU3;)VV|4umA@xf1wp4(w?gIpAG%woDSJljxyN2 z_5T=UGiZV}>wkNHf7|r`*xO&N|D`;Q{r@`Fd^o0xVTVqNg$KSbO=BF2dZC#XSzhsL zd>OB}(6{EmlbN`MeM<=s-xlYOBEdfSo06d|PCq3s?%a^Hd-_4VFlW8Ld`mCIYZMJ3 z&ZC5K-wU7lxabA$tyer{B_*FHbY#OjQEl_k^xUHrI%*NEu8C4feY2Pb;~pH^xP1}V z7_}YhR%{4WquzX1pyjqIUnttade-g=?ead zM)E`(r!a_m6Y%jlW{cARc>_>JKN=|Acwn7T`zr|iA&dhb!xri1+I?-5A_aeE`1U!F zFW@~g<}#!4!f@9hE*^WwES4yWs8jS>EDi11d5Dq_Jsg`F6#M=A%eTysr>@m+-<}zLV`a<^fBW`~Qo8U|rN;pQN)kwK zvNNk7J69+U4i(nU$$1Ya2jKYp?Cj+D`t31smua8hao?ZZ~lm9lh z%=kZB8yj0I`EMD|{PG{06e|Ic(P0h=uzwFvlChaXo$pdI8s;5BvEbXRMud_fOpMTc z0@|UgXobVsN(^0zp>)FBje>hPulUI~3G2VjZ;mfdUY(p>pB}xvTA9TD#LranAKsqn2%t{> z+p^AoH#hcH=f6vN=9mBQ_Dc4{+bhf8O62-3L@vDjB;pp{ehhKTCT7{NYJ|*SUyU#@ zGa(rqNl2ybIf$rFUCUmFw>!^q#~=ECpu~Tm*?2syTaPG`;%!5y^n(Cm{02@=!=^Ik z@$t#k)$N;;f8L(HdIkV1b|m0T2j%MI`10hMn!r{v>f=1+@*m&#ySLl{;PL$bcDBv) z-;Irx|NnBHY2-h3AD&;j%k z4wvFjJ}O)37Eo?kaiO%#k5YaY!_<8Neua530P+hJt=0GiLg;2W;BBBqtLoMygmAgR z&8A&Yd7^+nwKF2{LiURG!XsO@CuPc(68LQA&*>f1g#ROi^UO~#g=D|r^PkP_tu6EX zXLH5>m-F!W%shOQ$PM!n(9AL+co@J03{gn4?8_)q4dT*jYa5}Q&Y(`A@ipBgM2!O} zOBy1iqM6&V4%FyUv_%ow!{V(nO7 zRabl?oqBOqlkD3qCM=XUjL|3y-~rEjN13Y_@MA`wGL6gGQX1viHQSU`y~f(W9Thrx zB>E)2vJZ?ZY{{RBJ6dY8MeQ&iB%>7Km|F3dC3H=x)Q@ViF@c*6t zJ=6ZPwYR&m;{VHdX5rUZ&Vz+t23?DiC=c%(;po;Z^?4|(KA#DU$t>A3HO;6LuuDl^_ZWx2B&znko^`a%HbzguB_h9IO=nT<@ z9i9?}3kQA-$%JY)DFT!PeqLH&osdxkQ9QmpIl4XpC;#vIWf*dM|qzl#3g!1Z_4@S|So(xGMC-wx!$j0XAm+ugR4r;C|IZx&pj!Ul z+}hsQH_w0fSMlGM^E8+L=LrC?mcdV>D1+e}IAJlgsW9e=eZ%9Ck<|^1FN}K@BuaSi5j+*MjA{TZuZp(Nx;mqka(LWMhl=NwWYdfc|A!rS{9iTJVguBl*#7g zq@u3U&Wz+FU}hmFZ_~tR0p#QxqfLrRi%^XEZ{Zlmo=FFWF8!vC129gGJ4HMB+a6s zpH1GUA(6QA%+FzeQZhXJbELDLQ3|thgkebJm_+$G%cwZfv6`QIn4HbbGG;1Hjr;Ss zgZPe~=9LT~`>2iILzD*tvQ5wpgQk?8f9O~{dZUXSH3oF1Jw~9@uonv-F3T=Hla0e9 zra4AJF6*?!P)A8lIcUDO;{mT1BcJ@$(#K_{k#S-uCC7xOk?O;&OmytD?75**S?MCm zz&eroI#R-Gf%U%jVqm(k zBl?^?3wMYjj4sk8qD(&&Ah?!Txf;qCkMIvO+z!07e@nDt>809K)H2-}N_kJoWN>x* zqXBeb?8bmw8>gqKvz?P|*ZJ8w+47V#L4jvXirJ>PQ|J`8&a6p6R-yYI91W&j9Km*qPojN+TFDkE>CN^9=gK!j;FSzWTu~15F+N-DeQ*Qrf**2CC|9yLB-}L|A z*xcM%+5eaE)Z72X_^bI}1jAd5Q)Y=54e)rA4ZLS$*}8;!JOK?)QsD};LCuMeD3EsK-KyVJ{}dj4|w$!(C-~Z2{8S*h!OjhKnT2}ddeasmv+g7LSdC8Pr+N53JwEf;D?hI2GO*eICa-;ZRpL+T4 z(epoS?wk3)wl;S6R`K7L^3=N^J)mk@EAz63v#gw#viA z`3@8n%u14mS6aoz#x}(%KW}lC!+r-jp6JY<(et8j9p$q~3G8e$!9ES-Y)%sgHOM~% zR%3gqSx-Z#fxXm0N&#yYGn8z&0>>ugoo1J+;Q#y%7oIuqhj?oE|JKgVrpf=eR{1}c z^EBZ9d>+Vf{6PkDB@L{Z$-6XxqZM6U&7*BbY*#~tdAgsg5nNqQ|E&eGuZQvGNK0&)aCQeZc(aC}AxxsnOzI8Sj<>kXW=T<^tzJ9mxg zNc9FzTx2pDS_qZO&qm|JtcqZr z{oI4+6ndbrB25#Wtf8e@U}stG+a(k0vc|R2ImNXC;}Pf!kK+tAD1a5&xet z?~izD`TvHc|Ltt9;y*0qnS%fGSunc-SdxE2RiE7XEf%gt@vh9IMk%s?3AWR#N*o_I zycxw^2Ggk!tvLJY;ZGy}FaEruOaE$GhoCz9-|mKa{^%Xp?>nvC%af1v55 z{~B*0JL!kPbCqNu7H_=}43JGxz~?AvgEJ(KdmelY`q3CB6*eMGMe*Fbg5hCQo2;U# z24m}2%{>rQ%o|01=57nG$!0NtfOSsnFj2w{Fr5Ob?#RN*Pa6~3PVQ0SvEPtlqV}R` zRuhD;lxVWv)MP6U&gU{@HjC6J$@Cm+l8zmnuQU{&NNPj>RWYI$b=GG)M1B8LL9YEAXJf-?qZ+pOF2O-sN z=7k)r!>kg`Y4*^97d}_d+-seGMb{~1Y){~#{Yt@ne(qSl{&6sX;V6b79bU z@Hk)&@dtbsH z%wQ6@9di`FMlkY+s~vC7=B`2KgYuKunW^ zXJ5WlDRBbc)bVtR-v`eCV0!fdxE?_Mw@`hH7M=m1D9x;_sztjh&_gL&l4`bg5!&~f zqatS?7a$Oax?V0tOxoT%zf7zo)fyc3$lYw{r=Hbrr6+<50oJVCipU5@DDkt2x*Ls4 zb|c#2%HQBgpECZR`%wb3?yaBo@mz=hP4a)6`JXoTH#hfJ{C^n_&;Ol|vIGM%*ep%v ze9WIso(=)$FsM~*0pGqo-nw3!4+-EgP-%vKO%qY9GSV@Hpz4q^?=~?n8r8o zSmr;OMy^wuMNaqCmQdm-fS&Y+Eei5}_!$jcsW(F3mbYUn9j-Skwd7HsI{r_-`$_n? z{$J+(&&~ba{jC-MU&f>He?Hg?+yXenpJEq~eOd5E;9%8S3KTvl8eesMceB|FR_+3# za$U~YYfvfQM^>Es2YBlEKTO8+ivM-|e{X-+@c-D{+uvKs|4Vr^{(q8;7sK{pGX5!8 zKJCXN$^9=y(r1Oi!erdwBIE$ZDcz40G+&KUNE4{f5H}il7>zQrC3v*M9?yH*VvJrU zi(k8Uv3R#(Y3xeAHiFu<+A;`HLQQHC3iD1mPvQyPaSEds1*rwA*4jEG6gJfr*KVtq zGGLfFw@rX<^@YBmASmf72Xg4&!_y=`&(07^J<+mjH#IhLPHLsGUo$j3&~wsgr@DbK z;=O^BOW30ayxhf{{p>|B4#}Smg%V|8J%M07h6z|-8-uUl9!_wJB_PuiugS0AE9gZT z&RYx>M=mhS%E%_QW@UuQ_=YLJKFDB?Ebf6nZhUM@TUOs__+gagM{zpvTdgKpeyG1# zF^$!4PL;lf=Uh4$)LhdTF<>a8$r)G zx@%Dmhm-DJ9OwJ;Ta*7ivZ2ZO!v@gV)70}>@=V$ph4o? zMNNzG9D7wvg9*f>9`5u;am?2=Ujij)SRAkr?ci+2`yrTE-N z^66|X4fKB^Q$D8scV};Z&$R#UZLaSBF6FWGe=^z&GXfA`KZ_xN^<}}vfKvTT)f7}U zLD{Q0P7WIaeQmfh7V*r*l9s?*#s?LN8jr>@ZH>TD{1i=P&7q#T9TBaNmXh)B#8`Wt>o${JOfP%g0)S^NuqD;b6jHXbF6k-~o=Cl&bUS}E8jK)|$G>+m_ zgm`;y6{>J_Q%AW(rQ&!UD&Ar){M0yb6v=|m&4M8h{51`FS4toY1GhSjgX1!@$|2MV zC2m~7dvXNe=LqMXM7Fk9w(3-2Wp-4?cB%7Wtp` z<#7%JVd6Rpq(kAjkwl7{Lf=%T5xSzel;>bL?7Z!yIAQ}42J}d-NhaIJJ)LBuz;^{f z2m4MVJ87f^*e`>O))Amx(sc}2l(LQkwLPHV`EsZ2J|~bG z{!f{`!ThP52` z+&RL&!3sQyQ)!4~XK6EnxfugJ8AoB{ANwh0CJIX*WF$FH=?$yS*@x3tr$@KPM;BLy zTcf(4Nk(E8msl&!9yYD&Kwl6ngfKn%H1cB&GIddSpG2S3x2>9cPY!F53#S|1Xf#Tq zPb0{kRI1z)9EiAvCEx=ht_sAlN7VaaI?BoBILf0q$|oN1`k9{&q5ylq8%H5TF5_X~ zv*QWKQR9>ZXi zMfrpS=mdToj0hK;B|pCwA9#&YgaqC<%D|UrLlqb7fxtmkQ{!ep&w^yhE{B=Y*1RT9gbpUO}AQL9eyH1omUhB8wLZV zjaT)^o@|_%%lQ%hdi6R(qm;IQ!EPn0cwM{`AkUe);V5g%rB}njh zd{*9jz`Oo0!T~%op;QjgtTG*DUZ4IwBZ%9plWRAa?h9~z{_6YyocDS#1O0RaFw4lw zaw#yeAA=ssK;q}o7=i(ehjbqJ;lD;WXL1Q tJ6Yu~*;FIb@G=`MgUep6of};?E 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%0DK5lRM<-l2d&_56tFfI;Cr|eU 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 Re*gdg|NqdaNH_pY3;-e0QZ4`h literal 0 HcmV?d00001 diff --git a/stable/steam-headless/2.1.18/ix_values.yaml b/stable/steam-headless/2.1.19/ix_values.yaml similarity index 93% rename from stable/steam-headless/2.1.18/ix_values.yaml rename to stable/steam-headless/2.1.19/ix_values.yaml index 5e617e56810..973d1fa18b3 100644 --- a/stable/steam-headless/2.1.18/ix_values.yaml +++ b/stable/steam-headless/2.1.19/ix_values.yaml @@ -1,6 +1,6 @@ image: repository: josh5/steam-headless - tag: latest@sha256:0364932faca8cfdaa0d933a6aec27f85df29245c94139393bc355ac566d8aa5e + tag: latest@sha256:65190a8ea9e1ecb63aabc5f57434c8d075ec747e37a7bb29c86619cc2d43aaf6 pullPolicy: IfNotPresent securityContext: diff --git a/stable/steam-headless/2.1.18/questions.yaml b/stable/steam-headless/2.1.19/questions.yaml similarity index 99% rename from stable/steam-headless/2.1.18/questions.yaml rename to stable/steam-headless/2.1.19/questions.yaml index f6d982cf9d3..5cf09b623df 100644 --- a/stable/steam-headless/2.1.18/questions.yaml +++ b/stable/steam-headless/2.1.19/questions.yaml @@ -23,6 +23,8 @@ groups: description: Metrics - name: Addons description: Addon Configuration + - name: Backup Configuration + description: Configure Velero Backup Schedule - name: Advanced description: Advanced Configuration - name: Postgresql diff --git a/stable/steam-headless/2.1.19/templates/NOTES.txt b/stable/steam-headless/2.1.19/templates/NOTES.txt new file mode 100644 index 00000000000..efcb74cb772 --- /dev/null +++ b/stable/steam-headless/2.1.19/templates/NOTES.txt @@ -0,0 +1 @@ +{{- include "tc.v1.common.lib.chart.notes" $ -}} diff --git a/stable/steam-headless/2.1.19/templates/common.yaml b/stable/steam-headless/2.1.19/templates/common.yaml new file mode 100644 index 00000000000..b51394e00a4 --- /dev/null +++ b/stable/steam-headless/2.1.19/templates/common.yaml @@ -0,0 +1 @@ +{{ include "tc.v1.common.loader.all" . }} diff --git a/stable/steam-headless/2.1.19/values.yaml b/stable/steam-headless/2.1.19/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/tar1090/4.1.20/app-changelog.md b/stable/tar1090/4.1.20/app-changelog.md deleted file mode 100644 index 72e5a1f9adc..00000000000 --- a/stable/tar1090/4.1.20/app-changelog.md +++ /dev/null @@ -1,9 +0,0 @@ - - -## [tar1090-4.1.20](https://github.com/truecharts/charts/compare/tar1090-4.1.19...tar1090-4.1.20) (2024-02-05) - -### Chore - - - -- update container image mikenye/tar1090 to latest[@d682681](https://github.com/d682681) by renovate ([#17981](https://github.com/truecharts/charts/issues/17981)) \ No newline at end of file diff --git a/stable/tar1090/4.1.20/CHANGELOG.md b/stable/tar1090/4.1.21/CHANGELOG.md similarity index 90% rename from stable/tar1090/4.1.20/CHANGELOG.md rename to stable/tar1090/4.1.21/CHANGELOG.md index 21e60b52a51..b763b94ac7c 100644 --- a/stable/tar1090/4.1.20/CHANGELOG.md +++ b/stable/tar1090/4.1.21/CHANGELOG.md @@ -7,6 +7,15 @@ title: Changelog +## [tar1090-4.1.21](https://github.com/truecharts/charts/compare/tar1090-4.1.20...tar1090-4.1.21) (2024-02-12) + +### Chore + + + +- update container image mikenye/tar1090 to latest[@63c911b](https://github.com/63c911b) by renovate ([#18098](https://github.com/truecharts/charts/issues/18098)) + + ## [tar1090-4.1.20](https://github.com/truecharts/charts/compare/tar1090-4.1.19...tar1090-4.1.20) (2024-02-05) ### Chore @@ -88,12 +97,3 @@ title: Changelog - update metadata in chart.yaml ([#17457](https://github.com/truecharts/charts/issues/17457)) -## [tar1090-4.1.11](https://github.com/truecharts/charts/compare/tar1090-4.1.10...tar1090-4.1.11) (2024-01-21) - -### Chore - - - -- update container image mikenye/tar1090 to latest[@ec8aa6a](https://github.com/ec8aa6a) by renovate ([#17387](https://github.com/truecharts/charts/issues/17387)) - - diff --git a/stable/tar1090/4.1.20/Chart.yaml b/stable/tar1090/4.1.21/Chart.yaml similarity index 98% rename from stable/tar1090/4.1.20/Chart.yaml rename to stable/tar1090/4.1.21/Chart.yaml index 92b7399a6af..6db7befe019 100644 --- a/stable/tar1090/4.1.20/Chart.yaml +++ b/stable/tar1090/4.1.21/Chart.yaml @@ -33,4 +33,4 @@ sources: - https://github.com/truecharts/charts/tree/master/charts/stable/tar1090 - https://hub.docker.com/r/mikenye/tar1090 type: application -version: 4.1.20 +version: 4.1.21 diff --git a/stable/tar1090/4.1.20/README.md b/stable/tar1090/4.1.21/README.md similarity index 100% rename from stable/tar1090/4.1.20/README.md rename to stable/tar1090/4.1.21/README.md diff --git a/stable/tar1090/4.1.21/app-changelog.md b/stable/tar1090/4.1.21/app-changelog.md new file mode 100644 index 00000000000..5e9eaa0a77e --- /dev/null +++ b/stable/tar1090/4.1.21/app-changelog.md @@ -0,0 +1,9 @@ + + +## [tar1090-4.1.21](https://github.com/truecharts/charts/compare/tar1090-4.1.20...tar1090-4.1.21) (2024-02-12) + +### Chore + + + +- update container image mikenye/tar1090 to latest[@63c911b](https://github.com/63c911b) by renovate ([#18098](https://github.com/truecharts/charts/issues/18098)) \ No newline at end of file diff --git a/stable/tar1090/4.1.20/app-readme.md b/stable/tar1090/4.1.21/app-readme.md similarity index 100% rename from stable/tar1090/4.1.20/app-readme.md rename to stable/tar1090/4.1.21/app-readme.md diff --git a/stable/tar1090/4.1.21/charts/common-17.2.30.tgz b/stable/tar1090/4.1.21/charts/common-17.2.30.tgz new file mode 100644 index 0000000000000000000000000000000000000000..a6cb126e1b283d49dc218680d9b1047e66af30f3 GIT binary patch literal 98054 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%0AIfL=!jZC zrz8n{&SDgWtZud?RWaob2|vH3>)})SpY`4zoIo{Ze3dFr^6k%DrjUPrFoHK>M z9hJ zP91Hd96KG~lJrQTxOsavOOpu3aE6!&PnWLN!b~ed zA2dN?kvm6y6UwA?=sf)x!BA%Vv#Bh;y}==u+};WA@w3?s`4}=?M7U$?sC(sZxC5>X zDn?v<1HHQ>8p{5k6X}Taitg5}1!R^43`YU7#6`lUCM88vC1jKfpUp5k|K$}XPSiNz*TlB$*0OFWH75Lk+51f z3PruR(~6ynzg2e3ZlW<#IK~bkG#`{9t1H#*iQuDHgO!Q(RO`0S`6%)35Gy3Q{34Tp zS!BjxU0dw^x`8B1+mJnYjD*H5UFo1O4D>nxg&yHb&G8W!C800#jB!z4m~7@K#^Z(X z7d#*GJu#GWh$Skho?3L*jmjn+mwK_Q>F)VB7W>8mBq67;ltW<`ok8EK{ zcC)B$*-|=;deMcF)d@Se7ifTDV?O5yY|GNLNL*1K7JDO!JJ`j>=Z`37zxr+ z4KBrWkU~@6ycqc?WEckaz#jcF+^22pqxQs%5(aQ6(lT;w9=zh42^52l$LZvH{Tje~ zx=-6_oCLh5Rxl;Nd>8j8)E`f#;y>0mVejzA6MvlfwBt-6g@Pc&Xkn8$vks(eWUmD_ zIIimpomb_mpmqa-ZDscpYR^iJrx`KJ$e_tkD?Ylfi}hc49m5fsrwcS+hI}ME4mna< zb=%jmEntjM;LB}Gcm-$ICE1L%!|w1+c49^1?f^jBKa$u(Tq+&1MSz@7@8iJweK(^& zqs5s&u)#@1My3Z!-``9TI6E;zlZ=c^qG`$*ReV$I4`mF)9%mdMkCnnDqCSKPM;>kb zfB(<_OC4}^@apI{z9Ew^SnOK3TV))KReL&QBK;60qX2tuk8N%4?eSH5+9_-6#nc=L zl}>5PN5MiR15F;Ej~)AqSgTcn7J$X{V+#@VfS}Nb<)CY7a?Ty&0M%b{bh9*ZqeapW za={V1&mE3zE1k9G0TRnxlVjezIFlIO;ppak_(5zV>S#et4KAAPsgV;-FBJPouewy4 zUQz_c0i4vqk0jR1v#NAVW;1c_fbWoANEMBxm^(synfC#i(9~NT`o1)Q1#kjtHH~w49BEg_6NLloMofLTSBTFF~y^P_SIA%jkt`$$Hsdt&;J6XB%ZPY3l&I(!$98 zkw1r_XU95jWcys+#Mi#3ikJ4DDqg?{t8A$QyHswg6z`X8m2yU9STnDCJ$%nR8*4v8 zUK<9KXi`w{Z3{(m}_JE7?EK1A`gIXpQFW$#>6m^n7n%`g@WK(*CrOw+h~3Ju}4=LQj7czb!tN`Ld{5s8Hx8mM11wPWqz!>rL@zEZ`t9sKa^#lrN+*x zj$=^hJ02l56-qX2>4T&FSVho#KHPXEaau_;REb&@86 zEp!o>sEnSUK3gaAd;q0+-|?l`0Rg5=EV_K+Ip5^rgY8LS)!@`pR}(1NNuF`cF%+wu zj0u1H{>&V3k~xaGsy)?GalXa$m@M1&4mdAvRdyC6R6{iltC}fHMVGY2nsJvf)Tw@B z)T!8+kZJ0MuDlrJmN`YiOrEw=ThAl0A{&WN%%vV$(SI3_baCke1SUXU3&gr0|IIgA zzN6X6s-ZYq*QF}J6v|{>7m_?iKDb9h^wwK{ic>ZXHkV(`nY#)zN4_$t$Toz#(_HBY z`IQambD4MWPMqn7wJ}LTyUi(#{n{AfKp$7|zc0hnIOZ#X3k4b`K_6KREhv1$6A{Q` zwGgEvc&Q614%!i*gz(2nC*(0{a}*{)s4x0R36D8tlF*m&^ZFhT<)E<&n!d)P1e*4q zTN7HkHkAQPORNji3rOOJkl{J1MUyhPZmG3lqnOoZ(#x3t$x4dtjRsy8og+&YQ(t~F847SXCaL360hFTq!F2o9U!#DG z_PMAaO#^oabU#kQI-RPcT~#jiT;OYP!lqJtBlko<`91e9PwGe zspr91q;yxRiU{@ykxbJZCn3NhCq}GqC;}=ym2y?Id{KETw>c8hIK14_KR?yX6$rC*B`^%lkxr#9p=+->1ElCTk<#J7ArZljodT-*jCe~?2F zPF2gbXKb^grj+hf*3Hd8SP^Ttio4W|aEAKWHBpq0wu=7|2XZyIYhZ|j2f3^31Y+{? z9+FI^){ti0M6G0FRjY?bK>+43#?pby=%&&nst*UHf1Wm!MWLo&CKtY(OyUU2O};TU zeUrgqR>J);p6DCA&wAgMUN57(!?2Nm3XKXlmAyhBYyEb&ERfhk$1(@bIhCPsWnxY(q?D?*6wl#wDd zc`UWnkaK=Y6m8j%tgnjd#9aXNt8lkV(by4aL2f^?jGjD3`bm*fp&`8HfdV6*?@0dwm z^tGqlobs}qzH~G%%~`oZlvF4BFE5eeY(qCD<)w7Y`S5bNAj~6_Ue%(!0_4>sIg5lP zJ0i}t3%(}en1p;iwU%l=3O0PRH0U+|DQmpNCXZU`t@_Wq;yc8$TJ_9}%t~@SynbG^Q&x4L^{)II$u|et-T@FN_ zGxCv{V$R8O&7TopR?#mrDHg2bTzLv1WFnZ+mc{PJTT#~)R|@7qx#oO=D2vHLAuI1c zHuy4OXqh0vXZPl{$R#WD{VSVYs$?I%8D5^hzd1es2RJz$-dw*wzB&6KubUI0wAZR) zh8_7t(5v?G#noG3DI7tH>cBYCi{;Ze=KlcxtrI@|8vHx+5>x99!!snz3I6EcmYFK8 zt&z|(mW;ub`KWx1_Vf;Hs1QOC0zthgnxV9{08OB`(9O$xrG<00%w8xq%GAF_-ODZq z&0NwhVQ93}ej(U}<7P;1(`J@lUMkQK7u||`ZvPExW>ev%>fl%$R#GvhBnC<3i=Vbu zA;v)Uw4OqZk;uEqL24insF#K?;&{Cjm?DY|Q*s0cIutSf6r|XLQNq;esyO{{+E6Y{ zd$waL;$50!2%^a?XCPTb_CY0)H^4Q8PZYCh&j;~ZbKn3}VWdu@REBu-yU18$fN5Ow zwkY)_-9^`%>GoPuw%--bbl${8G8^%^JC-Lkp=XY?%7OjpQ%;& zN0AIzdCqXQ;bI==9i8>}Dsw~eYkBFg>YesI*Dru*asaBWZtpFwu7TA(3^t6^Jq(8H z;#I53^cHeq)(w2?{z&ug9b!|d+sjPMVrh&f zG4xR`ZVtuT*&2eF$n?{4p^;fTd=bxqX1t+z$>-T?E;bbx)ue{L*SKS!CftVDn#E4Sh80G3ryPMA&VhHlf_rj=K;W` z&*~Cb_!Gw>#B;{ zxiv8eXKxtTses%k-*Zh=KOIA>dAo7rhoyR_ziBNR#aw49X!b` z*pr81hH`trN26r22UwgQ9|dG`&LI!vM0YUAno{KocYLJI@&hr}me+H-<_(d$jGhkm z_uVsK<#n4HarTvbxep_JYr^06ckGJ|j&qx(lN7;Tj>H|w!nP(4Jmu+%I_-2kBZRF$ zrkF=y$VY*1dpS1W|um1TtrPEm&lS=)T(n^vvw0BA*wI!MtW+S zhbR*o6?Vmww`uH2cQ7Qbj27qY1xWaN1_M6GjF%e)FuYTVy3~o4o*@odMhjz?!h(Po z@6XTc>By+-dNp?Pwtb}{nL^G;>vojfJ^Y_@U~)5Wj?uJKU&LgoI$*Kb8$uXg4x_UW zvy(U4G1@CaeWc5pv{ZujIK<2!=?J8!b;mTZzfrOnuo71z7V;k%Lky=9r^WDp&a*j* zj;~LTZcf4J-)~MYhG&--;Os|mad`ty|9&>S8G^Ym5dNhA)=`?w{o!DRCHEskBH;Be zsa~tZSILRCTa5B@RQiDMKQ!^uTEo90{yX`}6;jo-RNj>Tlb{%*%mKSRqcWcypEPqv zQ8c;rpf^RgQ_OA!7rD-E`OJ%%$5vlGvmHAsqa5X3u+L?R+}r;vQ#3}<-xaV#AHk2; zm+!b*Ca$s~w|r^1Wy0F@7q|bGCu;hVGlRk@`vC~mjLXfSdVcig^t@V7z>NgA1DAZG z{;5B*)oZc?OPYOq^#1MX%0`d*po1x9z#8-&plu?ls~}dV9aBP)v=i|KBvqAl+D?7x zqH1<0UAUyjw}C8$+*IE*b^~L`nTZmXW%md0Z>c+T#asd6D!8r9Ydu`NQ}IQwuFh_* z^&uMacfo~qq^c5e3EjxDikWvNbw%CAL#p?;LcL!Dn-Pp>Fm#OqS*#rRj;UZ-19J=^ zmyZ!t=`YO6Wo+nm@SdV^5@h1kvht`5K}}gs5a^h%-xp&2zIwX{&>V%bPb6U?JSex|$8ohxUgG#FNT@f5IL1H|!Mq3`+q+xeO!lt?K1GD%>lusuBhc*D!D#wBY#v!== z@wnY?9|Cz|VHqCsq4UC1RbV2zmj*s@qRFlZepdsc$4dS*7r>hqua-o|EoF<<7E9?-6Juo-{a6H_p}}&w*Oa)>RHfl37G_F04B7oc^^@x?(M&_FPgDJ z%>Zo+M=QZ!w7m!5Z$ibM2;kb{)K1w}1tQsLbyTVV`<1%aW{vzz8*q)L++50x~jRa5zOVWQ#OmDb(xRlbhp%`s@9RbWmTnxC=SX1JL0}E?V;m2 z$(xc$TNHxD9-zd$w7qDpWR#Y=^9?Q{+f^iuHyUV*&7L}xQF?eJRHT|XE*NR!klZ*+ z7NhNo^ZQtF(ilYljapEOH8~&RU{O=65nrcpumF&O8TLawnKDNs$iy}3$i|iRBzQOM zaR4X^#!fM;vpMCn)B->g8llj20^rQac;C~o!D_qVTY^;$ypuLo9af{(L@jiRkIN~< zhz}PID!C&o`MTWsLxUQjF^SQ8X(xUR$gwX7J;!%p!5i zSBL?qHXDsb)heOZ$6JoytvQC$B~~9jrq&qa(qRYw!_Wsw98j*^M2WccPhDK7VzhW+ z4N8EyMn0yg%g18PD_+FCMZD_;d3-r?@<=677JhLJhe$?C_2^+f-XUQ~+;mS&ixR@k(jHsJRJ%@<8(bjZZFG+=RjG~6RJ?i1~P!$U)l5-YTg+-UD z>yr#VGszSQvX=8=|daYf4l8o z@4IHF+wJvx?Owb2U8B`(_1oWp#)DgW#FJ14*@0Ki1@<@c_~`d4Q9$=lDU^%z@0*RCG7+{ z@N@85*_F~t^6K~R>D;>zXJ`B`b$9;YwHY-XMd0AA2X62hyecMhfJgO&;XsdZ6}$LwPjd=IK}edl^l)xxN_9@n+1rU#(v!64u?svZ*`iI`Uu>(JL~F$i%S zSUMQ^*S+u_j{*8MB|w$yGu6yx_MBe~=5_68l$I$Sq}S4g(S=rY&wt6t^ZDcF zCyyRNYo;unmO7WbJ3STF>SLZ!O5v2TybG!7&XelWiK9Xn3P|YEuDmrhDpi-_Mf6T# zWT%8XFWm+nHbOcWW!(|dQ6+^Vq&}`QLb}}|+B#s0Hw;;Y_leSEhSa5nBY6*+b(J7d z30OpssU4xF`dctuZYOfgAr=#N0PG*Tg(F%in0jZ50-5#ESs`&aQ7a@4Cn;IYTA!uj zvn-O!mPvzFSxvQ2s*aQ_l!_F^3+0lfQgz>1D%V>q)8*3ipm4b?9ktwonV-VT7ttjv z%31NKma^#T6{TY4%Q<3zM)02R;!`M7dCLo0SUM*%&1JdGU42|+@~cnT-(Onl{(7D@ z^*<$iJxcvsrT?`$?VSGCZ1lJK-%C7F|I3O_*}!k*8-zoOVut*OYH+r;!Ka@a{VFeI z9#jAbxRz*wSMxElGT8Ogr!}NF5ru1i5Zkd@W9$Q}7(pMubfY5JL8ljdi6%uTetHd# zwTg;M)m4Ej>vD0c^-SS>;4>=Qs0&J_Cm zdEmU1W&aC)O$ak}Y5;L*%G%1t5C@>DuGQ12T{ysf2|(v^P&2P6(zm+C#wM(RO9^3$ zDgxf^f$!&nd})X8OfTnl&x#uU{JA2N9Hb!2o988Yjhf)9BGBSvwN~TYTjhT~iTSIl zrBVQCS^@B1<3Lf}uV#DurB~Rxbmw29W|JN+E zeD_!BTKKk61N$Q!?u-0>HBj@!KQurn0yrGw5VOTD_tUg87pFJ3MlN53rFEVFiPGf3aaUTG3uJZYy~ zMuq3!C`(&kYoFZg{@Rib zRG2#uFj+sT8)`E`P?$|*=V3k ztqGR)^)$o6nwEnHTMBG@L$`PE6x)IR{qEbZ3yUUaJ=cg5ET>#+ZVtD)W z>FL$&#nHRd;pz2<)9V4KlCa9ZUEc7&$K&d+$$r=YtMaK4{@a0HPR&Yz(S@ zn(zH-UQJ<%^q`8CT%J8XJGn0TO6Q*Vx|>z+3-BsTS#5g@=CCY6GFPZ>HE!wh55uFk z43By5(U<`6ozlg=F_CS*tm&_hx?OIM-ZEMo0s@Eg&?@IRB zJ}cxub?eG=%YXfDJ1_rj^}iQ+o>Bf&-18v$Pu2N@%YW9%(R0gjo7{hM`)C13%@q1x zrKN>TjynPQ!_~#@(fga9#7_Gv6>|RK$b?UAYZnx5s_ToeIGT5YWnxF6bgB1iyPZPu zHrLE+0Hq;2eYF+@YdbG(R7=f|Z!`lzi+zqzczIE+WL%GZ^l=Y-FJ&N3N7ITJoa@W? zH>bCsK8Xu2WNFY$kK{^Zuj2l$l((0P+k@AjTFpn7JW#1vSDgP#p*TP98G+vE=?aoQ zi~xedz{xuVtuQD*wrt_oo^E*RcP$8yWep+3WYV=f5xV82L|M(5SB` zGpTnUW&W4d%WePSvQ%+M;2PcYysz+CVvPUNB>bkIrSsoh^Z7IlaK-%Zbo*KVk7m2o z+0Or$c+C92$zJKY0S(ab&x3Tps;Q>@?S6lHpzHLQ(0E_mZ6(|v4XH+iup*6d2^ms? zo2!TwvZ2P3>W|ikD}vL9h=HHqzd5}fo*rMH z-iQR$A|D?WiPzM9N*=N<+t!&q#BFsNJ9$+Q6FyTh^zLvtsaJl%A_Uaj_UV4tH@*Iu z0T|rF1+CnLnUpCui5HN`OaJ z713u|kn8HVmlwyUQruq3uI7$xR}Q}!-o786UJtL1)`F5UeHO~m@$u=^&F#s>a2;gK z)!cclpj1XrtCwG^ZO}0%DnH%aT-{z>U;h0cx94ZWo6`#!c$2q5tlhf2Kisq=^tR!X zp{h&B4cL>@;mz&Y)sx}cSD72&oFj+bTYaYZ#3s_K&rJiTf4{jtx;?sns|i!6xIT

d@<=fmTp^V5^(XjfffpE5e1bU&Z|qlj!vQY>-FB~^_5W+Mw(-9&@)-GFjx~6tZyn(h3!hrbTW&X_1OOb$tDN*@Y3pkR zimMc0%fEXBDY}Aex+Hf*4vMZ*1$AM$cQp%nkEHQMtPtzMj(Mc+c&C;8Z5~qgRFQ!) z^Jlfu@As<}%+M^=MOL~l*5o}P!hf-%BXZ@hf+L1CycHEd<+5l%>fhE%lfU@+Q(3I0 z+*2I)alOFtrB2G%^C;AUwz$SwW^3jvpBcDS3+@VDlLNJRR+Dfy%xMCUA%xgPZ8~H) zQ4KJOm)N)pE%J84LNTg>rKOg!j6u2XBREAjU`2$RSLJM%Z`htY`QX~(I%N~fRvI&N zQqrQJrXi!lTM9^KFkV~dgJLfe-L0l0w40K0N~ow*(SMY6Ph!S3R3~V79)%)qSXY-f zMpt>cY6T{YT%mY|Mb=<9#jR3*y(zg5%`bU>sr2ESqz-*wWLl^6+{nBJV-ol%-u(2I za9>~}c_^z0ylkm(Q|$27E$t}}NOOu&P}HD5bVyD8B73164AIaDjyFyW({=$#@)nO( z8peA4O}Wo<@3h%ituwXHpJnjc8?F(Fk6Z`3 z(;#mTF>l{3Sk&?_x`f@lSd~}cp!|)NVPF?2YWuBnS+ZMp^yd`Z?<;6ygU@pPkB`<9 zmA}>cU%%h#X3u}yt!@6_7kSF!fBAy)MdE(-GN)xzUQA!^Q!QOiYH1qSVtH1HAn9V` z1^~~aFn{u$UL#90`RP=d6_LO8L3lyLZ+eoWz?J3POEYkaVpSt0S94YKYhdbewNwSM zwANKh=rS56(Y`2Sg%76JvCd$WC8YVV4lS*i!lmR)fv%!xTC$p&1FA(39!*$FYj}$0 zw+7=XT3eEIA+e*?A?pRI^BM$?P`r}hHgXOh=Rp)xy!LXuoZ;bex~hT?BdlSzcS2*DRx*l=@ebPL_KZ<+QrDlyE8Fhtf@hF95NEYWqKc(~u@HQg@I6 zqh#0@|IQ!|K}39cc_jBte|MVR3^>7Tnv6K{io68&F{KHj`v=W~gC$9>&BP=ArMSnB zf~vUxo~zleXM?!Eu3D5I{$Yb#=!o=n4zE2(j~QeY&+tsMq#&l}>m=jjXNhI=coq^G z_`f?Mu8=1lx&&qSlw!-`Y8fN-V!{s*Gb~h>N*WIM2MHUdrf{07mVjD9+A_oA1N8r; z_8-Hl&+7l%?&RY?+nufd|BF1&82?$g(5>|THMRbjF`)9OC!fz_m6I$C0&;&9<2eq{ z1fB9#L|uKS&y|)t&K|u#IlH<2<@)UAbcr+V@bu>W*@^x0?b%BPmkv*_j;@bxF0Tim z`j=`2fU~Qcqc`WL!`nAU$3LH5oD4uU9J2>x9Rc9yv-9)eFK0K$KMmAf9i{PpooqUi zzicKQ33!Is!OnWIgPpS2!IUhwr++^_e}8g%a&da|%jNaY!`ri~51ry9AoET(4akFH zEv=)QZ!Xw!1;Kiyj>pBMSdmtC8$bDV#7}$_h2**jpq@*ay5S3hE@JgD)V6ZD?>~bMHM`=sb{$5d0_^Io^t&KG$o+x4c{QS96 ztJNwn!XLPr%7w>yvvP++f1p_89gHe7#Gvnxo^J*z7`;ijeJ^F20FUY#WZhIK;2qtS zG8S^~chiKivUz;32A+#>vxKsDD4rnj%EnxkNWJ?w4!g_lu``&%AUGGbElg9R!R~H0 zs$(6P@+f{8DFWT3{9~8zX)&IuUMsFIPib1{Gh_4o5?a~C9!apH6vT^C4La>wzcTc* zmxFbP`1!MmZWl^t6o6Ms#IPyni}lXxuOodZyVnh0b9wjp2TZ{f#qxG>-vPP?msKzKl<%#{^wq+(c13+FY(A-J|^M+CZmn){*rHAWbYS6 zfZ-G`0rs+P)Cx_B8YylVOb46rX&9z)1w#LMp5Bgnkz ze!6$d-hUH2w?uWjZ*TYQ7u~mMguKCnr|B?4-Xr*(qw8+@{7IKseN<=9*YsI)PU!Qz z;<@2KEPpmIgErVwM10-SqiFsdI8k+Qu`XgaiwIRgH6nghzq*juR9j<5rvRZqUcV$3 zuXl@PmCFh*wkqkzUY%@2>n>fIrI##WYmV&tnL}iP1b=kZg`%*gW%jmCPo9_Bm>#Z-Yvu5?x?DRhX8SJuZ>X%Yc zUtB%?mQ>T{QA@v|N?NFnuEneBm92rkwD#Hi3NzbnpLL#6{oiPDPd5Op)c@PPT>k&o z_Wq|Ad8Gbt2K)DI07!XyO$&h4lP_QbFs*Oa24KK`6Gnh^2)0&$trg&FwgMPV-I@Wm zW`M03U~2~0ngO8@|9_E3Wv!Bfy$S7K zGtSHD{#2$663YLcyhKSPtSmMHs02gGVz8zmAnlZ;Ts=#il^zQEEhy(2*{y26Rn1>k zHBUwqF?GuU^!*r7iq_PM&CX`(ZBY2(%||3=55+~)`4U3ds{MZ$VDG6n0Ik^nJB@ZT zd;d?nz1{y`1GkhTiWfd!1`oeKyr39?_`sL zmeg_*px7T?i(pmf)%R`}RHZo#u+P8CO-rUFl^F1UdR0*U@qbP(s=L`VX(3^9kNXMI zOhYNm-Aw*8kuk*FfecnH$Ckcrk(u`IUrJ$Vm#ks|f zTvtV=(l=E7d!VTa^>>a*pB{`&_ovQ0&*P)}cxK+Dgw@6X_ZCmnASPX&@`H zmusRkB3H*T@!#_9km#njb6`;>^cMKt?bqDRYfPX2tr2 z`MOeQPY3>~!us<`i7ziyXZU<0!t`^}=efk^n&kr}`1(eyzSn51@&^~V81naWYKR-r zCELnX`)3^b7BOFyOg*{QdL(2q;o7M5IH?13MxM?m2fRHOtZhP6n&I#oMFI98b!uAg zt?Erx34ScDl)kqrwN)j=V(eM;#p4W~$5-#)GaTUG#7JDB*h3+M6QsLW1M+&yYeY#B zdq^$rvHF=h1xPx0QDWZ629D+^h7)8pQb4U$SY#bw3cKle zNO@h?eahs298S2N`~vyknvGs7cmCgMZu7ss$RjNLXL7JNVfj~l^Obr2s}8Pd<2QZS zxOJb-JzZqUrf=q+b0yYOed>yBr?&Z5I)fr#9gI{{d|jbl*z&bdZv(&~Lz7sEBCZL& zq)DfS5U@(slw}RuBG6jxIx?B$ zzGmIN_RAE7V8}=Wj)DMS$~(Qs)pid78z87sMxqG$)e7L#WPuRV1q8Q<8KYjLa#-ei z=_Tx&FdWo*8%IG<&7odShAQ)F8nq=C39Xzq7EjeZ6tj0Qgp=hK=+gPKPQXr4yDWxi zjPIV>rnvq#Ppd4YfRq5t>5vt2{f~o_PI!PrS6oo?SHL6v-_mDd9pKsLPF#09nnc3r40{cZ4aS zjHY@X|0&v#yV+EHw^o1Weh~gl8H-Z=FM@1JvkBBx)8caI@27Q9rZ|J37F5=ft47ef zL!mDcajQ|v1soKOnrg(7i>gGMF~RpyUH?$>)2=OkISn{HsENJ{(h15%qMvEAneOtB z<~UQN7*{p2ej!&e8sm@E-BL)341-MH)wy~0wY|`)?pv#@`$QyW`T78a$!vsT7X~lu z!YHym*eitG>mcBJJ04>XGIU01f?~e^NwMAsSl&N>KP7SXFYsx2#X*ZGLS}`O2)OBR z)YhM*1(eq}WkTLFjwA2CO?XLSeXm6#31sBT7}=!P!0e82uq!CXvXo;1&7Om#)N{mj zU|-x=w+iJVy{vD_JIX1abC1gOh}DJ3^ccl#1#D|zMU^#&x3t~-v{<|Sr?wmSvd7~4b`U)NKn|IHFk{BZIM8chkgJGQMk4^<3T=zr~Y zJ9GbUtJT@Yf4=2742V;WB3WvbO{;>-qAFgICpD=Puz@Fp94iUR7(=jl)ap zKll>j({DjbR(NkU<*latqMGu(u2NtTCLvp{^u8Ygh+QG2OFfL4btJ>gaEjNo4&04x3uTW1;CY6*O35M0+Gk) zvcCLVSH;@mu%4W@bO@eHOydHX7vj1XdSgd2yC}!zTM*2a4qKVH_H_9xBcgn}(%6P1 zs~4fi3!F&kNuJ?zHQ)aWsPQb=xQMf2|Gy#u_7=~Y|Et;Vb+hq5{Z6Z~-Tz5Uy{SG&f3?C*jIcLiHg-{3AlGy^MRrFPTkD};pai7Hs?o$<2xi=Cotcs@P$J3 z^MjHP*3Xw&KWyI-8zh8Bgz`I-$_MoqOCEW&3uKQk6Tn}@D%(*068da|`dz6bBL2|2 zVC0h<;%$9RAqanSMtF~l3hoM;6t%3KM4gyz7k;6BAqkTWgj@rRj%BTVe-X1B85rCtKM)-zu8vf6zigRSMua*!F%7sob(YPDK| zoXXEwz|wpf(5c_dXY^}PiK>YL7G={fbO8QoqPzZ;Vek@IXbGrO4QV}43a#2QkQ%!^ zkV0Q3c;rbXp-bTM?~Ev4`%BhNFr zkIT4)uSp@bD3_610Lbr1wbDW*BUgs*x=dA8|4Hn$luQp|q@|EH&O!w&m1@o+d8&qP zCCb-QYYvxQncTnbPNp*(h@$F8@m}VXtO=1Zx1EVNw(W+t-O#oh+IBr9P=dx#j>RJ0x%--9_Z7vEIoxUZ;a=jT74)wEz&kLKQxkIS0f6=gH03r>_- z`aRQtOk7dVCad^Vo_otU=wzAYAznGlPOP?m%HM>aGM7@FX`s+evnkpbRsT1q37LVYZO;g~)b%Fm`8mg;}RKfyFk z#5{PD_!IQ_tH4+2f1O@Gr~h?3+x$N-@(A@VBED}1dn5*XBPw8?hrX;%Sj5yzmBf+? z>u8N7Rf|J9OA4=w6BeQeclNdZ>E}D{-3$lLXyWLwMxaJR6i+un7Hznb+UOmwD z@99fLMuvaU3`K>`hr2~IFH{DKE?}79@MsQk07n5*K56!=G+8ktLl)z3;;LL$(QLlr z^-+Ky--j@Zg!6J08cyNWh~zABNjOC?VAI7F@lWSijdwlrN2<*PG$)5VLO=u&w15m+Em$%n^$ICD$x@%*cPY>UnW#1#}$8wIGyz*{o*;W zjnM(%KV&2ZT->mkIS=8inUnrMx!#YoAU38bh=(qV;K`er3l#rtq|Rog`KLtcO}l4oP?RH~2^U6l(_HUwd9 ze<=q_#%;=N;dObv)rtZ2rpQl%qTBwi>^10{I2KR{%PF)y57?duyy$s=5ZiLoLOQEh z*W1etidTqYgl1933hBC4xdk%!%kgjLGx#A=0#aKYjHEMmc z+q)pZ{xZRH6jryQ=o6oE`H##Ho1%nXC&81v|5w|8Tm5cU{_FO)^52U*D{R~xY{3qCYuSUH8ehsLoF9?`yKuhHv)YE8=1T3u&bn1*BhF*~_1KAv zIA&`rE}_rXUhLY7CoxH)yqh!U&OPwG`1&DTLuF|yd-#&z#=DTfbzA4`|F&9qeT)7(E>K*hBAN6-_G-M%RD3Zc31wKBtt%e;N{ z$|ln9eMGj>{zjit`G4-c)cvoWMmy{O(QUW4{vR*$6vqD^2N2IT69imzf8vWq0Uxgl z13q3q4psPD0Ys3N{uN4ez1%4^K(zalB$`e-pO!Y#<;I zsBewxzZ;`E7k#r+SYiAOVaDHv34gsiigmyt7t-kC?#u;9|01BkcjwAX^WBl5_XUbT$+e3X|Y`Wa!aixjZ4BmSJ0+F1SV`sV*Fe2 zO`D%Sr8#hpB{8l^fU2M>|8YXVQfh+IOBYHL%P8NKB>=yi%*yAHEugwq?X9%>ElaE4 zhWu!(zsm(kF{4G<4T_GNTQ=U{(8u9Ktsdsrms~`Qg1_WQZ#&($)BS~~I|H`-hM?5)N$gl8qQ=Lyp)&c<@#V}sf*SbDXuwB(eyB9coi4vy3N++)p7q1jbxqH{AlF<89 z#Y)&(E?uJFx}IDc@~zv9JD7`1-UZBjDut0Hq9n%8IP`5Q@NLQV_5JDQ=IT0S1!<6Y zi z+$P9!FVkR)`eA6Q=$7fD>p@w_5t+twoZ)^i<&c8*^Sn|}XeIm{_qaf=NX!hyGO%Q3 z_O-{Em(GngoqKvU$&t$81Ww;2?4o!ib?zGPjt6x!P<4k&A4Ss z4NA9Hs<0W3{c7AX?M40%;f1-TYL?s6p27RFNGp12U(AOb+C?x%A-hK7k_(2?@2QL6 zMCxpxKBb#q>B3P}9-FD7oS9sv@>^NC3gn(@N}4$qqhAvoBR`$l1}(X>Vw#rWLf@a} zK&;>C^fl9T7t~#MPB7OtdMR&2vP=CJn2Xg5+zxX; zN|x#+ORlx9Y9^Qx%0wq5T=Uam?vlc#zLRC1)aHj{7j(JO^3be-5%lg*=xZLf%h#=M zOZnHZsUq(ZZdJQ!Ik%d%yFhwa%6rQe{URpf0>H8sxu_we1bOF6TJav?$<(dd1a$J_8*G8_z5YW zooAK*Z@ZJr|JGJ`aWT*ny$%Y!wDuj!r`_;n?hQPL4BeqcaplLXkfLHe zyZjZlzqC;|fasn|C~JDxnm%nj-i^*ZEnDYSZ|mS< zRdAU?@J7p?6}5bxg_wakj4>Pqh}z5K_ftrJy1BU;>Lavlia1e#P*(n(P(8 zosZQdhqXGcERc~(r@ANq%#uMK;niHLnJ8IDA@5T5%4WF_%1hQ{xhN)#cqFh7m#g+o zYSk%Yk(Cn0Ncawc)a~xIoGGnVe8spqU*(mnQ$-vK41s6ljDz z3QpS`L(dkFw{uRhXvgYU6m398N{{ztPfiSo3r@zmxfKLz=K9n&E7J!7}R68QR zKL56OO=lZ4a+>CP2R%C|Qyr;a5g#ZX8bLmnNvM=$l}7lLx;Yn)C<>(#joGelJI9D$ z`YI4@?N;J;hO0G}_IO)_u;-f;-I7>{%xQNEX67>Yk%;(ptL)l+GpO!nas6eALI+Vy zMHHVJw}|+AU`%4M(+ID^v#UKoiC)7gxF;b4EMBBh(R{c$_sO+D0pd+$yREM37t=2j z0Bm8joB8FImlABYhOpDyy{htgS>4^uPhZX1uZ>^j*;RGT8C=PeQ7i+Ps=X;sJOJrE z3IdnmIXBtMNG6NbauioADH^#UBM~?X0yV%zhyfcjt*Wi^#$Y5m3WBP&KD$PYWzHz)Cw5T}lvQI!pEhqxa!!7=WdcXo za9w7~Y}js{LTh&E1v;z7{~2z5G-{hG0F_*=U*aCLdbcm*_3smkhJkW%cMKZ}T6xwc zQ!}H=nD?)j7cbDVBmhcJhiS2%`c%dY1jmaCO8@{a$wA$Q14 z;W!gCwoaoo*%>ct(#JgHXv&cJxl+JnEn=#{Z^$sFnft3TkZlc4e*jOV&z~!NB@k2I zojPh=$V``Ig)N%O)7DLhV=MOmjobmg%Ky97Xyx|*PItTizr?fN{_?DMfV*ux@ctLK za>gFMp`}!mW%MkG(Tof!Nr+;n@TnnfG7v{_v7x@dC_O-Xo5-w}=0J zo>KXrL59XjKsOKsx{;wB#r2S6~_HZ*npgxKMvY4S4vipgm^0$n- zWTeddJMHJX_O)~xY&^KKe3ic^@m)ZmZ#Vw|2G|!ufg$QLLS|)b7)3PAyJ`{Qn=s*} z=x)t-Tl3vlcq2#Aj2%AyW)3$P&Xw4oQD$7*m!Qm>GIO4+a3cS$F0ZOrdfNgkw+FLziP^jfH=-U`-=R?5WHnDOr@PUr=+pfRi=eK%@Bcwe6y^GV zdTZoU4FD_j|8}pH&HvqRHMaM^zQ`kWd=XDLgV9DjeBk7l{MweEt?fIlU2SnF^7*=An}(9ikN`w6$=;ZnY3TLJ z`m4_X^+u4rA!cZ;Ll3>>WosYU+6SK9J`lxZjyVsbILD6GH!V`+ZvBm53}=X;SVSG9 zzXmD;&gIGFzz(BTsT1z@!1r^p7`Rh&4g)dqqkw-m6j0T{_jlm)=OxxVc}P~D!8>#o zvdj2_kVu}&xyf>iT*5zpuEcz8!?P=KDQk`#&R07lgS-M(q$es`JtUyaqEkjs;XNg@ z=Lw41zcUGNNyH=tMVD&gS{zO{{ys~&!tP4>Qr%DWj`;ZnDObYo_StNPe5{j6eHnqX zO#YiIb8|TP1&yYJ+#TCF2OcI7u9E-S-HiWNtJQCB&wpOz5sS=+>|nbICN>}x=Ge(; z;meAN%W+#SIIga{jwrbrN^xG%)%8~88(jh6!Ffnmjq`K)r$c{+DgQG@6HHlLeBI#x z&)&Otw~Zr-;`i@-3LO5N9V;72etX7qedoFzciNl8_S#PR&St$nGzm!@Qv^d$a@0w_ z`|sdMy!g<=a*`I$>5fGLg+c)+R22$U);!mk+K+G&#_?XAf~}<7rAoOEY~Gm?6n||7 z?h>UNUUufiW!L0y3E%Fm^XlsAw&K)Jsr*L;*Q>-&@c=#U{lD#<4a@&$cYkI7TgpQP zIyTst5B5UjJq_X$%XbUh{$bq3k)u?~wP%)^JfqIX9X|?Q#eLgMDo+;+{Dy9@Q9TJurB_`{)UnNWovVLe|7%5l!wW7N}{R-$bDLx ztf!Rs)OlMe=NSc?$ahASI)k5D+_Lu72!vKD#mBJpsViO+xRlB9BbfIHy5Jq_hl=~k z(D#E2fIq6Ck7e{ct6nW(LT!2G`Rc$tSsfspE7{kD__Q`ClbEz?Av~qv8#rN|@Z&zp zqI@ts04K+U9sL0hz}D^_{gv@<3t93ge()#w82}N+BbZ&n9s?!0fhnIV%Moma2;(*^koISgE4Srz*(9)>)j>FaHhwlER1R1Q8XVoEN zaqL)2ZV-$LxE|D9Ef8l|yHXH`px8_FFG_!19Z+>8boVbam|`Olwv0vJweg^TUnDGf!Yh(aQ6h>t|J*}>&EiOw@5}o2HhAi=& zzdvhmxS&tlA61K7jPB@|g)1#l%rRY=s+esH5&$dZKi=fy-v8d*-{0G`;=k>!?7vHS zn#g~A8Z1}<XrxXt4#6S3Wu^gE0&DaDUh|8oSh zh&5%E3`RIdL!|`GOl`GyHA-Rj9>dIWn|&=xE;2*}5O)(99AS9z;n-C*&0viD@NIOL z`DGY9`0*8?G!e)6WGl_UJ`QqPRt@AmN8L1whJH4ApN4)8uky^#VShqLXOv(FBYc`!g@WBtac{}zrRy)5iSNe_9ta^c@YfJYew_i%y%{7h(b2YV=k zB0sYq1cdT_G68sW$I3afev4S-+Emvjx3nO+^Yu#ZW5~Mhv~aHGhH}z2Yf&jbd!t+l zXx5@AJZp1;Uy;>I{UDk&Ygd}Td9r3^!9b~3hQuT3y&MI1Z6N?n2}RSn^iK+=i`Gtg zLltmDcV>p?>R6RFsdUkDB@xIJTaxZfCSM zu!$=Hxj^nUOkn0~xH$qAnAsQTn~Gjn5YxSJXwcn7+|5nX8sBru+u{XgYDsQa8hH7( zdWtAQOZ7m=V%oh$%NMf4WRnXNa>#1fIJdBLXjjr2F;7z*jXGs3t7W$Yc34uq5(kzU zMHkeJ*7T3fGNZ_aOXQdl5$*JqTj6*rW`iOd5&%b35;4}PDL=Y7p%YRC(r098zVo9b zhY8_M;P)sA(Sw8e7*Zck6B2zsCaTCWcWH5F(4cGQJNCS_GcHUl1-P$YL)C%&S&nKiwhk`)sSY} z=L&hz0aqw)Hs~ph*jx#(cYCrd!B1+@E^G&-CT%wG2ULEkHeBoC>rZRBcH3_=6vuqH zGd~HB;&kAjjfP;?bW0X=Rir~UNmOysa?GhRk~^g9pTtT&jal5eKQqdj8$1Q!6mD60 zx7=&jVq&VJ4wqlqn&OftD<S6QOs=B5K2C%x&i z&j6G-?Tf8e28}br${DM`y{EhHe7buF03P@m3~%}8+gN;epc_Ybbk&flL{`rGB>JSp zP;RraiSDLFQ{xFvsfZy{$TSD0#KYkVx#U2XSQ@Xs042E}B{1t`kll=(B`UI*4#ql^ zAe(1r<9j))kd6c0qppFaM@R#}BipveWdL2PsE-z%j)M-KExUq=NO}0`Ld2M(y9E&0 zV60iJ%)t4-y*E>IT z@QY8>9_EB0M^hX}t$kv?MQyVHq~Rxphf zIPp}gx32ShEqMl|Ojo9gD8%rH*6C^VQb~FU)}=QWZWD2-{T#QS6G=gy0y>jNh;G@T z`ITt*gxME@d7{J#AkRJIBEYB4J=89|v5vMs@t)4KLEIsf<2++CPN5C8;yF&!>ejn@ z20K>a7 zD>O%^8Xkb^zBdk(ithzN1vh_!qfYe*c4IzEDx1J1hE!#BJ-zW%F0}>NPPIwDGM&0i zr*&pfdx`xCt)Npo2iF-P$@XYxt5CL1W@_x;p-~cuhRJtlk^^2*d{-4L3~5wuujq64 z1sLRciVwQoAV#Aw@$+a5+iYotC>RZ4!YJ0=>}>9K1C%5%Ait?N8YTVi|0fY^YvIM) zh^Kwv{ISG1D$vzJnSff`D4e|Hxy@Y`QaI6Vq_o^@cG3!IeeqAF{EveH3`a2xf0^qd zV2%90yScw@$A8;e$^XlEn#lih8hj5I0Vy(n?(2Y8VmwwC16LOVpZsE=I`v+e(+-a? zbu}r8G3an5rt6!{dS2P|Bo;6a-Ss-+dxhQZ(Nv}aw-P5Tp<0R5PqR@*RyS!=z%8Rr zQDQEI?n)O8euRsj4z^jU!=o z6<2k$gq|g_bA86P7%;)Zm>wzE1=k}b_n=>&>elM&S=3Xa|BYb`GbAFwaG!yjFo*D^8yZ!kRaD8R5FTl2>98#4bSV6x-QK|& zB+w(Ddj%K24MDD>dQu55st&VtH@v?`?en}D`gd)laK**UPeQO>lCgf=YJv3xf^`uz zoV)^_r|2z)LVG#CDw!A~QY1bh@6A6%f> zgrolR&O@BylO7S?4}Z_1Tqp{xg60={Hwx}yZo$(^c32@-Fn6n?dc`z@y-0=%Wxsg$ zDkH-;0v`A@TCngVrN7Ga2mO?~OO5<56wtYR!0O^ZZthw6ANRI*R`UNc9xB;OGsEIU zegX1nrF=PkD+PPCR1;ZVEng?T%d)dd>;)m0D5MKh>5m|n3tU&C_(~N24(+&vty&&W z)nN`s80uDAe3~$|nIl_Xz`~)tXk*DU*Fvf1RuJ_ZkpZlmaX+Q>^y5D@@}Hgtaz+Di zo&2}EW#<3c+TGn>$$!gu9Qhv~!2s-T;Co62*~|o7UT6B0kkc4}OKQ$4Q<=ESVC^1G=<1$9Af!dvZ$RCoa|G@n(Wyi7Cu8ZXuEf74O=C@e7wRtGmZTsh_@4?0 zdVPm{GOobVD=OqY`B#M&j#5a5p6tJUBa8{}2dB4EE9w;$Rp!|9qqvCla4ZM{+GKV` z8A^s^FZ;k_mxGVb@ePO)_HUj=YzWX8W?2+MItb2s`M}RXgn=Jt&<`hkR6+rYO%O>a zfhng}t32MEJD7_~1u=PzdC7_MM zehKqYmSFG}JwTjOS?jl`KOldnD9bVMF^>8PTb(&oZYKqIB&&|ROi?)NhCzgCKJhvj z2BR#>Cp<=KN1caLTMQm`f4D$l-OkXwV+-9Rz*;IGQ@+lKHi-HI4{QK0Mh_m?U?vq! z04GBJOR$DvHjV;k_5$%qzx4oP8065p=D}};oc4gI7GWMSD(rMR`aMmurSM`hhKdq* zNI=R5Fr#pMz?wx_0mp`v`&l36SE8g5$f)}Q93>&0xe*4k8wxxL5q>HK>W*9Fh=e2? zFar3Rs)ee3sMJ*Hkf5Uf5tcjP-6$8`;lT@?z0uV~R&GHEm#9m|ICHpq5Hx)jk}1q) z9i51R_>3c&m=LH%1=j?Uog&4q5tDhz;!x|cktNGgF*K+J$e%3-siGc`0fTdvIznqm zui?PtkZ1B$->Er$qa=4UYYc#b4a%6lTyTO;j2>EGJ(n5 zbaP06b@Jc#z9s+d@2}2(mh!N`GGbE)uVD_vs1x~S5dxh)kr*GHDaaXF5>8gyE4i}SgFK$RB&x{J&w~NGBmxKiI6|Y0Ol@DT00NK92{g(L9HhLs?qfU}LJYhS zhC*cYTDoYi?VVznJ=sZ5kFzf%R!sp&kcmMdw7w*?V|b_wn3NddDCslpl1r&l%aqWM zVvGp<1TqaRpxby4Wnegp^C*o)lmH?x(M6DEkn{!8m_|wx4;4o#VEw=cHIMW(lK-xR-uo!=f3|lwx6JrI zdpmn8`EMCdmHa1OFIEQRP=6LV(CE%mWkIaAJ+C~d18X7^ian%EB-9}`m&gR%g@}e4 z5;KU0E@W0BVwH%f5Bn2|iCE=bk0L6H7HT9#UhHgY%X+m{+!Pw6b+pQuTd}~`?B*X; zfGnRRD#gAJK~l%{=MpB%<-ehS4^NZ)JUc^Z=FpGysq_EY+T645|81@Of0pvp`Lt-W zKof72P^iiR<14cbPLrIjuis!iq)g%t0vP23dS0BrB>&sn0Vo5#82S0$PDj?{>x}w% zkip5B9P1IHa5K9d*zd!z_oP=%6B zCJ%1`Je9Rmk&wHHUEwE1W)O%5qd-VT%J09>j5xrJRR2Qkb zFW3cYZ^HxYe9Q<3WA2ZwqCD>grhTwWg0CP(4=|$@G`UffEDorwb4#V%&*M4yb37LR zkE6TpZ64ePe(K*vag;|8&zS+Fj{om%S@}PtP$5d`_A9GC@fj z4%2)BK3X7eN>jW$Q5qneY=Cm4KhZXjR=jXn+&Pg!}jU;3IA5<|Xx^?4z7t zC6M};)qcfA0&e^pm?7J38VW)WTsG+`X$zA)o6t)TI+06EtZOh$vyLs9%c@;0rJF;H+>10C4or$8Uifq$WyA3QqV!kF># zU>a=8k ze-C_Qn7mYP=iYcF257Z6i_HE}K|>|LeHjJTOKZ2hvZ=SS&ir{ExBO4UsO~L29pi?e zJc?&F1l8Gpc6T-m`G0d`ZzcaPAi1NtJTEb0gQ)2cP4`Ev8w+5R($M;LU!F_ z#1g}J|7W}Nx6Y1d$bg+=D$JXyW~A^kjA+YI62i}}!ZaZ{oyoX^vVM0MCAXyI+p(^d z7iXvhqRQL5FThcn#uMO!495Ov7y@3G9~>L^jno#->AAHSLA-eskHA-7b5fTRc!5}3%)L!*Sb)ONu8 zw4eDQ1lQRJo*i9*tK*}$C*b_bYtomJ177_`)MD_XMT0m3IYM!#5q3Yvo>|5JSst`` zvwt^;|GHtG|L*Oq?*A_5Vdfp7Vf02xz_@1*WuOlenE82>^jWYaAS@=zmEqioszv!o zjjh_uw8zrwDcp~9bLs)Y&mC#BoKX^hy=@*i=W5iWI$hfnhF-VTm*LnO#qqp&3K)8z ztc2$%Y?f6pQ5>NPUN2QV2CZ`mi5>zwnh#9T+M%*@}ZPJ+NU}a;h(EN=F!c;cK3RO4u)Dv{| zJnG}-|1|r*lDhM8<3Da~?^y94H&_1OOL?kUNs{)}46fcHJR8QELD;$&q6UAImRc`{ zeLt8~I1Q|+iDr#McTHDfMqQ`~;5?=o2fzgMs0aM9AH_7naQH2Ejdp0UE<>0$A*!X}hGho5A3N;;CKR5A5k*D`3?P+mB{D{TZGL{vX~Q z%V^N-==gEY|Ms?bH?8x(ot6B*l&7Bmhj&Vpa2mys%!Dbn0@hm#*M6Ij8Y4k&-p^WkI?q{>ZSp%Gz>-gA#|Ply9QW!FrjB!^jw zV&)U+Cn3M?2&FG1pzjgA+r*nz`0Esl@^RZ?GOc2KLbZz|u<9LWdco;^Q>ETd`CtPNSw$bf6a-IEs+ID@7!EM3I)=tIKmo@BlMPBtkLF2rKY&czJG!2ONq@oC@+F zPh2~zB#=_9oW^ob7gH8ocEEkW@3{TFHg?5fMJZByt)sP?``7u~0;9KH~I1M*TbQl&9KAo8A0KaGX22S`M$4OAyIkk|v=*r`f zGhK`kRqTD9y_1#Jp=*&1LI>yCw&||GS0=AQf7Mqai;^urUQevj`l?#BL8B^c4f87G zhoO2l=3k{GQ)jM1wtB*86;a`g)v1Nu!+S^X@DOiP$w2l5M* zER-*lOxm8QpiI%bJXgx|SyZ5Ces!Q}7O_z^OX%pDUv-pSPD@jaE7pz7Yjis!BS-&G z!gFO`sNe!Dt(dR-7ZU_o9iFF`@RU z(El07dR0-ZPXIO@imR$??1eD6c9fqbtGl=g z{!By(B5Rt)sCuj9kE6{-s9Qkf%i3rmOi`5Nv{IXL%LBlXU9J44PsREdMrA65KkoY9 zu-E^}|9>e@gYzGnt8eJ19Wfz9f&|d91NiD{C9KDy8pkiyR!c;;Lo<_zju6g@ft8@UlK%wuyU3;)VV|4umA@xf1wp4(w?gIpAG%woDSJljxyN2 z_5T=UGiZV}>wkNHf7|r`*xO&N|D`;Q{r@`Fd^o0xVTVqNg$KSbO=BF2dZC#XSzhsL zd>OB}(6{EmlbN`MeM<=s-xlYOBEdfSo06d|PCq3s?%a^Hd-_4VFlW8Ld`mCIYZMJ3 z&ZC5K-wU7lxabA$tyer{B_*FHbY#OjQEl_k^xUHrI%*NEu8C4feY2Pb;~pH^xP1}V z7_}YhR%{4WquzX1pyjqIUnttade-g=?ead zM)E`(r!a_m6Y%jlW{cARc>_>JKN=|Acwn7T`zr|iA&dhb!xri1+I?-5A_aeE`1U!F zFW@~g<}#!4!f@9hE*^WwES4yWs8jS>EDi11d5Dq_Jsg`F6#M=A%eTysr>@m+-<}zLV`a<^fBW`~Qo8U|rN;pQN)kwK zvNNk7J69+U4i(nU$$1Ya2jKYp?Cj+D`t31smua8hao?ZZ~lm9lh z%=kZB8yj0I`EMD|{PG{06e|Ic(P0h=uzwFvlChaXo$pdI8s;5BvEbXRMud_fOpMTc z0@|UgXobVsN(^0zp>)FBje>hPulUI~3G2VjZ;mfdUY(p>pB}xvTA9TD#LranAKsqn2%t{> z+p^AoH#hcH=f6vN=9mBQ_Dc4{+bhf8O62-3L@vDjB;pp{ehhKTCT7{NYJ|*SUyU#@ zGa(rqNl2ybIf$rFUCUmFw>!^q#~=ECpu~Tm*?2syTaPG`;%!5y^n(Cm{02@=!=^Ik z@$t#k)$N;;f8L(HdIkV1b|m0T2j%MI`10hMn!r{v>f=1+@*m&#ySLl{;PL$bcDBv) z-;Irx|NnBHY2-h3AD&;j%k z4wvFjJ}O)37Eo?kaiO%#k5YaY!_<8Neua530P+hJt=0GiLg;2W;BBBqtLoMygmAgR z&8A&Yd7^+nwKF2{LiURG!XsO@CuPc(68LQA&*>f1g#ROi^UO~#g=D|r^PkP_tu6EX zXLH5>m-F!W%shOQ$PM!n(9AL+co@J03{gn4?8_)q4dT*jYa5}Q&Y(`A@ipBgM2!O} zOBy1iqM6&V4%FyUv_%ow!{V(nO7 zRabl?oqBOqlkD3qCM=XUjL|3y-~rEjN13Y_@MA`wGL6gGQX1viHQSU`y~f(W9Thrx zB>E)2vJZ?ZY{{RBJ6dY8MeQ&iB%>7Km|F3dC3H=x)Q@ViF@c*6t zJ=6ZPwYR&m;{VHdX5rUZ&Vz+t23?DiC=c%(;po;Z^?4|(KA#DU$t>A3HO;6LuuDl^_ZWx2B&znko^`a%HbzguB_h9IO=nT<@ z9i9?}3kQA-$%JY)DFT!PeqLH&osdxkQ9QmpIl4XpC;#vIWf*dM|qzl#3g!1Z_4@S|So(xGMC-wx!$j0XAm+ugR4r;C|IZx&pj!Ul z+}hsQH_w0fSMlGM^E8+L=LrC?mcdV>D1+e}IAJlgsW9e=eZ%9Ck<|^1FN}K@BuaSi5j+*MjA{TZuZp(Nx;mqka(LWMhl=NwWYdfc|A!rS{9iTJVguBl*#7g zq@u3U&Wz+FU}hmFZ_~tR0p#QxqfLrRi%^XEZ{Zlmo=FFWF8!vC129gGJ4HMB+a6s zpH1GUA(6QA%+FzeQZhXJbELDLQ3|thgkebJm_+$G%cwZfv6`QIn4HbbGG;1Hjr;Ss zgZPe~=9LT~`>2iILzD*tvQ5wpgQk?8f9O~{dZUXSH3oF1Jw~9@uonv-F3T=Hla0e9 zra4AJF6*?!P)A8lIcUDO;{mT1BcJ@$(#K_{k#S-uCC7xOk?O;&OmytD?75**S?MCm zz&eroI#R-Gf%U%jVqm(k zBl?^?3wMYjj4sk8qD(&&Ah?!Txf;qCkMIvO+z!07e@nDt>809K)H2-}N_kJoWN>x* zqXBeb?8bmw8>gqKvz?P|*ZJ8w+47V#L4jvXirJ>PQ|J`8&a6p6R-yYI91W&j9Km*qPojN+TFDkE>CN^9=gK!j;FSzWTu~15F+N-DeQ*Qrf**2CC|9yLB-}L|A z*xcM%+5eaE)Z72X_^bI}1jAd5Q)Y=54e)rA4ZLS$*}8;!JOK?)QsD};LCuMeD3EsK-KyVJ{}dj4|w$!(C-~Z2{8S*h!OjhKnT2}ddeasmv+g7LSdC8Pr+N53JwEf;D?hI2GO*eICa-;ZRpL+T4 z(epoS?wk3)wl;S6R`K7L^3=N^J)mk@EAz63v#gw#viA z`3@8n%u14mS6aoz#x}(%KW}lC!+r-jp6JY<(et8j9p$q~3G8e$!9ES-Y)%sgHOM~% zR%3gqSx-Z#fxXm0N&#yYGn8z&0>>ugoo1J+;Q#y%7oIuqhj?oE|JKgVrpf=eR{1}c z^EBZ9d>+Vf{6PkDB@L{Z$-6XxqZM6U&7*BbY*#~tdAgsg5nNqQ|E&eGuZQvGNK0&)aCQeZc(aC}AxxsnOzI8Sj<>kXW=T<^tzJ9mxg zNc9FzTx2pDS_qZO&qm|JtcqZr z{oI4+6ndbrB25#Wtf8e@U}stG+a(k0vc|R2ImNXC;}Pf!kK+tAD1a5&xet z?~izD`TvHc|Ltt9;y*0qnS%fGSunc-SdxE2RiE7XEf%gt@vh9IMk%s?3AWR#N*o_I zycxw^2Ggk!tvLJY;ZGy}FaEruOaE$GhoCz9-|mKa{^%Xp?>nvC%af1v55 z{~B*0JL!kPbCqNu7H_=}43JGxz~?AvgEJ(KdmelY`q3CB6*eMGMe*Fbg5hCQo2;U# z24m}2%{>rQ%o|01=57nG$!0NtfOSsnFj2w{Fr5Ob?#RN*Pa6~3PVQ0SvEPtlqV}R` zRuhD;lxVWv)MP6U&gU{@HjC6J$@Cm+l8zmnuQU{&NNPj>RWYI$b=GG)M1B8LL9YEAXJf-?qZ+pOF2O-sN z=7k)r!>kg`Y4*^97d}_d+-seGMb{~1Y){~#{Yt@ne(qSl{&6sX;V6b79bU z@Hk)&@dtbsH z%wQ6@9di`FMlkY+s~vC7=B`2KgYuKunW^ zXJ5WlDRBbc)bVtR-v`eCV0!fdxE?_Mw@`hH7M=m1D9x;_sztjh&_gL&l4`bg5!&~f zqatS?7a$Oax?V0tOxoT%zf7zo)fyc3$lYw{r=Hbrr6+<50oJVCipU5@DDkt2x*Ls4 zb|c#2%HQBgpECZR`%wb3?yaBo@mz=hP4a)6`JXoTH#hfJ{C^n_&;Ol|vIGM%*ep%v ze9WIso(=)$FsM~*0pGqo-nw3!4+-EgP-%vKO%qY9GSV@Hpz4q^?=~?n8r8o zSmr;OMy^wuMNaqCmQdm-fS&Y+Eei5}_!$jcsW(F3mbYUn9j-Skwd7HsI{r_-`$_n? z{$J+(&&~ba{jC-MU&f>He?Hg?+yXenpJEq~eOd5E;9%8S3KTvl8eesMceB|FR_+3# za$U~YYfvfQM^>Es2YBlEKTO8+ivM-|e{X-+@c-D{+uvKs|4Vr^{(q8;7sK{pGX5!8 zKJCXN$^9=y(r1Oi!erdwBIE$ZDcz40G+&KUNE4{f5H}il7>zQrC3v*M9?yH*VvJrU zi(k8Uv3R#(Y3xeAHiFu<+A;`HLQQHC3iD1mPvQyPaSEds1*rwA*4jEG6gJfr*KVtq zGGLfFw@rX<^@YBmASmf72Xg4&!_y=`&(07^J<+mjH#IhLPHLsGUo$j3&~wsgr@DbK z;=O^BOW30ayxhf{{p>|B4#}Smg%V|8J%M07h6z|-8-uUl9!_wJB_PuiugS0AE9gZT z&RYx>M=mhS%E%_QW@UuQ_=YLJKFDB?Ebf6nZhUM@TUOs__+gagM{zpvTdgKpeyG1# zF^$!4PL;lf=Uh4$)LhdTF<>a8$r)G zx@%Dmhm-DJ9OwJ;Ta*7ivZ2ZO!v@gV)70}>@=V$ph4o? zMNNzG9D7wvg9*f>9`5u;am?2=Ujij)SRAkr?ci+2`yrTE-N z^66|X4fKB^Q$D8scV};Z&$R#UZLaSBF6FWGe=^z&GXfA`KZ_xN^<}}vfKvTT)f7}U zLD{Q0P7WIaeQmfh7V*r*l9s?*#s?LN8jr>@ZH>TD{1i=P&7q#T9TBaNmXh)B#8`Wt>o${JOfP%g0)S^NuqD;b6jHXbF6k-~o=Cl&bUS}E8jK)|$G>+m_ zgm`;y6{>J_Q%AW(rQ&!UD&Ar){M0yb6v=|m&4M8h{51`FS4toY1GhSjgX1!@$|2MV zC2m~7dvXNe=LqMXM7Fk9w(3-2Wp-4?cB%7Wtp` z<#7%JVd6Rpq(kAjkwl7{Lf=%T5xSzel;>bL?7Z!yIAQ}42J}d-NhaIJJ)LBuz;^{f z2m4MVJ87f^*e`>O))Amx(sc}2l(LQkwLPHV`EsZ2J|~bG z{!f{`!ThP52` z+&RL&!3sQyQ)!4~XK6EnxfugJ8AoB{ANwh0CJIX*WF$FH=?$yS*@x3tr$@KPM;BLy zTcf(4Nk(E8msl&!9yYD&Kwl6ngfKn%H1cB&GIddSpG2S3x2>9cPY!F53#S|1Xf#Tq zPb0{kRI1z)9EiAvCEx=ht_sAlN7VaaI?BoBILf0q$|oN1`k9{&q5ylq8%H5TF5_X~ zv*QWKQR9>ZXi zMfrpS=mdToj0hK;B|pCwA9#&YgaqC<%D|UrLlqb7fxtmkQ{!ep&w^yhE{B=Y*1RT9gbpUO}AQL9eyH1omUhB8wLZV zjaT)^o@|_%%lQ%hdi6R(qm;IQ!EPn0cwM{`AkUe);V5g%rB}njh zd{*9jz`Oo0!T~%op;QjgtTG*DUZ4IwBZ%9plWRAa?h9~z{_6YyocDS#1O0RaFw4lw zaw#yeAA=ssK;q}o7=i(ehjbqJ;lD;WXL1Q tJ6Yu~*;FIb@G=`MgUep6of};?E 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%0DK5lRM<-l2d&_56tFfI;Cr|eU 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 Re*gdg|NqdaNH_pY3;-e0QZ4`h literal 0 HcmV?d00001 diff --git a/stable/tar1090/4.1.20/ix_values.yaml b/stable/tar1090/4.1.21/ix_values.yaml similarity index 85% rename from stable/tar1090/4.1.20/ix_values.yaml rename to stable/tar1090/4.1.21/ix_values.yaml index 8a679534f68..d6170cfd8a2 100644 --- a/stable/tar1090/4.1.20/ix_values.yaml +++ b/stable/tar1090/4.1.21/ix_values.yaml @@ -1,7 +1,7 @@ image: pullPolicy: IfNotPresent repository: mikenye/tar1090 - tag: latest@sha256:d68268138f1573a590bcd2585cfbf6e6f6a3a37d85999c9813d670e292b3ec02 + tag: latest@sha256:63c911b51a418094777afb5041933a92829cc244d60d3da5ab5b922d21d526c1 persistence: {} portal: open: diff --git a/stable/tar1090/4.1.20/questions.yaml b/stable/tar1090/4.1.21/questions.yaml similarity index 99% rename from stable/tar1090/4.1.20/questions.yaml rename to stable/tar1090/4.1.21/questions.yaml index f0b3ebb9f0d..687c367582b 100644 --- a/stable/tar1090/4.1.20/questions.yaml +++ b/stable/tar1090/4.1.21/questions.yaml @@ -23,6 +23,8 @@ groups: description: Metrics - name: Addons description: Addon Configuration + - name: Backup Configuration + description: Configure Velero Backup Schedule - name: Advanced description: Advanced Configuration - name: Postgresql diff --git a/stable/webp-server/4.1.12/templates/common.yaml b/stable/tar1090/4.1.21/templates/common.yaml similarity index 100% rename from stable/webp-server/4.1.12/templates/common.yaml rename to stable/tar1090/4.1.21/templates/common.yaml diff --git a/stable/tar1090/4.1.21/values.yaml b/stable/tar1090/4.1.21/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/valheim/9.1.11/app-changelog.md b/stable/valheim/9.1.11/app-changelog.md deleted file mode 100644 index ddf340e94b2..00000000000 --- a/stable/valheim/9.1.11/app-changelog.md +++ /dev/null @@ -1,9 +0,0 @@ - - -## [valheim-9.1.11](https://github.com/truecharts/charts/compare/valheim-9.1.10...valheim-9.1.11) (2024-02-03) - -### Chore - - - -- update container image common to v17.2.30[@19ad5ec](https://github.com/19ad5ec) by renovate ([#17804](https://github.com/truecharts/charts/issues/17804)) \ No newline at end of file diff --git a/stable/valheim/9.1.11/CHANGELOG.md b/stable/valheim/9.1.12/CHANGELOG.md similarity index 84% rename from stable/valheim/9.1.11/CHANGELOG.md rename to stable/valheim/9.1.12/CHANGELOG.md index 00f152afc8d..efb5dc45f74 100644 --- a/stable/valheim/9.1.11/CHANGELOG.md +++ b/stable/valheim/9.1.12/CHANGELOG.md @@ -7,6 +7,15 @@ title: Changelog +## [valheim-9.1.12](https://github.com/truecharts/charts/compare/valheim-9.1.11...valheim-9.1.12) (2024-02-12) + +### Chore + + + +- update container image ghcr.io/lloesche/valheim-server to latest[@972cd12](https://github.com/972cd12) by renovate ([#18083](https://github.com/truecharts/charts/issues/18083)) + + ## [valheim-9.1.11](https://github.com/truecharts/charts/compare/valheim-9.1.10...valheim-9.1.11) (2024-02-03) ### Chore @@ -88,12 +97,3 @@ title: Changelog ### Chore - -- bump all charts for OCI test push - -- move everything to consume OCI-hosted common-chart dependency - -- update container image common to v17.2.19[@4ebb688](https://github.com/4ebb688) by renovate ([#16733](https://github.com/truecharts/charts/issues/16733)) - -- update container image common to v17.2.18[@085ba3c](https://github.com/085ba3c) by renovate ([#16732](https://github.com/truecharts/charts/issues/16732)) - diff --git a/stable/valheim/9.1.11/Chart.yaml b/stable/valheim/9.1.12/Chart.yaml similarity index 98% rename from stable/valheim/9.1.11/Chart.yaml rename to stable/valheim/9.1.12/Chart.yaml index 3c0628cc479..8bc246f70e8 100644 --- a/stable/valheim/9.1.11/Chart.yaml +++ b/stable/valheim/9.1.12/Chart.yaml @@ -33,4 +33,4 @@ sources: - https://github.com/truecharts/charts/tree/master/charts/stable/valheim - https://ghcr.io/lloesche/valheim-server type: application -version: 9.1.11 +version: 9.1.12 diff --git a/stable/valheim/9.1.11/README.md b/stable/valheim/9.1.12/README.md similarity index 100% rename from stable/valheim/9.1.11/README.md rename to stable/valheim/9.1.12/README.md diff --git a/stable/valheim/9.1.12/app-changelog.md b/stable/valheim/9.1.12/app-changelog.md new file mode 100644 index 00000000000..7425ba28ab5 --- /dev/null +++ b/stable/valheim/9.1.12/app-changelog.md @@ -0,0 +1,9 @@ + + +## [valheim-9.1.12](https://github.com/truecharts/charts/compare/valheim-9.1.11...valheim-9.1.12) (2024-02-12) + +### Chore + + + +- update container image ghcr.io/lloesche/valheim-server to latest[@972cd12](https://github.com/972cd12) by renovate ([#18083](https://github.com/truecharts/charts/issues/18083)) \ No newline at end of file diff --git a/stable/valheim/9.1.11/app-readme.md b/stable/valheim/9.1.12/app-readme.md similarity index 100% rename from stable/valheim/9.1.11/app-readme.md rename to stable/valheim/9.1.12/app-readme.md diff --git a/stable/valheim/9.1.12/charts/common-17.2.30.tgz b/stable/valheim/9.1.12/charts/common-17.2.30.tgz new file mode 100644 index 0000000000000000000000000000000000000000..a6cb126e1b283d49dc218680d9b1047e66af30f3 GIT binary patch literal 98054 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%0AIfL=!jZC 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 tJ6Yu~*;FIb@G=`MgUep6of};?E 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%0DK5lRM<-l2d&_56tFfI;Cr|eU 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 Re*gdg|NqdaNH_pY3;-e0QZ4`h literal 0 HcmV?d00001 diff --git a/stable/valheim/9.1.11/ix_values.yaml b/stable/valheim/9.1.12/ix_values.yaml similarity index 95% rename from stable/valheim/9.1.11/ix_values.yaml rename to stable/valheim/9.1.12/ix_values.yaml index 77cdbdfd65f..8f652123d68 100644 --- a/stable/valheim/9.1.11/ix_values.yaml +++ b/stable/valheim/9.1.12/ix_values.yaml @@ -1,6 +1,6 @@ image: repository: ghcr.io/lloesche/valheim-server - tag: latest@sha256:97404ab536d435f9f71f4775a68d3ff1f95ddfd6b5618b1e3954c3515ac223ac + tag: latest@sha256:972cd120f3ce875aff4f8a4a8b79c8cb9fa89f23480df514feda479ac598ddfa pullPolicy: IfNotPresent service: main: diff --git a/stable/valheim/9.1.11/questions.yaml b/stable/valheim/9.1.12/questions.yaml similarity index 99% rename from stable/valheim/9.1.11/questions.yaml rename to stable/valheim/9.1.12/questions.yaml index 49f6256f5ad..2b32d8f0094 100644 --- a/stable/valheim/9.1.11/questions.yaml +++ b/stable/valheim/9.1.12/questions.yaml @@ -23,6 +23,8 @@ groups: description: Metrics - name: Addons description: Addon Configuration + - name: Backup Configuration + description: Configure Velero Backup Schedule - name: Advanced description: Advanced Configuration - name: Postgresql diff --git a/stable/valheim/9.1.12/templates/NOTES.txt b/stable/valheim/9.1.12/templates/NOTES.txt new file mode 100644 index 00000000000..efcb74cb772 --- /dev/null +++ b/stable/valheim/9.1.12/templates/NOTES.txt @@ -0,0 +1 @@ +{{- include "tc.v1.common.lib.chart.notes" $ -}} diff --git a/stable/valheim/9.1.11/templates/common.yaml b/stable/valheim/9.1.12/templates/common.yaml similarity index 100% rename from stable/valheim/9.1.11/templates/common.yaml rename to stable/valheim/9.1.12/templates/common.yaml diff --git a/stable/valheim/9.1.12/values.yaml b/stable/valheim/9.1.12/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/vikunja/12.1.21/CHANGELOG.md b/stable/vikunja/12.1.21/CHANGELOG.md new file mode 100644 index 00000000000..75dc75dafa4 --- /dev/null +++ b/stable/vikunja/12.1.21/CHANGELOG.md @@ -0,0 +1,99 @@ +--- +title: Changelog +--- + +**Important:** +*for the complete changelog, please refer to the website* + + + +## [vikunja-12.1.21](https://github.com/truecharts/charts/compare/vikunja-12.1.20...vikunja-12.1.21) (2024-02-12) + +### Chore + + + +- update container image nginx to 1.25.3[@84c52df](https://github.com/84c52df) by renovate ([#18099](https://github.com/truecharts/charts/issues/18099)) + + +## [vikunja-12.1.20](https://github.com/truecharts/charts/compare/vikunja-12.1.19...vikunja-12.1.20) (2024-02-05) + +### Chore + + + +- update container image nginx to 1.25.3[@5f44022](https://github.com/5f44022) by renovate ([#17889](https://github.com/truecharts/charts/issues/17889)) + + +## [vikunja-12.1.19](https://github.com/truecharts/charts/compare/vikunja-12.1.18...vikunja-12.1.19) (2024-02-03) + +### Chore + + + +- update container image common to v17.2.30[@19ad5ec](https://github.com/19ad5ec) by renovate ([#17804](https://github.com/truecharts/charts/issues/17804)) + + +## [vikunja-12.1.18](https://github.com/truecharts/charts/compare/vikunja-12.1.17...vikunja-12.1.18) (2024-02-03) + +### Chore + + + +- update container image nginx to 1.25.3[@6eb9534](https://github.com/6eb9534) by renovate ([#17798](https://github.com/truecharts/charts/issues/17798)) + + +## [vikunja-12.1.17](https://github.com/truecharts/charts/compare/vikunja-12.1.15...vikunja-12.1.17) (2024-01-29) + +### Chore + + + +- update vikunja to v0.22.1[@c941543](https://github.com/c941543) by renovate (patch) ([#17687](https://github.com/truecharts/charts/issues/17687)) + + +## [vikunja-12.1.15](https://github.com/truecharts/charts/compare/vikunja-12.1.14...vikunja-12.1.15) (2024-01-27) + +### Chore + + + +- update helm general non-major by renovate ([#17525](https://github.com/truecharts/charts/issues/17525)) + + +## [vikunja-12.1.14](https://github.com/truecharts/charts/compare/vikunja-12.1.13...vikunja-12.1.14) (2024-01-26) + +### Chore + + + +- update container image common to v17.2.29[@d7c41a3](https://github.com/d7c41a3) by renovate ([#17545](https://github.com/truecharts/charts/issues/17545)) + + +## [vikunja-12.1.13](https://github.com/truecharts/charts/compare/vikunja-12.1.12...vikunja-12.1.13) (2024-01-21) + +### Chore + + + +- update container image common to v17.2.28[@918b4c5](https://github.com/918b4c5) by renovate ([#17478](https://github.com/truecharts/charts/issues/17478)) + + +## [vikunja-12.1.12](https://github.com/truecharts/charts/compare/vikunja-12.1.11...vikunja-12.1.12) (2024-01-21) + +### Chore + + + +- update container image common to v17.2.26[@24c98f7](https://github.com/24c98f7) by renovate ([#17409](https://github.com/truecharts/charts/issues/17409)) + + +## [vikunja-12.1.11](https://github.com/truecharts/charts/compare/vikunja-12.1.10...vikunja-12.1.11) (2024-01-21) + +### Chore + + + +- update metadata in chart.yaml ([#17457](https://github.com/truecharts/charts/issues/17457)) + + diff --git a/stable/vikunja/12.1.21/Chart.yaml b/stable/vikunja/12.1.21/Chart.yaml new file mode 100644 index 00000000000..6f0b2d91521 --- /dev/null +++ b/stable/vikunja/12.1.21/Chart.yaml @@ -0,0 +1,45 @@ +annotations: + max_scale_version: 23.10.2 + min_scale_version: 23.10.0 + truecharts.org/SCALE-support: "true" + truecharts.org/category: productivity + truecharts.org/max_helm_version: "3.14" + truecharts.org/min_helm_version: "3.12" + truecharts.org/train: stable +apiVersion: v2 +appVersion: 0.22.1 +dependencies: + - name: common + version: 17.2.30 + repository: oci://tccr.io/truecharts + condition: "" + alias: "" + tags: [] + import-values: [] + - name: redis + version: 11.1.16 + repository: https://deps.truecharts.org + condition: redis.enabled + alias: "" + tags: [] + import-values: [] +deprecated: false +description: The to-do app to organize your life. +home: https://truecharts.org/charts/stable/vikunja +icon: https://truecharts.org/img/hotlink-ok/chart-icons/vikunja.png +keywords: + - vikunja +kubeVersion: ">=1.24.0-0" +maintainers: + - name: TrueCharts + email: info@truecharts.org + url: https://truecharts.org +name: vikunja +sources: + - https://vikunja.io/docs + - https://github.com/truecharts/charts/tree/master/charts/stable/vikunja + - https://hub.docker.com/r/vikunja/api + - https://hub.docker.com/r/vikunja/frontend + - https://hub.docker.com/_/nginx +type: application +version: 12.1.21 diff --git a/stable/vikunja/12.1.21/README.md b/stable/vikunja/12.1.21/README.md new file mode 100644 index 00000000000..957e886d23c --- /dev/null +++ b/stable/vikunja/12.1.21/README.md @@ -0,0 +1,28 @@ +--- +title: README +--- + +## General Info + +TrueCharts can be installed as both _normal_ Helm Charts or as Apps on TrueNAS SCALE. +However only installations using the TrueNAS SCALE Apps system are supported. + +For more information about this App, please check the docs on the TrueCharts [website](https://truecharts.org/charts/stable/vikunja) + +**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)** + +## Support + +- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/manual/SCALE/guides/scale-intro). +- See the [Website](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/charts/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/stable/vikunja/12.1.21/app-changelog.md b/stable/vikunja/12.1.21/app-changelog.md new file mode 100644 index 00000000000..abe5ba3d031 --- /dev/null +++ b/stable/vikunja/12.1.21/app-changelog.md @@ -0,0 +1,9 @@ + + +## [vikunja-12.1.21](https://github.com/truecharts/charts/compare/vikunja-12.1.20...vikunja-12.1.21) (2024-02-12) + +### Chore + + + +- update container image nginx to 1.25.3[@84c52df](https://github.com/84c52df) by renovate ([#18099](https://github.com/truecharts/charts/issues/18099)) \ No newline at end of file diff --git a/stable/vikunja/12.1.21/app-readme.md b/stable/vikunja/12.1.21/app-readme.md new file mode 100644 index 00000000000..2e0b39653cf --- /dev/null +++ b/stable/vikunja/12.1.21/app-readme.md @@ -0,0 +1,8 @@ +The to-do app to organize your life. + +This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/charts/stable/vikunja](https://truecharts.org/charts/stable/vikunja) + +--- + +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! diff --git a/stable/vikunja/12.1.21/charts/common-17.2.30.tgz b/stable/vikunja/12.1.21/charts/common-17.2.30.tgz new file mode 100644 index 0000000000000000000000000000000000000000..a6cb126e1b283d49dc218680d9b1047e66af30f3 GIT binary patch literal 98054 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%0AIfL=!jZC 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 tJ6Yu~*;FIb@G=`MgUep6of};?E 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%0DK5lRM<-l2d&_56tFfI;Cr|eU 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 Re*gdg|NqdaNH_pY3;-e0QZ4`h literal 0 HcmV?d00001 diff --git a/stable/vikunja/12.1.21/charts/redis-11.1.16.tgz b/stable/vikunja/12.1.21/charts/redis-11.1.16.tgz new file mode 100644 index 0000000000000000000000000000000000000000..b071f7a40098fcd00ca23e06a4d6a5ac6bf3fb6a GIT binary patch literal 104121 zcmV)hK%>7OiwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0POwydgC^-D2nHAJq4DWwbRb8MUlEoGd;g?+fK(PZrj^(cV>3Z zd>)X5B#bG7At1RuJ$=6O8t3)SlbjD%f*0LX3BW93LK>9yjPBNl3~@pw2(n%f$l7(3GTiBM?FceMnKc4997PqIuS8z3q6N3TPa` za>-UjNtQw!k3fhL6o)7d?rJc>A9bx|s|J(A{Omg|r&BX!F`}bd1H^ESMj#;bIf-ik zq$nX2GeHXp@Tl2jL6AC_G_$5_02s_X4z)F`g@^_zPMCOko}d^|vPc8;8o+P~;{b)= z2HiE5Fj^o$8A*{-n-SjhjIo6Bb_y&Ne>OAHnqrREaKKwwQ3=nd%^6`4j&B;|M#5yH0?sv60#4&?7MyUXT z<`73Cfa3}IYaXE*Q2f107wAwkZ;?i;D5%Ne5-rI=(S$BN#ca0loq)`nK4vkTWBqR< zB*6_z8=9hu8d+1CyDUYhIfs;?bS1+xP#lhIMSx2U3bG)(OV9|wB#Ce!reZA{C7$Cs zUa$6K^WT>L5eaUdqKysm-)*or=vt5$2&9*jC|XVB@m-F9ox|6lc|n=60BN6vpC!s$~ffa~YK*K&KM`QPol z=zq`h;5nS4QDLU%mnQ&{MHF3-2nTl~a56a~>>@=J#f#j({uev z2fCBaWPpNR&>Fe}9}fMF2Sc~r?zH=Ur#JB?J=7V5?O_0igP`O4ldcPEwhDFbOb!{TP~Vo1{sS-2gOVKCjghnMCd_vc5)BOq0QT+xHm)AOINkKbQh z{r&plU_Ac${PJi7>UW6ND?nbHUtWzs{qtwwe3X-sqI8J^P%Cxht}u?vzi z@a0P-DBW1@8vqmqDPljNyGt}Feggn~N?;tG`~N}#I}?ilM+Q#}K4LIjKuWm|2)=yb z3&7{k07VpmFJC4wqT**9meAslTvxtZ4>Cwmh+>9eL^WiqH2Q=o!|`-1=m1~7Sj?*W zrZD^b86+u=*#y-8n>PNN)`4@0A_OUNIGvy_u;5M8x~eE>_^w354Z0ht;*CUMZBv@0 z#78vG+6XUEj3_NK9L3O&_;SYCSokJ~Hu{8u!Uw)A!#FH=UIWls#mhz!0Dsw>AsDe) zGr{rnTBCOzkpM;xoq<-aN{V2Jzhe9ieya%B1C0ik5-D3GvV-`K_kS->h{2lR*qF|9?c6Uf(hCVUgoDq~-5X101 zj_xiAVL#vq(L2h}d<299kR=xJ0ezQ}MKS_zO|p9q1S~9+=A2uu0U}F{?jmo z?fqBN$8pn#76*R$1vFw%|28iR>);>%0RQ8Ea4E+Hr}%hydUAd6;p)dXrNRbSifBS& zir#$t%Hk%&b3_&lG$?3;Z$0pTTHmB}2qK(&3qWHA1PL=jS@BZ>zReba!bi>q^J3rp zg(u(_Q2$orR|o&~2GlRk&)(I+KmNoApgpirFe9KofjB}TV1##Qi~?h3BV$7cjwtKE5SYA4AW5;ni%O6kA4~|aG-hoSwAixxG-H3M_7c+du zP{aU^!5qy=dbhg&ckjb&_DS_-_g;K|Fuppz+^sW1H=IE{s#`>k8w&syVc zT~h|xg1&Lh+xoXzntlb%9e9z6OgpLX?69MInF`Kx^*>Oh^hKZwsZC!ygFuqEpLZHv;u~ zEpP3KSISz>`wWEDtXYt^?d7&quiYP-SD9h0J}gPJn4`l8;`tStClO@Qy2}__X8N2g zVs-)9Yy|3gH-EjBpp;_DP#h?a3-6Ql8nHA7j0!E@5z9uGwaYEb_i~i0-h59&Zq&Q| zZdbm?49yL98q&I5G37J13Ha+v*`P|ZrV7%kLe)5#*|Q$0VzElB*1}p@YBhm*VYHdn z%JOTvVl({p75J!!5$|)7ptvyTqyaaFF`gjG-oqG9rOj6;@msqrU!F&Nr2n63@zy*$ zzd9Z}>=S#$Ha6}5xjnDo|L?eN=f(g39M9*^4S?eyT7(GHS>P-^M{fQ(5%wLq0>^|Q zS_j{P#+NTIv;U9v6z9L{{72mh+&KTc#r?ldx9z^n|L1sWpFgjf{{)68bzl_LfdgJ< z{vY#^^WT}FXpW~bNzoIuv1$JI`rXq0f2;K}|DWU80~e4nl*SY=0^|??w=)z2e}SV= zZV&`FaEho?+XGiKOo58(q=3#)6oF|(d@zSBnBjQ(8l)(K3@?$eO04%V4r_ZLMpLox z23{p8n&3|;1h<&Yz<=#K;5?4*0EtCSjuJ>v3L+dMr{)}uug8p}sI~_Vg?s`Z562+H zDXlqE%$nlA68)Ov|2u7p|LPaBX_Nm)|D?;fnE~=)aI;9j1V@P0zIW(tQv2TV;Z5y( zhs~4P_y1RI4}63vCJPEqj*e-~Nm9a1@S1}|1e>y4O8!-ImNXzC;;_$uK0Ce~3!uWi z@zcUbX^a@6HTkKw2l%9Gge0KAtiQGIohf1SB&zKJ@nu4y5T&&y|54imI3TfzI_^JSZ50?Bka+@ABwb#Ow&OZptL-?B1!*6=YPqde!}A)RyU!ci z1BWv{F>4KQuwbOI5J5ZA{|7FQ502g+gJ0+kPC$VFQEPzr@LwcV_;RuJ?!!r~0aPs+ zXbWV-U<6_kH|C=Jt6%my?Otz7LNKKZM4PNE_ry^M(&3%~hoJcP6c0 zMcTHVUqxEKK-yp%($-6<_O=rwBg?BIYg=JgMOLRkR?jA@d#~kaQ@0Lux4PY3>36&P z`&+cocf8?)nkcdO0qdJrSl>K*eRDfc!s5Q;m6r?eUdsiJDW1+)!*yJz-7S!kTQu6c z&hNhCl~)b#0jq{rST(%ds^L8qtL56#>g~F=w0c!*i}!%F#VxEYp8IGFSS!j}y={@s zXm=}UcOS6$xP`^X%@!ZG(Y~K%y+!A@%0xV1nQ;rtj61N1XqB|a$09U_6M!~>Q)x3Ju~ z9h-=fqO=tek3{J}_O!dLRcCtIZCCa5SH`4gr~h8YaZa5ma-nT=p?4ph+8gX@1$l!i zE69C-Y3&wFYqw>SRnn3kO@w*9U6oz0SEcN_575Bef(GV#Htnq^8rXeB|E|lI*Q;E< z?yrCi3;LJq+T=f#0@^E*FucDSHOy;K!{Kuf(2@Pu+11SVI(^$7Tt7Q@_K$c~{*mFX z${kzy2&TadFEM2@tHQr1iKPI{&z9j}EweZCv8DL9tAO`96#{;Ee=Tm9SK@}Y4(B~+ zbz9%XTl=mI;a*i2-(Q6r<~6vXt-yIt<4x&1UWtHh*MZe5bAAaMc5OOJE{kpY#vN>{ zF6q8;2c3$(xxdmi%xfD%Tjlbe&NO!WyBZd5zrwH>K3v->2pe13TDi@#X4pw5p4;11 z*toqaVRL_dYgibowzgGv%sxiHmXN=f!esYNE3Y>Uy|pxK>YJW6=-sWiU`*$1c#ZO?8r}g7Eum zA%naYGHBU^Kg}jz&nbCsw`RjO)@duhH$3oclJ4imdb|$r?zlYj8e8ohcPqAZ2KV;} z_4AtDz_pq9H2$zE3bxjjDk#X?wEf}3DR?RLRTfIo1O|+xU@T7$Qy|jTZXZwB?r&`> z=xNy>ZlyKLN#EMhLC9-tJL%O5y6YAwudy`&{r;}d`~3!r}k;CvaJUvHt8arcmM=iSfm`^PTy zGNfLH)XQjj87(gZp>iPHKT@eU5PJ4Nc)}>{ud0u~?q0ZG!2k2^!+hl|ENvsdaOc6? z`2!GM+K7HmnsyDGSi41=k2UCb*HW3HIawmGh+~986ao~XIf@yWq+||0oG2=HjjHPR zD`IH-_llp$g@@#KpZj(gg}3uj({9Bvr~duJ9Qye%hrS)=;634<=vL!&*YIy%qoN1D zD(?Id34czS?jP9F&j+^j?ZB3D*!1RkI4t3I|Kmped`NTOj!@Y>q`4~($hG^eokd`4 z>%h`>f9IX6eybvx#nw^fWv=z|At`-3B&8gTyA@4aADJ>VxfL<)z5DNL_wu2zJ$qk! z_rwHUd7`Y{+gbt9boKfsR&q|_DGB{Xi{rB+VRl`v$mC$zq}@xX^maY1&udhXwW}&) z*KHTb%2b!ZQ=QiDIz35$d)ENwUVFR5BVC=P$);>qRcIZTI%~PKJ$h&!z+i?#Ia_uf zp84uxgccxfgXj7|x^?m`(@8C}@)Z$$7=4{GefDTA2W)Td2N|r~^LD1uTSeo}qby&& zU8b?~KpNYM#+`+Y=dPe}S1qPc-7C}BvT3~6+Sl#v8hYIAnb6}P!okgqEGTMtj_Yha z95jK&`dt4k!Q6(#b%v87b64xPn;ot$q4_{Ey$UjOJ$a86-<4$Ud^)0=osKA>`9Lz= z3Nk&5%(BCN(|}bU7@W#8RNbw+!jS8&?A2X0(n9@V1+}hC?at@mI*!+_M0Hm^vrv6d z#&l>Sy7K|qVz+d5&E&vqtmu|qPgxbJ_sg^nY+6eSC=5eR&ti^ZCQ};+GZftTBG_&I0YnTDUoLeiGC|NyK9aC zUSkDkcin|6RPU8J+qXHpvv$|fft{V!j+w}KjTJ=hsu~umcgsZfwjpxulH1w!SSzm~ z^!F4c5eyLcb%Ch7lq=!oWX|pU@zT!LDPT+^?kdr^aW=ywS;@jqnT475*g&|IO%bZnZR<``W^Ie=Q5Ge8tr)!W+r)7qSz zp#Xc8VBe@K?#STwS_VHaZ5yZFI@&6a zHhrZf`R!t!h!s}?=VZwaWcv1R0OK&b*czm0f>IO*h=On-Qi{(OQv`4vqzF=RwPA`9 zLNO!h-L`{cvzH;yyxuCkdZV7Xih1q|6Unu?S8{0!MI)=hxnbSa$Wn;o*LrKM1^g7j z8yrsoM?$bweWF|((*y+=%8q~mLn$p$=x${ottGKA0o=TK)UU7`KFAKdL@=Bqf%OrR z_jPi8jl@z{tH$--W7(~+aooI()6bM?rS_#L8@iCeh{&<4Mxb88t1*4hz!_8^>aIc5 z=aY^RfMU8x5wNb50hod$MHI!1vzAXxdBbNV)*Ds1bx8NhNDpkBSGkXIz;z=&ZN2Vp z)7IY;UqOAhOnq-H^%`kwkmXF7 zEk&KT`EYW9XTst2X9!|AM{nvyGU|W%a})kW;#y?Ty;V!MtXjGS)lzKlt-`9a4y$`B zf3EU*7vUAL+AE7_Ic9Oph`4-O$X|I~jO>)n`QP%LBD24(BEP+k{ClfrZdo;R3#!@L zPHC;f>S2pY8LQU%PT4{wmo=2Y`~iOghrER!#WK4{C`%EX3r$1y;C90*>%q>t9`tNp z6~9@Oxtg*c5M+X|FticnsJWYW)N-h~Vn6M-zU=1ZDLrBfxhV(glU)9^`Tn<7`Tke0 z*Y3UC|MVP>b^ntb1m^OmcWS9Wi6^91v#(``G4Q!@L>Y`Cd7ZmY*bH39B%QCS!rBahe<#{90$*JxCp1ME-vKE! zm5*+w7ZW-oizwurPa&o#1i#Esigt6^#pt#f%m|@q|NHMnFOMbrxR}4N8ABE+_~q9H z4sIHJf-o>$;1E%9mtC$yRc^k2SjsD%CnyFG{37VTH?L}DQj8N4Q^f*p!xW~5 z7|ZArrcC=1IEBKM5Mn<<08J(&Wq?csF_gi{#HnfKlbB+z!OfLX4SoqpEC%vQMpKE? zKA&o0BLMpg#w+`fk8s(3HpcG2ExZGFWWllhuUhT;Ad0{xp3WErmx!Wti9*l-SNYj+ zA?shitl@vGN3Q=cNg9E^{_oM%fKB(mc3SNH%hl;Y6xzGRMAJcm=1^G5fbmeU&k^4G8*bUavXXsU1fd}U2hOqLwzt6%oK zez&vZ#h_yw1z~e~w4={{^J< zmZaeb)ES~IQ9tW1i~S$|k@Me#2R!o3m(Paz-))ub|90DbS^uBq*#jqW5G_LVd76?% zLci3^SQyo;j}h@<^u>B}OVXQ&z_9Aw5lSL*H%BqEzosaOZ~&=izf4FtPEcUKGTOj< zh~vr+Z~0nP`Q;#7!Z<)-<;O#@^;>BDTx|K#FEs!fU-wmJbX=%o~HzHDoNMia@)F zWKf6$mai#_msv4J5egVdPYDd)!ie{O`ek*o<4-Jw^h*x(7JRgyDxQK1Zq!!{jPg^( zmK|BN1-mL(x9W4AaN!SHT{I(~Q@n~s`4k5irUE)ZpAte5mEJ9*{EJV@5l71-wft;i zqmpeHEWFnow6s5d{SbMu+#?Lae)dPOr zAU6ZM+Z$}6^BrI1))Ojlq}K!QJWpGf<^K!o4ghlO6PKp+c9EvR*;g* zB&YS|0#d%bn52*UDF2Uf>CH*p6fXZqv;;T#e|qg!!T#&Iy%+oMSss|+k9?)%GG^JT z!6Y$1#nAv(%ZZ^M7O_0i5@A2(M#3b&88#zxGy+=$hOiW&<{VOn(){SF;ea=!LBJ(s zFr|(J#a9llFQS+UsEcO5*Kyr`w_CeGciiBjqgn%Gjnx_&(}s9aYbfV(?PlR4L+W>b zdE+^)j^j4m?`meJHWk3o9O7sswv_*x-+8M65oj~A834c{jWYBL6=ZRRft0@rz1mXa zqCDQuB>>-S6hKi&3A{KxY=d!W$(?}T>;$bPR$Uk}$9#K$pWmd+03 zSE;@5;V%CefzMyoSAcO$(AU=;aM7ZU9qgdvr$Pv6=&0YrRgFmoNRJ?NK*cGI*mlMyX2wt8=CKHsANHdBq$C@N*jXW z--uQ*cHiR|&lhtLlMo4~mXHg4{^0mby&Hj{>$r1?`e6kws! zbE_|ilc}g35+viJ9)qwnQ zB^GwB0u;*{UtvlZ2}s0Y%UAjh9}6q1UCBmN71_*TwBSnA$wdjT%mHGs%U;RK$ucNb zyF|RV6yeD-kiRwW3xzK}9)dCcHG{o7RpHs}xc^s4wQ=Nk6h%AIwCOby`mLMX$L@}afGU6CB45K3y z!MiaENE}j*r23km6qB(0UbSI9bk+L_#L*%}SF;q+8HvK|3tb3etS_GUk|G%5uLGf$ z+_qpaWsBrq=yX?L(^`p5&t1cxnv^r2k_ZP_EdN4N$YdO!&MXVMByn_C%S*SKh%Mp7 zWJmc%dW~-0&Ip|I(U>fv=z>HzxEq0!$r)i6^5ha<=HYY%mY(Cej`vqOgRO3F)bo)) z8FT`7==t3ccEV1pHSi~cq1)}Wd#K$GV7u?ZNzj|L{jl5ez22bZcigbw^IPo@)oKD^ zWojV%TMiK81kL=6nY++>hhTUfM|YQmupe-QWGJttUWoPbBE?G_p(#410hA%Z znF!*uS$z)ew-f~dnI{)1ncxWJx7#ikF&~ObK8Q~NOrVb=%y70K!!R6yU;d%Dcyc5d(<=jJm%x_J*IQWf|(puizJbGV__s}P%}d49Sv9{f6MuJsU4)X zjWioyD#tIvbF9~;AX$t+$93Jg_&G;&A*lvpu}qQJpSO#8g@Rr8J+9SELu!MYS2+84 za&&TVeRyy&)~hItB89ptm*?&p-e!B}9G290$9f+tzOjbgj8Jxl*eywK@-Hv=FtT5q zTpZ?KaCu@uqBEFsRf(?;XPI=@pHn23EZvz0(Jj2=BP5Keey7x>A8<;U{35q(B|k_; zkgcA_Az{?W0ih0$K;5e=Bo87CDbmA&tIc|^SpvFQ_$ZALL)5{f3DaOU0(CeKdmS^* zKX8>)9G;z!G~g=il<=XSaB(TRB#Wt#YW0{wh9-+>j2N{ngPQT(k44?gMkNV}$n;LW zJ|r;}C%KtMn~?~m+Tav#XfQ+JB0}kzV1itaQcT41qBU#vK9%CN_*zIpvWS_sYJ-6P zx*|8olIIMib1Z}0-=#1>7kO2p=c*CL8Qs(9(WQzvKL#b9L3SWJ7ChNn~h) z^+v7^8FR(U(Ek}?X4jKZDtcUG;w@VpvS#H|Zd~a}B@~o)#kCVNZsgBgHR7Yf7JgBI z-PCkOZ~gOUlRHRR6AmZ9Nl415`cqjX;LDfdu2Lc_Kn~>FO;8w2r-%tN@;}CU-PklQ zUTn6c9{;h)EhyhR5X*wnX5zC^ASWufv;NHucwuRyB}(sZXDBrry?%shSO04SK3pB< zrnUla&usN-_lYgA)7;BX&T1Z3Pt3&F<-(q?S&-9*lVc{x5WFMk= z!tRc+RE&fGy?|^s0!>+2mJ}T&C5G^hC>TqaMr2Cw*}xK}O?EW7LBHhc-J=BJh^9sY@Y1eScsN%Hos?kAzC)+Y`$BYdjMb>P(0#)6&u~lS`~%l zi>fxo2OE%XkI!)!as5#o!uPtPcB|*=GKu)gb%F16fu1Pv-D_ap^yQm>fIXtTl)5_p zH6HQ*I4#%p8g9o4$lO7n;5>=YNJlGh#mJ#|)N?-F{ae?J7O{-l5YL24PZj#aI$-a- z*a|1>BxWd`2t`oKt8zi%yI@4=G8{2)IP5gsu0SkB;S917SKYjFWw>CoF`{C7PQL>p zibbl2bxP()|Ey;vk}RyAm&n5EOE69}dIezSeFfBFoznZdjlVcD$p!K6j)G;tHqC%# zz{=xaiOM|y!n+vGanMMX!6rz_GFS&`%~Z7-X@ro$u`uqQt~~%stpIR?W8PO6dc|QM zNwg4ZIi8yiP+cyLsN#5f@$pc6(!U!4FTFM5x|(Q1b!1?*w=-cHV6uGL4g+8*m~)oR zfQyd;Y04nOK_i~fr^Z0GWV&xoLT+tNsD2>>rbeLN>60=D|85DM<6@B>oo)7z$-lVwtBS+b*x|f%7<$p<*V{q8zXI)A1+96@|zs zaWr>?LUiC0w;>#fkJ8W~N*SKu0J28{D7%rCEKT7Zx>!Wf7zHWfR(QByE4&m#bJt3h zcCAdAIfsd;VSbewpaO(4+bdC^IX9qf;Hy`q8mSKhQI7vnh8MsHmAY5Lt^8D?O%${G zEvsw2tZw(+#fPl)yNeGR_SyN>@z`OXSS=<@`s`*1hFqZk$HbGs_(tU5;N7kg-{5!( zK7R&|48Ij&3tzqf|IP|8bcDZHiVEq^VdU>{9vQceawF*yvc1or8vsv?69@lIT7JB+ z#Agp2k~l_z$Qpta&(zk{-({i@k-|`HunJ5#S|mXtf}g}lNA^!h6p>s0Qs!aCF()zw zeoAin(p@w7q%fYM)hIPUMw_Ew@_Hx^L8I{d%a@v_L+ZnF6Qjh-QtR@ou46Y{*`|5% zEvF8Q-e?F`u$CjT3E3Fpi4e82j{ac7F<^cqbF`AUF+wu85hv~Y?}aNbN8R_|1IWND z{y~8K@@2mUz=RNHjl4Z@l*{kPUl#KIuwo*ld~$oDoIEQcT*bHZ1jUl8#f&&2r;!*E zGZb0Lm~`436~V_xP=>*}26gruH9hg)o8FoNIvCG7da7Nn*&F3P&Vmla z{I7F_>x$mjSyYvX%(Ra5h#Zwlq&PJzyrDLY7Kkn4lghx1AV?idn*86UDrjOb+D^Og zxH<--kG%d6bx_dmxk1?XAVU3Kztiou(IjjS+z`63?{zw-RmGYX-|SyZ!l=Jf?==i1)VNJ(Dw)4VA2cP-98Fo z2#4)~I|=)(ZrJM%J-_dw9twkCErv8mAq!@kQB(yrj`CoK>2K(E+Ww^H4qbof`u@Nl z47*-y(C;Cy6S`rqhgz`H?F@Yw4t*4&9-MRselVPL+o&}eu0`=?;iG^>n^9B+t5IzG z-9gXq2W|&V{J`sn-JsR>xBg_y$d23TMr`Up2xVr{g+ZBZxw;JM2!pf!pr4 zgCT^S(Czx(!0!ygNk3?H{7L9SzuQG^KZKs&^?PC19U`xX{BGNWwOT?bfuppsqihwEM6dy1^hEx?#W52~n#ZdV_A??GN2ycjEiqZrB=j zIw%-=;h^2>c$1#n?ync)bC_Zn`nzJRs#PQ0YYn;sf8Y&0zt?N^y?P04Qbf6y&{m^ZDXwqxJ0c`hz?f`k+cFzkY?Mct;58a;I8ctxx?@e0Wpzp00 zohsr9#UC%uTZnz=PyVEgEw>gXPlyU3z&wx^7|I2Xv!j84kN$uhZ|ghl6$}Xz}6bP7vyPVGFi<6WH(h zL+HcaVAyj#f3gh@J26>1wvb9Xs!rpm@MxV%c7{^q)b_wZc1kNNs?z(yFqElkVHnCx zq#+hZKVfI9?T%^{Az({P-Xy{YYuTtJ6)illtBseCvoEQPebhd0VS zA(NfT3^uAJcqMET9IGg**FZRCUIWAe$8q)@1?NOKG30#}!qjFn7z0m(c@5^g6)L$4 zWsrIHS=55*jZBEFP;gd6rznCIEKF@6P=qaNQXLgFt@Dl8griRhj6-RXN(XH*(l;eb z93uNTo;6A6VCblFz!MBi#a_Nlft(8?$Mth0Vr_X=;g3CJ1WP}@LG zL;@IDWlGp3kj*meI0&n>_&Bm&0E6KLWHSeBi(2NJXcpc|kGZ%uCe*Go>!>#P%NyW1 zUZ>$!K$DRo7b%+HPgP*gl@Ep58HOyUyBTjBSnjx;EH6g@AD%NJ5G*vJeKg}NX3hS* z7K<3pSE5paBR0}@fiB|nwuPR#j|xl5)# zGW1M-hZqG|^|n0LppLUqxR59@_+yzNWMrd>x(4p z!V_s6{aN84bNfpqtYe^SVU;Rol}s~vSaQDCEbcc}PFEZ=G}ZChIt&@5>^+R(6r~lx zjoDJLo~*+0Ww0_p(nwD(Ja3UN&SfC05=-wAB0|co@Y6*lus35?35fFX z=Nwl`#jWHgrcgdFQ)T6t$Xre4n@%3NrYRg)ZO9}jR`FXLP7xdBc#{WEV4VsEuUFOJ z6Id&pTnGWzDkbulq6Uq|aZU6VKPXSr%(Hxc#8&+@QO{S98F| zf>{d+o3Xs0HXrt?x__@)=5d%$q$}RINwWei23Mnx_g%&KW zwYSGt2cv=lHiZn`!aI44OQ{^6JwFw{`u-XgckYrj1u8&I{oXcQb2HpFz3h z%NJ+_*&;=+^IL{Gz+?ea7&D}-92l?#jG{YmOVS%*B)&x)P0k2)d>6(|Aw=YL1l(v7 z8_NschFECHf^pC|KxX?;rT-AOXvGm9)puk8Zec7&I+L~`WFW=#rnU!u`6We@e^`0p zCCeKy!4Ab!>f8*(Nv-Tw&?Ze#(A-l6omd`b!|_xV{qNRf>A@(O!Pfpt%U3XY2fJ64 zUu*Sh6H1g6!Jq2eM;PHypJo%+m%v6OO};&?LX#Nnoa`P^?!~Ri*MafjJzxO*Of?R<@>Zu;&v`O+{%BmoQf)&kPzR z!xd##ZfruXDmpD)L`v}S-r}6hneDcNN1sQMJ`!FpJGxl}>%-s%#i3C3QUt^SUoLy} ziCXJ|C5mF^m}N;-%tnWVUtZF6_bL0&dT)15CD%dD?vl?f!qXYk*&#sDS`SDp=ZWPl zF+|}wAak2KCyO#OvpGA`D(azv-YyLE+~TaY3U2J@%xwLrmAhH1B_uq;G+hW0^md_@ zmx?o71(~LzTeZIhoa#hVS>%&^l^IU*?N3~%kbizOib%nEleuN)I6hcH9LXG=lEriQ z=|c?dx3yd3&j=Bw(UQwlDAb)*1gO&preIBWqX40Y`+UK+0iuhQLDXuwL%1peHUCb; za_ZAIDzGybdt3}X=7LHVtB48K-RjBIW(FQYbJ4xpAAKR;oRV9VUMPH2VQGLFg;i23 zKjqbFq4Zg=M9hg87(t34L%Cc$GRswn<}eOxxga};98bP*Abtxw&naKk-t zVNfyZ;#(NpEE1K+`IN{&oL6+;u>{C`5iy)Z$Wj*xo1qjSneN~f-PiKguL1{XBxEl~ zfonNhom!#@rGzU`B35$gIlU%KaDxwQ+LWMF&qNATvsT%HiAK$AQeow2i&!|#l+Qo5 zRxJrkcR$drD9Nudu;o1?T%iCb6O~g&U)q;Ql_Y#^nuM!?tL##8oQB!;eF9)zsf2aM z7!*!5(P}tVf2-}8)kI^Ya7=TI(BohgvbvIEPlOPq8mvsLr&_mT&izGjgIFcg(TiYIp> zUhs6x*Th)rA(pD3D7E;m8#{z0tSad2mNF(bENBHyy;PB*UFRTZUvEBno)gD$mO(MpCwmShWr zNG4@K6yOPvGg{b~w<%`oQbSBv4X<*$dzmYpWSP5Oi$8^8qW65lManyKjIPFp- zSW7jy4AW5tO??Ye6rz}67}*_r@bkDy+tx=NiJ2^zyhB?$lff&#m_X6#c#=)7H*WyE zrA^w-&Pl*qY8|Eon6KjDl!lY(O#H|CCj1@YWExHipZ0Q7NTDDYAub6uEH21_Y#7zLY zwCUE=XIsDoqbQWimWT>2$|c#1wZiW4MRsbP#N7jcwtpaLfVfsVW_JFf3Ihw===Yd&y7JW&RhIQ1c1IC5*_ z|NX!JADRQ_fL90q<_j{3qq}_zcdJYeW7VEMGLd~q7Jh_-JjJ#(_wMi_+wGLKwJneB{ddh#T>5 z)vBvfu8BD(4N0eFUaBrTo^l}BTXoo2E*^TQshxy^1X12{GdAaUC|-`hglJEP?VMj- zO1C`%br-ncd;Wj=Ecb$<^V=AumuBsaGy+}YkfuQj6P>Qv{*VtElW|ze9h{?|%n_TR1-)EkiC`;3 z1g0vZ=jSih&OGlx>E6%9QtW{UQ*m*>*lNgqlba8AB!yLjb4y)KpmZm>$FamvNI7{X z{N0BWv%yK0DCMU1Ol!sE7PD=#V%vM*w7OMEELczt)ikVXW-t|BvKAXAT*7dt{yXDN z&CY~OvoLfO#UPi=8H(m|x1HK{9!VA3NP<$X_0XFB%S5D$OCKOG2jsOvtPAqre4*tl znw_i~imi2Bss>DCvToUA=Kr=|tCze7B3SaQV3FL_q zL|G4>>q2S-?Fmpq`Qxk;`k3@N3YQ?%7ky-m$DA{ZIF#q-^*taeKw}d$eT~NoXgYds zOK6#FS_LpGu`SFXB8xDF3@=e5nXZDHFSRvnl(NQLMj5VzY?ZOXTdrp2Dt|c~)imcu z_7bHq;(gp8F?D!RYT|{p_J%^`cNHW02HmYbRUq%1Gc$2@%O)=75i~ zV&m4)az2X^JFLS#)4?0#3#(HRnV~hc*Fc?eeytDNyawj53YS0j!Ce`cB#$rg+5EF9 z2-EC1JqkgHk`x8vq&cu|)|5@wGHkCj@KvXCWXWpo%Woz_0gfjm3tXyzQguI=Zr}RL zkBHyos)BS4+ze^JY2AuusF>o{vJ5s zvw(9ifT>97u5Vh5qdVc05mI~+11xf4r22*;pwd&RP(>>imA7(D;^NyNKnc4J<3ez$ zjOVgY3K3=3*p4)yB)I8boAg@xwUDUSFrDUVL$1SJSAHW4=JQE>&HLjzNy(?X>qz7e z%5j8q)e7yI*h5isN)uHKb2AV&oVD9Dy3~xwb@gH1MX|cK)%hQ>A=iNW28P&pkgK{* zASN&GA&cqE>e51(sFiH2Zc%s;MdsE|n%Sn(C8{?EWqh7?lqIp|Um+L1oJ?X1DxZ8~ zVrY|x!>ok+6Fk*7c*$jaX=$~4z~tNgiV-&cJJZWb=j19UikIfS9U`hCL^HbXRK^;) zdl%g)((WvABpl2#$r7+UBDz1NflqUzZ7tMABCBK|0muahNt;3eu5ArBB)4%HGJm@s zc0Qg?MaAHMqfm5VZt6)^7!PRX){>4j(RYr;r5|vF3L}5phDgL$)Iw9a0mjEkabR5) zdd*IwBH|%X2q+SY2~s(W_VS&=7f6efT8R77e;STVNr%n~h54Hl@h;(NlLD_8A;?+9 zirD0_)LuhA@-wDr&xRcOs;Exfl>;e_YI&a)#~R0yxkBa9arVNq2&%jb{4? z**6Z0fBtxJRuv>=BItybF2P$#$}CkQ4z*ktrEYK(jc+jvX4XoFJ}C!{42-1LCl||( zndDVpdn(MStjp<3N6Xrrl`BMPb%K6*i4-3;^wG4ujE|)lUUR8+9--{278MmBuO=yZ zBrM$#@lkunWg<>V%;l*is(CNi@QrBDGXEhm-Wn$N67^R7rl@uA2rKM^zZU{KfisgZ4yTk^<5Id`-}6#3@=@Y-ghd`%y*wAs zS7s9snjPuP{wPWYr|1u~v~pIuQ%?wr-1;(@ZbSlu>Qb2~`k z8UpKs@TYpMcFU8@vCh|*m=l{*KRa;8HcqNy_hl>jJ8typ&_D)b##0>YP~k$re(n^c zoFD4kG6|8h`tUL+9!J)-3m#&F;0|YsZTJ;uip`Br0O*uo>sA6?=1GEd>9HKbDh=RSx#Htp=$@E^EAzV{iFuAGA zf#`ik-ZL}IN3xXpa}vrb`eh--g0-D1cOisM1Pj)(Sp9e_>bl}u#XMMTIUga)QgWw| zmG>VTe3@{xOpzF8x8}9TB`fp&E1z9vWFNd8pPzoXIzIh7I659*U4A&cI{7HCn-fQA zFIC0DaO4v~OYOt6i+93P=tGJeU;^od_%wm}--CbZgipUl|17-3)Oy4490_+q=>OAl zQ)RU^5_-mx3AivHRgBSVy#gC9#84c8pur5yQPx_7rZBkE&C7eGMR2yvUMLpIEWSnE z%Pu?3T+%LKXtdONA%+Xb&9L0&%{;rjRG=X)x)t}_{u4CJqQXl#;81K37p1;rtLSz!-IgV**1O7?&YL(}%zZw0CvvAI4$PL8`8@)yth|a;<6;ev7*HHf zBh-lb7*r@wbuBl!71taqqxS|Sj91W5^|g5lu!M6aI>KK2)jqlo45awqnUW z9kmMoAd&&A$QeFtxSGeuj?VgfQMjS_jl6VNQKw_i^$Q@H9D#bP+k1!WTVQnyqen*S z7DnT3@oF?=dJ8GoIPYDqeAvqirna89CoLEeH!`wX zS5?%?t(igi@P?6{3Ml`SDc4L5vp%$%w;MNcSc*FROegB-xvXurX+m; zmOyF04Q^q|?SR*EQ_OJgH3*Tvn7#%q&9;vsGCk#xM{=U)FetiGrGz^?P<#22=xZzL zIg@!~q%NbUqh>R|2dtuQGbc_{>6cBI;A?aIy}4&!Y;agwEOSW_Y;h#+NEW^|x#1~y zSJZB2E;2&+3S^3T1jf7<_(CrIp>jf-BQ9Di6idBX-?QveC%F(&bC649$*XELcU!X# z6C*Kl){>F!+Lj^8ghrL51oAeG*D@Roi7TVUK6?cc;cJ5d?_|cy`4Nn7RH81mW2I+E zjxGM3@k?RBz_Smhr%u*0>bhQyoxE*dnMkHkuBUZ7O79;3&r@J>Ge6!y(^`GiAj`}F zYlyuigmH10oWz(Nz14xyK^5x0E^E?K3Etxvv(VQkkRC>kX`=b4Y%yRZu0}27KMIZ* z&Lz%^@&7z6<|I12JU+NO2FHK9IzAhpoS%V{AHdo96*&Ie$@ppvmcl{!rwUjHSu*$C z!3t0ACx*m<*FR-;tx{j*NVLOZRFtE#2Sog#IWMg({0kDkm!I-Vs+yK6n(}`xP>NAu zgI(@XnNPWxG;>E$GQAF9Fhkcf%&x^K$_KlZGcOjBPpMG$y1IJm2Hn+-^cRY_{_?9t zq`sf4%-{0rFoex%Q(Q%2D12O|Dav-v0jz zMNF zej+YFGE-Tn?bMeps%G~x!6hTU4P>e0X7;A>8yH8V2L5*`Z0nk{e_WS#)s~J4-`!nQQ@3gQ6H5@P_rQ?7<9b;TbgIZ?uT@V~I!D2kOdRuPWWXJBRludKt2WIJ&D4$IL z4s8VLb&drGjAL;5!(qGK9s;>zVL2YkN9RSPs=!2$mmPfKOp~OD@vb^V_m%uJ zNI?n4qNA&ayz0QSe5}o0A)%!?W@O@swBt;Nn&*{^JENY6+^H+krtML)`Db~O{4amz zh5wR?iGMFrOTGAW{%Gi5oIk7WFwWM$H~~qKbBp7U+)^h-todh)>qXG-2$@D`1g3OV z^C6;4-P?a*Uo>MKH3PIQ00B+83FmX0)x>SP+1azF%z0c4r2c7ZN;Y&4)XOF(kpU<@}!w9p|fHpLaX0K zz>kP;zTkLmOI68{vS(GL zg{VH10rtdwV>&`7$R%%DB-*18-Mt2sn3r}Gt(A<@GIxH5LgYn?Wao`W+GF!tZOSM+ zJP{^RLu?oL+BqZ_&K1JwMdJK1Bu;h)F?_28O0^{yLLA*Slr-XU3P*PUGBC$sjHfe} zvj__38uiJ>jrAn>{ISOopeUN;iea72shp)20J@+Fit|ALd~h;OdvpmM7& zAtbVQ>KYC0Q!r;})nTJ#>MJPnvQ-$0pnf@#wHhiaT%PBCVR zPeZW|dRk`49Dcf%StPExgcyOk=elm)Dxu`#HOKGTY(wc1o3|b_Z;T1)un+#jI0TC{ zqTISk7UI%Bb#b9Oqs0qrPy);)3Ng(>KJK=>;zitB#7VEn z_a5f`9TSFBj;0Tnr(>OaBnt%P3+T~XZmeX8i%Ehfh~`tNmk?1m+8VO8NUGFh6gSlE zQM>a)RjlMlDOgw)79`cTXBm8AmMIpxUnegpiPGJap3oiGo*2B$oMawta-;ZOZe`O&Mn2)TtS0Qy#0dZ{loTX92Aa zOQLPsa9!8!bvob3^r3F?-)_6t`^M{ZyIr^4@_OBG+*Z5SZGQvYt*Lmxv!D#7-?$HM zt4Q4MaU!A+7);{Yi3$o=88<)^U~#d%8idL{XvR+dUI!5xt`Abw zzHff{Qv3Y5p%NT|It!eo=g8sbh~^yoC`&^X|27}X4n}YI>WAa31fH0y&?Ow|*yA-{ zU0$_a1^CU5Q0!a63%9M8>#ON*ns0s&4iYXAOA*<*;C>yZ9}yT*AXuo7&x(!SnC@B6 zQ^(Y)0|)#^IC;fo>lsftD>KOUwdCKLY;L1BV2W7AEc2nr&|LLvUXSv6y1bK+aGanZ zLyP7QGnFtY+{-TD&LF*zegb{)bM!{}m9k3m>i2KyGB^`^XZ$a9cmC*&={0?dAcwc^ zxX~N%s+!Fa_MHX8k?!LXmw)<5m35U=*iBeqQDq*sX{3VU%rqNS`XH>>>4Wn;z2bR`E6m zrh37URX9zQF6KyGTIkDr(5$NjiAumC4w>2~)D*oH-IXVzG&qDX$#;PLW52RTYZX)P zL~)=XA9E5C$5SOCaXih~YGi$pi%%jX*NI7k)~cFHP%1)J2uj6@YC*Y1R4VdwqH;T7 znTbn7L8Z7{*=r?%S)Rh{h3FcIa#G!^D~IT2iBdE3zAzkh43`|Ek`WB(~lY+Lhhll|A~v`hA1r`Lb6|DNNK_FqwTDjxh+ zu|YVdC}k+z)q=CF4L<$yr(flz%%d6r5w{Y};nngPS$Wv?^XDzJIB^Qs{veiPC1dOj zsuaNxKX;?zu!Bx7_#91&qxji1IF=L@m#V7*7uMzCR_lerPId=5Z%8DY#_aBp#0-5B z9`bY%AJ7ltB$lgx%AB#;?=uo#5@K!qrRpjG{`LnPA$ms{n(OZ*#zPU)YY|mI<*T2 z*pvWtE(bO9s!saWw^-POH*hT@Oi{(ao7dpmrC?u1@QtBzX;W6!@Ru(&ndBe?xw?5? zlGkX6QB?(6e5^MbeDv1&pAQ=Rb=A^J09jfA@E;REQE%3Z)c)4e`RSjn)_;A<{635S z=Jns}^-Jr&*YaN0|L1s~aQ)Y#X8r1~(zWnqqXC*ej+-LCUjsA(@ehp0IL7R5 zv$9|>CspgZ**dCRg5}rZYN;tvYvuE-cmM=2fj*8f!}{Pj48ts~%-QkP^}*5mle65L z%Y&cSEtW;Uw&|qb$y#X=UOZ@}T*rl{Unp0$zSTPUxa-r7^53AkgZSSl|2?l;kpHcI zulFMVpX2#z_y6=r+i~}A^~C9^q3RrAgwkxJJhap-IW{?jlbjf>D2$067MIz_!`E7&2qjU{yc*G};NI6`mx`LD9m zAMWk}*f9UwZrT3tyx9NG^O*Usy7!T6e?HF?#P#NX!PHiDgrRM0{S|>-ybbLHxZp+Q zWVZbRye1<;%d+Ql%gkqEfv)u?Sk~9W91B}|4tDkw*#3rYZ}1S`f&Tser?c}T^K1O~ z@%8)jqYtOYHR)Xd;OK08{nPRB#r4_2`{VKP<;Ua85vY^6&cB^s@xLdN`nt}`@%#6vu1=>i@lb{ol)a21|%7#Y?Ww9-bUsuJ}rqf%v*#H18|$s!UmJ zM+=s)tU|I>$gvu?Z28^r=&i$J*}FF;0Q_)rdHnOi>8a^N{o?xk!`0jK4`)Z$;}37o zj<3ebxl@E%bXSinN7)%j)5DD*i>H?VX!1_+k-9>DVo?eRrde^On2D@Wz_`ky=izq9jy3;%!H zE$V+>yYsUD`z(*q|MUfo`g$^xdiP%Le_4IC?_XS&DmDr7PWSTISNN=P#{bqV{9QlW z&wq30=gt=3hWX#=_KWc!?Y`T2ng7r6nE8KIywdd%EI>14cCrEMrkaYk`{UVx`Jl%I zO`GCwD-r%^SmhJKsw~DeY{(dHt|C^*W>%)>xGeAXU~~)bXzeB@w>pt9OcHsHbRja$ircp2JPbwHRgL4I zFId&5yH!p&p$LoEtO!AQ`v;5`DN++v?blq5uPw?|F1D-j_4xeoC;q#+glRKf#8p>u zhYlsdjVgb2aCLlrbaJVxMA)~g2%2RZ`BSHt3igl^?IJF0L;w&;R!K>(i6* z)$y4;cvJR4Y~8xNKisq=?6&cPp{h&B4cMdO@zwRo#e?D6SD72&d_<1B*LqL!flXvr zpPL4b|8{kGaD8z3PBW&`aNUhT#e3FGV^;?!r{lwe)8nJ3XjfffpAB?A>3%x?dllPW zOz!PXZXF1obE51J3SQmr*JrtGum8)dS)aiE@3wpWqW#}-U(WwN%VYF^*}dSEzIB9a zEPQIIXu17@5dd&3uX56trEPB&sDY#aTk+jKr04>&*_zxDB`CU19XP^spSLXJJ(4CC zu|}*5JC=#Mbw*kw=;UWEde z+`L*n?8*(>bEkZ`wz|%$iDes&g*hpCQBl*dF*mjpkV0p?vGxbW@+HWvXFar^v2sSJ zs8rK`tRhch#x2y`q2Xl`i*v)ey1X&E&db$naKXq0O6OQ)4bG>yRpxInBe${nCGRhl zF?`c3pzk-C))_w^WnO~`i9(b<{`8h`pJ5@{b*KouY_0IIhQn7U+Oshr-6_UEQJubP zmzw%j{zBOqqM;+4J~}f@+Z8M+dptH-7~9dCjXo>9(;mi3&NRM!k%!mba*IfObE#W(*;b!dVT}iG|1aSENJEnR<-=IE@3w>r1AzFRJ_qT4D2FR zZNF0?OLogS`#A&m$2zp}h|do8AMd)|jla$IU%%ff?*F)b_a*=DvplQL|8jxyo1FXA zVovL(yqLb+r@m60G_o|X)%vVbK{8>JKLET;;_}XSc8x48lka5u)9!M0v9WT1CtZ8n-KfNaCuO?J&X-bt;0GwWoz-8iSs zy|s+X0Po5-4ZZ@z2Cg-~2gfm8q)6RC28@wmU;I0VI0gv`<>jGx0v0hx$IdNLPIMt+ zU#)BxE2985WxKC#Vb^^3)x?*@Qa+J}m1)AFR_(2<&wGu2wJe6p9Wkv1SY5q!ijEbh zRlltoVCynp%nqi^3 zR@2CV-$~gpHAT==eFdmBtX<`J+`<0e-v499?PJIPwmaqXpZ(TL{Qt8&Pk8>bQqXOT z{x!A!_dEkCw|dI?JT?W%!YCrQ7b#xi2u;y3mm=!wJH4;8K5+Kn!_mpr_0N|lSI29D zX~)M`A5MV-QLUo-?Kcz$T~FJ9f!Qbfzt5!7Z^qIG>RS+ zd{tjzLW$90@6xFI%2wXsmHiMQH#Jpo1h_)Ve+VrUeG(Vp3J)S5r%o-a$7i#=d!APj z;z<`ZW44yvgw6}ezblL7?nmcktrwLQ#9>xZlK)j%gySU6q+}?{BPylB;FWZT!DwIV z*sGQ75~nRo`&-3D5vQ*Iwiecmd7^~%^UIf7qtU3r1b^gaDpwwtUhM|Q;YbaU_b{o= z5rbil^?WhN!01IHPy5P26Jg)cARSYoV(e&ARt=%t{cf5uRyL1sRmXD`ZoZ)GJxZqt zys|M@C9>!~j>G=Cd+ZG6Fp5q^Z41-PX|TUvJk_xcOt}@mjunw^QvR{e*R&MR71e6g zuTE)N88c&#`8B+VjYyB$l&lU&UF!9S5bGls^ok;{}lP;ig&&e6>;`TWU5tlp}#=WF(CIVbdfUiI9_L0tVj!VG%EmJ$-`mhQ##r@)D- zjf-s&yShtI9n=#N*7d71c}=y|cXUQl@p`{%R^^Anvq>fW*wV>H#GYVY3sj(*zo0sM zzpd!fLwbz}+p=f3@8502-J>^(J~5QWFgl4DN+&Qt7bMJK@hroCdwi1udh6DN?D>sW z2mO>*2^+8N2D9~AFCcc2Efx|X2kzCIoFW@Z_kPI*wzB_ZatnID?0*~Wzn<4Bo&Wb< z@_#+gBka5*(Z6HF9>W3*Q4*26If~g=W&|24w=@IIsQ)btLDTpHO+lC>G_wQ^3w{r_ zph5P<8ho(^zh-OD%+*J;2dQK zUz_dvRoku4ZnGBc)#CIYfC6?!GxfJJQJ>vB{XLncPh*z;h9+sHIl9$YRj+Id^tr9i z-dC8}?&aC$+0OnqCf&Up02}T9cJcmCukF6v|MV=6wEs>2{;?eZ*)ZPH17K0|8@K>W z>yPULFkpWdPJpZnUc3M=UVyLJ3t&d-iyPp@4e;UycyR-~xB*_=055KUm*;DKwzB_G z93}+c)B4}y{8y)V{{R1D@87%P#+gN7{P%Z0g_eJ0ZF&wgcQ_B{&3RsiFd5Dyzy^{z zduL~78C%`$2e;)|>L$!gzWcj$vvu>WF-^$WYt4kVrBbORm8wdms?CGlUjJXpBcfLE z@$EwUmvd!#xI(6=bKqxuS4O7HlL!5w8e$hc?uz{)&74KN5KLafNJ*t z-OZgX)Bb<3)$jjHd9?kXjc=Di00a0#N&=#1ot+Bg+X81w*Y_#U(ynd=$|ofO$?3&> z*9;0;QcDYfqJDVAE~{#20f64H^V~Hf6Xl!U3AY?0$IrKk+a^8;h9pKaadlc`K7>1%j z?{;zuP7X5(|;>Q;#Jem>2f|Pca|9^MWj{kYk=l@*FBjSH5!ab9s zAqGAMKDdczkjY;xI$JRhSO9xJp9w;S#$4w1GYEnV`UHkAW|*Z_XMv9B}ZE)C>MStZvGm@qUP&ElBL07DfNeccJ5N$N{D1yJQXPkzH> zei4~&lKMtyaWl@j&YEy3zNc$-Ug0)mv{ z^kPT4EF#OQvWMO=KMBFA=$*vPqeMKP!z_zJDqBh@>T6x=kR*PkglAl5;Th$Z3K)ts zU`p)eTC5T*l~Q?F)S}w!w{JqQ|JBVHOGJE$tV6WVqZStN!3rTR|2U4(jUShkxr8jT z;_xj0S}U{{1OHHA{qdy41a0+w0Tj$V6F&>508WP>o#k(M14nb1`D3Uw;-FR?7N!G?vn%i56lM2a_GZc;F4Ca} zxcvEditF0+X(azg$(Sn5j}!lGYjc0wI{)80=;OaGkzie-R*^`kcG)O%Y8b$byz>)(Ty23aT|Z4O?6}$` znGZ+N?L*sS>2GaXnUvy8e8dKwzg`0&N{D2E6EuY>m4sBaM@y2_u6GjN1G`tEm5Wph zQ8Km;(gYuW4o7GL)$j7`tUvMkaZkLY#%?kVzCw zCb-b^=ug%L-_0iMyTbjo{2=t15Rw-9U+R+yHUp@Mrde|6mC2BmaYqo8f=VN~>c$Ul zVG^=H++vih3kR-I6OAZxk%y!i6Re~|`9sK016BOe8qj*M&ic+s$0(PweiqFd-K8J% z<4hJ}T+}fALM}2mioSY-Qb>XfheqGUxw-jTWwfIE3YXQN6lKJ&4?r@T-oQ+ULCfke zT($?5L-4)M2Xt?bMp57sc#821W_17KVtoiAo`3#sg5q45S)-}}Kcdiu8I}k~lfMe7 zR23l_6&i|sU*ZZ}Y%irK{JK`Zpm=8YeCg(vZ@f-oy#6wD_%y6i(Cii=QLdCQxW#a+ zH(#U<%F9fdKJ6LBk@jCDJSVZtYcb;l%H_%os-%~|)Q(WFHIySJ*1N?dFXRI^qTQ^9?zr8 z{0@B}j6M)X9|)rlgwY4W=mTMVUr!_bZ#ttRk&J(bHxqcqiyHJjuTu7lxDFI-ovF5_@z{nkl{tH-tz zjoKB`GMq-3{+YpXgo!}jJT9*4>2uJM1>U`;+-u59)s*k}yu(sk78Y^w+B|)crFCcF za%oFUYT32?cMjj~twY3e4E?hZxW2Qek^Cn-a*hb`gUJ*o|9^4&^#S9l4?T926MrQUtPz*g~P`JcvkE*)C~RnIFyPQ+()OlisnWazj2 zGyLKz;pMl0S=r(XJ_H~0+g+cG30?vVR)9K@keY!KXsuU)l-R9-0(zC;VUvnO=fL^j zhAr4pZXFP0dh8DgGUNozxb(=Uz0_}nrZ@JN9I;`P{v4y=w*1R5h{DX2zbMdGfMhcz zB84blcooo!Y!lZ(l{N&w1~Anwt?)N4H}Z-~%#VCn?QPTcjgB!B?LZ-J8u(s{wQS`$2*0_K=laCBNy>Q`f<-XL;tq zn_IDqZEZL4hpIqOrGxIMS@2W|T?v#grB(}<{W7_~=}smi z8?d6{hkGy6O0F}J(b~?~J+^*B>o>H1L+dxR?_)#j_p={(KkNLw$9x){|D-U(5hgGp zA5c7-woL(3cmMNX%k=-<-rMT^KbG<^kB$pte7kV@Nas)M*>Ulq+I@q6Z{nlDOQso` zN0i0DjF(hi0D@TD19^I8(v$h}X3<<$<$s&C0vx>nAcMq@l0)$O1d<6a#9s+qfIlKI z10jr|aM*p#E!l@$(j2@107riaiqOCEewbJ(Rkz+m4gG!TxOR3=HV49cc=#%ZCr?a9 zejMNU!L7iQwjW&b(t4aMM8N88l!T`kcu~Ugy6Bg&cpF9-GSToWN6B*SVkLt?>_<~^ zm`L?7PlQ(*Naoz`KPo zbw%{6hMCTXdP1Lq;fCus_xj>inensr0`gNoh{!#!hY8C3u~=quL33lju{1ALZp6#$ z42snf@Qiq1&h_gD0mS$n3e_-R_67OnEEsCFK;TX0`1zw~7?d~6# z`rpphb|3#|DGyWcQWS>y_};Mb?L-B%r_Iyqgsyp9sU((EXreWiRCQnJEGb-flhakL z^#xAnC_UDN04^04_W&;J#-D@#{{;#`fj1CT>#u44DC*DiP#okU!P?1yW!QJfaKQ`{ zG<~aj5`#yKMN`tUBkG6U?fn|T)jnKx`TqSMjFPHewRHV^IIA#Z_@zcDaylOlTr_to z1Fi%N(*D@Sfm)NxJ4NXyy18QvfqiYqDDar6 zHjAdpGHzbvtf)j!FtBx~2~TrX$C?#?i+eiFBz^Z9=4k zKXva%?6@1_y2OL4Zt&P-z(MLf;oG+tA;duzG00Y<$~U#WGX&Hx<7f^OuNOrh_%xLN&=ish zoZ-t^+}8WQ-u}CNuxI-JZ|(K+-%_4hNkxu)HjCjS*?_e++S-A&%HN+YSVOOoJy@&p zR5oFINE~)yyU?TBhPCEO?ZXFve3y?C6VS!%mE)7iNO zR@m1M1rOz=^-IeYD`cHTL(|e{D!HOHhN?C-WQDXVp4{Zft&L6dxs=2A!!Y75Z{4)y z_?hRQbx^TregS$$BfT$zyi90zz7}S9mdra8uT&!a=p)ig`<*_`=2?0TBea{;-xC?yT=rXW!@k`*%-vDmz=eLlDVD;z*!-O=x1{^%XJ>cSU?*py^ z=Vt92gyIHwfD14!uK_>Dd%SFEKMPyBc@YpW)O(})4`WoPqOZAx1;&qX&G>nk@SEi* zmKP4GT!t6VQEXi~?8WQ9-P1_^&u;vOC;&C`|K8q?ng3yvssz3Kzl4WL_Ln~&9d{w_ z(|Pi=@;;lXl>)yk(L~~xWrKKz3Cw8`h(99}ltq8IGj0C)XAuMEm=og?#n1yD|3|w5R!|d^ zCS52EEF*kZDgZv6%u3ghDxm6C?Os}a&eH1hkRNmFZ?yo)Rx~Tyq3GBh+xR(3!YCOF z?vej`N+yyk_!UQb{c`V@`;wPCis2<3(c*p@y~)rltyp(20C@0jU9-G$iKZC~!Z4dh z0XzxNQBbP2#u&F0kN4|C4xP$4)*e+oC zr&1Uu5jin_i;_^K0^OEWU*BJ^uP-i(slW{qZy;gw%DCMzrQ4X;NY;3t??FD-Rz!&_ zUO*DHVrQR`D3%-3P}Fwp5JFnWF%va_Ao7CvQQXE*aW9i#UH!;uD(GhPQTL#9&IqG% zYi8)*OJ|6qeS5Ar3f025W{(c!0%atpm;sANW^X*sw6rzacpgY@Vv$Ol36#F3`ZM+k zyz}p6&PnZpiyx;Ge_I=p1gdMpdvkel%vZp``c|wC``h(#`KPy6WuM-^&TAFJI`X3! ztjb|LLj?GM-4g<-Cc4+-5Vbv8ZSK+I25=;;#tP>n={!^RWC520U zC(Ask^B|6mwo?Lt0lPo4ko&aN5%ZF6^PtGE9w<6-*i6&v3! zJOKDid0HO;F_ zg-KAi>MCI2SCAF|}MhgRV zDjKJ^wD!hNfE`THxko=m7))TsZp`>$2z-#hI}pg0{ePG82>G8MYILFi2#d}VGyv{3D{!YAWsRRl-$ii@ZXlRp81g%F zbfaQGWKTJihTgS#pE|$qhUbBltu5}Y99-00E)xh|OWE^8zajXEsr2IR=_xpkxXeR=^x1TpiW%wT*EP{K~NQxwYcZ)L8@XoI<&CTG2do_Z-$9I0QR5QsT+ z2TB8$9aJOM4K?XEmHNfgz0)N4LN4c=32TND)*{dm!dc#qd_qm-`h_}cOfA(WP31Fsknu;6FLgS>!#BYDr z@K|7#R2ZVlxQAq;xeVA2agzCP6x}vNd;$EPftk*{&t5V=O17bT8dKo%egduCW!~Ld z+uB2BHA6hs04x>vGZZq1hK2A>^2$raS=U(>z#D1+o&@&=r#MuqcaC=}rlPsaJ^&fP zP#Bo@7JprvG^uT9m8_yWM~*5JXu^i>GE-*5*6TQ}*`*0|>c;;OvOeZ&n=SyAq}DHS z531ko%jWvZ48yBfxVUSE4FRn@YExd*P-XJ>ud0hXv@AXWN&r{cH)T#7RQ_TXsnz@NwO1KG!Gxs=4dJ>^J9g8F)d=E!DnO` zlau?qF_85Jr@w)x(zkCfC?{Y`USB$bFBr?Es<1*+e%jiFIM!zWUo;1Jo&Wdt=C+mp zWqYsR|CjMJ+g~0v2e{rw%lt2TWy3M~>GQwn=rsuzpx1b!{4b6nu`hHx3O#227rnW% z{4ZA;t16LC9GE*ql&86H?3^)wi<`&IR3A*X9w2efIDl=V>PY6Q97*EXIpn0#xw4$g-=XX_Mt-O^|G|%=kO>7j zQL6}P%GiFI;v(*2KQH>+~UBt<76WQP^}4ob#h=d>(&hSR9}j z`lWGC`o!A8u^E6f3#H}f-;krq8C$_w8w_Bp$y>{TJ8dxcOiKvNMt%SI$W+h+Xlt-bv||Lam7uH&=&gi}B5#Pf$w7WU(b z{eBcoYP^1ol8tPu*TBl0F#~;R&i$Az{4}QDa|(#+VC5Ek z`&MDS@JrtMSiMxD6|=pRYL9d z>2wOiNCuO78iBKs{5Kc2=VbglyqO?$d#nZ^sFeuoS}*mvGvnT{$o{+kjpR40R;}En*Jv+i8T5TDxhlu7%s%%)V-3$igfd9iOH#cg^;G^umhnp8Xc-?a z+{H^i^0ZbJVLCLQ3^dE+EfoIup?(v}E<8*rGr$BUMy(y~NH2O+; zf1-KLmlmjMvlk7mX94-I^)Ya*{m(l8-Pzjh<-eso4*8D_diO%$cW@x=K&Xv4*y?!L zS#<%~?y(MwBP_y)yP|hTBP)om!lU!5#<6e#@|C+hXmAePPT=g%h5s&co?G6sr;B#w zF~aKtpLMp5_{1pYqjjeFB<_CoLSvXkb8)`RPbdrO^H17&We8(PTPit*)jyYb4nF-#UgMIG&7%;qqP_4x_z3+e*w(M`qWSSG0ZkT zD_M;i3W0U;KMpp{{4YBPd;R(EQXVebDT%5&ko&YWSx+hNsZ+I5&NB)&k?)Kubp}7R zxMl6D5eThRijQIGQx~}=a4D1HIhgk-y5Jq}hl+b|=zHb@;Bz(f@r<5l)vF~;m@Usd zU!9mIs}qEYl6_r@Pb-r$iAlQ_B2o(e2Jd+%{CJGAh)kx3;NgQ;~^h;E%@KVO^_Qufir&^ zC1WiuA#X|sP*Nh!@ee%koVkOlFBAYxB5kPQ3Fmf%4IZsf#mb9eGA0ubZ13$18a0tK z5eNJR;_TVQ8}Kt9fPqH6cLJ_PKXmgiCCFf%JgW{Fk7LJMa)aPh!1bVRYJoVz+LeNM z1&X~y|DyEQ)d5vkLO1_1gDEx=VasS#0ZbCA8PJ<%;L0Q2RRePnPyKAtrL>O@l`%z_ zj5CP8#GFs4S|bNgqA)7!>1lOEZE;zOlI)a7F=UDF;{92J!v%fXK36TW8{N?{3wte5 z&M{q?s+esZ34qPzKhb{Y_rJFe4)(XK``^30{dXx(6Zub!e8&Qy2qB#;7(#l*ZuOyJ zUddv65|K}sLkyYkG>J&$$I&0KEUkBR1G9u*+d6y&JTw|FvA2*l@cs7wbkC$EQQ&7 z3^T`V_LV5P$Pg7k+)ZR~hT+ABV^`HQgE8{Mx6w`Jmtk<{$5)inR2&nNtuzDsJRq#B z8p!(rb<-@G`q};aH1r9)BAHL%_@0fyAG%_nWM7M1dgH!75XW-ZFXi#8|u6TAvoJhY$EvhRrHhs;iA1K@ zl5}UX{Pim>U4%Iu@>JwH??IVJCdc*u<59Tq5@dCNT3g+#CT5%4K|i0&NB$B_C&nvm%0 zF;zv5g-eSIB^)K=7@k>NL6LSH2~-Pd*AjM{@{R^Drragb6ym^-VR+-! zVn8?Wqco+E?awYyC7Ujl)hgL(KA(kWE-rK&RYO{ApDW}=2VAMR*`Qk*v4s*|@AhO_ zf}hl)UDysvP1=0m51IT@ZMfFO*B{n$?Y7@$D2~N&XMPeM#p%R9n@z!<>6R?%sz`@? zlBnXM<(N}tBzH*HKZupQjal5eKXb~O8$1Ky6mEHWx7=&j;$o_!j*wsZni7&HFP6)p z>|3t6h}#CaB2%HCSKxVh;7CrEF)>~jDmPWy7J&4b37Vdacf;NH{S zcRt;{0{~C_42GY@=g+bH?m#z=ZrG}!Q;Dve_eu0ciJ`pC$0oXIi>AgCoKg`-rjTh4 zO^HXqm2%0UF0nLTeE~{{A0;pwW{}^ET_h^9oDRl1%t1EK&L;M9ULl>TI~qB3SoXD0 zk~tAftybmDW?cZBN+_@5)=zcSz|c44-mAXk5xw5|se@m9VfHX5jC?fZan#Be?pw5O z7Jw}Lr1Vg#vnCa##jurzw67h`FXdIm`ISJqL>erwehcqC)#|P5{N5lxgHom|S49+J zcvS23GN`n6!KF*XYvTyEju*7678Nc`$8~JlsEzOxrIUm z_%ghO+J!gX(e*E)rweTmHwY0-GCt!J+Au4g<20>qy{kvA!yNcf1+-9H{DQA5orp2i z@y%d><}kZ|AhrdVx?EK@Vh?OGPf8&t{=>+%U8Rn@yuLW^3&8??5q_4PW&b^d{G7*+nia+cnwT{-|O zXg!HH$ORvPM|A+^eRNkARBZ=CJ1o?`JmMiJZ>Iu`=*ptd9Gz--0IK`mI8Z9S7YG&H z{0WXa)g#!=hgnkj1THb8Dy!@1ji>oi>%exZP5Rz+>N1_ynL+I(_BXVGwssD#GeXks z(au((Y@OWHIKDx%B#;f$@6IF#qN4n+Dp(k@sN7!B=Z&Ahgpd>;ZfpcGnuUo^qB&gW zODjadYzh-jv5l?a*4{>dk^~0yH_h4V2>eg!iboDgR|K>1;8IloTgag4_6g12JSAYJqyKkQV>>g}w z_4?m39wxR4xs(rVEC#ld2;gky44v?wHZ-IYrRpG&rB#}Qi!7~N7dX;gv3bMc50y9T=+`{zsz6~h*5BSaDnC%j``0!4{?f5dPI0X z{5^|^R1|mx%`f(57TiK&!P80(c_CLYcdMg%#WaJXC=V6Ne~Io@Muu+$Jn&hxVChH7 zewF7B`XP0fHuAsJM%(&;)y03LGQW}kaeHgGm;aaXFv&hQGju2NOOQ`1<>xcDQm|J` zHIe1j@^#{SUUpH5y&&Wgg>-2ueGYQD#I+a2dr|y5wBu5?YI!_WhdG#Gs9SCEX~NZJ zfoypJ3y1QejU`W_g;FP05Osp+0M^a8A5waH{!bhEPfr8c+yGoB|Ltv?`G5Adb`E;^ zZyApx|KlSVfZYvzPst#gnSjgdv`-1y#t2+eb5WVHY&e!EVSaG(lII|Aa?F859lY&L z!M*(1n}Yx5rr_r)-d4+h6Bws3!yBJrGJicw;qe3px2>;$*2sTbdpp~v{cm%-KmT9K z!v#A!tl%V>gAvNW>scDJ{7ehWetg;}(M#0n(?;q89uHCCfffFT2v)Fi3-8(LUO*sZ zMfq>Q+@uKtH<0SoA^nrHbY3^dza~v%O@BLemtW6GK}(1~6%g$D4*g_Yfn`@z=zIFF z3N4(akPbcFf5%1`6VVSrZ>3f=Dk`eXapXsF5$WMr5(KQ%*%f6dnbN)NgNR)YKEA}C zK$P%*Nfz-TKy#R7Q3%-}IO~y#Pe6o$A7{`H@5QKu5)_{xIiVz`f?9*}cysPxE-Dq| zx$2`Z7h~q8kPks>NIzVi?S_h}?@9sY7+@wYC^M z>i%$n!n&QIdB-~4B*024Av3TR=}|# z5kDJ4awSU|fs8hO0!K;6W^RN*-VFs_4iSDS1?rAlnV3+hMFrOc z$~#4iT_Y~@(#4_H<0DI#rDAAM3(!9Y4pK!UkOvGVJavTDkY2-q$t#h`SAD1E^oUiogEx=>InY$T=|Z5>=MLwi3k5l&OQK3plP)*BH;rY#nv;|Iu5=~3i9-CO zffW#c>TDw{Hbvu>uYGiHOFzoyBLVT7z^@@pk5PIrtN@1GcZafD7B7D|u(or-wIw*6 zE9w@3ml&)U6O0Nf+ysCb5Fx~PISqz`T3JGGT-*2;Lqb4kip0iG;P*)sLvRPdZG!Ij z6wIZ-QHG{KABHs$L-KE!?L`p*@M{`JK}6zv2Js5z!gAmzAj@y=v85MA84O5#zeZJ& zsZW9lza#=D{yajnj81JoUjY;zofBwA3>CM<@f+ zSxlldmX#xj0o5MXKt$=E8;?)|0pdDrKFtfSYMm59L`@Nkddj5K(4{BkfYvS5Bt@ZP zn(E&xWb)E=%TO^ZFz!x_Ns0A2Mn|5_E|fTRs>ahmlBHBnSWH;TEfiqR+l&%G}+rE_wwH|o+|lIzV22A z6i|N@Ine0NQe{D`w*63fPzTmTCX{u=8TFM*p|J3s43|G4jd&?l7+@)*18hpo2rW9Pb)o-9{d0Pt_M6pL~k&V)n%&g3x0vx+w{Py7&FSjxclRv zC@;E!Ss(0@;4cuPJD9Nwn%pQ$76(+;xusI>$MKx}F`jDvA4fMEpGojJ@KgULiX#$1 z+&%+H9sl3ow(@@*Z0_~^e;JP|6fw`9G|f<&u@G;?6%HmME2*oionExrlA=&#mKqlD z)QyCxU3&T{ltF|kw2k?eXEBKvEpQgv`2u(gq3;QCzsS%Ok_nvQ%UKLt(LAr2&0_cz zxSv6ChqBuX6i2~*3(ONgMSsw3Fup+H(TpIL2{{A) ztq*>^IBL<2N$OW4?+fTrGTxYP+h{Ls{nzvV0A?f_F^BMt&xNwvo&9%rbI-j0xwCc9 zpZ_oA;bz@ph^h3gnKKr%`zn*h73jQ?`=(*$eE~pIORkJlRG5d=9`bLE?7d~(=-8uQ z+A7uCQbo(B7|&p4yV-jzc+opQ@y9UJdbkcwzNXxKnV@7HPE&FZK3X6@m8N)iqBKF6 z;D@8Zz%*#ODgi%(F{rwE&;TcaiSY0B!AI86r#0q7IYvZWCCK$JtNn_L1j6_?F+;Z7 zG?av%xNOobX$upQ-Lp#&I+06EtZ zOh<##Ls9%ciZ-p0F;H+>10C4or$8S+0RKWWKYVn&r7`2+VcPI-cB$7 zFXJiKXW3P6Rjbv+-U*DSQg^0;?Xjx<{#tw-%0hPCW5g4~c>jB6_>bYPXUKrVVafaz3$#C>w7~qvSJf`SV=Y%8N5p3Q^_l8$W@gG>z|p4>B10 zUttJDU2$-1+&j`bRwS+Z->+EKS`~UZzcplF45xDnaGLrV)EiKTU|{w|9xC&sJ;UfL zqmQ_GRw+H?8zu#x_m_$QTp$>sS;8G=hv0oW&ioL9>ud(kj;_Gf@zL88aDL@A#nian z)D1SQXb?w$AQTUqDE1I=yh9tIgX=Q96uCK2}2K*m53aL&9Vw6iX&9P>vI*4LmOT~s)xX#<^xl- z_R3kpee5bKD5=!xZlu@eg-SOg{<*7x_!1@$8iX&Q9;vM8*^u_EB5adm90ocic+j=K zKnBy8{^k7-4|t!wMfxo4s1U1br*SV$W1~6QhQ^4k@H~|4llXI8^($Z|Chdb>?-lJ@ ztu(?^^yv(fOE`vK-!b1p@4r9#>wj#n|Kro@>iR$B-|PPz{3QP#{ByUH7SFxL#i*2NGt_+xIV^Z%?&bfbJoWrP zyiuZrvnYmi@LOyJa-}Efm|tY3e>Cu*%LCNjT=*E9Og;56zC)QFPJYHsUz4;=_%Nm-zpsjPxZw+}qvR-e4HBo>cA+p-=o9A8SUy1YsPvYwMpF z$5Rx-S7C(d&aiOXDay#N2otk;r8&orr=ALzR<5r1uka=?>(O_IM#l{bH|}3Pe=`{3 zJenrk8a+%xFE>=?1MOvZ9=})Ru@O;<6eFY*lB840Y1CATPV{0EM-ke0rASU5S!7`M z>hjzXJiv?+iBJqP$_jh}FV79}KtNH6Q$Zf&$!lko1X7CClSnCCP9&vJIhkak3ir;s z1QCpJa!$!OPVVEye^?C3quk7sd}*NOr6`k=t=r?YvBGFhF<5_z*X;)LtJVYkKK=uG zn8igP4>lD%xm-LkGrW9`blN%AaNEvp`~-f7c?f{%j8GQNu7(6;=Eq=_f*;5$;w;=O z)nRx<`1IaX2gE(g-{8I2;{*vxJEs;h7hQQga;}SUqRPF`vv;!6I&3ZSK^S79ZJX{2 zVr7ad>{opyx+wYb6ZPaOt*@$8n>4Dz*RZHUe;BG~WByf2GIi!EWUD8fR#7EhBl2mr z4HDK8QL8*@SdmgstC*9s`gp5Odem5iDh$mDSHVky#1z>m>ieBn#yWBa^mgDkwAbF3*+nVipxBnqM7g znni3>%@R7g=2snMm!ngQamBikd4+9fbmZ6{s(dJ9cqX{p<4NvQcnEH1H!w>ef$Tot zjgO;XoreQ2b16?f|97yS4!nR0{%m{xd&g%NZvbcZB|$_eE9aR* zojb%Q9^k;`FVr(4?PBZ6Xr@KZulO~-j8|OfTXEpYP2AGHrG$rHm*&sTW-ix z*Xp-#FO0tNGG>RreS5(uT{x$*CxM(-X!)neioPi@J`bsfI9ha+dBW<+1>5Wf0yz+T>is5z3hi~ddpug za(x#f7v6aiaSQJ}hPY)Dvus#3LS}HRMi^L_kQ`1TOzW{(2JCbnPLAg3P zzC5{RCa_*ceVnJE{3nEfjnBdxpi}?9-5tySf4BGlU(VA;{!{nihs$~#-l2Nm)U^@w zbkLkT@V^=77y^?C0+2yMc^67}+A+>y93YKyys{8Hv5@h!&VXu!)uD18~*$3&jyg*d|{)KLEDgN}MvXyQF<(8EYO3VBx^Y3z)Hhu!X zKoU$q{)LIwYWxBzbn_hWHqfF~b!(DBc)r0crd=?3qJZDp84-9Pf5m#?(JkA{Wy*mP z_-yy@=^fOX|09G+=BJlZ%zya#&(_ZNwt4=u*Yp47JR&}`2p=VL!>j?8StbN`6PSQ0 z3R#x@JjzsqxU|~ZMu@OUGb}W|rn`i!ahS`Jh6t%>=60+DHM$gQQAYN#cxxW=gB3$} z3CyfA#dT9f&3382Q%EK#EL2yq!N~ni6@XpU72imwUR>2A|MnSE7AhLXXqE-=P~^R1 z%vBEfF{e+N#^r1&jYxLQH)U0?u{Ll=g&~P#pX68mfm4NV@7Ix_%@F(rzRVEGRRbHx z-l_AU&jS3PXdA%ER|2!dkHu7S?FY5|--`cuaB$F{|1agy`TrUGk3K2Dan{tN{6TyRiD_Wgb* zc<{3@|Gy%B68bSp>RrHU`2X&~zG?s2+uqsi`TsJWMff$&hraX6pes=lk?_V5j&3DI zn4BgNx%zi@OcqDj`B`pOHN}n!M~ae?l>Z!0U~r3PQ(WSer3L@8^$y_i?v%#@tEf{G z8q5&SZFj%F+h!AHwCB;X(PaD1!n_pdYV3VNzS zzHeM{H2dR^drUGG1E+m+(HLf*#}EZ5gqcm^Z{J?uppFAJQybv228+&YYEgb6+dqiy1-ABVp z`A~zM1>&Jtma0W<<^M$j094EWTiZLE2d4kuP9Oh$IZt!>{~-YYRx$iCvXezJp)ep5>wq8pecK7l1PDVN>znk|Wu*OTP%0R;~I#3BZ5{Crf> zY6qQ<5~_0t(2Ob_jX+Gms@iT|6#NCEgbct|yI$w@Wv|C9VsZw^#81Gc+Vzlm!Bw=~ zLC>csG)J7zw|6Ln>Vi>?5?%(G*r6K^o312g*j5^8Fl~g{S0f|^v&cdcZJHQ$Kucyz zbl9Pg2gq)&H6Qd5uDK(b;IgCA% z4jf(fO&trEWhnE2cjspbi@NAV$q0GC3*pU-{v??nKnq&ch{zpXqM|je0%|otCe%d+ zOQKMPt=Uu4!B!c)W+Rej(bUiG-=`s!xJl*{IKD3#9`QNSSXA6Qr|F_@CIOYti9OW-hJ#Y-9T~&VFI>TN-WxhwngXlLxkfLj}V1@lWo`e**V#A%bB3SGbY7iQ`{+Z z%3EjFq@b(NeGiTW)2{NZckPngFHchn__jc&X9hAjV&ov%}}Fdt*u6zqa79U zqYiT+9YG>cj%wKss1h!NWB66vDL8xuy#M~Vwf>J!A2-+k@#&|J;obDp3Y!xAOz#+_ z5e&J<)hxv%gZ{K|<*_MwNrAufNifkHYH-2fp@cQSF$%K-E5HyDG%o1-5d2y!lv0~^ z|1^IZ+W&d#jmL@qzO#E^`u}h59_;q^|7AS&_J29#YW^3=@VarzEb*cNo@lax_e@^4 zE}@=CKqHb=xB@M?t&p;o!`f4Bc`mAnZTJF(@Ax}QH`Nhq2&K6^;r2P=L@T^3?~38w z_z8UACq58d@M5aJNp-k-k!;TquD&v6ylnWGnVeb1#mnDi>%1_i$3lr=FDJ!&!*9-Dv5T1e2f*76?v+bRX$%IbH?Uvt5f#8WXdjW(snp) zzqg6Iz|=+UrtU&+6wmf)DgQl2{)eptEC1Kd)@~pFeJM}9{O90|t=&JIr;K#bvuxYC z09I-{5QvnYCzfcog0)p1CO+&yQNgSvX?UeoTyAVFPWeTPiyZbl$nivH{+yl{W9ulN zM@ryln+f(=AZK%$IH*DYp|Bd;OU-&3LJjPt4pK^3i9D?fXe|wwe`Op65 z{#MWbm+`brQ%o|017H$h~=w>m2fOk&rFi|25Fv9|>?#RN+ zw~YyHC-*4v*l$QNS-WeR)db-yC0bsuHQCC8^SKO}%_8;XWO|7;Nym=PR~m{>CbePz zsu;10I;#sHBBe(g38SsT_oLMPPcRYb0m4Ds4j^ixo|iaJ)Z=mq5z|sZZuoCGGh7P0~2o#qY^#Xu~CYF@otRQsLhai8}5zr721 z4gcRf*fQn+o&CN3{C_D=3wF4W2e>FCqWBGObN0gdC=;?dBjtaV=n77~KzPl{si}An zGgluEczDMH9zO`Fb~7*JU>#o|*q^ySM)@=c!-+a-@wZfV(>Y&;x$5c7&`^;wNOHQh#|+ zTITuHGqnwN*Q_~!xBd-`u>m4xFPj57N)kjECp97Y#TVmp<2(Nr0v`k@y{9~dOdwDI z>t^Nz-koa$LiyZl2-9O)d&L?Z(Zo?0GPpT;#VLR*%}mify)lnf7KRpeD0K(ZYKx9B zzO}b9H53M*&1K8HDS2|!@Ybc#?ex2~X@3k|d32AA!s$otXN zMk4|*a7|A^x_O5m9B)<~*l0S1VYEmr>;lOg#zRS;18PI>R-v?ANOww4Ji{qW!Us@O zKzJxE1(+pJQX<^-ebWAUUQYx0kL7io`YnY%<*7aY*|p+-?eF#H|4Vs9EJ88Fpg7x? z>0Ie&KaK&JL>S1KarolTKdY2D39ofLo#OZ53jnxYeF&~6Q2Z@b-=c*V04Pc`FRNij`!VtzCrmz2>OM*~bn9;!xMia}krZ_s%a9D`~X`hdudjHuY1_YPZr8!G!>C zHs6Zq2uCRKvwL+nnwRWGti|5n;7OlG{Ga$y0<(?Jem2H!5C5Cw|F-f!ZS5W$^!$Gr zkI4T`W?6y(9bcX%^I^=N&zB(u=P;;MYyscCy%6O%d!|1qUncM?$=NiWt3!3CU`0i& zHO4(TJDOn_(mykpge;Z~WAOsF7Y(wN8y#ux%HD|e>-nwZ!4+%CgI`JJAJM;cj?CR| zn`F9*MnH0U%;Fn(Jo8_kMs8S|MNaqC&Y{Fn0KMEFwkRn2;b$yxrQQg8Ti%YTbhzI1 zYRRKMt@uCv?k8dA{$KX}&#k@fp8qf7(fGd@-ww9`0r7{}1@gXhyb(B9wUz=!42s5A z9pBw-wt|(rfT&zoF!mZ$%J-3;b3cQp75|6Hd;#&lj{ol;?3w-_TRXeG{J)e(xF~N$y{hNuL!43zK<+i;xo-r))n`(0n~hAxogXK-_5HVKmF=mf*1t zdm``cfHV3$S^Ubai^aPQOLJH9wHef|)s{hs5@u4%p>Xe%^CZ4!J5FKrVj#6()mmGx zD1}XR#kJe&r3@Hm&TSK*TYX_K7zjqX%7L8vx9~I}=h+!TsV7@@?WV>?E=a93_DhDQ zhk8yL?Nm3AM!etP{Usc+176``&VP;~7>D#vheC-mu$n-y8p8yvuFSz-;1=HF0Z%}t zCtl0Hg1^8h$}kylR2;d$EGr|Q)S8tMCi72R`Sn2tM|5#d{CVSJTh_ArM#B%Ij2y-3 z#2*ZrWcgwKV#PF8zd2R<8j{-tiAF#kSI#-GdXd(&MmyJ!6tus3-38^lSnAb&LlFU*{fUt=QLa~ zJQ=kb@N4QP;hC5*tL0ngj70IUC~e+fw4WyIy{dY`9U*Vki;j}GUR6bYQIhTxgF(rl z!Y^9SJ(A6!=N#RYh`=c$%?hVI$)f4iY&43#0#B}&zd(%cl*^R{h)`^|+$^Tw3Fi%% zlR&K~>#-kfgiG3ylT|yO(Tg;gt5G7D85K%0=^PS*mzZaq*RIZZU^VckFb;eSWlt0o z&E_4eO!RbwW=Uw~yV1*7Qb}l?MLEa$wtV>-&A(z7!b+f-sV-~#B!`2;?tDCGf7pOT zN!i%s{qAUx1b0!>V!Xs&71Q7XF|CJ(qgfn_H7%Av2^tm$EW|s8L2DzeE+Z5>S0PGB zSn|c8x!tjmoDb!9{>Oz+CJx;5)6m+Dzy|lpb4qXdtGpnmhZCa``a~nGyq`uNV1^@< z6a|ZS7I>xjgN@|vY%Oi|e=1;hZ2#TeKiIeIzX$#O-=#d3{!a(EGa~>6_M;dAcwag; z29)Y&s-~c-3CdnAaB|oX*lWX;v503bS8)z}V0=)KsPSkl)7B^)#ZS>x)*R}Y+Y!+U zNp2zUM!QR_m4M}%o_T}Fq4jdbQ9a-g&SB@nu=2R5vxVdz>g;Xa-MMax) zHfjkl%4C;{4m%g9(2gEeH>%T&hUGP-00l?w)S^NuVobtRj9REg3NejPb6N>*ud|G4 zMq|7m8b@&|LZUsl3RO6|siRz?QVG0XDc)i({M0yb49SAeErOv4{M81%D}Jt3SMrPn z_jHnvg4h)#9qc=e{G^c;;J*wqT1S9(N!Kx8QOY_F)b@aa=jTJEas2KM1|PaJwBrAx z=qn6QT04Q%@c)B-%l~_OXS=`uvy?~U|G&`j?am8CPM05I2Pitz=@zi@6F8cqCF*i|I`XDFCdCG2B4bMKD zzCJzre0+3qWwpm#9H9~Jx754(aZ zQBtW1=F1+#V3tMXUH}*dejLmw7hEJizZM^Og;9lK6c=(H`*8iArZAWj@cKWMD3|8S zy#7xW%KLXmSHG14;$O>QS^dr_!fPrGUA#YiUD^)&xJWas;=0NPa|^b^QLL=#!2qnn zFLbC$MIo?hFi_TbRgdh+CYX6XKf+(G-ehQ&QrS86G2Msg%wt^<&l7UghU0X$kVca+f$L`$P=aJLI2f4b;O0~o zJoWYE>4%d`%36|UD-QXM#XOGD zjUNNgq_Uw=wdvJ|)2q{;-=2Jaee&V-SoX-H0+ZKd2N2WjbOf?ll0?ZE_?QcnbP}4E>e?@efj{S7{kgfOP-uCx%mILvR1skQBdRK) zp{nlyIiy$SWzH)5id+6uplNO7T@m*aYHFzxX)BYA6hnotZhnp~z*i+y6Xz-t(_scv zgd>77M>2%Q9yJ9%3cODXVnqCLH>ePQyeJOoERHWw90m7f=Ei)ey`roKywlMcA{QCN zFd>!67ionEs#Y$&s&^FM`S+OW2XL;0qjZ|ATzKbAw72*vG%Nr%iS(Y&Z`G1j;Nilv z$_$v(_%A>ZGh{tPm}s^C$I%D|_d&bt-wopb9$4o;ds}_}@1;E2{-2L;H=BMA?uXd$ zmELr{*-sFpeG?3NZ6U0LjsXO7b+@R5RPz*|+0Dq3d$Hn_(rcekRKLoLB@ zJEsa2cb09~w0f0epi@vqg%9(?iOJI+w<4x!*+j`jSGI!0@E12z3zMqVEiqfoUNwp+ z7VslS4xynrK$*vdS8uVJ2jbcx_zNUa62gRlZL^!gU$u0k#4>cQzr}h;VZ4DZ=cz~Q zr0J<%a;Wxw*e&{}o2Qlhm!ga;5CF0+{>%3Mjv4>uV7r(9mhx!w9~<8eqkl1YKZNin zdh$5lpBQHID1c}F6t3mJ3dzepGiL>K9Xv%Lx9~v6MQ?dNA!|k$h%BAM;m|tW(=ix| zlDhQ5;gJc<7&IT`O0E)&#SM@6*%%Vd9Hs1%8$W@gBxEP#>|{=K$qMlzWQ$7Bs=!O> zlV^FiuM%kVbKF!f5#gYDonBHVK?Ox3oZt1J0+;AonnlyxylV8!K>R`!?GEkotHT8j zDrj9&5Ysjl?_exH@S?1XUR?ZIk850k?mR=3|30EBp?*@n58MqfYmHF11Th&AWRBy z@)rX)w5v0YV3bT|aom29Rc%5>1^vW)<0o)E%a|t*#o-K+JCxl5l&pb>fPlI0;2b^R z&j_0OB%&JeJ#*S2qIN`BazlVdqryR>a2lHq!4)J#w!?tIuW1|w5s8`8D(yJ9i{eqib`?K^025ju@G->PwIc@>sV#Fn9?1Ss$3x@jp*B6}S zuwi708tHsVX44y(4Mlvs38du}5-=2Rplpd_cobtq+lL%0Y<5-l&u7OijJ6EU+4(i_ zM4^5TkE5WwG(b{)HYd&^-t%k= zXr;8$Qt4J^gTp(ChX zw$j<8sN;zm-T-~=Q3(c z0XFaxx)00tsDMVdxET4NJ1p6{6*5IZ!bRN1F~Q^nyM$k65fxPkh@p=O!`LFo8Xt;# zb5?#OZez7)(qLO2Q?r{uSIeDn<6+dd? z*R4dV(5e|=4f~_Wm&^c{iHngUEtZrlJ)kJ+8d6ZPE?mcFmQAoIZNL%cGKQ7YH%Muy z#DBWN{^gzt44AU87xMlQbAf_tKOsc3#g7W7pJMWU`^Gj8!~MtAIj678a-C&3eF{Gr z!QfkX0`;)b==U>~CyO3+C03eJB`Z_>QYB9!N9d4W{(KE# zdW_P0cYMu~9aF+EMF)5M7o5TX6qn5BFuThl0{JE@&yR^VbMkFAf6cLd2eUCOAQYcn z?Umf3V7Xrkp*iAqyw@=H@2_Bhl90;IbgP|Z@OqL#JV9|t z^0y=Sij;pD5}F$iKg`KfxfDH96D+u-hdjSFhcJ*G8^y>c`@0_PBH{nv-}S6SH_hee zPiis*Uz|Rf*}fUNIVz0>YvaUKOk7(rGL@l%B=Q!$B;3#(uL0P4NY_npk`P+}C7dv< zs8=gbYoe56_VFX#yc>=Zw4ymdjauesTE*;vQN{dBtLPKlsGxtO#kJ{gl-9n1@8uHo z-}q@||0@EYba?-3YkOyJ+q(a?*T;Wd%A<*ImwC*cP9(Q{y8IAQo6?)E4S_|hBU2tT zMX{n}xum6+$wiCewOfiRzE=Tr?b@wECe0mZzy)OsEQBnX!7nq22|j!QK#5RK3P2m(}_oe0dXP_QnDaGPw8WFZH@xKmV=(ZrUq-d7Qv==_cQ8EUbYupot z`}eSE7m+nEg+B8 zbjkj;=Nb|`1>laDt(eDgxi`C5q8WyY^YkcJel2H<0&|DQdC`g79X~uX{6ILd8i3I$ zX1Iv}V40umNX7sii@0xIua!**(~1&=?%i255T58jbZn%d1}Fjrx8>pqrp`xhQSfU zvVmJS-=Bq>9>hxMPlCYIC&2{xAoU4>Sx5eei-@Bww(z``D4F+%uiFK;=(*dEQBxiq z@;ar|#rs3RPTCGPHZnMdU$-_{a~s*l>)l_`>~v$R@ao$53A{UbS6boh?Bc`rYqbJH zVhoua;LgqE1ysE7{(E)vzy53Zaclh_pZ;S1|G2sSk54}hR_R;%=U>x*4p!_uTOOBB zDFmh3>c^9d>o@Oy`xO22FUVf~kHJ4zbPoxbWhi@x$K|Lg=&fGFew2XIgupRd+HgDs zTZ1*Q`b&&_B3^6`_vov4Q5;d}pTFGO+?)>F3Bn5GS9xY*7;Epg>{sp1l-)yB_zshZtv1UCtp*PP(fO}-r0rw z1KkfKpGKxT2`7!{!@wb#1wMgel&LAtrMBfM>HB}@ae4h1BjAT2@VEx!0q&AH0(TJH z`3d2IE%!@gcLGeYsBjHYG**ek0(NbMZ5L~eM{csAI=4?j2$DM-Xrx>>y;}1QRPRQd9lBcG4&z-@&%R%eY#2g@Bt)zb5t#u;kUQ7{nsAd|)DSR9uU z%Est}%p0QwP!@YR-@T-Sue*pF;PT^~OUg^%v5FEW%3K8^ijbnUKX7M)QKhuZf5;yHLUS^PUncS6TZi9XJi)3VUyvhaHhGj~b)B`?OJ=ex`Cd>OQ$Gdj9m z$sI)f+qV}!-SsZAXdcCI3{R+D&onR#L|H+0ATD2rR<+_2JDZ0=fTrn1hDK4$d@1R! zX;spTao1G!K!XQHsVwfjMS&kr5GEe48q43Z@tQ_c{x2|H83I4`Z=yIN5oD()g?T9` z=2TH+NL2v_!wuotV^OUQlB@|E zOWRsFfqN~kpD!wg55z$6a}rMxLW22l#>N*62~ z_G|O3^P=TR*6Te^O;lY#L~3QDql!DNIh9?u6_Ivb0pblTy^)<5NCI&Cq^b5wUt$w+ z!74*Ij{<00a98Fio{8-B?RHsS@g15aWEf!?BPL%?231^ivT$_~z9KD#i*jxyS9CJh zZcj(R2jV5mQo`diuow|j=qDo3g&sU-;$z?^z{fZmQ$?7Q)TIcUi)6tQn5M@L4YQGH zkeeL=)WR&kC-rcluhNI4x|b4z^Eu42C=?F5%8{U>bt}BE(S**86ja@wC`y501&xY( z{g_1{xr1ODjVFW_oTVHo7R5xEUHlP&8JN<>9CzpqJC+nTJ@GdaDNSS6T(=!5csos4 zZin4Dw}f=>uWOET;kNrRO2{YOXP523l-;R@9Ns?z({}#6o#n{VDPN=

AlS>V#)) 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 F4FF(SYD@qC literal 0 HcmV?d00001 diff --git a/stable/vikunja/12.1.21/ix_values.yaml b/stable/vikunja/12.1.21/ix_values.yaml new file mode 100644 index 00000000000..9e42fc48edc --- /dev/null +++ b/stable/vikunja/12.1.21/ix_values.yaml @@ -0,0 +1,212 @@ +image: + repository: vikunja/api + tag: 0.22.1@sha256:c9415431e6235229302bb8f9ee6660b74c24859d1e8adbc4a3e25bd418604b57 + pullPolicy: IfNotPresent +frontendImage: + repository: vikunja/frontend + tag: 0.22.1@sha256:f0223d441997fe29c377d0b476dc4bb2fc091b44b9c24d76b1b88c213df520c5 + pullPolicy: IfNotPresent +nginxImage: + repository: nginx + tag: 1.25.3@sha256:84c52dfd55c467e12ef85cad6a252c0990564f03c4850799bf41dd738738691f +workload: + main: + podSpec: + containers: + main: + probes: + liveness: + type: http + port: 3456 + path: /health + readiness: + type: http + port: 3456 + path: /health + startup: + type: http + port: 3456 + path: /health + frontend: + enabled: true + imageSelector: frontendImage + probes: + liveness: + type: http + port: 80 + readiness: + type: http + port: 80 + startup: + type: http + port: 80 + proxy: + enabled: true + imageSelector: nginxImage + probes: + liveness: + type: http + port: "{{ .Values.service.main.ports.main.port }}" + readiness: + type: http + port: "{{ .Values.service.main.ports.main.port }}" + startup: + type: http + port: "{{ .Values.service.main.ports.main.port }}" +vikunja: + service: + jwtttl: 259200 + jwtttllong: 2592000 + motd: Welcome to your new Vikunja instance + frontendurl: http://localhost:10220 + maxitemsperpage: 50 + enablecaldav: true + enablelinksharing: true + enableregistration: true + enabletaskattachments: true + enabletaskcomments: true + enabletotp: true + enableemailreminders: true + enableuserdeletion: true + maxavatarsize: 1024 + cors: + enabled: true + origins: [] + maxage: 0 + ratelimit: + enabled: false + kind: user + period: 60 + limit: 100 + files: + maxsize: 20MB + avatar: + gravatarexpiration: 3600 + legal: + imprinturl: "" + privacyurl: "" + mailer: + enabled: false + host: "" + port: 587 + authtype: plain + username: "" + password: "" + fromemail: "" + skiptlsverify: false + forcessl: true + queuelength: 100 + queuetimeout: 30 + log: + enabled: true + path: /app/vikunja/logs + standard: stdout + level: INFO + database: "off" + databaselevel: WARNING + http: stdout + echo: "off" + events: stdout + eventslevel: INFO + defaultsettings: + avatar_provider: initials + avatar_file_id: 0 + email_reminders_enabled: false + discoverable_by_name: false + discoverable_by_email: false + overdue_tasks_reminders_enabled: true + overdue_tasks_reminders_time: "9:00" + default_list_id: 0 + week_start: 0 + language: "" + timezone: "" + backgrounds: + enabled: true + providers: + upload: + enabled: true + unsplash: + enabled: false + accesstoken: "" + applicationid: "" + auth: + local: + enabled: true + openid: + enabled: false + redirecturl: "" + providers: [] + # - name: "" + # authurl: "" + # logouturl: "" + # clientid: "" + # clientsecret: "" + migration: + todoist: + enable: false + clientid: "" + clientsecret: "" + redirecturl: "" + trello: + enable: false + key: "" + redirecturl: "" + microsofttodo: + enable: false + clientid: "" + clientsecret: "" + redirecturl: "" +service: + main: + ports: + main: + port: 10220 +persistence: + files: + enabled: true + mountPath: /app/vikunja/files + vikunja-nginx: + enabled: true + noMount: true + type: configmap + objectName: nginx-config + targetSelector: + main: + proxy: + mountPath: /etc/nginx/conf.d/default.conf + subPath: nginx-config + vikunja-config: + enabled: true + type: secret + objectName: config + targetSelector: + main: + main: + subPath: config.yaml + mountPath: /etc/vikunja/config.yaml +metrics: + main: + enabled: true + type: "servicemonitor" + prometheusRule: + enabled: false +cnpg: + main: + enabled: true + user: vikunja + database: vikunja +redis: + enabled: true +portal: + open: + enabled: true +securityContext: + container: + readOnlyRootFilesystem: false + runAsNonRoot: false + runAsUser: 0 + runAsGroup: 0 + capabilities: + add: + - NET_BIND_SERVICE +updated: true diff --git a/stable/vikunja/12.1.21/questions.yaml b/stable/vikunja/12.1.21/questions.yaml new file mode 100644 index 00000000000..bc41e6a62de --- /dev/null +++ b/stable/vikunja/12.1.21/questions.yaml @@ -0,0 +1,4149 @@ +groups: + - name: Container Image + description: Image to be used for container + - name: General Settings + description: General Deployment Settings + - name: Workload Settings + description: Workload Settings + - 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: Backup Configuration + description: Configure Velero Backup Schedule + - name: Advanced + description: Advanced Configuration + - name: Postgresql + description: Postgresql + - name: Documentation + description: Documentation +portals: + open: + protocols: + - "$kubernetes-resource_configmap_tcportal-open_protocol" + host: + - "$kubernetes-resource_configmap_tcportal-open_host" + ports: + - "$kubernetes-resource_configmap_tcportal-open_port" +questions: + - variable: global + group: General Settings + label: "Global Settings" + schema: + additional_attrs: true + type: dict + attrs: + - variable: stopAll + label: Stop All + description: "Stops All Running pods and hibernates cnpg" + schema: + type: boolean + default: false + - variable: workload + group: "Workload Settings" + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type (Advanced) + schema: + type: string + default: Deployment + enum: + - value: Deployment + description: Deployment + - value: DaemonSet + description: DaemonSet + - variable: replicas + label: Replicas (Advanced) + description: Set the number of Replicas + schema: + type: int + show_if: [["type", "!=", "DaemonSet"]] + default: 1 + - variable: podSpec + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: containers + label: Containers + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: Main Container + schema: + additional_attrs: true + type: dict + attrs: + - 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..." + 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: extraArgs + label: Extra Args + schema: + type: list + default: [] + items: + - variable: arg + label: Arg + schema: + type: string + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: command + label: Command + schema: + type: list + default: [] + items: + - variable: param + label: Param + schema: + type: string + - variable: vikunja + group: App Configuration + label: Vikunja Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: service + label: Service + schema: + additional_attrs: true + type: dict + attrs: + - variable: jwtttl + label: JWT TTL + description: The duration of the issued JWT tokens in seconds. + schema: + type: int + required: true + default: 259200 + - variable: jwtttllong + label: JWT TTL Long + description: The duration of the “remember me” time in seconds. When the login request is made with the long param set, the token returned will be valid for this period. + schema: + type: int + required: true + default: 2592000 + - variable: motd + label: Message of the Day + description: Set the motd message, available from the /info endpoint + schema: + type: string + default: "" + - variable: frontendurl + label: Frontend URL + description: The URL of the frontend, used to send password reset emails. + schema: + type: string + required: true + default: "" + - variable: maxitemsperpage + label: Max Item per Page + description: The max number of items which can be returned per page. + schema: + type: int + required: true + default: 50 + - variable: maxavatarsize + label: Max Avatar Size + description: | + The maximum size clients will be able to request for user avatars. + If clients request a size bigger than this, it will be changed on the fly. + schema: + type: int + required: true + default: 1024 + - variable: enablecaldav + label: Enable CalDAV + description: Enable the CalDAV endpoint, see the docs for more details. + schema: + type: boolean + default: true + - variable: enablelinksharing + label: Enable Link Sharing + description: Enable sharing of lists via a link. + schema: + type: boolean + default: true + - variable: enableregistration + label: Enable Registration + description: Whether to let new users registering themselves or not + schema: + type: boolean + default: true + - variable: enabletaskattachments + label: Enable Task Attachments + description: Whether to enable task attachments or not + schema: + type: boolean + default: true + - variable: enabletaskcomments + label: Enable Task Comments + description: Whether task comments should be enabled or not + schema: + type: boolean + default: true + - variable: enabletotp + label: Enable TOTP + description: Whether TOTP is enabled. In most cases you want to leave that enabled. + schema: + type: boolean + default: true + - variable: enableemailreminders + label: Enable E-Mail Reminders + description: | + If enabled, vikunja will send an email to everyone who is either assigned to a task + or created it when a task reminder is due. + schema: + type: boolean + default: true + - variable: enableuserdeletion + label: Enable User Deletion + description: | + If true, will allow users to request the complete deletion of their account. + When using external authentication methods it may be required to coordinate with + them in order to delete the account. This setting will not affect the cli commands for user deletion. + schema: + type: boolean + default: true + - variable: cors + label: CORS + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + description: Whether to enable or disable cors headers. + schema: + type: boolean + default: true + show_subquestions_if: true + subquestions: + - variable: origins + label: Origins + description: A list of origins which may access the api. These need to include the protocol (http:// or https://) and port, if any. + schema: + type: list + default: [] + items: + - variable: originEntry + label: "" + schema: + type: string + required: true + default: "" + - variable: maxage + label: Max Age + description: How long (in seconds) the results of a preflight request can be cached. + schema: + type: int + required: true + default: 0 + - variable: ratelimit + label: Rate Limit + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + description: Whether or not to enable the rate limit. + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: kind + label: Kind + description: The kind on which rates are based. Can be either “user” for a rate limit per user or “ip” for an ip-based rate limit. + schema: + type: string + required: true + default: user + enum: + - value: user + description: User + - value: ip + description: IP + - variable: period + label: Period + description: The time period in seconds for the limit. + schema: + type: int + required: true + default: 60 + - variable: limit + label: Limit + description: The max number of requests a user is allowed to do in the configured time period. + schema: + type: int + required: true + default: 100 + - variable: files + label: Files + schema: + additional_attrs: true + type: dict + attrs: + - variable: maxsize + label: Max Size + description: The maximum size of a file, as a human-readable string. + schema: + type: string + required: true + default: 20MB + - variable: avatar + label: Avatar + schema: + additional_attrs: true + type: dict + attrs: + - variable: gravatarexpiration + label: Gravatar Expiration + description: When using gravatar, this is the duration in seconds until a cached gravatar user avatar expires + schema: + type: int + required: true + default: 3600 + - variable: legal + label: Legal + schema: + additional_attrs: true + type: dict + attrs: + - variable: imprinturl + label: Imprint URL + description: Legal urls Will be shown in the frontend if configured here + schema: + type: string + default: "" + - variable: privacyurl + label: Privacy URL + description: Legal urls Will be shown in the frontend if configured here + schema: + type: string + default: "" + - variable: mailer + label: Mailer + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + description: Whether to enable the mailer or not. If it is disabled, all users are enabled right away and password reset is not possible. + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: host + label: Host + description: SMTP Host + schema: + type: string + required: true + default: "" + - variable: port + label: Port + description: SMTP Port + schema: + type: int + required: true + default: 587 + - variable: authtype + label: Auth Type + description: SMTP Auth Type. Can be either plain, login or cram-md5. + schema: + type: string + required: true + default: plain + enum: + - value: plain + description: Plain + - value: login + description: Login + - value: cram-md5 + description: Cram-MD5 + - variable: username + label: Username + description: SMTP Username + schema: + type: string + required: true + default: "" + - variable: password + label: Password + description: SMTP Password + schema: + type: string + required: true + default: "" + - variable: fromemail + label: From E-Mail + description: The default from address when sending emails + schema: + type: string + required: true + default: "" + - variable: skiptlsverify + label: Skip TLS Verify + description: Wether to skip verification of the tls certificate on the server + schema: + type: boolean + default: false + - variable: forcessl + label: Force SSL + description: By default, vikunja will try to connect with starttls, use this option to force it to use ssl. + schema: + type: boolean + default: true + - variable: queuelength + label: Queue Length + description: The length of the mail queue. + schema: + type: int + required: true + default: 100 + - variable: queuetimeout + label: Queue Timeout + description: The timeout in seconds after which the current open connection to the mail server will be closed. + schema: + type: int + required: true + default: 100 + - variable: log + label: Log + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + description: Whether to show any logging at all or none + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: path + label: Path + description: A folder where all the log files should go. + schema: + type: string + required: true + default: /app/vikunja/logs + - variable: standard + label: Standard + description: Where the normal log should go. + schema: + type: string + required: true + default: stdout + enum: + - value: stdout + description: stdout + - value: stderr + description: stderr + - value: file + description: File + - value: "off" + description: "Off" + - variable: level + label: Level + description: Change the log level. + schema: + type: string + show_if: [["standard", "!=", "off"]] + required: true + default: INFO + enum: + - value: INFO + description: INFO + - value: NOTICE + description: NOTICE + - value: WARNING + description: WARNING + - value: ERROR + description: ERROR + - value: CRITICAL + description: CRITICAL + - value: DEBUG + description: DEBUG + - variable: database + label: Database + description: Whether or not to log database queries. Useful for debugging. + schema: + type: string + required: true + default: "off" + enum: + - value: stdout + description: stdout + - value: stderr + description: stderr + - value: file + description: File + - value: "off" + description: "Off" + - variable: databaselevel + label: Database Level + description: The log level for database log messages. + schema: + type: string + show_if: [["database", "!=", "off"]] + required: true + default: INFO + enum: + - value: INFO + description: INFO + - value: NOTICE + description: NOTICE + - value: WARNING + description: WARNING + - value: ERROR + description: ERROR + - value: CRITICAL + description: CRITICAL + - value: DEBUG + description: DEBUG + - variable: http + label: HTTP + description: Whether to log http requests or not. + schema: + type: string + required: true + default: stdout + enum: + - value: stdout + description: stdout + - value: stderr + description: stderr + - value: file + description: File + - value: "off" + description: "Off" + - variable: echo + label: Echo + description: Echo has its own logging which usually is unnecessary, which is why it is disabled by default. + schema: + type: string + required: true + default: "off" + enum: + - value: stdout + description: stdout + - value: stderr + description: stderr + - value: file + description: File + - value: "off" + description: "Off" + - variable: events + label: Events + description: Whether or not to log events. + schema: + type: string + required: true + default: stdout + enum: + - value: stdout + description: stdout + - value: stderr + description: stderr + - value: file + description: File + - value: "off" + description: "Off" + - variable: eventslevel + label: Events Level + description: The log level for event log messages. + schema: + type: string + show_if: [["events", "!=", "off"]] + required: true + default: INFO + enum: + - value: INFO + description: INFO + - value: ERROR + description: ERROR + - value: DEBUG + description: DEBUG + - variable: defaultsettings + label: Default Settings + description: | + Provide default settings for new users. When a new user is created, these settings will automatically be set for the user. + If you change them in the config file afterwards they will not be changed back for existing users. + schema: + additional_attrs: true + type: dict + attrs: + - variable: avatar_provider + label: Avatar Provider + description: The avatar source for the user. + schema: + type: string + required: true + default: initials + enum: + - value: initials + description: Initials + - value: gravatar + description: Gravatar + - value: marble + description: Marble + - value: upload + description: Upload + - variable: avatar_file_id + label: Avatar File ID + description: The id of the file used as avatar. + schema: + type: int + show_if: [["avatar_provider", "=", "upload"]] + required: true + default: 0 + - variable: email_reminders_enabled + label: Enable Email Reminders + description: If set to true users will get task reminders via email. + schema: + type: boolean + default: false + - variable: discoverable_by_name + label: Discoverable by Name + description: If set to true will allow other users to find this user when searching for parts of their name. + schema: + type: boolean + default: false + - variable: discoverable_by_email + label: Discoverable by E-Mail + description: If set to true will allow other users to find this user when searching for their exact email. + schema: + type: boolean + default: false + - variable: overdue_tasks_reminders_enabled + label: Enable Overdue Task Reminders + description: If set to true will send an email every day with all overdue tasks at a configured time. + schema: + type: boolean + default: false + - variable: overdue_tasks_reminders_time + label: Overdue Task Reminder Time + description: When to send the overdue task reminder email. + schema: + type: string + required: true + default: "09:00" + - variable: default_list_id + label: Default List ID + description: The id of the default list. Make sure users actually have access to this list when setting this value. + schema: + type: int + required: true + default: 0 + - variable: week_start + label: Week Start + description: Start of the week for the user. 0 is sunday, 1 is monday and so on. + schema: + type: int + required: true + default: 0 + - variable: language + label: Language + description: | + The language of the user interface. Must be an ISO 639-1 language code. + Will default to the browser language the user uses when signing up. + schema: + type: string + default: "" + - variable: timezone + label: Timezone + description: The time zone of each individual user. This will affect when users get reminders and overdue task emails. + schema: + type: string + default: "" + - variable: backgrounds + label: Backgrounds + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + description: Whether to enable backgrounds for lists at all. + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: providers + label: Providers + schema: + additional_attrs: true + type: dict + attrs: + - variable: upload + label: Upload + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + description: Whether to enable uploaded list backgrounds + schema: + type: boolean + default: true + - variable: unsplash + label: Unsplash + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + description: Whether to enable setting backgrounds from unsplash as list backgrounds + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: accesstoken + label: Access Token + description: | + You need to create an application for your installation at + https://unsplash.com/oauth/applications/new and set the access token below. + schema: + type: string + required: true + default: "" + - variable: applicationid + label: Application ID + description: The unsplash application id is only used for ping back and required as per their api guidelines. + schema: + type: string + required: true + default: "" + - variable: auth + label: Auth + schema: + additional_attrs: true + type: dict + attrs: + - variable: local + label: Local + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + description: Enable or disable local authentication + schema: + type: boolean + default: true + - variable: openid + label: OpenID + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + description: Enable or disable OpenID Connect authentication + schema: + type: boolean + default: true + show_subquestions_if: true + subquestions: + - variable: redirecturl + label: Redirect URL + description: The URL to redirect clients to. Defaults to the configured frontend URL. + schema: + type: string + default: "" + - variable: providers + label: Providers + schema: + type: list + default: [] + items: + - variable: providerEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: The name of the provider as it will appear in the frontend. + schema: + type: string + required: true + default: "" + - variable: authurl + label: Auth URL + description: The auth url to send users to if they want to authenticate using OpenID Connect. + schema: + type: string + required: true + default: "" + - variable: logouturl + label: Logout URL + description: The oidc logout url that users will be redirected to on logout. + schema: + type: string + default: "" + - variable: clientid + label: Client ID + description: The client ID used to authenticate Vikunja at the OpenID Connect provider. + schema: + type: string + required: true + default: "" + - variable: clientsecret + label: Client Secret + description: The client secret used to authenticate Vikunja at the OpenID Connect provider. + schema: + type: string + required: true + default: "" + - variable: migration + label: Migration + schema: + additional_attrs: true + type: dict + attrs: + - variable: todoist + label: Todoist + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + description: Whether to enable the todoist migrator or not + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: clientid + label: Client ID + description: | + The client id, required for making requests to the todoist api + You need to register your vikunja instance at https://developer.todoist.com/appconsole.html to get this + schema: + type: string + required: true + default: "" + - variable: clientsecret + label: Client Secret + description: The client secret, also required for making requests to the todoist api + schema: + type: string + required: true + default: "" + - variable: redirecturl + label: Redirect URL + description: The url where clients are redirected after they authorized Vikunja to access their todoist items. + schema: + type: string + required: true + default: /migrate/todoist + - variable: trello + label: Trello + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + description: Whether to enable the trello migrator or not + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: key + label: Key + description: | + The client id, required for making requests to the trello api. + You need to register your vikunja instance at https://trello.com/app-key, + (log in before you visit that link) to get this. + schema: + type: string + required: true + default: "" + - variable: redirecturl + label: Redirect URL + description: The url where clients are redirected after they authorized Vikunja to access their trello cards. + schema: + type: string + required: true + default: /migrate/trello + - variable: microsofttodo + label: Microsoft To Do + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + description: Wheter to enable the microsoft todo migrator or not + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: clientid + label: Client ID + description: | + The client id, required for making requests to the microsoft graph api + See https://docs.microsoft.com/en-us/azure/active-directory/develop/quickstart-register-app#register-an-application + for information about how to register your Vikunja instance. + schema: + type: string + required: true + default: "" + - variable: clientsecret + label: Client Secret + description: The client secret, also required for making requests to the microsoft graph api + schema: + type: string + required: true + default: "" + - variable: redirecturl + label: Redirect URL + description: The url where clients are redirected after they authorized Vikunja to access their microsoft todo tasks. + schema: + type: string + required: true + default: /migrate/microsoft-todo + - variable: TZ + label: Timezone + group: "General Settings" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: podOptions + group: "General Settings" + label: "Global Pod Options (Advanced)" + schema: + additional_attrs: true + type: dict + attrs: + - variable: expertPodOpts + label: "Expert - Pod Options" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + label: "Host Networking" + schema: + type: boolean + default: false + - variable: dnsConfig + label: "DNS Configuration" + schema: + type: dict + additional_attrs: true + attrs: + - variable: options + label: "Options" + schema: + type: list + default: [{"name": "ndots", "value": "1"}] + items: + - variable: optionsEntry + label: "Option Entry" + schema: + type: dict + additional_attrs: true + attrs: + - variable: name + label: "Name" + schema: + type: string + required: true + - variable: value + label: "Value" + schema: + type: string + - variable: nameservers + label: "Nameservers" + schema: + type: list + default: [] + items: + - variable: nsEntry + label: "Nameserver Entry" + schema: + type: string + required: true + - variable: searches + label: "Searches" + schema: + type: list + default: [] + items: + - variable: searchEntry + label: "Search Entry" + schema: + type: string + required: true + + - variable: imagePullSecretList + group: "General Settings" + label: "Image Pull Secrets" + schema: + type: list + default: [] + items: + - variable: pullsecretentry + label: "Pull Secret" + schema: + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: true + - variable: data + label: Data + schema: + type: dict + additional_attrs: true + attrs: + - variable: registry + label: "Registry" + schema: + type: string + required: true + default: "https://index.docker.io/v1/" + - variable: username + label: "Username" + schema: + type: string + required: true + default: "" + - variable: password + label: "Password" + schema: + type: string + required: true + private: true + default: "" + - variable: email + label: "Email" + schema: + type: string + required: true + default: "" + - 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) + - 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: 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: 10220 + required: true + - variable: serviceexpert + group: Networking and Services + label: Show Expert Config + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: scaleExternalInterface + description: Add External Interfaces + label: Add external Interfaces + group: Networking + schema: + type: list + items: + - variable: interfaceConfiguration + description: Interface Configuration + label: Interface Configuration + schema: + additional_attrs: true + 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: + additional_attrs: true + 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 + - variable: staticIPConfigurations + label: Static IP Addresses + schema: + type: list + show_if: [["type", "=", "static"]] + items: + - variable: staticIP + label: Static IP + schema: + type: ipaddr + cidr: true + - variable: staticRoutes + label: Static Routes + schema: + type: list + show_if: [["type", "=", "static"]] + 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: 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: files + label: App Files Storage + description: Stores the Application Files. + 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: pvc + enum: + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: emptyDir + description: emptyDir + - value: nfs + description: NFS Share + - value: iscsi + description: iSCSI 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: iscsi + label: iSCSI Options + schema: + show_if: [["type", "=", "iscsi"]] + type: dict + additional_attrs: true + attrs: + - variable: targetPortal + label: targetPortal + schema: + type: string + required: true + default: "" + - variable: iqn + label: iqn + schema: + type: string + required: true + default: "" + - variable: lun + label: lun + schema: + type: int + default: 0 + - variable: authSession + label: authSession + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: authDiscovery + label: authDiscovery + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + + - variable: autoPermissions + label: Automatic Permissions Configuration + description: Automatically set permissions + schema: + show_if: [["type", "!=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: chown + label: Run CHOWN + description: | + It will run CHOWN on the path with the given fsGroup + schema: + type: boolean + default: false + - variable: chmod + label: Run CHMOD + description: | + It will run CHMOD on the path with the given value
+ Format should be 3 digits, e.g. 770 + schema: + type: string + valid_chars: '[0-9]{3}' + default: "" + - variable: recursive + label: Recursive + description: | + It will run CHOWN and CHMOD recursively + schema: + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - 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 (Do NOT REDUCE after installation) + description: This value can ONLY be INCREASED after the installation + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: storageClass + label: 'storageClass (Advanced)' + description: 'sets the storageClass to something other than iX default. Only for advanced usecases!' + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "" + - variable: static + label: 'Static Fixed PVC Bindings (Experimental)' + description: Link a PVC to a specific storage location + schema: + show_if: [["type", "=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: mode + label: mode + description: | + disabled: use normal dynamic PVCs + smb: connect to an SMB share + nfs: connect to an NFS share + schema: + type: string + default: "disabled" + enum: + - value: disabled + description: disabled + - value: smb + description: smb + - value: nfs + description: nfs + - variable: server + label: Server + description: server to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "myserver" + - variable: share + label: Share + description: share to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "/myshare" + - variable: user + label: User + description: connecting user + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "myuser" + - variable: domain + label: Domain + description: user domain + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: password + label: Password + description: connecting password + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: volumeSnapshots + label: 'Volume Snapshots (Experimental)' + description: Add an entry to the list to force creation of a volumeSnapshot of this PVC + schema: + show_if: [["type", "=", "pvc"]] + type: list + default: [] + items: + - variable: volumeSnapshotEntry + label: Custom volumeSnapshot + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: 'WARNING: renaming this, means deletion of the snapshot with the old name!' + schema: + type: string + default: "mysnapshot" + required: true + - variable: volumeSnapshotClassName + label: 'volumeSnapshot Class Name (Advanced)' + description: For use with PVCs using a non-default storageClass + schema: + type: string + default: "" + - 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: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: hostPath + enum: + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: emptyDir + description: emptyDir + - 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: iscsi + label: iSCSI Options + schema: + show_if: [["type", "=", "iscsi"]] + type: dict + additional_attrs: true + attrs: + - variable: targetPortal + label: targetPortal + schema: + type: string + required: true + default: "" + - variable: iqn + label: iqn + schema: + type: string + required: true + default: "" + - variable: lun + label: lun + schema: + type: int + default: 0 + - variable: authSession + label: authSession + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: authDiscovery + label: authDiscovery + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: autoPermissions + label: Automatic Permissions Configuration + description: Automatically set permissions + schema: + show_if: [["type", "!=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: chown + label: Run CHOWN + description: | + It will run CHOWN on the path with the given fsGroup + schema: + type: boolean + default: false + - variable: chmod + label: Run CHMOD + description: | + It will run CHMOD on the path with the given value
+ Format should be 3 digits, e.g. 770 + schema: + type: string + valid_chars: '[0-9]{3}' + default: "" + - variable: recursive + label: Recursive + description: | + It will run CHOWN and CHMOD recursively + schema: + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - 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: storageClass + label: 'storageClass (Advanced)' + description: 'sets the storageClass to something other than iX default. Only for advanced usecases!' + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "" + - variable: static + label: 'Static Fixed PVC Bindings (Experimental)' + description: Link a PVC to a specific storage location + schema: + show_if: [["type", "=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: mode + label: mode + description: | + disabled: use normal dynamic PVCs + smb: connect to an SMB share + nfs: connect to an NFS share + schema: + type: string + default: "disabled" + enum: + - value: "disabled" + description: disabled + - value: smb + description: smb + - value: nfs + description: nfs + - variable: server + label: Server + description: server to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "myserver" + - variable: share + label: Share + description: share to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "/myshare" + - variable: user + label: User + description: connecting user + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "myuser" + - variable: domain + label: Domain + description: user domain + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: password + label: Password + description: connecting password + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: volumeSnapshots + label: 'Volume Snapshots (Experimental)' + description: Add an entry to the list to force creation of a volumeSnapshot of this PVC + schema: + show_if: [["type", "=", "pvc"]] + type: list + default: [] + items: + - variable: volumeSnapshotEntry + label: Custom volumeSnapshot + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: 'WARNING: renaming this, means deletion of the snapshot with the old name!' + schema: + type: string + default: "mysnapshot" + required: true + - variable: volumeSnapshotClassName + label: 'volumeSnapshot Class Name (Advanced)' + description: For use with PVCs using a non-default storageClass + schema: + type: string + default: "" + - 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: [{path: "/", pathType: "Prefix"}] + 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: integrations + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: traefik + label: Traefik + description: Connect ingress with Traefik + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: allowCors + label: 'Allow Cross Origin Requests (advanced)' + schema: + type: boolean + default: false + show_if: [["enabled", "=", true]] + - variable: entrypoints + label: Entrypoints + schema: + type: list + default: ["websecure"] + show_if: [["enabled", "=", true]] + items: + - variable: entrypoint + label: Entrypoint + schema: + type: string + - variable: middlewares + label: Middlewares + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: middleware + label: Middleware + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true + - variable: namespace + label: 'namespace (optional)' + schema: + type: string + default: "" + - variable: certManager + label: certManager + description: Connect ingress with certManager + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: certificateIssuer + label: certificateIssuer + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: homepage + label: Homepage + description: Connect ingress with Homepage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: name + label: Name (Optional) + description: Defaults to chart name + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: description + label: Description (Optional) + description: Defaults to chart description + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: icon + label: Icon (Optional) + description: Defaults to chart icon + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: group + label: Group + schema: + type: string + required: true + default: "default" + show_if: [["enabled", "=", true]] + - variable: widget + label: Widget Settings + schema: + type: dict + additional_attrs: true + show_if: [["enabled", "=", true]] + attrs: + - variable: enabled + label: Enable Widget + description: When disabled all widget annotations are skipped. + schema: + type: boolean + default: true + - variable: custom + label: Options + schema: + type: dict + additional_attrs: true + attrs: + - variable: key + label: API-key (key) + schema: + type: string + default: "" + - variable: customkv + label: Custom Options + schema: + type: list + default: [] + items: + - variable: option + label: Option + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + default: "" + required: true + - variable: value + label: Value + schema: + type: string + default: "" + required: true + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + - variable: ingressClassName + label: (Advanced/Optional) IngressClass Name + schema: + type: string + show_if: [["advanced", "=", true]] + default: "" + - variable: tls + label: TLS-Settings + schema: + type: list + show_if: [["advanced", "=", true]] + 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: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: 'Use Custom Certificate Secret (Advanced)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: string + default: "" + - variable: scaleCert + label: 'Use TrueNAS SCALE Certificate (Deprecated)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - 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: 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: overrideService + 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: [] + show_if: [["certificateIssuer", "=", ""]] + 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: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your Cert-Manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: scaleCert + label: Use TrueNAS SCALE Certificate (Deprecated) + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: Use Custom Secret (Advanced) + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: integrations + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: traefik + label: Traefik + description: Connect ingress with Traefik + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: allowCors + label: "Allow Cross Origin Requests" + schema: + type: boolean + default: false + show_if: [["enabled", "=", true]] + - variable: entrypoints + label: Entrypoints + schema: + type: list + default: ["websecure"] + show_if: [["enabled", "=", true]] + items: + - variable: entrypoint + label: Entrypoint + schema: + type: string + - variable: middlewares + label: Middlewares + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: middleware + label: Middleware + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true + - variable: namespace + label: namespace + schema: + type: string + default: "" + - variable: certManager + label: certManager + description: Connect ingress with certManager + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: certificateIssuer + label: certificateIssuer + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: homepage + label: Homepage + description: Connect ingress with Homepage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: name + label: Name + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: description + label: Description + description: defaults to chart description + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: group + label: Group + schema: + type: string + required: true + default: "default" + show_if: [["enabled", "=", true]] + - variable: securityContext + group: Security and Permissions + label: Security Context + schema: + additional_attrs: true + type: dict + attrs: + - variable: container + label: Container + schema: + additional_attrs: true + type: dict + attrs: + # Settings from questions.yaml get appended here on a per-app basis + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 0 + - variable: runAsGroup + label: "runAsGroup" + description: "The groupID of the user running the application" + schema: + type: int + default: 0 + # Settings from questions.yaml get appended here on a per-app basis + - 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 + show_if: [["runAsUser", "=", 0]] + 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: "0022" + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: pod + label: Pod + schema: + additional_attrs: true + type: dict + attrs: + - 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 + # Settings from questions.yaml get appended here on a per-app basis + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: resources + group: Resources and Devices + label: "Resource Limits" + 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/manual/SCALE/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/manual/SCALE/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 + hidden: true + attrs: + - variable: cpu + label: CPU + description: "1000m means 1 hyperthread. Detailed info: https://truecharts.org/manual/SCALE/validation" + schema: + type: string + default: 10m + hidden: true + 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/manual/SCALE/validation" + schema: + type: string + default: 50Mi + hidden: true + 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: device + 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" + - variable: scaleGPU + label: GPU Configuration + group: Resources and Devices + schema: + type: list + default: [] + items: + - variable: scaleGPUEntry + label: GPU + schema: + additional_attrs: true + type: dict + attrs: + # Specify GPU configuration + - variable: gpu + label: Select GPU + schema: + additional_attrs: true + type: dict + $ref: + - "definitions/gpuConfiguration" + attrs: [] + - variable: workaround + label: "Workaround" + schema: + type: string + default: workaround + hidden: true + - variable: cnpg + group: Postgresql + label: "CloudNative-PG (CNPG)" + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "Main Postgresql Database" + schema: + additional_attrs: true + type: dict + attrs: + - variable: hibernate + label: Hibernate + description: "enable to safely hibernate and shutdown the postgresql cluster" + schema: + type: boolean + default: false + - variable: mode + label: Mode + description: 'Cluster mode of operation. Available modes: standalone - default mode. Creates new or updates an existing CNPG cluster. recovery - Same as standalone but creates a cluster from a backup, object store or via pg_basebackup replica - Creates a replica cluster from an existing CNPG cluster. # TODO.' + schema: + type: string + default: "standalone" + enum: + - value: standalone + description: standalone + - value: replica + description: replica + - value: recovery + description: recovery + - variable: cluster + label: "Cluster Settings" + schema: + additional_attrs: true + type: dict + attrs: + - variable: instances + label: Instances + schema: + type: int + default: 1 + - variable: singleNode + label: singleNode + schema: + type: boolean + default: true + hidden: true + - variable: storage + label: "Storage" + schema: + additional_attrs: true + type: dict + attrs: + - variable: size + label: Size + schema: + type: string + default: "256Gi" + - variable: walStorage + label: "WAL Storage" + schema: + additional_attrs: true + type: dict + attrs: + - variable: size + label: Size + schema: + type: string + default: "256Gi" + - variable: monitoring + label: "Monitoring Settings" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enablePodMonitor + label: "enablePodMonitor" + schema: + type: boolean + default: true + - variable: disableDefaultQueries + label: "disableDefaultQueries" + schema: + type: boolean + default: false + - variable: pooler + label: "Pooler Settings" + schema: + additional_attrs: true + type: dict + attrs: + - variable: instances + label: Instances + schema: + type: int + default: 1 + - variable: createRO + label: "Create ReadOnly Instance" + schema: + type: boolean + default: false + - variable: recovery + label: "Recovery Settings (Experimental)" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + - variable: endpointURL + label: "endpointURL" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "" + - variable: method + label: "method" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "object_store" + - variable: backupName + label: "backupName" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "" + - variable: provider + label: "provider" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "s3" + enum: + - value: s3 + description: S3 + - value: azure + description: Azure + - value: google + description: Google + - variable: s3 + label: "s3" + schema: + additional_attrs: true + type: dict + show_if: [["provider", "=", "s3"]] + attrs: + - variable: region + label: "region" + schema: + type: string + default: "" + - variable: bucket + label: "bucket" + schema: + type: string + default: "" + - variable: path + label: "path" + schema: + type: string + default: "/" + - variable: accessKey + label: "accessKey" + schema: + type: string + default: "" + - variable: secretKey + label: "secretKey" + schema: + type: string + default: "" + - variable: azure + label: "azure (EXTREMELY EXPERIMENTAL)" + schema: + additional_attrs: true + type: dict + show_if: [["provider", "=", "azure"]] + attrs: + - variable: path + label: "path" + schema: + type: string + default: "/" + - variable: connectionString + label: "connectionString" + schema: + type: string + default: "" + - variable: storageAccount + label: "storageAccount" + schema: + type: string + default: "" + - variable: storageKey + label: "storageKey" + schema: + type: string + default: "" + - variable: storageSasToken + label: "storageSasToken" + schema: + type: string + default: "" + - variable: containerName + label: "containerName" + schema: + type: string + default: "" + - variable: serviceName + label: "serviceName" + schema: + type: string + default: "blob" + - variable: inheritFromAzureAD + label: "inheritFromAzureAD" + schema: + type: boolean + default: false + - variable: google + label: "google (EXTREMELY EXPERIMENTAL)" + schema: + additional_attrs: true + type: dict + show_if: [["provider", "=", "google"]] + attrs: + - variable: path + label: "path" + schema: + type: string + default: "/" + - variable: bucket + label: "bucket" + schema: + type: string + default: "" + - variable: gkeEnvironment + label: "gkeEnvironment" + schema: + type: string + default: "" + - variable: applicationCredentials + label: "applicationCredentials" + schema: + type: string + default: "" + - variable: backups + label: "Backup Settings (Experimental)" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + - variable: endpointURL + label: "endpointURL" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "" + - variable: destinationPath + label: "destinationPath" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "" + - variable: retentionPolicy + label: "retentionPolicy" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "30d" + - variable: provider + label: "provider" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "s3" + enum: + - value: s3 + description: S3 + - value: azure + description: Azure + - value: google + description: Google + - variable: s3 + label: "s3" + schema: + additional_attrs: true + type: dict + show_if: [["provider", "=", "s3"]] + attrs: + - variable: region + label: "region" + schema: + type: string + default: "" + - variable: bucket + label: "bucket" + schema: + type: string + default: "" + - variable: path + label: "path" + schema: + type: string + default: "/" + - variable: accessKey + label: "accessKey" + schema: + type: string + default: "" + - variable: secretKey + label: "secretKey" + schema: + type: string + default: "" + - variable: azure + label: "azure (EXTREMELY EXPERIMENTAL)" + schema: + additional_attrs: true + type: dict + show_if: [["provider", "=", "azure"]] + attrs: + - variable: path + label: "path" + schema: + type: string + default: "/" + - variable: connectionString + label: "connectionString" + schema: + type: string + default: "" + - variable: storageAccount + label: "storageAccount" + schema: + type: string + default: "" + - variable: storageKey + label: "storageKey" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "" + - variable: storageSasToken + label: "storageSasToken" + schema: + type: string + default: "" + - variable: containerName + label: "containerName" + schema: + type: string + default: "" + - variable: serviceName + label: "serviceName" + schema: + type: string + default: "blob" + - variable: inheritFromAzureAD + label: "inheritFromAzureAD" + schema: + type: boolean + default: false + - variable: google + label: "google (EXTREMELY EXPERIMENTAL)" + schema: + additional_attrs: true + type: dict + show_if: [["provider", "=", "google"]] + attrs: + - variable: path + label: "path" + schema: + type: string + default: "/" + - variable: bucket + label: "bucket" + schema: + type: string + default: "" + - variable: gkeEnvironment + label: "gkeEnvironment" + schema: + type: string + default: "" + - variable: applicationCredentials + label: "applicationCredentials" + schema: + type: string + default: "" + - variable: scheduledBackups + label: ScheduledBackups + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: backupschedule + label: BackupSchedule + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "daily-backup" + required: true + - variable: schedule + label: schedule + schema: + type: string + required: true + default: "0 0 0 * * *" + - variable: backupOwnerReference + label: backupOwnerReference + schema: + type: string + required: true + default: "self" + - variable: immediate + label: immediate + schema: + type: boolean + default: false + - variable: suspend + label: suspend + schema: + type: boolean + default: false + - variable: manualBackups + label: manualBackups + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: backup + label: Backup + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true + - variable: metrics + group: Metrics + label: Prometheus Metrics + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: Main Metrics + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + description: Enable Prometheus Metrics + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: prometheusRule + label: PrometheusRule + description: Enable and configure Prometheus Rules for the App. + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + description: Enable Prometheus Metrics + schema: + type: boolean + default: false + # TODO: Rule List section +# - 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: 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: 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: ingress + label: "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: [{path: "/", pathType: "Prefix"}] + 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: integrations + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: traefik + label: Traefik + description: Connect ingress with Traefik + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: allowCors + label: 'Allow Cross Origin Requests (advanced)' + schema: + type: boolean + default: false + show_if: [["enabled", "=", true]] + - variable: entrypoints + label: Entrypoints + schema: + type: list + default: ["websecure"] + show_if: [["enabled", "=", true]] + items: + - variable: entrypoint + label: Entrypoint + schema: + type: string + - variable: middlewares + label: Middlewares + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: middleware + label: Middleware + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true + - variable: namespace + label: 'namespace (optional)' + schema: + type: string + default: "" + - variable: certManager + label: certManager + description: Connect ingress with certManager + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: certificateIssuer + label: certificateIssuer + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + - variable: ingressClassName + label: (Advanced/Optional) IngressClass Name + schema: + type: string + show_if: [["advanced", "=", true]] + default: "" + - variable: tls + label: TLS-Settings + schema: + type: list + show_if: [["advanced", "=", true]] + 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: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: 'Use Custom Certificate Secret (Advanced)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: string + default: "" + - variable: scaleCert + label: 'Use TrueNAS SCALE Certificate (Deprecated)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - 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: 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: gluetun + description: Gluetun + - value: tailscale + description: Tailscale + - value: openvpn + description: OpenVPN (Deprecated) + - value: wireguard + description: Wireguard (Deprecated) + - variable: openvpn + label: OpenVPN Settings + schema: + additional_attrs: true + 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 + show_if: [["username", "!=", ""]] + default: "" + required: true + - variable: tailscale + label: Tailscale Settings + schema: + additional_attrs: true + 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: auth_once + label: Auth Once + description: Only attempt to log in if not already logged in. + schema: + type: boolean + default: true + - 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: The address on which to listen for SOCKS5 proxying into the tailscale net. + schema: + type: string + default: "" + - variable: outbound_http_proxy_listen + label: Outbound HTTP Proxy Listen + description: The address on which to listen for HTTP proxying into the tailscale net. + 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: string + show_if: [["type", "!=", "disabled"]] + 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 + max_length: 10240 + - 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/stable/vikunja/12.1.21/templates/NOTES.txt b/stable/vikunja/12.1.21/templates/NOTES.txt new file mode 100644 index 00000000000..efcb74cb772 --- /dev/null +++ b/stable/vikunja/12.1.21/templates/NOTES.txt @@ -0,0 +1 @@ +{{- include "tc.v1.common.lib.chart.notes" $ -}} diff --git a/stable/vikunja/12.1.21/templates/_secrets.tpl b/stable/vikunja/12.1.21/templates/_secrets.tpl new file mode 100644 index 00000000000..771b2610db0 --- /dev/null +++ b/stable/vikunja/12.1.21/templates/_secrets.tpl @@ -0,0 +1,196 @@ +{{/* Define the secrets */}} +{{- define "vikunja.secrets" -}} + +{{- $secretStorage := printf "%s-storage-secret" (include "tc.v1.common.lib.chart.names.fullname" .) -}} +{{- $pgHost := printf "%v-cnpg-main-rw" (include "tc.v1.common.lib.chart.names.fullname" $) -}} +{{- $jwtSecret := randAlphaNum 32 -}} +{{- with lookup "v1" "Secret" .Release.Namespace $secretStorage -}} + {{- $jwtSecret = index .data "JWT_SECRET" | b64dec -}} +{{- end }} +secret: + secret-storage: + enabled: true + data: + JWT_SECRET: {{ $jwtSecret }} + + config: + enabled: true + data: + config.yaml: | + database: + type: postgres + user: {{ .Values.cnpg.main.user }} + password: {{ .Values.cnpg.main.creds.password | trimAll "\"" }} + host: {{ $pgHost }} + + cache: + enabled: true + type: redis + + redis: + enabled: true + host: {{ printf "%v-%v:%v" .Release.Name "redis" "6379" }} + password: {{ .Values.redis.creds.redisPassword | trimAll "\""}} + db: 0 + + keyvalue: + type: redis + + service: + interface: ":3456" + JWTSecret: {{ $jwtSecret }} + timezone: {{ .Values.TZ | quote }} + {{- /* Multiply by 1, so large integers are not rendered in scientific notation + See: https://github.com/helm/helm/issues/1707#issuecomment-1167860346 */}} + jwtttl: {{ mul .Values.vikunja.service.jwtttl 1 }} + jwtttllong: {{ mul .Values.vikunja.service.jwtttllong 1 }} + frontendurl: {{ .Values.vikunja.service.frontendurl | quote }} + maxitemsperpage: {{ .Values.vikunja.service.maxitemsperpage }} + enablecaldav: {{ .Values.vikunja.service.enablecaldav }} + motd: {{ .Values.vikunja.service.motd | quote }} + enablelinksharing: {{ .Values.vikunja.service.enablelinksharing }} + enableregistration: {{ .Values.vikunja.service.enableregistration }} + enabletaskattachments: {{ .Values.vikunja.service.enabletaskattachments }} + enabletaskcomments: {{ .Values.vikunja.service.enabletaskcomments }} + enabletotp: {{ .Values.vikunja.service.enabletotp }} + enableemailreminders: {{ .Values.vikunja.service.enableemailreminders }} + enableuserdeletion: {{ .Values.vikunja.service.enableuserdeletion }} + maxavatarsize: {{ .Values.vikunja.service.maxavatarsize }} + + metrics: + enabled: {{ .Values.metrics.enabled }} + + cors: + enabled: {{ .Values.vikunja.cors.enabled }} + {{- with .Values.vikunja.cors.origins }} + origins: + {{- range . }} + - {{ . | quote }} + {{- end }} + {{- else }} + origins: [] + {{- end }} + maxage: {{ .Values.vikunja.cors.maxage }} + + mailer: + enabled: {{ .Values.vikunja.mailer.enabled }} + host: {{ .Values.vikunja.mailer.host | quote }} + port: {{ .Values.vikunja.mailer.port }} + authtype: {{ .Values.vikunja.mailer.authtype | quote }} + username: {{ .Values.vikunja.mailer.username | quote }} + password: {{ .Values.vikunja.mailer.password | quote }} + skiptlsverify: {{ .Values.vikunja.mailer.skiptlsverify }} + fromemail: {{ .Values.vikunja.mailer.fromemail | quote }} + queuelength: {{ .Values.vikunja.mailer.queuelength }} + queuetimeout: {{ .Values.vikunja.mailer.queuetimeout }} + forcessl: {{ .Values.vikunja.mailer.forcessl }} + + log: + enabled: {{ .Values.vikunja.log.enabled }} + path: {{ .Values.vikunja.log.path | quote }} + standard: {{ .Values.vikunja.log.standard | quote }} + level: {{ .Values.vikunja.log.level | quote }} + database: {{ .Values.vikunja.log.database | quote }} + databaselevel: {{ .Values.vikunja.log.databaselevel | quote }} + http: {{ .Values.vikunja.log.http | quote }} + echo: {{ .Values.vikunja.log.echo | quote }} + events: {{ .Values.vikunja.log.events | quote }} + eventslevel: {{ .Values.vikunja.log.eventslevel | quote }} + + ratelimit: + enabled: {{ .Values.vikunja.ratelimit.enabled }} + kind: {{ .Values.vikunja.ratelimit.kind | quote }} + period: {{ .Values.vikunja.ratelimit.period }} + limit: {{ .Values.vikunja.ratelimit.limit }} + store: redis + + files: + maxsize: {{ .Values.vikunja.files.maxsize }} + + avatar: + gravatarexpiration: {{ .Values.vikunja.avatar.gravatarexpiration }} + + legal: + imprinturl: {{ .Values.vikunja.legal.imprinturl | quote }} + privacyurl: {{ .Values.vikunja.legal.privacyurl | quote }} + + backgrounds: + enabled: {{ .Values.vikunja.backgrounds.enabled }} + providers: + upload: + enabled: {{ .Values.vikunja.backgrounds.providers.upload.enabled }} + unsplash: + enabled: {{ .Values.vikunja.backgrounds.providers.unsplash.enabled }} + accesstoken: {{ .Values.vikunja.backgrounds.providers.unsplash.accesstoken | quote }} + applicationid: {{ .Values.vikunja.backgrounds.providers.unsplash.applicationid | quote }} + + migration: + todoist: + enable: {{ .Values.vikunja.migration.todoist.enable }} + clientid: {{ .Values.vikunja.migration.todoist.clientid | quote }} + clientsecret: {{ .Values.vikunja.migration.todoist.clientsecret | quote }} + redirecturl: {{ .Values.vikunja.migration.todoist.redirecturl | quote }} + trello: + enable: {{ .Values.vikunja.migration.trello.enable }} + key: {{ .Values.vikunja.migration.trello.key | quote }} + redirecturl: {{ .Values.vikunja.migration.trello.redirecturl | quote }} + microsofttodo: + enable: {{ .Values.vikunja.migration.microsofttodo.enable }} + clientid: {{ .Values.vikunja.migration.microsofttodo.clientid | quote }} + clientsecret: {{ .Values.vikunja.migration.microsofttodo.clientsecret | quote }} + redirecturl: {{ .Values.vikunja.migration.microsofttodo.redirecturl | quote }} + + auth: + local: + enabled: {{ .Values.vikunja.auth.local.enabled }} + openid: + enabled: {{ .Values.vikunja.auth.openid.enabled }} + {{- with .Values.vikunja.auth.openid.redirecturl }} + redirecturl: {{ . | quote }} + {{- end }} + {{- with .Values.vikunja.auth.openid.providers }} + providers: + {{- range . }} + - name: {{ .name | quote }} + authurl: {{ .authurl | quote }} + {{- with .logouturl }} + logouturl: {{ . | quote }} + {{- end }} + clientid: {{ .clientid | quote }} + clientsecret: {{ .clientsecret | quote }} + {{- end }} + {{- end }} + + defaultsettings: + avatar_provider: {{ .Values.vikunja.defaultsettings.avatar_provider | quote }} + avatar_file_id: {{ .Values.vikunja.defaultsettings.avatar_file_id }} + email_reminders_enabled: {{ .Values.vikunja.defaultsettings.email_reminders_enabled }} + discoverable_by_name: {{ .Values.vikunja.defaultsettings.discoverable_by_name }} + discoverable_by_email: {{ .Values.vikunja.defaultsettings.discoverable_by_email }} + overdue_tasks_reminders_enabled: {{ .Values.vikunja.defaultsettings.overdue_tasks_reminders_enabled }} + overdue_tasks_reminders_time: {{ .Values.vikunja.defaultsettings.overdue_tasks_reminders_time | quote }} + default_list_id: {{ .Values.vikunja.defaultsettings.default_list_id }} + week_start: {{ .Values.vikunja.defaultsettings.week_start }} + {{- with .Values.vikunja.defaultsettings.language }} + language: {{ . | quote }} + {{- end }} + {{- with .Values.vikunja.defaultsettings.timezone }} + timezone: {{ . | quote }} + {{- end }} + +configmap: + nginx-config: + enabled: true + data: + nginx-config: | + server { + listen {{ .Values.service.main.ports.main.port }}; + location / { + proxy_pass http://localhost:80; + } + location ~* ^/(api|dav|\.well-known)/ { + proxy_pass http://localhost:3456; + client_max_body_size {{ .Values.vikunja.files.maxsize | upper | trimSuffix "B" }}; + } + } +{{- end -}} diff --git a/stable/vikunja/12.1.21/templates/common.yaml b/stable/vikunja/12.1.21/templates/common.yaml new file mode 100644 index 00000000000..13ae3d62bed --- /dev/null +++ b/stable/vikunja/12.1.21/templates/common.yaml @@ -0,0 +1,8 @@ +{{- include "tc.v1.common.loader.init" . }} + +{{- $secrets := include "vikunja.secrets" . | fromYaml -}} +{{- if $secrets -}} + {{- $_ := mustMergeOverwrite .Values $secrets -}} +{{- end -}} + +{{ include "tc.v1.common.loader.apply" . }} diff --git a/stable/vikunja/12.1.21/values.yaml b/stable/vikunja/12.1.21/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/webp-server/4.1.12/app-changelog.md b/stable/webp-server/4.1.12/app-changelog.md deleted file mode 100644 index ba7fe0085cd..00000000000 --- a/stable/webp-server/4.1.12/app-changelog.md +++ /dev/null @@ -1,9 +0,0 @@ - - -## [webp-server-4.1.12](https://github.com/truecharts/charts/compare/webp-server-4.1.11...webp-server-4.1.12) (2024-02-03) - -### Chore - - - -- update container image common to v17.2.30[@19ad5ec](https://github.com/19ad5ec) by renovate ([#17804](https://github.com/truecharts/charts/issues/17804)) \ No newline at end of file diff --git a/stable/webp-server/4.1.12/CHANGELOG.md b/stable/webp-server/4.1.13/CHANGELOG.md similarity index 85% rename from stable/webp-server/4.1.12/CHANGELOG.md rename to stable/webp-server/4.1.13/CHANGELOG.md index 9853f78d3b3..4d180d8c1f9 100644 --- a/stable/webp-server/4.1.12/CHANGELOG.md +++ b/stable/webp-server/4.1.13/CHANGELOG.md @@ -7,6 +7,15 @@ title: Changelog +## [webp-server-4.1.13](https://github.com/truecharts/charts/compare/webp-server-4.1.12...webp-server-4.1.13) (2024-02-12) + +### Chore + + + +- update container image webpsh/webps to latest[@b5d59f3](https://github.com/b5d59f3) by renovate ([#18114](https://github.com/truecharts/charts/issues/18114)) + + ## [webp-server-4.1.12](https://github.com/truecharts/charts/compare/webp-server-4.1.11...webp-server-4.1.12) (2024-02-03) ### Chore @@ -88,12 +97,3 @@ title: Changelog ### Chore - -- bump all charts for OCI test push - -- move everything to consume OCI-hosted common-chart dependency - -- update container image common to v17.2.19[@4ebb688](https://github.com/4ebb688) by renovate ([#16733](https://github.com/truecharts/charts/issues/16733)) - -- update container image common to v17.2.18[@085ba3c](https://github.com/085ba3c) by renovate ([#16732](https://github.com/truecharts/charts/issues/16732)) - diff --git a/stable/webp-server/4.1.12/Chart.yaml b/stable/webp-server/4.1.13/Chart.yaml similarity index 98% rename from stable/webp-server/4.1.12/Chart.yaml rename to stable/webp-server/4.1.13/Chart.yaml index d7706db9fb1..8767e66891e 100644 --- a/stable/webp-server/4.1.12/Chart.yaml +++ b/stable/webp-server/4.1.13/Chart.yaml @@ -39,4 +39,4 @@ sources: - https://github.com/truecharts/charts/tree/master/charts/stable/webp-server - https://hub.docker.com/r/webpsh/webps type: application -version: 4.1.12 +version: 4.1.13 diff --git a/stable/webp-server/4.1.12/README.md b/stable/webp-server/4.1.13/README.md similarity index 100% rename from stable/webp-server/4.1.12/README.md rename to stable/webp-server/4.1.13/README.md diff --git a/stable/webp-server/4.1.13/app-changelog.md b/stable/webp-server/4.1.13/app-changelog.md new file mode 100644 index 00000000000..fd22a0f478e --- /dev/null +++ b/stable/webp-server/4.1.13/app-changelog.md @@ -0,0 +1,9 @@ + + +## [webp-server-4.1.13](https://github.com/truecharts/charts/compare/webp-server-4.1.12...webp-server-4.1.13) (2024-02-12) + +### Chore + + + +- update container image webpsh/webps to latest[@b5d59f3](https://github.com/b5d59f3) by renovate ([#18114](https://github.com/truecharts/charts/issues/18114)) \ No newline at end of file diff --git a/stable/webp-server/4.1.12/app-readme.md b/stable/webp-server/4.1.13/app-readme.md similarity index 100% rename from stable/webp-server/4.1.12/app-readme.md rename to stable/webp-server/4.1.13/app-readme.md diff --git a/stable/webp-server/4.1.13/charts/common-17.2.30.tgz b/stable/webp-server/4.1.13/charts/common-17.2.30.tgz new file mode 100644 index 0000000000000000000000000000000000000000..a6cb126e1b283d49dc218680d9b1047e66af30f3 GIT binary patch literal 98054 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%0AIfL=!jZC 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 tJ6Yu~*;FIb@G=`MgUep6of};?E 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%0DK5lRM<-l2d&_56tFfI;Cr|eU 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 Re*gdg|NqdaNH_pY3;-e0QZ4`h literal 0 HcmV?d00001 diff --git a/stable/webp-server/4.1.12/ix_values.yaml b/stable/webp-server/4.1.13/ix_values.yaml similarity index 88% rename from stable/webp-server/4.1.12/ix_values.yaml rename to stable/webp-server/4.1.13/ix_values.yaml index 15da649df6d..5572959e6c3 100644 --- a/stable/webp-server/4.1.12/ix_values.yaml +++ b/stable/webp-server/4.1.13/ix_values.yaml @@ -1,7 +1,7 @@ image: pullPolicy: IfNotPresent repository: webpsh/webps - tag: latest@sha256:ae3dedf659be24dce8a1d732d25d0fcfeaabfee3fe3df3b0fbcb75e5c3ba01f0 + tag: latest@sha256:b5d59f3d5f9a20f74252d9c8de792eeb8277b35a2b476601f1afabb44d8c1b3f persistence: storagecache: enabled: true diff --git a/stable/webp-server/4.1.12/questions.yaml b/stable/webp-server/4.1.13/questions.yaml similarity index 99% rename from stable/webp-server/4.1.12/questions.yaml rename to stable/webp-server/4.1.13/questions.yaml index 77f24a9f5d9..260c0022269 100644 --- a/stable/webp-server/4.1.12/questions.yaml +++ b/stable/webp-server/4.1.13/questions.yaml @@ -23,6 +23,8 @@ groups: description: Metrics - name: Addons description: Addon Configuration + - name: Backup Configuration + description: Configure Velero Backup Schedule - name: Advanced description: Advanced Configuration - name: Postgresql diff --git a/stable/webp-server/4.1.13/templates/common.yaml b/stable/webp-server/4.1.13/templates/common.yaml new file mode 100644 index 00000000000..78d963fb168 --- /dev/null +++ b/stable/webp-server/4.1.13/templates/common.yaml @@ -0,0 +1,2 @@ +{{/* Render the templates */}} +{{ include "tc.v1.common.loader.all" . }} diff --git a/stable/webp-server/4.1.13/values.yaml b/stable/webp-server/4.1.13/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/znc/8.1.16/app-changelog.md b/stable/znc/8.1.16/app-changelog.md deleted file mode 100644 index 41d70ec802f..00000000000 --- a/stable/znc/8.1.16/app-changelog.md +++ /dev/null @@ -1,9 +0,0 @@ - - -## [znc-8.1.16](https://github.com/truecharts/charts/compare/znc-8.1.15...znc-8.1.16) (2024-02-05) - -### Chore - - - -- update container image ghcr.io/linuxserver/znc to 1.8.2[@ff4849a](https://github.com/ff4849a) by renovate ([#17871](https://github.com/truecharts/charts/issues/17871)) \ No newline at end of file diff --git a/stable/znc/8.1.16/CHANGELOG.md b/stable/znc/8.1.17/CHANGELOG.md similarity index 90% rename from stable/znc/8.1.16/CHANGELOG.md rename to stable/znc/8.1.17/CHANGELOG.md index 2a7678ae170..400b37a2604 100644 --- a/stable/znc/8.1.16/CHANGELOG.md +++ b/stable/znc/8.1.17/CHANGELOG.md @@ -7,6 +7,15 @@ title: Changelog +## [znc-8.1.17](https://github.com/truecharts/charts/compare/znc-8.1.16...znc-8.1.17) (2024-02-12) + +### Chore + + + +- update container image ghcr.io/linuxserver/znc to 1.8.2[@db13109](https://github.com/db13109) by renovate ([#18082](https://github.com/truecharts/charts/issues/18082)) + + ## [znc-8.1.16](https://github.com/truecharts/charts/compare/znc-8.1.15...znc-8.1.16) (2024-02-05) ### Chore @@ -88,12 +97,3 @@ title: Changelog - update container image ghcr.io/linuxserver/znc to 1.8.2[@d00451a](https://github.com/d00451a) by renovate ([#17155](https://github.com/truecharts/charts/issues/17155)) - - -## [znc-8.1.7](https://github.com/truecharts/charts/compare/znc-8.1.6...znc-8.1.7) (2024-01-09) - -### Chore - - - -- update container image common to v17.2.22[@e7c9056](https://github.com/e7c9056) by renovate ([#16986](https://github.com/truecharts/charts/issues/16986)) diff --git a/stable/znc/8.1.16/Chart.yaml b/stable/znc/8.1.17/Chart.yaml similarity index 98% rename from stable/znc/8.1.16/Chart.yaml rename to stable/znc/8.1.17/Chart.yaml index db14ea6d4a2..0c4a70246bf 100644 --- a/stable/znc/8.1.16/Chart.yaml +++ b/stable/znc/8.1.17/Chart.yaml @@ -32,4 +32,4 @@ sources: - https://github.com/truecharts/charts/tree/master/charts/stable/znc - https://ghcr.io/linuxserver/znc type: application -version: 8.1.16 +version: 8.1.17 diff --git a/stable/znc/8.1.16/README.md b/stable/znc/8.1.17/README.md similarity index 100% rename from stable/znc/8.1.16/README.md rename to stable/znc/8.1.17/README.md diff --git a/stable/znc/8.1.17/app-changelog.md b/stable/znc/8.1.17/app-changelog.md new file mode 100644 index 00000000000..3c63dcf5782 --- /dev/null +++ b/stable/znc/8.1.17/app-changelog.md @@ -0,0 +1,9 @@ + + +## [znc-8.1.17](https://github.com/truecharts/charts/compare/znc-8.1.16...znc-8.1.17) (2024-02-12) + +### Chore + + + +- update container image ghcr.io/linuxserver/znc to 1.8.2[@db13109](https://github.com/db13109) by renovate ([#18082](https://github.com/truecharts/charts/issues/18082)) \ No newline at end of file diff --git a/stable/znc/8.1.16/app-readme.md b/stable/znc/8.1.17/app-readme.md similarity index 100% rename from stable/znc/8.1.16/app-readme.md rename to stable/znc/8.1.17/app-readme.md diff --git a/stable/znc/8.1.17/charts/common-17.2.30.tgz b/stable/znc/8.1.17/charts/common-17.2.30.tgz new file mode 100644 index 0000000000000000000000000000000000000000..a6cb126e1b283d49dc218680d9b1047e66af30f3 GIT binary patch literal 98054 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%0AIfL=!jZC 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 tJ6Yu~*;FIb@G=`MgUep6of};?E z=<_j=9QbVWjD40(lzN^ZQS0>6(M%dmMg^{4Xh4ZP8^Kn~GzT}QGUutUE>Az4ToTrL z^vmhn)9cfdD@Jy~KPxsG?i8ZOayr^lj49ub(lCOZJ1W~V)njgllv`oPCbpd^!su4Ep9c6|e&Oys?9 zy`=9lNY@{L$=DRhC@(^p!d!|?rjw15Bm5r2j53z;B6L}kGA*#)hrE!RAvK~Ismhlc zgEBpc_g5#ExAQ}p8v@~o0>tatK)k*@e}8d1KNu&3l1YY8{_7Q)QW^9^x{%HDw}6P08+1 zVy&UZqSj)~H4A_0>_5@a@53t?!yrd9gnp$@js0h9e{08#|FXZky8pS9N3;JBX^9TF z63AmQrXXz^{S@{fqeqMO3!>o9nODCw*AxmZYnD0y(2^r9f2uwQ}Oc9Q9lsS?iH1?<| z@KNC1%!pC$_ZNdo?)PWKAsxl>1&X6!Qf6+HL+ur1J>Z@8&QN}lK@5|;GWjB@5JA<- zrC0Ti;s<|%iGBdbN;pcV$;ySdY+`zgpF+a|V3SDia(=6ptO5@go>gW*N#m~|N7Rrt zk1$cU|Hn}e29scp?B5OI|L*Ub`~T+lD*yLV9&P`ZgT0tdUxNE7HhiTwi{9)92;Hkp zFU{apPIL$_ML568{Vdm59nDgyR)C*j-~n%t=PCaOdsezmRU{}zT4jS=Ya{5qWdHCz zng;gK%{UgjCB=DHX1nAmak>E?377`FRpqF>W%_S}dz@l-D|*?{5)4o0RH5QdvkjY8 zuW}4@3aY5EVV<9uEdB9R#N;iTD7olLR}dfm;$~`LQnk9pXRFz(MiIpVcI3z)G&Bb& z^SJQpEmm`jUpoX}K@ue)OmeVgc9Z+7mW~u(hR*djTMr40*U;rW^=O?mJ=IGN)xHnA z#p+qiQz!qWD9h&!09hCRWovKS^#9r3S;>D(c{KTt4)y}0e^Gcph49CF@;Kg~7-r)r zfM@;?zLdWT$;&=7rv-E!JVhb1@Ic2!Z*e{$YDO6FES;TB$2#59G3fA;y7a=}e zXg-iit`dyJ4KMezKFl?9l(I{9Ux1?|q$lL`WR7>q3h}~ai%QU{z)R>Ov%K3^2{igS zZmO4vaL~L?FDR3sf+7)?cRh%}#k-bf(NLOKjh-2ZU+|)fL%aOyaDjsgT9*{~v`slV zU$Q@y39F9^<0>XvYjSb9=dDH3n#rr9F3{0tuS&Z{6SxFs)eP2VvFu{`TsG!&c`I5P zhmx6GLEDn(3yuj=I=36nZ>`hLSzb2Nozr}=eKPJ!Ig2Wjqhtj6enJMzJppZ89cxz> zx*%}Ky0J!|eo?%qlmfJI8>-8jbwyZ|SDQE(l*I^_sP z$z&AA(=W2BO~|OApO|-Ffa_64J$VQYXE1+2**!qXOAzHCpzb?Zq6hp@j)s075si34 zopy3wJIZNtLx6g{!a<{O8XI=N70h$d4h053r*RZSc}$&FNyouM6vtXE+M8>-tN0lN zI41=HA4AMsJ0!43Z83aFo!sDOf0)MbC7F2>G-9sAKDa)-c3e0tnMX-naponHgL*CS%KLjIS) z$Fd0TG93wujsS{T)2BJ}jvl}`#Y{MtcA4MW0aAt1@(GdWPfUv>8E;X^?$Z0 zf0!o?P@VtB_V%8c|95Y1b^m86kI4Tc9MOL9aTF{r4UkZu%~>>y_dMMKrc&DNRvT;R zHCn!O`b(lb^5f_aXapl==Q=(Xx|^Ysi_a%qJuy`u3j8$!Xsp>SV4`0R;+j~(w6H>0 zHGIj5Dwo2bqc|M4wdBI5JzdfjT9aiOP(AZZ#melHBA%;u14}V-=m@Hpt#CFe>Ug|{ z*8=Nn)^JNUL*uYQ7J}lZJ z0vg%kV&sSJuw-p3WQu}>i@1$rf{6)s2|tY@BC6ydhCa?I#uhd_4_}%gL57LRPXy zN3;K5(7|5RmQP^)9L9g%l|{RKP`E_rS4|^vG=>Sp*aIHfq9Xn`nWgzC)!jfSfNR4S zM6;?0Q%gTf1CO7)w_HwsnjMbLf@-eqa)MwLtCA4v0kTyBv~@v)Iz||It^{JPbXQGW zA~-8^g>uy(Rv066`?tXUCI8zJy9z>}+f4OG@ z1*RS>(5 z1lO8v&``Hb0TKu#7br+p^!o>uCyO2}N~|=cN?NA)rAnT;7@-4p`STTo=`l(t?)aJ| zJEnkPiVp7hFF1t(C@z_gVfK(kIb@rxI6uy{nIpGZ`I=$-4rYB=Kqx-D+AFz5L36(p zLUY9Ic&}jWPp)8ql90&GWUC!z@OqFzJV0?s;ADF{5MmRcgb{`o^=jp5O_XxX zK6a!lyWuE7Dw-42sAYa8Rm>h3Rm{(%iax=O3i?MMUM@lZiJvou5K#Q+l&#Ltqi>$dt!SQLHFgE@|my zq-asRc1uyk_bOnnU3;pKNn^(ua6#Du3oc7$@Y4w593MObAV^0CJiNAmCO&t9bi`bf zhH!|oNohIu8K?(XO0hT^MmgP=*k1?FbX$;Fk~hm_+6y1!DCvWZm&_A}`S;Li7v(R( z5c<^fXq3>p#W|YjR>z$psq8WyY^K?%tzm~H_fw{xuyy%2<#}Cg8KM+Q&24HlG8Ezr~Smx(C zlF>mNaVKe(;zANpN1`Mpo8|i;yg`_gJjXE|KFD0w2iN;T-oWUE6sZBtV znXID9ODLjq;6s5vz*PAS19>Q4tO|R z91LJMiXqq_TbU!hb<_j>oEtjEEwCX@W9a>BmRfNBG=j=xG`MQTFgSu(HgM}^`!jdb zgIEdunIkat^I!mckotKJvjzDh&LWOZv4zW8yrk?8TemZA(POtCqozDKxxo*~dweuSqopv`1udeP3@b2VYX@#@1iw|3`)Cv@dKBRJhJ2#gX z5b?tMpY@IZ{_oDm&Gz4JzS94H+-U#p=0$6ryd{5r9sZ-WX6M=Rn0!hgDAm?Ko?KkN ze)r}k`o~vDU;TUQA8WdY1k5s&y~F)-)D-mAFJeDRz-f}hK3&?d-vOJgmtg(Z82LGW zvC-Kjuiiy*M5KTAa(826*m5TbE0AAjnT=t{r1_KXMfbY1lz_VlSwg(b#?}rgbn-bx2@$0E>+K!5*V6q!E( zA6gE{Ebw#KN12-PTxeUKlD_|U7MItLF#>)V0*`4h9$+q+J@5d*gP-I~uw{OU^iF^& z78R}`ipDCCn8B{CuO1C5kz)2mf>prRLRX0(lYyJPgoZlJ+l zQ02>Gj=UV-mfH$(tj-#f4wgHPs-?@C#u;kUQ7{nsAdsQ099% z+r5N@ue*pF;N)@6CE=y-Xhne&VXhnzMM%-wZ@II>H96fd=ZTrIlk99g6vya+G}}Yj z(9f|u))_tbVIfgi0!zVvIraw54gss`_L%)QHpx)U;HO7wB2oR)4Ffw*`bTGfhA^lTmm0UD+k8R|tb^`#`crd3HV##~d?0}U1! zrLws976pDhKsfhU)mZ!%jn_1qvVVc;$`JUee;3739zl9~Qka*5VonuBIz$zqF#Iq) zFeU2RN&vJg&MdxYch*S*;Ny)Wcz-p9VTMu$f&A4N$D-OaNYW;3ENyGau~?W(=h~G# z;fLqnYVQ_(%u9s(i(<0yc(1$S+X z;t|hYKiw|ND!xObB=1C6#E6m0$)JjhP8O~%!dIlla8b^!e86AQEF~;H z1C0?egnq&UUFgAc20jLU0(^|4K2d}jNnMJtxkzR_foXc|&@daB2D#Z0KrPJjds6cY zeU&~W)x8uLoR49aMIm?4RgMH5ty|%RjV5$%q@e2dL{SQKDri*P>&G+#$pZw#s6WU_ z!BNVPqESq^*~RbWFatxv8RR;dNta0)0vxC~Gew3+WKm2 z9d9%)&(^xE(A4&=5~iZZMprzy^0^3BV_d`>n~fUk(Gc=`GM=Vod+(C~B@Ak1+L9X0UA8-Y29su8Z+=&lqfvu# zb%vQKZ51vDuX-azW2dhg5($9DECDFtGhSj^;wIK~ZmX7rnP;{NWQuv6!(n=^>9brd zk^WO&d1PG~ny18dNe^Fuviy>A(uQ_QmT1qGV0olW3ahc9QtxNWSd-NIN+Q^a(F0hI z#qA>PeTyBl8yZp}R6qDhPCZ%fq9g=93*q;_4{0rW5`K1aef!Jl*{j>DlgkgM$40u< zH9riGd9v;*dsvmM>8VYeemFky1Xy!B5UuH+Ui_tJVp=xIE4EmDYI}YdN?giCeG2j& z!nu|*lc<^5C@IovMi|_|z#m~qlu@E{<_H7>^pH>hj9cHq9?BrV4^bWrqNGpC_zB7f zFaskDGZv-rEzB_;96f?0QNxaZJOBL*1b#|Nx)KPN3%bDcx^r#Qr3S?a`*$(C+B=>x z3wsrR(4kMWy*EO)*!i3Ft}X_}6lFT^XI=(&saB_Kh`l@7wFMNrYNYu2d7iP%PyrUcrUDB}LcD-nfV`|!?@D{$N z6gipn$L%d4R|Z9)nWqu$z1y$I4F24i$%%+GfTMnLHGe(m@^t4+cgz3qr zksq^7?R^q`5`#AD*iGHXQ4)P3db_KKieOwZj&6ZV(d8DB(r>D#&i^Ba*)U3Gjr_`< zy7;e~o4e-y&)v;c{I{h%dj8*HuorW5r~v#a4hyyZEc$p*rGBAx4I##UA71$RzyqFF zyb#G%b*Eg*6t6;6c@izyQJ|YLLb0{0Aas1z^`KWZyO-W%kw{i;HD#|44&AV=qI$O2 zU!xd$!26X4EV)K+Q6HZtCs~Fv*Rh`wfU7h|>@*^Q$}zRRPHSK(GQ_4@QdlQ_n++PD zGoq&@qvf^=6yTP>ORb*Adg}In<*0h*5D+!~pS%0p8&>}Rjg|lBQXXypR|b25S>P0? zKZOvW^=HvSz!=4BvAOO-uLUTCS1=pH?6jYt42ITi9hCH<{?Jc7;9(eKF!z8r4sz$s zot2xB_klUGu)&-TlSuDh>+|OZe6koyIaO@G+P33LVAzkfq-gGg{0+@Hl0lkSu zCLE>{&JmtpN7Z@L+A9Ef>b2~Wew9pchij5tC_kY4RfVe+>r&fxiz@hnZnP`jyQ?q2 zS&DNDmEcOV1(@y&A_bHAVBT{wL{kaLqmxfjCFG}${8FM^IKko3of8;;KMg3>euh%N zFVt5Tf<*zBqN19e9X+cuSzV}1*6Cm-;oNvNdY4$LG$#Y>MW2D!^;{TLThU5TQV^lH z*K=Q_sPaJ%Weq=n70Gqhgcx6@7tAI8A!Mlz{1xWq43B!6@yU{d!iy16S2y10Ic zyx2Ald7HS3i@U(w*BKK9q{xRyCXbIL>QRr4c}m{%)PT;gK()K51GQq_tC>WtViK>S zl&5(rRrycOg^baRHnD5=c}ELkZI;1zLKLgs4N~%i0w(o9tOe_kB1&nZFaaBNJ*1X> zb%bZERYEHr#WBlS%j3RbKs5Lig}AFYQIN^Ss+)CXQp}-$4*`Y=hBQefQ4Aajpd2g0 z07#XUYJEnVT)eAR{G#p)a0PP^jBt*IfUX#nP(O_nX2S?$>YZK^TuD{E+zN{U$ZNTf zCWS7P)-1zveH~|J>WYpxUUXtx?$VdI`+RJ3v?rSznjaWww`pyQ;@`NZQ zVB!3wA=cnPt8m)VC^=J)6y4eGTRHl*SUU1&x^n%0DK5lRM<-l2d&_56tFfI;Cr|eU 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 Re*gdg|NqdaNH_pY3;-e0QZ4`h literal 0 HcmV?d00001 diff --git a/stable/znc/8.1.16/ix_values.yaml b/stable/znc/8.1.17/ix_values.yaml similarity index 82% rename from stable/znc/8.1.16/ix_values.yaml rename to stable/znc/8.1.17/ix_values.yaml index 118457cfc32..378708db0f7 100644 --- a/stable/znc/8.1.16/ix_values.yaml +++ b/stable/znc/8.1.17/ix_values.yaml @@ -1,7 +1,7 @@ image: repository: ghcr.io/linuxserver/znc pullPolicy: IfNotPresent - tag: 1.8.2@sha256:ff4849a0e1f4323fda1e52800c8bd53f7be6657ab0ccb6055e1b324dc9077344 + tag: 1.8.2@sha256:db13109df31b57dbbb6d79c7092851917c2a88d42a208c358f89c3dbdc7dbd55 service: main: ports: diff --git a/stable/znc/8.1.16/questions.yaml b/stable/znc/8.1.17/questions.yaml similarity index 99% rename from stable/znc/8.1.16/questions.yaml rename to stable/znc/8.1.17/questions.yaml index 35239a6c255..a566a5060e8 100644 --- a/stable/znc/8.1.16/questions.yaml +++ b/stable/znc/8.1.17/questions.yaml @@ -23,6 +23,8 @@ groups: description: Metrics - name: Addons description: Addon Configuration + - name: Backup Configuration + description: Configure Velero Backup Schedule - name: Advanced description: Advanced Configuration - name: Postgresql diff --git a/stable/znc/8.1.17/templates/NOTES.txt b/stable/znc/8.1.17/templates/NOTES.txt new file mode 100644 index 00000000000..efcb74cb772 --- /dev/null +++ b/stable/znc/8.1.17/templates/NOTES.txt @@ -0,0 +1 @@ +{{- include "tc.v1.common.lib.chart.notes" $ -}} diff --git a/stable/znc/8.1.17/templates/common.yaml b/stable/znc/8.1.17/templates/common.yaml new file mode 100644 index 00000000000..b51394e00a4 --- /dev/null +++ b/stable/znc/8.1.17/templates/common.yaml @@ -0,0 +1 @@ +{{ include "tc.v1.common.loader.all" . }} diff --git a/stable/znc/8.1.17/values.yaml b/stable/znc/8.1.17/values.yaml new file mode 100644 index 00000000000..e69de29bb2d