From 5d0467144ab7f3928298f1f49d7bf361565e4978 Mon Sep 17 00:00:00 2001 From: TrueCharts-Bot Date: Sun, 24 Dec 2023 14:22:55 +0000 Subject: [PATCH] Commit new Chart releases for TrueCharts Signed-off-by: TrueCharts-Bot --- stable/nextcloud/26.0.0/CHANGELOG.md | 99 + stable/nextcloud/26.0.0/Chart.yaml | 48 + stable/nextcloud/26.0.0/LICENSE | 106 + stable/nextcloud/26.0.0/README.md | 27 + stable/nextcloud/26.0.0/app-changelog.md | 13 + stable/nextcloud/26.0.0/app-readme.md | 8 + .../26.0.0/charts/common-16.2.20.tgz | Bin 0 -> 96341 bytes .../nextcloud/26.0.0/charts/redis-10.0.16.tgz | Bin 0 -> 102453 bytes stable/nextcloud/26.0.0/ix_values.yaml | 516 +++ stable/nextcloud/26.0.0/questions.yaml | 4117 +++++++++++++++++ stable/nextcloud/26.0.0/templates/NOTES.txt | 1 + .../nextcloud/26.0.0/templates/_configmap.tpl | 443 ++ .../nextcloud/26.0.0/templates/_cronjobs.tpl | 34 + .../26.0.0/templates/_ingressInjector.tpl | 24 + .../nextcloud/26.0.0/templates/_initPerms.tpl | 29 + .../26.0.0/templates/_validation.tpl | 42 + .../26.0.0/templates/_waitNextcloud.tpl | 25 + stable/nextcloud/26.0.0/templates/common.yaml | 80 + stable/nextcloud/26.0.0/values.yaml | 0 19 files changed, 5612 insertions(+) create mode 100644 stable/nextcloud/26.0.0/CHANGELOG.md create mode 100644 stable/nextcloud/26.0.0/Chart.yaml create mode 100644 stable/nextcloud/26.0.0/LICENSE create mode 100644 stable/nextcloud/26.0.0/README.md create mode 100644 stable/nextcloud/26.0.0/app-changelog.md create mode 100644 stable/nextcloud/26.0.0/app-readme.md create mode 100644 stable/nextcloud/26.0.0/charts/common-16.2.20.tgz create mode 100644 stable/nextcloud/26.0.0/charts/redis-10.0.16.tgz create mode 100644 stable/nextcloud/26.0.0/ix_values.yaml create mode 100644 stable/nextcloud/26.0.0/questions.yaml create mode 100644 stable/nextcloud/26.0.0/templates/NOTES.txt create mode 100644 stable/nextcloud/26.0.0/templates/_configmap.tpl create mode 100644 stable/nextcloud/26.0.0/templates/_cronjobs.tpl create mode 100644 stable/nextcloud/26.0.0/templates/_ingressInjector.tpl create mode 100644 stable/nextcloud/26.0.0/templates/_initPerms.tpl create mode 100644 stable/nextcloud/26.0.0/templates/_validation.tpl create mode 100644 stable/nextcloud/26.0.0/templates/_waitNextcloud.tpl create mode 100644 stable/nextcloud/26.0.0/templates/common.yaml create mode 100644 stable/nextcloud/26.0.0/values.yaml diff --git a/stable/nextcloud/26.0.0/CHANGELOG.md b/stable/nextcloud/26.0.0/CHANGELOG.md new file mode 100644 index 00000000000..721a20f71b4 --- /dev/null +++ b/stable/nextcloud/26.0.0/CHANGELOG.md @@ -0,0 +1,99 @@ +**Important:** +*for the complete changelog, please refer to the website* + + + + +## [nextcloud-26.0.0](https://github.com/truecharts/charts/compare/nextcloud-25.0.14...nextcloud-26.0.0) (2023-12-24) + +### Chore + +- BREAKING CHANGE remove service settings for SCALE GUI ([#16379](https://github.com/truecharts/charts/issues/16379)) + + ### Docs + +- update installation notes ([#16380](https://github.com/truecharts/charts/issues/16380)) + + + + +## [nextcloud-25.0.14](https://github.com/truecharts/charts/compare/nextcloud-25.0.13...nextcloud-25.0.14) (2023-12-24) + +### Chore + +- update helm general non-major by renovate ([#16376](https://github.com/truecharts/charts/issues/16376)) + + + + +## [nextcloud-25.0.13](https://github.com/truecharts/charts/compare/nextcloud-25.0.12...nextcloud-25.0.13) (2023-12-23) + +### Chore + +- update helm general non-major by renovate ([#16373](https://github.com/truecharts/charts/issues/16373)) + + + + +## [nextcloud-25.0.12](https://github.com/truecharts/charts/compare/nextcloud-25.0.11...nextcloud-25.0.12) (2023-12-23) + +### Chore + +- update helm general non-major by renovate ([#16369](https://github.com/truecharts/charts/issues/16369)) + + + + +## [nextcloud-25.0.11](https://github.com/truecharts/charts/compare/nextcloud-25.0.10...nextcloud-25.0.11) (2023-12-23) + +### Chore + +- update helm general non-major by renovate ([#16361](https://github.com/truecharts/charts/issues/16361)) + + + + +## [nextcloud-25.0.10](https://github.com/truecharts/charts/compare/nextcloud-25.0.9...nextcloud-25.0.10) (2023-12-22) + +### Chore + +- update helm general non-major by renovate ([#16359](https://github.com/truecharts/charts/issues/16359)) + + + + +## [nextcloud-25.0.9](https://github.com/truecharts/charts/compare/nextcloud-25.0.8...nextcloud-25.0.9) (2023-12-22) + +### Fix + +- expose custom options for homepage integration + + + + +## [nextcloud-25.0.8](https://github.com/truecharts/charts/compare/nextcloud-25.0.7...nextcloud-25.0.8) (2023-12-21) + +### Fix + +- bump to release middleware fix + + + + +## [nextcloud-25.0.7](https://github.com/truecharts/charts/compare/nextcloud-25.0.6...nextcloud-25.0.7) (2023-12-21) + +### Chore + +- update helm general non-major by renovate ([#16346](https://github.com/truecharts/charts/issues/16346)) + + + + +## [nextcloud-25.0.6](https://github.com/truecharts/charts/compare/nextcloud-25.0.5...nextcloud-25.0.6) (2023-12-21) + +### Chore + +- require ingress for certain charts + + + diff --git a/stable/nextcloud/26.0.0/Chart.yaml b/stable/nextcloud/26.0.0/Chart.yaml new file mode 100644 index 00000000000..3978e731a3b --- /dev/null +++ b/stable/nextcloud/26.0.0/Chart.yaml @@ -0,0 +1,48 @@ +kubeVersion: ">=1.24.0-0" +apiVersion: v2 +name: nextcloud +version: 26.0.0 +appVersion: 28.0.0 +description: A private cloud server that puts the control and security of your own data back into your hands. +home: https://truecharts.org/charts/stable/nextcloud +icon: https://truecharts.org/img/hotlink-ok/chart-icons/nextcloud.png +deprecated: false +sources: + - https://github.com/nextcloud/helm + - https://github.com/nextcloud/docker + - https://github.com/truecharts/charts/tree/master/charts/stable/nextcloud + - https://hub.docker.com/r/collabora/code +maintainers: + - name: TrueCharts + email: info@truecharts.org + url: https://truecharts.org +keywords: + - nextcloud + - storage + - http + - web + - php +dependencies: + - name: common + version: 16.2.20 + repository: https://library-charts.truecharts.org + condition: "" + alias: "" + tags: [] + import-values: [] + - name: redis + version: 10.0.16 + repository: https://deps.truecharts.org + condition: redis.enabled + alias: "" + tags: [] + import-values: [] +annotations: + max_scale_version: 23.10.2 + min_scale_version: 23.10.0 + truecharts.org/SCALE-support: "true" + truecharts.org/category: cloud + truecharts.org/max_helm_version: "3.13" + truecharts.org/min_helm_version: "3.12" + truecharts.org/train: stable +type: application diff --git a/stable/nextcloud/26.0.0/LICENSE b/stable/nextcloud/26.0.0/LICENSE new file mode 100644 index 00000000000..33a8cbb23f0 --- /dev/null +++ b/stable/nextcloud/26.0.0/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/26.0.0/README.md b/stable/nextcloud/26.0.0/README.md new file mode 100644 index 00000000000..d551b5d959d --- /dev/null +++ b/stable/nextcloud/26.0.0/README.md @@ -0,0 +1,27 @@ +# README + +## General Info + +TrueCharts can be installed as both *normal* Helm Charts or as Apps on TrueNAS SCALE. +However only installations using the TrueNAS SCALE Apps system are supported. + +For more information about this App, please check the docs on the TrueCharts [website](https://truecharts.org/charts/stable/nextcloud) + +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)** + + +## Support + +- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/manual/SCALE/guides/scale-intro). +- See the [Website](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/charts/issues/new/choose) + +--- + +## Sponsor TrueCharts + +TrueCharts can only exist due to the incredible effort of our staff. +Please consider making a [donation](https://truecharts.org/sponsor) or contributing back to the project any way you can! + +*All Rights Reserved - The TrueCharts Project* diff --git a/stable/nextcloud/26.0.0/app-changelog.md b/stable/nextcloud/26.0.0/app-changelog.md new file mode 100644 index 00000000000..a16bb82bf5d --- /dev/null +++ b/stable/nextcloud/26.0.0/app-changelog.md @@ -0,0 +1,13 @@ + + +## [nextcloud-26.0.0](https://github.com/truecharts/charts/compare/nextcloud-25.0.14...nextcloud-26.0.0) (2023-12-24) + +### Chore + +- BREAKING CHANGE remove service settings for SCALE GUI ([#16379](https://github.com/truecharts/charts/issues/16379)) + + ### Docs + +- update installation notes ([#16380](https://github.com/truecharts/charts/issues/16380)) + + \ No newline at end of file diff --git a/stable/nextcloud/26.0.0/app-readme.md b/stable/nextcloud/26.0.0/app-readme.md new file mode 100644 index 00000000000..1369f69bf57 --- /dev/null +++ b/stable/nextcloud/26.0.0/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/26.0.0/charts/common-16.2.20.tgz b/stable/nextcloud/26.0.0/charts/common-16.2.20.tgz new file mode 100644 index 0000000000000000000000000000000000000000..a4b3c1b5a69f80425cdcabfa7d3b7be125e4f749 GIT binary patch literal 96341 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%0Dt=v4iH^XhGzOZ3g`WbC7q}Y1IqtxooDZ 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 U`V7RV|A8*c@c=3e0FY+rI{*Lx literal 0 HcmV?d00001 diff --git a/stable/nextcloud/26.0.0/charts/redis-10.0.16.tgz b/stable/nextcloud/26.0.0/charts/redis-10.0.16.tgz new file mode 100644 index 0000000000000000000000000000000000000000..be53a4c4603a1fbc1f6983e55874623d43cd17c9 GIT binary patch literal 102453 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ºs2UHA2pJ!a>( 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

