From d36352e4cc3cd1bc473401b8a2d390b7b6282cd8 Mon Sep 17 00:00:00 2001 From: TrueCharts-Bot Date: Sun, 21 Jan 2024 16:35:08 +0000 Subject: [PATCH] Commit new Chart releases for TrueCharts Signed-off-by: TrueCharts-Bot --- stable/nextcloud/28.1.22/CHANGELOG.md | 99 + stable/nextcloud/28.1.22/Chart.yaml | 53 + stable/nextcloud/28.1.22/LICENSE | 106 + stable/nextcloud/28.1.22/README.md | 28 + stable/nextcloud/28.1.22/app-changelog.md | 9 + stable/nextcloud/28.1.22/app-readme.md | 8 + .../28.1.22/charts/common-17.2.25.tgz | Bin 0 -> 97951 bytes .../nextcloud/28.1.22/charts/redis-11.1.6.tgz | Bin 0 -> 103627 bytes stable/nextcloud/28.1.22/ix_values.yaml | 516 ++ stable/nextcloud/28.1.22/questions.yaml | 4169 +++++++++++++++++ stable/nextcloud/28.1.22/templates/NOTES.txt | 1 + .../28.1.22/templates/_configmap.tpl | 443 ++ .../nextcloud/28.1.22/templates/_cronjobs.tpl | 34 + .../28.1.22/templates/_ingressInjector.tpl | 23 + .../28.1.22/templates/_initPerms.tpl | 29 + .../28.1.22/templates/_validation.tpl | 42 + .../28.1.22/templates/_waitNextcloud.tpl | 25 + .../nextcloud/28.1.22/templates/common.yaml | 92 + stable/nextcloud/28.1.22/values.yaml | 0 19 files changed, 5677 insertions(+) create mode 100644 stable/nextcloud/28.1.22/CHANGELOG.md create mode 100644 stable/nextcloud/28.1.22/Chart.yaml create mode 100644 stable/nextcloud/28.1.22/LICENSE create mode 100644 stable/nextcloud/28.1.22/README.md create mode 100644 stable/nextcloud/28.1.22/app-changelog.md create mode 100644 stable/nextcloud/28.1.22/app-readme.md create mode 100644 stable/nextcloud/28.1.22/charts/common-17.2.25.tgz create mode 100644 stable/nextcloud/28.1.22/charts/redis-11.1.6.tgz create mode 100644 stable/nextcloud/28.1.22/ix_values.yaml create mode 100644 stable/nextcloud/28.1.22/questions.yaml create mode 100644 stable/nextcloud/28.1.22/templates/NOTES.txt create mode 100644 stable/nextcloud/28.1.22/templates/_configmap.tpl create mode 100644 stable/nextcloud/28.1.22/templates/_cronjobs.tpl create mode 100644 stable/nextcloud/28.1.22/templates/_ingressInjector.tpl create mode 100644 stable/nextcloud/28.1.22/templates/_initPerms.tpl create mode 100644 stable/nextcloud/28.1.22/templates/_validation.tpl create mode 100644 stable/nextcloud/28.1.22/templates/_waitNextcloud.tpl create mode 100644 stable/nextcloud/28.1.22/templates/common.yaml create mode 100644 stable/nextcloud/28.1.22/values.yaml diff --git a/stable/nextcloud/28.1.22/CHANGELOG.md b/stable/nextcloud/28.1.22/CHANGELOG.md new file mode 100644 index 00000000000..29e9a58536c --- /dev/null +++ b/stable/nextcloud/28.1.22/CHANGELOG.md @@ -0,0 +1,99 @@ +--- +title: Changelog +--- + +**Important:** +*for the complete changelog, please refer to the website* + + + +## [nextcloud-28.1.22](https://github.com/truecharts/charts/compare/nextcloud-28.1.21...nextcloud-28.1.22) (2024-01-21) + +### Chore + + + +- update container image tccr.io/tccr/nextcloud-push-notify to v0.6.7[@a6dfa37](https://github.com/a6dfa37) by renovate ([#17462](https://github.com/truecharts/charts/issues/17462)) + + +## [nextcloud-28.1.21](https://github.com/truecharts/charts/compare/nextcloud-28.1.18...nextcloud-28.1.21) (2024-01-21) + +### Chore + + + +- update nextcloud by renovate ([#17396](https://github.com/truecharts/charts/issues/17396)) + + +## [nextcloud-28.1.18](https://github.com/truecharts/charts/compare/nextcloud-28.1.17...nextcloud-28.1.18) (2024-01-21) + +### Chore + + + +- update metadata in chart.yaml ([#17457](https://github.com/truecharts/charts/issues/17457)) + + +## [nextcloud-28.1.17](https://github.com/truecharts/charts/compare/nextcloud-28.1.16...nextcloud-28.1.17) (2024-01-21) + +### Chore + + + +- install traefik during tests but set the services to clusterip ([#17445](https://github.com/truecharts/charts/issues/17445)) + + +## [nextcloud-28.1.16](https://github.com/truecharts/charts/compare/nextcloud-28.1.14...nextcloud-28.1.16) (2024-01-21) + +### Chore + + + +- update container image nginxinc/nginx-unprivileged to 1.25.3[@9af8bb1](https://github.com/9af8bb1) by renovate ([#17257](https://github.com/truecharts/charts/issues/17257)) + + + + +## [nextcloud-28.1.14](https://github.com/truecharts/charts/compare/nextcloud-28.1.13...nextcloud-28.1.14) (2024-01-13) + +### Chore + + + +- update container image tccr.io/tccr/nextcloud-fpm to v28.0.1[@49e45f3](https://github.com/49e45f3) by renovate ([#17093](https://github.com/truecharts/charts/issues/17093)) + +- update container image nginxinc/nginx-unprivileged to 1.25.3[@3ae7d1f](https://github.com/3ae7d1f) by renovate ([#16975](https://github.com/truecharts/charts/issues/16975)) + + +## [nextcloud-28.1.13](https://github.com/truecharts/charts/compare/nextcloud-28.1.12...nextcloud-28.1.13) (2024-01-12) + +### Chore + + + +- update container image collabora/code to v23.05.7.2.1[@f465087](https://github.com/f465087) by renovate ([#16985](https://github.com/truecharts/charts/issues/16985)) + + +## [nextcloud-28.1.12](https://github.com/truecharts/charts/compare/nextcloud-28.1.11...nextcloud-28.1.12) (2024-01-09) + +### Chore + + + +- update container image common to v17.2.22[@e7c9056](https://github.com/e7c9056) by renovate ([#16986](https://github.com/truecharts/charts/issues/16986)) + + +## [nextcloud-28.1.11](https://github.com/truecharts/charts/compare/nextcloud-28.1.10...nextcloud-28.1.11) (2024-01-02) + +### Chore + + + +- update helm general non-major by renovate ([#16820](https://github.com/truecharts/charts/issues/16820)) + + +## [nextcloud-28.1.10](https://github.com/truecharts/charts/compare/nextcloud-28.1.9...nextcloud-28.1.10) (2024-01-02) + +### Chore + + diff --git a/stable/nextcloud/28.1.22/Chart.yaml b/stable/nextcloud/28.1.22/Chart.yaml new file mode 100644 index 00000000000..f5ae2b3d3f8 --- /dev/null +++ b/stable/nextcloud/28.1.22/Chart.yaml @@ -0,0 +1,53 @@ +annotations: + max_scale_version: 23.10.2 + min_scale_version: 23.10.0 + truecharts.org/SCALE-support: "true" + truecharts.org/category: cloud + truecharts.org/max_helm_version: "3.14" + truecharts.org/min_helm_version: "3.12" + truecharts.org/train: stable +apiVersion: v2 +appVersion: 28.0.1 +dependencies: + - name: common + version: 17.2.25 + repository: oci://tccr.io/truecharts + condition: "" + alias: "" + tags: [] + import-values: [] + - name: redis + version: 11.1.6 + repository: https://deps.truecharts.org + condition: redis.enabled + alias: "" + tags: [] + import-values: [] +deprecated: false +description: A private cloud server that puts the control and security of your own data back into your hands. +home: https://truecharts.org/charts/stable/nextcloud +icon: https://truecharts.org/img/hotlink-ok/chart-icons/nextcloud.png +keywords: + - nextcloud + - storage + - http + - web + - php +kubeVersion: ">=1.24.0-0" +maintainers: + - name: TrueCharts + email: info@truecharts.org + url: https://truecharts.org +name: nextcloud +sources: + - https://github.com/nextcloud/docker + - https://github.com/nextcloud/helm + - https://github.com/truecharts/charts/tree/master/charts/stable/nextcloud + - https://hub.docker.com/r/collabora/code + - https://github.com/truecharts/containers/tree/master/apps/nextcloud-push-notify + - https://github.com/truecharts/containers/tree/master/apps/nextcloud-imaginary + - https://hub.docker.com/r/clamav/clamav + - https://github.com/truecharts/containers/tree/master/apps/nextcloud-fpm + - https://hub.docker.com/r/nginxinc/nginx-unprivileged +type: application +version: 28.1.22 diff --git a/stable/nextcloud/28.1.22/LICENSE b/stable/nextcloud/28.1.22/LICENSE new file mode 100644 index 00000000000..33a8cbb23f0 --- /dev/null +++ b/stable/nextcloud/28.1.22/LICENSE @@ -0,0 +1,106 @@ +Business Source License 1.1 + +Parameters + +Licensor: The TrueCharts Project, it's owner and it's contributors +Licensed Work: The TrueCharts "Blocky" Helm Chart +Additional Use Grant: You may use the licensed work in production, as long + as it is directly sourced from a TrueCharts provided + official repository, catalog or source. You may also make private + modification to the directly sourced licenced work, + when used in production. + + The following cases are, due to their nature, also + defined as 'production use' and explicitly prohibited: + - Bundling, including or displaying the licensed work + with(in) another work intended for production use, + with the apparent intend of facilitating and/or + promoting production use by third parties in + violation of this license. + +Change Date: 2050-01-01 + +Change License: 3-clause BSD license + +For information about alternative licensing arrangements for the Software, +please contact: legal@truecharts.org + +Notice + +The Business Source License (this document, or the “License”) is not an Open +Source license. However, the Licensed Work will eventually be made available +under an Open Source License, as stated in this License. + +License text copyright (c) 2017 MariaDB Corporation Ab, All Rights Reserved. +“Business Source License” is a trademark of MariaDB Corporation Ab. + +----------------------------------------------------------------------------- + +Business Source License 1.1 + +Terms + +The Licensor hereby grants you the right to copy, modify, create derivative +works, redistribute, and make non-production use of the Licensed Work. The +Licensor may make an Additional Use Grant, above, permitting limited +production use. + +Effective on the Change Date, or the fourth anniversary of the first publicly +available distribution of a specific version of the Licensed Work under this +License, whichever comes first, the Licensor hereby grants you rights under +the terms of the Change License, and the rights granted in the paragraph +above terminate. + +If your use of the Licensed Work does not comply with the requirements +currently in effect as described in this License, you must purchase a +commercial license from the Licensor, its affiliated entities, or authorized +resellers, or you must refrain from using the Licensed Work. + +All copies of the original and modified Licensed Work, and derivative works +of the Licensed Work, are subject to this License. This License applies +separately for each version of the Licensed Work and the Change Date may vary +for each version of the Licensed Work released by Licensor. + +You must conspicuously display this License on each original or modified copy +of the Licensed Work. If you receive the Licensed Work in original or +modified form from a third party, the terms and conditions set forth in this +License apply to your use of that work. + +Any use of the Licensed Work in violation of this License will automatically +terminate your rights under this License for the current and all other +versions of the Licensed Work. + +This License does not grant you any right in any trademark or logo of +Licensor or its affiliates (provided that you may use a trademark or logo of +Licensor as expressly required by this License). + +TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON +AN “AS IS” BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS, +EXPRESS OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND +TITLE. + +MariaDB hereby grants you permission to use this License’s text to license +your works, and to refer to it using the trademark “Business Source License”, +as long as you comply with the Covenants of Licensor below. + +Covenants of Licensor + +In consideration of the right to use this License’s text and the “Business +Source License” name and trademark, Licensor covenants to MariaDB, and to all +other recipients of the licensed work to be provided by Licensor: + +1. To specify as the Change License the GPL Version 2.0 or any later version, + or a license that is compatible with GPL Version 2.0 or a later version, + where “compatible” means that software provided under the Change License can + be included in a program with software provided under GPL Version 2.0 or a + later version. Licensor may specify additional Change Licenses without + limitation. + +2. To either: (a) specify an additional grant of rights to use that does not + impose any additional restriction on the right granted in this License, as + the Additional Use Grant; or (b) insert the text “None”. + +3. To specify a Change Date. + +4. Not to modify this License in any other way. diff --git a/stable/nextcloud/28.1.22/README.md b/stable/nextcloud/28.1.22/README.md new file mode 100644 index 00000000000..a5d5bf5ecdf --- /dev/null +++ b/stable/nextcloud/28.1.22/README.md @@ -0,0 +1,28 @@ +--- +title: README +--- + +## General Info + +TrueCharts can be installed as both _normal_ Helm Charts or as Apps on TrueNAS SCALE. +However only installations using the TrueNAS SCALE Apps system are supported. + +For more information about this App, please check the docs on the TrueCharts [website](https://truecharts.org/charts/stable/nextcloud) + +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)** + +## Support + +- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/manual/SCALE/guides/scale-intro). +- See the [Website](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/charts/issues/new/choose) + +--- + +## Sponsor TrueCharts + +TrueCharts can only exist due to the incredible effort of our staff. +Please consider making a [donation](https://truecharts.org/sponsor) or contributing back to the project any way you can! + +_All Rights Reserved - The TrueCharts Project_ diff --git a/stable/nextcloud/28.1.22/app-changelog.md b/stable/nextcloud/28.1.22/app-changelog.md new file mode 100644 index 00000000000..0459e0551f1 --- /dev/null +++ b/stable/nextcloud/28.1.22/app-changelog.md @@ -0,0 +1,9 @@ + + +## [nextcloud-28.1.22](https://github.com/truecharts/charts/compare/nextcloud-28.1.21...nextcloud-28.1.22) (2024-01-21) + +### Chore + + + +- update container image tccr.io/tccr/nextcloud-push-notify to v0.6.7[@a6dfa37](https://github.com/a6dfa37) by renovate ([#17462](https://github.com/truecharts/charts/issues/17462)) \ No newline at end of file diff --git a/stable/nextcloud/28.1.22/app-readme.md b/stable/nextcloud/28.1.22/app-readme.md new file mode 100644 index 00000000000..1369f69bf57 --- /dev/null +++ b/stable/nextcloud/28.1.22/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/28.1.22/charts/common-17.2.25.tgz b/stable/nextcloud/28.1.22/charts/common-17.2.25.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0c91e26d2cd260fc7d639a1a1f3faa86ab569a39 GIT binary patch literal 97951 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

