From ab5af21688586954a2f34ecdcba2efacef669241 Mon Sep 17 00:00:00 2001 From: TrueCharts-Bot Date: Wed, 8 Nov 2023 04:51:19 +0000 Subject: [PATCH] Commit new Chart releases for TrueCharts Signed-off-by: TrueCharts-Bot --- stable/nextcloud/22.1.8/CHANGELOG.md | 99 + stable/nextcloud/22.1.8/Chart.yaml | 35 + stable/nextcloud/22.1.8/LICENSE | 106 + stable/nextcloud/22.1.8/README.md | 27 + stable/nextcloud/22.1.8/app-changelog.md | 9 + stable/nextcloud/22.1.8/app-readme.md | 8 + .../nextcloud/22.1.8/charts/common-14.2.3.tgz | Bin 0 -> 72396 bytes .../nextcloud/22.1.8/charts/redis-6.0.66.tgz | Bin 0 -> 137361 bytes stable/nextcloud/22.1.8/ix_values.yaml | 517 +++ stable/nextcloud/22.1.8/questions.yaml | 2807 +++++++++++++++++ stable/nextcloud/22.1.8/templates/NOTES.txt | 1 + .../nextcloud/22.1.8/templates/_configmap.tpl | 421 +++ .../nextcloud/22.1.8/templates/_cronjobs.tpl | 34 + .../22.1.8/templates/_ingressInjector.tpl | 24 + .../nextcloud/22.1.8/templates/_initPerms.tpl | 29 + .../22.1.8/templates/_validation.tpl | 42 + .../22.1.8/templates/_waitNextcloud.tpl | 25 + stable/nextcloud/22.1.8/templates/common.yaml | 68 + stable/nextcloud/22.1.8/values.yaml | 0 19 files changed, 4252 insertions(+) create mode 100644 stable/nextcloud/22.1.8/CHANGELOG.md create mode 100644 stable/nextcloud/22.1.8/Chart.yaml create mode 100644 stable/nextcloud/22.1.8/LICENSE create mode 100644 stable/nextcloud/22.1.8/README.md create mode 100644 stable/nextcloud/22.1.8/app-changelog.md create mode 100644 stable/nextcloud/22.1.8/app-readme.md create mode 100644 stable/nextcloud/22.1.8/charts/common-14.2.3.tgz create mode 100644 stable/nextcloud/22.1.8/charts/redis-6.0.66.tgz create mode 100644 stable/nextcloud/22.1.8/ix_values.yaml create mode 100644 stable/nextcloud/22.1.8/questions.yaml create mode 100644 stable/nextcloud/22.1.8/templates/NOTES.txt create mode 100644 stable/nextcloud/22.1.8/templates/_configmap.tpl create mode 100644 stable/nextcloud/22.1.8/templates/_cronjobs.tpl create mode 100644 stable/nextcloud/22.1.8/templates/_ingressInjector.tpl create mode 100644 stable/nextcloud/22.1.8/templates/_initPerms.tpl create mode 100644 stable/nextcloud/22.1.8/templates/_validation.tpl create mode 100644 stable/nextcloud/22.1.8/templates/_waitNextcloud.tpl create mode 100644 stable/nextcloud/22.1.8/templates/common.yaml create mode 100644 stable/nextcloud/22.1.8/values.yaml diff --git a/stable/nextcloud/22.1.8/CHANGELOG.md b/stable/nextcloud/22.1.8/CHANGELOG.md new file mode 100644 index 00000000000..231a4c86204 --- /dev/null +++ b/stable/nextcloud/22.1.8/CHANGELOG.md @@ -0,0 +1,99 @@ +**Important:** +*for the complete changelog, please refer to the website* + + + + +## [nextcloud-22.1.8](https://github.com/truecharts/charts/compare/nextcloud-22.1.7...nextcloud-22.1.8) (2023-11-08) + +### Chore + +- update container image tccr.io/truecharts/nginx-unprivileged to v1.25.2 ([#14439](https://github.com/truecharts/charts/issues/14439)) + + + + +## [nextcloud-22.1.7](https://github.com/truecharts/charts/compare/nextcloud-22.1.6...nextcloud-22.1.7) (2023-11-07) + +### Chore + +- update container image tccr.io/truecharts/nextcloud-imaginary to v20230401 ([#14434](https://github.com/truecharts/charts/issues/14434)) + + + + +## [nextcloud-22.1.6](https://github.com/truecharts/charts/compare/nextcloud-22.1.5...nextcloud-22.1.6) (2023-11-07) + +### Chore + +- update container image tccr.io/truecharts/nextcloud-imaginary to v20230401 ([#14433](https://github.com/truecharts/charts/issues/14433)) + + + + +## [nextcloud-22.1.5](https://github.com/truecharts/charts/compare/nextcloud-22.1.4...nextcloud-22.1.5) (2023-11-05) + +### Chore + +- update helm general non-major ([#14365](https://github.com/truecharts/charts/issues/14365)) + + + + +## [nextcloud-22.1.4](https://github.com/truecharts/charts/compare/nextcloud-22.1.3...nextcloud-22.1.4) (2023-11-02) + +### Chore + +- update helm general non-major ([#14245](https://github.com/truecharts/charts/issues/14245)) + + + + +## [nextcloud-22.1.3](https://github.com/truecharts/charts/compare/nextcloud-22.1.2...nextcloud-22.1.3) (2023-11-02) + +### Chore + +- update container image tccr.io/truecharts/nextcloud-fpm to v27.1.3 ([#14230](https://github.com/truecharts/charts/issues/14230)) + + + + +## [nextcloud-22.1.2](https://github.com/truecharts/charts/compare/nextcloud-22.1.1...nextcloud-22.1.2) (2023-11-02) + +### Chore + +- update container image tccr.io/truecharts/nextcloud-imaginary to v20230401 ([#14220](https://github.com/truecharts/charts/issues/14220)) + + + + +## [nextcloud-22.1.1](https://github.com/truecharts/charts/compare/nextcloud-22.1.0...nextcloud-22.1.1) (2023-11-01) + +### Chore + +- update container image tccr.io/truecharts/nextcloud-imaginary to v20230401 ([#14211](https://github.com/truecharts/charts/issues/14211)) + + + + +## [nextcloud-22.1.0](https://github.com/truecharts/charts/compare/nextcloud-22.0.50...nextcloud-22.1.0) (2023-10-31) + +### Feat + +- Add Force Enable Allow Local Remote Servers config ([#14106](https://github.com/truecharts/charts/issues/14106)) + + + + +## [nextcloud-22.0.50](https://github.com/truecharts/charts/compare/nextcloud-22.0.49...nextcloud-22.0.50) (2023-10-31) + +### Chore + +- update container image tccr.io/truecharts/nextcloud-fpm to v27.1.3 ([#14041](https://github.com/truecharts/charts/issues/14041)) + + + + +## [nextcloud-22.0.49](https://github.com/truecharts/charts/compare/nextcloud-22.0.48...nextcloud-22.0.49) (2023-10-30) + +### Chore diff --git a/stable/nextcloud/22.1.8/Chart.yaml b/stable/nextcloud/22.1.8/Chart.yaml new file mode 100644 index 00000000000..6f781d8ef9a --- /dev/null +++ b/stable/nextcloud/22.1.8/Chart.yaml @@ -0,0 +1,35 @@ +apiVersion: v2 +appVersion: "27.1.3" +dependencies: + - name: common + repository: https://library-charts.truecharts.org + version: 14.2.3 + - condition: redis.enabled + name: redis + repository: https://deps.truecharts.org + version: 6.0.66 +deprecated: false +description: A private cloud server that puts the control and security of your own data back into your hands. +home: https://truecharts.org/charts/stable/nextcloud +icon: https://truecharts.org/img/hotlink-ok/chart-icons/nextcloud.png +keywords: + - nextcloud + - storage + - http + - web + - php +kubeVersion: ">=1.16.0-0" +maintainers: + - email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +name: nextcloud +sources: + - https://github.com/truecharts/charts/tree/master/charts/stable/nextcloud + - https://github.com/nextcloud/docker + - https://github.com/nextcloud/helm +type: application +version: 22.1.8 +annotations: + truecharts.org/category: cloud + truecharts.org/SCALE-support: "true" diff --git a/stable/nextcloud/22.1.8/LICENSE b/stable/nextcloud/22.1.8/LICENSE new file mode 100644 index 00000000000..33a8cbb23f0 --- /dev/null +++ b/stable/nextcloud/22.1.8/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.1.8/README.md b/stable/nextcloud/22.1.8/README.md new file mode 100644 index 00000000000..e0a9b8fa8d7 --- /dev/null +++ b/stable/nextcloud/22.1.8/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/) + +**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.1.8/app-changelog.md b/stable/nextcloud/22.1.8/app-changelog.md new file mode 100644 index 00000000000..072a8ff04d5 --- /dev/null +++ b/stable/nextcloud/22.1.8/app-changelog.md @@ -0,0 +1,9 @@ + + +## [nextcloud-22.1.8](https://github.com/truecharts/charts/compare/nextcloud-22.1.7...nextcloud-22.1.8) (2023-11-08) + +### Chore + +- update container image tccr.io/truecharts/nginx-unprivileged to v1.25.2 ([#14439](https://github.com/truecharts/charts/issues/14439)) + + \ No newline at end of file diff --git a/stable/nextcloud/22.1.8/app-readme.md b/stable/nextcloud/22.1.8/app-readme.md new file mode 100644 index 00000000000..1369f69bf57 --- /dev/null +++ b/stable/nextcloud/22.1.8/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/nextcloud/22.1.8/charts/common-14.2.3.tgz b/stable/nextcloud/22.1.8/charts/common-14.2.3.tgz new file mode 100644 index 0000000000000000000000000000000000000000..03b3f5a1a3cc6385d534aa15217d5bf54ab1b271 GIT binary patch literal 72396 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