UAbO+XBdDBLFKj25s#tx}a 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 + occ db:add-missing-indices
+ occ db:add-missing-columns
+ occ db:add-missing-primary-keys
+ yes | occ db:convert-filecache-bigint
+ occ maintenance:mimetype:update-js
+ occ maintenance:mimetype:update-db
+ occ maintenance:update:htaccess
+ schema: + type: boolean + default: false + - variable: default_phone_region + label: Default Phone Region + description: | + Sets the default phone region in ISO_3166-1 format (e.g. US).
+ https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements + schema: + type: string + valid_chars: '^[A-Z]{2}$' + required: true + default: "" + - variable: accessIP + label: Access IP + description: Set to the IP-Address used to reach Nextcloud. + schema: + type: string + required: true + $ref: + - "definitions/nodeIP" + - variable: force_enable_allow_local_remote_servers + label: Force Enable Allow Local Remote Servers + description: + Enables 'allow_local_remote_servers' option + schema: + type: boolean + default: false + - variable: files + label: Files Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: shared_folder_name + label: Shared Folder Name + schema: + type: string + required: true + default: Shared + - variable: max_chunk_size + label: Max Chunk Size + schema: + type: int + required: true + default: 10485760 + - variable: expirations + label: Expirations Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: activity_expire_days + label: Activity Expire Days + schema: + type: int + required: true + default: 90 + - variable: trash_retention_obligation + label: Trash Retention Obligation + schema: + type: string + required: true + default: auto + - variable: versions_retention_obligation + label: Versions Retention Obligation + schema: + type: string + required: true + default: auto + - variable: previews + label: Previews Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Previews + schema: + type: boolean + default: true + show_subquestions_if: true + subquestions: + - variable: imaginary + label: Enable imaginary + description: | + Enable imaginary to generate previews in the background.
+ It will also deploy the needed container. + schema: + type: boolean + default: true + - variable: cron + label: Enable cron + description: | + Enable cron to generate previews in the background. + schema: + type: boolean + default: true + - variable: schedule + label: Cron Schedule + schema: + type: string + default: "*/30 * * * *" + - variable: max_x + label: Max X + schema: + type: int + required: true + default: 2048 + - variable: max_y + label: Max Y + schema: + type: int + required: true + default: 2048 + - variable: max_memory + label: Max Memory + schema: + type: int + required: true + default: 1024 + - variable: max_allowed_resolution + label: Max Allowed Resolution + schema: + type: string + valid_chars: '^[0-9]{1,5}(\.[0-9]{1,2})?$' + show_if: [["imaginary", "=", true]] + required: true + default: "18.0" + - variable: max_file_size_image + label: Max File Size Image + schema: + type: int + required: true + default: 50 + - variable: jpeg_quality + label: JPEG Quality + schema: + type: int + required: true + default: 60 + - variable: square_sizes + label: Square Sizes + schema: + type: string + required: true + default: "32 256" + - variable: width_sizes + label: Width Sizes + schema: + type: string + required: true + default: "256 384" + - variable: height_sizes + label: Height Sizes + schema: + type: string + required: true + default: "256" + - variable: providers + label: Providers + schema: + type: list + empty: false + required: true + default: + - BMP + - GIF + - JPEG + - Krita + - MarkDown + - MP3 + - OpenDocument + - PNG + - TXT + - XBitmap + items: + - variable: provider_entry + label: Provider Entry + schema: + type: string + required: true + default: "" + enum: + - value: BMP + description: BMP + - value: Font + description: Font + - value: GIF + description: GIF + - value: HEIC + description: HEIC + - value: Illustrator + description: Illustrator + - value: JPEG + description: JPEG + - value: Krita + description: Krita + - value: MarkDown + description: MarkDown + - value: Movie + description: Movie + - value: MP3 + description: MP3 + - value: MSOffice2003 + description: MSOffice2003 + - value: MSOffice2007 + description: MSOffice2007 + - value: MSOfficeDoc + description: MSOfficeDoc + - value: OpenDocument + description: OpenDocument + - value: PDF + description: PDF + - value: Photoshop + description: Photoshop + - value: PNG + description: PNG + - value: Postscript + description: Postscript + - value: StarOffice + description: StarOffice + - value: SVG + description: SVG + - value: TIFF + description: TIFF + - value: TXT + description: TXT + - value: XBitmap + description: XBitmap + - variable: logging + label: Logging Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: log_level + label: Log Level + schema: + type: int + required: true + default: 2 + enum: + - value: 0 + description: Debug + - value: 1 + description: Info + - value: 2 + description: Warning + - value: 3 + description: Error + - value: 4 + description: Fatal + - variable: log_date_format + label: Log Date Format + schema: + type: string + required: true + default: d/m/Y H:i:s + - variable: notify_push + label: Notify Push Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Notify Push + description: | + Enable and Configure Notify Push.
+ It will also deploy the needed container + schema: + type: boolean + default: true + - variable: clamav + label: ClamAV Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable ClamAV + description: | + Enable and configure ClamAV.
+ It will also deploy the needed container.
+ Keep in mind that this will run as root.
+ https://github.com/Cisco-Talos/clamav/issues/478 + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: stream_max_length + label: Stream Max Length + schema: + type: int + required: true + default: 104857600 + - variable: file_max_size + label: File Max Size + schema: + type: int + required: true + default: -1 + - variable: infected_action + label: Infected Action + schema: + type: string + required: true + default: only_log + enum: + - value: delete + description: Delete + - value: only_log + description: Only Log + - variable: collabora + label: Collabora Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Collabora + description: | + Enable and configure Collabora.
+ It will also deploy the needed container.
+ Keep in mind that this will run as root. + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: interface_mode + label: Interface Mode + schema: + type: string + required: true + default: default + enum: + - value: default + description: Default + - value: compact + description: Compact + - value: tabbed + description: Tabbed + - variable: username + label: Username + schema: + type: string + default: admin + required: true + - variable: password + label: Password + schema: + type: string + default: "" + required: true + - variable: dictionaries + label: Dictionaries + schema: + type: list + empty: false + required: true + default: + - de_DE + - en_GB + - en_US + - el_GR + - es_ES + - fr_FR + - pt_BR + - pt_PT + - it + - nl + - ru + items: + - variable: dictionary + label: Dictionary + schema: + type: string + required: true + default: "" + - variable: onlyoffice + label: Only Office Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable OnlyOffice + description: | + Enable and configure OnlyOffice.
+ This will NOT deploy the needed container.
+ You need to deploy it yourself. + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: url + label: Public URL + description: | + The public FQDN and port of the OnlyOffice Document Server + schema: + type: string + required: true + default: "" + - variable: internal_url + label: Internal URL + description: | + The internal FQDN and port of the OnlyOffice Document Server + schema: + type: string + required: true + default: "" + - variable: verify_ssl + label: Verify SSL (Advanced) + description: | + Verify SSL when connecting to OnlyOffice Document Server + schema: + type: boolean + default: true + - variable: jwt + label: JWT + schema: + type: string + required: true + default: "" + - variable: jwt_header + label: JWT Header + schema: + type: string + required: true + default: Authorization + - variable: php + label: PHP Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: memory_limit + label: Memory Limit + schema: + type: string + required: true + default: 1G + - variable: upload_limit + label: Upload Limit + schema: + type: string + required: true + default: 10G + - variable: pm_max_children + label: Max Children + schema: + type: int + required: true + default: 180 + - variable: pm_start_servers + label: Start Servers + schema: + type: int + required: true + default: 18 + - variable: pm_min_spare_servers + label: Minimum Spare Servers + schema: + type: int + required: true + default: 12 + - variable: pm_max_spare_servers + label: Maximum Spare Servers + schema: + type: int + required: true + default: 30 + - variable: opcache + label: OPCache Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: interned_strings_buffer + label: Interned Strings Buffer + description: The amount of memory used to store interned strings, in megabytes. + schema: + type: int + required: true + default: 32 + - variable: max_accelerated_files + label: Max Accelerated Files + description: The maximum number of keys (and therefore scripts) in the OPcache hash table. + schema: + type: int + required: true + default: 10000 + - variable: memory_consumption + label: Memory Consumption + description: The size of the shared memory storage used by OPcache, in megabytes. + schema: + type: int + required: true + default: 128 + - variable: revalidate_freq + label: Revalidate Frequency + description: How often to check script timestamps for updates, in seconds. 0 will result in OPcache checking for updates on every request. + schema: + type: int + required: true + default: 60 + - variable: jit_buffer_size + label: JIT Buffer Size + description: The amount of shared memory (in megabytes) to reserve for compiled JIT code. A zero value disables the JIT. + schema: + type: int + required: true + default: 128 + + - variable: serviceList + label: Add Manual Custom Services + group: Networking and Services + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: Custom Service + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the service + schema: + type: boolean + default: true + hidden: true + - variable: name + label: Name + schema: + type: string + default: "" + - variable: type + label: Service Type + description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: LoadBalancer + enum: + - value: LoadBalancer + description: LoadBalancer (Expose Ports) + - value: ClusterIP + description: ClusterIP (Do Not Expose Ports) + - value: Simple + description: Deprecated CHANGE THIS + - variable: loadBalancerIP + label: LoadBalancer IP + description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: advancedsvcset + label: Show Advanced Service Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + type: list + default: [] + items: + - variable: externalIP + label: External IP + schema: + type: string + - variable: ipFamilyPolicy + label: IP Family Policy + description: Specify the IP Policy + schema: + type: string + default: SingleStack + enum: + - value: SingleStack + description: SingleStack + - value: PreferDualStack + description: PreferDualStack + - value: RequireDualStack + description: RequireDualStack + - variable: ipFamilies + label: IP Families + description: (Advanced) The IP Families that should be used + schema: + type: list + default: [] + items: + - variable: ipFamily + label: IP Family + schema: + type: string + - variable: portsList + label: Additional Service Ports + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: Custom ports + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the Port + schema: + type: boolean + default: true + hidden: true + - variable: name + label: Port Name + schema: + type: string + default: "" + - variable: protocol + label: Port Type + schema: + type: string + default: tcp + enum: + - value: http + description: HTTP + - value: https + description: HTTPS + - value: tcp + description: TCP + - value: udp + description: UDP + - variable: targetPort + label: Target Port + description: This port exposes the container port on the service + schema: + type: int + required: true + - variable: port + label: Container Port + schema: + type: int + required: true + - variable: persistence + label: Integrated Persistent Storage + description: Integrated Persistent Storage + group: Storage and Persistence + schema: + additional_attrs: true + type: dict + attrs: + - variable: html + label: App HTML Storage + description: Stores the Application HTML. + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: pvc + enum: + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: emptyDir + description: emptyDir + - value: nfs + description: NFS Share + - value: iscsi + description: iSCSI Share + - variable: server + label: NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: path + label: Path on NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: iscsi + label: iSCSI Options + schema: + show_if: [["type", "=", "iscsi"]] + type: dict + additional_attrs: true + attrs: + - variable: targetPortal + label: targetPortal + schema: + type: string + required: true + default: "" + - variable: iqn + label: iqn + schema: + type: string + required: true + default: "" + - variable: lun + label: lun + schema: + type: int + default: 0 + - variable: authSession + label: authSession + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: authDiscovery + label: authDiscovery + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + + - variable: autoPermissions + label: Automatic Permissions Configuration + description: Automatically set permissions + schema: + show_if: [["type", "!=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: chown + label: Run CHOWN + description: | + It will run CHOWN on the path with the given fsGroup + schema: + type: boolean + default: false + - variable: chmod + label: Run CHMOD + description: | + It will run CHMOD on the path with the given value
+ Format should be 3 digits, e.g. 770 + schema: + type: string + valid_chars: '[0-9]{3}' + default: "" + - variable: recursive + label: Recursive + description: | + It will run CHOWN and CHMOD recursively + schema: + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - variable: hostPath + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: medium + label: EmptyDir Medium + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: Memory + description: Memory + - variable: size + label: Size quotum of Storage (Do NOT REDUCE after installation) + description: This value can ONLY be INCREASED after the installation + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: storageClass + label: 'storageClass (Advanced)' + description: 'sets the storageClass to something other than iX default. Only for advanced usecases!' + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "" + - variable: static + label: 'Static Fixed PVC Bindings (Experimental)' + description: Link a PVC to a specific storage location + schema: + show_if: [["type", "=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: mode + label: mode + description: | + disabled: use normal dynamic PVCs + smb: connect to an SMB share + nfs: connect to an NFS share + schema: + type: string + default: "disabled" + enum: + - value: disabled + description: disabled + - value: smb + description: smb + - value: nfs + description: nfs + - variable: server + label: Server + description: server to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "myserver" + - variable: share + label: Share + description: share to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "/myshare" + - variable: user + label: User + description: connecting user + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "myuser" + - variable: domain + label: Domain + description: user domain + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: password + label: Password + description: connecting password + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: volumeSnapshots + label: 'Volume Snapshots (Experimental)' + description: Add an entry to the list to force creation of a volumeSnapshot of this PVC + schema: + show_if: [["type", "=", "pvc"]] + type: list + default: [] + items: + - variable: volumeSnapshotEntry + label: Custom volumeSnapshot + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: 'WARNING: renaming this, means deletion of the snapshot with the old name!' + schema: + type: string + default: "mysnapshot" + required: true + - variable: volumeSnapshotClassName + label: 'volumeSnapshot Class Name (Advanced)' + description: For use with PVCs using a non-default storageClass + schema: + type: string + default: "" + - variable: config + label: App Config Storage + description: Stores the Application Config. + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: pvc + enum: + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: emptyDir + description: emptyDir + - value: nfs + description: NFS Share + - value: iscsi + description: iSCSI Share + - variable: server + label: NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: path + label: Path on NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: iscsi + label: iSCSI Options + schema: + show_if: [["type", "=", "iscsi"]] + type: dict + additional_attrs: true + attrs: + - variable: targetPortal + label: targetPortal + schema: + type: string + required: true + default: "" + - variable: iqn + label: iqn + schema: + type: string + required: true + default: "" + - variable: lun + label: lun + schema: + type: int + default: 0 + - variable: authSession + label: authSession + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: authDiscovery + label: authDiscovery + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + + - variable: autoPermissions + label: Automatic Permissions Configuration + description: Automatically set permissions + schema: + show_if: [["type", "!=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: chown + label: Run CHOWN + description: | + It will run CHOWN on the path with the given fsGroup + schema: + type: boolean + default: false + - variable: chmod + label: Run CHMOD + description: | + It will run CHMOD on the path with the given value
+ Format should be 3 digits, e.g. 770 + schema: + type: string + valid_chars: '[0-9]{3}' + default: "" + - variable: recursive + label: Recursive + description: | + It will run CHOWN and CHMOD recursively + schema: + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - variable: hostPath + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: medium + label: EmptyDir Medium + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: Memory + description: Memory + - variable: size + label: Size quotum of Storage (Do NOT REDUCE after installation) + description: This value can ONLY be INCREASED after the installation + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: storageClass + label: 'storageClass (Advanced)' + description: 'sets the storageClass to something other than iX default. Only for advanced usecases!' + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "" + - variable: static + label: 'Static Fixed PVC Bindings (Experimental)' + description: Link a PVC to a specific storage location + schema: + show_if: [["type", "=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: mode + label: mode + description: | + disabled: use normal dynamic PVCs + smb: connect to an SMB share + nfs: connect to an NFS share + schema: + type: string + default: "disabled" + enum: + - value: disabled + description: disabled + - value: smb + description: smb + - value: nfs + description: nfs + - variable: server + label: Server + description: server to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "myserver" + - variable: share + label: Share + description: share to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "/myshare" + - variable: user + label: User + description: connecting user + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "myuser" + - variable: domain + label: Domain + description: user domain + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: password + label: Password + description: connecting password + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: volumeSnapshots + label: 'Volume Snapshots (Experimental)' + description: Add an entry to the list to force creation of a volumeSnapshot of this PVC + schema: + show_if: [["type", "=", "pvc"]] + type: list + default: [] + items: + - variable: volumeSnapshotEntry + label: Custom volumeSnapshot + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: 'WARNING: renaming this, means deletion of the snapshot with the old name!' + schema: + type: string + default: "mysnapshot" + required: true + - variable: volumeSnapshotClassName + label: 'volumeSnapshot Class Name (Advanced)' + description: For use with PVCs using a non-default storageClass + schema: + type: string + default: "" + - variable: data + label: User Data Storage + description: Stores the User Data. + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: pvc + enum: + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: emptyDir + description: emptyDir + - value: nfs + description: NFS Share + - value: iscsi + description: iSCSI Share + - variable: server + label: NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: path + label: Path on NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: iscsi + label: iSCSI Options + schema: + show_if: [["type", "=", "iscsi"]] + type: dict + additional_attrs: true + attrs: + - variable: targetPortal + label: targetPortal + schema: + type: string + required: true + default: "" + - variable: iqn + label: iqn + schema: + type: string + required: true + default: "" + - variable: lun + label: lun + schema: + type: int + default: 0 + - variable: authSession + label: authSession + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: authDiscovery + label: authDiscovery + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + + - variable: autoPermissions + label: Automatic Permissions Configuration + description: Automatically set permissions + schema: + show_if: [["type", "!=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: chown + label: Run CHOWN + description: | + It will run CHOWN on the path with the given fsGroup + schema: + type: boolean + default: false + - variable: chmod + label: Run CHMOD + description: | + It will run CHMOD on the path with the given value
+ Format should be 3 digits, e.g. 770 + schema: + type: string + valid_chars: '[0-9]{3}' + default: "" + - variable: recursive + label: Recursive + description: | + It will run CHOWN and CHMOD recursively + schema: + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - variable: hostPath + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: medium + label: EmptyDir Medium + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: Memory + description: Memory + - variable: size + label: Size quotum of Storage (Do NOT REDUCE after installation) + description: This value can ONLY be INCREASED after the installation + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: storageClass + label: 'storageClass (Advanced)' + description: 'sets the storageClass to something other than iX default. Only for advanced usecases!' + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "" + - variable: static + label: 'Static Fixed PVC Bindings (Experimental)' + description: Link a PVC to a specific storage location + schema: + show_if: [["type", "=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: mode + label: mode + description: | + disabled: use normal dynamic PVCs + smb: connect to an SMB share + nfs: connect to an NFS share + schema: + type: string + default: "disabled" + enum: + - value: disabled + description: disabled + - value: smb + description: smb + - value: nfs + description: nfs + - variable: server + label: Server + description: server to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "myserver" + - variable: share + label: Share + description: share to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "/myshare" + - variable: user + label: User + description: connecting user + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "myuser" + - variable: domain + label: Domain + description: user domain + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: password + label: Password + description: connecting password + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: volumeSnapshots + label: 'Volume Snapshots (Experimental)' + description: Add an entry to the list to force creation of a volumeSnapshot of this PVC + schema: + show_if: [["type", "=", "pvc"]] + type: list + default: [] + items: + - variable: volumeSnapshotEntry + label: Custom volumeSnapshot + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: 'WARNING: renaming this, means deletion of the snapshot with the old name!' + schema: + type: string + default: "mysnapshot" + required: true + - variable: volumeSnapshotClassName + label: 'volumeSnapshot Class Name (Advanced)' + description: For use with PVCs using a non-default storageClass + schema: + type: string + default: "" + - variable: persistenceList + label: Additional App Storage + group: Storage and Persistence + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: Custom Storage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the storage + schema: + type: boolean + default: true + hidden: true + - variable: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: hostPath + enum: + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: emptyDir + description: emptyDir + - value: nfs + description: NFS Share + - variable: server + label: NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: path + label: Path on NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: iscsi + label: iSCSI Options + schema: + show_if: [["type", "=", "iscsi"]] + type: dict + additional_attrs: true + attrs: + - variable: targetPortal + label: targetPortal + schema: + type: string + required: true + default: "" + - variable: iqn + label: iqn + schema: + type: string + required: true + default: "" + - variable: lun + label: lun + schema: + type: int + default: 0 + - variable: authSession + label: authSession + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: authDiscovery + label: authDiscovery + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: autoPermissions + label: Automatic Permissions Configuration + description: Automatically set permissions + schema: + show_if: [["type", "!=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: chown + label: Run CHOWN + description: | + It will run CHOWN on the path with the given fsGroup + schema: + type: boolean + default: false + - variable: chmod + label: Run CHMOD + description: | + It will run CHMOD on the path with the given value
+ Format should be 3 digits, e.g. 770 + schema: + type: string + valid_chars: '[0-9]{3}' + default: "" + - variable: recursive + label: Recursive + description: | + It will run CHOWN and CHMOD recursively + schema: + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - variable: hostPath + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: Mount Path + description: Path inside the container the storage is mounted + schema: + type: string + default: "" + required: true + valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' + - variable: medium + label: EmptyDir Medium + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: Memory + description: Memory + - variable: size + label: Size Quotum of Storage + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: storageClass + label: 'storageClass (Advanced)' + description: 'sets the storageClass to something other than iX default. Only for advanced usecases!' + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "" + - variable: static + label: 'Static Fixed PVC Bindings (Experimental)' + description: Link a PVC to a specific storage location + schema: + show_if: [["type", "=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: mode + label: mode + description: | + disabled: use normal dynamic PVCs + smb: connect to an SMB share + nfs: connect to an NFS share + schema: + type: string + default: "disabled" + enum: + - value: "disabled" + description: disabled + - value: smb + description: smb + - value: nfs + description: nfs + - variable: server + label: Server + description: server to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "myserver" + - variable: share + label: Share + description: share to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "/myshare" + - variable: user + label: User + description: connecting user + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "myuser" + - variable: domain + label: Domain + description: user domain + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: password + label: Password + description: connecting password + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: volumeSnapshots + label: 'Volume Snapshots (Experimental)' + description: Add an entry to the list to force creation of a volumeSnapshot of this PVC + schema: + show_if: [["type", "=", "pvc"]] + type: list + default: [] + items: + - variable: volumeSnapshotEntry + label: Custom volumeSnapshot + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: 'WARNING: renaming this, means deletion of the snapshot with the old name!' + schema: + type: string + default: "mysnapshot" + required: true + - variable: volumeSnapshotClassName + label: 'volumeSnapshot Class Name (Advanced)' + description: For use with PVCs using a non-default storageClass + schema: + type: string + default: "" + - variable: ingress + label: "" + group: Ingress + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: Main Ingress + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Ingress + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: Hosts + schema: + type: list + default: [] + items: + - variable: hostEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: host + label: HostName + schema: + type: string + default: "" + required: true + - variable: paths + label: Paths + schema: + type: list + default: [{path: "/", pathType: "Prefix"}] + items: + - variable: pathEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: path + label: Path + schema: + type: string + required: true + default: "/" + - variable: pathType + label: Path Type + schema: + type: string + required: true + default: Prefix + + + - variable: integrations + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: traefik + label: Traefik + description: Connect ingress with Traefik + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: allowCors + label: 'Allow Cross Origin Requests (advanced)' + schema: + type: boolean + default: false + show_if: [["enabled", "=", true]] + - variable: entrypoints + label: Entrypoints + schema: + type: list + default: ["websecure"] + show_if: [["enabled", "=", true]] + items: + - variable: entrypoint + label: Entrypoint + schema: + type: string + - variable: middlewares + label: Middlewares + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: middleware + label: Middleware + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true + - variable: namespace + label: 'namespace (optional)' + schema: + type: string + default: "" + - variable: certManager + label: certManager + description: Connect ingress with certManager + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: certificateIssuer + label: certificateIssuer + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: homepage + label: Homepage + description: Connect ingress with Homepage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: name + label: Name (Optional) + description: Defaults to chart name + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: description + label: Description (Optional) + description: Defaults to chart description + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: icon + label: Icon (Optional) + description: Defaults to chart icon + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: group + label: Group + schema: + type: string + required: true + default: "default" + show_if: [["enabled", "=", true]] + - variable: widget + label: Widget Settings + schema: + type: dict + additional_attrs: true + show_if: [["enabled", "=", true]] + attrs: + - variable: custom + label: Options + schema: + type: dict + additional_attrs: true + attrs: + - variable: key + label: API-key (key) + schema: + type: string + default: "" + - variable: customkv + label: Custom Options + schema: + type: list + default: [] + items: + - variable: option + label: Option + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + default: "" + required: true + - variable: value + label: Value + schema: + type: string + default: "" + required: true + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + - variable: ingressClassName + label: (Advanced/Optional) IngressClass Name + schema: + type: string + show_if: [["advanced", "=", true]] + default: "" + - variable: tls + label: TLS-Settings + schema: + type: list + show_if: [["advanced", "=", true]] + default: [] + items: + - variable: tlsEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: hosts + label: Certificate Hosts + schema: + type: list + default: [] + items: + - variable: host + label: Host + schema: + type: string + default: "" + required: true + + - variable: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: 'Use Custom Certificate Secret (Advanced)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: string + default: "" + - variable: scaleCert + label: 'Use TrueNAS SCALE Certificate (Deprecated)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - variable: ingressList + label: Add Manual Custom Ingresses + group: Ingress + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: Custom Ingress + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Ingress + schema: + type: boolean + default: true + hidden: true + - variable: name + label: Name + schema: + type: string + default: "" + - variable: ingressClassName + label: IngressClass Name + schema: + type: string + default: "" + - variable: hosts + label: Hosts + schema: + type: list + default: [] + items: + - variable: hostEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: host + label: HostName + schema: + type: string + default: "" + required: true + - variable: paths + label: Paths + schema: + type: list + default: [] + items: + - variable: pathEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: path + label: Path + schema: + type: string + required: true + default: "/" + - variable: pathType + label: Path Type + schema: + type: string + required: true + default: Prefix + - variable: service + label: Linked Service + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Service Name + schema: + type: string + default: "" + - variable: port + label: Service Port + schema: + type: int + - variable: tls + label: TLS-Settings + schema: + type: list + default: [] + show_if: [["certificateIssuer", "=", ""]] + items: + - variable: tlsEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: hosts + label: Certificate Hosts + schema: + type: list + default: [] + items: + - variable: host + label: Host + schema: + type: string + default: "" + required: true + - variable: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your Cert-Manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: scaleCert + label: Use TrueNAS SCALE Certificate (Deprecated) + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: Use Custom Secret (Advanced) + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: integrations + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: traefik + label: Traefik + description: Connect ingress with Traefik + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: allowCors + label: "Allow Cross Origin Requests" + schema: + type: boolean + default: false + show_if: [["enabled", "=", true]] + - variable: entrypoints + label: Entrypoints + schema: + type: list + default: ["websecure"] + show_if: [["enabled", "=", true]] + items: + - variable: entrypoint + label: Entrypoint + schema: + type: string + - variable: middlewares + label: Middlewares + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: middleware + label: Middleware + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true + - variable: namespace + label: namespace + schema: + type: string + default: "" + - variable: certManager + label: certManager + description: Connect ingress with certManager + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: certificateIssuer + label: certificateIssuer + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: homepage + label: Homepage + description: Connect ingress with Homepage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: name + label: Name + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: description + label: Description + description: defaults to chart description + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: group + label: Group + schema: + type: string + required: true + default: "default" + show_if: [["enabled", "=", true]] + - variable: securityContext + group: Security and Permissions + label: Security Context + schema: + additional_attrs: true + type: dict + attrs: + - variable: container + label: Container + schema: + additional_attrs: true + type: dict + attrs: + # Settings from questions.yaml get appended here on a per-app basis + - variable: runAsUser + label: runAsUser + description: The UserID of the user running the application + schema: + type: int + default: 568 + - variable: runAsGroup + label: runAsGroup + description: The groupID of the user running the application + schema: + type: int + default: 568 + # Settings from questions.yaml get appended here on a per-app basis + - variable: PUID + label: Process User ID - PUID + description: When supported by the container, this sets the User ID running the Application Process. Not supported by all Apps + schema: + type: int + show_if: [["runAsUser", "=", 0]] + default: 568 + - variable: UMASK + label: UMASK + description: When supported by the container, this sets the UMASK for the App. Not supported by all Apps + schema: + type: string + default: "0022" + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: pod + label: Pod + schema: + additional_attrs: true + type: dict + attrs: + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: OnRootMismatch + enum: + - value: OnRootMismatch + description: OnRootMismatch + - value: Always + description: Always + - variable: supplementalGroups + label: Supplemental Groups + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: Supplemental Group + schema: + type: int + # Settings from questions.yaml get appended here on a per-app basis + - variable: fsGroup + label: fsGroup + description: The group that should own ALL storage. + schema: + type: int + default: 568 + - variable: resources + group: Resources and Devices + label: "Resource Limits" + schema: + additional_attrs: true + type: dict + attrs: + - variable: limits + label: Advanced Limit Resource Consumption + schema: + additional_attrs: true + type: dict + attrs: + - variable: cpu + label: CPU + description: "1000m means 1 hyperthread. Detailed info: https://truecharts.org/manual/SCALE/validation" + schema: + type: string + default: 4000m + valid_chars: '^(?!^0(\.0|m|)$)([0-9]+)(\.[0-9]|m?)$' + - variable: memory + label: RAM + description: "1Gi means 1 Gibibyte RAM. Detailed info: https://truecharts.org/manual/SCALE/validation" + schema: + type: string + default: 8Gi + valid_chars: '^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$' + - variable: requests + label: "Minimum Resources Required (request)" + schema: + additional_attrs: true + type: dict + hidden: true + attrs: + - variable: cpu + label: CPU + description: "1000m means 1 hyperthread. Detailed info: https://truecharts.org/manual/SCALE/validation" + schema: + type: string + default: 10m + hidden: true + valid_chars: '^(?!^0(\.0|m|)$)([0-9]+)(\.[0-9]|m?)$' + - variable: memory + label: "RAM" + description: "1Gi means 1 Gibibyte RAM. Detailed info: https://truecharts.org/manual/SCALE/validation" + schema: + type: string + default: 50Mi + hidden: true + valid_chars: '^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$' + - variable: deviceList + label: Mount USB Devices + group: Resources and Devices + schema: + type: list + default: [] + items: + - variable: deviceListEntry + label: Device + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the Storage + schema: + type: boolean + default: true + - variable: type + label: (Advanced) Type of Storage + description: Sets the persistence type + schema: + type: string + default: device + hidden: true + - variable: readOnly + label: readOnly + schema: + type: boolean + default: false + - variable: hostPath + label: Host Device Path + description: Path to the device on the host system + schema: + type: path + - variable: mountPath + label: Container Device Path + description: Path inside the container the device is mounted + schema: + type: string + default: "/dev/ttyACM0" + - variable: scaleGPU + label: GPU Configuration + group: Resources and Devices + schema: + type: list + default: [] + items: + - variable: scaleGPUEntry + label: GPU + schema: + additional_attrs: true + type: dict + attrs: + # Specify GPU configuration + - variable: gpu + label: Select GPU + schema: + additional_attrs: true + type: dict + $ref: + - "definitions/gpuConfiguration" + attrs: [] + - variable: workaround + label: "Workaround" + schema: + type: string + default: workaround + hidden: true + - variable: cnpg + group: Postgresql + label: "CloudNative-PG (CNPG)" + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "Main Postgresql Database" + schema: + additional_attrs: true + type: dict + attrs: + - variable: hibernate + label: Hibernate + description: "enable to safely hibernate and shutdown the postgresql cluster" + schema: + type: boolean + default: false + - variable: mode + label: Mode + description: 'Cluster mode of operation. Available modes: standalone - default mode. Creates new or updates an existing CNPG cluster. recovery - Same as standalone but creates a cluster from a backup, object store or via pg_basebackup replica - Creates a replica cluster from an existing CNPG cluster. # TODO.' + schema: + type: string + default: "standalone" + enum: + - value: standalone + description: standalone + - value: replica + description: replica + - value: recovery + description: recovery + - variable: cluster + label: "Cluster Settings" + schema: + additional_attrs: true + type: dict + attrs: + - variable: instances + label: Instances + schema: + type: int + default: 2 + - variable: singleNode + label: singleNode + schema: + type: boolean + default: true + hidden: true + - variable: storage + label: "Storage" + schema: + additional_attrs: true + type: dict + attrs: + - variable: size + label: Size + schema: + type: string + default: "256Gi" + - variable: walStorage + label: "WAL Storage" + schema: + additional_attrs: true + type: dict + attrs: + - variable: size + label: Size + schema: + type: string + default: "256Gi" + - variable: monitoring + label: "Monitoring Settings" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enablePodMonitor + label: "enablePodMonitor" + schema: + type: boolean + default: true + - variable: disableDefaultQueries + label: "disableDefaultQueries" + schema: + type: boolean + default: false + - variable: pooler + label: "Pooler Settings" + schema: + additional_attrs: true + type: dict + attrs: + - variable: instances + label: Instances + schema: + type: int + default: 2 + - variable: createRO + label: "Create ReadOnly Instance" + schema: + type: boolean + default: false + - variable: recovery + label: "Recovery Settings (Experimental)" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + - variable: endpointURL + label: "endpointURL" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "" + - variable: method + label: "method" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "object_store" + - variable: backupName + label: "backupName" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "" + - variable: provider + label: "provider" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "s3" + enum: + - value: s3 + description: S3 + - value: azure + description: Azure + - value: google + description: Google + - variable: s3 + label: "s3" + schema: + additional_attrs: true + type: dict + show_if: [["provider", "=", "s3"]] + attrs: + - variable: region + label: "region" + schema: + type: string + default: "" + - variable: bucket + label: "bucket" + schema: + type: string + default: "" + - variable: path + label: "path" + schema: + type: string + default: "/" + - variable: accessKey + label: "accessKey" + schema: + type: string + default: "" + - variable: secretKey + label: "secretKey" + schema: + type: string + default: "" + - variable: azure + label: "azure (EXTREMELY EXPERIMENTAL)" + schema: + additional_attrs: true + type: dict + show_if: [["provider", "=", "azure"]] + attrs: + - variable: path + label: "path" + schema: + type: string + default: "/" + - variable: connectionString + label: "connectionString" + schema: + type: string + default: "" + - variable: storageAccount + label: "storageAccount" + schema: + type: string + default: "" + - variable: storageKey + label: "storageKey" + schema: + type: string + default: "" + - variable: storageSasToken + label: "storageSasToken" + schema: + type: string + default: "" + - variable: containerName + label: "containerName" + schema: + type: string + default: "" + - variable: serviceName + label: "serviceName" + schema: + type: string + default: "blob" + - variable: inheritFromAzureAD + label: "inheritFromAzureAD" + schema: + type: boolean + default: false + - variable: google + label: "google (EXTREMELY EXPERIMENTAL)" + schema: + additional_attrs: true + type: dict + show_if: [["provider", "=", "google"]] + attrs: + - variable: path + label: "path" + schema: + type: string + default: "/" + - variable: bucket + label: "bucket" + schema: + type: string + default: "" + - variable: gkeEnvironment + label: "gkeEnvironment" + schema: + type: string + default: "" + - variable: applicationCredentials + label: "applicationCredentials" + schema: + type: string + default: "" + - variable: backups + label: "Backup Settings (Experimental)" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + - variable: endpointURL + label: "endpointURL" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "" + - variable: destinationPath + label: "destinationPath" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "" + - variable: retentionPolicy + label: "retentionPolicy" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "30d" + - variable: provider + label: "provider" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "s3" + enum: + - value: s3 + description: S3 + - value: azure + description: Azure + - value: google + description: Google + - variable: s3 + label: "s3" + schema: + additional_attrs: true + type: dict + show_if: [["provider", "=", "s3"]] + attrs: + - variable: region + label: "region" + schema: + type: string + default: "" + - variable: bucket + label: "bucket" + schema: + type: string + default: "" + - variable: path + label: "path" + schema: + type: string + default: "/" + - variable: accessKey + label: "accessKey" + schema: + type: string + default: "" + - variable: secretKey + label: "secretKey" + schema: + type: string + default: "" + - variable: azure + label: "azure (EXTREMELY EXPERIMENTAL)" + schema: + additional_attrs: true + type: dict + show_if: [["provider", "=", "azure"]] + attrs: + - variable: path + label: "path" + schema: + type: string + default: "/" + - variable: connectionString + label: "connectionString" + schema: + type: string + default: "" + - variable: storageAccount + label: "storageAccount" + schema: + type: string + default: "" + - variable: storageKey + label: "storageKey" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "" + - variable: storageSasToken + label: "storageSasToken" + schema: + type: string + default: "" + - variable: containerName + label: "containerName" + schema: + type: string + default: "" + - variable: serviceName + label: "serviceName" + schema: + type: string + default: "blob" + - variable: inheritFromAzureAD + label: "inheritFromAzureAD" + schema: + type: boolean + default: false + - variable: google + label: "google (EXTREMELY EXPERIMENTAL)" + schema: + additional_attrs: true + type: dict + show_if: [["provider", "=", "google"]] + attrs: + - variable: path + label: "path" + schema: + type: string + default: "/" + - variable: bucket + label: "bucket" + schema: + type: string + default: "" + - variable: gkeEnvironment + label: "gkeEnvironment" + schema: + type: string + default: "" + - variable: applicationCredentials + label: "applicationCredentials" + schema: + type: string + default: "" + - variable: scheduledBackups + label: ScheduledBackups + schema: + type: list + default: [] + items: + - variable: backupschedule + label: BackupSchedule + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "daily-backup" + required: true + - variable: schedule + label: schedule + schema: + type: string + required: true + default: "0 0 0 * * *" + - variable: backupOwnerReference + label: backupOwnerReference + schema: + type: string + required: true + default: "self" + - variable: immediate + label: immediate + schema: + type: boolean + default: false + - variable: suspend + label: suspend + schema: + type: boolean + default: false + - variable: manualBackups + label: manualBackups + schema: + type: list + default: [] + items: + - variable: backup + label: Backup + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true + - variable: metrics + group: Metrics + label: Prometheus Metrics + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: Main Metrics + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + description: Enable Prometheus Metrics + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: prometheusRule + label: PrometheusRule + description: Enable and configure Prometheus Rules for the App. + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + description: Enable Prometheus Metrics + schema: + type: boolean + default: false + # TODO: Rule List section +# - variable: horizontalPodAutoscaler +# group: Advanced +# label: (Advanced) Horizontal Pod Autoscaler +# schema: +# type: list +# default: [] +# items: +# - variable: hpaEntry +# label: HPA Entry +# schema: +# additional_attrs: true +# type: dict +# attrs: +# - variable: name +# label: Name +# schema: +# type: string +# required: true +# default: "" +# - variable: enabled +# label: Enabled +# schema: +# type: boolean +# default: false +# show_subquestions_if: true +# subquestions: +# - variable: target +# label: Target +# description: Deployment name, Defaults to Main Deployment +# schema: +# type: string +# default: "" +# - variable: minReplicas +# label: Minimum Replicas +# schema: +# type: int +# default: 1 +# - variable: maxReplicas +# label: Maximum Replicas +# schema: +# type: int +# default: 5 +# - variable: targetCPUUtilizationPercentage +# label: Target CPU Utilization Percentage +# schema: +# type: int +# default: 80 +# - variable: targetMemoryUtilizationPercentage +# label: Target Memory Utilization Percentage +# schema: +# type: int +# default: 80 + - variable: networkPolicy + group: Advanced + label: (Advanced) Network Policy + schema: + type: list + default: [] + items: + - variable: netPolicyEntry + label: Network Policy Entry + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + default: "" + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: policyType + label: Policy Type + schema: + type: string + default: "" + enum: + - value: "" + description: Default + - value: ingress + description: Ingress + - value: egress + description: Egress + - value: ingress-egress + description: Ingress and Egress + - variable: egress + label: Egress + schema: + type: list + default: [] + items: + - variable: egressEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: to + label: To + schema: + type: list + default: [] + items: + - variable: toEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: ipBlock + label: IP Block + schema: + additional_attrs: true + type: dict + attrs: + - variable: cidr + label: CIDR + schema: + type: string + default: "" + - variable: except + label: Except + schema: + type: list + default: [] + items: + - variable: exceptint + label: "" + schema: + type: string + - variable: namespaceSelector + label: Namespace Selector + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: podSelector + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: ports + label: Ports + schema: + type: list + default: [] + items: + - variable: portsEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + schema: + type: int + - variable: endPort + label: End Port + schema: + type: int + - variable: protocol + label: Protocol + schema: + type: string + default: TCP + enum: + - value: TCP + description: TCP + - value: UDP + description: UDP + - value: SCTP + description: SCTP + - variable: ingress + label: Ingress + schema: + type: list + default: [] + items: + - variable: ingressEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: from + label: From + schema: + type: list + default: [] + items: + - variable: fromEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: ipBlock + label: IP Block + schema: + additional_attrs: true + type: dict + attrs: + - variable: cidr + label: CIDR + schema: + type: string + default: "" + - variable: except + label: Except + schema: + type: list + default: [] + items: + - variable: exceptint + label: "" + schema: + type: string + - variable: namespaceSelector + label: Namespace Selector + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: podSelector + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: ports + label: Ports + schema: + type: list + default: [] + items: + - variable: portsEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + schema: + type: int + - variable: endPort + label: End Port + schema: + type: int + - variable: protocol + label: Protocol + schema: + type: string + default: TCP + enum: + - value: TCP + description: TCP + - value: UDP + description: UDP + - value: SCTP + description: SCTP + - variable: addons + group: Addons + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: codeserver + label: Codeserver + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: service + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Service Type + description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: LoadBalancer + enum: + - value: NodePort + description: Deprecated CHANGE THIS + - value: ClusterIP + description: ClusterIP + - value: LoadBalancer + description: LoadBalancer + - variable: loadBalancerIP + label: LoadBalancer IP + description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: ports + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: codeserver + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + schema: + type: int + default: 36107 + - variable: ingress + label: "Ingress" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Ingress + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: Hosts + schema: + type: list + default: [] + items: + - variable: hostEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: host + label: HostName + schema: + type: string + default: "" + required: true + - variable: paths + label: Paths + schema: + type: list + default: [{path: "/", pathType: "Prefix"}] + items: + - variable: pathEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: path + label: Path + schema: + type: string + required: true + default: "/" + - variable: pathType + label: Path Type + schema: + type: string + required: true + default: Prefix + - variable: certificateIssuer + label: Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates. Cannot be used combined with tls option below' + schema: + type: string + default: "" + - variable: middlewares + label: Traefik Middlewares + description: Add previously created Traefik Middlewares to this Ingress + schema: + type: list + default: [] + items: + - variable: name + label: Name + schema: + type: string + default: "" + required: true + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + - variable: entrypoint + label: (Advanced) Traefik Entrypoint + description: Entrypoint used by Traefik when using Traefik as Ingress Provider + schema: + type: string + default: websecure + show_if: [["advanced", "=", true]] + required: true + - variable: allowCors + label: "Allow Cross Origin Requests" + schema: + type: boolean + show_if: [["advanced", "=", true]] + default: false + - variable: ingressClassName + label: (Advanced/Optional) IngressClass Name + schema: + type: string + show_if: [["advanced", "=", true]] + default: "" + - variable: tls + label: TLS-Settings + schema: + type: list + show_if: [["advanced", "=", true]] + default: [] + items: + - variable: tlsEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: hosts + label: Certificate Hosts + schema: + type: list + default: [] + items: + - variable: host + label: Host + schema: + type: string + default: "" + required: true + - variable: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: 'Use Custom Certificate Secret (Advanced)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: string + default: "" + - variable: scaleCert + label: 'Use TrueNAS SCALE Certificate (Deprecated)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - variable: envList + label: Codeserver Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + - variable: netshoot + label: Netshoot + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: envList + label: Netshoot Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + - variable: vpn + label: VPN + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type + schema: + type: string + default: disabled + enum: + - value: disabled + description: disabled + - value: gluetun + description: Gluetun + - value: tailscale + description: Tailscale + - value: openvpn + description: OpenVPN (Deprecated) + - value: wireguard + description: Wireguard (Deprecated) + - variable: openvpn + label: OpenVPN Settings + schema: + additional_attrs: true + type: dict + show_if: [["type", "=", "openvpn"]] + attrs: + - variable: username + label: Authentication Username (Optional) + description: Authentication Username, Optional + schema: + type: string + default: "" + - variable: password + label: Authentication Password + description: Authentication Credentials + schema: + type: string + show_if: [["username", "!=", ""]] + default: "" + required: true + - variable: tailscale + label: Tailscale Settings + schema: + additional_attrs: true + type: dict + show_if: [["type", "=", "tailscale"]] + attrs: + - variable: authkey + label: Authentication Key + description: Provide an auth key to automatically authenticate the node as your user account. + schema: + type: string + private: true + default: "" + - variable: auth_once + label: Auth Once + description: Only attempt to log in if not already logged in. + schema: + type: boolean + default: true + - variable: accept_dns + label: Accept DNS + description: Accept DNS configuration from the admin console. + schema: + type: boolean + default: false + - variable: userspace + label: Userspace + description: Userspace Networking mode allows running Tailscale where you do not have access to create a VPN tunnel device. + schema: + type: boolean + default: false + - variable: routes + label: Routes + description: Expose physical subnet routes to your entire Tailscale network. + schema: + type: string + default: "" + - variable: dest_ip + label: Destination IP + description: Tells the DNAT mechanism which Destination IP to set in the IP header, and where to send packets that are matched. + schema: + type: string + default: "" + - variable: sock5_server + label: Sock5 Server + description: The address on which to listen for SOCKS5 proxying into the tailscale net. + schema: + type: string + default: "" + - variable: outbound_http_proxy_listen + label: Outbound HTTP Proxy Listen + description: The address on which to listen for HTTP proxying into the tailscale net. + schema: + type: string + default: "" + - variable: extra_args + label: Extra Args + description: Extra Args + schema: + type: string + default: "" + - variable: daemon_extra_args + label: Tailscale Daemon Extra Args + description: Tailscale Daemon Extra Args + schema: + type: string + default: "" + - variable: killSwitch + label: Enable Killswitch + schema: + type: boolean + show_if: [["type", "!=", "disabled"]] + default: true + - variable: excludedNetworks_IPv4 + label: Killswitch Excluded IPv4 networks + description: List of Killswitch Excluded IPv4 Addresses + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: networkv4 + label: IPv4 Network + schema: + type: string + required: true + - variable: excludedNetworks_IPv6 + label: Killswitch Excluded IPv6 networks + description: "List of Killswitch Excluded IPv6 Addresses" + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: networkv6 + label: IPv6 Network + schema: + type: string + required: true + - variable: configFile + label: VPN Config File Location + schema: + type: string + show_if: [["type", "!=", "disabled"]] + default: "" + + - variable: envList + label: VPN Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + max_length: 10240 + - variable: docs + group: Documentation + label: Please read the documentation at https://truecharts.org + description: Please read the documentation at +
https://truecharts.org + schema: + additional_attrs: true + type: dict + attrs: + - variable: confirmDocs + label: I have checked the documentation + schema: + type: boolean + default: true + - variable: donateNag + group: Documentation + label: Please consider supporting TrueCharts, see https://truecharts.org/sponsor + description: Please consider supporting TrueCharts, see +
https://truecharts.org/sponsor + schema: + additional_attrs: true + type: dict + attrs: + - variable: confirmDonate + label: I have considered donating + schema: + type: boolean + default: true + hidden: true diff --git a/stable/nextcloud/26.0.0/templates/NOTES.txt b/stable/nextcloud/26.0.0/templates/NOTES.txt new file mode 100644 index 00000000000..efcb74cb772 --- /dev/null +++ b/stable/nextcloud/26.0.0/templates/NOTES.txt @@ -0,0 +1 @@ +{{- include "tc.v1.common.lib.chart.notes" $ -}} diff --git a/stable/nextcloud/26.0.0/templates/_configmap.tpl b/stable/nextcloud/26.0.0/templates/_configmap.tpl new file mode 100644 index 00000000000..081cf5d71c2 --- /dev/null +++ b/stable/nextcloud/26.0.0/templates/_configmap.tpl @@ -0,0 +1,443 @@ +{{- define "nextcloud.accessurl" -}} + {{- $accessUrl := .Values.chartContext.appUrl -}} + {{- if or (contains "127.0.0.1" $accessUrl) (contains "localhost" $accessUrl) -}} + {{- if .Values.nextcloud.general.accessIP -}} + {{- $prot := "http" -}} + {{- $host := .Values.nextcloud.general.accessIP -}} + {{- $port := .Values.service.main.ports.main.port -}} + {{/* + Allowing here to override protocol and port + should be enough to make it work with any rev proxy + */}} + {{- $accessUrl = printf "%v://%v:%v" $prot $host $port -}} + {{- end -}} + {{- end -}} + + {{- $accessUrl -}} +{{- end -}} + +{{- define "nextcloud.accesshost" -}} + {{- $accessUrl := (include "nextcloud.accessurl" $) -}} + {{- $accessHost := regexReplaceAll ".*://(.*)" $accessUrl "${1}" -}} + {{- $accessHost = regexReplaceAll "(.*):.*" $accessHost "${1}" -}} + + {{- $accessHost -}} +{{- end -}} + +{{/* Define the configmap */}} +{{- define "nextcloud.configmaps" -}} +{{- $fullname := (include "tc.v1.common.lib.chart.names.fullname" $) -}} +{{- $fqdn := (include "tc.v1.common.lib.chart.names.fqdn" $) -}} +{{- $accessUrl := (include "nextcloud.accessurl" $) -}} +{{- $accessHost := (include "nextcloud.accesshost" $) -}} +{{- $accessHostPort := regexReplaceAll ".*://(.*)" $accessUrl "${1}" -}} +{{- $accessProtocol := regexReplaceAll "(.*)://.*" $accessUrl "${1}" -}} +{{- $redisHost := .Values.redis.creds.plainhost | trimAll "\"" -}} +{{- $redisPass := .Values.redis.creds.redisPassword | trimAll "\"" -}} +{{- $healthHost := "kube.internal.healthcheck" -}} + +php-tune: + enabled: true + data: + zz-tune.conf: | + [www] + pm.max_children = {{ .Values.nextcloud.php.pm_max_children }} + pm.start_servers = {{ .Values.nextcloud.php.pm_start_servers }} + pm.min_spare_servers = {{ .Values.nextcloud.php.pm_min_spare_servers }} + pm.max_spare_servers = {{ .Values.nextcloud.php.pm_max_spare_servers }} + +opcache: + enabled: true + data: + opcache-recommended.ini: | + opcache.enable=1 + opcache.save_comments=1 + opcache.jit=1255 + opcache.interned_strings_buffer={{ .Values.nextcloud.opcache.interned_strings_buffer }} + opcache.max_accelerated_files={{ .Values.nextcloud.opcache.max_accelerated_files }} + opcache.memory_consumption={{ .Values.nextcloud.opcache.memory_consumption }} + opcache.revalidate_freq={{ .Values.nextcloud.opcache.revalidate_freq }} + opcache.jit_buffer_size={{ printf "%vM" .Values.nextcloud.opcache.jit_buffer_size }} + +redis-session: + enabled: true + data: + redis-session.ini: | + session.save_handler = redis + session.save_path = {{ printf "tcp://%v:6379?auth=%v" $redisHost $redisPass | quote }} + redis.session.locking_enabled = 1 + redis.session.lock_retries = -1 + redis.session.lock_wait_time = 10000 + +hpb-config: + enabled: {{ .Values.nextcloud.notify_push.enabled }} + data: + NEXTCLOUD_URL: {{ printf "http://%v:%v" $fullname .Values.service.main.ports.main.port }} + HPB_HOST: {{ $healthHost }} + CONFIG_FILE: {{ printf "%v/config.php" .Values.persistence.config.targetSelector.notify.notify.mountPath }} + METRICS_PORT: {{ .Values.service.notify.ports.metrics.port | quote }} + +clamav-config: + enabled: {{ .Values.nextcloud.clamav.enabled }} + data: + CLAMAV_NO_CLAMD: "false" + CLAMAV_NO_FRESHCLAMD: "true" + CLAMAV_NO_MILTERD: "true" + CLAMD_STARTUP_TIMEOUT: "1800" + +collabora-config: + enabled: {{ .Values.nextcloud.collabora.enabled }} + data: + aliasgroup1: {{ $accessUrl }} + server_name: {{ $accessHostPort }} + dictionaries: {{ join " " .Values.nextcloud.collabora.dictionaries }} + username: {{ .Values.nextcloud.collabora.username | quote }} + password: {{ .Values.nextcloud.collabora.password | quote }} + DONT_GEN_SSL_CERT: "true" + # mount_jail_tree is only used for local storage + # not needed for WOPI https://github.com/CollaboraOnline/online/issues/3604#issuecomment-989833814 + extra_params: | + --o:ssl.enable=false + --o:ssl.termination=true + --o:net.service_root=/collabora + --o:home_mode.enable=true + --o:welcome.enable=false + --o:logging.level=warning + --o:logging.level_startup=warning + --o:security.seccomp=true + --o:mount_jail_tree=false + --o:user_interface.mode={{ .Values.nextcloud.collabora.interface_mode }} + +nextcloud-config: + enabled: true + data: + {{/* Database */}} + POSTGRES_DB: {{ .Values.cnpg.main.database | quote }} + POSTGRES_USER: {{ .Values.cnpg.main.user | quote }} + POSTGRES_PASSWORD: {{ .Values.cnpg.main.creds.password | trimAll "\"" }} + POSTGRES_HOST: {{ .Values.cnpg.main.creds.host | trimAll "\"" }} + + {{/* Redis */}} + NX_REDIS_HOST: {{ $redisHost }} + NX_REDIS_PASS: {{ $redisPass }} + + {{/* Nextcloud INITIAL credentials */}} + NEXTCLOUD_ADMIN_USER: {{ .Values.nextcloud.credentials.initialAdminUser | quote }} + NEXTCLOUD_ADMIN_PASSWORD: {{ .Values.nextcloud.credentials.initialAdminPassword | quote }} + + {{/* PHP Variables */}} + PHP_MEMORY_LIMIT: {{ .Values.nextcloud.php.memory_limit | quote }} + PHP_UPLOAD_LIMIT: {{ .Values.nextcloud.php.upload_limit | quote }} + + {{/* Notify Push */}} + NX_NOTIFY_PUSH: {{ .Values.nextcloud.notify_push.enabled | quote }} + {{- if .Values.nextcloud.notify_push.enabled }} + NX_NOTIFY_PUSH_ENDPOINT: {{ $accessUrl }}/push + {{- end }} + + {{/* Previews */}} + NX_PREVIEWS: {{ .Values.nextcloud.previews.enabled | quote }} + NX_PREVIEW_PROVIDERS: {{ join " " .Values.nextcloud.previews.providers }} + NX_PREVIEW_MAX_X: {{ .Values.nextcloud.previews.max_x | quote }} + NX_PREVIEW_MAX_Y: {{ .Values.nextcloud.previews.max_y | quote }} + NX_PREVIEW_MAX_MEMORY: {{ .Values.nextcloud.previews.max_memory | quote }} + NX_PREVIEW_MAX_FILESIZE_IMAGE: {{ .Values.nextcloud.previews.max_file_size_image | quote }} + NX_JPEG_QUALITY: {{ .Values.nextcloud.previews.jpeg_quality | quote }} + NX_PREVIEW_SQUARE_SIZES: {{ .Values.nextcloud.previews.square_sizes | quote }} + NX_PREVIEW_WIDTH_SIZES: {{ .Values.nextcloud.previews.width_sizes | quote }} + NX_PREVIEW_HEIGHT_SIZES: {{ .Values.nextcloud.previews.height_sizes | quote }} + + {{/* Imaginary */}} + NX_IMAGINARY: {{ and .Values.nextcloud.previews.enabled .Values.nextcloud.previews.imaginary | quote }} + {{- if and .Values.nextcloud.previews.enabled .Values.nextcloud.previews.imaginary }} + NX_IMAGINARY_URL: {{ printf "http://%v-imaginary:%v" $fullname .Values.service.imaginary.ports.imaginary.port }} + {{- end }} + + {{/* Expirations */}} + NX_ACTIVITY_EXPIRE_DAYS: {{ .Values.nextcloud.expirations.activity_expire_days | quote }} + NX_TRASH_RETENTION: {{ .Values.nextcloud.expirations.trash_retention_obligation | quote }} + NX_VERSIONS_RETENTION: {{ .Values.nextcloud.expirations.versions_retention_obligation | quote }} + + {{/* General */}} + NX_RUN_OPTIMIZE: {{ .Values.nextcloud.general.run_optimize | quote }} + NX_DEFAULT_PHONE_REGION: {{ .Values.nextcloud.general.default_phone_region | quote }} + NEXTCLOUD_DATA_DIR: {{ .Values.persistence.data.targetSelector.main.main.mountPath }} + NX_FORCE_ENABLE_ALLOW_LOCAL_REMOTE_SERVERS: {{ .Values.nextcloud.general.force_enable_allow_local_remote_servers | quote }} + + {{/* Files */}} + NX_SHARED_FOLDER_NAME: {{ .Values.nextcloud.files.shared_folder_name | quote }} + NX_MAX_CHUNKSIZE: {{ .Values.nextcloud.files.max_chunk_size | mul 1 | quote }} + + {{/* Logging */}} + NX_LOG_LEVEL: {{ .Values.nextcloud.logging.log_level | quote }} + NX_LOG_FILE: {{ .Values.nextcloud.logging.log_file | quote }} + NX_LOG_FILE_AUDIT: {{ .Values.nextcloud.logging.log_audit_file | quote }} + NX_LOG_DATE_FORMAT: {{ .Values.nextcloud.logging.log_date_format | quote }} + NX_LOG_TIMEZONE: {{ .Values.TZ | quote }} + + {{/* ClamAV */}} + NX_CLAMAV: {{ .Values.nextcloud.clamav.enabled | quote }} + {{- if .Values.nextcloud.clamav.enabled }} + NX_CLAMAV_HOST: {{ printf "%v-clamav" $fullname }} + NX_CLAMAV_PORT: {{ .Values.service.clamav.ports.clamav.targetPort | quote }} + NX_CLAMAV_STREAM_MAX_LENGTH: {{ .Values.nextcloud.clamav.stream_max_length | mul 1 | quote }} + NX_CLAMAV_FILE_MAX_SIZE: {{ .Values.nextcloud.clamav.file_max_size | quote }} + NX_CLAMAV_INFECTED_ACTION: {{ .Values.nextcloud.clamav.infected_action | quote }} + {{- end }} + + {{/* Collabora */}} + NX_COLLABORA: {{ .Values.nextcloud.collabora.enabled | quote }} + {{- if .Values.nextcloud.collabora.enabled }} + NX_COLLABORA_URL: {{ printf "%v/collabora" $accessUrl | quote }} + # Ideally this would be a combo of: public ip, pod cidr, svc cidr + # But not always people have static IP. + NX_COLLABORA_ALLOWLIST: "0.0.0.0/0" + {{- end }} + + {{/* Only Office */}} + NX_ONLYOFFICE: {{ .Values.nextcloud.onlyoffice.enabled | quote }} + {{- if .Values.nextcloud.onlyoffice.enabled }} + NX_ONLYOFFICE_URL: {{ .Values.nextcloud.onlyoffice.url | quote }} + NX_ONLYOFFICE_INTERNAL_URL: {{ .Values.nextcloud.onlyoffice.internal_url | quote }} + NX_ONLYOFFICE_VERIFY_SSL: {{ .Values.nextcloud.onlyoffice.verify_ssl | quote }} + NX_ONLYOFFICE_NEXTCLOUD_INTERNAL_URL: {{ printf "http://%v.svc.cluster.local:%v" $fqdn .Values.service.main.ports.main.port }} + NX_ONLYOFFICE_JWT: {{ .Values.nextcloud.onlyoffice.jwt | quote }} + NX_ONLYOFFICE_JWT_HEADER: {{ .Values.nextcloud.onlyoffice.jwt_header | quote }} + {{- end }} + + {{/* URLs */}} + NX_OVERWRITE_HOST: {{ $accessHostPort }} + NX_OVERWRITE_CLI_URL: {{ $accessUrl }} + # Return the protocol part of the URL + NX_OVERWRITE_PROTOCOL: {{ $accessProtocol | lower }} + # IP (or range in this case) of the proxy(ies) + NX_TRUSTED_PROXIES: | + {{ .Values.chartContext.podCIDR }} + {{ .Values.chartContext.svcCIDR }} + # fullname-* will allow access from the + # other services in the same namespace + NX_TRUSTED_DOMAINS: | + 127.0.0.1 + localhost + {{ $fullname }} + {{ printf "%v-*" $fullname }} + {{ $healthHost }} + {{- if not (contains "127.0.0.1" $accessHost) }} + {{- $accessHost | nindent 6 }} + {{- end -}} + {{- with .Values.nextcloud.general.accessIP }} + {{- . | nindent 6 }} + {{- end }} + +# TODO: Replace locations with ingress +# like /push, /.well-known/carddav, /.well-known/caldav +# needs some work as nginx converts urls to pretty urls +# before matching them to locations, so ingress needs to +# take that into consideration. +nginx-config: + enabled: true + data: + nginx.conf: | + worker_processes auto; + + error_log /var/log/nginx/error.log warn; + # Set to /tmp so it can run as non-root + pid /tmp/nginx.pid; + + events { + worker_connections 1024; + } + + http { + # Set to /tmp so it can run as non-root + client_body_temp_path /tmp/nginx/client_temp; + proxy_temp_path /tmp/nginx/proxy_temp_path; + fastcgi_temp_path /tmp/nginx/fastcgi_temp; + uwsgi_temp_path /tmp/nginx/uwsgi_temp; + scgi_temp_path /tmp/nginx/scgi_temp; + + include /etc/nginx/mime.types; + default_type application/octet-stream; + + log_format main '$remote_addr - $remote_user [$time_local] "$request" ' + '$status $body_bytes_sent "$http_referer" ' + '"$http_user_agent" "$http_x_forwarded_for"'; + + access_log /var/log/nginx/access.log main; + + sendfile on; + #tcp_nopush on; + + # Prevent nginx HTTP Server Detection + server_tokens off; + + keepalive_timeout 65; + + #gzip on; + + upstream php-handler { + server {{ printf "%v-nextcloud" $fullname }}:{{ .Values.service.nextcloud.ports.nextcloud.targetPort }}; + } + + server { + listen {{ .Values.service.main.ports.main.port }}; + absolute_redirect off; + + {{- if .Values.nextcloud.notify_push.enabled }} + # Forward Notify_Push "High Performance Backend" to it's own container + location ^~ /push/ { + # The trailing "/" is important! + proxy_pass http://{{ printf "%v-notify" $fullname }}:{{ .Values.service.notify.ports.notify.targetPort }}/; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "Upgrade"; + proxy_set_header Host $host; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + } + {{- end }} + + # HSTS settings + # WARNING: Only add the preload option once you read about + # the consequences in https://hstspreload.org/. This option + # will add the domain to a hardcoded list that is shipped + # in all major browsers and getting removed from this list + # could take several months. + #add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;" always; + + # Set max upload size + client_max_body_size {{ .Values.nextcloud.php.upload_limit | default "512M" }}; + fastcgi_buffers 64 4K; + + # Enable gzip but do not remove ETag headers + gzip on; + gzip_vary on; + gzip_comp_level 4; + gzip_min_length 256; + gzip_proxied expired no-cache no-store private no_last_modified no_etag auth; + gzip_types application/atom+xml text/javascript application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/wasm application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy; + + # Pagespeed is not supported by Nextcloud, so if your server is built + # with the `ngx_pagespeed` module, uncomment this line to disable it. + #pagespeed off; + + include mime.types; + types { + text/javascript js mjs; + } + + # HTTP response headers borrowed from Nextcloud `.htaccess` + add_header Referrer-Policy "no-referrer" always; + add_header X-Content-Type-Options "nosniff" always; + add_header X-Download-Options "noopen" always; + add_header X-Frame-Options "SAMEORIGIN" always; + add_header X-Permitted-Cross-Domain-Policies "none" always; + add_header X-Robots-Tag "noindex, nofollow" always; + add_header X-XSS-Protection "1; mode=block" always; + + # Remove X-Powered-By, which is an information leak + fastcgi_hide_header X-Powered-By; + + # Path to the root of your installation + root {{ .Values.persistence.html.targetSelector.nginx.nginx.mountPath }}; + + # Specify how to handle directories -- specifying `/index.php$request_uri` + # here as the fallback means that Nginx always exhibits the desired behaviour + # when a client requests a path that corresponds to a directory that exists + # on the server. In particular, if that directory contains an index.php file, + # that file is correctly served; if it doesn't, then the request is passed to + # the front-end controller. This consistent behaviour means that we don't need + # to specify custom rules for certain paths (e.g. images and other assets, + # `/updater`, `/ocm-provider`, `/ocs-provider`), and thus + # `try_files $uri $uri/ /index.php$request_uri` + # always provides the desired behaviour. + index index.php index.html /index.php$request_uri; + + # Rule borrowed from `.htaccess` to handle Microsoft DAV clients + location = / { + if ( $http_user_agent ~ ^DavClnt ) { + return 302 /remote.php/webdav/$is_args$args; + } + } + + location = /robots.txt { + allow all; + log_not_found off; + access_log off; + } + + # Make a regex exception for `/.well-known` so that clients can still + # access it despite the existence of the regex rule + # `location ~ /(\.|autotest|...)` which would otherwise handle requests + # for `/.well-known`. + location ^~ /.well-known { + # The rules in this block are an adaptation of the rules + # in `.htaccess` that concern `/.well-known`. + + location = /.well-known/carddav { return 301 /remote.php/dav/; } + location = /.well-known/caldav { return 301 /remote.php/dav/; } + + location /.well-known/acme-challenge { try_files $uri $uri/ =404; } + location /.well-known/pki-validation { try_files $uri $uri/ =404; } + + # Let Nextcloud's API for `/.well-known` URIs handle all other + # requests by passing them to the front-end controller. + return 301 /index.php$request_uri; + } + + # Rules borrowed from `.htaccess` to hide certain paths from clients + location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/) { return 404; } + location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) { return 404; } + + # Ensure this block, which passes PHP files to the PHP process, is above the blocks + # which handle static assets (as seen below). If this block is not declared first, + # then Nginx will encounter an infinite rewriting loop when it prepends `/index.php` + # to the URI, resulting in a HTTP 500 error response. + location ~ \.php(?:$|/) { + # Required for legacy support + rewrite ^/(?!index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|oc[ms]-provider\/.+|.+\/richdocumentscode\/proxy) /index.php$request_uri; + + fastcgi_split_path_info ^(.+?\.php)(/.*)$; + set $path_info $fastcgi_path_info; + + try_files $fastcgi_script_name =404; + + include fastcgi_params; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + fastcgi_param PATH_INFO $path_info; + #fastcgi_param HTTPS on; + + fastcgi_param modHeadersAvailable true; # Avoid sending the security headers twice + fastcgi_param front_controller_active true; # Enable pretty urls + fastcgi_pass php-handler; + + fastcgi_intercept_errors on; + fastcgi_request_buffering off; + proxy_send_timeout 3600s; + proxy_read_timeout 3600s; + fastcgi_send_timeout 3600s; + fastcgi_read_timeout 3600s; + } + + location ~ \.(?:css|js|svg|gif)$ { + try_files $uri /index.php$request_uri; + expires 6M; # Cache-Control policy borrowed from `.htaccess` + access_log off; # Optional: Don't log access to assets + } + + location ~ \.woff2?$ { + try_files $uri /index.php$request_uri; + expires 7d; # Cache-Control policy borrowed from `.htaccess` + access_log off; # Optional: Don't log access to assets + } + + # Rule borrowed from `.htaccess` + location /remote { + return 301 /remote.php$request_uri; + } + + location / { + try_files $uri $uri/ /index.php$request_uri; + } + } + } +{{- end -}} diff --git a/stable/nextcloud/26.0.0/templates/_cronjobs.tpl b/stable/nextcloud/26.0.0/templates/_cronjobs.tpl new file mode 100644 index 00000000000..0fa050dba68 --- /dev/null +++ b/stable/nextcloud/26.0.0/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/26.0.0/templates/_ingressInjector.tpl b/stable/nextcloud/26.0.0/templates/_ingressInjector.tpl new file mode 100644 index 00000000000..12960bd28da --- /dev/null +++ b/stable/nextcloud/26.0.0/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 +overrideService: + name: {{ printf "%v-collabora" $fullname }} + port: {{ .Values.service.collabora.ports.collabora.port }} +{{- end -}} diff --git a/stable/nextcloud/26.0.0/templates/_initPerms.tpl b/stable/nextcloud/26.0.0/templates/_initPerms.tpl new file mode 100644 index 00000000000..ed94790ad93 --- /dev/null +++ b/stable/nextcloud/26.0.0/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/26.0.0/templates/_validation.tpl b/stable/nextcloud/26.0.0/templates/_validation.tpl new file mode 100644 index 00000000000..5650c0f63fe --- /dev/null +++ b/stable/nextcloud/26.0.0/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/26.0.0/templates/_waitNextcloud.tpl b/stable/nextcloud/26.0.0/templates/_waitNextcloud.tpl new file mode 100644 index 00000000000..24946d640e8 --- /dev/null +++ b/stable/nextcloud/26.0.0/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/26.0.0/templates/common.yaml b/stable/nextcloud/26.0.0/templates/common.yaml new file mode 100644 index 00000000000..1eeaf033ebe --- /dev/null +++ b/stable/nextcloud/26.0.0/templates/common.yaml @@ -0,0 +1,80 @@ +{{/* Make sure all variables are set properly */}} +{{- include "tc.v1.common.loader.init" . -}} + +{{- include "nextcloud.validation" $ -}} + +{{/* Render configmaps for all pods */}} +{{- $configmaps := include "nextcloud.configmaps" . | fromYaml -}} +{{- if $configmaps -}} + {{- $_ := mustMergeOverwrite .Values.configmap $configmaps -}} +{{- end -}} + +{{/* Create hostAliases (resolve ingress host to Node/LB IP) */}} +{{- $hostAlias := (list (dict + "ip" .Values.nextcloud.general.accessIP + "hostnames" ( + list (include "nextcloud.accesshost" $) + ) + )) -}} + +{{/* Add [hostAliases] to nextcloud and collabora pod */}} +{{- $_ := set .Values.workload.main.podSpec "hostAliases" $hostAlias -}} +{{- $_ := set .Values.workload.collabora.podSpec "hostAliases" $hostAlias -}} + +{{/* Add [init perms] container to nextcloud */}} +{{- if not (get .Values.workload.main.podSpec "initContainers") -}} + {{- $_ := set .Values.workload.main.podSpec "initContainers" dict -}} +{{- end -}} + +{{- $initPerms := (include "nextcloud.init.perms" . | fromYaml) -}} +{{- $_ := set .Values.workload.main.podSpec.initContainers "init-perms" $initPerms -}} + +{{/* Add [wait nextcloud] container to nginx */}} +{{- if not (get .Values.workload.nginx.podSpec "initContainers") -}} + {{- $_ := set .Values.workload.nginx.podSpec "initContainers" dict -}} +{{- end -}} +{{- $waitNextcloud := (include "nextcloud.wait.nextcloud" . | fromYaml) -}} +{{- $_ := set .Values.workload.nginx.podSpec.initContainers "wait-nextcloud" $waitNextcloud -}} + +{{/* Disable [notify push] if requested */}} +{{- if not .Values.nextcloud.notify_push.enabled -}} + {{- $_ := set .Values.workload.notify "enabled" false -}} + {{- $_ := set .Values.service.notify "enabled" false -}} +{{- else -}} + {{/* Add [wait nextcloud] container to notify push */}} + {{- if not (get .Values.workload.notify.podSpec "initContainers") -}} + {{- $_ := set .Values.workload.notify.podSpec "initContainers" dict -}} + {{- end -}} + {{- $waitNextcloud := (include "nextcloud.wait.nextcloud" . | fromYaml) -}} + {{- $_ := set .Values.workload.notify.podSpec.initContainers "wait-nextcloud" $waitNextcloud -}} +{{- end -}} + +{{/* Disable [clamav] if requested */}} +{{- if not .Values.nextcloud.clamav.enabled -}} + {{- $_ := set .Values.workload.clamav "enabled" false -}} + {{- $_ := set .Values.service.clamav "enabled" false -}} +{{- end -}} + +{{/* Disable [previews] if requested */}} +{{- if or (not .Values.nextcloud.previews.imaginary) (not .Values.nextcloud.previews.enabled) -}} + {{- $_ := set .Values.workload.imaginary "enabled" false -}} + {{- $_ := set .Values.service.imaginary "enabled" false -}} +{{- end -}} + +{{/* Disable [collabora] if requested */}} +{{- if not .Values.nextcloud.collabora.enabled -}} + {{- $_ := set .Values.workload.collabora "enabled" false -}} + {{- $_ := set .Values.service.collabora "enabled" false -}} +{{- end -}} + +{{/* Create [cronjobs] defined */}} +{{- $cronjobs := include "nextcloud.cronjobs" . | fromYaml -}} +{{- if $cronjobs -}} + {{- $_ := mustMergeOverwrite .Values.workload $cronjobs -}} +{{- end -}} + +{{/* TODO: Do we have to cleanup when something (eg Collabora) is disabled? */}} +{{- include "nextcloud.ingressInjector" $ -}} + +{{/* Render the templates */}} +{{- include "tc.v1.common.loader.apply" . -}} diff --git a/stable/nextcloud/26.0.0/values.yaml b/stable/nextcloud/26.0.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d