From a55d58eca0fa8c42a85957484dfa888e9fa073eb Mon Sep 17 00:00:00 2001 From: TrueCharts-Bot Date: Mon, 12 Feb 2024 12:33:07 +0000 Subject: [PATCH] Commit new Chart releases for TrueCharts Signed-off-by: TrueCharts-Bot --- stable/clamav/9.1.16/app-changelog.md | 9 - stable/clamav/{9.1.16 => 9.1.17}/CHANGELOG.md | 18 +- stable/clamav/{9.1.16 => 9.1.17}/Chart.yaml | 4 +- stable/clamav/{9.1.16 => 9.1.17}/README.md | 0 stable/clamav/9.1.17/app-changelog.md | 9 + .../clamav/{9.1.16 => 9.1.17}/app-readme.md | 0 .../charts/common-17.2.30.tgz | Bin .../clamav/{9.1.16 => 9.1.17}/ix_values.yaml | 2 +- .../clamav/{9.1.16 => 9.1.17}/questions.yaml | 2 + .../{9.1.16 => 9.1.17}/templates/NOTES.txt | 0 .../{9.1.16 => 9.1.17}/templates/_cronjob.tpl | 0 .../{9.1.16 => 9.1.17}/templates/common.yaml | 0 stable/clamav/{9.1.16 => 9.1.17}/values.yaml | 0 stable/invidious/8.1.13/app-changelog.md | 9 - .../invidious/{8.1.13 => 8.1.14}/CHANGELOG.md | 18 +- .../invidious/{8.1.13 => 8.1.14}/Chart.yaml | 2 +- stable/invidious/{8.1.13 => 8.1.14}/LICENSE | 0 stable/invidious/{8.1.13 => 8.1.14}/README.md | 0 stable/invidious/8.1.14/app-changelog.md | 9 + .../{8.1.13 => 8.1.14}/app-readme.md | 0 .../charts/common-17.2.30.tgz | Bin .../{8.1.13 => 8.1.14}/ix_values.yaml | 2 +- .../{8.1.13 => 8.1.14}/questions.yaml | 2 + .../{8.1.13 => 8.1.14}/templates/_config.tpl | 0 .../{8.1.13 => 8.1.14}/templates/common.yaml | 0 .../invidious/{8.1.13 => 8.1.14}/values.yaml | 0 stable/nextcloud/28.1.43/CHANGELOG.md | 99 + stable/nextcloud/28.1.43/Chart.yaml | 53 + stable/nextcloud/28.1.43/LICENSE | 106 + stable/nextcloud/28.1.43/README.md | 28 + stable/nextcloud/28.1.43/app-changelog.md | 9 + stable/nextcloud/28.1.43/app-readme.md | 8 + .../28.1.43}/charts/common-17.2.30.tgz | Bin .../28.1.43/charts/redis-11.1.16.tgz | Bin 0 -> 104121 bytes stable/nextcloud/28.1.43/ix_values.yaml | 516 ++ stable/nextcloud/28.1.43/questions.yaml | 4171 +++++++++++++++++ .../28.1.43}/templates/NOTES.txt | 0 .../28.1.43/templates/_configmap.tpl | 443 ++ .../nextcloud/28.1.43/templates/_cronjobs.tpl | 34 + .../28.1.43/templates/_ingressInjector.tpl | 23 + .../28.1.43/templates/_initPerms.tpl | 29 + .../28.1.43/templates/_validation.tpl | 42 + .../28.1.43/templates/_waitNextcloud.tpl | 25 + .../nextcloud/28.1.43/templates/common.yaml | 92 + .../7.1.15 => nextcloud/28.1.43}/values.yaml | 0 stable/posterr/7.1.15/app-changelog.md | 9 - .../posterr/{7.1.15 => 7.1.16}/CHANGELOG.md | 18 +- stable/posterr/{7.1.15 => 7.1.16}/Chart.yaml | 2 +- stable/posterr/{7.1.15 => 7.1.16}/README.md | 0 stable/posterr/7.1.16/app-changelog.md | 9 + .../posterr/{7.1.15 => 7.1.16}/app-readme.md | 0 .../posterr/7.1.16/charts/common-17.2.30.tgz | Bin 0 -> 98054 bytes .../posterr/{7.1.15 => 7.1.16}/ix_values.yaml | 2 +- .../posterr/{7.1.15 => 7.1.16}/questions.yaml | 0 stable/posterr/7.1.16/templates/NOTES.txt | 1 + .../{7.1.15 => 7.1.16}/templates/common.yaml | 0 stable/posterr/7.1.16/values.yaml | 0 stable/quassel-core/10.1.17/CHANGELOG.md | 99 + stable/quassel-core/10.1.17/Chart.yaml | 35 + stable/quassel-core/10.1.17/README.md | 28 + stable/quassel-core/10.1.17/app-changelog.md | 9 + stable/quassel-core/10.1.17/app-readme.md | 8 + .../10.1.17/charts/common-17.2.30.tgz | Bin 0 -> 98054 bytes stable/quassel-core/10.1.17/ix_values.yaml | 61 + stable/quassel-core/10.1.17/questions.yaml | 3052 ++++++++++++ .../quassel-core/10.1.17/templates/NOTES.txt | 1 + .../10.1.17/templates/common.yaml | 1 + stable/quassel-core/10.1.17/values.yaml | 0 68 files changed, 9038 insertions(+), 61 deletions(-) delete mode 100644 stable/clamav/9.1.16/app-changelog.md rename stable/clamav/{9.1.16 => 9.1.17}/CHANGELOG.md (90%) rename stable/clamav/{9.1.16 => 9.1.17}/Chart.yaml (96%) rename stable/clamav/{9.1.16 => 9.1.17}/README.md (100%) create mode 100644 stable/clamav/9.1.17/app-changelog.md rename stable/clamav/{9.1.16 => 9.1.17}/app-readme.md (100%) rename stable/clamav/{9.1.16 => 9.1.17}/charts/common-17.2.30.tgz (100%) rename stable/clamav/{9.1.16 => 9.1.17}/ix_values.yaml (95%) rename stable/clamav/{9.1.16 => 9.1.17}/questions.yaml (99%) rename stable/clamav/{9.1.16 => 9.1.17}/templates/NOTES.txt (100%) rename stable/clamav/{9.1.16 => 9.1.17}/templates/_cronjob.tpl (100%) rename stable/clamav/{9.1.16 => 9.1.17}/templates/common.yaml (100%) rename stable/clamav/{9.1.16 => 9.1.17}/values.yaml (100%) delete mode 100644 stable/invidious/8.1.13/app-changelog.md rename stable/invidious/{8.1.13 => 8.1.14}/CHANGELOG.md (89%) rename stable/invidious/{8.1.13 => 8.1.14}/Chart.yaml (98%) rename stable/invidious/{8.1.13 => 8.1.14}/LICENSE (100%) rename stable/invidious/{8.1.13 => 8.1.14}/README.md (100%) create mode 100644 stable/invidious/8.1.14/app-changelog.md rename stable/invidious/{8.1.13 => 8.1.14}/app-readme.md (100%) rename stable/invidious/{8.1.13 => 8.1.14}/charts/common-17.2.30.tgz (100%) rename stable/invidious/{8.1.13 => 8.1.14}/ix_values.yaml (97%) rename stable/invidious/{8.1.13 => 8.1.14}/questions.yaml (99%) rename stable/invidious/{8.1.13 => 8.1.14}/templates/_config.tpl (100%) rename stable/invidious/{8.1.13 => 8.1.14}/templates/common.yaml (100%) rename stable/invidious/{8.1.13 => 8.1.14}/values.yaml (100%) create mode 100644 stable/nextcloud/28.1.43/CHANGELOG.md create mode 100644 stable/nextcloud/28.1.43/Chart.yaml create mode 100644 stable/nextcloud/28.1.43/LICENSE create mode 100644 stable/nextcloud/28.1.43/README.md create mode 100644 stable/nextcloud/28.1.43/app-changelog.md create mode 100644 stable/nextcloud/28.1.43/app-readme.md rename stable/{posterr/7.1.15 => nextcloud/28.1.43}/charts/common-17.2.30.tgz (100%) create mode 100644 stable/nextcloud/28.1.43/charts/redis-11.1.16.tgz create mode 100644 stable/nextcloud/28.1.43/ix_values.yaml create mode 100644 stable/nextcloud/28.1.43/questions.yaml rename stable/{posterr/7.1.15 => nextcloud/28.1.43}/templates/NOTES.txt (100%) create mode 100644 stable/nextcloud/28.1.43/templates/_configmap.tpl create mode 100644 stable/nextcloud/28.1.43/templates/_cronjobs.tpl create mode 100644 stable/nextcloud/28.1.43/templates/_ingressInjector.tpl create mode 100644 stable/nextcloud/28.1.43/templates/_initPerms.tpl create mode 100644 stable/nextcloud/28.1.43/templates/_validation.tpl create mode 100644 stable/nextcloud/28.1.43/templates/_waitNextcloud.tpl create mode 100644 stable/nextcloud/28.1.43/templates/common.yaml rename stable/{posterr/7.1.15 => nextcloud/28.1.43}/values.yaml (100%) delete mode 100644 stable/posterr/7.1.15/app-changelog.md rename stable/posterr/{7.1.15 => 7.1.16}/CHANGELOG.md (90%) rename stable/posterr/{7.1.15 => 7.1.16}/Chart.yaml (98%) rename stable/posterr/{7.1.15 => 7.1.16}/README.md (100%) create mode 100644 stable/posterr/7.1.16/app-changelog.md rename stable/posterr/{7.1.15 => 7.1.16}/app-readme.md (100%) create mode 100644 stable/posterr/7.1.16/charts/common-17.2.30.tgz rename stable/posterr/{7.1.15 => 7.1.16}/ix_values.yaml (84%) rename stable/posterr/{7.1.15 => 7.1.16}/questions.yaml (100%) create mode 100644 stable/posterr/7.1.16/templates/NOTES.txt rename stable/posterr/{7.1.15 => 7.1.16}/templates/common.yaml (100%) create mode 100644 stable/posterr/7.1.16/values.yaml create mode 100644 stable/quassel-core/10.1.17/CHANGELOG.md create mode 100644 stable/quassel-core/10.1.17/Chart.yaml create mode 100644 stable/quassel-core/10.1.17/README.md create mode 100644 stable/quassel-core/10.1.17/app-changelog.md create mode 100644 stable/quassel-core/10.1.17/app-readme.md create mode 100644 stable/quassel-core/10.1.17/charts/common-17.2.30.tgz create mode 100644 stable/quassel-core/10.1.17/ix_values.yaml create mode 100644 stable/quassel-core/10.1.17/questions.yaml create mode 100644 stable/quassel-core/10.1.17/templates/NOTES.txt create mode 100644 stable/quassel-core/10.1.17/templates/common.yaml create mode 100644 stable/quassel-core/10.1.17/values.yaml diff --git a/stable/clamav/9.1.16/app-changelog.md b/stable/clamav/9.1.16/app-changelog.md deleted file mode 100644 index 7ec0f2d8cb9..00000000000 --- a/stable/clamav/9.1.16/app-changelog.md +++ /dev/null @@ -1,9 +0,0 @@ - - -## [clamav-9.1.16](https://github.com/truecharts/charts/compare/clamav-9.1.15...clamav-9.1.16) (2024-02-05) - -### Chore - - - -- update container image clamav/clamav to 1.2.1[@e22d570](https://github.com/e22d570) by renovate ([#17953](https://github.com/truecharts/charts/issues/17953)) \ No newline at end of file diff --git a/stable/clamav/9.1.16/CHANGELOG.md b/stable/clamav/9.1.17/CHANGELOG.md similarity index 90% rename from stable/clamav/9.1.16/CHANGELOG.md rename to stable/clamav/9.1.17/CHANGELOG.md index 034f463b579..b0c755ebd03 100644 --- a/stable/clamav/9.1.16/CHANGELOG.md +++ b/stable/clamav/9.1.17/CHANGELOG.md @@ -7,6 +7,15 @@ title: Changelog +## [clamav-9.1.17](https://github.com/truecharts/charts/compare/clamav-9.1.16...clamav-9.1.17) (2024-02-12) + +### Chore + + + +- update container image clamav/clamav to v1.2.2[@1277222](https://github.com/1277222) by renovate ([#18123](https://github.com/truecharts/charts/issues/18123)) + + ## [clamav-9.1.16](https://github.com/truecharts/charts/compare/clamav-9.1.15...clamav-9.1.16) (2024-02-05) ### Chore @@ -88,12 +97,3 @@ title: Changelog - update metadata in chart.yaml ([#17457](https://github.com/truecharts/charts/issues/17457)) - - -## [clamav-9.1.7](https://github.com/truecharts/charts/compare/clamav-9.1.6...clamav-9.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/clamav/9.1.16/Chart.yaml b/stable/clamav/9.1.17/Chart.yaml similarity index 96% rename from stable/clamav/9.1.16/Chart.yaml rename to stable/clamav/9.1.17/Chart.yaml index 70f53972410..10f9a01624c 100644 --- a/stable/clamav/9.1.16/Chart.yaml +++ b/stable/clamav/9.1.17/Chart.yaml @@ -7,7 +7,7 @@ annotations: truecharts.org/min_helm_version: "3.12" truecharts.org/train: stable apiVersion: v2 -appVersion: 1.2.1 +appVersion: 1.2.2 dependencies: - name: common version: 17.2.30 @@ -35,4 +35,4 @@ sources: - https://github.com/truecharts/charts/tree/master/charts/stable/clamav - https://hub.docker.com/r/clamav/clamav type: application -version: 9.1.16 +version: 9.1.17 diff --git a/stable/clamav/9.1.16/README.md b/stable/clamav/9.1.17/README.md similarity index 100% rename from stable/clamav/9.1.16/README.md rename to stable/clamav/9.1.17/README.md diff --git a/stable/clamav/9.1.17/app-changelog.md b/stable/clamav/9.1.17/app-changelog.md new file mode 100644 index 00000000000..9f0fddd6e17 --- /dev/null +++ b/stable/clamav/9.1.17/app-changelog.md @@ -0,0 +1,9 @@ + + +## [clamav-9.1.17](https://github.com/truecharts/charts/compare/clamav-9.1.16...clamav-9.1.17) (2024-02-12) + +### Chore + + + +- update container image clamav/clamav to v1.2.2[@1277222](https://github.com/1277222) by renovate ([#18123](https://github.com/truecharts/charts/issues/18123)) \ No newline at end of file diff --git a/stable/clamav/9.1.16/app-readme.md b/stable/clamav/9.1.17/app-readme.md similarity index 100% rename from stable/clamav/9.1.16/app-readme.md rename to stable/clamav/9.1.17/app-readme.md diff --git a/stable/clamav/9.1.16/charts/common-17.2.30.tgz b/stable/clamav/9.1.17/charts/common-17.2.30.tgz similarity index 100% rename from stable/clamav/9.1.16/charts/common-17.2.30.tgz rename to stable/clamav/9.1.17/charts/common-17.2.30.tgz diff --git a/stable/clamav/9.1.16/ix_values.yaml b/stable/clamav/9.1.17/ix_values.yaml similarity index 95% rename from stable/clamav/9.1.16/ix_values.yaml rename to stable/clamav/9.1.17/ix_values.yaml index 30648197142..8494008fcc6 100644 --- a/stable/clamav/9.1.16/ix_values.yaml +++ b/stable/clamav/9.1.17/ix_values.yaml @@ -1,7 +1,7 @@ image: repository: clamav/clamav pullPolicy: IfNotPresent - tag: 1.2.1@sha256:e22d570af92f48969f4b0af0a99f72cf80a3dccb5db596a9deb019a991bf1398 + tag: 1.2.2@sha256:12772225f7df2c0be3bb1c57d19cb96ec21c6979c62738735563da020a100c3a securityContext: container: readOnlyRootFilesystem: false diff --git a/stable/clamav/9.1.16/questions.yaml b/stable/clamav/9.1.17/questions.yaml similarity index 99% rename from stable/clamav/9.1.16/questions.yaml rename to stable/clamav/9.1.17/questions.yaml index a87c6e27882..2d8f55aeea3 100644 --- a/stable/clamav/9.1.16/questions.yaml +++ b/stable/clamav/9.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/clamav/9.1.16/templates/NOTES.txt b/stable/clamav/9.1.17/templates/NOTES.txt similarity index 100% rename from stable/clamav/9.1.16/templates/NOTES.txt rename to stable/clamav/9.1.17/templates/NOTES.txt diff --git a/stable/clamav/9.1.16/templates/_cronjob.tpl b/stable/clamav/9.1.17/templates/_cronjob.tpl similarity index 100% rename from stable/clamav/9.1.16/templates/_cronjob.tpl rename to stable/clamav/9.1.17/templates/_cronjob.tpl diff --git a/stable/clamav/9.1.16/templates/common.yaml b/stable/clamav/9.1.17/templates/common.yaml similarity index 100% rename from stable/clamav/9.1.16/templates/common.yaml rename to stable/clamav/9.1.17/templates/common.yaml diff --git a/stable/clamav/9.1.16/values.yaml b/stable/clamav/9.1.17/values.yaml similarity index 100% rename from stable/clamav/9.1.16/values.yaml rename to stable/clamav/9.1.17/values.yaml diff --git a/stable/invidious/8.1.13/app-changelog.md b/stable/invidious/8.1.13/app-changelog.md deleted file mode 100644 index 08e9f42d3fb..00000000000 --- a/stable/invidious/8.1.13/app-changelog.md +++ /dev/null @@ -1,9 +0,0 @@ - - -## [invidious-8.1.13](https://github.com/truecharts/charts/compare/invidious-8.1.12...invidious-8.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/invidious/8.1.13/CHANGELOG.md b/stable/invidious/8.1.14/CHANGELOG.md similarity index 89% rename from stable/invidious/8.1.13/CHANGELOG.md rename to stable/invidious/8.1.14/CHANGELOG.md index 9f17253b132..d8845177495 100644 --- a/stable/invidious/8.1.13/CHANGELOG.md +++ b/stable/invidious/8.1.14/CHANGELOG.md @@ -7,6 +7,15 @@ title: Changelog +## [invidious-8.1.14](https://github.com/truecharts/charts/compare/invidious-8.1.13...invidious-8.1.14) (2024-02-12) + +### Chore + + + +- update container image quay.io/invidious/invidious to latest[@3b2e106](https://github.com/3b2e106) by renovate ([#18215](https://github.com/truecharts/charts/issues/18215)) + + ## [invidious-8.1.13](https://github.com/truecharts/charts/compare/invidious-8.1.12...invidious-8.1.13) (2024-02-03) ### Chore @@ -88,12 +97,3 @@ title: Changelog - force bump to ensure up-to-date catalogs - - -## [invidious-8.1.4](https://github.com/truecharts/charts/compare/invidious-8.1.3...invidious-8.1.4) (2024-01-01) - -### Chore - - - -- increase common version for oci fixes diff --git a/stable/invidious/8.1.13/Chart.yaml b/stable/invidious/8.1.14/Chart.yaml similarity index 98% rename from stable/invidious/8.1.13/Chart.yaml rename to stable/invidious/8.1.14/Chart.yaml index 5b6562bca85..7fef12ccfb3 100644 --- a/stable/invidious/8.1.13/Chart.yaml +++ b/stable/invidious/8.1.14/Chart.yaml @@ -36,4 +36,4 @@ sources: - https://github.com/truecharts/charts/tree/master/charts/stable/invidious - https://quay.io/invidious/invidious type: application -version: 8.1.13 +version: 8.1.14 diff --git a/stable/invidious/8.1.13/LICENSE b/stable/invidious/8.1.14/LICENSE similarity index 100% rename from stable/invidious/8.1.13/LICENSE rename to stable/invidious/8.1.14/LICENSE diff --git a/stable/invidious/8.1.13/README.md b/stable/invidious/8.1.14/README.md similarity index 100% rename from stable/invidious/8.1.13/README.md rename to stable/invidious/8.1.14/README.md diff --git a/stable/invidious/8.1.14/app-changelog.md b/stable/invidious/8.1.14/app-changelog.md new file mode 100644 index 00000000000..057fa7ac184 --- /dev/null +++ b/stable/invidious/8.1.14/app-changelog.md @@ -0,0 +1,9 @@ + + +## [invidious-8.1.14](https://github.com/truecharts/charts/compare/invidious-8.1.13...invidious-8.1.14) (2024-02-12) + +### Chore + + + +- update container image quay.io/invidious/invidious to latest[@3b2e106](https://github.com/3b2e106) by renovate ([#18215](https://github.com/truecharts/charts/issues/18215)) \ No newline at end of file diff --git a/stable/invidious/8.1.13/app-readme.md b/stable/invidious/8.1.14/app-readme.md similarity index 100% rename from stable/invidious/8.1.13/app-readme.md rename to stable/invidious/8.1.14/app-readme.md diff --git a/stable/invidious/8.1.13/charts/common-17.2.30.tgz b/stable/invidious/8.1.14/charts/common-17.2.30.tgz similarity index 100% rename from stable/invidious/8.1.13/charts/common-17.2.30.tgz rename to stable/invidious/8.1.14/charts/common-17.2.30.tgz diff --git a/stable/invidious/8.1.13/ix_values.yaml b/stable/invidious/8.1.14/ix_values.yaml similarity index 97% rename from stable/invidious/8.1.13/ix_values.yaml rename to stable/invidious/8.1.14/ix_values.yaml index 855d4018c1a..5731635bfaf 100644 --- a/stable/invidious/8.1.13/ix_values.yaml +++ b/stable/invidious/8.1.14/ix_values.yaml @@ -1,7 +1,7 @@ image: repository: quay.io/invidious/invidious pullPolicy: IfNotPresent - tag: latest@sha256:fc25ef270edb96a4fc10c26073dca2dec231a9bdd804a35a84c44666f0f414ed + tag: latest@sha256:3b2e106bafb872bdf9e563ad2311e9ca9684ac54750a3cc70da0951ada210824 securityContext: container: readOnlyRootFilesystem: false diff --git a/stable/invidious/8.1.13/questions.yaml b/stable/invidious/8.1.14/questions.yaml similarity index 99% rename from stable/invidious/8.1.13/questions.yaml rename to stable/invidious/8.1.14/questions.yaml index 4346fdf6ba2..347207d932a 100644 --- a/stable/invidious/8.1.13/questions.yaml +++ b/stable/invidious/8.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/invidious/8.1.13/templates/_config.tpl b/stable/invidious/8.1.14/templates/_config.tpl similarity index 100% rename from stable/invidious/8.1.13/templates/_config.tpl rename to stable/invidious/8.1.14/templates/_config.tpl diff --git a/stable/invidious/8.1.13/templates/common.yaml b/stable/invidious/8.1.14/templates/common.yaml similarity index 100% rename from stable/invidious/8.1.13/templates/common.yaml rename to stable/invidious/8.1.14/templates/common.yaml diff --git a/stable/invidious/8.1.13/values.yaml b/stable/invidious/8.1.14/values.yaml similarity index 100% rename from stable/invidious/8.1.13/values.yaml rename to stable/invidious/8.1.14/values.yaml diff --git a/stable/nextcloud/28.1.43/CHANGELOG.md b/stable/nextcloud/28.1.43/CHANGELOG.md new file mode 100644 index 00000000000..69a08a892f0 --- /dev/null +++ b/stable/nextcloud/28.1.43/CHANGELOG.md @@ -0,0 +1,99 @@ +--- +title: Changelog +--- + +**Important:** +*for the complete changelog, please refer to the website* + + + +## [nextcloud-28.1.43](https://github.com/truecharts/charts/compare/nextcloud-28.1.42...nextcloud-28.1.43) (2024-02-12) + +### Chore + + + +- update container image clamav/clamav to v1.2.2[@1277222](https://github.com/1277222) by renovate ([#18123](https://github.com/truecharts/charts/issues/18123)) + + +## [nextcloud-28.1.42](https://github.com/truecharts/charts/compare/nextcloud-28.1.41...nextcloud-28.1.42) (2024-02-12) + +### Chore + + + +- update container image nginxinc/nginx-unprivileged to 1.25.3[@a0f8d9a](https://github.com/a0f8d9a) by renovate ([#18167](https://github.com/truecharts/charts/issues/18167)) + + +## [nextcloud-28.1.41](https://github.com/truecharts/charts/compare/nextcloud-28.1.40...nextcloud-28.1.41) (2024-02-12) + +### Chore + + + +- update container image nginxinc/nginx-unprivileged to 1.25.3[@190f524](https://github.com/190f524) by renovate ([#18100](https://github.com/truecharts/charts/issues/18100)) + + +## [nextcloud-28.1.40](https://github.com/truecharts/charts/compare/nextcloud-28.1.39...nextcloud-28.1.40) (2024-02-05) + +### Chore + + + +- update container image nginxinc/nginx-unprivileged to 1.25.3[@5c7c5f3](https://github.com/5c7c5f3) by renovate ([#17961](https://github.com/truecharts/charts/issues/17961)) + + +## [nextcloud-28.1.39](https://github.com/truecharts/charts/compare/nextcloud-28.1.38...nextcloud-28.1.39) (2024-02-05) + +### Chore + + + +- update container image clamav/clamav to 1.2.1[@e22d570](https://github.com/e22d570) by renovate ([#17953](https://github.com/truecharts/charts/issues/17953)) + + +## [nextcloud-28.1.38](https://github.com/truecharts/charts/compare/nextcloud-28.1.37...nextcloud-28.1.38) (2024-02-05) + +### Chore + + + +- update container image tccr.io/tccr/nextcloud-fpm to v28.0.2[@7e44e0f](https://github.com/7e44e0f) by renovate ([#17931](https://github.com/truecharts/charts/issues/17931)) + + +## [nextcloud-28.1.37](https://github.com/truecharts/charts/compare/nextcloud-28.1.36...nextcloud-28.1.37) (2024-02-03) + +### Chore + + + +- update container image clamav/clamav to 1.2.1[@283bb9e](https://github.com/283bb9e) by renovate ([#17796](https://github.com/truecharts/charts/issues/17796)) + + +## [nextcloud-28.1.36](https://github.com/truecharts/charts/compare/nextcloud-28.1.35...nextcloud-28.1.36) (2024-02-03) + +### Chore + + + +- update container image common to v17.2.30[@19ad5ec](https://github.com/19ad5ec) by renovate ([#17784](https://github.com/truecharts/charts/issues/17784)) + + +## [nextcloud-28.1.35](https://github.com/truecharts/charts/compare/nextcloud-28.1.34...nextcloud-28.1.35) (2024-02-03) + +### Chore + + + +- update container image tccr.io/tccr/nextcloud-push-notify to v0.6.9[@033c59b](https://github.com/033c59b) by renovate ([#17789](https://github.com/truecharts/charts/issues/17789)) + + +## [nextcloud-28.1.34](https://github.com/truecharts/charts/compare/nextcloud-28.1.33...nextcloud-28.1.34) (2024-02-02) + +### Chore + + + +- update container image tccr.io/tccr/nextcloud-fpm to v28.0.1[@d38190f](https://github.com/d38190f) by renovate ([#17782](https://github.com/truecharts/charts/issues/17782)) + + diff --git a/stable/nextcloud/28.1.43/Chart.yaml b/stable/nextcloud/28.1.43/Chart.yaml new file mode 100644 index 00000000000..8aff22f8cd1 --- /dev/null +++ b/stable/nextcloud/28.1.43/Chart.yaml @@ -0,0 +1,53 @@ +annotations: + max_scale_version: 23.10.2 + min_scale_version: 23.10.0 + truecharts.org/SCALE-support: "true" + truecharts.org/category: cloud + truecharts.org/max_helm_version: "3.14" + truecharts.org/min_helm_version: "3.12" + truecharts.org/train: stable +apiVersion: v2 +appVersion: 28.0.2 +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: A private cloud server that puts the control and security of your own data back into your hands. +home: https://truecharts.org/charts/stable/nextcloud +icon: https://truecharts.org/img/hotlink-ok/chart-icons/nextcloud.png +keywords: + - nextcloud + - storage + - http + - web + - php +kubeVersion: ">=1.24.0-0" +maintainers: + - name: TrueCharts + email: info@truecharts.org + url: https://truecharts.org +name: nextcloud +sources: + - https://github.com/nextcloud/docker + - https://github.com/nextcloud/helm + - https://github.com/truecharts/charts/tree/master/charts/stable/nextcloud + - https://github.com/truecharts/containers/tree/master/apps/nextcloud-fpm + - https://github.com/truecharts/containers/tree/master/apps/nextcloud-push-notify + - https://hub.docker.com/r/collabora/code + - https://github.com/truecharts/containers/tree/master/apps/nextcloud-imaginary + - https://hub.docker.com/r/clamav/clamav + - https://hub.docker.com/r/nginxinc/nginx-unprivileged +type: application +version: 28.1.43 diff --git a/stable/nextcloud/28.1.43/LICENSE b/stable/nextcloud/28.1.43/LICENSE new file mode 100644 index 00000000000..33a8cbb23f0 --- /dev/null +++ b/stable/nextcloud/28.1.43/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 "Blocky" 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/stable/nextcloud/28.1.43/README.md b/stable/nextcloud/28.1.43/README.md new file mode 100644 index 00000000000..a5d5bf5ecdf --- /dev/null +++ b/stable/nextcloud/28.1.43/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/nextcloud) + +**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/nextcloud/28.1.43/app-changelog.md b/stable/nextcloud/28.1.43/app-changelog.md new file mode 100644 index 00000000000..e2098e71394 --- /dev/null +++ b/stable/nextcloud/28.1.43/app-changelog.md @@ -0,0 +1,9 @@ + + +## [nextcloud-28.1.43](https://github.com/truecharts/charts/compare/nextcloud-28.1.42...nextcloud-28.1.43) (2024-02-12) + +### Chore + + + +- update container image clamav/clamav to v1.2.2[@1277222](https://github.com/1277222) by renovate ([#18123](https://github.com/truecharts/charts/issues/18123)) \ No newline at end of file diff --git a/stable/nextcloud/28.1.43/app-readme.md b/stable/nextcloud/28.1.43/app-readme.md new file mode 100644 index 00000000000..1369f69bf57 --- /dev/null +++ b/stable/nextcloud/28.1.43/app-readme.md @@ -0,0 +1,8 @@ +A private cloud server that puts the control and security of your own data back into your hands. + +This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/charts/stable/nextcloud](https://truecharts.org/charts/stable/nextcloud) + +--- + +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/posterr/7.1.15/charts/common-17.2.30.tgz b/stable/nextcloud/28.1.43/charts/common-17.2.30.tgz similarity index 100% rename from stable/posterr/7.1.15/charts/common-17.2.30.tgz rename to stable/nextcloud/28.1.43/charts/common-17.2.30.tgz diff --git a/stable/nextcloud/28.1.43/charts/redis-11.1.16.tgz b/stable/nextcloud/28.1.43/charts/redis-11.1.16.tgz new file mode 100644 index 0000000000000000000000000000000000000000..b071f7a40098fcd00ca23e06a4d6a5ac6bf3fb6a GIT binary patch literal 104121 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