Iv+~XZ-pzlL9l#?KO5FjPRi?wt>(jsI1o7ee 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 literal 0 HcmV?d00001 diff --git a/stable/nextcloud/22.1.8/charts/redis-6.0.66.tgz b/stable/nextcloud/22.1.8/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.1.8/ix_values.yaml b/stable/nextcloud/22.1.8/ix_values.yaml new file mode 100644 index 00000000000..36d095fa2c6 --- /dev/null +++ b/stable/nextcloud/22.1.8/ix_values.yaml @@ -0,0 +1,517 @@ +image: + repository: tccr.io/truecharts/nextcloud-fpm + pullPolicy: IfNotPresent + tag: v27.1.3@sha256:517609d65d5cbdc5827dc8ae3f209aa546b43ede3a038ac4b2b1011a5f13d118 +nginxImage: + repository: tccr.io/truecharts/nginx-unprivileged + pullPolicy: IfNotPresent + tag: v1.25.2@sha256:325e5ad9313f03fdc76b74c966a396cf22047f54b979be6404cc4c344b872c1d +imaginaryImage: + repository: tccr.io/truecharts/nextcloud-imaginary + pullPolicy: IfNotPresent + tag: v20230401@sha256:50cb9b1013b1e2eb36c719597bfed38dff4ccdc5f69429c95dea6d92605f9bf7 +hpbImage: + repository: tccr.io/truecharts/nextcloud-push-notify + pullPolicy: IfNotPresent + tag: v0.6.3@sha256:b9c35ab123354eeac3996e361f8c30b8e4de6d2ccd69e5179a7c2a101a67b46f +clamavImage: + repository: tccr.io/truecharts/clamav + pullPolicy: IfNotPresent + tag: v1.2.1@sha256:f9fe7d0ccd86d1ee0583465a0ccf1cbd4bae7468c4c6297be4b8ca7f73260f42 +collaboraImage: + repository: tccr.io/truecharts/collabora + pullPolicy: IfNotPresent + tag: v23.05.5.3.1@sha256:ab6d6f66caa6924a1acb7dc0b601591121a4779bc80c904e3ea7b231bbe52720 + +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: "" + 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 diff --git a/stable/nextcloud/22.1.8/questions.yaml b/stable/nextcloud/22.1.8/questions.yaml new file mode 100644 index 00000000000..8257c9bd0db --- /dev/null +++ b/stable/nextcloud/22.1.8/questions.yaml @@ -0,0 +1,2807 @@ +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: string + 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: URL + schema: + type: string + required: true + default: "" + - 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: 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 + - 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: 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: 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 + - 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: 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: 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 + - 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: 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: 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: 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: ingress + label: "" + group: Ingress + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: Main Ingress + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Ingress + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: Hosts + schema: + type: list + default: [] + items: + - variable: hostEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: host + label: HostName + schema: + type: string + default: "" + required: true + - variable: paths + label: Paths + schema: + type: list + default: [] + items: + - variable: pathEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: path + label: Path + schema: + type: string + required: true + default: "/" + - variable: pathType + label: Path Type + schema: + type: string + required: true + default: Prefix + - variable: 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: 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: 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: 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/nextcloud/22.1.8/templates/NOTES.txt b/stable/nextcloud/22.1.8/templates/NOTES.txt new file mode 100644 index 00000000000..efcb74cb772 --- /dev/null +++ b/stable/nextcloud/22.1.8/templates/NOTES.txt @@ -0,0 +1 @@ +{{- include "tc.v1.common.lib.chart.notes" $ -}} diff --git a/stable/nextcloud/22.1.8/templates/_configmap.tpl b/stable/nextcloud/22.1.8/templates/_configmap.tpl new file mode 100644 index 00000000000..5a6a3e9f10b --- /dev/null +++ b/stable/nextcloud/22.1.8/templates/_configmap.tpl @@ -0,0 +1,421 @@ +{{/* Define the configmap */}} +{{- define "nextcloud.configmaps" -}} +{{- $fullname := (include "tc.v1.common.lib.chart.names.fullname" $) -}} +{{- $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 -}} +{{- $accessHost := regexReplaceAll ".*://(.*)" $accessUrl "${1}" -}} +{{- $accessHost = regexReplaceAll "(.*):.*" $accessUrl "${1}" -}} +{{- $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_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.1.8/templates/_cronjobs.tpl b/stable/nextcloud/22.1.8/templates/_cronjobs.tpl new file mode 100644 index 00000000000..0fa050dba68 --- /dev/null +++ b/stable/nextcloud/22.1.8/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.1.8/templates/_ingressInjector.tpl b/stable/nextcloud/22.1.8/templates/_ingressInjector.tpl new file mode 100644 index 00000000000..37919189e21 --- /dev/null +++ b/stable/nextcloud/22.1.8/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.1.8/templates/_initPerms.tpl b/stable/nextcloud/22.1.8/templates/_initPerms.tpl new file mode 100644 index 00000000000..ed94790ad93 --- /dev/null +++ b/stable/nextcloud/22.1.8/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.1.8/templates/_validation.tpl b/stable/nextcloud/22.1.8/templates/_validation.tpl new file mode 100644 index 00000000000..5650c0f63fe --- /dev/null +++ b/stable/nextcloud/22.1.8/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.1.8/templates/_waitNextcloud.tpl b/stable/nextcloud/22.1.8/templates/_waitNextcloud.tpl new file mode 100644 index 00000000000..24946d640e8 --- /dev/null +++ b/stable/nextcloud/22.1.8/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.1.8/templates/common.yaml b/stable/nextcloud/22.1.8/templates/common.yaml new file mode 100644 index 00000000000..22ed3e0e564 --- /dev/null +++ b/stable/nextcloud/22.1.8/templates/common.yaml @@ -0,0 +1,68 @@ +{{/* 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 -}} + +{{/* 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/nextcloud/22.1.8/values.yaml b/stable/nextcloud/22.1.8/values.yaml new file mode 100644 index 00000000000..e69de29bb2d