From 46b8df48f1dfb70891573b7e6516517403f60ce9 Mon Sep 17 00:00:00 2001 From: TrueCharts-Bot Date: Sun, 17 Dec 2023 14:04:32 +0000 Subject: [PATCH] Commit new Chart releases for TrueCharts Signed-off-by: TrueCharts-Bot --- stable/collabora/2.0.20/app-changelog.md | 10 - .../collabora/{2.0.20 => 2.0.21}/CHANGELOG.md | 18 +- .../collabora/{2.0.20 => 2.0.21}/Chart.yaml | 6 +- stable/collabora/{2.0.20 => 2.0.21}/README.md | 0 stable/collabora/2.0.21/app-changelog.md | 9 + .../{2.0.20 => 2.0.21}/app-readme.md | 0 .../charts/common-14.5.0.tgz | Bin .../{2.0.20 => 2.0.21}/ix_values.yaml | 2 +- .../{2.0.20 => 2.0.21}/questions.yaml | 0 .../{2.0.20 => 2.0.21}/templates/NOTES.txt | 0 .../templates/_configmap.tpl | 0 .../{2.0.20 => 2.0.21}/templates/common.yaml | 0 .../collabora/{2.0.20 => 2.0.21}/values.yaml | 0 stable/nextcloud/22.2.21/CHANGELOG.md | 99 + stable/nextcloud/22.2.21/Chart.yaml | 50 + stable/nextcloud/22.2.21/LICENSE | 106 + stable/nextcloud/22.2.21/README.md | 27 + stable/nextcloud/22.2.21/app-changelog.md | 9 + stable/nextcloud/22.2.21/app-readme.md | 8 + .../22.2.21}/charts/common-14.5.0.tgz | Bin .../nextcloud/22.2.21/charts/redis-6.0.66.tgz | Bin 0 -> 137361 bytes stable/nextcloud/22.2.21/ix_values.yaml | 512 +++ stable/nextcloud/22.2.21/questions.yaml | 3778 +++++++++++++++++ .../22.2.21}/templates/NOTES.txt | 0 .../22.2.21/templates/_configmap.tpl | 438 ++ .../nextcloud/22.2.21/templates/_cronjobs.tpl | 34 + .../22.2.21/templates/_ingressInjector.tpl | 24 + .../22.2.21/templates/_initPerms.tpl | 29 + .../22.2.21/templates/_validation.tpl | 42 + .../22.2.21/templates/_waitNextcloud.tpl | 25 + .../nextcloud/22.2.21/templates/common.yaml | 80 + .../5.0.182 => nextcloud/22.2.21}/values.yaml | 0 stable/rdesktop/5.0.182/app-changelog.md | 10 - .../{5.0.182 => 5.0.188}/CHANGELOG.md | 18 +- .../rdesktop/{5.0.182 => 5.0.188}/Chart.yaml | 7 +- .../rdesktop/{5.0.182 => 5.0.188}/README.md | 2 +- stable/rdesktop/5.0.188/app-changelog.md | 9 + .../{5.0.182 => 5.0.188}/app-readme.md | 0 .../rdesktop/5.0.188/charts/common-14.5.0.tgz | Bin 0 -> 74411 bytes .../{5.0.182 => 5.0.188}/ix_values.yaml | 12 +- .../{5.0.182 => 5.0.188}/questions.yaml | 0 stable/rdesktop/5.0.188/templates/NOTES.txt | 1 + .../templates/common.yaml | 0 stable/rdesktop/5.0.188/values.yaml | 0 44 files changed, 5313 insertions(+), 52 deletions(-) delete mode 100644 stable/collabora/2.0.20/app-changelog.md rename stable/collabora/{2.0.20 => 2.0.21}/CHANGELOG.md (88%) rename stable/collabora/{2.0.20 => 2.0.21}/Chart.yaml (96%) rename stable/collabora/{2.0.20 => 2.0.21}/README.md (100%) create mode 100644 stable/collabora/2.0.21/app-changelog.md rename stable/collabora/{2.0.20 => 2.0.21}/app-readme.md (100%) rename stable/collabora/{2.0.20 => 2.0.21}/charts/common-14.5.0.tgz (100%) rename stable/collabora/{2.0.20 => 2.0.21}/ix_values.yaml (92%) rename stable/collabora/{2.0.20 => 2.0.21}/questions.yaml (100%) rename stable/collabora/{2.0.20 => 2.0.21}/templates/NOTES.txt (100%) rename stable/collabora/{2.0.20 => 2.0.21}/templates/_configmap.tpl (100%) rename stable/collabora/{2.0.20 => 2.0.21}/templates/common.yaml (100%) rename stable/collabora/{2.0.20 => 2.0.21}/values.yaml (100%) create mode 100644 stable/nextcloud/22.2.21/CHANGELOG.md create mode 100644 stable/nextcloud/22.2.21/Chart.yaml create mode 100644 stable/nextcloud/22.2.21/LICENSE create mode 100644 stable/nextcloud/22.2.21/README.md create mode 100644 stable/nextcloud/22.2.21/app-changelog.md create mode 100644 stable/nextcloud/22.2.21/app-readme.md rename stable/{rdesktop/5.0.182 => nextcloud/22.2.21}/charts/common-14.5.0.tgz (100%) create mode 100644 stable/nextcloud/22.2.21/charts/redis-6.0.66.tgz create mode 100644 stable/nextcloud/22.2.21/ix_values.yaml create mode 100644 stable/nextcloud/22.2.21/questions.yaml rename stable/{rdesktop/5.0.182 => nextcloud/22.2.21}/templates/NOTES.txt (100%) create mode 100644 stable/nextcloud/22.2.21/templates/_configmap.tpl create mode 100644 stable/nextcloud/22.2.21/templates/_cronjobs.tpl create mode 100644 stable/nextcloud/22.2.21/templates/_ingressInjector.tpl create mode 100644 stable/nextcloud/22.2.21/templates/_initPerms.tpl create mode 100644 stable/nextcloud/22.2.21/templates/_validation.tpl create mode 100644 stable/nextcloud/22.2.21/templates/_waitNextcloud.tpl create mode 100644 stable/nextcloud/22.2.21/templates/common.yaml rename stable/{rdesktop/5.0.182 => nextcloud/22.2.21}/values.yaml (100%) delete mode 100644 stable/rdesktop/5.0.182/app-changelog.md rename stable/rdesktop/{5.0.182 => 5.0.188}/CHANGELOG.md (91%) rename stable/rdesktop/{5.0.182 => 5.0.188}/Chart.yaml (95%) rename stable/rdesktop/{5.0.182 => 5.0.188}/README.md (93%) create mode 100644 stable/rdesktop/5.0.188/app-changelog.md rename stable/rdesktop/{5.0.182 => 5.0.188}/app-readme.md (100%) create mode 100644 stable/rdesktop/5.0.188/charts/common-14.5.0.tgz rename stable/rdesktop/{5.0.182 => 5.0.188}/ix_values.yaml (88%) rename stable/rdesktop/{5.0.182 => 5.0.188}/questions.yaml (100%) create mode 100644 stable/rdesktop/5.0.188/templates/NOTES.txt rename stable/rdesktop/{5.0.182 => 5.0.188}/templates/common.yaml (100%) create mode 100644 stable/rdesktop/5.0.188/values.yaml diff --git a/stable/collabora/2.0.20/app-changelog.md b/stable/collabora/2.0.20/app-changelog.md deleted file mode 100644 index c2e40575a81..00000000000 --- a/stable/collabora/2.0.20/app-changelog.md +++ /dev/null @@ -1,10 +0,0 @@ - - -## [collabora-2.0.20](https://github.com/truecharts/charts/compare/collabora-2.0.18...collabora-2.0.20) (2023-12-16) - -### Chore - -- fix move mistake and cleanup metadata - - update helm general non-major ([#14784](https://github.com/truecharts/charts/issues/14784)) - - \ No newline at end of file diff --git a/stable/collabora/2.0.20/CHANGELOG.md b/stable/collabora/2.0.21/CHANGELOG.md similarity index 88% rename from stable/collabora/2.0.20/CHANGELOG.md rename to stable/collabora/2.0.21/CHANGELOG.md index 2e90fe37789..08674620405 100644 --- a/stable/collabora/2.0.20/CHANGELOG.md +++ b/stable/collabora/2.0.21/CHANGELOG.md @@ -4,6 +4,15 @@ +## [collabora-2.0.21](https://github.com/truecharts/charts/compare/collabora-2.0.20...collabora-2.0.21) (2023-12-17) + +### Chore + +- update container image collabora/code to v23.05.6.3.1[@6d21951](https://github.com/6d21951) by renovate ([#16097](https://github.com/truecharts/charts/issues/16097)) + + + + ## [collabora-2.0.20](https://github.com/truecharts/charts/compare/collabora-2.0.18...collabora-2.0.20) (2023-12-16) ### Chore @@ -88,12 +97,3 @@ ### Chore -- update helm general non-major ([#14465](https://github.com/truecharts/charts/issues/14465)) - - - - -## [collabora-2.0.12](https://github.com/truecharts/charts/compare/collabora-2.0.11...collabora-2.0.12) (2023-11-08) - -### Chore - diff --git a/stable/collabora/2.0.20/Chart.yaml b/stable/collabora/2.0.21/Chart.yaml similarity index 96% rename from stable/collabora/2.0.20/Chart.yaml rename to stable/collabora/2.0.21/Chart.yaml index 20ff085e61d..9dc699656ec 100644 --- a/stable/collabora/2.0.20/Chart.yaml +++ b/stable/collabora/2.0.21/Chart.yaml @@ -1,16 +1,16 @@ kubeVersion: ">=1.24.0-0" apiVersion: v2 name: collabora -version: 2.0.20 -appVersion: 23.05.5.4.1 +version: 2.0.21 +appVersion: 23.05.6.3.1 description: An awesome, Online Office suite image suitable for home use. home: https://truecharts.org/charts/stable/collabora icon: https://truecharts.org/img/hotlink-ok/chart-icons/collabora.png deprecated: false sources: - - https://hub.docker.com/r/collabora/code - https://github.com/CollaboraOnline/online - https://github.com/truecharts/charts/tree/master/charts/stable/collabora + - https://hub.docker.com/r/collabora/code maintainers: - name: TrueCharts email: info@truecharts.org diff --git a/stable/collabora/2.0.20/README.md b/stable/collabora/2.0.21/README.md similarity index 100% rename from stable/collabora/2.0.20/README.md rename to stable/collabora/2.0.21/README.md diff --git a/stable/collabora/2.0.21/app-changelog.md b/stable/collabora/2.0.21/app-changelog.md new file mode 100644 index 00000000000..9992244a72e --- /dev/null +++ b/stable/collabora/2.0.21/app-changelog.md @@ -0,0 +1,9 @@ + + +## [collabora-2.0.21](https://github.com/truecharts/charts/compare/collabora-2.0.20...collabora-2.0.21) (2023-12-17) + +### Chore + +- update container image collabora/code to v23.05.6.3.1[@6d21951](https://github.com/6d21951) by renovate ([#16097](https://github.com/truecharts/charts/issues/16097)) + + \ No newline at end of file diff --git a/stable/collabora/2.0.20/app-readme.md b/stable/collabora/2.0.21/app-readme.md similarity index 100% rename from stable/collabora/2.0.20/app-readme.md rename to stable/collabora/2.0.21/app-readme.md diff --git a/stable/collabora/2.0.20/charts/common-14.5.0.tgz b/stable/collabora/2.0.21/charts/common-14.5.0.tgz similarity index 100% rename from stable/collabora/2.0.20/charts/common-14.5.0.tgz rename to stable/collabora/2.0.21/charts/common-14.5.0.tgz diff --git a/stable/collabora/2.0.20/ix_values.yaml b/stable/collabora/2.0.21/ix_values.yaml similarity index 92% rename from stable/collabora/2.0.20/ix_values.yaml rename to stable/collabora/2.0.21/ix_values.yaml index c03361adb12..97620de5644 100644 --- a/stable/collabora/2.0.20/ix_values.yaml +++ b/stable/collabora/2.0.21/ix_values.yaml @@ -1,7 +1,7 @@ image: repository: collabora/code pullPolicy: IfNotPresent - tag: 23.05.5.4.1@sha256:a8cce07c949aa59cea0a7f1f220266a1a6d886c717c3b5005782baf6f384d645 + tag: 23.05.6.3.1@sha256:6d21951e6376be4a12009b5058c57f3da7df06faf05c62406030b3652a3e78f6 collabora: username: admin password: changeme diff --git a/stable/collabora/2.0.20/questions.yaml b/stable/collabora/2.0.21/questions.yaml similarity index 100% rename from stable/collabora/2.0.20/questions.yaml rename to stable/collabora/2.0.21/questions.yaml diff --git a/stable/collabora/2.0.20/templates/NOTES.txt b/stable/collabora/2.0.21/templates/NOTES.txt similarity index 100% rename from stable/collabora/2.0.20/templates/NOTES.txt rename to stable/collabora/2.0.21/templates/NOTES.txt diff --git a/stable/collabora/2.0.20/templates/_configmap.tpl b/stable/collabora/2.0.21/templates/_configmap.tpl similarity index 100% rename from stable/collabora/2.0.20/templates/_configmap.tpl rename to stable/collabora/2.0.21/templates/_configmap.tpl diff --git a/stable/collabora/2.0.20/templates/common.yaml b/stable/collabora/2.0.21/templates/common.yaml similarity index 100% rename from stable/collabora/2.0.20/templates/common.yaml rename to stable/collabora/2.0.21/templates/common.yaml diff --git a/stable/collabora/2.0.20/values.yaml b/stable/collabora/2.0.21/values.yaml similarity index 100% rename from stable/collabora/2.0.20/values.yaml rename to stable/collabora/2.0.21/values.yaml diff --git a/stable/nextcloud/22.2.21/CHANGELOG.md b/stable/nextcloud/22.2.21/CHANGELOG.md new file mode 100644 index 00000000000..b411d31cc57 --- /dev/null +++ b/stable/nextcloud/22.2.21/CHANGELOG.md @@ -0,0 +1,99 @@ +**Important:** +*for the complete changelog, please refer to the website* + + + + +## [nextcloud-22.2.21](https://github.com/truecharts/charts/compare/nextcloud-22.2.20...nextcloud-22.2.21) (2023-12-17) + +### Chore + +- update container image collabora/code to v23.05.6.3.1[@6d21951](https://github.com/6d21951) by renovate ([#16097](https://github.com/truecharts/charts/issues/16097)) + + + + +## [nextcloud-22.2.20](https://github.com/truecharts/charts/compare/nextcloud-22.2.19...nextcloud-22.2.20) (2023-12-17) + +### Chore + +- update container image tccr.io/truecharts/nextcloud-fpm to v[@e97e94d](https://github.com/e97e94d) ([#16037](https://github.com/truecharts/charts/issues/16037)) + + + + +## [nextcloud-22.2.19](https://github.com/truecharts/charts/compare/nextcloud-22.2.18...nextcloud-22.2.19) (2023-12-16) + +### Chore + +- update helm general non-major ([#14784](https://github.com/truecharts/charts/issues/14784)) + + + + +## [nextcloud-22.2.19](https://github.com/truecharts/charts/compare/nextcloud-22.2.18...nextcloud-22.2.19) (2023-12-16) + +### Chore + +- update helm general non-major ([#14784](https://github.com/truecharts/charts/issues/14784)) + + + + +## [nextcloud-22.2.18](https://github.com/truecharts/charts/compare/nextcloud-22.2.17...nextcloud-22.2.18) (2023-12-11) + +### Chore + +- update container image clamav/clamav to 1.2.1[@d584c29](https://github.com/d584c29) ([#15962](https://github.com/truecharts/charts/issues/15962)) + + + + +## [nextcloud-22.2.17](https://github.com/truecharts/charts/compare/nextcloud-22.2.16...nextcloud-22.2.17) (2023-12-08) + +### Chore + +- update container image tccr.io/truecharts/nextcloud-fpm to v27.1.4[@37c7521](https://github.com/37c7521) ([#15885](https://github.com/truecharts/charts/issues/15885)) + - update container image nginxinc/nginx-unprivileged to 1.25.3[@1d026ae](https://github.com/1d026ae) ([#15884](https://github.com/truecharts/charts/issues/15884)) + + + + +## [nextcloud-22.2.16](https://github.com/truecharts/charts/compare/nextcloud-22.2.15...nextcloud-22.2.16) (2023-12-06) + +### Chore + +- update container image nginxinc/nginx-unprivileged to 1.25.3[@a7ef461](https://github.com/a7ef461) ([#15718](https://github.com/truecharts/charts/issues/15718)) + + + + +## [nextcloud-22.2.15](https://github.com/truecharts/charts/compare/nextcloud-22.2.14...nextcloud-22.2.15) (2023-12-06) + +### Chore + +- update container image tccr.io/truecharts/nextcloud-imaginary to v20230401[@6a227d1](https://github.com/6a227d1) ([#15790](https://github.com/truecharts/charts/issues/15790)) + + + + +## [nextcloud-22.2.15](https://github.com/truecharts/charts/compare/nextcloud-22.2.14...nextcloud-22.2.15) (2023-12-06) + +### Chore + +- update container image tccr.io/truecharts/nextcloud-imaginary to v20230401[@6a227d1](https://github.com/6a227d1) ([#15790](https://github.com/truecharts/charts/issues/15790)) + + + + +## [nextcloud-22.2.15](https://github.com/truecharts/charts/compare/nextcloud-22.2.14...nextcloud-22.2.15) (2023-12-06) + +### Chore + +- update container image tccr.io/truecharts/nextcloud-imaginary to v20230401[@6a227d1](https://github.com/6a227d1) ([#15790](https://github.com/truecharts/charts/issues/15790)) + + + + +## [nextcloud-22.2.15](https://github.com/truecharts/charts/compare/nextcloud-22.2.14...nextcloud-22.2.15) (2023-12-06) + diff --git a/stable/nextcloud/22.2.21/Chart.yaml b/stable/nextcloud/22.2.21/Chart.yaml new file mode 100644 index 00000000000..739cf85087f --- /dev/null +++ b/stable/nextcloud/22.2.21/Chart.yaml @@ -0,0 +1,50 @@ +kubeVersion: ">=1.24.0-0" +apiVersion: v2 +name: nextcloud +version: 22.2.21 +appVersion: 27.1.4 +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 +deprecated: false +sources: + - https://github.com/truecharts/charts/tree/master/charts/stable/nextcloud + - https://hub.docker.com/r/clamav/clamav + - https://github.com/nextcloud/docker + - https://github.com/nextcloud/helm +maintainers: + - name: TrueCharts + email: info@truecharts.org + url: https://truecharts.org +keywords: + - nextcloud + - storage + - http + - web + - php +dependencies: + - name: common + version: 14.5.0 + repository: https://library-charts.truecharts.org + condition: "" + alias: "" + tags: [] + import-values: [] + - name: redis + version: 6.0.66 + repository: https://deps.truecharts.org + condition: redis.enabled + alias: "" + tags: [] + import-values: [] +annotations: + max_scale_version: 23.10.1 + min_scale_version: 22.12.4 + truecharts.org/SCALE-support: "true" + truecharts.org/category: cloud + truecharts.org/max_helm_version: "3.13" + truecharts.org/min_helm_version: "3.12" + truecharts.org/train: stable +type: application diff --git a/stable/nextcloud/22.2.21/LICENSE b/stable/nextcloud/22.2.21/LICENSE new file mode 100644 index 00000000000..33a8cbb23f0 --- /dev/null +++ b/stable/nextcloud/22.2.21/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/22.2.21/README.md b/stable/nextcloud/22.2.21/README.md new file mode 100644 index 00000000000..d551b5d959d --- /dev/null +++ b/stable/nextcloud/22.2.21/README.md @@ -0,0 +1,27 @@ +# 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/22.2.21/app-changelog.md b/stable/nextcloud/22.2.21/app-changelog.md new file mode 100644 index 00000000000..ac72446fc73 --- /dev/null +++ b/stable/nextcloud/22.2.21/app-changelog.md @@ -0,0 +1,9 @@ + + +## [nextcloud-22.2.21](https://github.com/truecharts/charts/compare/nextcloud-22.2.20...nextcloud-22.2.21) (2023-12-17) + +### Chore + +- update container image collabora/code to v23.05.6.3.1[@6d21951](https://github.com/6d21951) by renovate ([#16097](https://github.com/truecharts/charts/issues/16097)) + + \ No newline at end of file diff --git a/stable/nextcloud/22.2.21/app-readme.md b/stable/nextcloud/22.2.21/app-readme.md new file mode 100644 index 00000000000..1369f69bf57 --- /dev/null +++ b/stable/nextcloud/22.2.21/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/rdesktop/5.0.182/charts/common-14.5.0.tgz b/stable/nextcloud/22.2.21/charts/common-14.5.0.tgz similarity index 100% rename from stable/rdesktop/5.0.182/charts/common-14.5.0.tgz rename to stable/nextcloud/22.2.21/charts/common-14.5.0.tgz diff --git a/stable/nextcloud/22.2.21/charts/redis-6.0.66.tgz b/stable/nextcloud/22.2.21/charts/redis-6.0.66.tgz new file mode 100644 index 0000000000000000000000000000000000000000..77495e13510153471df97d9b62ed06bc16d24bbe GIT binary patch literal 137361 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�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%0DAQLl_aZ{9j7YAhuK8mi`ocrv@2738&ZfbT{ znC`pMzoNTxN`L)Zj@_|BFS+BD_zy1%dMxB}%F4-abG;qa^dD?7g-CpOR8!MAt0zdQ zsqNa3^c_zvh}t%qR&%HpS=D;QCQ-`rX5jZLUh5N`z|7Z#m6_aBVDi;?T_rX8iXXFM z*nIOqu)OXwW)CE3E~yGmEose`>5^e?Ds)k6L37evCO3^H3C`B*P#u#?u`csVv1kq3 zV0Id}hG>hZsGEehE3q0-u9H?NUY;jY=O1|2?$X9wziYj~+!vb#7adCrn}Ws${L68k z?%%x)uLeS1=`Pd)6HK#=D|SRg$2I zp>-TLsSC@C#{t!MgVQZ!9=-w_4WtjO?*Z`qQDF1k0rSDZ#6a>#g2#6Q#trx#Xmcba z-h;gdmgE2!9s#_=%Q6Ck59abtfWG$ty$!G(>G~MB+a*irrgH?)JxH72Ir*vMbdSP$ z0jmm-XIF%GkD$*(sO~;^Ze$bhg5*Zgz~Pf(B0{?hHrvHsBbq=OD(gjEBdx~p*a+Sl zX)%bz#*x-Yi!lr~1!Ijg?LlA1p{tR$o1i2ExN2eyp`eNuLs1_CKiw5Mg?UU@T}ET3 zgW;!AaMDLZNO!_U2h2f6p`s&@&ml@i(9XxfIiCpO92NvasOF>KnQ2I78iqL*y)=5o z0A}*AxMeC@GmKR}5K5VdxTPVJyI_)`h@9^84@OKN{OL>JL7*Xq7%j!l94|jx)+2P_Q3q&2h5m1w-@1y ztg(C3sR1v6rtdDzeFNIp`5xtTqE5#95iYG=w?~bnWj+nsOZFza79HT`2-El>srEJY zw%=%yqLi%$4cX09+lfjaa>A^oF{C>fh5Mg_QTV|qe7`{+jKU8_;RmDeZOR?&rVn=0 z2fOL!IoM4f?4}QP(+9ihgWdGjbFiE4J_oz$gWdGOZu($1eXyH8*i9eorrYOFYB#;J z4TWVXeZ5B?YD}V^hqj^!hnIs+=x(VAE%Qk?>fOP{;$UNOu(3GUSUgi3i$jFu!*h5J W&*AygKK~T}0RR705`S3$4iNx=lP6vP literal 0 HcmV?d00001 diff --git a/stable/nextcloud/22.2.21/ix_values.yaml b/stable/nextcloud/22.2.21/ix_values.yaml new file mode 100644 index 00000000000..dc3041437dc --- /dev/null +++ b/stable/nextcloud/22.2.21/ix_values.yaml @@ -0,0 +1,512 @@ +image: + repository: tccr.io/truecharts/nextcloud-fpm + pullPolicy: IfNotPresent + tag: v27.1.4@sha256:e97e94d15784064c14400c819e7c9b1a2c9c4ccd6954a576fc8c5db77f65a2ba +nginxImage: + repository: nginxinc/nginx-unprivileged + pullPolicy: IfNotPresent + tag: 1.25.3@sha256:1d026ae92e50e76c77ca776f234f154d4a1d39e33e8f813115e53c2a9b893bc9 +imaginaryImage: + repository: tccr.io/truecharts/nextcloud-imaginary + pullPolicy: IfNotPresent + tag: v20230401@sha256:6a227d1b0200d29f25028e07b8852f60e3d91a5814048933e70eccee749dc04c +hpbImage: + repository: tccr.io/truecharts/nextcloud-push-notify + pullPolicy: IfNotPresent + tag: v0.6.3@sha256:b9c35ab123354eeac3996e361f8c30b8e4de6d2ccd69e5179a7c2a101a67b46f +clamavImage: + repository: clamav/clamav + pullPolicy: IfNotPresent + tag: 1.2.1@sha256:d584c29eefc29e138eb14f243abef2f6712cffecac52194626a2b2f6bb3ec2c7 +collaboraImage: + repository: collabora/code + pullPolicy: IfNotPresent + tag: 23.05.6.3.1@sha256:6d21951e6376be4a12009b5058c57f3da7df06faf05c62406030b3652a3e78f6 +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 diff --git a/stable/nextcloud/22.2.21/questions.yaml b/stable/nextcloud/22.2.21/questions.yaml new file mode 100644 index 00000000000..ead3e38e3b2 --- /dev/null +++ b/stable/nextcloud/22.2.21/questions.yaml @@ -0,0 +1,3778 @@ +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: 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: 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: 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 + 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: 12000 + required: true + - variable: serviceexpert + group: Networking and Services + label: Show Expert Config + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: scaleExternalInterface + description: Add External Interfaces + label: Add external Interfaces + group: Networking + schema: + type: list + items: + - variable: interfaceConfiguration + description: Interface Configuration + label: Interface Configuration + schema: + additional_attrs: true + type: dict + $ref: + - "normalize/interfaceConfiguration" + attrs: + - variable: hostInterface + description: Please Specify Host Interface + label: Host Interface + schema: + type: string + required: true + $ref: + - "definitions/interface" + - variable: ipam + description: Define how IP Address will be managed + label: IP Address Management + schema: + additional_attrs: true + type: dict + required: true + attrs: + - variable: type + description: Specify type for IPAM + label: IPAM Type + schema: + type: string + required: true + enum: + - value: dhcp + description: Use DHCP + - value: static + description: Use Static IP + - variable: staticIPConfigurations + label: Static IP Addresses + schema: + type: list + show_if: [["type", "=", "static"]] + items: + - variable: staticIP + label: Static IP + schema: + type: ipaddr + cidr: true + - variable: staticRoutes + label: Static Routes + schema: + type: list + show_if: [["type", "=", "static"]] + items: + - variable: staticRouteConfiguration + label: Static Route Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: destination + label: Destination + schema: + type: ipaddr + cidr: true + required: true + - variable: gateway + label: Gateway + schema: + type: ipaddr + cidr: false + required: true + - variable: serviceList + label: Add Manual Custom Services + group: Networking and Services + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: Custom Service + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the service + schema: + type: boolean + default: true + hidden: true + - variable: name + label: Name + schema: + type: string + default: "" + - variable: type + label: Service Type + description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: LoadBalancer + enum: + - value: LoadBalancer + description: LoadBalancer (Expose Ports) + - value: ClusterIP + description: ClusterIP (Do Not Expose Ports) + - value: Simple + description: Deprecated CHANGE THIS + - variable: loadBalancerIP + label: LoadBalancer IP + description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: advancedsvcset + label: Show Advanced Service Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + type: list + default: [] + items: + - variable: externalIP + label: External IP + schema: + type: string + - variable: ipFamilyPolicy + label: IP Family Policy + description: Specify the IP Policy + schema: + type: string + default: SingleStack + enum: + - value: SingleStack + description: SingleStack + - value: PreferDualStack + description: PreferDualStack + - value: RequireDualStack + description: RequireDualStack + - variable: ipFamilies + label: IP Families + description: (Advanced) The IP Families that should be used + schema: + type: list + default: [] + items: + - variable: ipFamily + label: IP Family + schema: + type: string + - variable: portsList + label: Additional Service Ports + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: Custom ports + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the Port + schema: + type: boolean + default: true + hidden: true + - variable: name + label: Port Name + schema: + type: string + default: "" + - variable: protocol + label: Port Type + schema: + type: string + default: tcp + enum: + - value: http + description: HTTP + - value: https + description: HTTPS + - value: tcp + description: TCP + - value: udp + description: UDP + - variable: targetPort + label: Target Port + description: This port exposes the container port on the service + schema: + type: int + required: true + - variable: port + label: Container Port + schema: + type: int + required: true + - variable: persistence + label: Integrated Persistent Storage + description: Integrated Persistent Storage + group: Storage and Persistence + schema: + additional_attrs: true + type: dict + attrs: + - variable: 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: certificateIssuer + label: Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates. Cannot be used combined with tls option below' + schema: + type: string + default: "" + - variable: middlewares + label: Traefik Middlewares + description: Add previously created Traefik Middlewares to this Ingress + schema: + type: list + default: [] + items: + - variable: name + label: Name + schema: + type: string + default: "" + required: true + - variable: integration + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - 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: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + - variable: entrypoint + label: (Advanced) Traefik Entrypoint + description: Entrypoint used by Traefik when using Traefik as Ingress Provider + schema: + type: string + default: websecure + show_if: [["advanced", "=", true]] + required: true + - variable: allowCors + label: "Allow Cross Origin Requests" + schema: + type: boolean + show_if: [["advanced", "=", true]] + 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: allowCors + label: "Allow Cross Origin Requests" + schema: + type: boolean + show_if: [["advanced", "=", true]] + default: false + - variable: hosts + label: Hosts + schema: + type: list + default: [] + items: + - variable: hostEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: host + label: HostName + schema: + type: string + default: "" + required: true + - variable: paths + label: Paths + schema: + type: list + default: [] + items: + - variable: pathEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: path + label: Path + schema: + type: string + required: true + default: "/" + - variable: pathType + label: Path Type + schema: + type: string + required: true + default: Prefix + - variable: service + label: Linked Service + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Service Name + schema: + type: string + default: "" + - variable: port + label: Service Port + schema: + type: int + - variable: certificateIssuer + label: certificateIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates. Cannot be used combined with tls option below' + schema: + type: string + default: "" + - 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: integration + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - 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: entrypoint + label: Traefik Entrypoint + description: Entrypoint used by Traefik when using Traefik as Ingress Provider + schema: + type: string + default: websecure + required: true + - variable: middlewares + label: Traefik Middlewares + description: Add previously created Traefik Middlewares to this Ingress + schema: + type: list + default: [] + items: + - variable: name + label: Name + schema: + type: string + default: "" + required: true + - variable: securityContext + group: Security and Permissions + label: Security Context + schema: + additional_attrs: true + type: dict + attrs: + - variable: container + label: Container + schema: + additional_attrs: true + type: dict + attrs: + # Settings from questions.yaml get appended here on a per-app basis + - variable: runAsUser + label: runAsUser + description: The UserID of the user running the application + schema: + type: int + default: 568 + - variable: runAsGroup + label: runAsGroup + description: The groupID of the user running the application + schema: + type: int + default: 568 + # Settings from questions.yaml get appended here on a per-app basis + - variable: PUID + label: Process User ID - PUID + description: When supported by the container, this sets the User ID running the Application Process. Not supported by all Apps + schema: + type: int + show_if: [["runAsUser", "=", 0]] + default: 568 + - variable: UMASK + label: UMASK + description: When supported by the container, this sets the UMASK for the App. Not supported by all Apps + schema: + type: string + default: "0022" + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: pod + label: Pod + schema: + additional_attrs: true + type: dict + attrs: + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: OnRootMismatch + enum: + - value: OnRootMismatch + description: OnRootMismatch + - value: Always + description: Always + - variable: supplementalGroups + label: Supplemental Groups + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: Supplemental Group + schema: + type: int + # Settings from questions.yaml get appended here on a per-app basis + - variable: fsGroup + label: fsGroup + description: The group that should own ALL storage. + schema: + type: int + default: 568 + - variable: resources + group: Resources and Devices + label: "Resource Limits" + schema: + additional_attrs: true + type: dict + attrs: + - variable: limits + label: Advanced Limit Resource Consumption + schema: + additional_attrs: true + type: dict + attrs: + - variable: cpu + label: CPU + description: "1000m means 1 hyperthread. Detailed info: https://truecharts.org/manual/SCALE/validation" + schema: + type: string + default: 4000m + valid_chars: '^(?!^0(\.0|m|)$)([0-9]+)(\.[0-9]|m?)$' + - variable: memory + label: RAM + description: "1Gi means 1 Gibibyte RAM. Detailed info: https://truecharts.org/manual/SCALE/validation" + schema: + type: string + default: 8Gi + valid_chars: '^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$' + - variable: requests + label: "Minimum Resources Required (request)" + schema: + additional_attrs: true + type: dict + hidden: true + attrs: + - variable: cpu + label: CPU + description: "1000m means 1 hyperthread. Detailed info: https://truecharts.org/manual/SCALE/validation" + schema: + type: string + default: 10m + hidden: true + valid_chars: '^(?!^0(\.0|m|)$)([0-9]+)(\.[0-9]|m?)$' + - variable: memory + label: "RAM" + description: "1Gi means 1 Gibibyte RAM. Detailed info: https://truecharts.org/manual/SCALE/validation" + schema: + type: string + default: 50Mi + hidden: true + valid_chars: '^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$' + - variable: deviceList + label: Mount USB Devices + group: Resources and Devices + schema: + type: list + default: [] + items: + - variable: deviceListEntry + label: Device + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the Storage + schema: + type: boolean + default: true + - variable: type + label: (Advanced) Type of Storage + description: Sets the persistence type + schema: + type: string + default: device + hidden: true + - variable: readOnly + label: readOnly + schema: + type: boolean + default: false + - variable: hostPath + label: Host Device Path + description: Path to the device on the host system + schema: + type: path + - variable: mountPath + label: Container Device Path + description: Path inside the container the device is mounted + schema: + type: string + default: "/dev/ttyACM0" + - variable: scaleGPU + label: GPU Configuration + group: Resources and Devices + schema: + type: list + default: [] + items: + - variable: scaleGPUEntry + label: GPU + schema: + additional_attrs: true + type: dict + attrs: + # Specify GPU configuration + - variable: gpu + label: Select GPU + schema: + additional_attrs: true + type: dict + $ref: + - "definitions/gpuConfiguration" + attrs: [] + - variable: workaround + label: "Workaround" + schema: + type: string + default: workaround + hidden: true + - variable: metrics + group: Metrics + label: Prometheus Metrics + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: Main Metrics + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + description: Enable Prometheus Metrics + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: prometheusRule + label: PrometheusRule + description: Enable and configure Prometheus Rules for the App. + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + description: Enable Prometheus Metrics + schema: + type: boolean + default: false + # TODO: Rule List section +# - variable: horizontalPodAutoscaler +# group: Advanced +# label: (Advanced) Horizontal Pod Autoscaler +# schema: +# type: list +# default: [] +# items: +# - variable: hpaEntry +# label: HPA Entry +# schema: +# additional_attrs: true +# type: dict +# attrs: +# - variable: name +# label: Name +# schema: +# type: string +# required: true +# default: "" +# - variable: enabled +# label: Enabled +# schema: +# type: boolean +# default: false +# show_subquestions_if: true +# subquestions: +# - variable: target +# label: Target +# description: Deployment name, Defaults to Main Deployment +# schema: +# type: string +# default: "" +# - variable: minReplicas +# label: Minimum Replicas +# schema: +# type: int +# default: 1 +# - variable: maxReplicas +# label: Maximum Replicas +# schema: +# type: int +# default: 5 +# - variable: targetCPUUtilizationPercentage +# label: Target CPU Utilization Percentage +# schema: +# type: int +# default: 80 +# - variable: targetMemoryUtilizationPercentage +# label: Target Memory Utilization Percentage +# schema: +# type: int +# default: 80 + - variable: networkPolicy + group: Advanced + label: (Advanced) Network Policy + schema: + type: list + default: [] + items: + - variable: netPolicyEntry + label: Network Policy Entry + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + default: "" + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: policyType + label: Policy Type + schema: + type: string + default: "" + enum: + - value: "" + description: Default + - value: ingress + description: Ingress + - value: egress + description: Egress + - value: ingress-egress + description: Ingress and Egress + - variable: egress + label: Egress + schema: + type: list + default: [] + items: + - variable: egressEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: to + label: To + schema: + type: list + default: [] + items: + - variable: toEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: ipBlock + label: IP Block + schema: + additional_attrs: true + type: dict + attrs: + - variable: cidr + label: CIDR + schema: + type: string + default: "" + - variable: except + label: Except + schema: + type: list + default: [] + items: + - variable: exceptint + label: "" + schema: + type: string + - variable: namespaceSelector + label: Namespace Selector + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: podSelector + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: ports + label: Ports + schema: + type: list + default: [] + items: + - variable: portsEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + schema: + type: int + - variable: endPort + label: End Port + schema: + type: int + - variable: protocol + label: Protocol + schema: + type: string + default: TCP + enum: + - value: TCP + description: TCP + - value: UDP + description: UDP + - value: SCTP + description: SCTP + - variable: ingress + label: Ingress + schema: + type: list + default: [] + items: + - variable: ingressEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: from + label: From + schema: + type: list + default: [] + items: + - variable: fromEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: ipBlock + label: IP Block + schema: + additional_attrs: true + type: dict + attrs: + - variable: cidr + label: CIDR + schema: + type: string + default: "" + - variable: except + label: Except + schema: + type: list + default: [] + items: + - variable: exceptint + label: "" + schema: + type: string + - variable: namespaceSelector + label: Namespace Selector + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: podSelector + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: ports + label: Ports + schema: + type: list + default: [] + items: + - variable: portsEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + schema: + type: int + - variable: endPort + label: End Port + schema: + type: int + - variable: protocol + label: Protocol + schema: + type: string + default: TCP + enum: + - value: TCP + description: TCP + - value: UDP + description: UDP + - value: SCTP + description: SCTP + - variable: addons + group: Addons + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: codeserver + label: Codeserver + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: service + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Service Type + description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: LoadBalancer + enum: + - value: NodePort + description: Deprecated CHANGE THIS + - value: ClusterIP + description: ClusterIP + - value: LoadBalancer + description: LoadBalancer + - variable: loadBalancerIP + label: LoadBalancer IP + description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: ports + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: codeserver + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + schema: + type: int + default: 36107 + - variable: ingress + label: "Ingress" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Ingress + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: Hosts + schema: + type: list + default: [] + items: + - variable: hostEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: host + label: HostName + schema: + type: string + default: "" + required: true + - variable: paths + label: Paths + schema: + type: list + default: [{path: "/", pathType: "Prefix"}] + items: + - variable: pathEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: path + label: Path + schema: + type: string + required: true + default: "/" + - variable: pathType + label: Path Type + schema: + type: string + required: true + default: Prefix + - variable: certificateIssuer + label: Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates. Cannot be used combined with tls option below' + schema: + type: string + default: "" + - variable: middlewares + label: Traefik Middlewares + description: Add previously created Traefik Middlewares to this Ingress + schema: + type: list + default: [] + items: + - variable: name + label: Name + schema: + type: string + default: "" + required: true + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + - variable: entrypoint + label: (Advanced) Traefik Entrypoint + description: Entrypoint used by Traefik when using Traefik as Ingress Provider + schema: + type: string + default: websecure + show_if: [["advanced", "=", true]] + required: true + - variable: allowCors + label: "Allow Cross Origin Requests" + schema: + type: boolean + show_if: [["advanced", "=", true]] + 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/rdesktop/5.0.182/templates/NOTES.txt b/stable/nextcloud/22.2.21/templates/NOTES.txt similarity index 100% rename from stable/rdesktop/5.0.182/templates/NOTES.txt rename to stable/nextcloud/22.2.21/templates/NOTES.txt diff --git a/stable/nextcloud/22.2.21/templates/_configmap.tpl b/stable/nextcloud/22.2.21/templates/_configmap.tpl new file mode 100644 index 00000000000..66b01c3ae83 --- /dev/null +++ b/stable/nextcloud/22.2.21/templates/_configmap.tpl @@ -0,0 +1,438 @@ +{{- 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.user_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 application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject 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; + + # 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/22.2.21/templates/_cronjobs.tpl b/stable/nextcloud/22.2.21/templates/_cronjobs.tpl new file mode 100644 index 00000000000..0fa050dba68 --- /dev/null +++ b/stable/nextcloud/22.2.21/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/22.2.21/templates/_ingressInjector.tpl b/stable/nextcloud/22.2.21/templates/_ingressInjector.tpl new file mode 100644 index 00000000000..37919189e21 --- /dev/null +++ b/stable/nextcloud/22.2.21/templates/_ingressInjector.tpl @@ -0,0 +1,24 @@ +{{- 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" -}} +{{- $fullname := include "tc.v1.common.lib.chart.names.fullname" . }} +path: /collabora/ +pathType: Prefix +service: + name: {{ printf "%v-collabora" $fullname }} + port: {{ .Values.service.collabora.ports.collabora.port }} +{{- end -}} diff --git a/stable/nextcloud/22.2.21/templates/_initPerms.tpl b/stable/nextcloud/22.2.21/templates/_initPerms.tpl new file mode 100644 index 00000000000..ed94790ad93 --- /dev/null +++ b/stable/nextcloud/22.2.21/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/22.2.21/templates/_validation.tpl b/stable/nextcloud/22.2.21/templates/_validation.tpl new file mode 100644 index 00000000000..5650c0f63fe --- /dev/null +++ b/stable/nextcloud/22.2.21/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/22.2.21/templates/_waitNextcloud.tpl b/stable/nextcloud/22.2.21/templates/_waitNextcloud.tpl new file mode 100644 index 00000000000..24946d640e8 --- /dev/null +++ b/stable/nextcloud/22.2.21/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/22.2.21/templates/common.yaml b/stable/nextcloud/22.2.21/templates/common.yaml new file mode 100644 index 00000000000..1eeaf033ebe --- /dev/null +++ b/stable/nextcloud/22.2.21/templates/common.yaml @@ -0,0 +1,80 @@ +{{/* 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/rdesktop/5.0.182/values.yaml b/stable/nextcloud/22.2.21/values.yaml similarity index 100% rename from stable/rdesktop/5.0.182/values.yaml rename to stable/nextcloud/22.2.21/values.yaml diff --git a/stable/rdesktop/5.0.182/app-changelog.md b/stable/rdesktop/5.0.182/app-changelog.md deleted file mode 100644 index 89e8d7efb05..00000000000 --- a/stable/rdesktop/5.0.182/app-changelog.md +++ /dev/null @@ -1,10 +0,0 @@ - - -## [rdesktop-5.0.182](https://github.com/truecharts/charts/compare/rdesktop-5.0.175...rdesktop-5.0.182) (2023-12-16) - -### Chore - -- update helm general non-major ([#14784](https://github.com/truecharts/charts/issues/14784)) - - update rdesktop ([#16026](https://github.com/truecharts/charts/issues/16026)) - - \ No newline at end of file diff --git a/stable/rdesktop/5.0.182/CHANGELOG.md b/stable/rdesktop/5.0.188/CHANGELOG.md similarity index 91% rename from stable/rdesktop/5.0.182/CHANGELOG.md rename to stable/rdesktop/5.0.188/CHANGELOG.md index 056d2e8e7b5..c639c901562 100644 --- a/stable/rdesktop/5.0.182/CHANGELOG.md +++ b/stable/rdesktop/5.0.188/CHANGELOG.md @@ -4,6 +4,15 @@ +## [rdesktop-5.0.188](https://github.com/truecharts/charts/compare/rdesktop-5.0.182...rdesktop-5.0.188) (2023-12-17) + +### Chore + +- update rdesktop by renovate ([#16105](https://github.com/truecharts/charts/issues/16105)) + + + + ## [rdesktop-5.0.182](https://github.com/truecharts/charts/compare/rdesktop-5.0.175...rdesktop-5.0.182) (2023-12-16) ### Chore @@ -87,13 +96,4 @@ -## [rdesktop-5.0.181](https://github.com/truecharts/charts/compare/rdesktop-5.0.175...rdesktop-5.0.181) (2023-12-13) - -### Chore - -- update rdesktop ([#16026](https://github.com/truecharts/charts/issues/16026)) - - - - ## [rdesktop-5.0.181](https://github.com/truecharts/charts/compare/rdesktop-5.0.175...rdesktop-5.0.181) (2023-12-13) diff --git a/stable/rdesktop/5.0.182/Chart.yaml b/stable/rdesktop/5.0.188/Chart.yaml similarity index 95% rename from stable/rdesktop/5.0.182/Chart.yaml rename to stable/rdesktop/5.0.188/Chart.yaml index 911ef9b2e5b..03ecb62d1db 100644 --- a/stable/rdesktop/5.0.182/Chart.yaml +++ b/stable/rdesktop/5.0.188/Chart.yaml @@ -1,7 +1,7 @@ -kubeVersion: ">=1.24.0" +kubeVersion: ">=1.24.0-0" apiVersion: v2 name: rdesktop -version: 5.0.182 +version: 5.0.188 appVersion: latest description: Full desktop environments in many popular flavors for Alpine, Ubuntu, @@ -10,10 +10,10 @@ home: https://truecharts.org/charts/stable/rdesktop icon: https://truecharts.org/img/hotlink-ok/chart-icons/rdesktop.png deprecated: false sources: - - https://github.com/orgs/linuxserver/packages/container/package/rdesktop - https://github.com/linuxserver/docker-rdesktop#readme - https://github.com/truecharts/charts/tree/master/charts/stable/rdesktop - https://fleet.linuxserver.io/image?name=linuxserver/rdesktop + - https://github.com/orgs/linuxserver/packages/container/package/rdesktop maintainers: - name: TrueCharts email: info@truecharts.org @@ -37,3 +37,4 @@ annotations: truecharts.org/max_helm_version: "3.13" truecharts.org/min_helm_version: "3.12" truecharts.org/train: stable +type: application diff --git a/stable/rdesktop/5.0.182/README.md b/stable/rdesktop/5.0.188/README.md similarity index 93% rename from stable/rdesktop/5.0.182/README.md rename to stable/rdesktop/5.0.188/README.md index e0a9b8fa8d7..cb087e92391 100644 --- a/stable/rdesktop/5.0.182/README.md +++ b/stable/rdesktop/5.0.188/README.md @@ -5,7 +5,7 @@ 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/) +For more information about this App, please check the docs on the TrueCharts [website](https://truecharts.org/charts/stable/rdesktop) **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)** diff --git a/stable/rdesktop/5.0.188/app-changelog.md b/stable/rdesktop/5.0.188/app-changelog.md new file mode 100644 index 00000000000..2af2c55ab12 --- /dev/null +++ b/stable/rdesktop/5.0.188/app-changelog.md @@ -0,0 +1,9 @@ + + +## [rdesktop-5.0.188](https://github.com/truecharts/charts/compare/rdesktop-5.0.182...rdesktop-5.0.188) (2023-12-17) + +### Chore + +- update rdesktop by renovate ([#16105](https://github.com/truecharts/charts/issues/16105)) + + \ No newline at end of file diff --git a/stable/rdesktop/5.0.182/app-readme.md b/stable/rdesktop/5.0.188/app-readme.md similarity index 100% rename from stable/rdesktop/5.0.182/app-readme.md rename to stable/rdesktop/5.0.188/app-readme.md diff --git a/stable/rdesktop/5.0.188/charts/common-14.5.0.tgz b/stable/rdesktop/5.0.188/charts/common-14.5.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..724185dc7b80b952cd847d355da36fc6d9a5b4e6 GIT binary patch literal 74411 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

E% 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