AlS>V#)) zuGU#rBPa^{ardx9oG%RD6PN(y0~Nut8C(OUDg$Gy%mQvW1(YCM2B-=02D@!Qo}w$B zeYE@#3>O^Q`f7X~Z#FK^*Lq%|sqI@OOhu24u6SRS-xU>T)L>klVWy?6!sXyqZ=`7K^i@M53DB4&03~9^=a`nbi8YcC(BKgguv$^{QjR;tQI>7KRdbp{PXGA z>(5swmmf}#jdZIkei$B$WZhNvuqs*8Q=2&baD3uPu;z9kThl$g#7ob_v}}@BY_a;( z_WUr+aVZz|8OV1C6D?&XRWq|$Ql!<4Ft~w%Kf{nJqg3Z42m}*!moNaFTi?JD${@gZ z5eX(yGNxtx1d$2MzzoBTM=5*@31)+%N06jy*zvFDzn_7?PiaY40^xE&7nojmu5G&1 zpcrBQCWcr0#|vg*ui_6n^fudjBXoULPHQKL2oXd3pM}WQBLW#7iVthZe+ z8snIm_87d**OVeB)Bd=8#W4;OMGq77gs1vc#%ysN%1mG&o5!*&2P?@CG*R}?hB13Gd zC53g;x7nbHIU{>oGFon{Kml&~yHx)?*3)YLSI({5gn+2=|J*y+*);e6?fu^Wb19Fu z|10C$VHP+A>JK3VX#MG02$-XouP@hK=#>D4@Cs&gn4OLjl)=!tt%H(LG@kmY2Rsae z3=$7`^ME*S?(}X(-Usf;!UwaJi;?K|#!uk-?d!`!AY+mK4{(ME_;7s9#2qvv;OhFy zy2O;I2M5SOlAIy7BhG?2Y^4R24REhl4F#l4bTsXnu*^LvJ zc;5yTZ$Cq+KbGpN3&Em*O8}%mTfb3J&CZUVRhg_VR3__mFw5b5@@n)hxl~zB1~`ho z0&l}}VN`8JD?v#?gxy{zzD!Z&gAvN^{44}G_VEOK+^9u$B`qjw?rmo%p~~H_2$O4+ z>s}u4evZN@gDi-vAKO6zeRZAK%j@TEyPoR1uuZ=12l1$MDK`J*KPlYC~8!(HmoM)eE$#esIoTgOzK`vNmt zXM_ciJRcrjJT4NT2V*+t34YH~16soZRi2_2(DHRJXA(7v3Apl7j$)})WyEj{qPS=7F@MZW9pO$wTjw@EAzE1R`&5rsIBh=2*Y8dA%29bp-3rO-;}VMue< zvbb*uU@e37M^19$rtQuijW86B#gG+`+Te58nwkx(_ zoR%6x5VcWd6RRS-yQU{rYDu;&_owqm5*1Sp5R- z;nFb5>hW32c_3=9QrTW{WV>>!4?2Ttw^g@T^=51+2YsiLW>`WLA}}}pQUI%Qp_LnL zDVSVoM3U@mj;$E{N+>P)Gi|y4Kj#iH<B%CJIWjp}HJxd7yX zNdRBKI7m@u(cswv*W@RK-P28cEf5mo0b3C1AE5Ie|qwQkKb+q%pOAk)tllE?WoE9FG*=J2!k>7mR<-4EN{~82lxqkCHKJ<_Ftoe!;yCX zdptVs;{R{tQSN{7JOVna?OgpNa{gNxDYJW`=M396q~ z=s(N9TXY0e(0}6Wq0#^2&i->Vk3#?1JU+@1P@JRr2RZ=6AiuF7(C!g{N7dF5z{|MV z6qj*!6X}!qFkPm@ zkeumWo|TI6fBm|}mj7u{)6*Db)QScFMNVq1NxenenGVRMFMF3;;SeBM*is7c7cfr} z8ZovApe##%g{}`%#Nf(b7?D0BY9lQo@n{A)!qAULgEwy|DmNZY79(bnL2|46ZwurA zAlpLaCQ$exZ3!I9xov11Ac1o|S4>UoqHle2bx#{lEBv1j@9Z34rTl-Q>wi!7_d5P> zBaiC;%jdCE0<6vhO2hoIGy$2{8W;FjiU5K8P8(43siyxvOz_@_ya1xz4_+8}_tSWe z;8pZL)Ow=Q5wwE-A08j;^8eA^VMqTr^04q)?_|mjCNP32i7oG9=GP~7mIyt>DZQ_U z5t^qEfgl6SlnDXXOJjtk!?!SmE`med&fULDQn(1>Id#{JyvmN`f|SJt5&lA>#}Z;v4G2PjbPbPfvO=jsah8P9J;$cgKf5 z^mOY9wJ(gby4}U0-?&H3mgYKz3C0y^MqX3?-LF{4l^4`v@NA*4A*pB8&mvAUvw_pU zj`j~6(YRb5OLS6MEH$3)?mk=WCi!uySDL4xwa)3Y#s7Y`Aa<*k9hU$38-giWy&TDT zFQxS`4{+xyF`0Y+G2s7PRsRIR2UYBZ_BGShU4J?iKHZ9e`rsCJ6#_ zk`|qMizGWF6Cv}*P}Xm5<7*oTZW1_2=mx})pUno7p6$K>70u9~rt3D9zq#g%n6yde zW*zV_>WRw&pMrH8GEF{Yw;`zA<1GwcEpO!;024DAPZS(g9%P4#78Qz ztR(alY+uB)8H_TT3o{AbB{^r~5Mnmli_;X#C^XGp7DSUiU7_rRJ0%8eTab9#()gvX zi3W%`glu7gL<})Z%0_u%wk)U~jjuue=~tnkQ>HBEqNM^sG-2=YB#?LWG^DREKFJ%h zoyjYLpHh>x=Db0`SWs1mOtE}=Rv?^KF&abgh4_~JA9of??XpPkxM}5_F_s9QWtpRR zW-t-vq21ToU)Qp)-qV!-_wWAc2DLN)(WjjM-#<7S9c%pm{^5RS|F@B+RJq~91PveD zKv88#{5M%VhCdC}RS4Ze;YL(?plvyzXYRgy|C#w%WCcBk>LE_=!`L;gv88L7f50Um zR{ja}fD=SPCX^w_n)hAW=S9_I57Q#EaC=ijwI$#XWDF?g3rF2F;|<5p3=2d4T}$)E zTI*(x&KyI>qs?6$P2%?Ej<(j#9h*Cfj>nq2LT$yW(_OA|S51v7U7xnJKYAeAn{07lsr{<5V-AIHMGlm_|e z_^oR*;oXnW&4giod74vsyQevK#SWS1d1%RIXS5CSsr_Tjo z0M1{&+=9^pzj%B3{OabzuWxSN(a%&2{s&yXg=1c!NZ&!fQX81ReEwV^bQ9z=dHd_v zzp&c(aCw^RLIgn9=QlV1eDn7CHw22x0bGHTL-ywFyHnsCADsNn*^*pt2Ef_93!+^# zb?C2wNB{Uj8YSQETr>s$^ftf=%15(gm2y& zpOYY(h!=hKS1<yS{w$VkK%V1l4BrnpNv4Hlf%lMDaZJXyFuooI{kcie5551*5$g`9T-(DLC4D z6>I?z2D3mZceuBwmHg{30Y493oxi<0fBy4EP6Rf+)n@_+>g}61?>2TcltRZ<4QU)_ z`5E!(#{r?%4360neGFZH7DQk$Cw5qasnh!`PvBPv3=-*`g1@g0p{#<~{`; zY>xhuwdu!l;nM zU_i|Ld!J?Oe+7d9;r;ec_C_btM~($t;Nv`i*`sY+-QuGD&V87`Zo_V5!(P0+y7{j+3maUbKl*(dHHrDrzBnm)kh=&=i<%V%NzA@B&v7(zl%79h@6S6@a60C zpI=@Q<-_IccUKqZ@2=jwE~rd1HJs0}WSs>bkGm||I)DD^>h*`;ZZ6-xK7Vyt(1@^s zGb(OMHYi3VQKbukpnU?y^d7~Cr^=2cM7jopl0I*qhF~xt&Ip6S98qd#!Tnd~RQ(_^ z`TPSF2u}a{x4$0j;(_n-4`ls(b#{p?LChf~^2tYe6Nf1%S5w#ss7gX*BAU;mIo9tJ zGrF#*O4vUG__^uFIm|+M2KV)71WxDIM!Oe^vW`9UmO&_Me9bqt5?pBMzCb#aXr5;RoniZJAJ9Z*7o?4+>xJ-V;H~bDE86PhgG97<=W(t{mj}KfZ1N1 zG1T{5o7VDNQ|?jA-PR5c_KqFVvQ(b?-pJ+A$FRr?jc<1LZw>!5t%l9>Y@UWuj8Iq# z!`~4KXR!~@`~YD>^2jh*z2VTukcQm0ImI<>{MGX2|9fflKCR|96=^ZC z!Bjs*u@v}gGM~bSk^1lM?4=(>R$Gmprf7aMW<^NU&V7B*7NYs14Q;<7979zcPg&fS_YE2H7+Y@+PSq`?g zwx%4cwz--dY-wX9IoQ(9igIv4ODoF3YHKS6z0umBtDCh@U;H&1$wI^$!K;6jM!wV7 zJ36(uNUApaT`H-Hh&mMK;-wH!DH_FljM75kvqV;{lylb=JJ}4jAa-h8;)cXdneF-k z#LlMjA1U8R`m2urd2n*5%YS?Oo&2|v=X;d@Xjq{#>CYB;Xg%3acEa6|(73)b@sMyfjxGvMqw-=X}bx-r*~Q%Ix*KOjbc1%nryx|G)?|p!4&-_ zaJAx1Q)|pQord*UbM*k<3}Y@G;6DIczOkn%|BvD@ZOHyt=KniB-qZO1gX5FEj{o1p z^F8wa)XA!Z{kMc*TaWvfe5neVe_WD7+}t=8hEuXGfgC{$cPlZyp%VI~+T zo@y0$FgnJXbeG?p)akM9SpT{2YdJgr*T4PM9_7CxVE;S~l{*d7NioNdd7q&P7>raOz4U4AsqfYq^#0k{wpI5lgzrXRC_wZJli; z*jk@!RgRs_Fs(Ty|5iL}HU9@AKZ%1V+x_7BehLwSs9E^;%KU$aM<;sx_k-iZj{n=l zLx{*Fn_@5kVvg6z{l}NgP_$-A`NxyE6=nXTRIZIof2<^e=_2qTv>7)Yc&Ha5=3j@>Z4bG>^OPwQs^q_;Jzf4gI5hSu^nV2*uu}dz(euCWA02f1zl}Ur`rn!mNU7#imIRd%bmCwq z4tC;TCk{UCBVT!Hod2Bri87duUCaY4+%WJ-?9?{={}1;M%=mxDo&U#19!44I6az8G z;CC^_Yw-d4+8O3cM=%7Xr+?Y0p2dJQ2SGM4T9Pt>*U|W^NF!$k%xRScE43v_xWZgWEzzm~mSQ1O zt~`xVCIMzjxTVlbVy@Cq4M|r9B1qiXI(_5%D|9)`mdRRU7LAm3-opiC#?qe>&JtyA z7I+Fz$&~=Xi-33+{j7AOg+~a74dWsLEFz-fr7*YF4F4 zxVpZOXhLKeI4$=!o@W?>?Fbg&M#pOXX_cqc4%ICg#(M*vTktT2k%Cqh82&viRG=OmJe02|1a{^oEwTODk{RYJri$sO>On_SrmUa>+yX>KpjBiYpblFd zA)stLwMBpm#bNIEJPA;iE^mbCvPhUN%<|{i6rXu_$A>WTVjoh!oD3g}c!&?vI27jK zYB|{!-^I-+elVxcki%43(h-TVN75}&R{}9J_JYDyC@=VhL0}!HGQxsG+Rt&Q*FNJ5 ziUY_7U<24ma_0h4#)MTmB+bWxGdBo%W%5IA9plrXXf5GM1?c~PWb9TXisAJvx@BQ& zuCEmWfl#z79f==(c_nQDKwQ7jG@ge(NFkbsB>yyuXE2)v(FBCSJtTXd=9~G<5X8DV z6)ynE1Wo%;UIS@rPJz=CKX&9IVrFm=@k1#>k&nOAzm$&z_ou+w7VV#kX8PdHMez7A z&xFLelCN7|+4g5U>n+UYDcwXGZe0Za8*!>=->P3g7LziMZL{Czv%>k`Q2SSH|8ab5 z#Q)su&i~Ck8#({iQ2K2F5W06TMD!%5e;1zR0Ju>UXH-z6HKZ3M)gF&mSW{i7OWej$ zNaZ+^OAX*|0i#9*5~iEEO^iWiZsHjImnncs0ioRsMI&AbK^(d1Qr7(}3Y3kc=aPe! zU5nn+W0h&Va;`u+{2g&n@l&O5Q*>-kpau811O1Ax0SctKAX+Z9xy_5kHRyjdNg+bJ zAJ|oI1Hq3yRr23xWY~Wk9(Vr#8+poU8J+s!o$KAhh`LZWv4TJgPf$4iw@d>UFiis= zQVPg_$h9%PBe|hllXAHIzO3_PVG*=gR`658htm_|&1*1I z2}}qf^ku6INpmb=#i5aEWvaOQ6Zm_(F^UU*O|el|S-voS7n!))wzl zYe715N>6d6wsFs_a*PGC7F}bqghfG=7BCjH@XCds0+cxgFq;P_w~npD@zJ6>yI0Nd z@iEF(*!j#S(`5eS!juhUJI(1^FbVUKSh%!x@OcM;7UsGJIWdK03${N4~|1nQ-Ukr0W&}9AKG4 z*3Ex&n$pvlU(0UqStg)(t`p4!+dkdG{+o59nYHUf!e0xX>SUvUhlwYjlxh@5`TZ`G0hDWZeJmAMSPf|BXCMK}-*m zmTrHU+;6${&Ck|GH^6o6zW~tPMfk|*`+66+7VukES=7}B)VPn;Tripncg0R1GdEes z2c%FP%?cXcszq9g5JoyiwkMg~&`2HiYJ(VUc0Vnr}sk8gy-Q7g7y*;2MDAPGy2d6<2a>GZjl>;If8by6B83?%?S%N3NvE5wvjeUjY}+e zqa90Y3b$K}a?$RpElQ^P7B(@&(KsDSiB21%k5sPmVCnHJtz?<94vSXg_S8k!DI5o% zMAUGHw$S{fkU->16SGbky;OhCnm0GI+M8_$TL49m3@KUzRN-anoVE!fYZkmeZ338O z2_|kfwYy){S%ai@)gmm~%&hZO@j?5py_b1!^-kl2Y-2lmdidqLWkT<6=t9&m`QPfb2UpsID-*2ZoEmL7mOAELv^b1 z&<_GCwXanUcWK(hXdAkA>OctiYH%u~te}My;YG;qB?N&tp^K_;YeAt6eR_i?0y*v_ z;)bajZlZ5dE;q+F!L>}=EJV%htz2m>-#1*1ft!I4x+o*_Nqqu>2xx{!QUI6XaH!u% zu#g=?y;1?Xh6NW54QZI(9ci}GQBj3N1ZQa%65MPfm&tm}93ym@A##Lf7@%y3JU4_F zFxA-=kwsCxTbqROof{5=PZwC$zF_jVm1Ibmd7p(S@9CB#1|e73cMx-`K3+@j(m8y6 zegkeU&R<^YRJZn3N~W=8^=Ar$sIspOPrXd%Tx-ilqUYLYUZ%0F`U>o*|3AW0-7SZb3oNG-)+n`;8hb`Kz_4(LGfV&PyTLySJSK9)>_4(VH zJHO|_G<%a!*N*%!7u3c94)uYgrnn9+j#(r(gI5U6$rYU!&QS)_i~N)33($*`4Bb#i zOw#_qG)#ySN^)g*Oazl#)r^$3#1rG)oDs7emUv0LC0#TpjFSv(i#CWVtq(>`sT3jC z5;Mn06@pnATPNY7uY6$O6cez|MP3hEimv*aT^zQnvu4+kze~E`9_hS+;@Hy0K+eA= zC#fTG`(&R&LOasF=5x~&sXFV8gvKkHX7 z-@rPi!rF;)t9*EY#XRP7sd0>aNaaXABk8aVzW6-y<*o`$*?IVxsf&mYF0bLR@=hOY z_q0``lZM@&zze)X1D>^ySpTKa^_PYK9+? z`?R638D~o@R6ovx6sppQHu@ck@TETU(p1P(yG^+t0jMo-PmY&!xnte|#}Ovk79qL{Leke_R z`@t`y#&sc9UVbtV`fZQAF!cbpq)a6bP%v74Aq?yJFz1JB93RYqNH99fle;gfj@jo{5G$z}8;@dy`dCR3_Tof9ZygmOU{<1Rw`K1hz%0xBi zA@C>Ay#BEtsdlJ%8?x6}k^1T(@FiJZ2uVfKqZkzJ0yta}@8{>kT}+IBwW1si#=s;9 z&I)T)Xqg(ZQ=*He5n*zyaX0-OT=FJ&1>Y7o7fP<>FTitWF!Wrcd#m{nd1{OJO&SpG zm7HLJw@Yq7hR>x!1J#Tuj@0(Zo5F^!JiP^0kY7k^<=Jp(6#Kj$k&In6B;+3PT}fOIu8^q4qPpxGGllV} z1Y5+jG<=4JXyK8-i*%d>xftx8f(rW)QZ4LFU?!2Z#ja4_T0D$aXikc_*wdmduGunP z*t})3$Xjb!qVBu{as;&20VemnWkUMxEmN}yQFD^U^Q0E*QQA3ahR3KZ=(!*)c20C* zFqs(6q2#`9I5$yRR$DWv#T&y{t1pQk)9D`~hY8Pk?_MWV4A z-W+A|%mB}@>#tES?_{C9uRCP1(h7!7&W?K?k9Q$wIx_d1iHfRs+?2#R)O&qUY_LOe zwfTqx9^S(xU}I*TwKne3`>9rSpjLUPu?n=g;Jj6v@L9Ex)b456+~COyk=$=>L#Sfn zX;-6GZB^Sisk4>6Vq0TZ8m;SoRRB^e7?E~#$=nxKeiXdiFB%wy7Xem&*fJ^?WN=nO z*%fjp3rV;hAxS!Asbhe64|!gVTBxXNB3VqRB>ms2`rj;d;W)T&A^+RxaI|O1|JLb$ zH}W(-ve?A8ul{8XmmXrg%)lP-L(-wjieX+$s8ach5)~?6--hZ`>GRAeSWa@+zmVqL zt$G;8t~mH8E^~cdJP`aQKok^wS2g zX2>UImd?>))X-X#!L4jeDqPZ}6<3vQTWggF#=Ad(H#}@D!`n86uWyW*uytYVxuIeF z)~kys8|o|T+TmtOWDYi|EyGA(=#VORAKHf1r=)WK>J^NYrmc&bE1=eR@j&E(&h(ke zrVv<{L*e9!(sgF7=}IHm$kHWEe@z_-1UmBf(uE7PyMBOo2zv9>u%Mn5(2yKs=RS=L zW`J*76v|wgBi1l7Q;^}sk>_UW+u|nd)60RKBbX|aSvXy@wZJQD#SY;s_Z|W?Pa$}K zz>lMhMgj2Wi3Li+-TM$GmmlYtsLbXl`z;DSDyyKc{i?^~U&OOJlGB@SUwQp-cL0B$ zgv2rgS**zAPOJ2WVI1Gjlga}taZ^-%0^;c_nl?;|qi_jmhq-00n?jMr+`2Bx0NrM- z@xyQ!#Jh`;8zxhClD~2TL3d( z4N1$U;?AslR;RXAC%5|(xW=ow-?7y=C|`1U|)9Dbaf^W7ctOi`fM^mIDMP!2(7!pgIYNYp!A3ZsE-6-JTT} zFItl%w!0OmEM0;u2IC;|L0|)o=m?bl4d}-4JhHIR8g{7@ySV_YN>~!fjxKF6SgT4F zBaim4e=R5QIRw-*DE9&eK?G*=Fbk3p<|so$aQO+7`ydOK01=nX5Sq0Y&66Zf zGw6eDI01gT9HjH8Z;O%IU`BAm(yS2U5I*jqT!CeQyMut{H}q-phGF5P)XD`x7r8efU6s7#clHd$Dyb0cD@x8`MtrNst; z0xaM(ydbKQJgYDia(~^zMFe!|*&mIqC-iuJHfdI~p1J-w(R{Kbv`&JA2L#5aAkg=&tW$-Z2Jl7_#`e zXq^xXLV2PtBM0;VkFQY5DHPV{vPg59S;gVjhW5VaT5grS`Af`KdPP_6OIMFB7 z!%!@xS**`^WnJ-`_vz_Wwp6vTf+BZf5J#zE;}xyei&nQy9*M zXi8V^DJbn;PEJAoW}6qcF-YMeKtUXlHiV7vTlN-w0Uzga261uI2$|%WuirOS&kpTv zaf4DzL!sqeQxxLc~7@wj}n(uzn;X=C%p4bUS$n z`(>_$(^hEk$ylD~B96wvWKMNtO5fDip=lEooPo{WK!8iOqG<^53(O>J-z@=3!XV2y zO$lD`>f6Dm0ppqmn4cQ#^({sLw3*X0+RRI0ay4*dFboLJ@k$T8d(vO%qKue@fS6i? z5Cj+XL+AA+t|QH(+B`KlVdD!B2&8u7F?|ma*GA%lV@FsopBSQaJyP>3w6W0-NVrQXX6m91krJXJ$~z=Hyr%gtPE1yP7Cdxp-z1Irkkk8=m( zmnuC7O^^@rm>*)mbHk7>M(N1bV&=)n`}%e3{;!Cfb5St#B5zDYAecSG={+L+zI1h{ zRxG|9`quo&rUY zR(5^JwSek|r?0!czV6dx|L10dt=|9aAMWe=zy1A_{citn;;FZ{C0lYy6-9#{5%HJ( z*|suEHNdw8a>>niw@T!EMl?)&U#%A!cxz}&T&`&=tlhNUzNC$5v2AXsL|p8!sQeaA z;HOt^=1qa~f8V=bNd44&sAs?R0i?uOusUi)(+*S`$@ zG9=m%9;n^Tz$``?I6la0p`jy|wCONWU>MdYNz!L~O0eM5px8x&+m8o`xsSvmby6IG ziz}*{_i2iibRK~qqKT9MiopXUXh8QtLjCL9Ae@`V*G)1$4ZWbk0NI$@#Vvqb8NxHt zz7IYPZUN1pMlIpV{bv|jQ$iI_OO+9_UDK%Ur9UtbCRqnGELP+lO^5k}Cwmf8I0dS%~b@~cc$&dz|Yd)`F0N(K%D4rJ71vHEXS(U<% z5e1Wou1&@U>)n6-x}^l*BQ%G{SF5@|80hr+;*Ly$2>3tZxjm*6Du{9M_d8(hG^wTIL zj7_DVoG$YNNvhvdi+%nqB_CnFNOEy@4jHwCSk;pMlR!wd8M zGGG<`KRVLs|Nh}g=l`>jhsH5tQ`}NAeL)rLXL-vrD6zXfs&>i?oNfUol%5h2&ZHae z%0sNEXKpgw0&-$Del*3eLIKp`9T?f>fTAnyktp}#enMiNZsq$AJ*Xgs|VHgU6trf z4HGJSfubM_+%WhT%+q~3)QHCcagv|v`K6B*G+i?QN@D*_LTx?D2CCf<gWgnI+vSw?CEi|9Ed?-2WWx zk2?CliASOT7krl2CH7*uJXy*vji7BZ9?aYcd~^3dgo>x}?7vYQf$b6%ir9Ok=8eej z*f>wE!ld>xn9hQTN_&k#kt(kS$k(r110WPgx}`I{_8{XW-=(ykzms38^S!+3P|EKYhekHW*!a5MI6p& zkchDBgDN%F6yjP4P2)Sb4n`$F_E*AI3Q;^yy|sW~xDrj(LKG#f(3_`0wqz~`rwvf2 zRc!}{5{z9euMvK27fMO6(_mex!tw8S{`lJ{S3ooC+w(#7*fzjgm zJb@1FVwDMm(c(oK&(@zl)=>S)gV7={TnAJVefTn3v^7_Xw@p1%eZ#I_2B@`Fs;{eg zRJ^jfI2_&cZ!5_EH;MbuR1HvN|9Ns``2QcDbn^d39xCJW*np#;YYTw18hK1eRt6{NQ zgTbqL{`*b*ef6i}{69L})BXSUMhD&bzmZ4L|380y1DKl2jeJ036Ryh=_yrMsp8^-) zM~~ogm{1I#o&o0~oTCh;FM>*B+I<&6S69`6;1she`j^2y&3Ni3bS#$+6m3r+y5k zG0I-kn42I#fbm%@;^!PeATOzZ2HEsiT0!ZPHB!z^;q@=|wleD}*sVBaA!kH_tSlwo ztsI^{*oGf-=xDmReqXD_?(;>R{4e`dI|Udi^{T~{1D=_gdiE+?wYX8|IlcOEfb%+z zpzdd@ItKCC=KYnKvE>$QVsUf(H5LH+{WD}H`;ua^=Do0v3r+KOe**u+3yQ(VB4=kY zz(XQgLGIxa5nq86ew+tsp1}XJlzW!erg+HtVA;P4E+rHb&K;%;m?8%_2)d~^h4@dp z@sXp;1RS3e#?Ik=h}*2nktxUK9kAHEVs{Upp<7A>WJI&^zsF;_9XdugWo}feic~a8 zFAo#xS}ETsY&1g&CE^{!hWO19#TuuhIMo7QTiP>lImu`or(qu))W;y0#VPU9j==ka zTN#m3XScdpCF{tBLh?eYduqhqW;bjD?l(77oC<19hy^zSk7bBCUJWtF3SxLqjj_Tj zZVDxQsgVloM`7Q%cX6RlV4xDR0f*GlaDlmo{1f?kY8iyZ9a0}o?M>L}zVoN1{73l= zX598Ni0+$+gO&at$H%(=-)O&!|FV%sk^jtDURU@tTYR#zplv8^i-wj7*tn^$34_L2 zTYxOJ^tF`VjD7ElBdOI=iSSTR`1?F@YSMo!W1WYAi{J`+z^ePdz2gHT{!2&yH}fd; z9}BU7P4l{xUs^FwmgFmAXx*EG;n@h_(!P#Q8i(fAz+OJ8E^eLPg{Hu@G{D6FVW8i` zR7?9oa!X|m5J%v>1mW$_v1dOwdc~C@OM0m4&T&nW>4)V?ssRD9mJX6!G71t+uoB>$ zYDyLf&?*set(&Cod5TYi^Z)AlVzoQKD*5l=M9=@TcYNI4|83+k&;P6Ii#E>wtLuv= zeeM(Z+dlJI!220>LZ+A4d{R5&Pe9p#z#OE{omg+?*C6Z`oEdSqW^JcunqE0T^gS- z{ig$X4D!!iSskaAeXXdxc8!d_Tt9IOR;or$qlm3f9 zYB$hJVb*H=_kCOZ_k%9~>qZ`h{$Jr)26&nQooDbeK-s#7fwp#@?3rMUqwS+1m`(EL zt(m=;F;qmuHn8$aZhXdHYp|*(M=}pXo=ap~i)v67U8*#^LZ5=wH;kn?nAVsO)TuFZ z(+SLIV9WC`Bq>}lk8I{C7mevvbgvv8nQE3S?PHFSfgG%1_a|_P#j`+#FitUmE}a|= zM99kLK8|7FLB|evoSKemN-9okV1`;vt&IemlZ`fOQJfhw7pEGksD~5F$;0D9B(YzF zxbiR(Ee*?R*HN|BV&vadXcnSqn{BpOlc&tN)%zB+!JAgp1@q|bE%TN#}xr$CQ$DY$4=R4aC1 z8}SSZqF?dXRA3iB6}eqLW6#GKUav_Af(+b2FP=fnchGKj$ocDnyEqQ@!<0MV^B!m< z1@j!00FqUb>WQp0MD*3AE#(?*^Qy&W?Y;2-qo}`b=o(-IeSYtV3r#4CVPgT%@!ZFd2Gz$g6dQ<@^if7Pv1UE(GSX=7Q zaA`(E>w>SX7<^5pMQ`COUO*c5gX9VIV@iOMBwT_x0+==fPvaq~`j_IIOQDV{U}n*= zjS9Ozfp?5a0g!AC1ZZJemLBsyfD0HA!o~WifM<8p{jp&ShC@$$HfR!|bZYP?0Dx8VgZQ0HxuT z)}w@w3!qxpaumPXmwxh=kcNzt~uV{D7U!ccvW8W z`xYU+QY*cXY1TEG84Ineb#qmz^F{(mEn za{u!>_8|~T?lrYQ@{)P7+8=cgZEJn<{Q4UR^eGQTy${O4Xcz~eQ5b+V`xn`QOJv1) z7KB5T#mRXX$}%DeE2&F3&T|*e;^+qAv+C>DEr;j^J_RTXqKR|LlqRHastYlhkoz6b zTM$iAJ_M`e-&@#}D>Ny8@1CdLCwhfN!@zA6J{lrmg>$ba{l}B23J0yl{~8_b9~=7r z{r%&P{%_(@=>K)>13t}w&GWj)Ky^l@r*RS(<7oLX;FLlm;99pB6om{>eJ7qcyOz^Z z|F$slZSzB?hoHw7$|=2v&GmsbhtkgRqP4D{Fak;n<8lVpDG z`}B4|R&+~e!Y|jqNtX>e3OqN2zg+(&LB}j0rZ9!ntbiXSfCh~AY4qKY&a6;#aG_ar zr1>l*Dyr^%3$O{>HdsHU!A!L34=_HjU2L} zp9iS}96x@D9^BMFzrJ#aLiB&g>QG`$_sEgWmW|ERfUVaghk#w0NpFf*vQ$XjYSR5# z6{jY2l;lXT+(1^U0Sr)WjWG4THc+Cb3?W9R?bvf{E#1Q<#&_P3(>J^Vw#|z-OW0}? z@@k7Fc|uEX>@eY|=pasW6D6|FD$83T znnXf3@jyfnN<=L8sWNpbg{$nAv7lEQ@v%_%LXVYddBkKZUb*)Wpm_>G6q8V8z{#dT zG(iptB2QSef(!+CLzPgH7Sa^-wSD?obJeX0f!*J2_1;;apqjng<1MY!I}1V2VGxti zQ$20V*U9HRa$R#9jrz&QIOldDtEHQzGS~T1aWB&CrJorFv{GJGJp=)_TtEMm4ZXF9OKyz55Z{fq;GLtuj7?T0hWpW-6f;bA7U>*e@ z=a9w~MP=4E^@a!?E^0KfmktUKDv~f<**LJ_yKH(5RW<2-uFol zeO2mwH+3_BmdMLOE_h;`$0?rEhbfGBN+l_sk|AbCa6>Feu>pdz!^m*(wvz1*zIq5xwROO;-~F*6suD21sD*KsO*sV!eSXHo2iFXk9*T0gVY1=%N- zBxW@SEY~j{ygk>|dHCQikprAJy%a5exQKFC)6)u@gHVx(!>ZDVR5VR7_{56lc^0+ZCx+j0? z-v6dSOxVZJMd&pP1X8z;D*K;<6XX7OZ*dq1CQ}#WFo8(K$;JMUYN%ei2VH!D22);57m9mOd z+07}v>^>wEpTSu8TGgTZ?LlVOX1s*p{D z<0Tfn9oe)MI5(M_!SOt#hOPr$wYrU0K1Yq{*BXN)vpK6a#>IQu*)15ysSP7$kJZRX z^0m{Q@r|Ck=l?v)f*D*%{Hr?u4^BqL`QPP#+|Z+*|8$mH6#w*f^K{t&V<2sF0<4F+ zqTgyvfHn&CwB-0*Y-hB|}W3Eo0!k zH0D#I*b;hD)~iT|;Y1X%sE+yEXYguD@jS{J9s*VJ|G`M7{|BS}PXE7=N2ULCmI0gQc1{6f4Sd0AhUCN2KMB-YH)BBSgSLtT0)_~c!D_~tH$Qbxn$MSQSPohFX`c#39$(taRRE^Li$MUr>fl?ip}>f26(}JXUb>lEJJPqr5?j z^$^qmMJ2-Nw+~(3);cH{Vx{aDjKL&Rn;X@+%W*R>ixDn-qmm6uSY57qi6dh0?~}`% zA^3Tof%nfAx8MP$d8wkXmoivo*F6l09iO-UQHOdE{$9ubZQ@b+KRnBTO*0VlyfzDHTRcyf3$%}>bw<$E&E^vaTfxvg2JN7hCKa|< zX`pLZJ)z@TBdXh8+2K`K{#%@7HR*o_(^(J^|Kwj%*MrwE4M<3^IPxoV0$0-iBR&7) z(ZPOa|Gkk%q5tplSq5a90i9>SCVJh2pmY^I*#n_sRBay&le~||*BO_NO{JMKTn*z$ zHd7ow3QU)u5;yXJ=DVZ_%RIY>)M&q~I}*-OepN$>Ef?R&kx-ZZ$01BzwkDcpfUltc zM|*p^{&#e;*U|rtJSzRqXL)T>pEvb%3A;Row#m5ExS8qk5eT`|ovP`TKGY=JIXp@1 z7XxD>-D^T2l-%})aym{e(9}2%y*R;jVj8&~Q|IlWc=ZJ^bvp?#kcSRdpuC4msV@Fi zs~WYC$}7^}wW`AL7%%C(E_+d{au$dDR3w&40%!7BX`)BAD!=>`pbR;{Az@eap#HkW zyufDOmLAim$W&ZDV0h(b*7H)A;_vFq0b&AAEVDT5VyN43%7P-@!zGW8MCPt<9hGCv zG9``c9xiW5hss;#0Z#Tz0U8h_de-*@vI1xHszK3-?DN%FYgQ~{XaX(i(umH$P*^?) zw(u1@DxlKC>0;mDX(-n1Xl6 z|EjrE3G`+#m3*uB``Qpm={IAg4995@(e!-T@u35paTvS!ul`C{Fvtr>hzp|m><*?f zHWs%k(8l0NYE{0bXqXJKn5Clhq`{P!yu61jq=tB7H?O1B*xZx%^lw^OeqUCf?j-U$ zkGD_|Bg4EoTV-Bo+Xkj7*b=$7ucXgUDl={OY~rac|0Qu4PnI`H3SIvqj!>4mL6jj- zLmaHM|2aI?ee;$T6`PgpoC98ue%q9;wnMnuJ;RiH>0GE|S5 zH>O>1s5lmow3mhMvsEs$#m=#L+x;>WGvSR6iSjx#_tVWid^iQ8EkNQD{uUuO3(z=l z??QMgY_rd!<%7EdchdHFFMX8d2y(&q1+9z>feHdlnm@+U??8Ec%IEaF5$>XK{ z8b@);zP%%}t$tY>k@xdEm_{&zXc)x1(->vMs_oB+OPe_n-KL(p3t6PiH_zXk<|$b5 z5wQbM3?3lx+z7b74^TWK4r75&FPYplo<}}_E?QzrJag|Mm<1?v?;#q3m+=D$Nu;WA zhTsdx;{W5$LhuDdY?OPz*zO&NTj#0C|1IKhK7%Xh{{O9-|2sK2()qv9-r-5d|83$? z_`l!jEU(M#vBmOaSvvuL%Z!|Ap#6iUS&7u#Dr`wTW;zuaJWE!31Nf3G&vHvjn)k?- zOdb`b*8!5LG1G=($ana%qYKPtRxSZh!=~JlxkR^U&z))UpYA-16PV5dge3MGXok#% zj>?W&ADM|u^fBNH*LektNq0pJi?x0Q2Gk;D?zbh@|I~~g!E6V3Q|R4eFiX6#6*KUn zIn=zvSUi{_m}+XSnJfXs^a?Qi!0WjRY~RBrYS2}U znJ+c`w@Y=FD51%bVN(*UC1eL5=$_T6WYK#YjHHDnF+L2k(7GbPChv^Gieg z8dFhqO7PqK(osLA#%>tix!(PA7L-IjxAMgL`pSSGfs-sehjnV94K>(|A!(sz#Qj9h zc=QEiX)sfS2xArH6wwJj(X(t#aPww105eJ0<7U$}Va}V`0L(n$-C7XyMm7Mil&o(p zkfnAu0Ck>Ca4n$oW;OtGG)8NJOIp|jtw0_M)+H3QjSWD{v(T*tE^p+q;5GBz)pUI8 z^gv}#J^c@ph<85-BGqF2_oIV7-Twaof9~`@8+a7`&jp#?S8l>ILG37lN>8?Ls1ah& zHBt)6V`*7C#2w@%DI(YND{2vzQ^YRmNw#Ns^;^vFzZbCI66U`wDUj6jDYIm^!=*d> zQ{@yf!sN9p^;4qs8Y-&%M~QCAuGA2^DzW@av{m{18!76DrYaw~me5N=D?!Qxnqrh_ zT%G`{HQTndRQk#+Mo`vVg!d&6gQ^3;aXGhp4S$N8r(s#qQ=&5QI0kp z6=&A!B}nw)_*Lx7fl6~-53#hAnqvwBQeL%P6z(+k(t3`$dT5gx5SXJK)xw?9e=!CO zQw4dH3X(ahOcE+rsTIkTV3xO+TX?>O6Zq+sn|V{<{NML`gTLK=KK$BqMA25zNK#zh zK}-V1aXNF!@%#P{XYb_XqJQrDku9vtC6lig4oav-HVo7c)-)*{X z-fQA!)3v+BjTH3DUJZl^E{WTAFU8&kq84r@FGCpkoV9tf;O3z>2EUfii7<>07Dv<90XNvz9 zEoRo7J(XA?EfcgTeKf-hsoDrJKj)pThZ!T;Pmq$^>*bsDB84vTi4*S};JgSzD1E{| z9pK!=-aSbPBu|(Eq{Y}-9hBxhr_vId8E6%OLvE*`A010aq=2%r;K3WA{Jh{(^C>sP z0tEx?D+WoeCx89E*w}{rAHVNwHUH1((9HjH(8Yh)$fNLoe0JMq`%3PJpBm$r52bC^ zZwCEfJ~NoU9t!?tvVw+2g4I^oK=!Ui1oeVON!Ln~hG1u9#GZe4)aU6#61I7a%ubV5;(6*pGz^1TkfGs>RIb*6vd*?6Xmq>^>p`2)nT|i4Kb##vo7Ip+ zn0rnLID5|^>4Q}{4>rO$6@#LPBOiHhr}B>A<=BYnFWQaz#l~)mt;ycuzhB~cpbf~M z3Z`BK41Dg)E}rDmkpJThZJYex{!z#OeX~d5|Ad&+D*snvJ^Ix6zkDd2>Tg}upQKOw z@sxkngX>f~ooeShcp9Gn#3;Gt{C`LLM*PqHQRn}=nMXPQ$?Ud!_!n8RKedyejpOlc zKIt5+a=en7w;Tuf6k=~Gjv&*%g>3RMGWiPSJMI8io6nk3$1 zZJieAj!Z2NIf7U%rPtNW>1a#0I#QY)M=BT$x>6NMB|F8)DRDf!j?>HySDJab0b`IQ zGhYZ%@G)9#34V+k_HT)0Xh0LrqXxX11Wq`w2M$}M;XERDgf;*)J4eHc(SVV(#u!%o zr&#h|0E_2W!W6pmYM=l{2nN0tBB?6xcd7DqgIa#Ele%AZvKi*btJ>Mn^=ea4wH zj8-z|a?ch;u>8417p&hx^X}1V;tsEU3xbH}oTxV{n{r#V{1}tah!)F+FBi&T5|z`TN9;yE{^-Y12F5|;1DA&F+@aH~rU+rUP~+@sEPo|#^|sEyY>u+?B!R?-i@&D0 zwjkEVzt(izlD8KzR^VQm%CbbaWN=j3L57J5t4rKGg^7c{hShZ<=|%W}%3S8!yNbz| z5mDmPh{y8C>Rr&(-=W2Pmpbjne>gfE8T$W&{m%Yt zBacG=Z^-Pndju3l;(cnT03XQX3j!^N{iA?)G5@SF|LBr03HZmR{Sl)5(Uyy&=k+|8 zW^XFm@Z1nyz%&cSf#+s$rNDuCKW&E+WJB!Y2zGG1Tk{(ByvES;0}{PWzOz-;$Jp2V?Q7_74Y+Bfchjz)W({%<1>k?&rytfb)g zJT>Qf(%pbKawWQ1UMcdOQ~^q9PytTgZhXL%|jRZWP5C>6Mk0 zURW#mLXaf*FpChhRLYE{!*5@J)VU=s#Z@)KRG4wga@NN_$cG2$`0At@YrsDhfK$xS z7*dO#Hq9vD%~2N5X!hN;hRaPQ)E;+$+yTddECSh92@SzwH@U9l>5AvSXx!@!J6wMI zu^are)=tP z#f!daz<5vFrR`|gwMfuCmD`n}vl<@;V_^7}Q5}lbsF}*J;UwWBf-i3j2ElimsM0jt2oXXgn;Z7)%rH438{gdwgeT8eQ zc4wr`8(w6NIR_4iQ{ZTAJ3GKdD40Zq&hVwE5f(y?1dTP3S$9PnT(DW}QSeiMvDyj> zy+70JiBQ@ig@i_pD3zyJhyDJ`aFHQooOK<#cz3Y5WalLZOgMbaKZACe`MUgHIuGFru3zM-;{Og0 zMjHROcf8-p{~LJ}{_icGCPuRwT6e7El;z`P zBN(b56;zN{h3KFaHh~h-Q_E;EkVF?cLk{_2jNG;t+8wdJTiP7ypHVGZm;Xa^Li1N* z0jutR4o`IdpV7hosN?@O@u>PgHpwmO{8)<}7id9A%Z#AOobj$?L6p(Q?G%2T2PyQc z*%Yz$aRavwApiCY=xZd$=3J!{+yL%`s?qG7a1Lj!j(8)uGyZo`hd=J!SzY?S!nMD6 zs_6g8zApcdI{AM?52gQj&s;NQVLLX!WUn#(*}u z<30WU|KPa0|KG?%7XB|V1F{n_;Vjo6{`!&`vK3PuzN8>FNgL7tFPVc?!~ef{B(=Ho z3J#xt$8cReC#G+C##-4^(C;h6>XmyB0h*`Eh^QyEuE7$AfpUiroZyo*GGuj3HiMnY zRjgW1c_9^r&6OJ|R(-10diGK15HUQK+vyd6C?k@17Q7GqTjGnFhfxh83;af>l^35R zXeyp;VDsv?kIBNFj6-)KSxcsH5#K}K0S^3>U~$NFTc8&3q<2z#B}C!5e1=N!+J7;dPvTJ7ntOX98E_gq4lh*t>e=N1ylX+^;e-b!j9SvX= z{XaU^^?&>Od!7DoBM%|(JnmaNq@RWeT!Y}3`uDTuYdZJmrR|>m{Cl0_!yMNNhX&Ek zS<|Y3zU2dTntx6|o2Lt#xZ+$Zw;)cr>pgCz;ZZ~2syJY9nbKp$1d@Tq&k>)xHM{9j zK1>!x!Ik9xiifdn3&KT0;8~&pWJV^>f+4&hc}L!7Bv-;cWB>=*Ul4QUeQIZ09r{mh zMRz~Az8}z#M(6oPt8*4q(Ep>8k)Hn<|LExdCLTur>BaYeM1l!l{tToUUhga*4G(9u zS*g_(RDr;8<@!D8SL<3r2KZL#8MAQHz`YA0NZ}Z!F!JCIrfDuUqQ}i}bV{}A9W}*h zYs+YW6_Uq;OUb`weHEIzDfC$=h;{vX=xr7Y69Q<{Bys|~2jU?G5||3347h;!TlN59 z1ZMLv3zCq{sG{#QLW1Ow4-_vY@wy^>wR*G^sUas}eCLM1AyXFKnVKnkg&`|HbbX(@ z2xv1PU3h)K$VV_!r;YbHoJYX|rU(wR@va+&@xy=)auDDnTg8KUXDH(=j9vd{H*_Np zrdQV`pG?0a&X{nDB1McLj?QZR9iX+RN0s3Gz+Ie8ZB~EUSb9NX__v9x&0pQf524m0 z*hWD#31Pp&sKrqUk|kn{W1JGi0tzV~R}2G_8p?rU*%Mggb0LMX2r^@x*|Mp2fTj zGc~3+NUZZ{n#C7xOFUCSVsTPzK+&{8ZLj^mF9fHvq_ zUcSieFkv9sqCAZ8A?$kh&uIW`5%z%(1Be8?tOPzbcqPDF-l3eA_zeOi*n5qmBk&SP zB*4i#4QhI$bZsduebMSfu@7xE#Cx3~y(H-!0O{XkJxx|07c?0pI;JzmOOYQ{T(Ma> zh%)wf0g%$L>wuaUw*V})#RAStZ!{^n1azetG5~FEEW;3UQD+dmuw@9M9X0^*yFU0* z69jnsGT{mbdA&-zLt6>_i&f>I3o9Z3hNz~J5DOPCbwKG#J#JkKs2}ASx#Bcq8MpAr z={wd3d(V6P0_I5qQ(7jUXj)2|_%A%1zGzblt07g~5#_SDa0|kZh8iC@uh~R7*0>@> z^{>pOio-(vg>`dXQ$&0Wh$E&U&!+p=!E8qRofd60F0HB=zAMG6+ z9vJ!Gj=KEM8+jD|zbyj*%0{ne0Z>;206-T4I31?%Yu@dfAh*o^Z#Yc9jizrhFnE!AH6)ld|2cAV2BO(Z3(W*P8uj(6V9t%a?%^Ol@7*S8^6IL!S* zwS#2|SY;aZT1Cl)pw*HSBgjzcQ`%@!c}vZ9rPjX+sBMYaQej!HIEr{x!=pyqGy{tZ zjb+Gu4+!q#0N-;(@MzT$h}Y_GIg}ClCPPn~@rVtRPyMw7kA2cW6|i9J9QQ9}Z}4J}|vzQP>eU%zgNAE%ZmmXAc^*4qD2=;li8f-3j_k)HqS zcr@z#|2Fby`(K*THYkA9+*6|g3g|801sG&NM!TuF9nuT>0-CU%bzm#||6S^i$AL%l zkC~L9%K!K9K->QZd!wT+{_94bg8i?|Xq%KkY51wq1Z@zH%p=(6MD}G$=&RELPbRrk zV7rkc_i>&ZI(@6kI=@b19o5WkY}4FZ2eWc2V+N2JU+3%BEo)EQm?=l$pImHQi~a}6 z3wIWT7Lu<#74(1q=t#H!K04g*;{R;q(da*)(KbjvZ|kX1`5f-YX8U+gwhZ-ScXnMy z)+JBY%=PYNs(wQp8gKAxhosOQ!}R&w4fz|U=F4A|C%2bCVSP0x`|3y=(tF-%4v3ZD zt9?*PpMzdxaA7edVGZGhKc@DY{CBdq-}(P;N;|NyCeWEX^wdSIqHk^ihx!kh=$SVG6{ZRQ&3_%?y{3v~r(4vm5 zYGx=IG^7+#ZRoK^RkIy7J6SM;@thc04cXr}(2FDA=G7UDf$6`?8nBs9i;vuSm;JQ3 zz80Dn87)!&U2Cth6wOQI*5F)pWncPyEsn$3&5p5X7)0V<$1w62&BrPAapXPh^}+T; z`u*4A!@WJT_KK^NPOX?kZIbvJ=HbZR?|}gY!1Rk0`4`?EYw7<-Bi;V%= zrT;(K*W*7N9i4RgpN%})`Ja2+x61(JOXW#&05bS(u>jqX|0g=~+cSS``3!D@{=ar- za1Hza{lnv9!~VaE|FfB=fd1nteVh}3Mkjf~XMh}DrLC)8OEx*VyHcM?TeJ|lG6_<)yzNKXQ-5#;u^|Q|TFGu8G=lnl8 z(DVNt@11o1e;awU^Is0j*6#TqDgob~;Q6l(pj}0FM$f9`qlJjzx{15j!Ib)wt<9~_@_{$Cq;l=Gj>@#93~WR15G3%I1IZxb<7 zh078dn13k@qv^5&H39|m(YF#+se`y~{7o?jW>{g~#nTDH z$w7X^aGW{5N+SSs+;w3&pW;*F{LkXloxt4>uIE97Ud6uQ;9c=lo&S5r{r~>qad-Z2 z^v>? ztfyy@KdBDjhG&>wRGd=s2ksFlzbuI&!p#$Ewq2P<)NIG*Oil!ia}_DfdF(B8{ePxG z2H!*;bm(tDz$eXASU=d$r2laV?ym$fAW!+^eD%4)6zNmp<CBwl4&=@&__kQdj3$mIin8jN3!QPvvYJcwItpWW^S=|3O(4^97f zH*^3H6M3cY-Q8!4-De9X+*BV4{o;bk8PKP2M6nNVGIs)RpqIkzEgVxwBJS{L2cH%| ziOZlBcOP#lhKH~D=kN2ZX+r<$9~YsEP?gKK@>J0O!_mQ^ZvWNY|8D4!?tgFS`~ot; zAg2dw9thg1`L3>m>(O;%1TE{pORj}?exZzH`H2@aY22#08xl1ATeh;4(yzwMqw(29qFiLoqnHF4e7(D!~{$ zK!AyO5CJy=YL7d>4IkVkl3Uh+(9x&1pmvp;sHu~{n+OB~jEio${7w!}zy@;_5!0<0 z_W(Q>K~W}(vuO}bwgBCNVxfQEiL>xtjN?{WEaGb3 zmRY0(Yh-d(8?4n(0p?b&#r;`VK#{szp2%8|+6*Vwp3nAY(=ucFd_CH1RiL$$%%~f+ z61?)ZtWaqe2A(n<-yetDJ!Q{|{QvJwoItAdKPQJe|9^OV(%FA(XkHd= z*hLnHKT6Vg5uhNBU}`f_S40&%otIj;wHl+#W`@^hZq&ChbA!kM&T|;TEKinT;kHtY zqF`o8<7XHK7S>YXs7SL=H2n8UoBxl!H*Id@))EE#Gk*mpTaH`uNYt)+p^1t&vZ`$B zb}gEcY`34E!wqJFBCKR0F91@-Yu7~ojfr^g&-E{vz?KOhksC!(Rb?W&uS-eb;9xr& z4$kSBYQaOG7S%qt$r9!_I7@sF&YvLW-xB&Qrc5wJHk-;cw3pK02nh91|H(ben&fN%J*aL~UEJ3RuZL4CzMZ;LN-ha%?lI0Df; z<`IY_3wwzLMa;%50+I9{ia<0Wj9)=M5uZN%C<#LZA|_4N5r|@$Ib;g+2t)~*6O>v*%qiHg~vUaOsSVXxkSXwIKh7v&7zX>f~N$FlQ4Y4sOvqS3g|{ajVDf^G9fP zyW9?}8FrstsC#cfv)@kikG^t$yhbUCIiX&vW=R9kC9{mb z%LP(Q)stTUQJ2nX**e5qZxIiQm!fquBQ3{PGK{b0 z0dc{D)rIp()MU^GG{zr5v={cj5kn6JbO@m)D@*JI{p0Gr!Y_OEma@IC!Ogpu@6Nz^ znv#1!vUCAhj$%BvvWhG@uVl@v$dam8cSYSvwl>h_#d7zuto(QV=9`tt zf2Ri(|F5Id&HInF6j%ORxg+pjOa6O++whko|6RZNrcVAd+w0NgKM<8~V58!>=@UqW z<%m}=71{z}jYOz+Zs7j3K!|Sm6eOA|NS$RQA0cE zNoCXkLZ6?E+A^zu9T{~g`Oh_9x5|O7{y&HQ`>&J3=ldJ^ZyiNa&AGFlE4l(!K$+Pj zPjw6IqS5CfxM2W~@BhTA*KCUXs1J0|5o%*cH zB?iSBufiG}+B>}s!mD@ztZ46yp+x+XqAWpFw!I=rAFFM6Kr3d5Zjy<4%$4m`87y6M ztnKXTI6a~=iA6&mry0koNhqP$rFbb>mex1h1&X1@${Z_410wadE-Ltox96e|fIGCX zwU8J^+tqieGFJuqM>+6_)0q$%)Yk$-+ViQ8OR<%|5N7~O^SK?Sbk1Og@Jz#ZqWH5^mV7++rm=6o&y91vh z4iov7p&jM+z2VKjN~Gd>17aqodk4f56yJ$`k&{Gy)GJlZav}%kf!Xz53=7>f=>2Qv z1U$P#3l@U4z3o8rcaD`g#IE3F95JKKNO-`2Q0Is9G_B4-O`;d?ZE#S$&TDh6bRJ3T z*aVhM%T)a4_aG+y8vhf8=ws!btEuY)QGq+FZ;wv~RX5w;izw61HuHHr z%sK_lcpEsMb;NnwP9?jQ!VyXpPZ6#4pJn3UA~LfxLk+y7IP8kMHsP*1iwqJ@9zfBZ z`g~?>06P)jX*eaW9v93q!lAl{F@v+et!IQ*kCB5@Wvte3od+!cWI2k@I+0;}TZvYk zW3gCUr;>l~7z7V>_3w>3_z9No`d>be_kPRz#CXVi>X#xWctv|ggbqePnI*;9?)G(vSbGi|OL5bN56-oP$ z%lDuRagMWFCg>i@*o=zW8M>FT1u+A$gph#y3CaMpTPnrXOs9OvFsbu}L z)rP0YHpzYAQAd|VSZGx67l#-oDWXS*Y&Na0>vUFGU8i#iqZaXk*~|44>tlhov*UU! zWFxSDp{1w%FSN#0%m0U``<46;&rc3F^8Y$YK>mlm{C}OJct!Gmjn(1vx%Vjt(MK|` zz2|Yoxjr)6AE6{emdUb&9JEtf7NmidY4WU9wtjeaSIfYE_2WepFex3%RY%I}N#dlV z)tczwYB5y6Z8^qb$dxIvqMLvGI4J)rl0*!>Bob9=sLdR>!cfOGb0d#|4_=O7*obr& zIZDlPp*uR^I{qkPy((F$CQgMXjLNR12cOx{_U)wIVMV%jk?An!y)EQc56&VCx0^z< zTF0fFN3j{jw5WxU6C|sbA>*yiK2Z~BJO7_?obLSwXPo4SPJ5>QmZh2h9~_*VR`P$G zY~sJKrzn@8M$S1dJ_2@@Ikos2*`gOnZw#V&~~_9i~a7da^Ly^XDKR@IPK zCcf3SJ}&BZa6x9upn#MRl0!b(kzc1X#?4QdgPCOU+H2_znPpt=UBC$`Mzb}73<(6J z!D~;x04Z@79cGvVXdK)mh2aEDNSY|IqJ*T{x~WVhi0=p>b3~nRWH3v>EtFxuGlUZ4 zLvtNJrpA@J-r2*pHp%M7nZx`kR_4lD)RM5NY4v}{3}^_$;jp-bH9Bn&X3=HEu0m*C zlXybzv-%&WByh_s9XEuyR4*r$^CNa#@KRfK$^D=0K3>$;3fx}T_?W7&YW@)jxdOOe zrROtFfU{sg11L8V*Pi5KLgo4a`_w{;0?(FYjPlC!r7C(F@67Y^XdbzqEvl2TFEhrU z#p#weq2?r8W7;G48KP{0b2;28vG+ANPZGe$R2jDbMYoV9 zIJ*V+6UYIKl@(gewKPs!4hj`tA59aKi%-izT=w>K;7mRfa)uuGne@XLh?P78e=@}qQ0M!UK6 zNsi8d{K#f;Ea}|N2#pCvyYj2F31X7%$iKwiK*=B{$+f=Frbs^gRPN1Z;4PXXIsj7n zgIMeYr49URh%G46*_|z@D|pSm^xBw9b$341H|+@He8W?jK1ey_oB^2TI764>qprYE zJfoN|^lRy}V&BkNcFx|C>^&j;OnH#Gzx}`vJp=p2#~9{tgj38hVrSMN)6opCPcLB3 z9OUHqlH|;BtlI?_-@p6mt@rKa`NePVeth-*{pHJ7-cR4Y`|0hg_xhuwp{bJMDdrAF zaXvc(hx_~cQ|sdtO^KMi!|!l0pJe0$nxhOc2b9{$=mUyv_+&bTS!G-?&vd`4bod?SN+rK0L2pmqHBS(%n#%9 zmfy)}I2_tOnw-qyiHlSP-nm1wV?rs4C47slXNldB?8IXso=+@Er6^DmKYN-=!OX~b zrR`kh5-SBji%C>r%$Um06Ga|Vvz!M>D)U8GD%c=iG}H^Sq@wvPC9~X-dOTt>%t?5EA%SzuZ z+tfY*LgW$(e!00me)NunD2m&?*m}k|nL{D+Nor9Jrb zPmTMxl82hhI0xey6JI2Z0HUh7J%I}KGw{on`q!`RP2iXdF7->>aBDzCJ(l`iK{8qv zTBsL&7rLZJ%P;fn?5o@Ml`gSuPMP!ZqaEEMNr0pvGA|V;{7*+)HY+GHNuPvxHMcy`JLp_5aygL)sH-~jyQ z-{K6j2}V&&|H>Nr+O4k%xW)c^TFw7|c(}>`zn`zFUjP98roB6oK-a`(noaC090RMMNXat_bBYjS5ZNbq_SR&mAaNWk~%lze`f* zVo;$;Ac~y;ZUv6^3fu@9I8Na$z)VHQlK0^_0~eQjKV+DL8^kyhD{_xO3^O3}Nzf_a z6Ua-Lm>Fp)U4UDZAquUhI=)1sJilyl=E7vDa4#aOgtka$p@+9yY%KeQVpJIVEOSSs zCfndFzlOY`da|;>dhV|B&1dOrryV&RkJqi75>8^J^F|ZSbEo?WVRBPO2Zzsx`@{X= zf%9`tsQUT%_{jaCxB&6$Cl{A5-z$jE4~GY*0_fhssZ)#1W4G3Gr&idf&zvy#8sa?p zU9e?kef5TK5Ag+vwlb2S-*D~*6;mT|{bJ>((l6E>VFivNTBl=s66Y4`Z3%WdXhUgr}$b}xT zX4~%#E&b+OoFzae@Z|*HX`Z4f$~cfnC5WTAj7$|?#Y-z^FV1c$Vr)nHBS@Z7c&~cT zAoT&0-!4@vvg~Ta7OFHb%?ccw5Om5#mG_|qX-NI zb*T)>g7X4Ad!{N`6h%N5oLZ<9GM!y(h(!xxb^eOqWJdx2bA^bEkLcA6JVXsxQOYqH zqo^}CwX>`qb-2om0e+$~cs0sG(fgHW^ToYudQf5?`N5#?`S25%9q|D|SAlp?2=I9cWCNpSXpxNdRv z(EQo6Ay0eIP(h6dmCc7L*PVLmApeeGiY^f4>Q6BuA+te_E*YC4-AW5Q7v--NGQWa> zwu>VfDJ7D71f*iiiO|Da+ZwD6Zg;?|4;;}9rgBsXLF%QTj?@lRgR1+D z)4$mb;okhIYkZ*Bce|DwR?>~YwlWHN6N>UbA$Kt`hXKIhNeI>K&x70*bSTr655E{- z;mch!z(0WunDZxKg!1z=pTIh~@NxIfGP@_RZF>zMy(TdE2Bt8J z5sgAyp;S`jL{-VtFttEjUWHDQt4fC3g-@BKi&?Ko%5_`0)E5>o-f3I6V=Jr>Dq|6^ z7y@cm*j~(PojO_6*IMm)a(}CZ;L$4ksJOp%G!pp6z>vjo*f706ynhXT!f7fgh~cc# zfF#sR$9y!S(llE>&^_DR`-+{(=g7qrs_C#vvT6Gh<`Z$~&a=em=2cMjz_yCv6}IFQ z!3@lDiLMxjW9zbcLuJ!iXH!S6d2cioJ< z2!8Dhu~xi=SW+MqrzsaYQjAK zfu@lfvHr`$I|>b^X#G85JkmQ`{4MH4Y9)#~8j9TU@^3vr>ul8C+ljqixDR~7ck}Bg zUGM+RW03x@zuM!!pH$;N9UN`)|E{I{(R$@s+^$-@s`(~US8BNp)ro$rJVWwxX7mO1 z64e%hty=1ptZc9UX&-dU7;8sk{lm?LX1}`i2I(j{g^YLb#T&Gm{7uy`z4f!`Sk?dVg5?xI5ksVzZP3$bgy{N5HbD=u_n~o$3FF9A+}YOn(;8M*p8z>Hq2BhW@Xm zbfEvm%70cYpupO@k~4;bAQzC0-j(43D%TJl_<;wb${0$_UNp8`EtBwoubW$xgLWB) zJsFB;lwYbwFXbjQ=7`G5Sl}F!DPjO>0=y$f0>Oxo)b$-IctzPk4bO3KYGgYWs2a{= z!&)!%ac8`a|8%AQCgkyJ%vS9GyMJ(Sy6^k{9vna4(EoLmcKR%yvfMgx86i0K`= zG2zZ@dT_IT$T=-%uNAyA<}Ijr=ax*l;4r^%Z|WIkIq~h?>0xiBx~H_Zr%zS(-IVV1 zU*DAeX8BjFD*yk%!O4N2|Nmr@|7ks?5)#yko^2dtrFTuwXCO#k9csq{i?j<^%z4Kw zs)npLMNN-dx(~o*YXMGG_r!JibDd{XN!6SlmHIL4F7Iw>Im~|e+<>UlnTN0KB&b?M zW)ipcV5%8dY#d%#`GmR(>ngjyYVVN!0;Wo7qcHvxNEgdm25Cdu5dKfT^rrt=e!F`4 z-_QSdczCp-|7$5-=)YL=zVu&glMwwEKQKF%nFJmn|KdC9K>tN^K~@#u3jG&&bfy2g z%g15>22;1UMh+mFI2^#5)+gWqF6J9f@CB5<^xwR7>cawB?f*x9{LjPZCmZ|!T1pfB zH+0hw9P|9EA1kQ5j_Ytg(2KC*@&R4lgSFr#rGRQ#Z9ACx%~0C!d>@!nJNC?K^X+D!=+^xTj+C%zSj?MO^|5L;%j#o?nPxt-%-^1q{`~P}M7x`bW zc~81;c1nou8;F)3U_J#@fj4FCMqR*yx@Cj2iIKsot4?70HZfcSU{|0U*qD1AdjlwR z1JlG(52~csTLX{u>X-zs++Y4ENnP}&Aa5i?#a0l6PfQamvI!4WcoCh>i_P+!P>zye z)onlI0>46f*r3lSj`b`>nLo|j;GkBYa&#ZFEY=&94yb*)3Q=GBFIIKM_MgLp!;1WW zxQYM2o}xS|6kXMUm2q|phB`Z+d|J$`r=>FDK4T`6n-tZ?vrNV0zzj%{GXZ6~Ad9yc zDkNR%WzcePi{~f<=3%2^FvG4Krsf%AcmJc}S);5_{?(g)o0ohg#PUtrDijZS>YiTf zC_M0;R?RAhd`Q=*Z|L=t&}Dw%A`Zfe6p)+*?@b;@`w*QyrRw3V(Wk3-Y|5um`tpBD zW<75HRcX`z4y*d#@zEy!<624={ZFoWPwh|blQ2)7afDnS0M$c4^|LBBs(uQ9vH+?U zzT&44>Z@f$lNQv|Ji?Dwf}AI zf7ViJ8C+n?}J=SFpD+3SJh4@*K&Si%3^lF#Jq_5^>=A%*h(v?=GYk3>s(bX;8 z-&1N_{_=cQN>^X{Z(`r~VE}FRzx_i${`=9v;U@q0TFR>9zZd%>!~qOUWp69eCJ76L5d*b&Wx*^B_n^*>q2Zj4LjMC&#ZLi{}kO~ z88V*ah(beETb#|1t$tXFTY+*#bF&yv5lrBn=|!eh7HgJL1e1kX zIFt;*g_H==g_z6YGay;qIFi~2RILXh`^fBVU?LR;9`M(SavElz~C>>0? zYUOK9xsE;|Dp&N~`picfwrjGLFe)*7f}vfPNy0S5?3$B2ui5~r9fvs9-q+vCup1sIlb#e@^702e47!9E?cmQI;R{kZ937tuIFEgFUv^(t@$4h503oz z|A)^{Huk@@lpgZG+5#Ra2q^%nVj$Mx-q+weBJKRZmj0PCzGq0u2O}w=;4v<93Knv= zYG6Xc)b$LL1anL>n7%8zaBee-$C%ZSOxif7WO6r9fqALw2-g9FqTNR@9Z2Hn%3zg5PdbRpY)$Wt6+o-P1ncPOb| z(Avk?=Otr^(|6e`O1Ui)mx&V)D1*D5}FDWn+g>V$M)H28rS}3d)>-HCo)34UK=Y1+#PT!=GO+e;c%upP?-ui<7OD$Y`5t+@%QTb{Hg5asoO{#WOS z%%0X=5C|4ZHCaqhK$yl^fQ3tUI2;*1>~Wb2Pi0NJqY{J(K19RaU6}*nTU|Kr$2ZuaI-BrT6F{ z3)8`xlUR)RP4Lu(^6J$eya%4G%K3_?{Z3ZX>FS{>w;E;rwJUavqX5YX+%Y>GbEfDJ zWJ<92?O|F{=S0ZqcHdgI3U^XySw%-GfVi@`DZ$L|Nh2Q26Slc!`)o_Q{eO;9M9JQ7 zBN*S!@@q~gyhX1`ES;!-EZnIZZUkEH|Ben0{r7*TM;rV9dWxhEKguNr--K2eluK;A z>c0?@gmm3Eo8@fq#~%%5Bejc$Y7;TlMXI|PmQMMFCCPaJQU0OGa{2e!006D1ok`yY z@dq%8-n4^*(hCOwSnXuxAT}ln!9Y1dG-}J8N7X}tZj7m4AB8@rWR4R=9fqXbN!7Xn zy|AEISxbkq^dtl5*XG=ae*ZB=3CcKz>4PySK`o8Lu=3{dVTee0%VSd}xLFA@cWBXq zi<1{1juB&Th?n|xOYTqcS>@zcd4k^~n7qrRzGCM}sU4=_ zmlE!;+NMe}`A%7gt~+2fYoPphpw>$t><=g z+73sv_zv;aBBX%^@!E)fpJ(YV{~5k;jbe&=#eiz_|9*bt=l?m{KRMmVf9oh+#2d5n zLnfELRhsE4%;-uvMPsZW=zrQ*27>J|%cX2km>%vBU^9w9A^G4k4Vatg+Enne2^HTx zrM9H8GX8?h0&S{B@Sa86b$lM)dm*0`_Kmj|{v^YDR!p=Oh9#7!q0?=BTlX`ZrrZ8? zLTx%C(`5uAjRYopVtl?KAv_c8sD2{Y(fa3s9X;YScm~zWF}OG8y#&Bw5AJ|i`AQ4D zLt*b(S@l#nc&Unx8~ebsZbf#czg?XJULF>EHspPb-PB~9swQr-YdPt!YEnws_0xGeqB` zF`_7o5xdNk(%6y?cSK0)vX6RDu0^1IY`@flG6n&a^A*9Yi=+HTUDc&K{hyO`HbvJN z%-MwSJ{JIO^#A#xAOGp}^kAd^t) zNe%yML4jG(r?C9@MBx!l|4U=?D7OFQv8grwFU8Y3)BjSh+WSqY=Bu;+?LXf?sl5L> z+~ogQOX+3*vrRI#Gp#Yv4NKcb8DQog|ArRwS9QUJlSr$wB?RqXcBi8H=@ubTQ+Z{{ zPPXovZKnXTK87rbYGvZLWwO!W#+9W}{TRjZz$C##cS+t2?!8chhf+xrbB zQ_L79*?Tm{=w62}=s*eD&j0bDum7JMY~;W7l*aR~mws5Y@(vNGsUyik-EZyp2sJIw zT*6TYUxMEi3MS7}Ff4o7=!2&8IR9~qQO1>{?@HtU9#!uD4o?p@{C_Q_)A_eo-sSw( z4@v;AKeQijyZV`ZM`CZa7=AO$k`$>^YyLVj$GWC+(dD1uA2Y&H^~~3FH>0VlJELh$ zC!)&I@J)0GSwsJECWQ&1XVmm)!s;sjaEFYkcGAnaLu2)#$A|Do5m6)9Fo%3%s)~P~ z1xTth4Pp1_rXC38MGu7XP!AiU-XoMA^qznj zZCT=rqUQ2n?WA7T^W--1P3e3Rh!)pij%_)w(qd>;0EGq^67yu+jK-*@lj7&4`lwQH36#YoFY3xadUJ&h?SA^wgZ|HZU;OLR zO#cr~kE;0}k4}y^^nV?t6aBBb(CFmd*OK)kU_0lFJYc^s40}H*q}&(aiyZw5a0Y%c zD1SAV_re192mxv4bML0vgivn3cMKTzwd_dXB_2dxS;x-4K}mTxIi1ujfdDtGrVWp<^mD{li>{mR$OK>Zk$&F-NC zkx(9gG!Hnfwke_e7-g$9ozFVi!5KmGy>#y(^pqPMW?2XkE`r@SOktgATAw1-j%zYm zf|HoGkFiB-2#$|@fNAzX|MBF2ZUeAvN&WFJ8$T8LrIo5b_C?z@BEKb#UbeD#p<<*) zASzc%r12yWcNxCG-QY#IX z>K`lNDXs)120NqZiljKMBuLKH*QQC9^#l+J0XwUGDZ{o$Ao>>KG?abKT^QY)18o_J z+ZobYR>{R!52Uwf?k<6CG{$v}jwk-(&;cTuwRfDV7VTQC3>{lQ=3e3^{1Z9Gx`(4RIL|Xq?jV$Ml z*|N`dAF;Pzn;O>bWLY(^li#AbAsI0h|BEb;OsyCcJ}aI4Xt4~L9fPR z6!S^|ZX`dq(;6FuwLT;h^k4kvUG|bL-p{i3CDL8mAeUJntND6ZwT-SG#4=>2cyeY8 zlo7{ML}vUN#Ux8uXaWPtxy@+Z#!F13jP$8!ihS|=iwkl6!f>%uD!Q9LR=o>xCb%8W z_~~&3qH#)~_}BI_o2uK`g+iJEoN;uE=qi*_Z(!Z#>RHOcGo11I`8jyhDY%s{+NsKn zyT8OVblAfUqrYt%{n7rT4nIYVsj(leVeo;;_~XG(UpA%R{eQ7!eLcWh{J##5kNx~l z2d5_|oBRKDlrH!G&ZWO~v1oqp;Qh7hIk$#y?+P$YTD+{}e5!R8t-2f4YoW4=^ygkE{CkMTZr#-{Ziudt%EzRZx$?R6Fcf?2 z87Du(Y1#m0+x7(vq0zJ@b@V|8BllYiI&S68xcr60i4Odq(7TktWbe0_lI(Xfy3SF& z%J)A_cKan5{Cjc1q{KU4Dp%u0b8#P!J~ajTia{ zXL68WOz0Hy9l#I*6V7vXwzr3};XS^?IZ7}b5_-EQ{@N4OhXWuwjc1giEM6F{eV(S| zeg}L@=m;k}fKc!r>aY7fb@f34~VK$qN5EVmG zwZIr>m`zXuekUUdh9VAe=7K&DVA)JQ4<66bHqd3wZs3n3cn&GY+3iaNlN4vD5CY!i zDz_#`^eE@T6kEdWK35f6_Hr$a4;{F7vQ zP0e3ArHozQIz)lI@~aP#i2$lcW#5@$^2_w(HH%;z$ZlAj$* z==?27`HDo%e#R@W?_g@>j~@qOV*iJn=0E-b&m=!}d|u7Gmq_{vjc@+Pw$-`i`(K_) z13DP)D%dt~0RQ;I4YuLeuuzQDDUAfAx^w7(3s^gzoIVd=eN_wSkpxv;Q0&`0>Av4xVq`|E;A+LGPtp*lWaBCjmNpWz8}mMRUwB$(lqWk|t7W z!!f)@+>(UEzo3xZ03~TUg7KXahA8CdcA>x&gDbv^Rx^ea7%2;?d}Trk%1OeMVw<6R zKr+OJeZ&!OCRZ(xm;v|_iTQ4^()T1yadxZX=t_O1szgZHJ6tM^m1;zB*L{s?ThYZdkPT?pO@Vm9Sp3z$rZEtIP zp#A%qd%e>e1@pkt{ajrN8_3YD3~Fy)`k|#pX(1#(w4)-c)gw{075xRRHLEYZ_&>^1 zvY4W*rvT8#|DT`u_MfBU{Z0I*wG_qwi-ldG0N`wvwMzh!vooLToA1N5ND1Yvu0u@l z=KCq-1f-H6xDg}t)C&Lyu3;k-h1yhigE^N_UU(vg{#qx}CsGUQZ~4uX~kns_uTKd5To{9?jAjrYH$st)z?caz*lTbNj(2 zWR@migaDmolEVisb8<*wnxYi5sp@J9Kj7(X8t5_vTtJ3gUZmXOIm+ZMNuV1Tb38{C z^RielJjOaxc`{Q^!R&h-ic%<=3P>`G4~LZB;3)!p0(pVX6fUHHsO-i}xU9cm98G~* z2mu4pDb55{#QgsPbC}K$n9i8=s?7<*vc2{(9fHfT%#5S1gm%h%B?dAyN3?{NfMlj{ zRGusH`iQ4`pyy+b=(l>2&cMyh>(CD%6`M#+MT*BrUQ>}VfbyKk;Z7hc7aM&*@l4Lw zGyS0YLhTy_2nFBD&9yDZAa~ptqcjnyGsJi5kOOe6oJ*1HRQJVp0Oq18O7SfgTuHm* z&N!Juj${Y@2*qTID#O)K0G>`! zf+0ugLeCfG#Z(Q!jne^4^9kHd(Hx~xJi-i+EM1r(fzd(+V?>mxB}SQK`vR4lo7e8* zj1lBBid+)$h9v0BEWQ3)UaY8tH6i!liX=8o0Z<$c3gbIDB^<;s6XW}jw)xs0(ZCGBGKI@l96z^RG0usKS&d9GkUo1 zJ8|0CiD=Cv%*0@M{rda+A6fbLwdo|At3IM4xD&f}QO zGWiZhlC}D26lbj3Xenh%5LO|52_V-F$QyEpvJQweHD4AbI?IGWeUU=OI?jjRWZAAQ zw$vakh#v72-lD5nnqK!yKI*!;aEhn0V-K7arWFhwS7cx2m=MO_A}+ROhk3GUFFQp7 z#MR}?j-6dyzI;eWmsb}ZJG#8OShgcJffQX)BDD0kPN4LbLl|neED}nY(5L7%&hA(T z462QmK66N_>z4am%Yn1&KmKVm{(p4Y!@X_$7}A2O)IL?|f>cg1p_nfoM0F%$6-W<9 zE+a|t!s4OC$%a)DrUtsy4^>Wbl9JoSbxsjXE=a~Wg*fBOZDtGaTELGm2tk9+Qw&-2 zGn_7HTc92Z(d;3c)c{!bt(QO|X@1kyX#MT6v9!$(lk7VRV|0ZmCW#3nu123D;+xR?}A=-r*7Ih!Sj<6e0Hz$d_ z(GuDQ#2KPYdz|aPy7)v3?1~oGIlRx%LuhiRXL2>ez!~Nj&QRPhU5DeeTGNoaoF1KT z^`R$6gE8B`a%TQY)}}u8AI2d^<5}9*1HA41-~MsM|Lf#*^ZsuwMH+jq^}?>y1Kis! ze?<>4YYNuk0#=#vPsdk$;|R7&M=)g)C{#(iy$q=FX*ksHKC;hP4k^bnDajY@G*%9? zOu?tWv>;Q|+j!M)N=@k@|CL#Qick|E;As@gK_NTxAr9 zAFb?BS_XUsfzS7{5RE<83f)|_3;OrjZWNW;6&F3*jl!$lKit5N%jDP!n**xv;T`#< z`m-m`h1*-MGSyJEGS)>@zP68aM2u+L7YN*FsMW3t=*?*q%$9W$w)nt0gh91qoR&RT z@v03b9QZSk2CE2hU_+533XLQq*{%#N3VtySe~kh>TK;LBUu}kB04n#$jNt_B07k$) z0-Ag)&q?WUDYO})PI{k*|9#K%Mw0l1%aZ)Rc$C~l0%+s^`<3{QrzeL;8~(qJ;=TW0 zu>=sEH|+WNE0w%=thr7v|< z)$kkHcF~6gwwYg-Tg-`KuHp1#)OM!@E>)7blNaW8;<>#Da-Qz;O`++`aXpqmU3p0SM(uqmr5OY;BDw*PTK6Ww!wDJGr zLqGn<>CyAe{r_5uWbZ%e)db%_hT~O>06E1|NEbFM+>!*PPfU&~4BG+fGQ%9pXl2H; z$?|I2nm~4?+6(&aXVwuvzmiYw6ZdBW{5t~398qA9v0+n~-6F7+!717STSX1Q)OAjr z;+w@C1jgeM9%ee)SOL1^PQ?tE8lJ)@Q`g(fytEld4)chtE9FS)d{N!(naNr>DK}X-ZU;Olok>9j;9_2ixRUO~ zY-|th{GY%C(Y@bbnl2UjOO+P>zkjsv`~U6lA8y`%uBFH$`v&3+pp4T+PH@I$PCga= zbVLhsSkI{CCKTK0@hu{>Ah!O#xcY|LI}H z|9Ag*^ZsW&MV|lH1SUdUNdZ&A9$3dCuTG^aiT{pb4&oW(WGa&~k8z6F4uDL9N&wEZ zls;U*Y1;k(K_fLpA2@|Kc^Ww(8}^<4UuA4Yt+2x&M^q;WXTS>c0fmSrarH!y=C{ED zu7JpfzY76+%jx?KyhA{CuS7u6hY(+cwDa@%o7VtQN+@gZPS1{cu@M<%!jrRPghQ2L z{0+>XvF+|t8Ov7E3{^jux(5@#Do!C|y?Sw4cIfE>QI5wrh8*?khs7{OR^tv`sYrbN zdeN}}TVY>L;VlAJvozJ+^qaLx@WBp)kq^Rwj?dVyJ2%>7hu+?QbAHjQ2Redr2e_|3 za6~hhg3F8}I)-t-O@MUsqIHKZjpop+BcoSzUznv9qyu=y35B;RFlN6lRKu?4^6JNa z3!cxrthWlobDhDQO-R3^s3Z93roH>>KVfc%UFQvFw-oj4Nw?_${X59fJzRkEt4r{n z%zDyHDq3{u=6gc%KLz7VWt`yi87Gq7(thKbA zWai(@lG~o#Ake-;ulHy)A>^(fy-{ttoKs4sh)>Xrfj5X#9QRwIscO@aQSZKi8N7A5 zcEA4OJ{)`R8gY;lD)wO^z3dcbR{ZZ*@;4?eNat5qKfHh4XE8!YrHB&nqeD(! zlUUlMyHgVh#Um=IhSD92Z(w{k%dZtJUlxgx1fm&2e;ls$`{cgens?2?o;LdZ+DbS5 zA7_{^Zvbr3|Bp^j{P#cmheszH{eKJ(r-x8DDs;fR-F*@#j4Xz+%2&9;C)eFpXL3ua{TqHJH zC?yCVy0%8#&>6arM@*w`9GP%7CUmNkZ81;=j_PiakN{&7o7L@J$ZEGJLlknERf`MJ z@*gS4A!GN1CQM%RA(V8nffQUj%WoqU1vl7_q$taEksvYoD2p*-LkVZ7Y&3*6^*DtT z!(_CAJ~gCny^`#ftfp55sZ+0UisQQpnK872j!R&j`er1hE9g~#sq61Oy2Xqm3f|?S zPeS|jQk)5*8xN@l=k@XW&A*=Pj#UQVv?X; zm1qpWB-s@Q-$KK^3^l?nOcIi@p=hg`7Ty51w?Gg<+0<$oh2mFxIR1F`wjDRY1`^C9 z8j+9bJkOM;z-~tb=XurzvkY-IA%ypyI@7T4#F=)D$ek;mkw6YdkRfmnF}H2aoT$j2 zopw`#ayAqYBCrJ>Ul{Ht|4HWdSoc2%2giri`=8^D{I`zMCe>-Nrd6ynB9?2revMhT zYhK+vN0bSIoyDkc(*&tBDg9b8lU=1>Gi{{n+iVn4*!u#R2W<}zgz}))(wypm*eLLy zOKGP6TIS#TO$hyuME?)=pC4B5{|`6uKh{z#lb*_WELK`SdSRt-HCl8w2e^8oMNziK zvow|Qsn1?C2tevpkEq9nriF9U?t9%zjL%+xEhF>E5AM4cR66*!h5y!7^&2J23$rZs zc@0I^;U;<*a{N&Y(^Saf(Z$=V@1k&nJG6*EBxg~-)hNA(FJ#CL06|Rhh3hozy)Bx~ z7=MXSejzGu6*J@2eydl-xbA+%c16|QuUKR)n?l~j3PFhPWHgUC)En zZ;6k9HzAZOXjpAXlIa}d#(jij*6}Xz(g?EX+ zL-h7gJH&o>W+vP1vEuw*ddTDy%`urV`&MU+cs$Wr;hk}+EHNn|ce5Ns^8;~&42luh z8ooy)!>W_N zHGi`0d(*N7NeZ*%Jk2NY?Q9B8S`agVezYM~&$a8YUg8{>dx5EofrnoBoH$LQ77!H0 zYMokmggjGb3_}CbY-N*aM1Q{4pS`XlYgHp}jsFB=N~S-VLYX`C z&7zkrLVpdtXK|TZpvSfuklVt@AEx_Wxrl4AX_|;$XfY4aittm;Y0`6B4O}`0q26fb zl+1Bbc)J<2`(OzozQ|EzHbCWZQRS&lx$Uk9NfEW22zpL#F553Xr8X)TS{`r^+56f& zj;pEAim4U^hV!0};R9#ROV%=#@k*lT&Oq$dqK56T!HK%9;BAnIVc1 zb9r)=&3`LJCw(s^xtMlB^#sObbR{ZOCB=Yh>;h1RBrj3dMM|8xheDo7Mrszo9Ui3r3-U;Wg$^Yd0ST8z|GT2qBL~1{}r$f{r55>7B-MZ zTVgS}u8paa=2@{i8V|8zzI>AH8X}*0mPpgABHnr?NzdqLR^vksv&7VCU67)7-I{cf z1PhbKopn6X6-0?Jm^3>~SCBGFAH9!7mP1!L^1(RG0?CSAzJJ%9%{ zVs$wjyM60X?rX~LZ;yBAjNmv@=aQ0GDHt!Ivz7d0DTS>;==w4)xjV{#mB)2`kVW53gp2HGlONf&X)L!{bJ9r}sqFdeT zZPZuxzimmZzK7sjau4p2Vr}MCcLK2Kfb9UPUe%OTPV1fCK(hpW*b)CVL$U^qKU7A{ z6bqP9ur>M$75-Iji0f*m#tHE3W)HYdAN1#?ZJboUuRP}* z#*-<^_)BqYu`~WYy!FdtrJrT#&i`fTjir3RTKNC|$#Xyd!@=S6P5kGzlr9Wd2VE)I zo8d+rO>G8bssh(&F0IzGuB#rX;BBu&BN-?roB-DV{S^ohQNCtabFBrcG^#f%5^;dlOhPf6-mkv z0NuzztN(u`{`>LK$tM2OT8a=729E!yF&Z>Gfwl!icfvjx%CYw~_|7~g6M{=p_Qn8Y z!M8lF$##-Mo8r`LOIOez%Vv(liDjdhKzGN-1GbH4R=( zt?XuMQ`S*B(tqz=Pd_oR?f&od;KZZW;7aq3ONWeVEFCrn-HI2cXUvBgIOAM7ImKL;+5$L_xqeEy`#2oK$Ig$3C=s zWsvl?T_DOvAQydxeb_$Vi$oLr^Gmx$>?;4M2hYnr0d0Bzd2saHfB$)KaJ;eqt)=Mr zPjYovcIj8dui-S$tlnW833wNfDUsMYSY?;qh1uhww4q1uL1e6c%o1Ui88ZJv<;pa42H(u)0_d#>`u!*Y^Ls) zuZm2nx|<=m5t~&#RK^S>h~e8zIegy}dZ$)i`nVe)re);2N-g_HtN!j(b=XhvRgJ15 z#ASxLVPqlG(`WBTSF`mRH(xIwI_de4o7i%;Afv;ANI)eJiWo`fND31&QBKus-toyR zsaL!6oqb?@w6}E@9NQ7!&xQl6HwX4!!%P|=4WZNF?J#F*yqtgn$(GT4wjPF`lG^k@ zmB#G&?rNH*w1MuH(p!R3e+^mtY-RmI5LtSrR9dYIMENCSGerHobJnr9Pc_asx}`9j zQ`{uSs;MudDVvbYT`C1GL~4+?(t_Ew{FgnA3CUfEJ}7gcoP5{;TRdfk7uw_CDGQ(~ zW>7aM(?EFjTuhAkb(@kAOo#Y`jLdnVBXasJ?W^ii5c!3ttnBVrnR!hL79#{^OrUM{2E+eoWFh*1yQObWGfaxtWzNn)E{p@@x|~K@lM7G{WDIY!1QgK_wRpaB-;*R zE)fhw4UsT*dCGRbN~$jbh3J=j0Dl6U@$H6@zZ?Bt3_c{SYyY%gO8T-~*N=JtU9n-y3g)#?sOLt5btKhW&T{aR1nk|9^0> zdH=hfQi=a(s8^%+SH}>5MM9Z+2QXa)b@czz)onAX`Q-b2nJru6_oaWfe7|f!zW zYXEq58>v}1ARR}qZSX8J@$=e@YzFTlTk+O*HPg1GCA$N8EN8J|Dc$}8iNn!9{F#tf zl2J|)9n+-xmbHnS*zLCbp=jx=u1{^pTdH5bZLsf(`Avm(IZqOm4m^geVweqU$sYb? zDyR3ew5oeIPFT^D$^<(V#C?}q|bfHwc{qeGwnA08cV;=iw@ zRQ$i4m0pbxxR;u*UKnsHb`uC(bS<&K{lOOw-2Gf5A~=;SL7@t|ue-QA&?d+601lm9 z$V2!)mVDs!6$Sh5<6!P>nT@OYW0j8dKalORI~Qp8|MvZVj*g#i-v6wnNRpM4Bq>&R zBv*H3zCgh|slEJyf)F0x6Fg5wHa`hq;Si;@xq#=%sE_0K6-hveIMDOgbM%9X}T^w`m#Cm`RcLEDLg^rwp4uu{pcQMQu^)HSP<9OT5+ zH8KK&tW+-})CzLVqMV$sI>*sE`AxQJywk8LK4yA^r5Bpp%p_Cpusn9Mn9O~5K#W;PFw@K8XDtz(KfO>@mTIB<*U?H{->Bw z%oj4%>x%FHj!sYg_^*dY$ImzN|2m3dd3tq$T;5g1{xEw+(%rt=fZKKr)?T|q$L?$I zd{?bspUKxou9xxGS=eT)uRYF{+IyXu?Puw=n|^^d-dKQ>zu4i(Pj085xSZ%762C>Gbby@js3aPW||w z`-i8S_#bO2iqiggu{z`LJnk#&i5B&O8KMj`jxsmcz5V%#gt8KYULsl9tXUqj>a9{5 zv*xXzELJwGN@7i+q@FpCco#Xck_Q$_x5-iXQv2E4>wB}vpDbjX%9offchzi-VI@54 z5ig(Z%~qKVc@HB`tE3coEaOL*-3K%A{|gm(jEq4f&$GX`#II7XdX{3wRi(h=0r{9h zY`pIw1C@=VpajBU$oM@tyS+#uo`$S-A(2RorE0rt5`~&xVsk>_EfU0RnAutWtE=qT z+3FU)^YuuRwB<~zlck?Sj^n^5l|@)SR;l?dN-$GY(|^m@gru6C3oRbGu*;up%HTbK z?a|qsq_ZhwQ~}y?*lzxVXOT^HS2@Gi*A#xV~IPjE>g1 zkqKfMCNk@?7}_vqczE~U*btL&jDjE_vw@<7;(0Bo>WsM=rR7u8N{&^lYgMoLL36dZ zdP}kNU0SAagi?Qps*l#*6nJcR0SB{;aK$w|nAR`L0Cuh}XAIHmko6umKRUT`tJTbp z?Y)OzFw3R1;U;7XaaO5Y*;C~b>m<;sVFZT3e*D+KpwmOHZcqJ7R2pCUH_?i0%-U$h z+i$NQLMyT{dm37ijoGSbMF`XqldaOC2T4u0F@?@S`TGM#7yzt(3J$dz1jc`#fAyok zU0Mwi^9Sq;djagBl#Derjz?zwZTFn3z9*Ja>;tB-T)`jZv|VQ~XA{B$_r+S_os(2l z^5Y)Oz2*&j#Z~oGL#7*sc97|^M&;ALRz)vuGWd3urfN3;gB}onhk7z-1Y({@5?4k15J1B&v zp;3f)TH9JpWhZn5L1r{A^{_%2=V~^jsu)%hg6zM3iQGBrvryr6=taib37LytJ58(L z7b3j1q&Tclsn__J#S8}?;g13FLe`0jLpbA;Ys3UMuKD#PW-*x~x(HFIPAdPWtn@!X z?SFv&w5;~DQr+p1G$#`v?rt_hG(#K-`EyV1r`>o`mp$Kspf#`dJ)w4~gt~-}sf@hW zf=zcu@-RKfhQEot^o5m<_kVN*m%jjP^Zz5MCbYP_5IwVDx48fE2=oj3FPhkwmh$i2r+73hdhT;eDRxBT z^`u<0r%wwd&}elGs|mwyLTp&Vg$a}Xg?dgsiVM`b?kMG!?B?tw&)L)ZI9-lGoX!|W zKj8#{JG1}^K`Iu%ysX>-kTIc@tLFjX=r7MEko_B4coQPQQUN#Wd`oCI3PvKYY|_;_ zNGTHk8Tm#1RZ3U+kIXn)Rsd{`|F!SG|J^@5-1vX3rBvd7z85RKlIWju&p6Ke)reoJ zju-07YT?OK5;t3*k{`U-UTUw_#PpIsTCuzo1fTMC4*6+;TRPyU!nbR1h+FHh=s#V0IXMi^=$?JdFl#A=gKdzZS^b3*4yHS7v>c z8oo7yy>xu5;U@9(lRsVRo#AEu-ptMht}Y5iIixjtmrX`!a|iP%$(QP`{2KK4KAE4J z4q9W*=h!E=ZFZLaJw2AWWs~W7$RZ;EByXI-p~fo4nz;o$JoDiRbD*K2$Tbl@e6H)8rHU;4@a=W$GCSzkMFoBj9juyX%@d~&#v z|JP9*`Cl*ZiuC{ubvbpQX#9j)0e}jLt}g|=!?Ki?V3wk)ESO)OQfJUOETKA>J=R5q zFjYSpO+q8Id2sMok`{{{+fSO)G~I#Cq5$?W((pCPmLbdcZ0=LP3r$_$%|KY*W z=Kg;z#Z79nIu`)7UzQ2|?>1e7JAl=nBW~HziFThP#H@{4FIh{q>k#$diO#f2cL94+ z`-xgs%P-J%pm}B5R^_kkN3cxhtxv+0;DJ)8vlqIFpiPJGQxElTBmW6T`ggh0=Pv_y zl>giybSt+1ogVx7{|`?Nk2mt)I!Yi|-pYhPKk`^FG0<=P_=2D}3zjHY8-j7I(x8i9 zA9>J^|JNiDdShLsP*@*Kuw5*4+kSb1Ve1lgSf0PKbhvc9&rd=`>={CG{a&YT4BL)! zXv=y3Y%QUEBWixiQs7eZUr#e&oBa2@^8Wki=<0>QWekEr2Oo#yhU%bHBVo_{cvW@8IY?seleyp{feG)>X zzh#$^B|inz=A#LeYqc$Ql>hG0XhO){BfbAQtiJy_+{FJ~OOado&5T2iv)iB4Dyy58 z8C4E(s}cnD7V0Vd6|Ej$;F~thf+hKBl%7c1Yr?XR*r(e!3VLSpS18;yPI50PuL;tZ zC+^iQSHn{MHHEs*+UL+Lb2p)=k#0YsbksCIMv_>`iyEC+R-nl9w3>2e>!CNn>g=fW zH3sACHju-nNxCcA>2-?jb$UoTU^`2m!qE`Lei$~9(g)#Z6NOL2;JGPI=_>yddY2NI zETsUn$p0t%C&#}0e{`^s|JPC^Rs2b>?y4UCnBCG>)-Rep#bcjhi+6kEQ&jKwyvH2V;m+(QSrPkQ1D7!zwEKKA5>g0}W&?k${V30K4GThaANmCEyp` z=vSFTg%g!MC2BhdON;ux1`)kPc}f;jl<|Htbz-$!jf7u8?V3Z5#nOqe4=YdsbBYPYe6ftfPbCidpb_h7dl_pdhjy_@_uM=7FY@3#?*?`FAv1DTRoE^w<1*k=DfJoV#0oE)8O z;{UFt$h{m~*424{%gr+kcGA}syb;vni;Aja{UrM}aguxczo|)l8UfPBrI$aroMZ5f z1OZII0yCgSkuo?1tF-=yH)^k|03XLn0;bPhNbS3Ro!9QEg;pU7$g`TmSO(iw)BqIw zfKY%rL+N-2NSPI9AchRd0KL*;KBi;}?lGU>%rvg-og7if2~~t6K_9@DIpD=lk!oAf zh)U$d#xd20<>x<5QrV_0Q;2azyFNmJwGrxeK-ZjOR{z$}J`K4W)bp*+&3FG{Vtef( zcao&L0SyxJ?a|XU3)YJ8Yaw5pRv}#{OkURKl+1C0=#HR6@}f$AFtNF(kjE3Dw_?#Y zO#!>Zxf0IN@Aj&Bk;}3$iveaLY4t z(og?m;%v>*o_S!}-hUjORO7##ZsNbJrKoiGdRbSk@)@|xX?bPq$5-r%8F2DGt8Y&h z{ZIG5gz|Q6rmjg_E5_GDL#y&>FYce2$9^&YbgM7##-MdQ8rR~l`G5mBH0g5_=RM-} z2|mLuHe*L?d)<*h34JI-l6(Pn{69(c?a!(yaf@B?sL54QIG-(0{A6=zjod%^k zh{xso4mBkE!NZpNrYZ>5LO9xcJbcY~PzekmzSype`OSlVf$`@9;(SI#>^t|^srH%fdRO7!K>~G?~tfe?v zngrQj7gObOBHsIQABr*|)W?KU6sI=lI4`l2^8E;b95SKda{?kxeumRDdLXAU zTRj59g4?t)o3f2%e}rjTQuSvFIWXL|1zbEflgdCOXH@(>N0f`X`uY6LYca6DU%z`B z+3-rDucF#y1=r>TunD<0e@X>PFkuB-kGqU;V_t(LNUqvF0{3K=Cg2`sT*X@86vo^F zL9%qQ14c6rMkt0eX=Eu^y%@_`v{TrGE;+bGoPiutu~Lu$sU8Rc19P!c#ERdd4@P|x zU*)E`hcwYUtl)7nP()!C6W?uhzF5<5-Yf}wc<^Sh? z{)dy3=bQWwYbkA{t#-{FTBlWgc_R|II>E_@9k4ZG7C|&k8eh+dekxXYbEi{Kfe}l0 z#SWGBFcpsLXIfIjH4_@{TPAW@WJHY0%nN5vtIU!$PiX; zU#=kjQnmzYDZ#reU4UN{v|oW-I-wAbP!Y`zXP{hsrBB=v4u1KH{Tc;U-Zhym_t1S) zf~61r$5VKVu4ZYf!h3XP1a0*H;Gi1+>GWhn|JPAk?da7t@6QN4AoUy}&|ACwpU=`% zUD5Vc1A=%xI{o*0?Z*TB#t-HL9zeqj!b`RxyI)%AMgOx~iWuvy0JPeF4)%Td|M~HT z{;#F9-=h|5z69M@jT`8F3B6UQ*L8c-cpHbur|qh@o-|!IdN?gtfC?J!O#g;`gVIX1?dFfnd9+G#?(Z&MwIHec;C$ziK$0{xK|M2jrBL5$5 z;(x5Cw9eUzXFxY__Y+n$6?4I*6AoQ1}Xs?!x6M zkM<(J;EirXFN0v?yL>$$JC=*J2u;uM^%$3k=T-OKuObC@lLDA40yOJwmE~0OL6_C6 zN(pB2Y$1Wo2{u&Yy%nbCF5PW+=v771zg}Npk zt?<6U5@|Hr$s=o}}0G)b9T=?|moe;PU7O-N3;58FoVe9&F$Z05yhQcd0gd+Lv6Gr~lp6z*hf{ z6JP(^7pWyhUs{_*WI>h0Stx zvCAeXO~GwSMk;s*&Te-AMJeQXjzA9i#QF}iWbm&bL$`{^JW~-8QKBgF|FJz(?*>UG zTMCpwjwncRhK7UT%j@5+IiYCqui!$3;rj978YGyq!SELIJ^8;1{lRebPr4`n*L;}V z?uq{~f3kVDR{~NG;lUWEhz-6Tvip4S^>765244^PRQ#Jzd^`C1{~i1*_z_Y}W(-`u ze8mRCoRZ&B%m+i9Ah@ThQ}X*@IA<|Q(B9`j8AIp)_2tE@x7V*$)<^UCKR7r!JoL{0 z@xk%N|936rn;F9yVhmi98I>NIG0GSM2g8HG;0jVWMI2E!7^oizJ##J|Zzc%b&>51E zco?`+Ct?R+{x=4Q3?8on{rpWu*`ateF@H3goKtD5vbkso&{+`e~fHRO&lFVY!a0fsJQj*;UZ&HEy6?2&a zA5#?bbOD&08XZO&+6d|pu}KXmG9Kd?!xT`I6NWjViyaU{4pVXq2-Sdx1@tloL7P3bt|zVm$>rHIO8wmoc)PIT{XX>Wc*$lQbpwf-}UB zAqF5tJ0O`MjR~e8gM21Fit*F{GOoUmfxngg3RM0kcMSTFr#Qx9KshB7Ji;6$XEnff z!8fxkNhO<6_lg2LLP3IAp2CF*?BwivsXL861iD#m(9iY4VumAjCy2gL~=l|X|A*5jj z-sLD8Xc%Uq!1v@H%@N&^O&!{$BGI8a%D9SxHbP(u69nKK;uMZjG?>YFb{e#Yo}@;M zL#~dX#PxNtJZ20Wec&=30>!rz4xYu^;Bf!oId}sphA+PX7lh`7s!2Z|?SS(%1@A>w z2Hqov=o}@(!GHbd|Eigz|N77WEhYd0PGN$kklu-{5(YjT40cyp27^Wxbc5)WsRcG1 z2uu(~qXoDXq@RHWnaNdAQ^SdzryWHj1-Vs$t`j6FDxRZ(IM7VUsR?F^At5Q9D$1LY zY}Y$#I+Crk>_b5c3#KTkw`>kG5aLifDs0@25NW5F%LAR_sUT_tx3}S7@M=6pu{ERq2oME@ z@OQY{zhY|+id}m@!SO^K2@sPhVyaX7cm&spsy!(I4n$opme=&^lA4_&2C;4>;h1A0 zlmrTIDaGQm@2X~h-Xv~?sOsgL~>PR z{6fTHibvHGyCVlVoyqB^@kCHCI1o}bqEZgf^h8M#_FV1AWEF5c#wnJx0A(BtvM$#f z&iI5-{7;k&C}Jp05mi4F-BC2A5N8VTj2VXKZrQ;=(1n=ff?eoo5xNZ)TU8zaDOaGx zZKoEZJV25ovO#EGcZ4ti*i1(dB`!Tv+M_w%Fwawr*nlCik{qQA$p#RNC(YZ@YzymD z$n!UcbTQ}#f+ERY62V2y5)21}pUrf}Bx5;_XJp3Gg^?nh!HAL8 zXb9BS1Qf+c%w-ifoY^o31x%R^LyMp#=U=EZr_Pa>nV4jX{4im6$e~W4LRj7TWBUBV}vejZbv~%ZV4dclBBDwGUb_M;F%Hk)l@AkoddQ2 zgG@-Y6fv=%G>u8L3|An%Ee7!p+S8s2?)vNb!E^lsLy#(L<49>5vUSD3E zfAjhkczyoUj;yCu^_SqMckllVTwa5#_wRnZeEI4nc=vX2{#Hmi=hxu!T5$Mp&aW@8 zhq}qT_u%_i?_YiMGkAG&rKnH|L_w zwhisww}UsY-d}uw{`Thlo6FaiH$U%yZ!d4&3W(pndk@aR)%p9I%ZndgpT7rJKfJ$s zcl~MyynXj}_wwzx?=Rne_v+27w>LWitHI6X&Ffdg!N5o;RYoJ(EMrq?rLsZL^Zj`8Y23pS)i!X5US|!H=5A9}f2=pUf5@ zg&a{s{iSXuekeGvifYZ|VnB|CSR@xD1T6sTUTifngJpX$X;TCww-l<3RkiR!2n%Qq&O_ixsKum~5~_=m3K>mi(!X8Gr%;;%4&|yK zEY|l7JcHXMu*`<1$SoNgDqrkKSVj^T!0|LEf^KFGHWUd7Rms9y_Wl3aySkP3VJLo| zr#P@({Qno}g&Pwl4Cb65xH{$wG^S^6&^D50Sl?c9lGdgSgd)PE=dQ`guW9pfKJsx~ z#}0JAw!$T7FTG_vr*_}i-}3L}KOBn^weg~|GPVU{RoJ$R7@LGWuB})^j7=km6%8$C zQiLMQixTfD5FgPcIDK1m&i}hxFYh+%C{KUr9pA41&#t@v-|5w`|Myp@Sp|7?aatG~ zjUX1e6?V_^fH^Y8!5?#2N~unTnKJ+mTX&FQ4$1iblx4BVF`SW{cGj9=Ly%YM`x3%N{6OmDUI=cZ$)NjTm}z?LA@8!mN-^?ymNMtD@S1u6UG)`v792n7m$Qp|NmEHy6pf0 F4FF(SYD@qC literal 0 HcmV?d00001 diff --git a/stable/nextcloud/28.1.43/ix_values.yaml b/stable/nextcloud/28.1.43/ix_values.yaml new file mode 100644 index 00000000000..7e796186a65 --- /dev/null +++ b/stable/nextcloud/28.1.43/ix_values.yaml @@ -0,0 +1,516 @@ +image: + repository: tccr.io/tccr/nextcloud-fpm + pullPolicy: IfNotPresent + tag: v28.0.2@sha256:7e44e0f15b03a82e8f2cbe049db6a79d314984b946f38791187e8863e78fef96 +nginxImage: + repository: nginxinc/nginx-unprivileged + pullPolicy: IfNotPresent + tag: 1.25.3@sha256:a0f8d9aaff264a5fc15e9078205274556405b095d78e0720a0af7ccd4dda0276 +imaginaryImage: + repository: tccr.io/tccr/nextcloud-imaginary + pullPolicy: IfNotPresent + tag: v20230401@sha256:b9137ac211ece1f8bb70dba685236e358ba40b49fff54c8d98991e025d168498 +hpbImage: + repository: tccr.io/tccr/nextcloud-push-notify + pullPolicy: IfNotPresent + tag: v0.6.9@sha256:033c59be26a930f4e3c0d2c67037eb1c67ec361139dc33ff0122123f13fb525b +clamavImage: + repository: clamav/clamav + pullPolicy: IfNotPresent + tag: 1.2.2@sha256:12772225f7df2c0be3bb1c57d19cb96ec21c6979c62738735563da020a100c3a +collaboraImage: + repository: collabora/code + pullPolicy: IfNotPresent + tag: 23.05.8.4.1@sha256:451616b720add064c176bf6bf6ae63c4fe5fb8a757d31e699190818fc1a01113 +nextcloud: + # Initial Credentials + credentials: + initialAdminUser: admin + initialAdminPassword: adminpass + # General settings + general: + # Custom Nextcloud Scripts + run_optimize: true + default_phone_region: GR + # IP used for exposing nextcloud, + # often the loadbalancer IP + accessIP: "" + # Allows Nextcloud to connect to unsecure (http) endpoints + force_enable_allow_local_remote_servers: false + # File settings + files: + shared_folder_name: Shared + max_chunk_size: 10485760 + # Expiration settings + expirations: + activity_expire_days: 90 + trash_retention_obligation: auto + versions_retention_obligation: auto + # Previews settings + previews: + enabled: true + # It will also deploy the container + imaginary: true + cron: true + schedule: "*/30 * * * *" + max_x: 2048 + max_y: 2048 + max_memory: 1024 + max_file_size_image: 50 + # Setting for Imaginary + max_allowed_resolution: 18.0 + jpeg_quality: 60 + square_sizes: 32 256 + width_sizes: 256 384 + height_sizes: 256 + # Casings are important + # https://github.com/nextcloud/server/blob/master/config/config.sample.php#L1269 + # Only the last part of the provider is needed + providers: + - PNG + - JPEG + # Logging settings + logging: + log_level: 2 + log_file: /var/www/html/data/logs/nextcloud.log + log_audit_file: /var/www/html/data/logs/audit.log + log_date_format: d/m/Y H:i:s + # ClamAV settings + clamav: + # It will also deploy the container + # Note that this runs as root + enabled: false + stream_max_length: 26214400 + file_max_size: -1 + infected_action: only_log + # Notify Push settings + notify_push: + # It will also deploy the container + enabled: true + # Collabora settings + collabora: + # It will also deploy the container + enabled: false + # default|compact|tabbed + interface_mode: default + username: admin + password: changeme + dictionaries: + - de_DE + - en_GB + - en_US + - el_GR + - es_ES + - fr_FR + - pt_BR + - pt_PT + - it + - nl + - ru + onlyoffice: + # It will not deploy the container + # Only add the OnlyOffice settings + enabled: false + url: "" + internal_url: "" + verify_ssl: true + jwt: "" + jwt_header: Authorization + # PHP settings + php: + memory_limit: 1G + upload_limit: 10G + pm_max_children: 180 + pm_start_servers: 18 + pm_min_spare_servers: 12 + pm_max_spare_servers: 30 + opcache: + interned_strings_buffer: 32 + max_accelerated_files: 10000 + memory_consumption: 128 + revalidate_freq: 60 + jit_buffer_size: 128 +# Do NOT edit below this line +workload: + # Nextcloud php-fpm + main: + type: Deployment + podSpec: + containers: + main: + enabled: true + primary: true + envFrom: + - configMapRef: + name: nextcloud-config + probes: + liveness: + enabled: true + type: exec + command: /healthcheck.sh + readiness: + enabled: true + type: exec + command: /healthcheck.sh + startup: + enabled: true + type: tcp + port: "{{ .Values.service.nextcloud.ports.nextcloud.targetPort }}" + nginx: + enabled: true + type: Deployment + strategy: RollingUpdate + replicas: 1 + podSpec: + containers: + nginx: + enabled: true + primary: true + imageSelector: nginxImage + probes: + readiness: + enabled: true + path: /robots.txt + port: "{{ .Values.service.main.ports.main.port }}" + httpHeaders: + Host: kube.internal.healthcheck + liveness: + enabled: true + path: /robots.txt + port: "{{ .Values.service.main.ports.main.port }}" + httpHeaders: + Host: kube.internal.healthcheck + startup: + enabled: true + type: tcp + port: "{{ .Values.service.main.ports.main.port }}" + notify: + enabled: true + type: Deployment + strategy: RollingUpdate + replicas: 1 + podSpec: + containers: + notify: + primary: true + enabled: true + imageSelector: hpbImage + envFrom: + - configMapRef: + name: hpb-config + probes: + readiness: + enabled: true + path: /push/test/cookie + port: 7867 + httpHeaders: + Host: kube.internal.healthcheck + liveness: + enabled: true + path: /push/test/cookie + port: 7867 + httpHeaders: + Host: kube.internal.healthcheck + startup: + enabled: true + type: tcp + port: 7867 + imaginary: + enabled: true + type: Deployment + strategy: RollingUpdate + replicas: 1 + podSpec: + containers: + imaginary: + primary: true + enabled: true + imageSelector: imaginaryImage + command: imaginary + args: + - -p + - "{{ .Values.service.imaginary.ports.imaginary.port }}" + - -concurrency + - "10" + - -max-allowed-resolution + - "{{ .Values.nextcloud.previews.max_allowed_resolution }}" + - -enable-url-source + - -return-size + probes: + readiness: + enabled: true + path: /health + port: "{{ .Values.service.imaginary.ports.imaginary.port }}" + liveness: + enabled: true + path: /health + port: "{{ .Values.service.imaginary.ports.imaginary.port }}" + startup: + enabled: true + type: tcp + port: "{{ .Values.service.imaginary.ports.imaginary.port }}" + clamav: + enabled: true + type: Deployment + strategy: RollingUpdate + replicas: 1 + podSpec: + containers: + clamav: + primary: true + enabled: true + imageSelector: clamavImage + # FIXME: https://github.com/Cisco-Talos/clamav/issues/478 + securityContext: + runAsUser: 0 + runAsGroup: 0 + runAsNonRoot: false + readOnlyRootFilesystem: false + envFrom: + - configMapRef: + name: clamav-config + probes: + readiness: + enabled: true + type: exec + command: clamdcheck.sh + liveness: + enabled: true + type: exec + command: clamdcheck.sh + startup: + enabled: true + type: tcp + port: "{{ .Values.service.clamav.ports.clamav.targetPort }}" + collabora: + enabled: true + type: Deployment + strategy: RollingUpdate + replicas: 1 + podSpec: + containers: + collabora: + primary: true + enabled: true + imageSelector: collaboraImage + securityContext: + runAsUser: 100 + runAsGroup: 102 + readOnlyRootFilesystem: false + allowPrivilegeEscalation: true + capabilities: + add: + - CHOWN + - FOWNER + - SYS_CHROOT + - MKNOD + envFrom: + - configMapRef: + name: collabora-config + probes: + readiness: + enabled: true + type: http + path: /collabora/ + port: "{{ .Values.service.collabora.ports.collabora.targetPort }}" + liveness: + enabled: true + type: http + path: /collabora/ + port: "{{ .Values.service.collabora.ports.collabora.targetPort }}" + startup: + enabled: true + type: tcp + port: "{{ .Values.service.collabora.ports.collabora.targetPort }}" +cronjobs: + # Don't change names, it's used in the persistence + - name: nextcloud-cron + enabled: true + schedule: "*/5 * * * *" + cmd: + - echo "Running [php -f /var/www/html/cron.php] ..." + - php -f /var/www/html/cron.php + - echo "Finished [php -f /var/www/html/cron.php]" + - name: preview-cron + enabled: "{{ .Values.nextcloud.previews.cron }}" + schedule: "{{ .Values.nextcloud.previews.schedule }}" + cmd: + - echo "Running [occ preview:pre-generate] ..." + - occ preview:pre-generate + - echo "Finished [occ preview:pre-generate]" +service: + # Main service links to ingress easier + # That's why the nginx is swapped with nextcloud + main: + targetSelector: nginx + ports: + main: + targetSelector: nginx + port: 8080 + nextcloud: + enabled: true + targetSelector: main + ports: + nextcloud: + enabled: true + targetSelector: main + port: 9000 + targetPort: 9000 + notify: + enabled: true + targetSelector: notify + ports: + notify: + enabled: true + primary: true + port: 7867 + targetPort: 7867 + targetSelector: notify + metrics: + enabled: true + port: 7868 + targetSelector: notify + imaginary: + enabled: true + targetSelector: imaginary + ports: + imaginary: + enabled: true + port: 9090 + targetSelector: imaginary + clamav: + enabled: true + targetSelector: clamav + ports: + clamav: + enabled: true + port: 3310 + targetPort: 3310 + targetSelector: clamav + collabora: + enabled: true + targetSelector: collabora + ports: + collabora: + enabled: true + port: 9980 + targetPort: 9980 + targetSelector: collabora +persistence: + php-tune: + enabled: true + type: configmap + objectName: php-tune + targetSelector: + main: + main: + mountPath: /usr/local/etc/php-fpm.d/zz-tune.conf + subPath: zz-tune.conf + readOnly: true + redis-session: + enabled: true + type: configmap + objectName: redis-session + targetSelector: + main: + main: + mountPath: /usr/local/etc/php/conf.d/redis-session.ini + subPath: redis-session.ini + readOnly: true + opcache-recommended: + enabled: true + type: configmap + objectName: opcache + targetSelector: + main: + main: + mountPath: /usr/local/etc/php/conf.d/opcache-recommended.ini + subPath: opcache-recommended.ini + readOnly: true + nginx: + enabled: true + type: configmap + objectName: nginx-config + targetSelector: + nginx: + nginx: + mountPath: /etc/nginx/nginx.conf + subPath: nginx.conf + readOnly: true + nginx-temp: + enabled: true + type: emptyDir + targetSelector: + nginx: + nginx: + mountPath: /tmp/nginx + html: + enabled: true + targetSelector: + main: + main: + mountPath: /var/www/html + nextcloud-cron: + nextcloud-cron: + mountPath: /var/www/html + preview-cron: + preview-cron: + mountPath: /var/www/html + nginx: + nginx: + mountPath: /var/www/html + readOnly: true + config: + enabled: true + targetSelector: + main: + main: + mountPath: /var/www/html/config + nextcloud-cron: + nextcloud-cron: + mountPath: /var/www/html/config + preview-cron: + preview-cron: + mountPath: /var/www/html/config + notify: + notify: + mountPath: /var/www/html/config + readOnly: true + nginx: + nginx: + mountPath: /var/www/html/config + readOnly: true + data: + enabled: true + targetSelector: + main: + main: + mountPath: /var/www/html/data + init-perms: + mountPath: /var/www/html/data + nextcloud-cron: + nextcloud-cron: + mountPath: /var/www/html/data + preview-cron: + preview-cron: + mountPath: /var/www/html/data + nginx: + nginx: + mountPath: /var/www/html/data + readOnly: true +cnpg: + main: + enabled: true + user: nextcloud + database: nextcloud +redis: + enabled: true + username: default +portal: + open: + enabled: true +updated: true + +ingress: + main: + required: true diff --git a/stable/nextcloud/28.1.43/questions.yaml b/stable/nextcloud/28.1.43/questions.yaml new file mode 100644 index 00000000000..f2c111a746b --- /dev/null +++ b/stable/nextcloud/28.1.43/questions.yaml @@ -0,0 +1,4171 @@ +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: nextcloud + group: App Configuration + label: Nextcloud + schema: + additional_attrs: true + type: dict + attrs: + - variable: credentials + label: Initial Credentials + schema: + additional_attrs: true + type: dict + attrs: + - variable: initialAdminUser + label: Initial Admin User + description: Sets the initial admin username + schema: + type: string + required: true + default: "" + - variable: initialAdminPassword + label: Initial Admin Password + description: Sets the initial admin password + schema: + type: string + required: true + private: true + default: "" + - variable: general + label: General + schema: + additional_attrs: true + type: dict + attrs: + - variable: run_optimize + label: Run Optimize Scripts + description: | + Runs the following commands at startup:
+ occ db:add-missing-indices
+ occ db:add-missing-columns
+ occ db:add-missing-primary-keys
+ yes | occ db:convert-filecache-bigint
+ occ maintenance:mimetype:update-js
+ occ maintenance:mimetype:update-db
+ occ maintenance:update:htaccess
+ schema: + type: boolean + default: false + - variable: default_phone_region + label: Default Phone Region + description: | + Sets the default phone region in ISO_3166-1 format (e.g. US).
+ https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements + schema: + type: string + valid_chars: '^[A-Z]{2}$' + required: true + default: "" + - variable: accessIP + label: Access IP + description: Set to the IP-Address used to reach Nextcloud. + schema: + type: string + required: true + $ref: + - "definitions/nodeIP" + - variable: force_enable_allow_local_remote_servers + label: Force Enable Allow Local Remote Servers + description: + Enables 'allow_local_remote_servers' option + schema: + type: boolean + default: false + - variable: files + label: Files Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: shared_folder_name + label: Shared Folder Name + schema: + type: string + required: true + default: Shared + - variable: max_chunk_size + label: Max Chunk Size + schema: + type: int + required: true + default: 10485760 + - variable: expirations + label: Expirations Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: activity_expire_days + label: Activity Expire Days + schema: + type: int + required: true + default: 90 + - variable: trash_retention_obligation + label: Trash Retention Obligation + schema: + type: string + required: true + default: auto + - variable: versions_retention_obligation + label: Versions Retention Obligation + schema: + type: string + required: true + default: auto + - variable: previews + label: Previews Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Previews + schema: + type: boolean + default: true + show_subquestions_if: true + subquestions: + - variable: imaginary + label: Enable imaginary + description: | + Enable imaginary to generate previews in the background.
+ It will also deploy the needed container. + schema: + type: boolean + default: true + - variable: cron + label: Enable cron + description: | + Enable cron to generate previews in the background. + schema: + type: boolean + default: true + - variable: schedule + label: Cron Schedule + schema: + type: string + default: "*/30 * * * *" + - variable: max_x + label: Max X + schema: + type: int + required: true + default: 2048 + - variable: max_y + label: Max Y + schema: + type: int + required: true + default: 2048 + - variable: max_memory + label: Max Memory + schema: + type: int + required: true + default: 1024 + - variable: max_allowed_resolution + label: Max Allowed Resolution + schema: + type: string + valid_chars: '^[0-9]{1,5}(\.[0-9]{1,2})?$' + show_if: [["imaginary", "=", true]] + required: true + default: "18.0" + - variable: max_file_size_image + label: Max File Size Image + schema: + type: int + required: true + default: 50 + - variable: jpeg_quality + label: JPEG Quality + schema: + type: int + required: true + default: 60 + - variable: square_sizes + label: Square Sizes + schema: + type: string + required: true + default: "32 256" + - variable: width_sizes + label: Width Sizes + schema: + type: string + required: true + default: "256 384" + - variable: height_sizes + label: Height Sizes + schema: + type: string + required: true + default: "256" + - variable: providers + label: Providers + schema: + type: list + empty: false + required: true + default: + - BMP + - GIF + - JPEG + - Krita + - MarkDown + - MP3 + - OpenDocument + - PNG + - TXT + - XBitmap + items: + - variable: provider_entry + label: Provider Entry + schema: + type: string + required: true + default: "" + enum: + - value: BMP + description: BMP + - value: Font + description: Font + - value: GIF + description: GIF + - value: HEIC + description: HEIC + - value: Illustrator + description: Illustrator + - value: JPEG + description: JPEG + - value: Krita + description: Krita + - value: MarkDown + description: MarkDown + - value: Movie + description: Movie + - value: MP3 + description: MP3 + - value: MSOffice2003 + description: MSOffice2003 + - value: MSOffice2007 + description: MSOffice2007 + - value: MSOfficeDoc + description: MSOfficeDoc + - value: OpenDocument + description: OpenDocument + - value: PDF + description: PDF + - value: Photoshop + description: Photoshop + - value: PNG + description: PNG + - value: Postscript + description: Postscript + - value: StarOffice + description: StarOffice + - value: SVG + description: SVG + - value: TIFF + description: TIFF + - value: TXT + description: TXT + - value: XBitmap + description: XBitmap + - variable: logging + label: Logging Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: log_level + label: Log Level + schema: + type: int + required: true + default: 2 + enum: + - value: 0 + description: Debug + - value: 1 + description: Info + - value: 2 + description: Warning + - value: 3 + description: Error + - value: 4 + description: Fatal + - variable: log_date_format + label: Log Date Format + schema: + type: string + required: true + default: d/m/Y H:i:s + - variable: notify_push + label: Notify Push Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Notify Push + description: | + Enable and Configure Notify Push.
+ It will also deploy the needed container + schema: + type: boolean + default: true + - variable: clamav + label: ClamAV Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable ClamAV + description: | + Enable and configure ClamAV.
+ It will also deploy the needed container.
+ Keep in mind that this will run as root.
+ https://github.com/Cisco-Talos/clamav/issues/478 + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: stream_max_length + label: Stream Max Length + schema: + type: int + required: true + default: 104857600 + - variable: file_max_size + label: File Max Size + schema: + type: int + required: true + default: -1 + - variable: infected_action + label: Infected Action + schema: + type: string + required: true + default: only_log + enum: + - value: delete + description: Delete + - value: only_log + description: Only Log + - variable: collabora + label: Collabora Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Collabora + description: | + Enable and configure Collabora.
+ It will also deploy the needed container.
+ Keep in mind that this will run as root. + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: interface_mode + label: Interface Mode + schema: + type: string + required: true + default: default + enum: + - value: default + description: Default + - value: compact + description: Compact + - value: tabbed + description: Tabbed + - variable: username + label: Username + schema: + type: string + default: admin + required: true + - variable: password + label: Password + schema: + type: string + default: "" + required: true + - variable: dictionaries + label: Dictionaries + schema: + type: list + empty: false + required: true + default: + - de_DE + - en_GB + - en_US + - el_GR + - es_ES + - fr_FR + - pt_BR + - pt_PT + - it + - nl + - ru + items: + - variable: dictionary + label: Dictionary + schema: + type: string + required: true + default: "" + - variable: onlyoffice + label: Only Office Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable OnlyOffice + description: | + Enable and configure OnlyOffice.
+ This will NOT deploy the needed container.
+ You need to deploy it yourself. + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: url + label: Public URL + description: | + The public FQDN and port of the OnlyOffice Document Server + schema: + type: string + required: true + default: "" + - variable: internal_url + label: Internal URL + description: | + The internal FQDN and port of the OnlyOffice Document Server + schema: + type: string + required: true + default: "" + - variable: verify_ssl + label: Verify SSL (Advanced) + description: | + Verify SSL when connecting to OnlyOffice Document Server + schema: + type: boolean + default: true + - variable: jwt + label: JWT + schema: + type: string + required: true + default: "" + - variable: jwt_header + label: JWT Header + schema: + type: string + required: true + default: Authorization + - variable: php + label: PHP Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: memory_limit + label: Memory Limit + schema: + type: string + required: true + default: 1G + - variable: upload_limit + label: Upload Limit + schema: + type: string + required: true + default: 10G + - variable: pm_max_children + label: Max Children + schema: + type: int + required: true + default: 180 + - variable: pm_start_servers + label: Start Servers + schema: + type: int + required: true + default: 18 + - variable: pm_min_spare_servers + label: Minimum Spare Servers + schema: + type: int + required: true + default: 12 + - variable: pm_max_spare_servers + label: Maximum Spare Servers + schema: + type: int + required: true + default: 30 + - variable: opcache + label: OPCache Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: interned_strings_buffer + label: Interned Strings Buffer + description: The amount of memory used to store interned strings, in megabytes. + schema: + type: int + required: true + default: 32 + - variable: max_accelerated_files + label: Max Accelerated Files + description: The maximum number of keys (and therefore scripts) in the OPcache hash table. + schema: + type: int + required: true + default: 10000 + - variable: memory_consumption + label: Memory Consumption + description: The size of the shared memory storage used by OPcache, in megabytes. + schema: + type: int + required: true + default: 128 + - variable: revalidate_freq + label: Revalidate Frequency + description: How often to check script timestamps for updates, in seconds. 0 will result in OPcache checking for updates on every request. + schema: + type: int + required: true + default: 60 + - variable: jit_buffer_size + label: JIT Buffer Size + description: The amount of shared memory (in megabytes) to reserve for compiled JIT code. A zero value disables the JIT. + schema: + type: int + required: true + default: 128 + - 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: html + label: App HTML Storage + description: Stores the Application HTML. + 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: 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: User Data Storage + description: Stores the User 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: 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: 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/posterr/7.1.15/templates/NOTES.txt b/stable/nextcloud/28.1.43/templates/NOTES.txt similarity index 100% rename from stable/posterr/7.1.15/templates/NOTES.txt rename to stable/nextcloud/28.1.43/templates/NOTES.txt diff --git a/stable/nextcloud/28.1.43/templates/_configmap.tpl b/stable/nextcloud/28.1.43/templates/_configmap.tpl new file mode 100644 index 00000000000..081cf5d71c2 --- /dev/null +++ b/stable/nextcloud/28.1.43/templates/_configmap.tpl @@ -0,0 +1,443 @@ +{{- define "nextcloud.accessurl" -}} + {{- $accessUrl := .Values.chartContext.appUrl -}} + {{- if or (contains "127.0.0.1" $accessUrl) (contains "localhost" $accessUrl) -}} + {{- if .Values.nextcloud.general.accessIP -}} + {{- $prot := "http" -}} + {{- $host := .Values.nextcloud.general.accessIP -}} + {{- $port := .Values.service.main.ports.main.port -}} + {{/* + Allowing here to override protocol and port + should be enough to make it work with any rev proxy + */}} + {{- $accessUrl = printf "%v://%v:%v" $prot $host $port -}} + {{- end -}} + {{- end -}} + + {{- $accessUrl -}} +{{- end -}} + +{{- define "nextcloud.accesshost" -}} + {{- $accessUrl := (include "nextcloud.accessurl" $) -}} + {{- $accessHost := regexReplaceAll ".*://(.*)" $accessUrl "${1}" -}} + {{- $accessHost = regexReplaceAll "(.*):.*" $accessHost "${1}" -}} + + {{- $accessHost -}} +{{- end -}} + +{{/* Define the configmap */}} +{{- define "nextcloud.configmaps" -}} +{{- $fullname := (include "tc.v1.common.lib.chart.names.fullname" $) -}} +{{- $fqdn := (include "tc.v1.common.lib.chart.names.fqdn" $) -}} +{{- $accessUrl := (include "nextcloud.accessurl" $) -}} +{{- $accessHost := (include "nextcloud.accesshost" $) -}} +{{- $accessHostPort := regexReplaceAll ".*://(.*)" $accessUrl "${1}" -}} +{{- $accessProtocol := regexReplaceAll "(.*)://.*" $accessUrl "${1}" -}} +{{- $redisHost := .Values.redis.creds.plainhost | trimAll "\"" -}} +{{- $redisPass := .Values.redis.creds.redisPassword | trimAll "\"" -}} +{{- $healthHost := "kube.internal.healthcheck" -}} + +php-tune: + enabled: true + data: + zz-tune.conf: | + [www] + pm.max_children = {{ .Values.nextcloud.php.pm_max_children }} + pm.start_servers = {{ .Values.nextcloud.php.pm_start_servers }} + pm.min_spare_servers = {{ .Values.nextcloud.php.pm_min_spare_servers }} + pm.max_spare_servers = {{ .Values.nextcloud.php.pm_max_spare_servers }} + +opcache: + enabled: true + data: + opcache-recommended.ini: | + opcache.enable=1 + opcache.save_comments=1 + opcache.jit=1255 + opcache.interned_strings_buffer={{ .Values.nextcloud.opcache.interned_strings_buffer }} + opcache.max_accelerated_files={{ .Values.nextcloud.opcache.max_accelerated_files }} + opcache.memory_consumption={{ .Values.nextcloud.opcache.memory_consumption }} + opcache.revalidate_freq={{ .Values.nextcloud.opcache.revalidate_freq }} + opcache.jit_buffer_size={{ printf "%vM" .Values.nextcloud.opcache.jit_buffer_size }} + +redis-session: + enabled: true + data: + redis-session.ini: | + session.save_handler = redis + session.save_path = {{ printf "tcp://%v:6379?auth=%v" $redisHost $redisPass | quote }} + redis.session.locking_enabled = 1 + redis.session.lock_retries = -1 + redis.session.lock_wait_time = 10000 + +hpb-config: + enabled: {{ .Values.nextcloud.notify_push.enabled }} + data: + NEXTCLOUD_URL: {{ printf "http://%v:%v" $fullname .Values.service.main.ports.main.port }} + HPB_HOST: {{ $healthHost }} + CONFIG_FILE: {{ printf "%v/config.php" .Values.persistence.config.targetSelector.notify.notify.mountPath }} + METRICS_PORT: {{ .Values.service.notify.ports.metrics.port | quote }} + +clamav-config: + enabled: {{ .Values.nextcloud.clamav.enabled }} + data: + CLAMAV_NO_CLAMD: "false" + CLAMAV_NO_FRESHCLAMD: "true" + CLAMAV_NO_MILTERD: "true" + CLAMD_STARTUP_TIMEOUT: "1800" + +collabora-config: + enabled: {{ .Values.nextcloud.collabora.enabled }} + data: + aliasgroup1: {{ $accessUrl }} + server_name: {{ $accessHostPort }} + dictionaries: {{ join " " .Values.nextcloud.collabora.dictionaries }} + username: {{ .Values.nextcloud.collabora.username | quote }} + password: {{ .Values.nextcloud.collabora.password | quote }} + DONT_GEN_SSL_CERT: "true" + # mount_jail_tree is only used for local storage + # not needed for WOPI https://github.com/CollaboraOnline/online/issues/3604#issuecomment-989833814 + extra_params: | + --o:ssl.enable=false + --o:ssl.termination=true + --o:net.service_root=/collabora + --o:home_mode.enable=true + --o:welcome.enable=false + --o:logging.level=warning + --o:logging.level_startup=warning + --o:security.seccomp=true + --o:mount_jail_tree=false + --o:user_interface.mode={{ .Values.nextcloud.collabora.interface_mode }} + +nextcloud-config: + enabled: true + data: + {{/* Database */}} + POSTGRES_DB: {{ .Values.cnpg.main.database | quote }} + POSTGRES_USER: {{ .Values.cnpg.main.user | quote }} + POSTGRES_PASSWORD: {{ .Values.cnpg.main.creds.password | trimAll "\"" }} + POSTGRES_HOST: {{ .Values.cnpg.main.creds.host | trimAll "\"" }} + + {{/* Redis */}} + NX_REDIS_HOST: {{ $redisHost }} + NX_REDIS_PASS: {{ $redisPass }} + + {{/* Nextcloud INITIAL credentials */}} + NEXTCLOUD_ADMIN_USER: {{ .Values.nextcloud.credentials.initialAdminUser | quote }} + NEXTCLOUD_ADMIN_PASSWORD: {{ .Values.nextcloud.credentials.initialAdminPassword | quote }} + + {{/* PHP Variables */}} + PHP_MEMORY_LIMIT: {{ .Values.nextcloud.php.memory_limit | quote }} + PHP_UPLOAD_LIMIT: {{ .Values.nextcloud.php.upload_limit | quote }} + + {{/* Notify Push */}} + NX_NOTIFY_PUSH: {{ .Values.nextcloud.notify_push.enabled | quote }} + {{- if .Values.nextcloud.notify_push.enabled }} + NX_NOTIFY_PUSH_ENDPOINT: {{ $accessUrl }}/push + {{- end }} + + {{/* Previews */}} + NX_PREVIEWS: {{ .Values.nextcloud.previews.enabled | quote }} + NX_PREVIEW_PROVIDERS: {{ join " " .Values.nextcloud.previews.providers }} + NX_PREVIEW_MAX_X: {{ .Values.nextcloud.previews.max_x | quote }} + NX_PREVIEW_MAX_Y: {{ .Values.nextcloud.previews.max_y | quote }} + NX_PREVIEW_MAX_MEMORY: {{ .Values.nextcloud.previews.max_memory | quote }} + NX_PREVIEW_MAX_FILESIZE_IMAGE: {{ .Values.nextcloud.previews.max_file_size_image | quote }} + NX_JPEG_QUALITY: {{ .Values.nextcloud.previews.jpeg_quality | quote }} + NX_PREVIEW_SQUARE_SIZES: {{ .Values.nextcloud.previews.square_sizes | quote }} + NX_PREVIEW_WIDTH_SIZES: {{ .Values.nextcloud.previews.width_sizes | quote }} + NX_PREVIEW_HEIGHT_SIZES: {{ .Values.nextcloud.previews.height_sizes | quote }} + + {{/* Imaginary */}} + NX_IMAGINARY: {{ and .Values.nextcloud.previews.enabled .Values.nextcloud.previews.imaginary | quote }} + {{- if and .Values.nextcloud.previews.enabled .Values.nextcloud.previews.imaginary }} + NX_IMAGINARY_URL: {{ printf "http://%v-imaginary:%v" $fullname .Values.service.imaginary.ports.imaginary.port }} + {{- end }} + + {{/* Expirations */}} + NX_ACTIVITY_EXPIRE_DAYS: {{ .Values.nextcloud.expirations.activity_expire_days | quote }} + NX_TRASH_RETENTION: {{ .Values.nextcloud.expirations.trash_retention_obligation | quote }} + NX_VERSIONS_RETENTION: {{ .Values.nextcloud.expirations.versions_retention_obligation | quote }} + + {{/* General */}} + NX_RUN_OPTIMIZE: {{ .Values.nextcloud.general.run_optimize | quote }} + NX_DEFAULT_PHONE_REGION: {{ .Values.nextcloud.general.default_phone_region | quote }} + NEXTCLOUD_DATA_DIR: {{ .Values.persistence.data.targetSelector.main.main.mountPath }} + NX_FORCE_ENABLE_ALLOW_LOCAL_REMOTE_SERVERS: {{ .Values.nextcloud.general.force_enable_allow_local_remote_servers | quote }} + + {{/* Files */}} + NX_SHARED_FOLDER_NAME: {{ .Values.nextcloud.files.shared_folder_name | quote }} + NX_MAX_CHUNKSIZE: {{ .Values.nextcloud.files.max_chunk_size | mul 1 | quote }} + + {{/* Logging */}} + NX_LOG_LEVEL: {{ .Values.nextcloud.logging.log_level | quote }} + NX_LOG_FILE: {{ .Values.nextcloud.logging.log_file | quote }} + NX_LOG_FILE_AUDIT: {{ .Values.nextcloud.logging.log_audit_file | quote }} + NX_LOG_DATE_FORMAT: {{ .Values.nextcloud.logging.log_date_format | quote }} + NX_LOG_TIMEZONE: {{ .Values.TZ | quote }} + + {{/* ClamAV */}} + NX_CLAMAV: {{ .Values.nextcloud.clamav.enabled | quote }} + {{- if .Values.nextcloud.clamav.enabled }} + NX_CLAMAV_HOST: {{ printf "%v-clamav" $fullname }} + NX_CLAMAV_PORT: {{ .Values.service.clamav.ports.clamav.targetPort | quote }} + NX_CLAMAV_STREAM_MAX_LENGTH: {{ .Values.nextcloud.clamav.stream_max_length | mul 1 | quote }} + NX_CLAMAV_FILE_MAX_SIZE: {{ .Values.nextcloud.clamav.file_max_size | quote }} + NX_CLAMAV_INFECTED_ACTION: {{ .Values.nextcloud.clamav.infected_action | quote }} + {{- end }} + + {{/* Collabora */}} + NX_COLLABORA: {{ .Values.nextcloud.collabora.enabled | quote }} + {{- if .Values.nextcloud.collabora.enabled }} + NX_COLLABORA_URL: {{ printf "%v/collabora" $accessUrl | quote }} + # Ideally this would be a combo of: public ip, pod cidr, svc cidr + # But not always people have static IP. + NX_COLLABORA_ALLOWLIST: "0.0.0.0/0" + {{- end }} + + {{/* Only Office */}} + NX_ONLYOFFICE: {{ .Values.nextcloud.onlyoffice.enabled | quote }} + {{- if .Values.nextcloud.onlyoffice.enabled }} + NX_ONLYOFFICE_URL: {{ .Values.nextcloud.onlyoffice.url | quote }} + NX_ONLYOFFICE_INTERNAL_URL: {{ .Values.nextcloud.onlyoffice.internal_url | quote }} + NX_ONLYOFFICE_VERIFY_SSL: {{ .Values.nextcloud.onlyoffice.verify_ssl | quote }} + NX_ONLYOFFICE_NEXTCLOUD_INTERNAL_URL: {{ printf "http://%v.svc.cluster.local:%v" $fqdn .Values.service.main.ports.main.port }} + NX_ONLYOFFICE_JWT: {{ .Values.nextcloud.onlyoffice.jwt | quote }} + NX_ONLYOFFICE_JWT_HEADER: {{ .Values.nextcloud.onlyoffice.jwt_header | quote }} + {{- end }} + + {{/* URLs */}} + NX_OVERWRITE_HOST: {{ $accessHostPort }} + NX_OVERWRITE_CLI_URL: {{ $accessUrl }} + # Return the protocol part of the URL + NX_OVERWRITE_PROTOCOL: {{ $accessProtocol | lower }} + # IP (or range in this case) of the proxy(ies) + NX_TRUSTED_PROXIES: | + {{ .Values.chartContext.podCIDR }} + {{ .Values.chartContext.svcCIDR }} + # fullname-* will allow access from the + # other services in the same namespace + NX_TRUSTED_DOMAINS: | + 127.0.0.1 + localhost + {{ $fullname }} + {{ printf "%v-*" $fullname }} + {{ $healthHost }} + {{- if not (contains "127.0.0.1" $accessHost) }} + {{- $accessHost | nindent 6 }} + {{- end -}} + {{- with .Values.nextcloud.general.accessIP }} + {{- . | nindent 6 }} + {{- end }} + +# TODO: Replace locations with ingress +# like /push, /.well-known/carddav, /.well-known/caldav +# needs some work as nginx converts urls to pretty urls +# before matching them to locations, so ingress needs to +# take that into consideration. +nginx-config: + enabled: true + data: + nginx.conf: | + worker_processes auto; + + error_log /var/log/nginx/error.log warn; + # Set to /tmp so it can run as non-root + pid /tmp/nginx.pid; + + events { + worker_connections 1024; + } + + http { + # Set to /tmp so it can run as non-root + client_body_temp_path /tmp/nginx/client_temp; + proxy_temp_path /tmp/nginx/proxy_temp_path; + fastcgi_temp_path /tmp/nginx/fastcgi_temp; + uwsgi_temp_path /tmp/nginx/uwsgi_temp; + scgi_temp_path /tmp/nginx/scgi_temp; + + include /etc/nginx/mime.types; + default_type application/octet-stream; + + log_format main '$remote_addr - $remote_user [$time_local] "$request" ' + '$status $body_bytes_sent "$http_referer" ' + '"$http_user_agent" "$http_x_forwarded_for"'; + + access_log /var/log/nginx/access.log main; + + sendfile on; + #tcp_nopush on; + + # Prevent nginx HTTP Server Detection + server_tokens off; + + keepalive_timeout 65; + + #gzip on; + + upstream php-handler { + server {{ printf "%v-nextcloud" $fullname }}:{{ .Values.service.nextcloud.ports.nextcloud.targetPort }}; + } + + server { + listen {{ .Values.service.main.ports.main.port }}; + absolute_redirect off; + + {{- if .Values.nextcloud.notify_push.enabled }} + # Forward Notify_Push "High Performance Backend" to it's own container + location ^~ /push/ { + # The trailing "/" is important! + proxy_pass http://{{ printf "%v-notify" $fullname }}:{{ .Values.service.notify.ports.notify.targetPort }}/; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "Upgrade"; + proxy_set_header Host $host; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + } + {{- end }} + + # HSTS settings + # WARNING: Only add the preload option once you read about + # the consequences in https://hstspreload.org/. This option + # will add the domain to a hardcoded list that is shipped + # in all major browsers and getting removed from this list + # could take several months. + #add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;" always; + + # Set max upload size + client_max_body_size {{ .Values.nextcloud.php.upload_limit | default "512M" }}; + fastcgi_buffers 64 4K; + + # Enable gzip but do not remove ETag headers + gzip on; + gzip_vary on; + gzip_comp_level 4; + gzip_min_length 256; + gzip_proxied expired no-cache no-store private no_last_modified no_etag auth; + gzip_types application/atom+xml text/javascript application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/wasm application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy; + + # Pagespeed is not supported by Nextcloud, so if your server is built + # with the `ngx_pagespeed` module, uncomment this line to disable it. + #pagespeed off; + + include mime.types; + types { + text/javascript js mjs; + } + + # HTTP response headers borrowed from Nextcloud `.htaccess` + add_header Referrer-Policy "no-referrer" always; + add_header X-Content-Type-Options "nosniff" always; + add_header X-Download-Options "noopen" always; + add_header X-Frame-Options "SAMEORIGIN" always; + add_header X-Permitted-Cross-Domain-Policies "none" always; + add_header X-Robots-Tag "noindex, nofollow" always; + add_header X-XSS-Protection "1; mode=block" always; + + # Remove X-Powered-By, which is an information leak + fastcgi_hide_header X-Powered-By; + + # Path to the root of your installation + root {{ .Values.persistence.html.targetSelector.nginx.nginx.mountPath }}; + + # Specify how to handle directories -- specifying `/index.php$request_uri` + # here as the fallback means that Nginx always exhibits the desired behaviour + # when a client requests a path that corresponds to a directory that exists + # on the server. In particular, if that directory contains an index.php file, + # that file is correctly served; if it doesn't, then the request is passed to + # the front-end controller. This consistent behaviour means that we don't need + # to specify custom rules for certain paths (e.g. images and other assets, + # `/updater`, `/ocm-provider`, `/ocs-provider`), and thus + # `try_files $uri $uri/ /index.php$request_uri` + # always provides the desired behaviour. + index index.php index.html /index.php$request_uri; + + # Rule borrowed from `.htaccess` to handle Microsoft DAV clients + location = / { + if ( $http_user_agent ~ ^DavClnt ) { + return 302 /remote.php/webdav/$is_args$args; + } + } + + location = /robots.txt { + allow all; + log_not_found off; + access_log off; + } + + # Make a regex exception for `/.well-known` so that clients can still + # access it despite the existence of the regex rule + # `location ~ /(\.|autotest|...)` which would otherwise handle requests + # for `/.well-known`. + location ^~ /.well-known { + # The rules in this block are an adaptation of the rules + # in `.htaccess` that concern `/.well-known`. + + location = /.well-known/carddav { return 301 /remote.php/dav/; } + location = /.well-known/caldav { return 301 /remote.php/dav/; } + + location /.well-known/acme-challenge { try_files $uri $uri/ =404; } + location /.well-known/pki-validation { try_files $uri $uri/ =404; } + + # Let Nextcloud's API for `/.well-known` URIs handle all other + # requests by passing them to the front-end controller. + return 301 /index.php$request_uri; + } + + # Rules borrowed from `.htaccess` to hide certain paths from clients + location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/) { return 404; } + location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) { return 404; } + + # Ensure this block, which passes PHP files to the PHP process, is above the blocks + # which handle static assets (as seen below). If this block is not declared first, + # then Nginx will encounter an infinite rewriting loop when it prepends `/index.php` + # to the URI, resulting in a HTTP 500 error response. + location ~ \.php(?:$|/) { + # Required for legacy support + rewrite ^/(?!index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|oc[ms]-provider\/.+|.+\/richdocumentscode\/proxy) /index.php$request_uri; + + fastcgi_split_path_info ^(.+?\.php)(/.*)$; + set $path_info $fastcgi_path_info; + + try_files $fastcgi_script_name =404; + + include fastcgi_params; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + fastcgi_param PATH_INFO $path_info; + #fastcgi_param HTTPS on; + + fastcgi_param modHeadersAvailable true; # Avoid sending the security headers twice + fastcgi_param front_controller_active true; # Enable pretty urls + fastcgi_pass php-handler; + + fastcgi_intercept_errors on; + fastcgi_request_buffering off; + proxy_send_timeout 3600s; + proxy_read_timeout 3600s; + fastcgi_send_timeout 3600s; + fastcgi_read_timeout 3600s; + } + + location ~ \.(?:css|js|svg|gif)$ { + try_files $uri /index.php$request_uri; + expires 6M; # Cache-Control policy borrowed from `.htaccess` + access_log off; # Optional: Don't log access to assets + } + + location ~ \.woff2?$ { + try_files $uri /index.php$request_uri; + expires 7d; # Cache-Control policy borrowed from `.htaccess` + access_log off; # Optional: Don't log access to assets + } + + # Rule borrowed from `.htaccess` + location /remote { + return 301 /remote.php$request_uri; + } + + location / { + try_files $uri $uri/ /index.php$request_uri; + } + } + } +{{- end -}} diff --git a/stable/nextcloud/28.1.43/templates/_cronjobs.tpl b/stable/nextcloud/28.1.43/templates/_cronjobs.tpl new file mode 100644 index 00000000000..0fa050dba68 --- /dev/null +++ b/stable/nextcloud/28.1.43/templates/_cronjobs.tpl @@ -0,0 +1,34 @@ +{{- define "nextcloud.cronjobs" -}} +{{- range $cj := .Values.cronjobs }} + {{- $name := $cj.name | required "Nextcloud - Expected non-empty name in cronjob" -}} + {{- $schedule := $cj.schedule | required "Nextcloud - Expected non-empty schedule in cronjob" }} + +{{ $name }}: + enabled: {{ $cj.enabled | quote }} + type: CronJob + schedule: {{ $schedule | quote }} + podSpec: + restartPolicy: Never + containers: + {{ $name }}: + enabled: true + primary: true + imageSelector: image + command: + - /bin/bash + - -c + - | + {{- range $cj.cmd }} + {{- . | nindent 12 }} + {{- else -}} + {{- fail "Nextcloud - Expected non-empty cmd in cronjob" -}} + {{- end }} + probes: + liveness: + enabled: false + readiness: + enabled: false + startup: + enabled: false +{{- end }} +{{- end -}} diff --git a/stable/nextcloud/28.1.43/templates/_ingressInjector.tpl b/stable/nextcloud/28.1.43/templates/_ingressInjector.tpl new file mode 100644 index 00000000000..f99f5bd5047 --- /dev/null +++ b/stable/nextcloud/28.1.43/templates/_ingressInjector.tpl @@ -0,0 +1,23 @@ +{{- define "nextcloud.ingressInjector" -}} + {{- if .Values.ingress.main.enabled -}} + {{- $injectPaths := list -}} + {{- if .Values.nextcloud.collabora.enabled -}} + {{- $injectPaths = mustAppend $injectPaths (include "nextcloud.collabora.ingress" $ | fromYaml) -}} + {{- end -}} + {{/* Append more paths here if needed */}} + + {{- range $host := .Values.ingress.main.hosts -}} + {{- $paths := $host.paths -}} + {{- $paths = concat $paths $injectPaths -}} + {{- $_ := set $host "paths" $paths -}} + {{- end -}} + {{- end -}} +{{- end -}} + +{{- define "nextcloud.collabora.ingress" -}} +path: /collabora/ +pathType: Prefix +overrideService: + name: collabora + port: {{ .Values.service.collabora.ports.collabora.port }} +{{- end -}} diff --git a/stable/nextcloud/28.1.43/templates/_initPerms.tpl b/stable/nextcloud/28.1.43/templates/_initPerms.tpl new file mode 100644 index 00000000000..ed94790ad93 --- /dev/null +++ b/stable/nextcloud/28.1.43/templates/_initPerms.tpl @@ -0,0 +1,29 @@ +{{- define "nextcloud.init.perms" -}} +{{- $uid := .Values.securityContext.container.runAsUser -}} +{{- $gid := .Values.securityContext.container.runAsGroup -}} +{{- $path := .Values.persistence.data.targetSelector.main.main.mountPath }} +enabled: true +type: install +imageSelector: alpineImage +securityContext: + runAsUser: 0 + runAsGroup: 0 + runAsNonRoot: false + capabilities: + disableS6Caps: true + add: + - DAC_OVERRIDE + - FOWNER + - CHOWN +command: /bin/sh +args: + - -c + - | + echo "Setting permissions to 700 on data directory [{{ $path }}] ..." + chmod 770 {{ $path }} | echo "Failed to set permissions on data directory [{{ $path }}]" + + echo "Setting ownership to {{ $uid }}:{{ $gid }} on data directory [{{ $path }}] ..." + chown {{ $uid }}:{{ $gid }} {{ $path }} | echo "Failed to set ownership on data directory [{{ $path }}]" + + echo "Finished." +{{- end -}} diff --git a/stable/nextcloud/28.1.43/templates/_validation.tpl b/stable/nextcloud/28.1.43/templates/_validation.tpl new file mode 100644 index 00000000000..5650c0f63fe --- /dev/null +++ b/stable/nextcloud/28.1.43/templates/_validation.tpl @@ -0,0 +1,42 @@ +{{- define "nextcloud.validation" -}} + + {{- if not (mustRegexMatch "^[0-9]+(M|G){1}$" .Values.nextcloud.php.memory_limit) -}} + {{- fail (printf "Nextcloud - Expected Memory Limit to be in format [1M, 1G] but got [%v]" .Values.nextcloud.php.memory_limit) -}} + {{- end -}} + + {{- if not (mustRegexMatch "^[0-9]+(M|G){1}$" .Values.nextcloud.php.upload_limit) -}} + {{- fail (printf "Nextcloud - Expected Memory Limit to be in format [1M, 1G] but got [%v]" .Values.nextcloud.php.upload_limit) -}} + {{- end -}} + + {{- if not (deepEqual .Values.nextcloud.previews.providers (uniq .Values.nextcloud.previews.providers)) -}} + {{- fail (printf "Nextcloud - Expected preview providers to be unique but got [%v]" .Values.nextcloud.previews.providers) -}} + {{- end -}} + + {{- if and .Values.nextcloud.collabora.enabled .Values.nextcloud.onlyoffice.enabled -}} + {{- fail "Nextcloud - Expected only one of [Collabora, OnlyOffice] to be enabled" -}} + {{- end -}} + + {{- if contains "$" .Values.nextcloud.collabora.password -}} + {{- fail "Nextcloud - Collabora [Password] cannot contain [$]" -}} + {{- end -}} + + {{- if .Values.nextcloud.collabora.enabled -}} + {{- if lt (len .Values.nextcloud.collabora.password) 8 -}} + {{- fail "Nextcloud - Collabora [Password] must be at least 8 characters" -}} + {{- end -}} + + {{- $collaboraUIModes := (list "default" "compact" "tabbed") -}} + {{- if not (mustHas .Values.nextcloud.collabora.interface_mode $collaboraUIModes) -}} + {{- fail (printf "Nextcloud - Expected [Interface Mode] in Collabora to be one of [%v], but got [%v]" (join "," $collaboraUIModes) .Values.nextcloud.collabora.interface_mode) -}} + {{- end -}} + + {{- if not .Values.nextcloud.collabora.dictionaries -}} + {{- fail "Nextcloud - Expected non-empty Collabora [Dictionaries]" -}} + {{- end -}} + + {{- if not (deepEqual .Values.nextcloud.collabora.dictionaries (uniq .Values.nextcloud.collabora.dictionaries)) -}} + {{- fail "Nextcloud - Collabora [Dictionaries] must be unique" -}} + {{- end -}} + {{- end -}} + +{{- end -}} diff --git a/stable/nextcloud/28.1.43/templates/_waitNextcloud.tpl b/stable/nextcloud/28.1.43/templates/_waitNextcloud.tpl new file mode 100644 index 00000000000..24946d640e8 --- /dev/null +++ b/stable/nextcloud/28.1.43/templates/_waitNextcloud.tpl @@ -0,0 +1,25 @@ +{{- define "nextcloud.wait.nextcloud" -}} +{{- $fullname := (include "tc.v1.common.lib.chart.names.fullname" $) -}} +{{- $ncURL := printf "%v-nextcloud:%v" $fullname .Values.service.nextcloud.ports.nextcloud.targetPort }} +enabled: true +type: init +imageSelector: image +securityContext: +command: /bin/sh +args: + - -c + - | + echo "Waiting Nextcloud [{{ $ncURL }}] to be ready and installed..." + until \ + REQUEST_METHOD="GET" \ + SCRIPT_NAME="status.php" \ + SCRIPT_FILENAME="status.php" \ + cgi-fcgi -bind -connect "{{ $ncURL }}" | grep -q '"installed":true'; + do + echo "Waiting Nextcloud [{{ $ncURL }}] to be ready and installed..." + sleep 3 + done + + echo "Nextcloud is ready and installed..." + echo "Starting Nginx..." +{{- end -}} diff --git a/stable/nextcloud/28.1.43/templates/common.yaml b/stable/nextcloud/28.1.43/templates/common.yaml new file mode 100644 index 00000000000..d7576a0fb57 --- /dev/null +++ b/stable/nextcloud/28.1.43/templates/common.yaml @@ -0,0 +1,92 @@ +{{- $selector := dict -}} +{{- range $name := (list "main" "nextcloud-cron" "preview-cron") -}} + {{/* creates main: {} */}} + {{- $_ := set $selector $name dict -}} + {{/* sets main: {} to main: { main: {} } */}} + {{- $_ := set (get $selector $name) $name dict -}} +{{- end -}} + +{{- range $item := .Values.persistenceList -}} + {{- $_ := set $item "targetSelector" $selector -}} +{{- end -}} + +{{/* Make sure all variables are set properly */}} +{{- include "tc.v1.common.loader.init" . -}} + +{{- include "nextcloud.validation" $ -}} + +{{/* Render configmaps for all pods */}} +{{- $configmaps := include "nextcloud.configmaps" . | fromYaml -}} +{{- if $configmaps -}} + {{- $_ := mustMergeOverwrite .Values.configmap $configmaps -}} +{{- end -}} + +{{/* Create hostAliases (resolve ingress host to Node/LB IP) */}} +{{- $hostAlias := (list (dict + "ip" .Values.nextcloud.general.accessIP + "hostnames" ( + list (include "nextcloud.accesshost" $) + ) + )) -}} + +{{/* Add [hostAliases] to nextcloud and collabora pod */}} +{{- $_ := set .Values.workload.main.podSpec "hostAliases" $hostAlias -}} +{{- $_ := set .Values.workload.collabora.podSpec "hostAliases" $hostAlias -}} + +{{/* Add [init perms] container to nextcloud */}} +{{- if not (get .Values.workload.main.podSpec "initContainers") -}} + {{- $_ := set .Values.workload.main.podSpec "initContainers" dict -}} +{{- end -}} + +{{- $initPerms := (include "nextcloud.init.perms" . | fromYaml) -}} +{{- $_ := set .Values.workload.main.podSpec.initContainers "init-perms" $initPerms -}} + +{{/* Add [wait nextcloud] container to nginx */}} +{{- if not (get .Values.workload.nginx.podSpec "initContainers") -}} + {{- $_ := set .Values.workload.nginx.podSpec "initContainers" dict -}} +{{- end -}} +{{- $waitNextcloud := (include "nextcloud.wait.nextcloud" . | fromYaml) -}} +{{- $_ := set .Values.workload.nginx.podSpec.initContainers "wait-nextcloud" $waitNextcloud -}} + +{{/* Disable [notify push] if requested */}} +{{- if not .Values.nextcloud.notify_push.enabled -}} + {{- $_ := set .Values.workload.notify "enabled" false -}} + {{- $_ := set .Values.service.notify "enabled" false -}} +{{- else -}} + {{/* Add [wait nextcloud] container to notify push */}} + {{- if not (get .Values.workload.notify.podSpec "initContainers") -}} + {{- $_ := set .Values.workload.notify.podSpec "initContainers" dict -}} + {{- end -}} + {{- $waitNextcloud := (include "nextcloud.wait.nextcloud" . | fromYaml) -}} + {{- $_ := set .Values.workload.notify.podSpec.initContainers "wait-nextcloud" $waitNextcloud -}} +{{- end -}} + +{{/* Disable [clamav] if requested */}} +{{- if not .Values.nextcloud.clamav.enabled -}} + {{- $_ := set .Values.workload.clamav "enabled" false -}} + {{- $_ := set .Values.service.clamav "enabled" false -}} +{{- end -}} + +{{/* Disable [previews] if requested */}} +{{- if or (not .Values.nextcloud.previews.imaginary) (not .Values.nextcloud.previews.enabled) -}} + {{- $_ := set .Values.workload.imaginary "enabled" false -}} + {{- $_ := set .Values.service.imaginary "enabled" false -}} +{{- end -}} + +{{/* Disable [collabora] if requested */}} +{{- if not .Values.nextcloud.collabora.enabled -}} + {{- $_ := set .Values.workload.collabora "enabled" false -}} + {{- $_ := set .Values.service.collabora "enabled" false -}} +{{- end -}} + +{{/* Create [cronjobs] defined */}} +{{- $cronjobs := include "nextcloud.cronjobs" . | fromYaml -}} +{{- if $cronjobs -}} + {{- $_ := mustMergeOverwrite .Values.workload $cronjobs -}} +{{- end -}} + +{{/* TODO: Do we have to cleanup when something (eg Collabora) is disabled? */}} +{{- include "nextcloud.ingressInjector" $ -}} + +{{/* Render the templates */}} +{{- include "tc.v1.common.loader.apply" . -}} diff --git a/stable/posterr/7.1.15/values.yaml b/stable/nextcloud/28.1.43/values.yaml similarity index 100% rename from stable/posterr/7.1.15/values.yaml rename to stable/nextcloud/28.1.43/values.yaml diff --git a/stable/posterr/7.1.15/app-changelog.md b/stable/posterr/7.1.15/app-changelog.md deleted file mode 100644 index fa6d841489d..00000000000 --- a/stable/posterr/7.1.15/app-changelog.md +++ /dev/null @@ -1,9 +0,0 @@ - - -## [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.15/CHANGELOG.md b/stable/posterr/7.1.16/CHANGELOG.md similarity index 90% rename from stable/posterr/7.1.15/CHANGELOG.md rename to stable/posterr/7.1.16/CHANGELOG.md index cdddef75e19..d8c365171b5 100644 --- a/stable/posterr/7.1.15/CHANGELOG.md +++ b/stable/posterr/7.1.16/CHANGELOG.md @@ -7,6 +7,15 @@ title: Changelog +## [posterr-7.1.16](https://github.com/truecharts/charts/compare/posterr-7.1.15...posterr-7.1.16) (2024-02-12) + +### Chore + + + +- update container image petersem/posterr to latest[@852e536](https://github.com/852e536) by renovate ([#18214](https://github.com/truecharts/charts/issues/18214)) + + ## [posterr-7.1.15](https://github.com/truecharts/charts/compare/posterr-7.1.14...posterr-7.1.15) (2024-02-12) ### 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)) - - -## [posterr-7.1.6](https://github.com/truecharts/charts/compare/posterr-7.1.5...posterr-7.1.6) (2024-01-03) - -### Chore - - - -- update container image petersem/posterr to latest[@055616b](https://github.com/055616b) by renovate ([#16787](https://github.com/truecharts/charts/issues/16787)) diff --git a/stable/posterr/7.1.15/Chart.yaml b/stable/posterr/7.1.16/Chart.yaml similarity index 98% rename from stable/posterr/7.1.15/Chart.yaml rename to stable/posterr/7.1.16/Chart.yaml index 4a21562e258..1d9afb0cc58 100644 --- a/stable/posterr/7.1.15/Chart.yaml +++ b/stable/posterr/7.1.16/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.15 +version: 7.1.16 diff --git a/stable/posterr/7.1.15/README.md b/stable/posterr/7.1.16/README.md similarity index 100% rename from stable/posterr/7.1.15/README.md rename to stable/posterr/7.1.16/README.md diff --git a/stable/posterr/7.1.16/app-changelog.md b/stable/posterr/7.1.16/app-changelog.md new file mode 100644 index 00000000000..b8532fd805e --- /dev/null +++ b/stable/posterr/7.1.16/app-changelog.md @@ -0,0 +1,9 @@ + + +## [posterr-7.1.16](https://github.com/truecharts/charts/compare/posterr-7.1.15...posterr-7.1.16) (2024-02-12) + +### Chore + + + +- update container image petersem/posterr to latest[@852e536](https://github.com/852e536) by renovate ([#18214](https://github.com/truecharts/charts/issues/18214)) \ No newline at end of file diff --git a/stable/posterr/7.1.15/app-readme.md b/stable/posterr/7.1.16/app-readme.md similarity index 100% rename from stable/posterr/7.1.15/app-readme.md rename to stable/posterr/7.1.16/app-readme.md diff --git a/stable/posterr/7.1.16/charts/common-17.2.30.tgz b/stable/posterr/7.1.16/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/posterr/7.1.15/ix_values.yaml b/stable/posterr/7.1.16/ix_values.yaml similarity index 84% rename from stable/posterr/7.1.15/ix_values.yaml rename to stable/posterr/7.1.16/ix_values.yaml index 8e734b99a44..54fd11d90d3 100644 --- a/stable/posterr/7.1.15/ix_values.yaml +++ b/stable/posterr/7.1.16/ix_values.yaml @@ -1,7 +1,7 @@ image: pullPolicy: IfNotPresent repository: petersem/posterr - tag: latest@sha256:93583c643b4efc40690e9de629bf8879bd414de97a6215a7260ab0e83d47897b + tag: latest@sha256:852e5366ddad7ef14b0c3dff713f09ac93386b874f3e2879de1aeb097ee025a7 service: main: ports: diff --git a/stable/posterr/7.1.15/questions.yaml b/stable/posterr/7.1.16/questions.yaml similarity index 100% rename from stable/posterr/7.1.15/questions.yaml rename to stable/posterr/7.1.16/questions.yaml diff --git a/stable/posterr/7.1.16/templates/NOTES.txt b/stable/posterr/7.1.16/templates/NOTES.txt new file mode 100644 index 00000000000..efcb74cb772 --- /dev/null +++ b/stable/posterr/7.1.16/templates/NOTES.txt @@ -0,0 +1 @@ +{{- include "tc.v1.common.lib.chart.notes" $ -}} diff --git a/stable/posterr/7.1.15/templates/common.yaml b/stable/posterr/7.1.16/templates/common.yaml similarity index 100% rename from stable/posterr/7.1.15/templates/common.yaml rename to stable/posterr/7.1.16/templates/common.yaml diff --git a/stable/posterr/7.1.16/values.yaml b/stable/posterr/7.1.16/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/quassel-core/10.1.17/CHANGELOG.md b/stable/quassel-core/10.1.17/CHANGELOG.md new file mode 100644 index 00000000000..d528188f321 --- /dev/null +++ b/stable/quassel-core/10.1.17/CHANGELOG.md @@ -0,0 +1,99 @@ +--- +title: Changelog +--- + +**Important:** +*for the complete changelog, please refer to the website* + + + +## [quassel-core-10.1.17](https://github.com/truecharts/charts/compare/quassel-core-10.1.16...quassel-core-10.1.17) (2024-02-12) + +### Chore + + + +- update container image ghcr.io/linuxserver/quassel-core to 0.14.0[@73ad52b](https://github.com/73ad52b) by renovate ([#18213](https://github.com/truecharts/charts/issues/18213)) + + +## [quassel-core-10.1.16](https://github.com/truecharts/charts/compare/quassel-core-10.1.15...quassel-core-10.1.16) (2024-02-05) + +### Chore + + + +- update container image ghcr.io/linuxserver/quassel-core to 0.14.0[@f5361e3](https://github.com/f5361e3) by renovate ([#17972](https://github.com/truecharts/charts/issues/17972)) + + +## [quassel-core-10.1.15](https://github.com/truecharts/charts/compare/quassel-core-10.1.14...quassel-core-10.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)) + + +## [quassel-core-10.1.14](https://github.com/truecharts/charts/compare/quassel-core-10.1.13...quassel-core-10.1.14) (2024-01-29) + +### Chore + + + +- update container image ghcr.io/linuxserver/quassel-core to 0.14.0[@e573e9d](https://github.com/e573e9d) by renovate ([#17729](https://github.com/truecharts/charts/issues/17729)) + + +## [quassel-core-10.1.13](https://github.com/truecharts/charts/compare/quassel-core-10.1.12...quassel-core-10.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)) + + +## [quassel-core-10.1.12](https://github.com/truecharts/charts/compare/quassel-core-10.1.11...quassel-core-10.1.12) (2024-01-22) + +### Chore + + + +- update container image ghcr.io/linuxserver/quassel-core to 0.14.0[@0d63aab](https://github.com/0d63aab) by renovate ([#17503](https://github.com/truecharts/charts/issues/17503)) + + +## [quassel-core-10.1.11](https://github.com/truecharts/charts/compare/quassel-core-10.1.10...quassel-core-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)) + + +## [quassel-core-10.1.10](https://github.com/truecharts/charts/compare/quassel-core-10.1.9...quassel-core-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)) + + +## [quassel-core-10.1.9](https://github.com/truecharts/charts/compare/quassel-core-10.1.8...quassel-core-10.1.9) (2024-01-21) + +### Chore + + + +- update metadata in chart.yaml ([#17457](https://github.com/truecharts/charts/issues/17457)) + + +## [quassel-core-10.1.8](https://github.com/truecharts/charts/compare/quassel-core-10.1.7...quassel-core-10.1.8) (2024-01-15) + +### Chore + + + +- update container image ghcr.io/linuxserver/quassel-core to 0.14.0[@f6bfb13](https://github.com/f6bfb13) by renovate ([#17263](https://github.com/truecharts/charts/issues/17263)) + + diff --git a/stable/quassel-core/10.1.17/Chart.yaml b/stable/quassel-core/10.1.17/Chart.yaml new file mode 100644 index 00000000000..273f8f9e73f --- /dev/null +++ b/stable/quassel-core/10.1.17/Chart.yaml @@ -0,0 +1,35 @@ +annotations: + max_scale_version: 23.10.2 + min_scale_version: 23.10.0 + truecharts.org/SCALE-support: "true" + truecharts.org/category: incubator + truecharts.org/max_helm_version: "3.14" + truecharts.org/min_helm_version: "3.12" + truecharts.org/train: stable +apiVersion: v2 +appVersion: 0.14.0 +dependencies: + - name: common + version: 17.2.30 + repository: oci://tccr.io/truecharts + condition: "" + alias: "" + tags: [] + import-values: [] +deprecated: false +description: Quassel-core is a modern, cross-platform, distributed IRC client. +home: https://truecharts.org/charts/stable/quassel-core +icon: https://truecharts.org/img/hotlink-ok/chart-icons/quassel-core.png +keywords: + - quassel-core +kubeVersion: ">=1.24.0-0" +maintainers: + - name: TrueCharts + email: info@truecharts.org + url: https://truecharts.org +name: quassel-core +sources: + - https://github.com/truecharts/charts/tree/master/charts/stable/quassel-core + - https://ghcr.io/linuxserver/quassel-core +type: application +version: 10.1.17 diff --git a/stable/quassel-core/10.1.17/README.md b/stable/quassel-core/10.1.17/README.md new file mode 100644 index 00000000000..40cb9cf7a7f --- /dev/null +++ b/stable/quassel-core/10.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/quassel-core) + +**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/quassel-core/10.1.17/app-changelog.md b/stable/quassel-core/10.1.17/app-changelog.md new file mode 100644 index 00000000000..1a505d09fad --- /dev/null +++ b/stable/quassel-core/10.1.17/app-changelog.md @@ -0,0 +1,9 @@ + + +## [quassel-core-10.1.17](https://github.com/truecharts/charts/compare/quassel-core-10.1.16...quassel-core-10.1.17) (2024-02-12) + +### Chore + + + +- update container image ghcr.io/linuxserver/quassel-core to 0.14.0[@73ad52b](https://github.com/73ad52b) by renovate ([#18213](https://github.com/truecharts/charts/issues/18213)) \ No newline at end of file diff --git a/stable/quassel-core/10.1.17/app-readme.md b/stable/quassel-core/10.1.17/app-readme.md new file mode 100644 index 00000000000..1016df41d73 --- /dev/null +++ b/stable/quassel-core/10.1.17/app-readme.md @@ -0,0 +1,8 @@ +Quassel-core is a modern, cross-platform, distributed IRC client. + +This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/charts/stable/quassel-core](https://truecharts.org/charts/stable/quassel-core) + +--- + +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/quassel-core/10.1.17/charts/common-17.2.30.tgz b/stable/quassel-core/10.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 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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/quassel-core/10.1.17/ix_values.yaml b/stable/quassel-core/10.1.17/ix_values.yaml new file mode 100644 index 00000000000..dfdc0fe2836 --- /dev/null +++ b/stable/quassel-core/10.1.17/ix_values.yaml @@ -0,0 +1,61 @@ +image: + repository: ghcr.io/linuxserver/quassel-core + pullPolicy: IfNotPresent + tag: 0.14.0@sha256:73ad52ba847546298c6d57d96aafd440b0b372a52b5d95a78707b750fad4d5c7 +service: + main: + ports: + main: + targetPort: 4242 + port: 4242 + ident: + enabled: true + ports: + ident: + enabled: true + targetPort: 10113 + port: 10113 +persistence: + varrun: + enabled: true +cnpg: + main: + enabled: true + user: quassel-core + database: quassel-core +portal: + open: + enabled: false +securityContext: + container: + runAsNonRoot: false + readOnlyRootFilesystem: false + runAsUser: 0 + runAsGroup: 0 +workload: + main: + podSpec: + containers: + main: + probes: + liveness: + type: tcp + readiness: + type: tcp + startup: + type: tcp + env: + DB_BACKEND: "PostgreSQL" + DB_PGSQL_USERNAME: "{{ .Values.cnpg.main.user }}" + DB_PGSQL_DATABASE: "{{ .Values.cnpg.main.database }}" + DB_PGSQL_PORT: 5432 + AUTH_AUTHENTICATOR: "Database" + RUN_OPTS: "--config-from-environment" + DB_PGSQL_PASSWORD: + secretKeyRef: + name: cnpg-main-user + key: password + DB_PGSQL_HOSTNAME: + secretKeyRef: + name: cnpg-main-urls + key: host diff --git a/stable/quassel-core/10.1.17/questions.yaml b/stable/quassel-core/10.1.17/questions.yaml new file mode 100644 index 00000000000..909abc3d6e3 --- /dev/null +++ b/stable/quassel-core/10.1.17/questions.yaml @@ -0,0 +1,3052 @@ +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: {} +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: 4242 + required: true + - variable: ident + label: "ident Service" + description: "The ident 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: ident + label: "ident 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: 10113 + 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: 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: 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/quassel-core/10.1.17/templates/NOTES.txt b/stable/quassel-core/10.1.17/templates/NOTES.txt new file mode 100644 index 00000000000..efcb74cb772 --- /dev/null +++ b/stable/quassel-core/10.1.17/templates/NOTES.txt @@ -0,0 +1 @@ +{{- include "tc.v1.common.lib.chart.notes" $ -}} diff --git a/stable/quassel-core/10.1.17/templates/common.yaml b/stable/quassel-core/10.1.17/templates/common.yaml new file mode 100644 index 00000000000..b51394e00a4 --- /dev/null +++ b/stable/quassel-core/10.1.17/templates/common.yaml @@ -0,0 +1 @@ +{{ include "tc.v1.common.loader.all" . }} diff --git a/stable/quassel-core/10.1.17/values.yaml b/stable/quassel-core/10.1.17/values.yaml new file mode 100644 index 00000000000..e69de29bb2d