uX8Z!9(G&fM%U{dG+K>O$A?Y7(dxEF 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 F3;<7}%IE+9 literal 0 HcmV?d00001 diff --git a/stable/nextcloud/28.1.22/charts/redis-11.1.6.tgz b/stable/nextcloud/28.1.22/charts/redis-11.1.6.tgz new file mode 100644 index 0000000000000000000000000000000000000000..f65cde08267a077cdace3b497cd13759d3c53029 GIT binary patch literal 103627 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

crQqZL$}97)U)R9tsayNkH?N+b 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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: enabled + label: Enable Widget + description: When disabled all widget annotations are skipped. + schema: + type: boolean + default: true + - variable: custom + label: Options + schema: + type: dict + additional_attrs: true + attrs: + - variable: key + label: API-key (key) + schema: + type: string + default: "" + - variable: customkv + label: Custom Options + schema: + type: list + default: [] + items: + - variable: option + label: Option + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + default: "" + required: true + - variable: value + label: Value + schema: + type: string + default: "" + required: true + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + - variable: ingressClassName + label: (Advanced/Optional) IngressClass Name + schema: + type: string + show_if: [["advanced", "=", true]] + default: "" + - variable: tls + label: TLS-Settings + schema: + type: list + show_if: [["advanced", "=", true]] + default: [] + items: + - variable: tlsEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: hosts + label: Certificate Hosts + schema: + type: list + default: [] + items: + - variable: host + label: Host + schema: + type: string + default: "" + required: true + + - variable: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: 'Use Custom Certificate Secret (Advanced)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: string + default: "" + - variable: scaleCert + label: 'Use TrueNAS SCALE Certificate (Deprecated)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - variable: ingressList + label: Add Manual Custom Ingresses + group: Ingress + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: Custom Ingress + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Ingress + schema: + type: boolean + default: true + hidden: true + - variable: name + label: Name + schema: + type: string + default: "" + - variable: ingressClassName + label: IngressClass Name + schema: + type: string + default: "" + - variable: hosts + label: Hosts + schema: + type: list + default: [] + items: + - variable: hostEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: host + label: HostName + schema: + type: string + default: "" + required: true + - variable: paths + label: Paths + schema: + type: list + default: [] + items: + - variable: pathEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: path + label: Path + schema: + type: string + required: true + default: "/" + - variable: pathType + label: Path Type + schema: + type: string + required: true + default: Prefix + - variable: overrideService + label: Linked Service + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Service Name + schema: + type: string + default: "" + - variable: port + label: Service Port + schema: + type: int + - variable: tls + label: TLS-Settings + schema: + type: list + default: [] + show_if: [["certificateIssuer", "=", ""]] + items: + - variable: tlsEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: hosts + label: Certificate Hosts + schema: + type: list + default: [] + items: + - variable: host + label: Host + schema: + type: string + default: "" + required: true + - variable: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your Cert-Manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: scaleCert + label: Use TrueNAS SCALE Certificate (Deprecated) + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: Use Custom Secret (Advanced) + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: integrations + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: traefik + label: Traefik + description: Connect ingress with Traefik + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: allowCors + label: "Allow Cross Origin Requests" + schema: + type: boolean + default: false + show_if: [["enabled", "=", true]] + - variable: entrypoints + label: Entrypoints + schema: + type: list + default: ["websecure"] + show_if: [["enabled", "=", true]] + items: + - variable: entrypoint + label: Entrypoint + schema: + type: string + - variable: middlewares + label: Middlewares + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: middleware + label: Middleware + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true + - variable: namespace + label: namespace + schema: + type: string + default: "" + - variable: certManager + label: certManager + description: Connect ingress with certManager + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: certificateIssuer + label: certificateIssuer + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: homepage + label: Homepage + description: Connect ingress with Homepage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: name + label: Name + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: description + label: Description + description: defaults to chart description + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: group + label: Group + schema: + type: string + required: true + default: "default" + show_if: [["enabled", "=", true]] + - variable: securityContext + group: Security and Permissions + label: Security Context + schema: + additional_attrs: true + type: dict + attrs: + - variable: container + label: Container + schema: + additional_attrs: true + type: dict + attrs: + # Settings from questions.yaml get appended here on a per-app basis + - variable: runAsUser + label: runAsUser + description: The UserID of the user running the application + schema: + type: int + default: 568 + - variable: runAsGroup + label: runAsGroup + description: The groupID of the user running the application + schema: + type: int + default: 568 + # Settings from questions.yaml get appended here on a per-app basis + - variable: PUID + label: Process User ID - PUID + description: When supported by the container, this sets the User ID running the Application Process. Not supported by all Apps + schema: + type: int + show_if: [["runAsUser", "=", 0]] + default: 568 + - variable: UMASK + label: UMASK + description: When supported by the container, this sets the UMASK for the App. Not supported by all Apps + schema: + type: string + default: "0022" + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: pod + label: Pod + schema: + additional_attrs: true + type: dict + attrs: + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: OnRootMismatch + enum: + - value: OnRootMismatch + description: OnRootMismatch + - value: Always + description: Always + - variable: supplementalGroups + label: Supplemental Groups + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: Supplemental Group + schema: + type: int + # Settings from questions.yaml get appended here on a per-app basis + - variable: fsGroup + label: fsGroup + description: The group that should own ALL storage. + schema: + type: int + default: 568 + - variable: resources + group: Resources and Devices + label: "Resource Limits" + schema: + additional_attrs: true + type: dict + attrs: + - variable: limits + label: Advanced Limit Resource Consumption + schema: + additional_attrs: true + type: dict + attrs: + - variable: cpu + label: CPU + description: "1000m means 1 hyperthread. Detailed info: https://truecharts.org/manual/SCALE/validation" + schema: + type: string + default: 4000m + valid_chars: '^(?!^0(\.0|m|)$)([0-9]+)(\.[0-9]|m?)$' + - variable: memory + label: RAM + description: "1Gi means 1 Gibibyte RAM. Detailed info: https://truecharts.org/manual/SCALE/validation" + schema: + type: string + default: 8Gi + valid_chars: '^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$' + - variable: requests + label: "Minimum Resources Required (request)" + schema: + additional_attrs: true + type: dict + hidden: true + attrs: + - variable: cpu + label: CPU + description: "1000m means 1 hyperthread. Detailed info: https://truecharts.org/manual/SCALE/validation" + schema: + type: string + default: 10m + hidden: true + valid_chars: '^(?!^0(\.0|m|)$)([0-9]+)(\.[0-9]|m?)$' + - variable: memory + label: "RAM" + description: "1Gi means 1 Gibibyte RAM. Detailed info: https://truecharts.org/manual/SCALE/validation" + schema: + type: string + default: 50Mi + hidden: true + valid_chars: '^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$' + - variable: deviceList + label: Mount USB Devices + group: Resources and Devices + schema: + type: list + default: [] + items: + - variable: deviceListEntry + label: Device + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the Storage + schema: + type: boolean + default: true + - variable: type + label: (Advanced) Type of Storage + description: Sets the persistence type + schema: + type: string + default: device + hidden: true + - variable: readOnly + label: readOnly + schema: + type: boolean + default: false + - variable: hostPath + label: Host Device Path + description: Path to the device on the host system + schema: + type: path + - variable: mountPath + label: Container Device Path + description: Path inside the container the device is mounted + schema: + type: string + default: "/dev/ttyACM0" + - variable: scaleGPU + label: GPU Configuration + group: Resources and Devices + schema: + type: list + default: [] + items: + - variable: scaleGPUEntry + label: GPU + schema: + additional_attrs: true + type: dict + attrs: + # Specify GPU configuration + - variable: gpu + label: Select GPU + schema: + additional_attrs: true + type: dict + $ref: + - "definitions/gpuConfiguration" + attrs: [] + - variable: workaround + label: "Workaround" + schema: + type: string + default: workaround + hidden: true + - variable: cnpg + group: Postgresql + label: "CloudNative-PG (CNPG)" + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "Main Postgresql Database" + schema: + additional_attrs: true + type: dict + attrs: + - variable: hibernate + label: Hibernate + description: "enable to safely hibernate and shutdown the postgresql cluster" + schema: + type: boolean + default: false + - variable: mode + label: Mode + description: 'Cluster mode of operation. Available modes: standalone - default mode. Creates new or updates an existing CNPG cluster. recovery - Same as standalone but creates a cluster from a backup, object store or via pg_basebackup replica - Creates a replica cluster from an existing CNPG cluster. # TODO.' + schema: + type: string + default: "standalone" + enum: + - value: standalone + description: standalone + - value: replica + description: replica + - value: recovery + description: recovery + - variable: cluster + label: "Cluster Settings" + schema: + additional_attrs: true + type: dict + attrs: + - variable: instances + label: Instances + schema: + type: int + default: 1 + - variable: singleNode + label: singleNode + schema: + type: boolean + default: true + hidden: true + - variable: storage + label: "Storage" + schema: + additional_attrs: true + type: dict + attrs: + - variable: size + label: Size + schema: + type: string + default: "256Gi" + - variable: walStorage + label: "WAL Storage" + schema: + additional_attrs: true + type: dict + attrs: + - variable: size + label: Size + schema: + type: string + default: "256Gi" + - variable: monitoring + label: "Monitoring Settings" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enablePodMonitor + label: "enablePodMonitor" + schema: + type: boolean + default: true + - variable: disableDefaultQueries + label: "disableDefaultQueries" + schema: + type: boolean + default: false + - variable: pooler + label: "Pooler Settings" + schema: + additional_attrs: true + type: dict + attrs: + - variable: instances + label: Instances + schema: + type: int + default: 1 + - variable: createRO + label: "Create ReadOnly Instance" + schema: + type: boolean + default: false + - variable: recovery + label: "Recovery Settings (Experimental)" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + - variable: endpointURL + label: "endpointURL" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "" + - variable: method + label: "method" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "object_store" + - variable: backupName + label: "backupName" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "" + - variable: provider + label: "provider" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "s3" + enum: + - value: s3 + description: S3 + - value: azure + description: Azure + - value: google + description: Google + - variable: s3 + label: "s3" + schema: + additional_attrs: true + type: dict + show_if: [["provider", "=", "s3"]] + attrs: + - variable: region + label: "region" + schema: + type: string + default: "" + - variable: bucket + label: "bucket" + schema: + type: string + default: "" + - variable: path + label: "path" + schema: + type: string + default: "/" + - variable: accessKey + label: "accessKey" + schema: + type: string + default: "" + - variable: secretKey + label: "secretKey" + schema: + type: string + default: "" + - variable: azure + label: "azure (EXTREMELY EXPERIMENTAL)" + schema: + additional_attrs: true + type: dict + show_if: [["provider", "=", "azure"]] + attrs: + - variable: path + label: "path" + schema: + type: string + default: "/" + - variable: connectionString + label: "connectionString" + schema: + type: string + default: "" + - variable: storageAccount + label: "storageAccount" + schema: + type: string + default: "" + - variable: storageKey + label: "storageKey" + schema: + type: string + default: "" + - variable: storageSasToken + label: "storageSasToken" + schema: + type: string + default: "" + - variable: containerName + label: "containerName" + schema: + type: string + default: "" + - variable: serviceName + label: "serviceName" + schema: + type: string + default: "blob" + - variable: inheritFromAzureAD + label: "inheritFromAzureAD" + schema: + type: boolean + default: false + - variable: google + label: "google (EXTREMELY EXPERIMENTAL)" + schema: + additional_attrs: true + type: dict + show_if: [["provider", "=", "google"]] + attrs: + - variable: path + label: "path" + schema: + type: string + default: "/" + - variable: bucket + label: "bucket" + schema: + type: string + default: "" + - variable: gkeEnvironment + label: "gkeEnvironment" + schema: + type: string + default: "" + - variable: applicationCredentials + label: "applicationCredentials" + schema: + type: string + default: "" + - variable: backups + label: "Backup Settings (Experimental)" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + - variable: endpointURL + label: "endpointURL" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "" + - variable: destinationPath + label: "destinationPath" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "" + - variable: retentionPolicy + label: "retentionPolicy" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "30d" + - variable: provider + label: "provider" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "s3" + enum: + - value: s3 + description: S3 + - value: azure + description: Azure + - value: google + description: Google + - variable: s3 + label: "s3" + schema: + additional_attrs: true + type: dict + show_if: [["provider", "=", "s3"]] + attrs: + - variable: region + label: "region" + schema: + type: string + default: "" + - variable: bucket + label: "bucket" + schema: + type: string + default: "" + - variable: path + label: "path" + schema: + type: string + default: "/" + - variable: accessKey + label: "accessKey" + schema: + type: string + default: "" + - variable: secretKey + label: "secretKey" + schema: + type: string + default: "" + - variable: azure + label: "azure (EXTREMELY EXPERIMENTAL)" + schema: + additional_attrs: true + type: dict + show_if: [["provider", "=", "azure"]] + attrs: + - variable: path + label: "path" + schema: + type: string + default: "/" + - variable: connectionString + label: "connectionString" + schema: + type: string + default: "" + - variable: storageAccount + label: "storageAccount" + schema: + type: string + default: "" + - variable: storageKey + label: "storageKey" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "" + - variable: storageSasToken + label: "storageSasToken" + schema: + type: string + default: "" + - variable: containerName + label: "containerName" + schema: + type: string + default: "" + - variable: serviceName + label: "serviceName" + schema: + type: string + default: "blob" + - variable: inheritFromAzureAD + label: "inheritFromAzureAD" + schema: + type: boolean + default: false + - variable: google + label: "google (EXTREMELY EXPERIMENTAL)" + schema: + additional_attrs: true + type: dict + show_if: [["provider", "=", "google"]] + attrs: + - variable: path + label: "path" + schema: + type: string + default: "/" + - variable: bucket + label: "bucket" + schema: + type: string + default: "" + - variable: gkeEnvironment + label: "gkeEnvironment" + schema: + type: string + default: "" + - variable: applicationCredentials + label: "applicationCredentials" + schema: + type: string + default: "" + - variable: scheduledBackups + label: ScheduledBackups + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: backupschedule + label: BackupSchedule + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "daily-backup" + required: true + - variable: schedule + label: schedule + schema: + type: string + required: true + default: "0 0 0 * * *" + - variable: backupOwnerReference + label: backupOwnerReference + schema: + type: string + required: true + default: "self" + - variable: immediate + label: immediate + schema: + type: boolean + default: false + - variable: suspend + label: suspend + schema: + type: boolean + default: false + - variable: manualBackups + label: manualBackups + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: backup + label: Backup + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true + - variable: metrics + group: Metrics + label: Prometheus Metrics + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: Main Metrics + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + description: Enable Prometheus Metrics + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: prometheusRule + label: PrometheusRule + description: Enable and configure Prometheus Rules for the App. + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + description: Enable Prometheus Metrics + schema: + type: boolean + default: false + # TODO: Rule List section +# - variable: horizontalPodAutoscaler +# group: Advanced +# label: (Advanced) Horizontal Pod Autoscaler +# schema: +# type: list +# default: [] +# items: +# - variable: hpaEntry +# label: HPA Entry +# schema: +# additional_attrs: true +# type: dict +# attrs: +# - variable: name +# label: Name +# schema: +# type: string +# required: true +# default: "" +# - variable: enabled +# label: Enabled +# schema: +# type: boolean +# default: false +# show_subquestions_if: true +# subquestions: +# - variable: target +# label: Target +# description: Deployment name, Defaults to Main Deployment +# schema: +# type: string +# default: "" +# - variable: minReplicas +# label: Minimum Replicas +# schema: +# type: int +# default: 1 +# - variable: maxReplicas +# label: Maximum Replicas +# schema: +# type: int +# default: 5 +# - variable: targetCPUUtilizationPercentage +# label: Target CPU Utilization Percentage +# schema: +# type: int +# default: 80 +# - variable: targetMemoryUtilizationPercentage +# label: Target Memory Utilization Percentage +# schema: +# type: int +# default: 80 + - variable: networkPolicy + group: Advanced + label: (Advanced) Network Policy + schema: + type: list + default: [] + items: + - variable: netPolicyEntry + label: Network Policy Entry + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + default: "" + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: policyType + label: Policy Type + schema: + type: string + default: "" + enum: + - value: "" + description: Default + - value: ingress + description: Ingress + - value: egress + description: Egress + - value: ingress-egress + description: Ingress and Egress + - variable: egress + label: Egress + schema: + type: list + default: [] + items: + - variable: egressEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: to + label: To + schema: + type: list + default: [] + items: + - variable: toEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: ipBlock + label: IP Block + schema: + additional_attrs: true + type: dict + attrs: + - variable: cidr + label: CIDR + schema: + type: string + default: "" + - variable: except + label: Except + schema: + type: list + default: [] + items: + - variable: exceptint + label: "" + schema: + type: string + - variable: namespaceSelector + label: Namespace Selector + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: podSelector + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: ports + label: Ports + schema: + type: list + default: [] + items: + - variable: portsEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + schema: + type: int + - variable: endPort + label: End Port + schema: + type: int + - variable: protocol + label: Protocol + schema: + type: string + default: TCP + enum: + - value: TCP + description: TCP + - value: UDP + description: UDP + - value: SCTP + description: SCTP + - variable: ingress + label: Ingress + schema: + type: list + default: [] + items: + - variable: ingressEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: from + label: From + schema: + type: list + default: [] + items: + - variable: fromEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: ipBlock + label: IP Block + schema: + additional_attrs: true + type: dict + attrs: + - variable: cidr + label: CIDR + schema: + type: string + default: "" + - variable: except + label: Except + schema: + type: list + default: [] + items: + - variable: exceptint + label: "" + schema: + type: string + - variable: namespaceSelector + label: Namespace Selector + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: podSelector + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: ports + label: Ports + schema: + type: list + default: [] + items: + - variable: portsEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + schema: + type: int + - variable: endPort + label: End Port + schema: + type: int + - variable: protocol + label: Protocol + schema: + type: string + default: TCP + enum: + - value: TCP + description: TCP + - value: UDP + description: UDP + - value: SCTP + description: SCTP + - variable: addons + group: Addons + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: codeserver + label: Codeserver + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: service + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Service Type + description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: LoadBalancer + enum: + - value: NodePort + description: Deprecated CHANGE THIS + - value: ClusterIP + description: ClusterIP + - value: LoadBalancer + description: LoadBalancer + - variable: loadBalancerIP + label: LoadBalancer IP + description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: ports + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: codeserver + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + schema: + type: int + default: 36107 + - variable: ingress + label: "Ingress" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Ingress + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: Hosts + schema: + type: list + default: [] + items: + - variable: hostEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: host + label: HostName + schema: + type: string + default: "" + required: true + - variable: paths + label: Paths + schema: + type: list + default: [{path: "/", pathType: "Prefix"}] + items: + - variable: pathEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: path + label: Path + schema: + type: string + required: true + default: "/" + - variable: pathType + label: Path Type + schema: + type: string + required: true + default: Prefix + - variable: integrations + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: traefik + label: Traefik + description: Connect ingress with Traefik + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: allowCors + label: 'Allow Cross Origin Requests (advanced)' + schema: + type: boolean + default: false + show_if: [["enabled", "=", true]] + - variable: entrypoints + label: Entrypoints + schema: + type: list + default: ["websecure"] + show_if: [["enabled", "=", true]] + items: + - variable: entrypoint + label: Entrypoint + schema: + type: string + - variable: middlewares + label: Middlewares + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: middleware + label: Middleware + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true + - variable: namespace + label: 'namespace (optional)' + schema: + type: string + default: "" + - variable: certManager + label: certManager + description: Connect ingress with certManager + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: certificateIssuer + label: certificateIssuer + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + - variable: ingressClassName + label: (Advanced/Optional) IngressClass Name + schema: + type: string + show_if: [["advanced", "=", true]] + default: "" + - variable: tls + label: TLS-Settings + schema: + type: list + show_if: [["advanced", "=", true]] + default: [] + items: + - variable: tlsEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: hosts + label: Certificate Hosts + schema: + type: list + default: [] + items: + - variable: host + label: Host + schema: + type: string + default: "" + required: true + + - variable: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: 'Use Custom Certificate Secret (Advanced)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: string + default: "" + - variable: scaleCert + label: 'Use TrueNAS SCALE Certificate (Deprecated)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - variable: envList + label: Codeserver Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + - variable: netshoot + label: Netshoot + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: envList + label: Netshoot Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + - variable: vpn + label: VPN + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type + schema: + type: string + default: disabled + enum: + - value: disabled + description: disabled + - value: gluetun + description: Gluetun + - value: tailscale + description: Tailscale + - value: openvpn + description: OpenVPN (Deprecated) + - value: wireguard + description: Wireguard (Deprecated) + - variable: openvpn + label: OpenVPN Settings + schema: + additional_attrs: true + type: dict + show_if: [["type", "=", "openvpn"]] + attrs: + - variable: username + label: Authentication Username (Optional) + description: Authentication Username, Optional + schema: + type: string + default: "" + - variable: password + label: Authentication Password + description: Authentication Credentials + schema: + type: string + show_if: [["username", "!=", ""]] + default: "" + required: true + - variable: tailscale + label: Tailscale Settings + schema: + additional_attrs: true + type: dict + show_if: [["type", "=", "tailscale"]] + attrs: + - variable: authkey + label: Authentication Key + description: Provide an auth key to automatically authenticate the node as your user account. + schema: + type: string + private: true + default: "" + - variable: auth_once + label: Auth Once + description: Only attempt to log in if not already logged in. + schema: + type: boolean + default: true + - variable: accept_dns + label: Accept DNS + description: Accept DNS configuration from the admin console. + schema: + type: boolean + default: false + - variable: userspace + label: Userspace + description: Userspace Networking mode allows running Tailscale where you do not have access to create a VPN tunnel device. + schema: + type: boolean + default: false + - variable: routes + label: Routes + description: Expose physical subnet routes to your entire Tailscale network. + schema: + type: string + default: "" + - variable: dest_ip + label: Destination IP + description: Tells the DNAT mechanism which Destination IP to set in the IP header, and where to send packets that are matched. + schema: + type: string + default: "" + - variable: sock5_server + label: Sock5 Server + description: The address on which to listen for SOCKS5 proxying into the tailscale net. + schema: + type: string + default: "" + - variable: outbound_http_proxy_listen + label: Outbound HTTP Proxy Listen + description: The address on which to listen for HTTP proxying into the tailscale net. + schema: + type: string + default: "" + - variable: extra_args + label: Extra Args + description: Extra Args + schema: + type: string + default: "" + - variable: daemon_extra_args + label: Tailscale Daemon Extra Args + description: Tailscale Daemon Extra Args + schema: + type: string + default: "" + - variable: killSwitch + label: Enable Killswitch + schema: + type: boolean + show_if: [["type", "!=", "disabled"]] + default: true + - variable: excludedNetworks_IPv4 + label: Killswitch Excluded IPv4 networks + description: List of Killswitch Excluded IPv4 Addresses + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: networkv4 + label: IPv4 Network + schema: + type: string + required: true + - variable: excludedNetworks_IPv6 + label: Killswitch Excluded IPv6 networks + description: "List of Killswitch Excluded IPv6 Addresses" + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: networkv6 + label: IPv6 Network + schema: + type: string + required: true + - variable: configFile + label: VPN Config File Location + schema: + type: string + show_if: [["type", "!=", "disabled"]] + default: "" + + - variable: envList + label: VPN Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + max_length: 10240 + - variable: docs + group: Documentation + label: Please read the documentation at https://truecharts.org + description: Please read the documentation at +
https://truecharts.org + schema: + additional_attrs: true + type: dict + attrs: + - variable: confirmDocs + label: I have checked the documentation + schema: + type: boolean + default: true + - variable: donateNag + group: Documentation + label: Please consider supporting TrueCharts, see https://truecharts.org/sponsor + description: Please consider supporting TrueCharts, see +
https://truecharts.org/sponsor + schema: + additional_attrs: true + type: dict + attrs: + - variable: confirmDonate + label: I have considered donating + schema: + type: boolean + default: true + hidden: true diff --git a/stable/nextcloud/28.1.22/templates/NOTES.txt b/stable/nextcloud/28.1.22/templates/NOTES.txt new file mode 100644 index 00000000000..efcb74cb772 --- /dev/null +++ b/stable/nextcloud/28.1.22/templates/NOTES.txt @@ -0,0 +1 @@ +{{- include "tc.v1.common.lib.chart.notes" $ -}} diff --git a/stable/nextcloud/28.1.22/templates/_configmap.tpl b/stable/nextcloud/28.1.22/templates/_configmap.tpl new file mode 100644 index 00000000000..081cf5d71c2 --- /dev/null +++ b/stable/nextcloud/28.1.22/templates/_configmap.tpl @@ -0,0 +1,443 @@ +{{- define "nextcloud.accessurl" -}} + {{- $accessUrl := .Values.chartContext.appUrl -}} + {{- if or (contains "127.0.0.1" $accessUrl) (contains "localhost" $accessUrl) -}} + {{- if .Values.nextcloud.general.accessIP -}} + {{- $prot := "http" -}} + {{- $host := .Values.nextcloud.general.accessIP -}} + {{- $port := .Values.service.main.ports.main.port -}} + {{/* + Allowing here to override protocol and port + should be enough to make it work with any rev proxy + */}} + {{- $accessUrl = printf "%v://%v:%v" $prot $host $port -}} + {{- end -}} + {{- end -}} + + {{- $accessUrl -}} +{{- end -}} + +{{- define "nextcloud.accesshost" -}} + {{- $accessUrl := (include "nextcloud.accessurl" $) -}} + {{- $accessHost := regexReplaceAll ".*://(.*)" $accessUrl "${1}" -}} + {{- $accessHost = regexReplaceAll "(.*):.*" $accessHost "${1}" -}} + + {{- $accessHost -}} +{{- end -}} + +{{/* Define the configmap */}} +{{- define "nextcloud.configmaps" -}} +{{- $fullname := (include "tc.v1.common.lib.chart.names.fullname" $) -}} +{{- $fqdn := (include "tc.v1.common.lib.chart.names.fqdn" $) -}} +{{- $accessUrl := (include "nextcloud.accessurl" $) -}} +{{- $accessHost := (include "nextcloud.accesshost" $) -}} +{{- $accessHostPort := regexReplaceAll ".*://(.*)" $accessUrl "${1}" -}} +{{- $accessProtocol := regexReplaceAll "(.*)://.*" $accessUrl "${1}" -}} +{{- $redisHost := .Values.redis.creds.plainhost | trimAll "\"" -}} +{{- $redisPass := .Values.redis.creds.redisPassword | trimAll "\"" -}} +{{- $healthHost := "kube.internal.healthcheck" -}} + +php-tune: + enabled: true + data: + zz-tune.conf: | + [www] + pm.max_children = {{ .Values.nextcloud.php.pm_max_children }} + pm.start_servers = {{ .Values.nextcloud.php.pm_start_servers }} + pm.min_spare_servers = {{ .Values.nextcloud.php.pm_min_spare_servers }} + pm.max_spare_servers = {{ .Values.nextcloud.php.pm_max_spare_servers }} + +opcache: + enabled: true + data: + opcache-recommended.ini: | + opcache.enable=1 + opcache.save_comments=1 + opcache.jit=1255 + opcache.interned_strings_buffer={{ .Values.nextcloud.opcache.interned_strings_buffer }} + opcache.max_accelerated_files={{ .Values.nextcloud.opcache.max_accelerated_files }} + opcache.memory_consumption={{ .Values.nextcloud.opcache.memory_consumption }} + opcache.revalidate_freq={{ .Values.nextcloud.opcache.revalidate_freq }} + opcache.jit_buffer_size={{ printf "%vM" .Values.nextcloud.opcache.jit_buffer_size }} + +redis-session: + enabled: true + data: + redis-session.ini: | + session.save_handler = redis + session.save_path = {{ printf "tcp://%v:6379?auth=%v" $redisHost $redisPass | quote }} + redis.session.locking_enabled = 1 + redis.session.lock_retries = -1 + redis.session.lock_wait_time = 10000 + +hpb-config: + enabled: {{ .Values.nextcloud.notify_push.enabled }} + data: + NEXTCLOUD_URL: {{ printf "http://%v:%v" $fullname .Values.service.main.ports.main.port }} + HPB_HOST: {{ $healthHost }} + CONFIG_FILE: {{ printf "%v/config.php" .Values.persistence.config.targetSelector.notify.notify.mountPath }} + METRICS_PORT: {{ .Values.service.notify.ports.metrics.port | quote }} + +clamav-config: + enabled: {{ .Values.nextcloud.clamav.enabled }} + data: + CLAMAV_NO_CLAMD: "false" + CLAMAV_NO_FRESHCLAMD: "true" + CLAMAV_NO_MILTERD: "true" + CLAMD_STARTUP_TIMEOUT: "1800" + +collabora-config: + enabled: {{ .Values.nextcloud.collabora.enabled }} + data: + aliasgroup1: {{ $accessUrl }} + server_name: {{ $accessHostPort }} + dictionaries: {{ join " " .Values.nextcloud.collabora.dictionaries }} + username: {{ .Values.nextcloud.collabora.username | quote }} + password: {{ .Values.nextcloud.collabora.password | quote }} + DONT_GEN_SSL_CERT: "true" + # mount_jail_tree is only used for local storage + # not needed for WOPI https://github.com/CollaboraOnline/online/issues/3604#issuecomment-989833814 + extra_params: | + --o:ssl.enable=false + --o:ssl.termination=true + --o:net.service_root=/collabora + --o:home_mode.enable=true + --o:welcome.enable=false + --o:logging.level=warning + --o:logging.level_startup=warning + --o:security.seccomp=true + --o:mount_jail_tree=false + --o:user_interface.mode={{ .Values.nextcloud.collabora.interface_mode }} + +nextcloud-config: + enabled: true + data: + {{/* Database */}} + POSTGRES_DB: {{ .Values.cnpg.main.database | quote }} + POSTGRES_USER: {{ .Values.cnpg.main.user | quote }} + POSTGRES_PASSWORD: {{ .Values.cnpg.main.creds.password | trimAll "\"" }} + POSTGRES_HOST: {{ .Values.cnpg.main.creds.host | trimAll "\"" }} + + {{/* Redis */}} + NX_REDIS_HOST: {{ $redisHost }} + NX_REDIS_PASS: {{ $redisPass }} + + {{/* Nextcloud INITIAL credentials */}} + NEXTCLOUD_ADMIN_USER: {{ .Values.nextcloud.credentials.initialAdminUser | quote }} + NEXTCLOUD_ADMIN_PASSWORD: {{ .Values.nextcloud.credentials.initialAdminPassword | quote }} + + {{/* PHP Variables */}} + PHP_MEMORY_LIMIT: {{ .Values.nextcloud.php.memory_limit | quote }} + PHP_UPLOAD_LIMIT: {{ .Values.nextcloud.php.upload_limit | quote }} + + {{/* Notify Push */}} + NX_NOTIFY_PUSH: {{ .Values.nextcloud.notify_push.enabled | quote }} + {{- if .Values.nextcloud.notify_push.enabled }} + NX_NOTIFY_PUSH_ENDPOINT: {{ $accessUrl }}/push + {{- end }} + + {{/* Previews */}} + NX_PREVIEWS: {{ .Values.nextcloud.previews.enabled | quote }} + NX_PREVIEW_PROVIDERS: {{ join " " .Values.nextcloud.previews.providers }} + NX_PREVIEW_MAX_X: {{ .Values.nextcloud.previews.max_x | quote }} + NX_PREVIEW_MAX_Y: {{ .Values.nextcloud.previews.max_y | quote }} + NX_PREVIEW_MAX_MEMORY: {{ .Values.nextcloud.previews.max_memory | quote }} + NX_PREVIEW_MAX_FILESIZE_IMAGE: {{ .Values.nextcloud.previews.max_file_size_image | quote }} + NX_JPEG_QUALITY: {{ .Values.nextcloud.previews.jpeg_quality | quote }} + NX_PREVIEW_SQUARE_SIZES: {{ .Values.nextcloud.previews.square_sizes | quote }} + NX_PREVIEW_WIDTH_SIZES: {{ .Values.nextcloud.previews.width_sizes | quote }} + NX_PREVIEW_HEIGHT_SIZES: {{ .Values.nextcloud.previews.height_sizes | quote }} + + {{/* Imaginary */}} + NX_IMAGINARY: {{ and .Values.nextcloud.previews.enabled .Values.nextcloud.previews.imaginary | quote }} + {{- if and .Values.nextcloud.previews.enabled .Values.nextcloud.previews.imaginary }} + NX_IMAGINARY_URL: {{ printf "http://%v-imaginary:%v" $fullname .Values.service.imaginary.ports.imaginary.port }} + {{- end }} + + {{/* Expirations */}} + NX_ACTIVITY_EXPIRE_DAYS: {{ .Values.nextcloud.expirations.activity_expire_days | quote }} + NX_TRASH_RETENTION: {{ .Values.nextcloud.expirations.trash_retention_obligation | quote }} + NX_VERSIONS_RETENTION: {{ .Values.nextcloud.expirations.versions_retention_obligation | quote }} + + {{/* General */}} + NX_RUN_OPTIMIZE: {{ .Values.nextcloud.general.run_optimize | quote }} + NX_DEFAULT_PHONE_REGION: {{ .Values.nextcloud.general.default_phone_region | quote }} + NEXTCLOUD_DATA_DIR: {{ .Values.persistence.data.targetSelector.main.main.mountPath }} + NX_FORCE_ENABLE_ALLOW_LOCAL_REMOTE_SERVERS: {{ .Values.nextcloud.general.force_enable_allow_local_remote_servers | quote }} + + {{/* Files */}} + NX_SHARED_FOLDER_NAME: {{ .Values.nextcloud.files.shared_folder_name | quote }} + NX_MAX_CHUNKSIZE: {{ .Values.nextcloud.files.max_chunk_size | mul 1 | quote }} + + {{/* Logging */}} + NX_LOG_LEVEL: {{ .Values.nextcloud.logging.log_level | quote }} + NX_LOG_FILE: {{ .Values.nextcloud.logging.log_file | quote }} + NX_LOG_FILE_AUDIT: {{ .Values.nextcloud.logging.log_audit_file | quote }} + NX_LOG_DATE_FORMAT: {{ .Values.nextcloud.logging.log_date_format | quote }} + NX_LOG_TIMEZONE: {{ .Values.TZ | quote }} + + {{/* ClamAV */}} + NX_CLAMAV: {{ .Values.nextcloud.clamav.enabled | quote }} + {{- if .Values.nextcloud.clamav.enabled }} + NX_CLAMAV_HOST: {{ printf "%v-clamav" $fullname }} + NX_CLAMAV_PORT: {{ .Values.service.clamav.ports.clamav.targetPort | quote }} + NX_CLAMAV_STREAM_MAX_LENGTH: {{ .Values.nextcloud.clamav.stream_max_length | mul 1 | quote }} + NX_CLAMAV_FILE_MAX_SIZE: {{ .Values.nextcloud.clamav.file_max_size | quote }} + NX_CLAMAV_INFECTED_ACTION: {{ .Values.nextcloud.clamav.infected_action | quote }} + {{- end }} + + {{/* Collabora */}} + NX_COLLABORA: {{ .Values.nextcloud.collabora.enabled | quote }} + {{- if .Values.nextcloud.collabora.enabled }} + NX_COLLABORA_URL: {{ printf "%v/collabora" $accessUrl | quote }} + # Ideally this would be a combo of: public ip, pod cidr, svc cidr + # But not always people have static IP. + NX_COLLABORA_ALLOWLIST: "0.0.0.0/0" + {{- end }} + + {{/* Only Office */}} + NX_ONLYOFFICE: {{ .Values.nextcloud.onlyoffice.enabled | quote }} + {{- if .Values.nextcloud.onlyoffice.enabled }} + NX_ONLYOFFICE_URL: {{ .Values.nextcloud.onlyoffice.url | quote }} + NX_ONLYOFFICE_INTERNAL_URL: {{ .Values.nextcloud.onlyoffice.internal_url | quote }} + NX_ONLYOFFICE_VERIFY_SSL: {{ .Values.nextcloud.onlyoffice.verify_ssl | quote }} + NX_ONLYOFFICE_NEXTCLOUD_INTERNAL_URL: {{ printf "http://%v.svc.cluster.local:%v" $fqdn .Values.service.main.ports.main.port }} + NX_ONLYOFFICE_JWT: {{ .Values.nextcloud.onlyoffice.jwt | quote }} + NX_ONLYOFFICE_JWT_HEADER: {{ .Values.nextcloud.onlyoffice.jwt_header | quote }} + {{- end }} + + {{/* URLs */}} + NX_OVERWRITE_HOST: {{ $accessHostPort }} + NX_OVERWRITE_CLI_URL: {{ $accessUrl }} + # Return the protocol part of the URL + NX_OVERWRITE_PROTOCOL: {{ $accessProtocol | lower }} + # IP (or range in this case) of the proxy(ies) + NX_TRUSTED_PROXIES: | + {{ .Values.chartContext.podCIDR }} + {{ .Values.chartContext.svcCIDR }} + # fullname-* will allow access from the + # other services in the same namespace + NX_TRUSTED_DOMAINS: | + 127.0.0.1 + localhost + {{ $fullname }} + {{ printf "%v-*" $fullname }} + {{ $healthHost }} + {{- if not (contains "127.0.0.1" $accessHost) }} + {{- $accessHost | nindent 6 }} + {{- end -}} + {{- with .Values.nextcloud.general.accessIP }} + {{- . | nindent 6 }} + {{- end }} + +# TODO: Replace locations with ingress +# like /push, /.well-known/carddav, /.well-known/caldav +# needs some work as nginx converts urls to pretty urls +# before matching them to locations, so ingress needs to +# take that into consideration. +nginx-config: + enabled: true + data: + nginx.conf: | + worker_processes auto; + + error_log /var/log/nginx/error.log warn; + # Set to /tmp so it can run as non-root + pid /tmp/nginx.pid; + + events { + worker_connections 1024; + } + + http { + # Set to /tmp so it can run as non-root + client_body_temp_path /tmp/nginx/client_temp; + proxy_temp_path /tmp/nginx/proxy_temp_path; + fastcgi_temp_path /tmp/nginx/fastcgi_temp; + uwsgi_temp_path /tmp/nginx/uwsgi_temp; + scgi_temp_path /tmp/nginx/scgi_temp; + + include /etc/nginx/mime.types; + default_type application/octet-stream; + + log_format main '$remote_addr - $remote_user [$time_local] "$request" ' + '$status $body_bytes_sent "$http_referer" ' + '"$http_user_agent" "$http_x_forwarded_for"'; + + access_log /var/log/nginx/access.log main; + + sendfile on; + #tcp_nopush on; + + # Prevent nginx HTTP Server Detection + server_tokens off; + + keepalive_timeout 65; + + #gzip on; + + upstream php-handler { + server {{ printf "%v-nextcloud" $fullname }}:{{ .Values.service.nextcloud.ports.nextcloud.targetPort }}; + } + + server { + listen {{ .Values.service.main.ports.main.port }}; + absolute_redirect off; + + {{- if .Values.nextcloud.notify_push.enabled }} + # Forward Notify_Push "High Performance Backend" to it's own container + location ^~ /push/ { + # The trailing "/" is important! + proxy_pass http://{{ printf "%v-notify" $fullname }}:{{ .Values.service.notify.ports.notify.targetPort }}/; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "Upgrade"; + proxy_set_header Host $host; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + } + {{- end }} + + # HSTS settings + # WARNING: Only add the preload option once you read about + # the consequences in https://hstspreload.org/. This option + # will add the domain to a hardcoded list that is shipped + # in all major browsers and getting removed from this list + # could take several months. + #add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;" always; + + # Set max upload size + client_max_body_size {{ .Values.nextcloud.php.upload_limit | default "512M" }}; + fastcgi_buffers 64 4K; + + # Enable gzip but do not remove ETag headers + gzip on; + gzip_vary on; + gzip_comp_level 4; + gzip_min_length 256; + gzip_proxied expired no-cache no-store private no_last_modified no_etag auth; + gzip_types application/atom+xml text/javascript application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/wasm application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy; + + # Pagespeed is not supported by Nextcloud, so if your server is built + # with the `ngx_pagespeed` module, uncomment this line to disable it. + #pagespeed off; + + include mime.types; + types { + text/javascript js mjs; + } + + # HTTP response headers borrowed from Nextcloud `.htaccess` + add_header Referrer-Policy "no-referrer" always; + add_header X-Content-Type-Options "nosniff" always; + add_header X-Download-Options "noopen" always; + add_header X-Frame-Options "SAMEORIGIN" always; + add_header X-Permitted-Cross-Domain-Policies "none" always; + add_header X-Robots-Tag "noindex, nofollow" always; + add_header X-XSS-Protection "1; mode=block" always; + + # Remove X-Powered-By, which is an information leak + fastcgi_hide_header X-Powered-By; + + # Path to the root of your installation + root {{ .Values.persistence.html.targetSelector.nginx.nginx.mountPath }}; + + # Specify how to handle directories -- specifying `/index.php$request_uri` + # here as the fallback means that Nginx always exhibits the desired behaviour + # when a client requests a path that corresponds to a directory that exists + # on the server. In particular, if that directory contains an index.php file, + # that file is correctly served; if it doesn't, then the request is passed to + # the front-end controller. This consistent behaviour means that we don't need + # to specify custom rules for certain paths (e.g. images and other assets, + # `/updater`, `/ocm-provider`, `/ocs-provider`), and thus + # `try_files $uri $uri/ /index.php$request_uri` + # always provides the desired behaviour. + index index.php index.html /index.php$request_uri; + + # Rule borrowed from `.htaccess` to handle Microsoft DAV clients + location = / { + if ( $http_user_agent ~ ^DavClnt ) { + return 302 /remote.php/webdav/$is_args$args; + } + } + + location = /robots.txt { + allow all; + log_not_found off; + access_log off; + } + + # Make a regex exception for `/.well-known` so that clients can still + # access it despite the existence of the regex rule + # `location ~ /(\.|autotest|...)` which would otherwise handle requests + # for `/.well-known`. + location ^~ /.well-known { + # The rules in this block are an adaptation of the rules + # in `.htaccess` that concern `/.well-known`. + + location = /.well-known/carddav { return 301 /remote.php/dav/; } + location = /.well-known/caldav { return 301 /remote.php/dav/; } + + location /.well-known/acme-challenge { try_files $uri $uri/ =404; } + location /.well-known/pki-validation { try_files $uri $uri/ =404; } + + # Let Nextcloud's API for `/.well-known` URIs handle all other + # requests by passing them to the front-end controller. + return 301 /index.php$request_uri; + } + + # Rules borrowed from `.htaccess` to hide certain paths from clients + location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/) { return 404; } + location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) { return 404; } + + # Ensure this block, which passes PHP files to the PHP process, is above the blocks + # which handle static assets (as seen below). If this block is not declared first, + # then Nginx will encounter an infinite rewriting loop when it prepends `/index.php` + # to the URI, resulting in a HTTP 500 error response. + location ~ \.php(?:$|/) { + # Required for legacy support + rewrite ^/(?!index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|oc[ms]-provider\/.+|.+\/richdocumentscode\/proxy) /index.php$request_uri; + + fastcgi_split_path_info ^(.+?\.php)(/.*)$; + set $path_info $fastcgi_path_info; + + try_files $fastcgi_script_name =404; + + include fastcgi_params; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + fastcgi_param PATH_INFO $path_info; + #fastcgi_param HTTPS on; + + fastcgi_param modHeadersAvailable true; # Avoid sending the security headers twice + fastcgi_param front_controller_active true; # Enable pretty urls + fastcgi_pass php-handler; + + fastcgi_intercept_errors on; + fastcgi_request_buffering off; + proxy_send_timeout 3600s; + proxy_read_timeout 3600s; + fastcgi_send_timeout 3600s; + fastcgi_read_timeout 3600s; + } + + location ~ \.(?:css|js|svg|gif)$ { + try_files $uri /index.php$request_uri; + expires 6M; # Cache-Control policy borrowed from `.htaccess` + access_log off; # Optional: Don't log access to assets + } + + location ~ \.woff2?$ { + try_files $uri /index.php$request_uri; + expires 7d; # Cache-Control policy borrowed from `.htaccess` + access_log off; # Optional: Don't log access to assets + } + + # Rule borrowed from `.htaccess` + location /remote { + return 301 /remote.php$request_uri; + } + + location / { + try_files $uri $uri/ /index.php$request_uri; + } + } + } +{{- end -}} diff --git a/stable/nextcloud/28.1.22/templates/_cronjobs.tpl b/stable/nextcloud/28.1.22/templates/_cronjobs.tpl new file mode 100644 index 00000000000..0fa050dba68 --- /dev/null +++ b/stable/nextcloud/28.1.22/templates/_cronjobs.tpl @@ -0,0 +1,34 @@ +{{- define "nextcloud.cronjobs" -}} +{{- range $cj := .Values.cronjobs }} + {{- $name := $cj.name | required "Nextcloud - Expected non-empty name in cronjob" -}} + {{- $schedule := $cj.schedule | required "Nextcloud - Expected non-empty schedule in cronjob" }} + +{{ $name }}: + enabled: {{ $cj.enabled | quote }} + type: CronJob + schedule: {{ $schedule | quote }} + podSpec: + restartPolicy: Never + containers: + {{ $name }}: + enabled: true + primary: true + imageSelector: image + command: + - /bin/bash + - -c + - | + {{- range $cj.cmd }} + {{- . | nindent 12 }} + {{- else -}} + {{- fail "Nextcloud - Expected non-empty cmd in cronjob" -}} + {{- end }} + probes: + liveness: + enabled: false + readiness: + enabled: false + startup: + enabled: false +{{- end }} +{{- end -}} diff --git a/stable/nextcloud/28.1.22/templates/_ingressInjector.tpl b/stable/nextcloud/28.1.22/templates/_ingressInjector.tpl new file mode 100644 index 00000000000..f99f5bd5047 --- /dev/null +++ b/stable/nextcloud/28.1.22/templates/_ingressInjector.tpl @@ -0,0 +1,23 @@ +{{- define "nextcloud.ingressInjector" -}} + {{- if .Values.ingress.main.enabled -}} + {{- $injectPaths := list -}} + {{- if .Values.nextcloud.collabora.enabled -}} + {{- $injectPaths = mustAppend $injectPaths (include "nextcloud.collabora.ingress" $ | fromYaml) -}} + {{- end -}} + {{/* Append more paths here if needed */}} + + {{- range $host := .Values.ingress.main.hosts -}} + {{- $paths := $host.paths -}} + {{- $paths = concat $paths $injectPaths -}} + {{- $_ := set $host "paths" $paths -}} + {{- end -}} + {{- end -}} +{{- end -}} + +{{- define "nextcloud.collabora.ingress" -}} +path: /collabora/ +pathType: Prefix +overrideService: + name: collabora + port: {{ .Values.service.collabora.ports.collabora.port }} +{{- end -}} diff --git a/stable/nextcloud/28.1.22/templates/_initPerms.tpl b/stable/nextcloud/28.1.22/templates/_initPerms.tpl new file mode 100644 index 00000000000..ed94790ad93 --- /dev/null +++ b/stable/nextcloud/28.1.22/templates/_initPerms.tpl @@ -0,0 +1,29 @@ +{{- define "nextcloud.init.perms" -}} +{{- $uid := .Values.securityContext.container.runAsUser -}} +{{- $gid := .Values.securityContext.container.runAsGroup -}} +{{- $path := .Values.persistence.data.targetSelector.main.main.mountPath }} +enabled: true +type: install +imageSelector: alpineImage +securityContext: + runAsUser: 0 + runAsGroup: 0 + runAsNonRoot: false + capabilities: + disableS6Caps: true + add: + - DAC_OVERRIDE + - FOWNER + - CHOWN +command: /bin/sh +args: + - -c + - | + echo "Setting permissions to 700 on data directory [{{ $path }}] ..." + chmod 770 {{ $path }} | echo "Failed to set permissions on data directory [{{ $path }}]" + + echo "Setting ownership to {{ $uid }}:{{ $gid }} on data directory [{{ $path }}] ..." + chown {{ $uid }}:{{ $gid }} {{ $path }} | echo "Failed to set ownership on data directory [{{ $path }}]" + + echo "Finished." +{{- end -}} diff --git a/stable/nextcloud/28.1.22/templates/_validation.tpl b/stable/nextcloud/28.1.22/templates/_validation.tpl new file mode 100644 index 00000000000..5650c0f63fe --- /dev/null +++ b/stable/nextcloud/28.1.22/templates/_validation.tpl @@ -0,0 +1,42 @@ +{{- define "nextcloud.validation" -}} + + {{- if not (mustRegexMatch "^[0-9]+(M|G){1}$" .Values.nextcloud.php.memory_limit) -}} + {{- fail (printf "Nextcloud - Expected Memory Limit to be in format [1M, 1G] but got [%v]" .Values.nextcloud.php.memory_limit) -}} + {{- end -}} + + {{- if not (mustRegexMatch "^[0-9]+(M|G){1}$" .Values.nextcloud.php.upload_limit) -}} + {{- fail (printf "Nextcloud - Expected Memory Limit to be in format [1M, 1G] but got [%v]" .Values.nextcloud.php.upload_limit) -}} + {{- end -}} + + {{- if not (deepEqual .Values.nextcloud.previews.providers (uniq .Values.nextcloud.previews.providers)) -}} + {{- fail (printf "Nextcloud - Expected preview providers to be unique but got [%v]" .Values.nextcloud.previews.providers) -}} + {{- end -}} + + {{- if and .Values.nextcloud.collabora.enabled .Values.nextcloud.onlyoffice.enabled -}} + {{- fail "Nextcloud - Expected only one of [Collabora, OnlyOffice] to be enabled" -}} + {{- end -}} + + {{- if contains "$" .Values.nextcloud.collabora.password -}} + {{- fail "Nextcloud - Collabora [Password] cannot contain [$]" -}} + {{- end -}} + + {{- if .Values.nextcloud.collabora.enabled -}} + {{- if lt (len .Values.nextcloud.collabora.password) 8 -}} + {{- fail "Nextcloud - Collabora [Password] must be at least 8 characters" -}} + {{- end -}} + + {{- $collaboraUIModes := (list "default" "compact" "tabbed") -}} + {{- if not (mustHas .Values.nextcloud.collabora.interface_mode $collaboraUIModes) -}} + {{- fail (printf "Nextcloud - Expected [Interface Mode] in Collabora to be one of [%v], but got [%v]" (join "," $collaboraUIModes) .Values.nextcloud.collabora.interface_mode) -}} + {{- end -}} + + {{- if not .Values.nextcloud.collabora.dictionaries -}} + {{- fail "Nextcloud - Expected non-empty Collabora [Dictionaries]" -}} + {{- end -}} + + {{- if not (deepEqual .Values.nextcloud.collabora.dictionaries (uniq .Values.nextcloud.collabora.dictionaries)) -}} + {{- fail "Nextcloud - Collabora [Dictionaries] must be unique" -}} + {{- end -}} + {{- end -}} + +{{- end -}} diff --git a/stable/nextcloud/28.1.22/templates/_waitNextcloud.tpl b/stable/nextcloud/28.1.22/templates/_waitNextcloud.tpl new file mode 100644 index 00000000000..24946d640e8 --- /dev/null +++ b/stable/nextcloud/28.1.22/templates/_waitNextcloud.tpl @@ -0,0 +1,25 @@ +{{- define "nextcloud.wait.nextcloud" -}} +{{- $fullname := (include "tc.v1.common.lib.chart.names.fullname" $) -}} +{{- $ncURL := printf "%v-nextcloud:%v" $fullname .Values.service.nextcloud.ports.nextcloud.targetPort }} +enabled: true +type: init +imageSelector: image +securityContext: +command: /bin/sh +args: + - -c + - | + echo "Waiting Nextcloud [{{ $ncURL }}] to be ready and installed..." + until \ + REQUEST_METHOD="GET" \ + SCRIPT_NAME="status.php" \ + SCRIPT_FILENAME="status.php" \ + cgi-fcgi -bind -connect "{{ $ncURL }}" | grep -q '"installed":true'; + do + echo "Waiting Nextcloud [{{ $ncURL }}] to be ready and installed..." + sleep 3 + done + + echo "Nextcloud is ready and installed..." + echo "Starting Nginx..." +{{- end -}} diff --git a/stable/nextcloud/28.1.22/templates/common.yaml b/stable/nextcloud/28.1.22/templates/common.yaml new file mode 100644 index 00000000000..d7576a0fb57 --- /dev/null +++ b/stable/nextcloud/28.1.22/templates/common.yaml @@ -0,0 +1,92 @@ +{{- $selector := dict -}} +{{- range $name := (list "main" "nextcloud-cron" "preview-cron") -}} + {{/* creates main: {} */}} + {{- $_ := set $selector $name dict -}} + {{/* sets main: {} to main: { main: {} } */}} + {{- $_ := set (get $selector $name) $name dict -}} +{{- end -}} + +{{- range $item := .Values.persistenceList -}} + {{- $_ := set $item "targetSelector" $selector -}} +{{- end -}} + +{{/* Make sure all variables are set properly */}} +{{- include "tc.v1.common.loader.init" . -}} + +{{- include "nextcloud.validation" $ -}} + +{{/* Render configmaps for all pods */}} +{{- $configmaps := include "nextcloud.configmaps" . | fromYaml -}} +{{- if $configmaps -}} + {{- $_ := mustMergeOverwrite .Values.configmap $configmaps -}} +{{- end -}} + +{{/* Create hostAliases (resolve ingress host to Node/LB IP) */}} +{{- $hostAlias := (list (dict + "ip" .Values.nextcloud.general.accessIP + "hostnames" ( + list (include "nextcloud.accesshost" $) + ) + )) -}} + +{{/* Add [hostAliases] to nextcloud and collabora pod */}} +{{- $_ := set .Values.workload.main.podSpec "hostAliases" $hostAlias -}} +{{- $_ := set .Values.workload.collabora.podSpec "hostAliases" $hostAlias -}} + +{{/* Add [init perms] container to nextcloud */}} +{{- if not (get .Values.workload.main.podSpec "initContainers") -}} + {{- $_ := set .Values.workload.main.podSpec "initContainers" dict -}} +{{- end -}} + +{{- $initPerms := (include "nextcloud.init.perms" . | fromYaml) -}} +{{- $_ := set .Values.workload.main.podSpec.initContainers "init-perms" $initPerms -}} + +{{/* Add [wait nextcloud] container to nginx */}} +{{- if not (get .Values.workload.nginx.podSpec "initContainers") -}} + {{- $_ := set .Values.workload.nginx.podSpec "initContainers" dict -}} +{{- end -}} +{{- $waitNextcloud := (include "nextcloud.wait.nextcloud" . | fromYaml) -}} +{{- $_ := set .Values.workload.nginx.podSpec.initContainers "wait-nextcloud" $waitNextcloud -}} + +{{/* Disable [notify push] if requested */}} +{{- if not .Values.nextcloud.notify_push.enabled -}} + {{- $_ := set .Values.workload.notify "enabled" false -}} + {{- $_ := set .Values.service.notify "enabled" false -}} +{{- else -}} + {{/* Add [wait nextcloud] container to notify push */}} + {{- if not (get .Values.workload.notify.podSpec "initContainers") -}} + {{- $_ := set .Values.workload.notify.podSpec "initContainers" dict -}} + {{- end -}} + {{- $waitNextcloud := (include "nextcloud.wait.nextcloud" . | fromYaml) -}} + {{- $_ := set .Values.workload.notify.podSpec.initContainers "wait-nextcloud" $waitNextcloud -}} +{{- end -}} + +{{/* Disable [clamav] if requested */}} +{{- if not .Values.nextcloud.clamav.enabled -}} + {{- $_ := set .Values.workload.clamav "enabled" false -}} + {{- $_ := set .Values.service.clamav "enabled" false -}} +{{- end -}} + +{{/* Disable [previews] if requested */}} +{{- if or (not .Values.nextcloud.previews.imaginary) (not .Values.nextcloud.previews.enabled) -}} + {{- $_ := set .Values.workload.imaginary "enabled" false -}} + {{- $_ := set .Values.service.imaginary "enabled" false -}} +{{- end -}} + +{{/* Disable [collabora] if requested */}} +{{- if not .Values.nextcloud.collabora.enabled -}} + {{- $_ := set .Values.workload.collabora "enabled" false -}} + {{- $_ := set .Values.service.collabora "enabled" false -}} +{{- end -}} + +{{/* Create [cronjobs] defined */}} +{{- $cronjobs := include "nextcloud.cronjobs" . | fromYaml -}} +{{- if $cronjobs -}} + {{- $_ := mustMergeOverwrite .Values.workload $cronjobs -}} +{{- end -}} + +{{/* TODO: Do we have to cleanup when something (eg Collabora) is disabled? */}} +{{- include "nextcloud.ingressInjector" $ -}} + +{{/* Render the templates */}} +{{- include "tc.v1.common.loader.apply" . -}} diff --git a/stable/nextcloud/28.1.22/values.yaml b/stable/nextcloud/28.1.22/values.yaml new file mode 100644 index 00000000000..e69de29bb2d