From 95b199fa46ed4e8da863dc813ef3491a218bd4a3 Mon Sep 17 00:00:00 2001 From: TrueCharts-Bot Date: Wed, 20 Dec 2023 15:32:19 +0000 Subject: [PATCH] Commit new Chart releases for TrueCharts Signed-off-by: TrueCharts-Bot --- stable/authentik/16.0.0/CHANGELOG.md | 99 + stable/authentik/16.0.0/Chart.yaml | 44 + stable/authentik/16.0.0/LICENSE | 106 + stable/authentik/16.0.0/README.md | 27 + stable/authentik/16.0.0/app-changelog.md | 4 + stable/authentik/16.0.0/app-readme.md | 8 + .../authentik/16.0.0/charts/common-16.2.5.tgz | Bin 0 -> 95720 bytes .../authentik/16.0.0/charts/redis-8.0.47.tgz | Bin 0 -> 80373 bytes stable/authentik/16.0.0/ix_values.yaml | 498 ++ stable/authentik/16.0.0/questions.yaml | 4590 +++++++++++++++++ stable/authentik/16.0.0/templates/NOTES.txt | 1 + stable/authentik/16.0.0/templates/_config.tpl | 128 + stable/authentik/16.0.0/templates/_secret.tpl | 74 + .../16.0.0/templates/_validation.tpl | 23 + .../16.0.0/templates/_waitAuthentik.tpl | 20 + stable/authentik/16.0.0/templates/common.yaml | 97 + stable/authentik/16.0.0/values.yaml | 0 stable/jellyfin/16.0.0/CHANGELOG.md | 99 + stable/jellyfin/16.0.0/Chart.yaml | 38 + stable/jellyfin/16.0.0/README.md | 27 + stable/jellyfin/16.0.0/app-changelog.md | 4 + stable/jellyfin/16.0.0/app-readme.md | 8 + .../jellyfin/16.0.0/charts/common-16.2.5.tgz | Bin 0 -> 95720 bytes stable/jellyfin/16.0.0/ix_values.yaml | 98 + stable/jellyfin/16.0.0/questions.yaml | 2924 +++++++++++ stable/jellyfin/16.0.0/templates/NOTES.txt | 1 + stable/jellyfin/16.0.0/templates/common.yaml | 8 + stable/jellyfin/16.0.0/values.yaml | 0 stable/nextcloud/24.0.0/CHANGELOG.md | 99 + stable/nextcloud/24.0.0/Chart.yaml | 50 + stable/nextcloud/24.0.0/LICENSE | 106 + stable/nextcloud/24.0.0/README.md | 27 + stable/nextcloud/24.0.0/app-changelog.md | 4 + stable/nextcloud/24.0.0/app-readme.md | 8 + .../nextcloud/24.0.0/charts/common-16.2.5.tgz | Bin 0 -> 95720 bytes .../nextcloud/24.0.0/charts/redis-6.0.66.tgz | Bin 0 -> 137361 bytes stable/nextcloud/24.0.0/ix_values.yaml | 512 ++ stable/nextcloud/24.0.0/questions.yaml | 3778 ++++++++++++++ stable/nextcloud/24.0.0/templates/NOTES.txt | 1 + .../nextcloud/24.0.0/templates/_configmap.tpl | 443 ++ .../nextcloud/24.0.0/templates/_cronjobs.tpl | 34 + .../24.0.0/templates/_ingressInjector.tpl | 24 + .../nextcloud/24.0.0/templates/_initPerms.tpl | 29 + .../24.0.0/templates/_validation.tpl | 42 + .../24.0.0/templates/_waitNextcloud.tpl | 25 + stable/nextcloud/24.0.0/templates/common.yaml | 80 + stable/nextcloud/24.0.0/values.yaml | 0 47 files changed, 14188 insertions(+) create mode 100644 stable/authentik/16.0.0/CHANGELOG.md create mode 100644 stable/authentik/16.0.0/Chart.yaml create mode 100644 stable/authentik/16.0.0/LICENSE create mode 100644 stable/authentik/16.0.0/README.md create mode 100644 stable/authentik/16.0.0/app-changelog.md create mode 100644 stable/authentik/16.0.0/app-readme.md create mode 100644 stable/authentik/16.0.0/charts/common-16.2.5.tgz create mode 100644 stable/authentik/16.0.0/charts/redis-8.0.47.tgz create mode 100644 stable/authentik/16.0.0/ix_values.yaml create mode 100644 stable/authentik/16.0.0/questions.yaml create mode 100644 stable/authentik/16.0.0/templates/NOTES.txt create mode 100644 stable/authentik/16.0.0/templates/_config.tpl create mode 100644 stable/authentik/16.0.0/templates/_secret.tpl create mode 100644 stable/authentik/16.0.0/templates/_validation.tpl create mode 100644 stable/authentik/16.0.0/templates/_waitAuthentik.tpl create mode 100644 stable/authentik/16.0.0/templates/common.yaml create mode 100644 stable/authentik/16.0.0/values.yaml create mode 100644 stable/jellyfin/16.0.0/CHANGELOG.md create mode 100644 stable/jellyfin/16.0.0/Chart.yaml create mode 100644 stable/jellyfin/16.0.0/README.md create mode 100644 stable/jellyfin/16.0.0/app-changelog.md create mode 100644 stable/jellyfin/16.0.0/app-readme.md create mode 100644 stable/jellyfin/16.0.0/charts/common-16.2.5.tgz create mode 100644 stable/jellyfin/16.0.0/ix_values.yaml create mode 100644 stable/jellyfin/16.0.0/questions.yaml create mode 100644 stable/jellyfin/16.0.0/templates/NOTES.txt create mode 100644 stable/jellyfin/16.0.0/templates/common.yaml create mode 100644 stable/jellyfin/16.0.0/values.yaml create mode 100644 stable/nextcloud/24.0.0/CHANGELOG.md create mode 100644 stable/nextcloud/24.0.0/Chart.yaml create mode 100644 stable/nextcloud/24.0.0/LICENSE create mode 100644 stable/nextcloud/24.0.0/README.md create mode 100644 stable/nextcloud/24.0.0/app-changelog.md create mode 100644 stable/nextcloud/24.0.0/app-readme.md create mode 100644 stable/nextcloud/24.0.0/charts/common-16.2.5.tgz create mode 100644 stable/nextcloud/24.0.0/charts/redis-6.0.66.tgz create mode 100644 stable/nextcloud/24.0.0/ix_values.yaml create mode 100644 stable/nextcloud/24.0.0/questions.yaml create mode 100644 stable/nextcloud/24.0.0/templates/NOTES.txt create mode 100644 stable/nextcloud/24.0.0/templates/_configmap.tpl create mode 100644 stable/nextcloud/24.0.0/templates/_cronjobs.tpl create mode 100644 stable/nextcloud/24.0.0/templates/_ingressInjector.tpl create mode 100644 stable/nextcloud/24.0.0/templates/_initPerms.tpl create mode 100644 stable/nextcloud/24.0.0/templates/_validation.tpl create mode 100644 stable/nextcloud/24.0.0/templates/_waitNextcloud.tpl create mode 100644 stable/nextcloud/24.0.0/templates/common.yaml create mode 100644 stable/nextcloud/24.0.0/values.yaml diff --git a/stable/authentik/16.0.0/CHANGELOG.md b/stable/authentik/16.0.0/CHANGELOG.md new file mode 100644 index 00000000000..dace5e1b577 --- /dev/null +++ b/stable/authentik/16.0.0/CHANGELOG.md @@ -0,0 +1,99 @@ +**Important:** +*for the complete changelog, please refer to the website* + + + + +## [authentik-16.0.0](https://github.com/truecharts/charts/compare/authentik-15.0.27...authentik-16.0.0) (2023-12-20) + + + + +## [authentik-15.0.27](https://github.com/truecharts/charts/compare/authentik-15.0.26...authentik-15.0.27) (2023-12-20) + +### Chore + +- Bump everything to force min/max scale version update + + + + +## [authentik-15.0.26](https://github.com/truecharts/charts/compare/authentik-15.0.25...authentik-15.0.26) (2023-12-16) + +### Chore + +- update helm general non-major ([#14784](https://github.com/truecharts/charts/issues/14784)) + + + + +## [authentik-15.0.26](https://github.com/truecharts/charts/compare/authentik-15.0.25...authentik-15.0.26) (2023-12-16) + +### Chore + +- update helm general non-major ([#14784](https://github.com/truecharts/charts/issues/14784)) + + + + +## [authentik-15.0.25](https://github.com/truecharts/charts/compare/authentik-15.0.24...authentik-15.0.25) (2023-12-03) + +### Chore + +- bump everything to ensure catalog has latest versions + - fix annotations again + - update annotations + - cleanup chart.yaml and add min-max scale version + + + + + + + +## [authentik-15.0.24](https://github.com/truecharts/charts/compare/authentik-15.0.20...authentik-15.0.24) (2023-11-24) + +### Chore + +- update authentik to v2023.10.4[@e16028e](https://github.com/e16028e) (patch) ([#15260](https://github.com/truecharts/charts/issues/15260)) + + + + +## [authentik-15.0.20](https://github.com/truecharts/charts/compare/authentik-15.0.19...authentik-15.0.20) (2023-11-18) + + + + +## [authentik-15.0.19](https://github.com/truecharts/charts/compare/authentik-15.0.18...authentik-15.0.19) (2023-11-17) + + + + +## [authentik-15.0.18](https://github.com/truecharts/charts/compare/authentik-15.0.17...authentik-15.0.18) (2023-11-10) + +### Chore + +- update container image tccr.io/truecharts/authentik to v2023.10.3 ([#14514](https://github.com/truecharts/charts/issues/14514)) + + + + +## [authentik-15.0.17](https://github.com/truecharts/charts/compare/authentik-15.0.16...authentik-15.0.17) (2023-11-09) + +### Chore + +- update authentik to v2023.10.3 (patch) ([#14495](https://github.com/truecharts/charts/issues/14495)) + + + + +## [authentik-15.0.16](https://github.com/truecharts/charts/compare/authentik-15.0.15...authentik-15.0.16) (2023-11-09) + +### Chore + +- update helm general non-major ([#14467](https://github.com/truecharts/charts/issues/14467)) + + + + diff --git a/stable/authentik/16.0.0/Chart.yaml b/stable/authentik/16.0.0/Chart.yaml new file mode 100644 index 00000000000..96c04122739 --- /dev/null +++ b/stable/authentik/16.0.0/Chart.yaml @@ -0,0 +1,44 @@ +kubeVersion: ">=1.24.0-0" +apiVersion: v2 +name: authentik +version: 16.0.0 +appVersion: 2023.10.4 +description: Authentik is an open-source Identity Provider focused on flexibility and versatility. +home: https://truecharts.org/charts/stable/authentik +icon: https://truecharts.org/img/hotlink-ok/chart-icons/authentik.png +deprecated: false +sources: + - https://ghcr.io/goauthentik/radius + - https://goauthentik.io/docs/ + - https://github.com/goauthentik/authentik + - https://github.com/truecharts/charts/tree/master/charts/stable/authentik +maintainers: + - name: TrueCharts + email: info@truecharts.org + url: https://truecharts.org +keywords: + - authentik +dependencies: + - name: common + version: 16.2.5 + repository: https://library-charts.truecharts.org + condition: "" + alias: "" + tags: [] + import-values: [] + - name: redis + version: 8.0.47 + repository: https://deps.truecharts.org + condition: redis.enabled + alias: "" + tags: [] + import-values: [] +annotations: + max_scale_version: 23.10.2 + min_scale_version: 23.10.0 + truecharts.org/SCALE-support: "true" + truecharts.org/category: authentication + truecharts.org/max_helm_version: "3.13" + truecharts.org/min_helm_version: "3.12" + truecharts.org/train: stable +type: application diff --git a/stable/authentik/16.0.0/LICENSE b/stable/authentik/16.0.0/LICENSE new file mode 100644 index 00000000000..33a8cbb23f0 --- /dev/null +++ b/stable/authentik/16.0.0/LICENSE @@ -0,0 +1,106 @@ +Business Source License 1.1 + +Parameters + +Licensor: The TrueCharts Project, it's owner and it's contributors +Licensed Work: The TrueCharts "Blocky" Helm Chart +Additional Use Grant: You may use the licensed work in production, as long + as it is directly sourced from a TrueCharts provided + official repository, catalog or source. You may also make private + modification to the directly sourced licenced work, + when used in production. + + The following cases are, due to their nature, also + defined as 'production use' and explicitly prohibited: + - Bundling, including or displaying the licensed work + with(in) another work intended for production use, + with the apparent intend of facilitating and/or + promoting production use by third parties in + violation of this license. + +Change Date: 2050-01-01 + +Change License: 3-clause BSD license + +For information about alternative licensing arrangements for the Software, +please contact: legal@truecharts.org + +Notice + +The Business Source License (this document, or the “License”) is not an Open +Source license. However, the Licensed Work will eventually be made available +under an Open Source License, as stated in this License. + +License text copyright (c) 2017 MariaDB Corporation Ab, All Rights Reserved. +“Business Source License” is a trademark of MariaDB Corporation Ab. + +----------------------------------------------------------------------------- + +Business Source License 1.1 + +Terms + +The Licensor hereby grants you the right to copy, modify, create derivative +works, redistribute, and make non-production use of the Licensed Work. The +Licensor may make an Additional Use Grant, above, permitting limited +production use. + +Effective on the Change Date, or the fourth anniversary of the first publicly +available distribution of a specific version of the Licensed Work under this +License, whichever comes first, the Licensor hereby grants you rights under +the terms of the Change License, and the rights granted in the paragraph +above terminate. + +If your use of the Licensed Work does not comply with the requirements +currently in effect as described in this License, you must purchase a +commercial license from the Licensor, its affiliated entities, or authorized +resellers, or you must refrain from using the Licensed Work. + +All copies of the original and modified Licensed Work, and derivative works +of the Licensed Work, are subject to this License. This License applies +separately for each version of the Licensed Work and the Change Date may vary +for each version of the Licensed Work released by Licensor. + +You must conspicuously display this License on each original or modified copy +of the Licensed Work. If you receive the Licensed Work in original or +modified form from a third party, the terms and conditions set forth in this +License apply to your use of that work. + +Any use of the Licensed Work in violation of this License will automatically +terminate your rights under this License for the current and all other +versions of the Licensed Work. + +This License does not grant you any right in any trademark or logo of +Licensor or its affiliates (provided that you may use a trademark or logo of +Licensor as expressly required by this License). + +TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON +AN “AS IS” BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS, +EXPRESS OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND +TITLE. + +MariaDB hereby grants you permission to use this License’s text to license +your works, and to refer to it using the trademark “Business Source License”, +as long as you comply with the Covenants of Licensor below. + +Covenants of Licensor + +In consideration of the right to use this License’s text and the “Business +Source License” name and trademark, Licensor covenants to MariaDB, and to all +other recipients of the licensed work to be provided by Licensor: + +1. To specify as the Change License the GPL Version 2.0 or any later version, + or a license that is compatible with GPL Version 2.0 or a later version, + where “compatible” means that software provided under the Change License can + be included in a program with software provided under GPL Version 2.0 or a + later version. Licensor may specify additional Change Licenses without + limitation. + +2. To either: (a) specify an additional grant of rights to use that does not + impose any additional restriction on the right granted in this License, as + the Additional Use Grant; or (b) insert the text “None”. + +3. To specify a Change Date. + +4. Not to modify this License in any other way. diff --git a/stable/authentik/16.0.0/README.md b/stable/authentik/16.0.0/README.md new file mode 100644 index 00000000000..97da9b371ce --- /dev/null +++ b/stable/authentik/16.0.0/README.md @@ -0,0 +1,27 @@ +# README + +## General Info + +TrueCharts can be installed as both *normal* Helm Charts or as Apps on TrueNAS SCALE. +However only installations using the TrueNAS SCALE Apps system are supported. + +For more information about this App, please check the docs on the TrueCharts [website](https://truecharts.org/charts/stable/authentik) + +**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/authentik/16.0.0/app-changelog.md b/stable/authentik/16.0.0/app-changelog.md new file mode 100644 index 00000000000..a5965204107 --- /dev/null +++ b/stable/authentik/16.0.0/app-changelog.md @@ -0,0 +1,4 @@ + + +## [authentik-16.0.0](https://github.com/truecharts/charts/compare/authentik-15.0.27...authentik-16.0.0) (2023-12-20) + diff --git a/stable/authentik/16.0.0/app-readme.md b/stable/authentik/16.0.0/app-readme.md new file mode 100644 index 00000000000..fe4c2e580a0 --- /dev/null +++ b/stable/authentik/16.0.0/app-readme.md @@ -0,0 +1,8 @@ +Authentik is an open-source Identity Provider focused on flexibility and versatility. + +This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/charts/stable/authentik](https://truecharts.org/charts/stable/authentik) + +--- + +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/authentik/16.0.0/charts/common-16.2.5.tgz b/stable/authentik/16.0.0/charts/common-16.2.5.tgz new file mode 100644 index 0000000000000000000000000000000000000000..8a24314324126bd3a79a3fde96b8510923a93ccd GIT binary patch literal 95720 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

n!-60` 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 T!1VtI00960ciOJl03Hkg|7t>L literal 0 HcmV?d00001 diff --git a/stable/authentik/16.0.0/charts/redis-8.0.47.tgz b/stable/authentik/16.0.0/charts/redis-8.0.47.tgz new file mode 100644 index 0000000000000000000000000000000000000000..36ea025ba94331dc60a6dd0fd1c364a4e0ff9dda GIT binary patch literal 80373 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 + Only read on initial install, changing this will have no effect. + schema: + type: string + required: true + immutable: true + default: "" + - variable: password + label: Password + description: | + Set the default password for the akadmin user.
+ Only read on initial install, changing this will have no effect. + schema: + type: string + private: true + required: true + immutable: true + default: "" + - variable: bootstrapToken + label: (Optional) Bootstrap Token + description: | + Set the bootstrap token for the authentik server.
+ Only read on initial install, changing this will have no effect.
+ Only set this token if you plan to use the API right after installation. + schema: + type: string + private: true + immutable: true + default: "" + - variable: general + label: General + schema: + additional_attrs: true + type: dict + attrs: + - variable: disableUpdateCheck + label: Disable Update Check + description: Disable the inbuilt update-checker + schema: + type: boolean + default: false + - variable: disableStartupAnalytics + label: Disable Startup Analytics + description: Disable startup analytics + schema: + type: boolean + default: true + - variable: allowUserChangeName + label: Allow User Change Name + description: Enable the ability for users to change their Name + schema: + type: boolean + default: true + - variable: allowUserChangeEmail + label: Allow User Change Mail + description: Enable the ability for users to change their Email address + schema: + type: boolean + default: true + - variable: allowUserChangeUsername + label: Allow User Change Username + description: Enable the ability for users to change their Usernames + schema: + type: boolean + default: true + - variable: gdprCompliance + label: GDPR Compliance + description: When enabled, all the events caused by a user will be deleted upon the user's deletion + schema: + type: boolean + default: true + - variable: overwriteDefaultBlueprints + label: Overwrite Default Blueprints + description: | + When enabled, all the default blueprints will be overwritten
+ True: mountPath: /blueprints
+ False: mountPath: /blueprints/custom + schema: + type: boolean + default: false + - variable: tokenLength + label: Token Length + description: Configure the length of generated tokens + schema: + type: int + min: 60 + default: 128 + - variable: impersonation + label: Impersonation + description: Globally enable / disable impersonation + schema: + type: boolean + default: true + - variable: avatars + label: Avatars + description: Configure how authentik should show avatars for users + schema: + type: list + default: + - gravatar + - initials + items: + - variable: avatar + label: Avatar + description: Avatar type + schema: + type: string + default: "" + required: true + - variable: footerLinks + label: Footer Links + description: This option configures the footer links on the flow executor pages + schema: + type: list + default: + - name: Authentik + href: https://goauthentik.io + items: + - variable: footerLink + label: Footer Link + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: Name of the link + schema: + type: string + default: "" + required: true + - variable: href + label: Href + description: URL of the link + schema: + type: string + default: "" + required: true + - variable: email + label: Email + schema: + additional_attrs: true + type: dict + attrs: + - variable: host + label: Mail Server Host + description: Sets host of mail server + schema: + type: string + default: "" + - variable: port + label: Mail Server Port + description: Sets port of mail server + schema: + type: int + default: 587 + - variable: username + label: Username + description: Sets username of mail server + schema: + type: string + default: "" + - variable: password + label: Password + description: Sets password of mail server + schema: + type: string + private: true + default: "" + - variable: useTLS + label: Use TLS for authentication + description: Sets TLS for mail server authentication + schema: + type: boolean + default: true + - variable: useSSL + label: Use SSL for authentication + description: Sets SSL for mail server authentication + schema: + type: boolean + default: false + - variable: timeout + label: Timeout of authentication + description: Sets timeout for mail server authentication + schema: + type: int + default: 10 + - variable: from + label: From Address + description: Email address authentik will send from + schema: + type: string + default: "" + - variable: ldap + label: LDAP + schema: + additional_attrs: true + type: dict + attrs: + - variable: tls_ciphers + label: TLS Ciphers + description: | + Allows configuration of TLS Ciphers for LDAP connections used by LDAP sources.
+ Setting applies to all sources + schema: + type: string + default: "null" + - variable: taskTimeoutHours + label: Task Timeout Hours + description: Timeout in hours for LDAP synchronization tasks + schema: + type: int + default: 2 + - variable: logging + label: Logging + schema: + additional_attrs: true + type: dict + attrs: + - variable: log_level + label: Log Level + description: Log level for the server and worker containers + schema: + type: string + default: info + enum: + - value: trace + description: trace + - value: debug + description: debug + - value: info + description: info + - value: warning + description: warning + - value: error + description: error + - variable: error_reporting + label: Error Reporting + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Reporting + description: Enables error reporting + schema: + type: boolean + default: false + show_subquestions_if: + subquestions: + - variable: sendPII + label: Send Personal Data + description: Whether or not to send personal data, like usernames + schema: + type: boolean + default: false + - variable: environment + label: Environment + description: The environment tag associated with all data sent to Sentry + schema: + type: string + default: customer + - variable: sentryDSN + label: Sentry DSN + description: Sets the DSN for the Sentry API endpoint. + schema: + type: string + private: true + default: "" + - variable: geoip + label: GeoIP + schema: + additional_attrs: true + type: dict + attrs: + - variable: wipeBuiltInDb + label: Wipe Built-In GeoIP DB + description: | + Wipes the built-in GeoIP database.
+ With this set to false, and disabled GeoIP container,
+ It will use the built-in database. + schema: + type: boolean + show_if: [["enabled", "=", false]] + default: false + - variable: enabled + label: Enabled + description: | + Enables and configures the GeoIP container.
+ This will deploy the GeoIP container. + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: editionID + label: Edition ID + description: | + The edition ID of the database to download.
+ Only one seems to be supported by Authentik. + schema: + type: string + default: GeoLite2-City + - variable: frequency + label: Frequency + description: The number of hours between geoipupdate runs. + schema: + type: int + min: 1 + default: 8 + - variable: accountID + label: Account ID + description: Your MaxMind account ID + schema: + type: string + private: true + required: true + default: "" + - variable: licenseKey + label: License Key + description: Your MaxMind license key + schema: + type: string + private: true + required: true + default: "" + - variable: outposts + label: Outposts + schema: + additional_attrs: true + type: dict + attrs: + - variable: proxy + label: Proxy + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + description: | + Enables and configures the Proxy container.
+ This will deploy the Proxy container. + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: token + label: Token + description: | + The token used to authenticate with the authentik server. + schema: + type: string + private: true + required: true + default: "" + - variable: radius + label: Radius + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + description: | + Enables and configures the Radius container.
+ This will deploy the Radius container. + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: token + label: Token + description: | + The token used to authenticate with the authentik server. + schema: + type: string + private: true + required: true + default: "" + - variable: ldap + label: LDAP + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + description: | + Enables and configures the LDAP container.
+ This will deploy the LDAP container. + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: token + label: Token + description: | + The token used to authenticate with the authentik server. + schema: + type: string + private: true + required: true + default: "" + - variable: TZ + label: Timezone + group: "General Settings" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: podOptions + group: "General Settings" + label: "Global Pod Options (Advanced)" + schema: + additional_attrs: true + type: dict + attrs: + - variable: expertPodOpts + label: "Expert - Pod Options" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + label: "Host Networking" + schema: + type: boolean + default: false + - variable: dnsConfig + label: "DNS Configuration" + schema: + type: dict + additional_attrs: true + attrs: + - variable: options + label: "Options" + schema: + type: list + default: [{"name": "ndots", "value": "1"}] + items: + - variable: optionsEntry + label: "Option Entry" + schema: + type: dict + additional_attrs: true + attrs: + - variable: name + label: "Name" + schema: + type: string + required: true + - variable: value + label: "Value" + schema: + type: string + - variable: nameservers + label: "Nameservers" + schema: + type: list + default: [] + items: + - variable: nsEntry + label: "Nameserver Entry" + schema: + type: string + required: true + - variable: searches + label: "Searches" + schema: + type: list + default: [] + items: + - variable: searchEntry + label: "Search Entry" + schema: + type: string + required: true + + - variable: imagePullSecretList + group: "General Settings" + label: "Image Pull Secrets" + schema: + type: list + default: [] + items: + - variable: pullsecretentry + label: "Pull Secret" + schema: + type: dict + additional_attrs: true + attrs: + - variable: registry + label: "Registry" + schema: + type: string + required: true + default: "https://index.docker.io/v1/" + - variable: username + label: "Username" + schema: + type: string + required: true + default: "" + - variable: password + label: "Password" + schema: + type: string + required: true + default: "" + - variable: email + label: "Email" + schema: + type: string + required: true + default: "" + - variable: service + group: Networking and Services + label: Configure Service(s) + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: Main Service + description: The Primary service on which the healthcheck runs, often the webUI + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the Service + schema: + type: boolean + default: true + hidden: true + - variable: type + label: Service Type + description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: LoadBalancer + enum: + - value: LoadBalancer + description: LoadBalancer (Expose Ports) + - value: ClusterIP + description: ClusterIP (Do Not Expose Ports) + - variable: loadBalancerIP + label: LoadBalancer IP + description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: ports + label: "Service's Port(s) Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: Main Service Port Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + description: This port exposes the container port on the service + schema: + type: int + default: 10229 + required: true + - variable: proxy + label: Proxy Service + description: The Proxy service. + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the Service + schema: + type: boolean + default: true + hidden: true + - variable: type + label: Service Type + description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: LoadBalancer + enum: + - value: LoadBalancer + description: LoadBalancer (Expose Ports) + - value: ClusterIP + description: ClusterIP (Do Not Expose Ports) + - variable: loadBalancerIP + label: LoadBalancer IP + description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: ports + label: "Service's Port(s) Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: http + label: HTTP Service Port Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + description: This port exposes the container port on the service + schema: + type: int + default: 10227 + required: true + - variable: https + label: HTTPS Service Port Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + description: This port exposes the container port on the service + schema: + type: int + default: 10228 + required: true + - variable: radius + label: RADIUS Service + description: The RADIUS service. + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the Service + schema: + type: boolean + default: true + hidden: true + - variable: type + label: Service Type + description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: LoadBalancer + enum: + - value: LoadBalancer + description: LoadBalancer (Expose Ports) + - value: ClusterIP + description: ClusterIP (Do Not Expose Ports) + - variable: loadBalancerIP + label: LoadBalancer IP + description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: ports + label: "Service's Port(s) Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: radius + label: RADIUS Service Port Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + description: This port exposes the container port on the service + schema: + type: int + default: 1812 + required: true + - variable: ldap + label: LDAP Service + description: The LDAP service. + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the Service + schema: + type: boolean + default: true + hidden: true + - variable: type + label: Service Type + description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: LoadBalancer + enum: + - value: LoadBalancer + description: LoadBalancer (Expose Ports) + - value: ClusterIP + description: ClusterIP (Do Not Expose Ports) + - variable: loadBalancerIP + label: LoadBalancer IP + description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: ports + label: "Service's Port(s) Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: ldap + label: LDAP Service Port Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + description: This port exposes the container port on the service + schema: + type: int + default: 389 + required: true + - variable: ldaps + label: LDAPS Service + description: The LDAPS service. + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the Service + schema: + type: boolean + default: true + hidden: true + - variable: type + label: Service Type + description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: LoadBalancer + enum: + - value: LoadBalancer + description: LoadBalancer (Expose Ports) + - value: ClusterIP + description: ClusterIP (Do Not Expose Ports) + - variable: loadBalancerIP + label: LoadBalancer IP + description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: ports + label: "Service's Port(s) Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: ldaps + label: LDAPS Service Port Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + description: This port exposes the container port on the service + schema: + type: int + default: 636 + required: true + - variable: serviceexpert + group: Networking and Services + label: Show Expert Config + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: scaleExternalInterface + description: Add External Interfaces + label: Add external Interfaces + group: Networking + schema: + type: list + items: + - variable: interfaceConfiguration + description: Interface Configuration + label: Interface Configuration + schema: + additional_attrs: true + type: dict + $ref: + - "normalize/interfaceConfiguration" + attrs: + - variable: hostInterface + description: Please Specify Host Interface + label: Host Interface + schema: + type: string + required: true + $ref: + - "definitions/interface" + - variable: ipam + description: Define how IP Address will be managed + label: IP Address Management + schema: + additional_attrs: true + type: dict + required: true + attrs: + - variable: type + description: Specify type for IPAM + label: IPAM Type + schema: + type: string + required: true + enum: + - value: dhcp + description: Use DHCP + - value: static + description: Use Static IP + - variable: staticIPConfigurations + label: Static IP Addresses + schema: + type: list + show_if: [["type", "=", "static"]] + items: + - variable: staticIP + label: Static IP + schema: + type: ipaddr + cidr: true + - variable: staticRoutes + label: Static Routes + schema: + type: list + show_if: [["type", "=", "static"]] + items: + - variable: staticRouteConfiguration + label: Static Route Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: destination + label: Destination + schema: + type: ipaddr + cidr: true + required: true + - variable: gateway + label: Gateway + schema: + type: ipaddr + cidr: false + required: true + - variable: serviceList + label: Add Manual Custom Services + group: Networking and Services + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: Custom Service + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the service + schema: + type: boolean + default: true + hidden: true + - variable: name + label: Name + schema: + type: string + default: "" + - variable: type + label: Service Type + description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: LoadBalancer + enum: + - value: LoadBalancer + description: LoadBalancer (Expose Ports) + - value: ClusterIP + description: ClusterIP (Do Not Expose Ports) + - value: Simple + description: Deprecated CHANGE THIS + - variable: loadBalancerIP + label: LoadBalancer IP + description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: advancedsvcset + label: Show Advanced Service Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + type: list + default: [] + items: + - variable: externalIP + label: External IP + schema: + type: string + - variable: ipFamilyPolicy + label: IP Family Policy + description: Specify the IP Policy + schema: + type: string + default: SingleStack + enum: + - value: SingleStack + description: SingleStack + - value: PreferDualStack + description: PreferDualStack + - value: RequireDualStack + description: RequireDualStack + - variable: ipFamilies + label: IP Families + description: (Advanced) The IP Families that should be used + schema: + type: list + default: [] + items: + - variable: ipFamily + label: IP Family + schema: + type: string + - variable: portsList + label: Additional Service Ports + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: Custom ports + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the Port + schema: + type: boolean + default: true + hidden: true + - variable: name + label: Port Name + schema: + type: string + default: "" + - variable: protocol + label: Port Type + schema: + type: string + default: tcp + enum: + - value: http + description: HTTP + - value: https + description: HTTPS + - value: tcp + description: TCP + - value: udp + description: UDP + - variable: targetPort + label: Target Port + description: This port exposes the container port on the service + schema: + type: int + required: true + - variable: port + label: Container Port + schema: + type: int + required: true + - variable: persistence + label: Integrated Persistent Storage + description: Integrated Persistent Storage + group: Storage and Persistence + schema: + additional_attrs: true + type: dict + attrs: + - variable: media + label: App Media Storage + description: Stores the Application Media. + 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: templates + label: App Templates Storage + description: Stores the Application Templates. + 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: blueprints + label: App Blueprints Storage + description: Stores the Application Blueprints. + 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: certs + label: App Certs Storage + description: Stores the Application Certs. + 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: geoip + label: App GeoIP Storage + description: Stores the Application GeoIP. + 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 (HTTPS) Ingress + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Ingress + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: Hosts + schema: + type: list + default: [] + items: + - variable: hostEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: host + label: HostName + schema: + type: string + default: "" + required: true + - variable: paths + label: Paths + schema: + type: list + default: [{path: "/", pathType: "Prefix"}] + items: + - variable: pathEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: path + label: Path + schema: + type: string + required: true + default: "/" + - variable: pathType + label: Path Type + schema: + type: string + required: true + default: Prefix + - variable: certificateIssuer + label: Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates. Cannot be used combined with tls option below' + schema: + type: string + default: "" + - variable: middlewares + label: Traefik Middlewares + description: Add previously created Traefik Middlewares to this Ingress + schema: + type: list + default: [] + items: + - variable: name + label: Name + schema: + type: string + default: "" + required: true + - variable: integration + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: homepage + label: Homepage + description: Connect ingress with Homepage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: name + label: Name + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: description + label: Description + description: defaults to chart description + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: group + label: Group + schema: + type: string + required: true + default: "default" + show_if: [["enabled", "=", true]] + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + - variable: entrypoint + label: (Advanced) Traefik Entrypoint + description: Entrypoint used by Traefik when using Traefik as Ingress Provider + schema: + type: string + default: websecure + show_if: [["advanced", "=", true]] + required: true + - variable: allowCors + label: "Allow Cross Origin Requests" + schema: + type: boolean + show_if: [["advanced", "=", true]] + default: false + - variable: ingressClassName + label: (Advanced/Optional) IngressClass Name + schema: + type: string + show_if: [["advanced", "=", true]] + default: "" + - variable: tls + label: TLS-Settings + schema: + type: list + show_if: [["advanced", "=", true]] + default: [] + items: + - variable: tlsEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: hosts + label: Certificate Hosts + schema: + type: list + default: [] + items: + - variable: host + label: Host + schema: + type: string + default: "" + required: true + + - variable: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: 'Use Custom Certificate Secret (Advanced)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: string + default: "" + - variable: scaleCert + label: 'Use TrueNAS SCALE Certificate (Deprecated)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - variable: proxy + label: Proxy (HTTPS) Ingress + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Ingress + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: Hosts + schema: + type: list + default: [] + items: + - variable: hostEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: host + label: HostName + schema: + type: string + default: "" + required: true + - variable: paths + label: Paths + schema: + type: list + default: [{path: "/", pathType: "Prefix"}] + items: + - variable: pathEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: path + label: Path + schema: + type: string + required: true + default: "/" + - variable: pathType + label: Path Type + schema: + type: string + required: true + default: Prefix + - variable: certificateIssuer + label: Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates. Cannot be used combined with tls option below' + schema: + type: string + default: "" + - variable: middlewares + label: Traefik Middlewares + description: Add previously created Traefik Middlewares to this Ingress + schema: + type: list + default: [] + items: + - variable: name + label: Name + schema: + type: string + default: "" + required: true + - variable: integration + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: homepage + label: Homepage + description: Connect ingress with Homepage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: name + label: Name + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: description + label: Description + description: defaults to chart description + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: group + label: Group + schema: + type: string + required: true + default: "default" + show_if: [["enabled", "=", true]] + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + - variable: entrypoint + label: (Advanced) Traefik Entrypoint + description: Entrypoint used by Traefik when using Traefik as Ingress Provider + schema: + type: string + default: websecure + show_if: [["advanced", "=", true]] + required: true + - variable: allowCors + label: "Allow Cross Origin Requests" + schema: + type: boolean + show_if: [["advanced", "=", true]] + default: false + - variable: ingressClassName + label: (Advanced/Optional) IngressClass Name + schema: + type: string + show_if: [["advanced", "=", true]] + default: "" + - variable: tls + label: TLS-Settings + schema: + type: list + show_if: [["advanced", "=", true]] + default: [] + items: + - variable: tlsEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: hosts + label: Certificate Hosts + schema: + type: list + default: [] + items: + - variable: host + label: Host + schema: + type: string + default: "" + required: true + + - variable: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: 'Use Custom Certificate Secret (Advanced)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: string + default: "" + - variable: scaleCert + label: 'Use TrueNAS SCALE Certificate (Deprecated)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - variable: ingressList + label: Add Manual Custom Ingresses + group: Ingress + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: Custom Ingress + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Ingress + schema: + type: boolean + default: true + hidden: true + - variable: name + label: Name + schema: + type: string + default: "" + - variable: ingressClassName + label: IngressClass Name + schema: + type: string + default: "" + - variable: allowCors + label: "Allow Cross Origin Requests" + schema: + type: boolean + show_if: [["advanced", "=", true]] + default: false + - variable: hosts + label: Hosts + schema: + type: list + default: [] + items: + - variable: hostEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: host + label: HostName + schema: + type: string + default: "" + required: true + - variable: paths + label: Paths + schema: + type: list + default: [] + items: + - variable: pathEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: path + label: Path + schema: + type: string + required: true + default: "/" + - variable: pathType + label: Path Type + schema: + type: string + required: true + default: Prefix + - variable: service + label: Linked Service + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Service Name + schema: + type: string + default: "" + - variable: port + label: Service Port + schema: + type: int + - variable: certificateIssuer + label: certificateIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates. Cannot be used combined with tls option below' + schema: + type: string + default: "" + - variable: tls + label: TLS-Settings + schema: + type: list + default: [] + show_if: [["certificateIssuer", "=", ""]] + items: + - variable: tlsEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: hosts + label: Certificate Hosts + schema: + type: list + default: [] + items: + - variable: host + label: Host + schema: + type: string + default: "" + required: true + - variable: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your Cert-Manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: scaleCert + label: Use TrueNAS SCALE Certificate (Deprecated) + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: Use Custom Secret (Advanced) + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: integration + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: homepage + label: Homepage + description: Connect ingress with Homepage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: name + label: Name + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: description + label: Description + description: defaults to chart description + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: group + label: Group + schema: + type: string + required: true + default: "default" + show_if: [["enabled", "=", true]] + - variable: entrypoint + label: Traefik Entrypoint + description: Entrypoint used by Traefik when using Traefik as Ingress Provider + schema: + type: string + default: websecure + required: true + - variable: middlewares + label: Traefik Middlewares + description: Add previously created Traefik Middlewares to this Ingress + schema: + type: list + default: [] + items: + - variable: name + label: Name + schema: + type: string + default: "" + required: true + - variable: securityContext + group: Security and Permissions + label: Security Context + schema: + additional_attrs: true + type: dict + attrs: + - variable: container + label: Container + schema: + additional_attrs: true + type: dict + attrs: + # Settings from questions.yaml get appended here on a per-app basis + - variable: runAsUser + label: runAsUser + description: The UserID of the user running the application + schema: + type: int + default: 1000 + - variable: runAsGroup + label: runAsGroup + description: The groupID of the user running the application + schema: + type: int + default: 1000 + # Settings from questions.yaml get appended here on a per-app basis + - variable: PUID + label: Process User ID - PUID + description: When supported by the container, this sets the User ID running the Application Process. Not supported by all Apps + schema: + type: int + show_if: [["runAsUser", "=", 0]] + default: 568 + - variable: UMASK + label: UMASK + description: When supported by the container, this sets the UMASK for the App. Not supported by all Apps + schema: + type: string + default: "0022" + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: pod + label: Pod + schema: + additional_attrs: true + type: dict + attrs: + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: OnRootMismatch + enum: + - value: OnRootMismatch + description: OnRootMismatch + - value: Always + description: Always + - variable: supplementalGroups + label: Supplemental Groups + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: Supplemental Group + schema: + type: int + # Settings from questions.yaml get appended here on a per-app basis + - variable: fsGroup + label: fsGroup + description: The group that should own ALL storage. + schema: + type: int + default: 568 + - variable: resources + group: Resources and Devices + label: "Resource Limits" + schema: + additional_attrs: true + type: dict + attrs: + - variable: limits + label: Advanced Limit Resource Consumption + schema: + additional_attrs: true + type: dict + attrs: + - variable: cpu + label: CPU + description: "1000m means 1 hyperthread. Detailed info: https://truecharts.org/manual/SCALE/validation" + schema: + type: string + default: 4000m + valid_chars: '^(?!^0(\.0|m|)$)([0-9]+)(\.[0-9]|m?)$' + - variable: memory + label: RAM + description: "1Gi means 1 Gibibyte RAM. Detailed info: https://truecharts.org/manual/SCALE/validation" + schema: + type: string + default: 8Gi + valid_chars: '^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$' + - variable: requests + label: "Minimum Resources Required (request)" + schema: + additional_attrs: true + type: dict + hidden: true + attrs: + - variable: cpu + label: CPU + description: "1000m means 1 hyperthread. Detailed info: https://truecharts.org/manual/SCALE/validation" + schema: + type: string + default: 10m + hidden: true + valid_chars: '^(?!^0(\.0|m|)$)([0-9]+)(\.[0-9]|m?)$' + - variable: memory + label: "RAM" + description: "1Gi means 1 Gibibyte RAM. Detailed info: https://truecharts.org/manual/SCALE/validation" + schema: + type: string + default: 50Mi + hidden: true + valid_chars: '^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$' + - variable: deviceList + label: Mount USB Devices + group: Resources and Devices + schema: + type: list + default: [] + items: + - variable: deviceListEntry + label: Device + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the Storage + schema: + type: boolean + default: true + - variable: type + label: (Advanced) Type of Storage + description: Sets the persistence type + schema: + type: string + default: device + hidden: true + - variable: readOnly + label: readOnly + schema: + type: boolean + default: false + - variable: hostPath + label: Host Device Path + description: Path to the device on the host system + schema: + type: path + - variable: mountPath + label: Container Device Path + description: Path inside the container the device is mounted + schema: + type: string + default: "/dev/ttyACM0" + - variable: scaleGPU + label: GPU Configuration + group: Resources and Devices + schema: + type: list + default: [] + items: + - variable: scaleGPUEntry + label: GPU + schema: + additional_attrs: true + type: dict + attrs: + # Specify GPU configuration + - variable: gpu + label: Select GPU + schema: + additional_attrs: true + type: dict + $ref: + - "definitions/gpuConfiguration" + attrs: [] + - variable: workaround + label: "Workaround" + schema: + type: string + default: workaround + hidden: true + - variable: metrics + group: Metrics + label: Prometheus Metrics + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: Main Metrics + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + description: Enable Prometheus Metrics + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: prometheusRule + label: PrometheusRule + description: Enable and configure Prometheus Rules for the App. + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + description: Enable Prometheus Metrics + schema: + type: boolean + default: false + # TODO: Rule List section +# - variable: horizontalPodAutoscaler +# group: Advanced +# label: (Advanced) Horizontal Pod Autoscaler +# schema: +# type: list +# default: [] +# items: +# - variable: hpaEntry +# label: HPA Entry +# schema: +# additional_attrs: true +# type: dict +# attrs: +# - variable: name +# label: Name +# schema: +# type: string +# required: true +# default: "" +# - variable: enabled +# label: Enabled +# schema: +# type: boolean +# default: false +# show_subquestions_if: true +# subquestions: +# - variable: target +# label: Target +# description: Deployment name, Defaults to Main Deployment +# schema: +# type: string +# default: "" +# - variable: minReplicas +# label: Minimum Replicas +# schema: +# type: int +# default: 1 +# - variable: maxReplicas +# label: Maximum Replicas +# schema: +# type: int +# default: 5 +# - variable: targetCPUUtilizationPercentage +# label: Target CPU Utilization Percentage +# schema: +# type: int +# default: 80 +# - variable: targetMemoryUtilizationPercentage +# label: Target Memory Utilization Percentage +# schema: +# type: int +# default: 80 + - variable: networkPolicy + group: Advanced + label: (Advanced) Network Policy + schema: + type: list + default: [] + items: + - variable: netPolicyEntry + label: Network Policy Entry + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + default: "" + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: policyType + label: Policy Type + schema: + type: string + default: "" + enum: + - value: "" + description: Default + - value: ingress + description: Ingress + - value: egress + description: Egress + - value: ingress-egress + description: Ingress and Egress + - variable: egress + label: Egress + schema: + type: list + default: [] + items: + - variable: egressEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: to + label: To + schema: + type: list + default: [] + items: + - variable: toEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: ipBlock + label: IP Block + schema: + additional_attrs: true + type: dict + attrs: + - variable: cidr + label: CIDR + schema: + type: string + default: "" + - variable: except + label: Except + schema: + type: list + default: [] + items: + - variable: exceptint + label: "" + schema: + type: string + - variable: namespaceSelector + label: Namespace Selector + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: podSelector + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: ports + label: Ports + schema: + type: list + default: [] + items: + - variable: portsEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + schema: + type: int + - variable: endPort + label: End Port + schema: + type: int + - variable: protocol + label: Protocol + schema: + type: string + default: TCP + enum: + - value: TCP + description: TCP + - value: UDP + description: UDP + - value: SCTP + description: SCTP + - variable: ingress + label: Ingress + schema: + type: list + default: [] + items: + - variable: ingressEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: from + label: From + schema: + type: list + default: [] + items: + - variable: fromEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: ipBlock + label: IP Block + schema: + additional_attrs: true + type: dict + attrs: + - variable: cidr + label: CIDR + schema: + type: string + default: "" + - variable: except + label: Except + schema: + type: list + default: [] + items: + - variable: exceptint + label: "" + schema: + type: string + - variable: namespaceSelector + label: Namespace Selector + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: podSelector + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: ports + label: Ports + schema: + type: list + default: [] + items: + - variable: portsEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + schema: + type: int + - variable: endPort + label: End Port + schema: + type: int + - variable: protocol + label: Protocol + schema: + type: string + default: TCP + enum: + - value: TCP + description: TCP + - value: UDP + description: UDP + - value: SCTP + description: SCTP + - variable: addons + group: Addons + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: codeserver + label: Codeserver + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: service + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Service Type + description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: LoadBalancer + enum: + - value: NodePort + description: Deprecated CHANGE THIS + - value: ClusterIP + description: ClusterIP + - value: LoadBalancer + description: LoadBalancer + - variable: loadBalancerIP + label: LoadBalancer IP + description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: ports + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: codeserver + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + schema: + type: int + default: 36107 + - variable: ingress + label: "Ingress" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Ingress + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: Hosts + schema: + type: list + default: [] + items: + - variable: hostEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: host + label: HostName + schema: + type: string + default: "" + required: true + - variable: paths + label: Paths + schema: + type: list + default: [{path: "/", pathType: "Prefix"}] + items: + - variable: pathEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: path + label: Path + schema: + type: string + required: true + default: "/" + - variable: pathType + label: Path Type + schema: + type: string + required: true + default: Prefix + - variable: certificateIssuer + label: Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates. Cannot be used combined with tls option below' + schema: + type: string + default: "" + - variable: middlewares + label: Traefik Middlewares + description: Add previously created Traefik Middlewares to this Ingress + schema: + type: list + default: [] + items: + - variable: name + label: Name + schema: + type: string + default: "" + required: true + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + - variable: entrypoint + label: (Advanced) Traefik Entrypoint + description: Entrypoint used by Traefik when using Traefik as Ingress Provider + schema: + type: string + default: websecure + show_if: [["advanced", "=", true]] + required: true + - variable: allowCors + label: "Allow Cross Origin Requests" + schema: + type: boolean + show_if: [["advanced", "=", true]] + default: false + - variable: ingressClassName + label: (Advanced/Optional) IngressClass Name + schema: + type: string + show_if: [["advanced", "=", true]] + default: "" + - variable: tls + label: TLS-Settings + schema: + type: list + show_if: [["advanced", "=", true]] + default: [] + items: + - variable: tlsEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: hosts + label: Certificate Hosts + schema: + type: list + default: [] + items: + - variable: host + label: Host + schema: + type: string + default: "" + required: true + - variable: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: 'Use Custom Certificate Secret (Advanced)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: string + default: "" + - variable: scaleCert + label: 'Use TrueNAS SCALE Certificate (Deprecated)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - variable: envList + label: Codeserver Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + - variable: netshoot + label: Netshoot + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: envList + label: Netshoot Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + - variable: vpn + label: VPN + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type + schema: + type: string + default: disabled + enum: + - value: disabled + description: disabled + - value: gluetun + description: Gluetun + - value: tailscale + description: Tailscale + - value: openvpn + description: OpenVPN (Deprecated) + - value: wireguard + description: Wireguard (Deprecated) + - variable: openvpn + label: OpenVPN Settings + schema: + additional_attrs: true + type: dict + show_if: [["type", "=", "openvpn"]] + attrs: + - variable: username + label: Authentication Username (Optional) + description: Authentication Username, Optional + schema: + type: string + default: "" + - variable: password + label: Authentication Password + description: Authentication Credentials + schema: + type: string + show_if: [["username", "!=", ""]] + default: "" + required: true + - variable: tailscale + label: Tailscale Settings + schema: + additional_attrs: true + type: dict + show_if: [["type", "=", "tailscale"]] + attrs: + - variable: authkey + label: Authentication Key + description: Provide an auth key to automatically authenticate the node as your user account. + schema: + type: string + private: true + default: "" + - variable: auth_once + label: Auth Once + description: Only attempt to log in if not already logged in. + schema: + type: boolean + default: true + - variable: accept_dns + label: Accept DNS + description: Accept DNS configuration from the admin console. + schema: + type: boolean + default: false + - variable: userspace + label: Userspace + description: Userspace Networking mode allows running Tailscale where you do not have access to create a VPN tunnel device. + schema: + type: boolean + default: false + - variable: routes + label: Routes + description: Expose physical subnet routes to your entire Tailscale network. + schema: + type: string + default: "" + - variable: dest_ip + label: Destination IP + description: Tells the DNAT mechanism which Destination IP to set in the IP header, and where to send packets that are matched. + schema: + type: string + default: "" + - variable: sock5_server + label: Sock5 Server + description: The address on which to listen for SOCKS5 proxying into the tailscale net. + schema: + type: string + default: "" + - variable: outbound_http_proxy_listen + label: Outbound HTTP Proxy Listen + description: The address on which to listen for HTTP proxying into the tailscale net. + schema: + type: string + default: "" + - variable: extra_args + label: Extra Args + description: Extra Args + schema: + type: string + default: "" + - variable: daemon_extra_args + label: Tailscale Daemon Extra Args + description: Tailscale Daemon Extra Args + schema: + type: string + default: "" + - variable: killSwitch + label: Enable Killswitch + schema: + type: boolean + show_if: [["type", "!=", "disabled"]] + default: true + - variable: excludedNetworks_IPv4 + label: Killswitch Excluded IPv4 networks + description: List of Killswitch Excluded IPv4 Addresses + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: networkv4 + label: IPv4 Network + schema: + type: string + required: true + - variable: excludedNetworks_IPv6 + label: Killswitch Excluded IPv6 networks + description: "List of Killswitch Excluded IPv6 Addresses" + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: networkv6 + label: IPv6 Network + schema: + type: string + required: true + - variable: configFile + label: VPN Config File Location + schema: + type: string + show_if: [["type", "!=", "disabled"]] + default: "" + + - variable: envList + label: VPN Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + max_length: 10240 + - variable: docs + group: Documentation + label: Please read the documentation at https://truecharts.org + description: Please read the documentation at +
https://truecharts.org + schema: + additional_attrs: true + type: dict + attrs: + - variable: confirmDocs + label: I have checked the documentation + schema: + type: boolean + default: true + - variable: donateNag + group: Documentation + label: Please consider supporting TrueCharts, see https://truecharts.org/sponsor + description: Please consider supporting TrueCharts, see +
https://truecharts.org/sponsor + schema: + additional_attrs: true + type: dict + attrs: + - variable: confirmDonate + label: I have considered donating + schema: + type: boolean + default: true + hidden: true diff --git a/stable/authentik/16.0.0/templates/NOTES.txt b/stable/authentik/16.0.0/templates/NOTES.txt new file mode 100644 index 00000000000..efcb74cb772 --- /dev/null +++ b/stable/authentik/16.0.0/templates/NOTES.txt @@ -0,0 +1 @@ +{{- include "tc.v1.common.lib.chart.notes" $ -}} diff --git a/stable/authentik/16.0.0/templates/_config.tpl b/stable/authentik/16.0.0/templates/_config.tpl new file mode 100644 index 00000000000..c46407c309c --- /dev/null +++ b/stable/authentik/16.0.0/templates/_config.tpl @@ -0,0 +1,128 @@ +{{/* Define the configmaps */}} +{{- define "authentik.configmaps" -}} + + {{- $fullname := include "tc.v1.common.lib.chart.names.fullname" $ -}} + {{- $serverHost := printf "https://%v:%v" $fullname .Values.service.main.ports.main.port -}} + {{- $host := .Values.chartContext.appUrl }} +server: + enabled: true + data: + AUTHENTIK_LISTEN__HTTPS: {{ printf "0.0.0.0:%v" .Values.service.main.ports.main.port | quote }} + AUTHENTIK_LISTEN__HTTP: {{ printf "0.0.0.0:%v" .Values.service.http.ports.http.port | quote }} + AUTHENTIK_LISTEN__METRICS: {{ printf "0.0.0.0:%v" .Values.service.servermetrics.ports.servermetrics.port | quote }} + +server-worker: + enabled: true + data: + {{/* Dependencies */}} + AUTHENTIK_POSTGRESQL__NAME: {{ .Values.cnpg.main.database }} + AUTHENTIK_POSTGRESQL__USER: {{ .Values.cnpg.main.user }} + AUTHENTIK_POSTGRESQL__HOST: {{ .Values.cnpg.main.creds.host }} + AUTHENTIK_POSTGRESQL__PORT: "5432" + AUTHENTIK_REDIS__HOST: {{ .Values.redis.creds.plain }} + AUTHENTIK_REDIS__PORT: "6379" + + {{/* Outposts */}} + AUTHENTIK_OUTPOSTS__DISCOVER: "false" + + {{/* GeoIP */}} + {{- $geoipPath := (printf "/geoip/%v.mmdb" .Values.authentik.geoip.editionID) -}} + {{- if not .Values.authentik.geoip.enabled -}} + {{- $geoipPath = "/tmp/non-existent-file" -}} + {{- end -}} + + {{- if or .Values.authentik.geoip.enabled .Values.authentik.geoip.wipeBuiltInDb }} + AUTHENTIK_GEOIP: {{ $geoipPath }} + {{- end }} + + {{/* Mail */}} + AUTHENTIK_EMAIL__USE_TLS: {{ .Values.authentik.email.useTLS | quote }} + AUTHENTIK_EMAIL__USE_SSL: {{ .Values.authentik.email.useSSL | quote }} + {{- with .Values.authentik.email.port }} + AUTHENTIK_EMAIL__PORT: {{ . | quote }} + {{- end -}} + {{- with .Values.authentik.email.timeout }} + AUTHENTIK_EMAIL__TIMEOUT: {{ . | quote }} + {{- end }} + + {{/* LDAP */}} + AUTHENTIK_LDAP__TASK_TIMEOUT_HOURS: {{ .Values.authentik.ldap.taskTimeoutHours | quote }} + AUTHENTIK_LDAP__TLS__CIPHERS: {{ .Values.authentik.ldap.tlsCiphers | quote }} + + {{/* Logging */}} + AUTHENTIK_LOG_LEVEL: {{ .Values.authentik.logging.logLevel }} + + {{/* Error Reporting */}} + AUTHENTIK_ERROR_REPORTING__ENABLED: {{ .Values.authentik.errorReporting.enabled | quote }} + AUTHENTIK_ERROR_REPORTING__SEND_PII: {{ .Values.authentik.errorReporting.sendPII | quote }} + {{- with .Values.authentik.errorReporting.environment }} + AUTHENTIK_ERROR_REPORTING__ENVIRONMENT: {{ . | quote }} + {{- end -}} + {{- with .Values.authentik.errorReporting.sentryDSN }} + AUTHENTIK_ERROR_REPORTING__SENTRY_DSN: {{ . | quote }} + {{- end -}} + {{- with .Values.authentik.general.avatars }} + AUTHENTIK_AVATARS: {{ join "," . }} + {{- end -}} + {{- with .Values.authentik.general.footerLinks }} + AUTHENTIK_FOOTER_LINKS: {{ toJson . | squote }} + {{- end }} + + {{/* General */}} + AUTHENTIK_DISABLE_UPDATE_CHECK: {{ .Values.authentik.general.disableUpdateCheck | quote }} + AUTHENTIK_DISABLE_STARTUP_ANALYTICS: {{ .Values.authentik.general.disableStartupAnalytics | quote }} + AUTHENTIK_DEFAULT_USER_CHANGE_NAME: {{ .Values.authentik.general.allowUserChangeName | quote }} + AUTHENTIK_DEFAULT_USER_CHANGE_EMAIL: {{ .Values.authentik.general.allowUserChangeEmail | quote }} + AUTHENTIK_DEFAULT_USER_CHANGE_USERNAME: {{ .Values.authentik.general.allowUserChangeUsername | quote }} + AUTHENTIK_GDPR_COMPLIANCE: {{ .Values.authentik.general.gdprCompliance | quote }} + AUTHENTIK_DEFAULT_TOKEN_LENGTH: {{ .Values.authentik.general.tokenLength | quote }} + AUTHENTIK_IMPERSONATION: {{ .Values.authentik.general.impersonation | quote }} + +{{- if .Values.authentik.outposts.proxy.enabled }} +proxy: + enabled: true + data: + AUTHENTIK_LISTEN__HTTP: {{ printf "0.0.0.0:%v" .Values.service.proxy.ports.http.port | quote }} + AUTHENTIK_LISTEN__HTTPS: {{ printf "0.0.0.0:%v" .Values.service.proxy.ports.https.port | quote }} + AUTHENTIK_LISTEN__METRICS: {{ printf "0.0.0.0:%v" .Values.service.proxymetrics.ports.proxymetrics.port | quote }} + AUTHENTIK_HOST: {{ $serverHost }} + AUTHENTIK_INSECURE: "true" + # TODO: node ip or ingress host + AUTHENTIK_HOST_BROWSER: {{ $host }} +{{- end -}} + +{{- if .Values.authentik.outposts.radius.enabled }} +radius: + enabled: true + data: + AUTHENTIK_LISTEN__RADIUS: {{ printf "0.0.0.0:%v" .Values.service.radius.ports.radius.port | quote }} + AUTHENTIK_LISTEN__METRICS: {{ printf "0.0.0.0:%v" .Values.service.radiusmetrics.ports.radiusmetrics.port | quote }} + AUTHENTIK_HOST: {{ $serverHost }} + AUTHENTIK_INSECURE: "true" + # TODO: node ip or ingress host + AUTHENTIK_HOST_BROWSER: {{ $host }} +{{- end -}} + +{{- if .Values.authentik.outposts.ldap.enabled }} +ldap: + enabled: true + data: + AUTHENTIK_LISTEN__LDAP: {{ printf "0.0.0.0:%v" .Values.service.ldap.ports.ldap.port | quote }} + AUTHENTIK_LISTEN__LDAPS: {{ printf "0.0.0.0:%v" .Values.service.ldaps.ports.ldaps.port | quote }} + AUTHENTIK_LISTEN__METRICS: {{ printf "0.0.0.0:%v" .Values.service.ldapmetrics.ports.ldapmetrics.port | quote }} + AUTHENTIK_HOST: {{ $serverHost }} + AUTHENTIK_INSECURE: "true" + # TODO: node ip or ingress host + AUTHENTIK_HOST_BROWSER: {{ $host }} +{{- end -}} + +{{- if .Values.authentik.geoip.enabled }} +geoip: + enabled: true + data: + GEOIPUPDATE_EDITION_IDS: {{ .Values.authentik.geoip.editionID }} + GEOIPUPDATE_FREQUENCY: {{ .Values.authentik.geoip.frequency | quote }} + GEOIPUPDATE_DB_DIR: {{ .Values.persistence.geoip.targetSelector.geoip.geoip.mountPath | quote }} +{{- end -}} + +{{- end -}} diff --git a/stable/authentik/16.0.0/templates/_secret.tpl b/stable/authentik/16.0.0/templates/_secret.tpl new file mode 100644 index 00000000000..faf26d54e10 --- /dev/null +++ b/stable/authentik/16.0.0/templates/_secret.tpl @@ -0,0 +1,74 @@ +{{/* Define the secrets */}} +{{- define "authentik.secrets" -}} + + {{- $fullname := include "tc.v1.common.lib.chart.names.fullname" $ -}} + {{- $fetchname := printf "%v-server-worker" $fullname -}} + + {{- $secretKey := randAlphaNum 32 -}} + {{- with (lookup "v1" "Secret" .Release.Namespace $fetchname) -}} + {{- $secretKey = index .data "AUTHENTIK_SECRET_KEY" | b64dec -}} + {{- end }} + +server-worker: + enabled: true + data: + {{/* Dependencies */}} + AUTHENTIK_POSTGRESQL__PASSWORD: {{ .Values.cnpg.main.creds.password | trimAll "\"" }} + AUTHENTIK_REDIS__PASSWORD: {{ .Values.redis.creds.redisPassword | trimAll "\"" }} + + {{/* Secret Key */}} + AUTHENTIK_SECRET_KEY: {{ $secretKey }} + + {{/* Initial credentials */}} + AUTHENTIK_BOOTSTRAP_EMAIL: {{ .Values.authentik.credentials.email | quote }} + AUTHENTIK_BOOTSTRAP_PASSWORD: {{ .Values.authentik.credentials.password | quote }} + {{- with .Values.authentik.credentials.bootstrapToken }} + AUTHENTIK_BOOTSTRAP_TOKEN: {{ . }} + {{- end }} + + {{/* Mail */}} + {{- with .Values.authentik.email.host }} + AUTHENTIK_EMAIL__HOST: {{ . }} + {{- end -}} + {{- with .Values.authentik.email.username }} + AUTHENTIK_EMAIL__USERNAME: {{ . }} + {{- end -}} + {{- with .Values.authentik.email.password }} + AUTHENTIK_EMAIL__PASSWORD: {{ . }} + {{- end -}} + {{- with .Values.authentik.email.from }} + AUTHENTIK_EMAIL__FROM: {{ . }} + {{- end -}} + +{{- if .Values.authentik.geoip.enabled }} +geoip: + enabled: true + data: + GEOIPUPDATE_VERBOSE: "0" + GEOIPUPDATE_PRESERVE_FILE_TIMES: "1" + GEOIPUPDATE_ACCOUNT_ID: {{ .Values.authentik.geoip.accountID | quote }} + GEOIPUPDATE_LICENSE_KEY: {{ .Values.authentik.geoip.licenseKey | quote }} +{{- end -}} + +{{- if .Values.authentik.outposts.proxy.enabled }} +proxy: + enabled: true + data: + AUTHENTIK_TOKEN: {{ .Values.authentik.outposts.proxy.token | quote }} +{{- end -}} + +{{- if .Values.authentik.outposts.radius.enabled }} +radius: + enabled: true + data: + AUTHENTIK_TOKEN: {{ .Values.authentik.outposts.radius.token | quote }} +{{- end -}} + +{{- if .Values.authentik.outposts.ldap.enabled }} +ldap: + enabled: true + data: + AUTHENTIK_TOKEN: {{ .Values.authentik.outposts.ldap.token | quote }} +{{- end -}} + +{{- end -}} diff --git a/stable/authentik/16.0.0/templates/_validation.tpl b/stable/authentik/16.0.0/templates/_validation.tpl new file mode 100644 index 00000000000..5a1b5f029b8 --- /dev/null +++ b/stable/authentik/16.0.0/templates/_validation.tpl @@ -0,0 +1,23 @@ +{{- define "authentik.validation" -}} + {{- range $outpost, $values := .Values.authentik.outposts -}} + {{- if (kindIs "dict" $values) -}} + {{- if and $values.enabled (not $values.token) -}} + {{- fail (printf "Authentik - Outpost [%v] is enabled, but [token] was not provided" ($outpost | upper)) -}} + {{- end -}} + {{- end -}} + {{- end -}} + + {{- if .Values.authentik.geoip.enabled -}} + {{- if not .Values.authentik.geoip.accountID -}} + {{- fail "Authentik - GeoIP is enabled but [accountID] was not provided" -}} + {{- end -}} + + {{- if not .Values.authentik.geoip.licenseKey -}} + {{- fail "Authentik - GeoIP is enabled but [licenseKey] was not provided" -}} + {{- end -}} + + {{- if contains " " .Values.authentik.geoip.editionID -}} + {{- fail "Authentik - GeoIP is enabled but [editionID] cannot contain spaces" -}} + {{- end -}} + {{- end -}} +{{- end -}} diff --git a/stable/authentik/16.0.0/templates/_waitAuthentik.tpl b/stable/authentik/16.0.0/templates/_waitAuthentik.tpl new file mode 100644 index 00000000000..b2421746cef --- /dev/null +++ b/stable/authentik/16.0.0/templates/_waitAuthentik.tpl @@ -0,0 +1,20 @@ +{{- define "authentik.wait.server" -}} +{{- $fullname := (include "tc.v1.common.lib.chart.names.fullname" $) -}} +{{- $serverUrl := printf "https://%v:%v/-/health/ready/" $fullname .Values.service.main.ports.main.port }} +enabled: true +type: init +imageSelector: alpineImage +command: /bin/sh +args: + - -c + - | + echo "Waiting Authentik Server [{{ $serverUrl }}] to be ready..." + until wget --no-check-certificate --spider --quiet "{{ $serverUrl }}"; + do + echo "Waiting Authentik Server [{{ $serverUrl }}] to be ready..." + sleep 3 + done + + echo "Authentik [{{ $serverUrl }}] is ready..." + echo "Starting Outpost..." +{{- end -}} diff --git a/stable/authentik/16.0.0/templates/common.yaml b/stable/authentik/16.0.0/templates/common.yaml new file mode 100644 index 00000000000..f60f125473f --- /dev/null +++ b/stable/authentik/16.0.0/templates/common.yaml @@ -0,0 +1,97 @@ +{{/* Make sure all variables are set properly */}} +{{- include "tc.v1.common.loader.init" . }} + +{{- include "authentik.validation" $ -}} + +{{/* Render secrets for authentik and friends */}} +{{- $secrets := include "authentik.secrets" . | fromYaml -}} +{{- if $secrets -}} + {{ $secrets := (mustMergeOverwrite .Values.secret $secrets) }} + {{- $_ := set .Values "secret" $secrets -}} +{{- end -}} + +{{/* Render configmaps for authentik and friends */}} +{{- $configmaps := include "authentik.configmaps" . | fromYaml -}} +{{- if $configmaps -}} + {{ $configmaps := (mustMergeOverwrite .Values.configmap $configmaps) }} + {{- $_ := set .Values "configmap" $configmaps -}} +{{- end -}} + +{{- if .Values.authentik.general.overwriteDefaultBlueprints -}} + {{- $_ := set .Values.persistence.blueprints.targetSelector.worker.worker "mountPath" "/blueprints" -}} +{{- end -}} + +{{- if .Values.authentik.geoip.enabled -}} + {{- $_ := set .Values.workload.geoip "enabled" true -}} +{{- else -}} + {{- $_ := set .Values.workload.geoip "enabled" false -}} + {{- $_ := set .Values.persistence.geoip "enabled" false -}} +{{- end -}} + +{{- if or .Values.authentik.geoip.enabled .Values.authentik.geoip.wipeBuiltInDb -}} + {{- $_ := set .Values.persistence.geoip "enabled" true -}} +{{- end -}} + +{{- if .Values.authentik.outposts.proxy.enabled -}} + {{- $_ := set .Values.workload.proxy "enabled" true -}} + {{- if not .Values.workload.proxy.podSpec.initContainers -}} + {{- $_ := set .Values.workload.proxy.podSpec "initContainers" dict -}} + {{- end -}} + {{- $_ := set .Values.workload.proxy.podSpec.initContainers "wait-server" (include "authentik.wait.server" . | fromYaml) -}} + {{- $_ := set .Values.service.proxy "enabled" true -}} + {{- $_ := set .Values.service.proxymetrics "enabled" true -}} + {{- $_ := set .Values.metrics.proxymetrics "enabled" true -}} +{{- else -}} + {{- $_ := set .Values.workload.proxy "enabled" false -}} + {{- $_ := set .Values.service.proxy "enabled" false -}} + {{- $_ := set .Values.service.proxymetrics "enabled" false -}} + {{- $_ := set .Values.metrics.proxymetrics "enabled" false -}} +{{- end -}} + +{{- if .Values.authentik.outposts.radius.enabled -}} + {{- $_ := set .Values.workload.radius "enabled" true -}} + {{- if not .Values.workload.radius.podSpec.initContainers -}} + {{- $_ := set .Values.workload.radius.podSpec "initContainers" dict -}} + {{- end -}} + {{- $_ := set .Values.workload.radius.podSpec.initContainers "wait-server" (include "authentik.wait.server" . | fromYaml) -}} + {{- $_ := set .Values.service.radius "enabled" true -}} + {{- $_ := set .Values.service.radiusmetrics "enabled" true -}} + {{- $_ := set .Values.metrics.radiusmetrics "enabled" true -}} +{{- else -}} + {{- $_ := set .Values.workload.radius "enabled" false -}} + {{- $_ := set .Values.service.radius "enabled" false -}} + {{- $_ := set .Values.service.radiusmetrics "enabled" false -}} + {{- $_ := set .Values.metrics.radiusmetrics "enabled" false -}} +{{- end -}} + +{{- if .Values.authentik.outposts.ldap.enabled -}} + {{- $_ := set .Values.workload.ldap "enabled" true -}} + {{- if not .Values.workload.ldap.podSpec.initContainers -}} + {{- $_ := set .Values.workload.ldap.podSpec "initContainers" dict -}} + {{- end -}} + {{- $_ := set .Values.workload.ldap.podSpec.initContainers "wait-server" (include "authentik.wait.server" . | fromYaml) -}} + {{- $_ := set .Values.service.ldap "enabled" true -}} + {{- $_ := set .Values.service.ldaps "enabled" true -}} + {{- $_ := set .Values.service.ldapmetrics "enabled" true -}} + {{- $_ := set .Values.metrics.ldapmetrics "enabled" true -}} +{{- else -}} + {{- $_ := set .Values.workload.ldap "enabled" false -}} + {{- $_ := set .Values.service.ldap "enabled" false -}} + {{- $_ := set .Values.service.ldaps "enabled" false -}} + {{- $_ := set .Values.service.ldapmetrics "enabled" false -}} + {{- $_ := set .Values.metrics.ldapmetrics "enabled" false -}} +{{- end -}} + +{{/* FIXME: See values.yaml */}} +{{- $_ := set .Values.service.servermetrics "enabled" false -}} +{{- $_ := set .Values.service.proxymetrics "enabled" false -}} +{{- $_ := set .Values.service.radiusmetrics "enabled" false -}} +{{- $_ := set .Values.service.ldapmetrics "enabled" false -}} + +{{- $_ := set .Values.metrics.servermetrics "enabled" false -}} +{{- $_ := set .Values.metrics.proxymetrics "enabled" false -}} +{{- $_ := set .Values.metrics.radiusmetrics "enabled" false -}} +{{- $_ := set .Values.metrics.ldapmetrics "enabled" false -}} + +{{/* Render the templates */}} +{{ include "tc.v1.common.loader.apply" . }} diff --git a/stable/authentik/16.0.0/values.yaml b/stable/authentik/16.0.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/jellyfin/16.0.0/CHANGELOG.md b/stable/jellyfin/16.0.0/CHANGELOG.md new file mode 100644 index 00000000000..28d0e548da3 --- /dev/null +++ b/stable/jellyfin/16.0.0/CHANGELOG.md @@ -0,0 +1,99 @@ +**Important:** +*for the complete changelog, please refer to the website* + + + + +## [jellyfin-16.0.0](https://github.com/truecharts/charts/compare/jellyfin-15.1.4...jellyfin-16.0.0) (2023-12-20) + + + + +## [jellyfin-15.1.4](https://github.com/truecharts/charts/compare/jellyfin-15.1.3...jellyfin-15.1.4) (2023-12-20) + +### Chore + +- Bump everything to force min/max scale version update + + + + +## [jellyfin-15.1.3](https://github.com/truecharts/charts/compare/jellyfin-15.1.0...jellyfin-15.1.3) (2023-12-16) + +### Chore + +- fix move mistake and cleanup metadata + - update helm general non-major ([#14784](https://github.com/truecharts/charts/issues/14784)) + - update container image docker.io/alpine/socat to 1.8.0.0[@af9a3db](https://github.com/af9a3db) ([#16139](https://github.com/truecharts/charts/issues/16139)) + + + + +## [jellyfin-15.1.3](https://github.com/truecharts/charts/compare/jellyfin-15.1.0...jellyfin-15.1.3) (2023-12-16) + +### Chore + +- fix move mistake and cleanup metadata + - update helm general non-major ([#14784](https://github.com/truecharts/charts/issues/14784)) + - update container image docker.io/alpine/socat to 1.8.0.0[@af9a3db](https://github.com/af9a3db) ([#16139](https://github.com/truecharts/charts/issues/16139)) + + + + +## [jellyfin-15.1.2](https://github.com/truecharts/charts/compare/jellyfin-15.1.0...jellyfin-15.1.2) (2023-12-16) + +### Chore + +- fix move mistake and cleanup metadata + - update container image docker.io/alpine/socat to 1.8.0.0[@af9a3db](https://github.com/af9a3db) ([#16139](https://github.com/truecharts/charts/issues/16139)) + + + + +## [jellyfin-15.1.1](https://github.com/truecharts/charts/compare/jellyfin-15.1.0...jellyfin-15.1.1) (2023-12-16) + +### Chore + +- update container image docker.io/alpine/socat to 1.8.0.0[@af9a3db](https://github.com/af9a3db) ([#16139](https://github.com/truecharts/charts/issues/16139)) + + + + +## [jellyfin-15.1.1](https://github.com/truecharts/charts/compare/jellyfin-15.1.0...jellyfin-15.1.1) (2023-12-16) + +### Chore + +- update container image docker.io/alpine/socat to 1.8.0.0[@af9a3db](https://github.com/af9a3db) ([#16139](https://github.com/truecharts/charts/issues/16139)) + + + + +## [jellyfin-15.1.0](https://github.com/truecharts/charts/compare/jellyfin-15.0.31...jellyfin-15.1.0) (2023-12-09) + +### Chore + +- update container image docker.io/alpine/socat to v1.8.0.0[@61c06c2](https://github.com/61c06c2) ([#15914](https://github.com/truecharts/charts/issues/15914)) + + + + +## [jellyfin-15.0.31](https://github.com/truecharts/charts/compare/jellyfin-15.0.30...jellyfin-15.0.31) (2023-12-03) + +### Chore + +- bump everything to ensure catalog has latest versions + + + + +## [jellyfin-15.0.30](https://github.com/truecharts/charts/compare/jellyfin-15.0.29...jellyfin-15.0.30) (2023-12-02) + +### Chore + +- fix annotations again + - update annotations + - update container image docker.io/alpine/socat to 1.7.4.4[@13740b3](https://github.com/13740b3) ([#15598](https://github.com/truecharts/charts/issues/15598)) + + + + diff --git a/stable/jellyfin/16.0.0/Chart.yaml b/stable/jellyfin/16.0.0/Chart.yaml new file mode 100644 index 00000000000..fbcc77e4d20 --- /dev/null +++ b/stable/jellyfin/16.0.0/Chart.yaml @@ -0,0 +1,38 @@ +kubeVersion: ">=1.24.0-0" +apiVersion: v2 +name: jellyfin +version: 16.0.0 +appVersion: 10.8.13 +description: Jellyfin is a Free Software Media System +home: https://truecharts.org/charts/stable/jellyfin +icon: https://truecharts.org/img/hotlink-ok/chart-icons/jellyfin.png +deprecated: false +sources: + - https://github.com/jellyfin/jellyfin + - https://github.com/truecharts/charts/tree/master/charts/stable/jellyfin + - https://hub.docker.com/r/alpine/socat +maintainers: + - name: TrueCharts + email: info@truecharts.org + url: https://truecharts.org +keywords: + - jellyfin + - plex + - emby +dependencies: + - name: common + version: 16.2.5 + repository: https://library-charts.truecharts.org + condition: "" + alias: "" + tags: [] + import-values: [] +annotations: + max_scale_version: 23.10.2 + min_scale_version: 23.10.0 + truecharts.org/SCALE-support: "true" + truecharts.org/category: media + truecharts.org/max_helm_version: "3.13" + truecharts.org/min_helm_version: "3.12" + truecharts.org/train: stable +type: application diff --git a/stable/jellyfin/16.0.0/README.md b/stable/jellyfin/16.0.0/README.md new file mode 100644 index 00000000000..d5940186534 --- /dev/null +++ b/stable/jellyfin/16.0.0/README.md @@ -0,0 +1,27 @@ +# README + +## General Info + +TrueCharts can be installed as both *normal* Helm Charts or as Apps on TrueNAS SCALE. +However only installations using the TrueNAS SCALE Apps system are supported. + +For more information about this App, please check the docs on the TrueCharts [website](https://truecharts.org/charts/stable/jellyfin) + +**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/jellyfin/16.0.0/app-changelog.md b/stable/jellyfin/16.0.0/app-changelog.md new file mode 100644 index 00000000000..444d409e171 --- /dev/null +++ b/stable/jellyfin/16.0.0/app-changelog.md @@ -0,0 +1,4 @@ + + +## [jellyfin-16.0.0](https://github.com/truecharts/charts/compare/jellyfin-15.1.4...jellyfin-16.0.0) (2023-12-20) + diff --git a/stable/jellyfin/16.0.0/app-readme.md b/stable/jellyfin/16.0.0/app-readme.md new file mode 100644 index 00000000000..73fdb17ba45 --- /dev/null +++ b/stable/jellyfin/16.0.0/app-readme.md @@ -0,0 +1,8 @@ +Jellyfin is a Free Software Media System + +This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/charts/stable/jellyfin](https://truecharts.org/charts/stable/jellyfin) + +--- + +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/jellyfin/16.0.0/charts/common-16.2.5.tgz b/stable/jellyfin/16.0.0/charts/common-16.2.5.tgz new file mode 100644 index 0000000000000000000000000000000000000000..8a24314324126bd3a79a3fde96b8510923a93ccd GIT binary patch literal 95720 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

n!-60` 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 T!1VtI00960ciOJl03Hkg|7t>L literal 0 HcmV?d00001 diff --git a/stable/jellyfin/16.0.0/ix_values.yaml b/stable/jellyfin/16.0.0/ix_values.yaml new file mode 100644 index 00000000000..dc61257f1c3 --- /dev/null +++ b/stable/jellyfin/16.0.0/ix_values.yaml @@ -0,0 +1,98 @@ +image: + repository: docker.io/jellyfin/jellyfin + pullPolicy: IfNotPresent + tag: 10.8.13@sha256:05a9734d7e83086b957c5b7a16cbb5a60b5bb8d113ffb953e57547359dd05140 +broadcastProxyImage: + repository: docker.io/alpine/socat + pullPolicy: IfNotPresent + tag: 1.8.0.0@sha256:af9a3db190ffc0d49d24796be0cdd29cdef0463ada13d22eaf56342f2cb31bfb +service: + main: + ports: + main: + port: 8096 + targetPort: 8096 + autodiscovery: + enabled: true + ports: + autodiscovery: + enabled: true + protocol: udp + port: 7359 + targetPort: 7359 +persistence: + config: + enabled: true + mountPath: "/config" + cache: + enabled: true + mountPath: "/cache" + type: "emptyDir" + transcode: + enabled: true + mountPath: "/config/transcodes" + type: "emptyDir" +portal: + open: + enabled: true +securityContext: + container: + readOnlyRootFilesystem: false +workload: + main: + podSpec: + containers: + main: + env: + JELLYFIN_PublishedServerUrl: "{{ $.Values.chartContext.appUrl }}" + broadcastproxy: + enabled: false + type: DaemonSet + podSpec: + hostNetwork: true + # Proxy doesn't seem to respect the TERM signal, so by default + # this ends up just hanging until the default grace period ends. + # This is unnecesary since this workload only proxies autodiscovery + # messages. + terminationGracePeriodSeconds: 3 + containers: + broadcastproxy: + enabled: true + primary: true + imageSelector: broadcastProxyImage + securityContext: + readOnlyRootFilesystem: true + command: ["/bin/sh"] + # Quite a lot going on here: + # - Resolve Jellyfin's autodiscovery service IP from its FQDN via getent hosts + # - Export the IP to `$TARGET_IP` + # - Check `$TARGET_IP` is not empty (so we can crash if it is - will help to detect templating errors) + # - Touch `/tmp/healty` to use with the readiness, liveness and startup probes + # - Start socat in proxy mode + # - On exit remove `/tmp/healthy` + args: + - "-c" + - 'export TARGET_IP=$(getent hosts ''{{ printf "%v-autodiscovery" (include "tc.v1.common.lib.chart.names.fullname" $) }}'' | awk ''{ print $1 }'') && [[ ! -z $TARGET_IP ]] && touch /tmp/healthy && socat UDP-LISTEN:7359,fork,reuseaddr,rcvbuf=8096 UDP4-SENDTO:${TARGET_IP}:7359,rcvbuf=8096 ; rm -rf /tmp/healthy' + probes: + readiness: + enabled: true + type: exec + command: + - cat + - /tmp/healthy + liveness: + enabled: true + type: exec + command: + - cat + - /tmp/healthy + startup: + enabled: true + type: exec + command: + - cat + - /tmp/healthy +# -- enable Jellyfin autodiscovery on LAN +autodiscovery: + enabled: false +updated: true diff --git a/stable/jellyfin/16.0.0/questions.yaml b/stable/jellyfin/16.0.0/questions.yaml new file mode 100644 index 00000000000..aefba67985b --- /dev/null +++ b/stable/jellyfin/16.0.0/questions.yaml @@ -0,0 +1,2924 @@ +groups: + - name: Container Image + description: Image to be used for container + - name: General Settings + description: General Deployment Settings + - name: Workload Settings + description: Workload Settings + - name: App Configuration + description: App Specific Config Options + - name: Networking and Services + description: Configure Network and Services for Container + - name: Storage and Persistence + description: Persist and Share Data that is Separate from the Container + - name: Ingress + description: Ingress Configuration + - name: Security and Permissions + description: Configure Security Context and Permissions + - name: Resources and Devices + description: "Specify Resources/Devices to be Allocated to Workload" + - name: Middlewares + description: Traefik Middlewares + - name: Metrics + description: Metrics + - name: Addons + description: Addon Configuration + - name: Advanced + description: Advanced Configuration + - name: Postgresql + description: Postgresql + - name: Documentation + description: Documentation +portals: + open: + protocols: + - "$kubernetes-resource_configmap_tcportal-open_protocol" + host: + - "$kubernetes-resource_configmap_tcportal-open_host" + ports: + - "$kubernetes-resource_configmap_tcportal-open_port" +questions: + - variable: global + group: General Settings + label: "Global Settings" + schema: + additional_attrs: true + type: dict + attrs: + - variable: stopAll + label: Stop All + description: "Stops All Running pods and hibernates cnpg" + schema: + type: boolean + default: false + - variable: workload + group: "Workload Settings" + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type (Advanced) + schema: + type: string + default: Deployment + enum: + - value: Deployment + description: Deployment + - value: DaemonSet + description: DaemonSet + + - variable: replicas + label: Replicas (Advanced) + description: Set the number of Replicas + schema: + type: int + show_if: [["type", "!=", "DaemonSet"]] + default: 1 + - variable: podSpec + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: containers + label: Containers + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: Main Container + schema: + additional_attrs: true + type: dict + attrs: + + - variable: envList + label: Extra Environment Variables + description: "Please be aware that some variables are set in the background, adding duplicates here might cause issues or prevent the app from starting..." + schema: + type: list + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: extraArgs + label: Extra Args + schema: + type: list + default: [] + items: + - variable: arg + label: Arg + schema: + type: string + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: command + label: Command + schema: + type: list + default: [] + items: + - variable: param + label: Param + schema: + type: string + - variable: autodiscovery + group: "App Configuration" + label: "Autodiscovery" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: "Enable Autodiscovery on LAN" + schema: + type: boolean + default: false + - variable: TZ + label: Timezone + group: "General Settings" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: podOptions + group: "General Settings" + label: "Global Pod Options (Advanced)" + schema: + additional_attrs: true + type: dict + attrs: + - variable: expertPodOpts + label: "Expert - Pod Options" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + label: "Host Networking" + schema: + type: boolean + default: false + - variable: dnsConfig + label: "DNS Configuration" + schema: + type: dict + additional_attrs: true + attrs: + - variable: options + label: "Options" + schema: + type: list + default: [{"name": "ndots", "value": "1"}] + items: + - variable: optionsEntry + label: "Option Entry" + schema: + type: dict + additional_attrs: true + attrs: + - variable: name + label: "Name" + schema: + type: string + required: true + - variable: value + label: "Value" + schema: + type: string + - variable: nameservers + label: "Nameservers" + schema: + type: list + default: [] + items: + - variable: nsEntry + label: "Nameserver Entry" + schema: + type: string + required: true + - variable: searches + label: "Searches" + schema: + type: list + default: [] + items: + - variable: searchEntry + label: "Search Entry" + schema: + type: string + required: true + + - variable: imagePullSecretList + group: "General Settings" + label: "Image Pull Secrets" + schema: + type: list + default: [] + items: + - variable: pullsecretentry + label: "Pull Secret" + schema: + type: dict + additional_attrs: true + attrs: + - variable: registry + label: "Registry" + schema: + type: string + required: true + default: "https://index.docker.io/v1/" + - variable: username + label: "Username" + schema: + type: string + required: true + default: "" + - variable: password + label: "Password" + schema: + type: string + required: true + default: "" + - variable: email + label: "Email" + schema: + type: string + required: true + default: "" + - variable: service + group: Networking and Services + label: Configure Service(s) + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the Service + schema: + type: boolean + default: true + hidden: true + - variable: type + label: Service Type + description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: LoadBalancer + enum: + - value: LoadBalancer + description: LoadBalancer (Expose Ports) + - value: ClusterIP + description: ClusterIP (Do Not Expose Ports) + - variable: loadBalancerIP + label: LoadBalancer IP + description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: ports + label: "Service's Port(s) Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8096 + required: true + - variable: serviceexpert + group: Networking and Services + label: Show Expert Config + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: scaleExternalInterface + description: Add External Interfaces + label: Add external Interfaces + group: Networking + schema: + type: list + items: + - variable: interfaceConfiguration + description: Interface Configuration + label: Interface Configuration + schema: + additional_attrs: true + type: dict + $ref: + - "normalize/interfaceConfiguration" + attrs: + - variable: hostInterface + description: Please Specify Host Interface + label: Host Interface + schema: + type: string + required: true + $ref: + - "definitions/interface" + - variable: ipam + description: Define how IP Address will be managed + label: IP Address Management + schema: + additional_attrs: true + type: dict + required: true + attrs: + - variable: type + description: Specify type for IPAM + label: IPAM Type + schema: + type: string + required: true + enum: + - value: dhcp + description: Use DHCP + - value: static + description: Use Static IP + - variable: staticIPConfigurations + label: Static IP Addresses + schema: + type: list + show_if: [["type", "=", "static"]] + items: + - variable: staticIP + label: Static IP + schema: + type: ipaddr + cidr: true + - variable: staticRoutes + label: Static Routes + schema: + type: list + show_if: [["type", "=", "static"]] + items: + - variable: staticRouteConfiguration + label: Static Route Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: destination + label: Destination + schema: + type: ipaddr + cidr: true + required: true + - variable: gateway + label: Gateway + schema: + type: ipaddr + cidr: false + required: true + - variable: serviceList + label: Add Manual Custom Services + group: Networking and Services + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: Custom Service + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the service + schema: + type: boolean + default: true + hidden: true + - variable: name + label: Name + schema: + type: string + default: "" + - variable: type + label: Service Type + description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: LoadBalancer + enum: + - value: LoadBalancer + description: LoadBalancer (Expose Ports) + - value: ClusterIP + description: ClusterIP (Do Not Expose Ports) + - value: Simple + description: Deprecated CHANGE THIS + - variable: loadBalancerIP + label: LoadBalancer IP + description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: advancedsvcset + label: Show Advanced Service Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + type: list + default: [] + items: + - variable: externalIP + label: External IP + schema: + type: string + - variable: ipFamilyPolicy + label: IP Family Policy + description: Specify the IP Policy + schema: + type: string + default: SingleStack + enum: + - value: SingleStack + description: SingleStack + - value: PreferDualStack + description: PreferDualStack + - value: RequireDualStack + description: RequireDualStack + - variable: ipFamilies + label: IP Families + description: (Advanced) The IP Families that should be used + schema: + type: list + default: [] + items: + - variable: ipFamily + label: IP Family + schema: + type: string + - variable: portsList + label: Additional Service Ports + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: Custom ports + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the Port + schema: + type: boolean + default: true + hidden: true + - variable: name + label: Port Name + schema: + type: string + default: "" + - variable: protocol + label: Port Type + schema: + type: string + default: tcp + enum: + - value: http + description: HTTP + - value: https + description: HTTPS + - value: tcp + description: TCP + - value: udp + description: UDP + - variable: targetPort + label: Target Port + description: This port exposes the container port on the service + schema: + type: int + required: true + - variable: port + label: Container Port + schema: + type: int + required: true + - variable: persistence + label: Integrated Persistent Storage + description: Integrated Persistent Storage + group: Storage and Persistence + schema: + additional_attrs: true + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + 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: transcode + label: "App Transcode Storage" + description: "Storage for transcode, best to be set to emptyDir and if enough RAM, to Memory type." + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: pvc + enum: + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: emptyDir + description: emptyDir + - value: nfs + description: NFS Share + - value: iscsi + description: iSCSI Share + - variable: server + label: NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: path + label: Path on NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: iscsi + label: iSCSI Options + schema: + show_if: [["type", "=", "iscsi"]] + type: dict + additional_attrs: true + attrs: + - variable: targetPortal + label: targetPortal + schema: + type: string + required: true + default: "" + - variable: iqn + label: iqn + schema: + type: string + required: true + default: "" + - variable: lun + label: lun + schema: + type: int + default: 0 + - variable: authSession + label: authSession + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: authDiscovery + label: authDiscovery + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + + - variable: autoPermissions + label: Automatic Permissions Configuration + description: Automatically set permissions + schema: + show_if: [["type", "!=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: chown + label: Run CHOWN + description: | + It will run CHOWN on the path with the given fsGroup + schema: + type: boolean + default: false + - variable: chmod + label: Run CHMOD + description: | + It will run CHMOD on the path with the given value
+ Format should be 3 digits, e.g. 770 + schema: + type: string + valid_chars: '[0-9]{3}' + default: "" + - variable: recursive + label: Recursive + description: | + It will run CHOWN and CHMOD recursively + schema: + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - variable: hostPath + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: medium + label: EmptyDir Medium + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: Memory + description: Memory + - variable: size + label: Size quotum of Storage (Do NOT REDUCE after installation) + description: This value can ONLY be INCREASED after the installation + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: storageClass + label: 'storageClass (Advanced)' + description: 'sets the storageClass to something other than iX default. Only for advanced usecases!' + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "" + - variable: static + label: 'Static Fixed PVC Bindings (Experimental)' + description: Link a PVC to a specific storage location + schema: + show_if: [["type", "=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: mode + label: mode + description: | + disabled: use normal dynamic PVCs + smb: connect to an SMB share + nfs: connect to an NFS share + schema: + type: string + default: "disabled" + enum: + - value: disabled + description: disabled + - value: smb + description: smb + - value: nfs + description: nfs + - variable: server + label: Server + description: server to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "myserver" + - variable: share + label: Share + description: share to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "/myshare" + - variable: user + label: User + description: connecting user + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "myuser" + - variable: domain + label: Domain + description: user domain + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: password + label: Password + description: connecting password + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: volumeSnapshots + label: 'Volume Snapshots (Experimental)' + description: Add an entry to the list to force creation of a volumeSnapshot of this PVC + schema: + show_if: [["type", "=", "pvc"]] + type: list + default: [] + items: + - variable: volumeSnapshotEntry + label: Custom volumeSnapshot + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: 'WARNING: renaming this, means deletion of the snapshot with the old name!' + schema: + type: string + default: "mysnapshot" + required: true + - variable: volumeSnapshotClassName + label: 'volumeSnapshot Class Name (Advanced)' + description: For use with PVCs using a non-default storageClass + schema: + type: string + default: "" + - variable: persistenceList + label: Additional App Storage + group: Storage and Persistence + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: Custom Storage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the storage + schema: + type: boolean + default: true + hidden: true + - variable: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: hostPath + enum: + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: emptyDir + description: emptyDir + - value: nfs + description: NFS Share + - variable: server + label: NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: path + label: Path on NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: iscsi + label: iSCSI Options + schema: + show_if: [["type", "=", "iscsi"]] + type: dict + additional_attrs: true + attrs: + - variable: targetPortal + label: targetPortal + schema: + type: string + required: true + default: "" + - variable: iqn + label: iqn + schema: + type: string + required: true + default: "" + - variable: lun + label: lun + schema: + type: int + default: 0 + - variable: authSession + label: authSession + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: authDiscovery + label: authDiscovery + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: autoPermissions + label: Automatic Permissions Configuration + description: Automatically set permissions + schema: + show_if: [["type", "!=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: chown + label: Run CHOWN + description: | + It will run CHOWN on the path with the given fsGroup + schema: + type: boolean + default: false + - variable: chmod + label: Run CHMOD + description: | + It will run CHMOD on the path with the given value
+ Format should be 3 digits, e.g. 770 + schema: + type: string + valid_chars: '[0-9]{3}' + default: "" + - variable: recursive + label: Recursive + description: | + It will run CHOWN and CHMOD recursively + schema: + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - variable: hostPath + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: Mount Path + description: Path inside the container the storage is mounted + schema: + type: string + default: "" + required: true + valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' + - variable: medium + label: EmptyDir Medium + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: Memory + description: Memory + - variable: size + label: Size Quotum of Storage + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: storageClass + label: 'storageClass (Advanced)' + description: 'sets the storageClass to something other than iX default. Only for advanced usecases!' + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "" + - variable: static + label: 'Static Fixed PVC Bindings (Experimental)' + description: Link a PVC to a specific storage location + schema: + show_if: [["type", "=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: mode + label: mode + description: | + disabled: use normal dynamic PVCs + smb: connect to an SMB share + nfs: connect to an NFS share + schema: + type: string + default: "disabled" + enum: + - value: "disabled" + description: disabled + - value: smb + description: smb + - value: nfs + description: nfs + - variable: server + label: Server + description: server to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "myserver" + - variable: share + label: Share + description: share to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "/myshare" + - variable: user + label: User + description: connecting user + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "myuser" + - variable: domain + label: Domain + description: user domain + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: password + label: Password + description: connecting password + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: volumeSnapshots + label: 'Volume Snapshots (Experimental)' + description: Add an entry to the list to force creation of a volumeSnapshot of this PVC + schema: + show_if: [["type", "=", "pvc"]] + type: list + default: [] + items: + - variable: volumeSnapshotEntry + label: Custom volumeSnapshot + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: 'WARNING: renaming this, means deletion of the snapshot with the old name!' + schema: + type: string + default: "mysnapshot" + required: true + - variable: volumeSnapshotClassName + label: 'volumeSnapshot Class Name (Advanced)' + description: For use with PVCs using a non-default storageClass + schema: + type: string + default: "" + - variable: ingress + label: "" + group: Ingress + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Ingress + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: Hosts + schema: + type: list + default: [] + items: + - variable: hostEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: host + label: HostName + schema: + type: string + default: "" + required: true + - variable: paths + label: Paths + schema: + type: list + default: [{path: "/", pathType: "Prefix"}] + items: + - variable: pathEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: path + label: Path + schema: + type: string + required: true + default: "/" + - variable: pathType + label: Path Type + schema: + type: string + required: true + default: Prefix + - variable: certificateIssuer + label: Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates. Cannot be used combined with tls option below' + schema: + type: string + default: "" + - variable: middlewares + label: Traefik Middlewares + description: Add previously created Traefik Middlewares to this Ingress + schema: + type: list + default: [] + items: + - variable: name + label: Name + schema: + type: string + default: "" + required: true + - variable: integration + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: homepage + label: Homepage + description: Connect ingress with Homepage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: name + label: Name + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: description + label: Description + description: defaults to chart description + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: group + label: Group + schema: + type: string + required: true + default: "default" + show_if: [["enabled", "=", true]] + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + - variable: entrypoint + label: (Advanced) Traefik Entrypoint + description: Entrypoint used by Traefik when using Traefik as Ingress Provider + schema: + type: string + default: websecure + show_if: [["advanced", "=", true]] + required: true + - variable: allowCors + label: "Allow Cross Origin Requests" + schema: + type: boolean + show_if: [["advanced", "=", true]] + default: false + - variable: ingressClassName + label: (Advanced/Optional) IngressClass Name + schema: + type: string + show_if: [["advanced", "=", true]] + default: "" + - variable: tls + label: TLS-Settings + schema: + type: list + show_if: [["advanced", "=", true]] + default: [] + items: + - variable: tlsEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: hosts + label: Certificate Hosts + schema: + type: list + default: [] + items: + - variable: host + label: Host + schema: + type: string + default: "" + required: true + + - variable: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: 'Use Custom Certificate Secret (Advanced)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: string + default: "" + - variable: scaleCert + label: 'Use TrueNAS SCALE Certificate (Deprecated)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - variable: ingressList + label: Add Manual Custom Ingresses + group: Ingress + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: Custom Ingress + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Ingress + schema: + type: boolean + default: true + hidden: true + - variable: name + label: Name + schema: + type: string + default: "" + - variable: ingressClassName + label: IngressClass Name + schema: + type: string + default: "" + - variable: allowCors + label: "Allow Cross Origin Requests" + schema: + type: boolean + show_if: [["advanced", "=", true]] + default: false + - variable: hosts + label: Hosts + schema: + type: list + default: [] + items: + - variable: hostEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: host + label: HostName + schema: + type: string + default: "" + required: true + - variable: paths + label: Paths + schema: + type: list + default: [] + items: + - variable: pathEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: path + label: Path + schema: + type: string + required: true + default: "/" + - variable: pathType + label: Path Type + schema: + type: string + required: true + default: Prefix + - variable: service + label: Linked Service + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Service Name + schema: + type: string + default: "" + - variable: port + label: Service Port + schema: + type: int + - variable: certificateIssuer + label: certificateIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates. Cannot be used combined with tls option below' + schema: + type: string + default: "" + - variable: tls + label: TLS-Settings + schema: + type: list + default: [] + show_if: [["certificateIssuer", "=", ""]] + items: + - variable: tlsEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: hosts + label: Certificate Hosts + schema: + type: list + default: [] + items: + - variable: host + label: Host + schema: + type: string + default: "" + required: true + - variable: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your Cert-Manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: scaleCert + label: Use TrueNAS SCALE Certificate (Deprecated) + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: Use Custom Secret (Advanced) + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: integration + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: homepage + label: Homepage + description: Connect ingress with Homepage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: name + label: Name + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: description + label: Description + description: defaults to chart description + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: group + label: Group + schema: + type: string + required: true + default: "default" + show_if: [["enabled", "=", true]] + - variable: entrypoint + label: Traefik Entrypoint + description: Entrypoint used by Traefik when using Traefik as Ingress Provider + schema: + type: string + default: websecure + required: true + - variable: middlewares + label: Traefik Middlewares + description: Add previously created Traefik Middlewares to this Ingress + schema: + type: list + default: [] + items: + - variable: name + label: Name + schema: + type: string + default: "" + required: true + - variable: securityContext + group: Security and Permissions + label: Security Context + schema: + additional_attrs: true + type: dict + attrs: + - variable: container + label: Container + schema: + additional_attrs: true + type: dict + attrs: + # Settings from questions.yaml get appended here on a per-app basis + + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: "The groupID this App 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: horizontalPodAutoscaler +# group: Advanced +# label: (Advanced) Horizontal Pod Autoscaler +# schema: +# type: list +# default: [] +# items: +# - variable: hpaEntry +# label: HPA Entry +# schema: +# additional_attrs: true +# type: dict +# attrs: +# - variable: name +# label: Name +# schema: +# type: string +# required: true +# default: "" +# - variable: enabled +# label: Enabled +# schema: +# type: boolean +# default: false +# show_subquestions_if: true +# subquestions: +# - variable: target +# label: Target +# description: Deployment name, Defaults to Main Deployment +# schema: +# type: string +# default: "" +# - variable: minReplicas +# label: Minimum Replicas +# schema: +# type: int +# default: 1 +# - variable: maxReplicas +# label: Maximum Replicas +# schema: +# type: int +# default: 5 +# - variable: targetCPUUtilizationPercentage +# label: Target CPU Utilization Percentage +# schema: +# type: int +# default: 80 +# - variable: targetMemoryUtilizationPercentage +# label: Target Memory Utilization Percentage +# schema: +# type: int +# default: 80 + - variable: networkPolicy + group: Advanced + label: (Advanced) Network Policy + schema: + type: list + default: [] + items: + - variable: netPolicyEntry + label: Network Policy Entry + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + default: "" + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: policyType + label: Policy Type + schema: + type: string + default: "" + enum: + - value: "" + description: Default + - value: ingress + description: Ingress + - value: egress + description: Egress + - value: ingress-egress + description: Ingress and Egress + - variable: egress + label: Egress + schema: + type: list + default: [] + items: + - variable: egressEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: to + label: To + schema: + type: list + default: [] + items: + - variable: toEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: ipBlock + label: IP Block + schema: + additional_attrs: true + type: dict + attrs: + - variable: cidr + label: CIDR + schema: + type: string + default: "" + - variable: except + label: Except + schema: + type: list + default: [] + items: + - variable: exceptint + label: "" + schema: + type: string + - variable: namespaceSelector + label: Namespace Selector + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: podSelector + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: ports + label: Ports + schema: + type: list + default: [] + items: + - variable: portsEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + schema: + type: int + - variable: endPort + label: End Port + schema: + type: int + - variable: protocol + label: Protocol + schema: + type: string + default: TCP + enum: + - value: TCP + description: TCP + - value: UDP + description: UDP + - value: SCTP + description: SCTP + - variable: ingress + label: Ingress + schema: + type: list + default: [] + items: + - variable: ingressEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: from + label: From + schema: + type: list + default: [] + items: + - variable: fromEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: ipBlock + label: IP Block + schema: + additional_attrs: true + type: dict + attrs: + - variable: cidr + label: CIDR + schema: + type: string + default: "" + - variable: except + label: Except + schema: + type: list + default: [] + items: + - variable: exceptint + label: "" + schema: + type: string + - variable: namespaceSelector + label: Namespace Selector + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: podSelector + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: ports + label: Ports + schema: + type: list + default: [] + items: + - variable: portsEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + schema: + type: int + - variable: endPort + label: End Port + schema: + type: int + - variable: protocol + label: Protocol + schema: + type: string + default: TCP + enum: + - value: TCP + description: TCP + - value: UDP + description: UDP + - value: SCTP + description: SCTP + - variable: addons + group: Addons + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: codeserver + label: Codeserver + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: service + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Service Type + description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: LoadBalancer + enum: + - value: NodePort + description: Deprecated CHANGE THIS + - value: ClusterIP + description: ClusterIP + - value: LoadBalancer + description: LoadBalancer + - variable: loadBalancerIP + label: LoadBalancer IP + description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: ports + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: codeserver + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + schema: + type: int + default: 36107 + - variable: ingress + label: "Ingress" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Ingress + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: Hosts + schema: + type: list + default: [] + items: + - variable: hostEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: host + label: HostName + schema: + type: string + default: "" + required: true + - variable: paths + label: Paths + schema: + type: list + default: [{path: "/", pathType: "Prefix"}] + items: + - variable: pathEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: path + label: Path + schema: + type: string + required: true + default: "/" + - variable: pathType + label: Path Type + schema: + type: string + required: true + default: Prefix + - variable: certificateIssuer + label: Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates. Cannot be used combined with tls option below' + schema: + type: string + default: "" + - variable: middlewares + label: Traefik Middlewares + description: Add previously created Traefik Middlewares to this Ingress + schema: + type: list + default: [] + items: + - variable: name + label: Name + schema: + type: string + default: "" + required: true + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + - variable: entrypoint + label: (Advanced) Traefik Entrypoint + description: Entrypoint used by Traefik when using Traefik as Ingress Provider + schema: + type: string + default: websecure + show_if: [["advanced", "=", true]] + required: true + - variable: allowCors + label: "Allow Cross Origin Requests" + schema: + type: boolean + show_if: [["advanced", "=", true]] + default: false + - variable: ingressClassName + label: (Advanced/Optional) IngressClass Name + schema: + type: string + show_if: [["advanced", "=", true]] + default: "" + - variable: tls + label: TLS-Settings + schema: + type: list + show_if: [["advanced", "=", true]] + default: [] + items: + - variable: tlsEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: hosts + label: Certificate Hosts + schema: + type: list + default: [] + items: + - variable: host + label: Host + schema: + type: string + default: "" + required: true + - variable: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: 'Use Custom Certificate Secret (Advanced)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: string + default: "" + - variable: scaleCert + label: 'Use TrueNAS SCALE Certificate (Deprecated)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - variable: envList + label: Codeserver Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + - variable: netshoot + label: Netshoot + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: envList + label: Netshoot Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + - variable: vpn + label: VPN + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type + schema: + type: string + default: disabled + enum: + - value: disabled + description: disabled + - value: gluetun + description: Gluetun + - value: tailscale + description: Tailscale + - value: openvpn + description: OpenVPN (Deprecated) + - value: wireguard + description: Wireguard (Deprecated) + - variable: openvpn + label: OpenVPN Settings + schema: + additional_attrs: true + type: dict + show_if: [["type", "=", "openvpn"]] + attrs: + - variable: username + label: Authentication Username (Optional) + description: Authentication Username, Optional + schema: + type: string + default: "" + - variable: password + label: Authentication Password + description: Authentication Credentials + schema: + type: string + show_if: [["username", "!=", ""]] + default: "" + required: true + - variable: tailscale + label: Tailscale Settings + schema: + additional_attrs: true + type: dict + show_if: [["type", "=", "tailscale"]] + attrs: + - variable: authkey + label: Authentication Key + description: Provide an auth key to automatically authenticate the node as your user account. + schema: + type: string + private: true + default: "" + - variable: auth_once + label: Auth Once + description: Only attempt to log in if not already logged in. + schema: + type: boolean + default: true + - variable: accept_dns + label: Accept DNS + description: Accept DNS configuration from the admin console. + schema: + type: boolean + default: false + - variable: userspace + label: Userspace + description: Userspace Networking mode allows running Tailscale where you do not have access to create a VPN tunnel device. + schema: + type: boolean + default: false + - variable: routes + label: Routes + description: Expose physical subnet routes to your entire Tailscale network. + schema: + type: string + default: "" + - variable: dest_ip + label: Destination IP + description: Tells the DNAT mechanism which Destination IP to set in the IP header, and where to send packets that are matched. + schema: + type: string + default: "" + - variable: sock5_server + label: Sock5 Server + description: The address on which to listen for SOCKS5 proxying into the tailscale net. + schema: + type: string + default: "" + - variable: outbound_http_proxy_listen + label: Outbound HTTP Proxy Listen + description: The address on which to listen for HTTP proxying into the tailscale net. + schema: + type: string + default: "" + - variable: extra_args + label: Extra Args + description: Extra Args + schema: + type: string + default: "" + - variable: daemon_extra_args + label: Tailscale Daemon Extra Args + description: Tailscale Daemon Extra Args + schema: + type: string + default: "" + - variable: killSwitch + label: Enable Killswitch + schema: + type: boolean + show_if: [["type", "!=", "disabled"]] + default: true + - variable: excludedNetworks_IPv4 + label: Killswitch Excluded IPv4 networks + description: List of Killswitch Excluded IPv4 Addresses + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: networkv4 + label: IPv4 Network + schema: + type: string + required: true + - variable: excludedNetworks_IPv6 + label: Killswitch Excluded IPv6 networks + description: "List of Killswitch Excluded IPv6 Addresses" + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: networkv6 + label: IPv6 Network + schema: + type: string + required: true + - variable: configFile + label: VPN Config File Location + schema: + type: string + show_if: [["type", "!=", "disabled"]] + default: "" + + - variable: envList + label: VPN Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + max_length: 10240 + - variable: docs + group: Documentation + label: Please read the documentation at https://truecharts.org + description: Please read the documentation at +
https://truecharts.org + schema: + additional_attrs: true + type: dict + attrs: + - variable: confirmDocs + label: I have checked the documentation + schema: + type: boolean + default: true + - variable: donateNag + group: Documentation + label: Please consider supporting TrueCharts, see https://truecharts.org/sponsor + description: Please consider supporting TrueCharts, see +
https://truecharts.org/sponsor + schema: + additional_attrs: true + type: dict + attrs: + - variable: confirmDonate + label: I have considered donating + schema: + type: boolean + default: true + hidden: true diff --git a/stable/jellyfin/16.0.0/templates/NOTES.txt b/stable/jellyfin/16.0.0/templates/NOTES.txt new file mode 100644 index 00000000000..efcb74cb772 --- /dev/null +++ b/stable/jellyfin/16.0.0/templates/NOTES.txt @@ -0,0 +1 @@ +{{- include "tc.v1.common.lib.chart.notes" $ -}} diff --git a/stable/jellyfin/16.0.0/templates/common.yaml b/stable/jellyfin/16.0.0/templates/common.yaml new file mode 100644 index 00000000000..754fc728167 --- /dev/null +++ b/stable/jellyfin/16.0.0/templates/common.yaml @@ -0,0 +1,8 @@ +{{- include "tc.v1.common.loader.init" . }} + +{{- if .Values.autodiscovery.enabled -}} +{{/* Add proxy workload */}} +{{- $_ := set .Values.workload.broadcastproxy "enabled" true -}} +{{- end -}} + +{{- include "tc.v1.common.loader.apply" . -}} diff --git a/stable/jellyfin/16.0.0/values.yaml b/stable/jellyfin/16.0.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/nextcloud/24.0.0/CHANGELOG.md b/stable/nextcloud/24.0.0/CHANGELOG.md new file mode 100644 index 00000000000..99ed28854b7 --- /dev/null +++ b/stable/nextcloud/24.0.0/CHANGELOG.md @@ -0,0 +1,99 @@ +**Important:** +*for the complete changelog, please refer to the website* + + + + +## [nextcloud-24.0.0](https://github.com/truecharts/charts/compare/nextcloud-23.0.2...nextcloud-24.0.0) (2023-12-20) + + + + +## [nextcloud-23.0.2](https://github.com/truecharts/charts/compare/nextcloud-23.0.1...nextcloud-23.0.2) (2023-12-20) + +### Chore + +- Bump everything to force min/max scale version update + + + + +## [nextcloud-23.0.1](https://github.com/truecharts/charts/compare/nextcloud-23.0.0...nextcloud-23.0.1) (2023-12-18) + +### Fix + +- add nginx changes for nc 28 ([#16306](https://github.com/truecharts/charts/issues/16306)) + + + + +## [nextcloud-23.0.0](https://github.com/truecharts/charts/compare/nextcloud-22.2.21...nextcloud-23.0.0) (2023-12-17) + +### Chore + +- update container image tccr.io/truecharts/nextcloud-fpm to v28.0.0[@a765a49](https://github.com/a765a49) by renovate ([#16069](https://github.com/truecharts/charts/issues/16069)) + + + + +## [nextcloud-22.2.21](https://github.com/truecharts/charts/compare/nextcloud-22.2.20...nextcloud-22.2.21) (2023-12-17) + +### Chore + +- update container image collabora/code to v23.05.6.3.1[@6d21951](https://github.com/6d21951) by renovate ([#16097](https://github.com/truecharts/charts/issues/16097)) + + + + +## [nextcloud-22.2.20](https://github.com/truecharts/charts/compare/nextcloud-22.2.19...nextcloud-22.2.20) (2023-12-17) + +### Chore + +- update container image tccr.io/truecharts/nextcloud-fpm to v[@e97e94d](https://github.com/e97e94d) ([#16037](https://github.com/truecharts/charts/issues/16037)) + + + + +## [nextcloud-22.2.19](https://github.com/truecharts/charts/compare/nextcloud-22.2.18...nextcloud-22.2.19) (2023-12-16) + +### Chore + +- update helm general non-major ([#14784](https://github.com/truecharts/charts/issues/14784)) + + + + +## [nextcloud-22.2.19](https://github.com/truecharts/charts/compare/nextcloud-22.2.18...nextcloud-22.2.19) (2023-12-16) + +### Chore + +- update helm general non-major ([#14784](https://github.com/truecharts/charts/issues/14784)) + + + + +## [nextcloud-22.2.18](https://github.com/truecharts/charts/compare/nextcloud-22.2.17...nextcloud-22.2.18) (2023-12-11) + +### Chore + +- update container image clamav/clamav to 1.2.1[@d584c29](https://github.com/d584c29) ([#15962](https://github.com/truecharts/charts/issues/15962)) + + + + +## [nextcloud-22.2.17](https://github.com/truecharts/charts/compare/nextcloud-22.2.16...nextcloud-22.2.17) (2023-12-08) + +### Chore + +- update container image tccr.io/truecharts/nextcloud-fpm to v27.1.4[@37c7521](https://github.com/37c7521) ([#15885](https://github.com/truecharts/charts/issues/15885)) + - update container image nginxinc/nginx-unprivileged to 1.25.3[@1d026ae](https://github.com/1d026ae) ([#15884](https://github.com/truecharts/charts/issues/15884)) + + + + +## [nextcloud-22.2.16](https://github.com/truecharts/charts/compare/nextcloud-22.2.15...nextcloud-22.2.16) (2023-12-06) + +### Chore + +- update container image nginxinc/nginx-unprivileged to 1.25.3[@a7ef461](https://github.com/a7ef461) ([#15718](https://github.com/truecharts/charts/issues/15718)) + diff --git a/stable/nextcloud/24.0.0/Chart.yaml b/stable/nextcloud/24.0.0/Chart.yaml new file mode 100644 index 00000000000..2fd9c08ebc2 --- /dev/null +++ b/stable/nextcloud/24.0.0/Chart.yaml @@ -0,0 +1,50 @@ +kubeVersion: ">=1.24.0-0" +apiVersion: v2 +name: nextcloud +version: 24.0.0 +appVersion: 27.1.4 +description: + A private cloud server that puts the control and security of your own + data back into your hands. +home: https://truecharts.org/charts/stable/nextcloud +icon: https://truecharts.org/img/hotlink-ok/chart-icons/nextcloud.png +deprecated: false +sources: + - https://github.com/nextcloud/helm + - https://github.com/truecharts/charts/tree/master/charts/stable/nextcloud + - https://github.com/truecharts/containers/tree/master/mirrornextcloud-fpm + - https://github.com/nextcloud/docker +maintainers: + - name: TrueCharts + email: info@truecharts.org + url: https://truecharts.org +keywords: + - nextcloud + - storage + - http + - web + - php +dependencies: + - name: common + version: 16.2.5 + repository: https://library-charts.truecharts.org + condition: "" + alias: "" + tags: [] + import-values: [] + - name: redis + version: 6.0.66 + repository: https://deps.truecharts.org + condition: redis.enabled + alias: "" + tags: [] + import-values: [] +annotations: + max_scale_version: 23.10.2 + min_scale_version: 23.10.0 + truecharts.org/SCALE-support: "true" + truecharts.org/category: cloud + truecharts.org/max_helm_version: "3.13" + truecharts.org/min_helm_version: "3.12" + truecharts.org/train: stable +type: application diff --git a/stable/nextcloud/24.0.0/LICENSE b/stable/nextcloud/24.0.0/LICENSE new file mode 100644 index 00000000000..33a8cbb23f0 --- /dev/null +++ b/stable/nextcloud/24.0.0/LICENSE @@ -0,0 +1,106 @@ +Business Source License 1.1 + +Parameters + +Licensor: The TrueCharts Project, it's owner and it's contributors +Licensed Work: The TrueCharts "Blocky" Helm Chart +Additional Use Grant: You may use the licensed work in production, as long + as it is directly sourced from a TrueCharts provided + official repository, catalog or source. You may also make private + modification to the directly sourced licenced work, + when used in production. + + The following cases are, due to their nature, also + defined as 'production use' and explicitly prohibited: + - Bundling, including or displaying the licensed work + with(in) another work intended for production use, + with the apparent intend of facilitating and/or + promoting production use by third parties in + violation of this license. + +Change Date: 2050-01-01 + +Change License: 3-clause BSD license + +For information about alternative licensing arrangements for the Software, +please contact: legal@truecharts.org + +Notice + +The Business Source License (this document, or the “License”) is not an Open +Source license. However, the Licensed Work will eventually be made available +under an Open Source License, as stated in this License. + +License text copyright (c) 2017 MariaDB Corporation Ab, All Rights Reserved. +“Business Source License” is a trademark of MariaDB Corporation Ab. + +----------------------------------------------------------------------------- + +Business Source License 1.1 + +Terms + +The Licensor hereby grants you the right to copy, modify, create derivative +works, redistribute, and make non-production use of the Licensed Work. The +Licensor may make an Additional Use Grant, above, permitting limited +production use. + +Effective on the Change Date, or the fourth anniversary of the first publicly +available distribution of a specific version of the Licensed Work under this +License, whichever comes first, the Licensor hereby grants you rights under +the terms of the Change License, and the rights granted in the paragraph +above terminate. + +If your use of the Licensed Work does not comply with the requirements +currently in effect as described in this License, you must purchase a +commercial license from the Licensor, its affiliated entities, or authorized +resellers, or you must refrain from using the Licensed Work. + +All copies of the original and modified Licensed Work, and derivative works +of the Licensed Work, are subject to this License. This License applies +separately for each version of the Licensed Work and the Change Date may vary +for each version of the Licensed Work released by Licensor. + +You must conspicuously display this License on each original or modified copy +of the Licensed Work. If you receive the Licensed Work in original or +modified form from a third party, the terms and conditions set forth in this +License apply to your use of that work. + +Any use of the Licensed Work in violation of this License will automatically +terminate your rights under this License for the current and all other +versions of the Licensed Work. + +This License does not grant you any right in any trademark or logo of +Licensor or its affiliates (provided that you may use a trademark or logo of +Licensor as expressly required by this License). + +TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON +AN “AS IS” BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS, +EXPRESS OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND +TITLE. + +MariaDB hereby grants you permission to use this License’s text to license +your works, and to refer to it using the trademark “Business Source License”, +as long as you comply with the Covenants of Licensor below. + +Covenants of Licensor + +In consideration of the right to use this License’s text and the “Business +Source License” name and trademark, Licensor covenants to MariaDB, and to all +other recipients of the licensed work to be provided by Licensor: + +1. To specify as the Change License the GPL Version 2.0 or any later version, + or a license that is compatible with GPL Version 2.0 or a later version, + where “compatible” means that software provided under the Change License can + be included in a program with software provided under GPL Version 2.0 or a + later version. Licensor may specify additional Change Licenses without + limitation. + +2. To either: (a) specify an additional grant of rights to use that does not + impose any additional restriction on the right granted in this License, as + the Additional Use Grant; or (b) insert the text “None”. + +3. To specify a Change Date. + +4. Not to modify this License in any other way. diff --git a/stable/nextcloud/24.0.0/README.md b/stable/nextcloud/24.0.0/README.md new file mode 100644 index 00000000000..d551b5d959d --- /dev/null +++ b/stable/nextcloud/24.0.0/README.md @@ -0,0 +1,27 @@ +# README + +## General Info + +TrueCharts can be installed as both *normal* Helm Charts or as Apps on TrueNAS SCALE. +However only installations using the TrueNAS SCALE Apps system are supported. + +For more information about this App, please check the docs on the TrueCharts [website](https://truecharts.org/charts/stable/nextcloud) + +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)** + + +## Support + +- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/manual/SCALE/guides/scale-intro). +- See the [Website](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/charts/issues/new/choose) + +--- + +## Sponsor TrueCharts + +TrueCharts can only exist due to the incredible effort of our staff. +Please consider making a [donation](https://truecharts.org/sponsor) or contributing back to the project any way you can! + +*All Rights Reserved - The TrueCharts Project* diff --git a/stable/nextcloud/24.0.0/app-changelog.md b/stable/nextcloud/24.0.0/app-changelog.md new file mode 100644 index 00000000000..2e6e26a39fb --- /dev/null +++ b/stable/nextcloud/24.0.0/app-changelog.md @@ -0,0 +1,4 @@ + + +## [nextcloud-24.0.0](https://github.com/truecharts/charts/compare/nextcloud-23.0.2...nextcloud-24.0.0) (2023-12-20) + diff --git a/stable/nextcloud/24.0.0/app-readme.md b/stable/nextcloud/24.0.0/app-readme.md new file mode 100644 index 00000000000..1369f69bf57 --- /dev/null +++ b/stable/nextcloud/24.0.0/app-readme.md @@ -0,0 +1,8 @@ +A private cloud server that puts the control and security of your own data back into your hands. + +This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/charts/stable/nextcloud](https://truecharts.org/charts/stable/nextcloud) + +--- + +TrueCharts can only exist due to the incredible effort of our staff. +Please consider making a [donation](https://truecharts.org/sponsor) or contributing back to the project any way you can! diff --git a/stable/nextcloud/24.0.0/charts/common-16.2.5.tgz b/stable/nextcloud/24.0.0/charts/common-16.2.5.tgz new file mode 100644 index 0000000000000000000000000000000000000000..8a24314324126bd3a79a3fde96b8510923a93ccd GIT binary patch literal 95720 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

n!-60` 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 T!1VtI00960ciOJl03Hkg|7t>L literal 0 HcmV?d00001 diff --git a/stable/nextcloud/24.0.0/charts/redis-6.0.66.tgz b/stable/nextcloud/24.0.0/charts/redis-6.0.66.tgz new file mode 100644 index 0000000000000000000000000000000000000000..77495e13510153471df97d9b62ed06bc16d24bbe GIT binary patch literal 137361 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�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%0DAQLl_aZ{9j7YAhuK8mi`ocrv@2738&ZfbT{ znC`pMzoNTxN`L)Zj@_|BFS+BD_zy1%dMxB}%F4-abG;qa^dD?7g-CpOR8!MAt0zdQ zsqNa3^c_zvh}t%qR&%HpS=D;QCQ-`rX5jZLUh5N`z|7Z#m6_aBVDi;?T_rX8iXXFM z*nIOqu)OXwW)CE3E~yGmEose`>5^e?Ds)k6L37evCO3^H3C`B*P#u#?u`csVv1kq3 zV0Id}hG>hZsGEehE3q0-u9H?NUY;jY=O1|2?$X9wziYj~+!vb#7adCrn}Ws${L68k z?%%x)uLeS1=`Pd)6HK#=D|SRg$2I zp>-TLsSC@C#{t!MgVQZ!9=-w_4WtjO?*Z`qQDF1k0rSDZ#6a>#g2#6Q#trx#Xmcba z-h;gdmgE2!9s#_=%Q6Ck59abtfWG$ty$!G(>G~MB+a*irrgH?)JxH72Ir*vMbdSP$ z0jmm-XIF%GkD$*(sO~;^Ze$bhg5*Zgz~Pf(B0{?hHrvHsBbq=OD(gjEBdx~p*a+Sl zX)%bz#*x-Yi!lr~1!Ijg?LlA1p{tR$o1i2ExN2eyp`eNuLs1_CKiw5Mg?UU@T}ET3 zgW;!AaMDLZNO!_U2h2f6p`s&@&ml@i(9XxfIiCpO92NvasOF>KnQ2I78iqL*y)=5o z0A}*AxMeC@GmKR}5K5VdxTPVJyI_)`h@9^84@OKN{OL>JL7*Xq7%j!l94|jx)+2P_Q3q&2h5m1w-@1y ztg(C3sR1v6rtdDzeFNIp`5xtTqE5#95iYG=w?~bnWj+nsOZFza79HT`2-El>srEJY zw%=%yqLi%$4cX09+lfjaa>A^oF{C>fh5Mg_QTV|qe7`{+jKU8_;RmDeZOR?&rVn=0 z2fOL!IoM4f?4}QP(+9ihgWdGjbFiE4J_oz$gWdGOZu($1eXyH8*i9eorrYOFYB#;J z4TWVXeZ5B?YD}V^hqj^!hnIs+=x(VAE%Qk?>fOP{;$UNOu(3GUSUgi3i$jFu!*h5J W&*AygKK~T}0RR705`S3$4iNx=lP6vP literal 0 HcmV?d00001 diff --git a/stable/nextcloud/24.0.0/ix_values.yaml b/stable/nextcloud/24.0.0/ix_values.yaml new file mode 100644 index 00000000000..a4cf48ce193 --- /dev/null +++ b/stable/nextcloud/24.0.0/ix_values.yaml @@ -0,0 +1,512 @@ +image: + repository: tccr.io/truecharts/nextcloud-fpm + pullPolicy: IfNotPresent + tag: v28.0.0@sha256:a765a49bafef4e3e6c1f874c5ee1c4d2ce39b2bd6793b9a2e044ed75645bbc1a +nginxImage: + repository: nginxinc/nginx-unprivileged + pullPolicy: IfNotPresent + tag: 1.25.3@sha256:1d026ae92e50e76c77ca776f234f154d4a1d39e33e8f813115e53c2a9b893bc9 +imaginaryImage: + repository: tccr.io/truecharts/nextcloud-imaginary + pullPolicy: IfNotPresent + tag: v20230401@sha256:6a227d1b0200d29f25028e07b8852f60e3d91a5814048933e70eccee749dc04c +hpbImage: + repository: tccr.io/truecharts/nextcloud-push-notify + pullPolicy: IfNotPresent + tag: v0.6.3@sha256:b9c35ab123354eeac3996e361f8c30b8e4de6d2ccd69e5179a7c2a101a67b46f +clamavImage: + repository: clamav/clamav + pullPolicy: IfNotPresent + tag: 1.2.1@sha256:d584c29eefc29e138eb14f243abef2f6712cffecac52194626a2b2f6bb3ec2c7 +collaboraImage: + repository: collabora/code + pullPolicy: IfNotPresent + tag: 23.05.6.3.1@sha256:6d21951e6376be4a12009b5058c57f3da7df06faf05c62406030b3652a3e78f6 +nextcloud: + # Initial Credentials + credentials: + initialAdminUser: admin + initialAdminPassword: adminpass + # General settings + general: + # Custom Nextcloud Scripts + run_optimize: true + default_phone_region: GR + # IP used for exposing nextcloud, + # often the loadbalancer IP + accessIP: "" + # Allows Nextcloud to connect to unsecure (http) endpoints + force_enable_allow_local_remote_servers: false + # File settings + files: + shared_folder_name: Shared + max_chunk_size: 10485760 + # Expiration settings + expirations: + activity_expire_days: 90 + trash_retention_obligation: auto + versions_retention_obligation: auto + # Previews settings + previews: + enabled: true + # It will also deploy the container + imaginary: true + cron: true + schedule: "*/30 * * * *" + max_x: 2048 + max_y: 2048 + max_memory: 1024 + max_file_size_image: 50 + # Setting for Imaginary + max_allowed_resolution: 18.0 + jpeg_quality: 60 + square_sizes: 32 256 + width_sizes: 256 384 + height_sizes: 256 + # Casings are important + # https://github.com/nextcloud/server/blob/master/config/config.sample.php#L1269 + # Only the last part of the provider is needed + providers: + - PNG + - JPEG + # Logging settings + logging: + log_level: 2 + log_file: /var/www/html/data/logs/nextcloud.log + log_audit_file: /var/www/html/data/logs/audit.log + log_date_format: d/m/Y H:i:s + # ClamAV settings + clamav: + # It will also deploy the container + # Note that this runs as root + enabled: false + stream_max_length: 26214400 + file_max_size: -1 + infected_action: only_log + # Notify Push settings + notify_push: + # It will also deploy the container + enabled: true + # Collabora settings + collabora: + # It will also deploy the container + enabled: false + # default|compact|tabbed + interface_mode: default + username: admin + password: changeme + dictionaries: + - de_DE + - en_GB + - en_US + - el_GR + - es_ES + - fr_FR + - pt_BR + - pt_PT + - it + - nl + - ru + onlyoffice: + # It will not deploy the container + # Only add the OnlyOffice settings + enabled: false + url: "" + internal_url: "" + verify_ssl: true + jwt: "" + jwt_header: Authorization + # PHP settings + php: + memory_limit: 1G + upload_limit: 10G + pm_max_children: 180 + pm_start_servers: 18 + pm_min_spare_servers: 12 + pm_max_spare_servers: 30 + opcache: + interned_strings_buffer: 32 + max_accelerated_files: 10000 + memory_consumption: 128 + revalidate_freq: 60 + jit_buffer_size: 128 +# Do NOT edit below this line +workload: + # Nextcloud php-fpm + main: + type: Deployment + podSpec: + containers: + main: + enabled: true + primary: true + envFrom: + - configMapRef: + name: nextcloud-config + probes: + liveness: + enabled: true + type: exec + command: /healthcheck.sh + readiness: + enabled: true + type: exec + command: /healthcheck.sh + startup: + enabled: true + type: tcp + port: "{{ .Values.service.nextcloud.ports.nextcloud.targetPort }}" + nginx: + enabled: true + type: Deployment + strategy: RollingUpdate + replicas: 1 + podSpec: + containers: + nginx: + enabled: true + primary: true + imageSelector: nginxImage + probes: + readiness: + enabled: true + path: /robots.txt + port: "{{ .Values.service.main.ports.main.port }}" + httpHeaders: + Host: kube.internal.healthcheck + liveness: + enabled: true + path: /robots.txt + port: "{{ .Values.service.main.ports.main.port }}" + httpHeaders: + Host: kube.internal.healthcheck + startup: + enabled: true + type: tcp + port: "{{ .Values.service.main.ports.main.port }}" + notify: + enabled: true + type: Deployment + strategy: RollingUpdate + replicas: 1 + podSpec: + containers: + notify: + primary: true + enabled: true + imageSelector: hpbImage + envFrom: + - configMapRef: + name: hpb-config + probes: + readiness: + enabled: true + path: /push/test/cookie + port: 7867 + httpHeaders: + Host: kube.internal.healthcheck + liveness: + enabled: true + path: /push/test/cookie + port: 7867 + httpHeaders: + Host: kube.internal.healthcheck + startup: + enabled: true + type: tcp + port: 7867 + imaginary: + enabled: true + type: Deployment + strategy: RollingUpdate + replicas: 1 + podSpec: + containers: + imaginary: + primary: true + enabled: true + imageSelector: imaginaryImage + command: imaginary + args: + - -p + - "{{ .Values.service.imaginary.ports.imaginary.port }}" + - -concurrency + - "10" + - -max-allowed-resolution + - "{{ .Values.nextcloud.previews.max_allowed_resolution }}" + - -enable-url-source + - -return-size + probes: + readiness: + enabled: true + path: /health + port: "{{ .Values.service.imaginary.ports.imaginary.port }}" + liveness: + enabled: true + path: /health + port: "{{ .Values.service.imaginary.ports.imaginary.port }}" + startup: + enabled: true + type: tcp + port: "{{ .Values.service.imaginary.ports.imaginary.port }}" + clamav: + enabled: true + type: Deployment + strategy: RollingUpdate + replicas: 1 + podSpec: + containers: + clamav: + primary: true + enabled: true + imageSelector: clamavImage + # FIXME: https://github.com/Cisco-Talos/clamav/issues/478 + securityContext: + runAsUser: 0 + runAsGroup: 0 + runAsNonRoot: false + readOnlyRootFilesystem: false + envFrom: + - configMapRef: + name: clamav-config + probes: + readiness: + enabled: true + type: exec + command: clamdcheck.sh + liveness: + enabled: true + type: exec + command: clamdcheck.sh + startup: + enabled: true + type: tcp + port: "{{ .Values.service.clamav.ports.clamav.targetPort }}" + collabora: + enabled: true + type: Deployment + strategy: RollingUpdate + replicas: 1 + podSpec: + containers: + collabora: + primary: true + enabled: true + imageSelector: collaboraImage + securityContext: + runAsUser: 100 + runAsGroup: 102 + readOnlyRootFilesystem: false + allowPrivilegeEscalation: true + capabilities: + add: + - CHOWN + - FOWNER + - SYS_CHROOT + - MKNOD + envFrom: + - configMapRef: + name: collabora-config + probes: + readiness: + enabled: true + type: http + path: /collabora/ + port: "{{ .Values.service.collabora.ports.collabora.targetPort }}" + liveness: + enabled: true + type: http + path: /collabora/ + port: "{{ .Values.service.collabora.ports.collabora.targetPort }}" + startup: + enabled: true + type: tcp + port: "{{ .Values.service.collabora.ports.collabora.targetPort }}" +cronjobs: + # Don't change names, it's used in the persistence + - name: nextcloud-cron + enabled: true + schedule: "*/5 * * * *" + cmd: + - echo "Running [php -f /var/www/html/cron.php] ..." + - php -f /var/www/html/cron.php + - echo "Finished [php -f /var/www/html/cron.php]" + - name: preview-cron + enabled: "{{ .Values.nextcloud.previews.cron }}" + schedule: "{{ .Values.nextcloud.previews.schedule }}" + cmd: + - echo "Running [occ preview:pre-generate] ..." + - occ preview:pre-generate + - echo "Finished [occ preview:pre-generate]" +service: + # Main service links to ingress easier + # That's why the nginx is swapped with nextcloud + main: + targetSelector: nginx + ports: + main: + targetSelector: nginx + port: 8080 + nextcloud: + enabled: true + targetSelector: main + ports: + nextcloud: + enabled: true + targetSelector: main + port: 9000 + targetPort: 9000 + notify: + enabled: true + targetSelector: notify + ports: + notify: + enabled: true + primary: true + port: 7867 + targetPort: 7867 + targetSelector: notify + metrics: + enabled: true + port: 7868 + targetSelector: notify + imaginary: + enabled: true + targetSelector: imaginary + ports: + imaginary: + enabled: true + port: 9090 + targetSelector: imaginary + clamav: + enabled: true + targetSelector: clamav + ports: + clamav: + enabled: true + port: 3310 + targetPort: 3310 + targetSelector: clamav + collabora: + enabled: true + targetSelector: collabora + ports: + collabora: + enabled: true + port: 9980 + targetPort: 9980 + targetSelector: collabora +persistence: + php-tune: + enabled: true + type: configmap + objectName: php-tune + targetSelector: + main: + main: + mountPath: /usr/local/etc/php-fpm.d/zz-tune.conf + subPath: zz-tune.conf + readOnly: true + redis-session: + enabled: true + type: configmap + objectName: redis-session + targetSelector: + main: + main: + mountPath: /usr/local/etc/php/conf.d/redis-session.ini + subPath: redis-session.ini + readOnly: true + opcache-recommended: + enabled: true + type: configmap + objectName: opcache + targetSelector: + main: + main: + mountPath: /usr/local/etc/php/conf.d/opcache-recommended.ini + subPath: opcache-recommended.ini + readOnly: true + nginx: + enabled: true + type: configmap + objectName: nginx-config + targetSelector: + nginx: + nginx: + mountPath: /etc/nginx/nginx.conf + subPath: nginx.conf + readOnly: true + nginx-temp: + enabled: true + type: emptyDir + targetSelector: + nginx: + nginx: + mountPath: /tmp/nginx + html: + enabled: true + targetSelector: + main: + main: + mountPath: /var/www/html + nextcloud-cron: + nextcloud-cron: + mountPath: /var/www/html + preview-cron: + preview-cron: + mountPath: /var/www/html + nginx: + nginx: + mountPath: /var/www/html + readOnly: true + config: + enabled: true + targetSelector: + main: + main: + mountPath: /var/www/html/config + nextcloud-cron: + nextcloud-cron: + mountPath: /var/www/html/config + preview-cron: + preview-cron: + mountPath: /var/www/html/config + notify: + notify: + mountPath: /var/www/html/config + readOnly: true + nginx: + nginx: + mountPath: /var/www/html/config + readOnly: true + data: + enabled: true + targetSelector: + main: + main: + mountPath: /var/www/html/data + init-perms: + mountPath: /var/www/html/data + nextcloud-cron: + nextcloud-cron: + mountPath: /var/www/html/data + preview-cron: + preview-cron: + mountPath: /var/www/html/data + nginx: + nginx: + mountPath: /var/www/html/data + readOnly: true +cnpg: + main: + enabled: true + user: nextcloud + database: nextcloud +redis: + enabled: true + username: default +portal: + open: + enabled: true +updated: true diff --git a/stable/nextcloud/24.0.0/questions.yaml b/stable/nextcloud/24.0.0/questions.yaml new file mode 100644 index 00000000000..ead3e38e3b2 --- /dev/null +++ b/stable/nextcloud/24.0.0/questions.yaml @@ -0,0 +1,3778 @@ +groups: + - name: Container Image + description: Image to be used for container + - name: General Settings + description: General Deployment Settings + - name: Workload Settings + description: Workload Settings + - name: App Configuration + description: App Specific Config Options + - name: Networking and Services + description: Configure Network and Services for Container + - name: Storage and Persistence + description: Persist and Share Data that is Separate from the Container + - name: Ingress + description: Ingress Configuration + - name: Security and Permissions + description: Configure Security Context and Permissions + - name: Resources and Devices + description: "Specify Resources/Devices to be Allocated to Workload" + - name: Middlewares + description: Traefik Middlewares + - name: Metrics + description: Metrics + - name: Addons + description: Addon Configuration + - name: Advanced + description: Advanced Configuration + - name: Postgresql + description: Postgresql + - name: Documentation + description: Documentation +portals: + open: + protocols: + - "$kubernetes-resource_configmap_tcportal-open_protocol" + host: + - "$kubernetes-resource_configmap_tcportal-open_host" + ports: + - "$kubernetes-resource_configmap_tcportal-open_port" +questions: + - variable: global + group: General Settings + label: "Global Settings" + schema: + additional_attrs: true + type: dict + attrs: + - variable: stopAll + label: Stop All + description: "Stops All Running pods and hibernates cnpg" + schema: + type: boolean + default: false + - variable: workload + group: "Workload Settings" + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type (Advanced) + schema: + type: string + default: Deployment + enum: + - value: Deployment + description: Deployment + - value: DaemonSet + description: DaemonSet + - variable: replicas + label: Replicas (Advanced) + description: Set the number of Replicas + schema: + type: int + show_if: [["type", "!=", "DaemonSet"]] + default: 1 + - variable: podSpec + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: containers + label: Containers + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: Main Container + schema: + additional_attrs: true + type: dict + attrs: + - variable: envList + label: Extra Environment Variables + description: "Please be aware that some variables are set in the background, adding duplicates here might cause issues or prevent the app from starting..." + schema: + type: list + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: extraArgs + label: Extra Args + schema: + type: list + default: [] + items: + - variable: arg + label: Arg + schema: + type: string + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: command + label: Command + schema: + type: list + default: [] + items: + - variable: param + label: Param + schema: + type: string + - variable: TZ + label: Timezone + group: "General Settings" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: nextcloud + group: App Configuration + label: Nextcloud + schema: + additional_attrs: true + type: dict + attrs: + - variable: credentials + label: Initial Credentials + schema: + additional_attrs: true + type: dict + attrs: + - variable: initialAdminUser + label: Initial Admin User + description: Sets the initial admin username + schema: + type: string + required: true + default: "" + - variable: initialAdminPassword + label: Initial Admin Password + description: Sets the initial admin password + schema: + type: string + required: true + private: true + default: "" + - variable: general + label: General + schema: + additional_attrs: true + type: dict + attrs: + - variable: run_optimize + label: Run Optimize Scripts + description: | + Runs the following commands at startup:
+ occ db:add-missing-indices
+ occ db:add-missing-columns
+ occ db:add-missing-primary-keys
+ yes | occ db:convert-filecache-bigint
+ occ maintenance:mimetype:update-js
+ occ maintenance:mimetype:update-db
+ occ maintenance:update:htaccess
+ schema: + type: boolean + default: false + - variable: default_phone_region + label: Default Phone Region + description: | + Sets the default phone region in ISO_3166-1 format (e.g. US).
+ https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements + schema: + type: string + valid_chars: '^[A-Z]{2}$' + required: true + default: "" + - variable: accessIP + label: Access IP + description: Set to the IP-Address used to reach Nextcloud. + schema: + type: string + required: true + $ref: + - "definitions/nodeIP" + - variable: force_enable_allow_local_remote_servers + label: Force Enable Allow Local Remote Servers + description: + Enables 'allow_local_remote_servers' option + schema: + type: boolean + default: false + - variable: files + label: Files Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: shared_folder_name + label: Shared Folder Name + schema: + type: string + required: true + default: Shared + - variable: max_chunk_size + label: Max Chunk Size + schema: + type: int + required: true + default: 10485760 + - variable: expirations + label: Expirations Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: activity_expire_days + label: Activity Expire Days + schema: + type: int + required: true + default: 90 + - variable: trash_retention_obligation + label: Trash Retention Obligation + schema: + type: string + required: true + default: auto + - variable: versions_retention_obligation + label: Versions Retention Obligation + schema: + type: string + required: true + default: auto + - variable: previews + label: Previews Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Previews + schema: + type: boolean + default: true + show_subquestions_if: true + subquestions: + - variable: imaginary + label: Enable imaginary + description: | + Enable imaginary to generate previews in the background.
+ It will also deploy the needed container. + schema: + type: boolean + default: true + - variable: cron + label: Enable cron + description: | + Enable cron to generate previews in the background. + schema: + type: boolean + default: true + - variable: schedule + label: Cron Schedule + schema: + type: string + default: "*/30 * * * *" + - variable: max_x + label: Max X + schema: + type: int + required: true + default: 2048 + - variable: max_y + label: Max Y + schema: + type: int + required: true + default: 2048 + - variable: max_memory + label: Max Memory + schema: + type: int + required: true + default: 1024 + - variable: max_allowed_resolution + label: Max Allowed Resolution + schema: + type: string + valid_chars: '^[0-9]{1,5}(\.[0-9]{1,2})?$' + show_if: [["imaginary", "=", true]] + required: true + default: "18.0" + - variable: max_file_size_image + label: Max File Size Image + schema: + type: int + required: true + default: 50 + - variable: jpeg_quality + label: JPEG Quality + schema: + type: int + required: true + default: 60 + - variable: square_sizes + label: Square Sizes + schema: + type: string + required: true + default: "32 256" + - variable: width_sizes + label: Width Sizes + schema: + type: string + required: true + default: "256 384" + - variable: height_sizes + label: Height Sizes + schema: + type: string + required: true + default: "256" + - variable: providers + label: Providers + schema: + type: list + empty: false + required: true + default: + - BMP + - GIF + - JPEG + - Krita + - MarkDown + - MP3 + - OpenDocument + - PNG + - TXT + - XBitmap + items: + - variable: provider_entry + label: Provider Entry + schema: + type: string + required: true + default: "" + enum: + - value: BMP + description: BMP + - value: Font + description: Font + - value: GIF + description: GIF + - value: HEIC + description: HEIC + - value: Illustrator + description: Illustrator + - value: JPEG + description: JPEG + - value: Krita + description: Krita + - value: MarkDown + description: MarkDown + - value: Movie + description: Movie + - value: MP3 + description: MP3 + - value: MSOffice2003 + description: MSOffice2003 + - value: MSOffice2007 + description: MSOffice2007 + - value: MSOfficeDoc + description: MSOfficeDoc + - value: OpenDocument + description: OpenDocument + - value: PDF + description: PDF + - value: Photoshop + description: Photoshop + - value: PNG + description: PNG + - value: Postscript + description: Postscript + - value: StarOffice + description: StarOffice + - value: SVG + description: SVG + - value: TIFF + description: TIFF + - value: TXT + description: TXT + - value: XBitmap + description: XBitmap + - variable: logging + label: Logging Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: log_level + label: Log Level + schema: + type: int + required: true + default: 2 + enum: + - value: 0 + description: Debug + - value: 1 + description: Info + - value: 2 + description: Warning + - value: 3 + description: Error + - value: 4 + description: Fatal + - variable: log_date_format + label: Log Date Format + schema: + type: string + required: true + default: d/m/Y H:i:s + - variable: notify_push + label: Notify Push Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Notify Push + description: | + Enable and Configure Notify Push.
+ It will also deploy the needed container + schema: + type: boolean + default: true + - variable: clamav + label: ClamAV Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable ClamAV + description: | + Enable and configure ClamAV.
+ It will also deploy the needed container.
+ Keep in mind that this will run as root.
+ https://github.com/Cisco-Talos/clamav/issues/478 + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: stream_max_length + label: Stream Max Length + schema: + type: int + required: true + default: 104857600 + - variable: file_max_size + label: File Max Size + schema: + type: int + required: true + default: -1 + - variable: infected_action + label: Infected Action + schema: + type: string + required: true + default: only_log + enum: + - value: delete + description: Delete + - value: only_log + description: Only Log + - variable: collabora + label: Collabora Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Collabora + description: | + Enable and configure Collabora.
+ It will also deploy the needed container.
+ Keep in mind that this will run as root. + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: interface_mode + label: Interface Mode + schema: + type: string + required: true + default: default + enum: + - value: default + description: Default + - value: compact + description: Compact + - value: tabbed + description: Tabbed + - variable: username + label: Username + schema: + type: string + default: admin + required: true + - variable: password + label: Password + schema: + type: string + default: "" + required: true + - variable: dictionaries + label: Dictionaries + schema: + type: list + empty: false + required: true + default: + - de_DE + - en_GB + - en_US + - el_GR + - es_ES + - fr_FR + - pt_BR + - pt_PT + - it + - nl + - ru + items: + - variable: dictionary + label: Dictionary + schema: + type: string + required: true + default: "" + - variable: onlyoffice + label: Only Office Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable OnlyOffice + description: | + Enable and configure OnlyOffice.
+ This will NOT deploy the needed container.
+ You need to deploy it yourself. + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: url + label: Public URL + description: | + The public FQDN and port of the OnlyOffice Document Server + schema: + type: string + required: true + default: "" + - variable: internal_url + label: Internal URL + description: | + The internal FQDN and port of the OnlyOffice Document Server + schema: + type: string + required: true + default: "" + - variable: verify_ssl + label: Verify SSL (Advanced) + description: | + Verify SSL when connecting to OnlyOffice Document Server + schema: + type: boolean + default: true + - variable: jwt + label: JWT + schema: + type: string + required: true + default: "" + - variable: jwt_header + label: JWT Header + schema: + type: string + required: true + default: Authorization + - variable: php + label: PHP Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: memory_limit + label: Memory Limit + schema: + type: string + required: true + default: 1G + - variable: upload_limit + label: Upload Limit + schema: + type: string + required: true + default: 10G + - variable: pm_max_children + label: Max Children + schema: + type: int + required: true + default: 180 + - variable: pm_start_servers + label: Start Servers + schema: + type: int + required: true + default: 18 + - variable: pm_min_spare_servers + label: Minimum Spare Servers + schema: + type: int + required: true + default: 12 + - variable: pm_max_spare_servers + label: Maximum Spare Servers + schema: + type: int + required: true + default: 30 + - variable: opcache + label: OPCache Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: interned_strings_buffer + label: Interned Strings Buffer + description: The amount of memory used to store interned strings, in megabytes. + schema: + type: int + required: true + default: 32 + - variable: max_accelerated_files + label: Max Accelerated Files + description: The maximum number of keys (and therefore scripts) in the OPcache hash table. + schema: + type: int + required: true + default: 10000 + - variable: memory_consumption + label: Memory Consumption + description: The size of the shared memory storage used by OPcache, in megabytes. + schema: + type: int + required: true + default: 128 + - variable: revalidate_freq + label: Revalidate Frequency + description: How often to check script timestamps for updates, in seconds. 0 will result in OPcache checking for updates on every request. + schema: + type: int + required: true + default: 60 + - variable: jit_buffer_size + label: JIT Buffer Size + description: The amount of shared memory (in megabytes) to reserve for compiled JIT code. A zero value disables the JIT. + schema: + type: int + required: true + default: 128 + + - variable: podOptions + group: "General Settings" + label: "Global Pod Options (Advanced)" + schema: + additional_attrs: true + type: dict + attrs: + - variable: expertPodOpts + label: "Expert - Pod Options" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + label: "Host Networking" + schema: + type: boolean + default: false + - variable: dnsConfig + label: "DNS Configuration" + schema: + type: dict + additional_attrs: true + attrs: + - variable: options + label: "Options" + schema: + type: list + default: [{"name": "ndots", "value": "1"}] + items: + - variable: optionsEntry + label: "Option Entry" + schema: + type: dict + additional_attrs: true + attrs: + - variable: name + label: "Name" + schema: + type: string + required: true + - variable: value + label: "Value" + schema: + type: string + - variable: nameservers + label: "Nameservers" + schema: + type: list + default: [] + items: + - variable: nsEntry + label: "Nameserver Entry" + schema: + type: string + required: true + - variable: searches + label: "Searches" + schema: + type: list + default: [] + items: + - variable: searchEntry + label: "Search Entry" + schema: + type: string + required: true + + - variable: imagePullSecretList + group: "General Settings" + label: "Image Pull Secrets" + schema: + type: list + default: [] + items: + - variable: pullsecretentry + label: "Pull Secret" + schema: + type: dict + additional_attrs: true + attrs: + - variable: registry + label: "Registry" + schema: + type: string + required: true + default: "https://index.docker.io/v1/" + - variable: username + label: "Username" + schema: + type: string + required: true + default: "" + - variable: password + label: "Password" + schema: + type: string + required: true + default: "" + - variable: email + label: "Email" + schema: + type: string + required: true + default: "" + - variable: service + group: Networking and Services + label: Configure Service(s) + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: Main Service + description: The Primary service on which the healthcheck runs, often the webUI + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the Service + schema: + type: boolean + default: true + hidden: true + - variable: type + label: Service Type + description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: LoadBalancer + enum: + - value: LoadBalancer + description: LoadBalancer (Expose Ports) + - value: ClusterIP + description: ClusterIP (Do Not Expose Ports) + - variable: loadBalancerIP + label: LoadBalancer IP + description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: ports + label: "Service's Port(s) Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: Main Service Port Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + description: This port exposes the container port on the service + schema: + type: int + default: 12000 + required: true + - variable: serviceexpert + group: Networking and Services + label: Show Expert Config + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: scaleExternalInterface + description: Add External Interfaces + label: Add external Interfaces + group: Networking + schema: + type: list + items: + - variable: interfaceConfiguration + description: Interface Configuration + label: Interface Configuration + schema: + additional_attrs: true + type: dict + $ref: + - "normalize/interfaceConfiguration" + attrs: + - variable: hostInterface + description: Please Specify Host Interface + label: Host Interface + schema: + type: string + required: true + $ref: + - "definitions/interface" + - variable: ipam + description: Define how IP Address will be managed + label: IP Address Management + schema: + additional_attrs: true + type: dict + required: true + attrs: + - variable: type + description: Specify type for IPAM + label: IPAM Type + schema: + type: string + required: true + enum: + - value: dhcp + description: Use DHCP + - value: static + description: Use Static IP + - variable: staticIPConfigurations + label: Static IP Addresses + schema: + type: list + show_if: [["type", "=", "static"]] + items: + - variable: staticIP + label: Static IP + schema: + type: ipaddr + cidr: true + - variable: staticRoutes + label: Static Routes + schema: + type: list + show_if: [["type", "=", "static"]] + items: + - variable: staticRouteConfiguration + label: Static Route Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: destination + label: Destination + schema: + type: ipaddr + cidr: true + required: true + - variable: gateway + label: Gateway + schema: + type: ipaddr + cidr: false + required: true + - variable: serviceList + label: Add Manual Custom Services + group: Networking and Services + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: Custom Service + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the service + schema: + type: boolean + default: true + hidden: true + - variable: name + label: Name + schema: + type: string + default: "" + - variable: type + label: Service Type + description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: LoadBalancer + enum: + - value: LoadBalancer + description: LoadBalancer (Expose Ports) + - value: ClusterIP + description: ClusterIP (Do Not Expose Ports) + - value: Simple + description: Deprecated CHANGE THIS + - variable: loadBalancerIP + label: LoadBalancer IP + description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: advancedsvcset + label: Show Advanced Service Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + type: list + default: [] + items: + - variable: externalIP + label: External IP + schema: + type: string + - variable: ipFamilyPolicy + label: IP Family Policy + description: Specify the IP Policy + schema: + type: string + default: SingleStack + enum: + - value: SingleStack + description: SingleStack + - value: PreferDualStack + description: PreferDualStack + - value: RequireDualStack + description: RequireDualStack + - variable: ipFamilies + label: IP Families + description: (Advanced) The IP Families that should be used + schema: + type: list + default: [] + items: + - variable: ipFamily + label: IP Family + schema: + type: string + - variable: portsList + label: Additional Service Ports + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: Custom ports + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the Port + schema: + type: boolean + default: true + hidden: true + - variable: name + label: Port Name + schema: + type: string + default: "" + - variable: protocol + label: Port Type + schema: + type: string + default: tcp + enum: + - value: http + description: HTTP + - value: https + description: HTTPS + - value: tcp + description: TCP + - value: udp + description: UDP + - variable: targetPort + label: Target Port + description: This port exposes the container port on the service + schema: + type: int + required: true + - variable: port + label: Container Port + schema: + type: int + required: true + - variable: persistence + label: Integrated Persistent Storage + description: Integrated Persistent Storage + group: Storage and Persistence + schema: + additional_attrs: true + type: dict + attrs: + - variable: html + label: App HTML Storage + description: Stores the Application HTML. + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: pvc + enum: + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: emptyDir + description: emptyDir + - value: nfs + description: NFS Share + - value: iscsi + description: iSCSI Share + - variable: server + label: NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: path + label: Path on NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: iscsi + label: iSCSI Options + schema: + show_if: [["type", "=", "iscsi"]] + type: dict + additional_attrs: true + attrs: + - variable: targetPortal + label: targetPortal + schema: + type: string + required: true + default: "" + - variable: iqn + label: iqn + schema: + type: string + required: true + default: "" + - variable: lun + label: lun + schema: + type: int + default: 0 + - variable: authSession + label: authSession + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: authDiscovery + label: authDiscovery + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + + - variable: autoPermissions + label: Automatic Permissions Configuration + description: Automatically set permissions + schema: + show_if: [["type", "!=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: chown + label: Run CHOWN + description: | + It will run CHOWN on the path with the given fsGroup + schema: + type: boolean + default: false + - variable: chmod + label: Run CHMOD + description: | + It will run CHMOD on the path with the given value
+ Format should be 3 digits, e.g. 770 + schema: + type: string + valid_chars: '[0-9]{3}' + default: "" + - variable: recursive + label: Recursive + description: | + It will run CHOWN and CHMOD recursively + schema: + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - variable: hostPath + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: medium + label: EmptyDir Medium + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: Memory + description: Memory + - variable: size + label: Size quotum of Storage (Do NOT REDUCE after installation) + description: This value can ONLY be INCREASED after the installation + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: storageClass + label: 'storageClass (Advanced)' + description: 'sets the storageClass to something other than iX default. Only for advanced usecases!' + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "" + - variable: static + label: 'Static Fixed PVC Bindings (Experimental)' + description: Link a PVC to a specific storage location + schema: + show_if: [["type", "=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: mode + label: mode + description: | + disabled: use normal dynamic PVCs + smb: connect to an SMB share + nfs: connect to an NFS share + schema: + type: string + default: "disabled" + enum: + - value: disabled + description: disabled + - value: smb + description: smb + - value: nfs + description: nfs + - variable: server + label: Server + description: server to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "myserver" + - variable: share + label: Share + description: share to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "/myshare" + - variable: user + label: User + description: connecting user + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "myuser" + - variable: domain + label: Domain + description: user domain + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: password + label: Password + description: connecting password + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: volumeSnapshots + label: 'Volume Snapshots (Experimental)' + description: Add an entry to the list to force creation of a volumeSnapshot of this PVC + schema: + show_if: [["type", "=", "pvc"]] + type: list + default: [] + items: + - variable: volumeSnapshotEntry + label: Custom volumeSnapshot + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: 'WARNING: renaming this, means deletion of the snapshot with the old name!' + schema: + type: string + default: "mysnapshot" + required: true + - variable: volumeSnapshotClassName + label: 'volumeSnapshot Class Name (Advanced)' + description: For use with PVCs using a non-default storageClass + schema: + type: string + default: "" + - variable: config + label: App Config Storage + description: Stores the Application Config. + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: pvc + enum: + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: emptyDir + description: emptyDir + - value: nfs + description: NFS Share + - value: iscsi + description: iSCSI Share + - variable: server + label: NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: path + label: Path on NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: iscsi + label: iSCSI Options + schema: + show_if: [["type", "=", "iscsi"]] + type: dict + additional_attrs: true + attrs: + - variable: targetPortal + label: targetPortal + schema: + type: string + required: true + default: "" + - variable: iqn + label: iqn + schema: + type: string + required: true + default: "" + - variable: lun + label: lun + schema: + type: int + default: 0 + - variable: authSession + label: authSession + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: authDiscovery + label: authDiscovery + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + + - variable: autoPermissions + label: Automatic Permissions Configuration + description: Automatically set permissions + schema: + show_if: [["type", "!=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: chown + label: Run CHOWN + description: | + It will run CHOWN on the path with the given fsGroup + schema: + type: boolean + default: false + - variable: chmod + label: Run CHMOD + description: | + It will run CHMOD on the path with the given value
+ Format should be 3 digits, e.g. 770 + schema: + type: string + valid_chars: '[0-9]{3}' + default: "" + - variable: recursive + label: Recursive + description: | + It will run CHOWN and CHMOD recursively + schema: + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - variable: hostPath + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: medium + label: EmptyDir Medium + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: Memory + description: Memory + - variable: size + label: Size quotum of Storage (Do NOT REDUCE after installation) + description: This value can ONLY be INCREASED after the installation + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: storageClass + label: 'storageClass (Advanced)' + description: 'sets the storageClass to something other than iX default. Only for advanced usecases!' + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "" + - variable: static + label: 'Static Fixed PVC Bindings (Experimental)' + description: Link a PVC to a specific storage location + schema: + show_if: [["type", "=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: mode + label: mode + description: | + disabled: use normal dynamic PVCs + smb: connect to an SMB share + nfs: connect to an NFS share + schema: + type: string + default: "disabled" + enum: + - value: disabled + description: disabled + - value: smb + description: smb + - value: nfs + description: nfs + - variable: server + label: Server + description: server to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "myserver" + - variable: share + label: Share + description: share to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "/myshare" + - variable: user + label: User + description: connecting user + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "myuser" + - variable: domain + label: Domain + description: user domain + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: password + label: Password + description: connecting password + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: volumeSnapshots + label: 'Volume Snapshots (Experimental)' + description: Add an entry to the list to force creation of a volumeSnapshot of this PVC + schema: + show_if: [["type", "=", "pvc"]] + type: list + default: [] + items: + - variable: volumeSnapshotEntry + label: Custom volumeSnapshot + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: 'WARNING: renaming this, means deletion of the snapshot with the old name!' + schema: + type: string + default: "mysnapshot" + required: true + - variable: volumeSnapshotClassName + label: 'volumeSnapshot Class Name (Advanced)' + description: For use with PVCs using a non-default storageClass + schema: + type: string + default: "" + - variable: data + label: User Data Storage + description: Stores the User Data. + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: pvc + enum: + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: emptyDir + description: emptyDir + - value: nfs + description: NFS Share + - value: iscsi + description: iSCSI Share + - variable: server + label: NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: path + label: Path on NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: iscsi + label: iSCSI Options + schema: + show_if: [["type", "=", "iscsi"]] + type: dict + additional_attrs: true + attrs: + - variable: targetPortal + label: targetPortal + schema: + type: string + required: true + default: "" + - variable: iqn + label: iqn + schema: + type: string + required: true + default: "" + - variable: lun + label: lun + schema: + type: int + default: 0 + - variable: authSession + label: authSession + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: authDiscovery + label: authDiscovery + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + + - variable: autoPermissions + label: Automatic Permissions Configuration + description: Automatically set permissions + schema: + show_if: [["type", "!=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: chown + label: Run CHOWN + description: | + It will run CHOWN on the path with the given fsGroup + schema: + type: boolean + default: false + - variable: chmod + label: Run CHMOD + description: | + It will run CHMOD on the path with the given value
+ Format should be 3 digits, e.g. 770 + schema: + type: string + valid_chars: '[0-9]{3}' + default: "" + - variable: recursive + label: Recursive + description: | + It will run CHOWN and CHMOD recursively + schema: + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - variable: hostPath + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: medium + label: EmptyDir Medium + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: Memory + description: Memory + - variable: size + label: Size quotum of Storage (Do NOT REDUCE after installation) + description: This value can ONLY be INCREASED after the installation + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: storageClass + label: 'storageClass (Advanced)' + description: 'sets the storageClass to something other than iX default. Only for advanced usecases!' + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "" + - variable: static + label: 'Static Fixed PVC Bindings (Experimental)' + description: Link a PVC to a specific storage location + schema: + show_if: [["type", "=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: mode + label: mode + description: | + disabled: use normal dynamic PVCs + smb: connect to an SMB share + nfs: connect to an NFS share + schema: + type: string + default: "disabled" + enum: + - value: disabled + description: disabled + - value: smb + description: smb + - value: nfs + description: nfs + - variable: server + label: Server + description: server to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "myserver" + - variable: share + label: Share + description: share to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "/myshare" + - variable: user + label: User + description: connecting user + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "myuser" + - variable: domain + label: Domain + description: user domain + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: password + label: Password + description: connecting password + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: volumeSnapshots + label: 'Volume Snapshots (Experimental)' + description: Add an entry to the list to force creation of a volumeSnapshot of this PVC + schema: + show_if: [["type", "=", "pvc"]] + type: list + default: [] + items: + - variable: volumeSnapshotEntry + label: Custom volumeSnapshot + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: 'WARNING: renaming this, means deletion of the snapshot with the old name!' + schema: + type: string + default: "mysnapshot" + required: true + - variable: volumeSnapshotClassName + label: 'volumeSnapshot Class Name (Advanced)' + description: For use with PVCs using a non-default storageClass + schema: + type: string + default: "" + - variable: persistenceList + label: Additional App Storage + group: Storage and Persistence + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: Custom Storage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the storage + schema: + type: boolean + default: true + hidden: true + - variable: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: hostPath + enum: + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: emptyDir + description: emptyDir + - value: nfs + description: NFS Share + - variable: server + label: NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: path + label: Path on NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: iscsi + label: iSCSI Options + schema: + show_if: [["type", "=", "iscsi"]] + type: dict + additional_attrs: true + attrs: + - variable: targetPortal + label: targetPortal + schema: + type: string + required: true + default: "" + - variable: iqn + label: iqn + schema: + type: string + required: true + default: "" + - variable: lun + label: lun + schema: + type: int + default: 0 + - variable: authSession + label: authSession + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: authDiscovery + label: authDiscovery + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: autoPermissions + label: Automatic Permissions Configuration + description: Automatically set permissions + schema: + show_if: [["type", "!=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: chown + label: Run CHOWN + description: | + It will run CHOWN on the path with the given fsGroup + schema: + type: boolean + default: false + - variable: chmod + label: Run CHMOD + description: | + It will run CHMOD on the path with the given value
+ Format should be 3 digits, e.g. 770 + schema: + type: string + valid_chars: '[0-9]{3}' + default: "" + - variable: recursive + label: Recursive + description: | + It will run CHOWN and CHMOD recursively + schema: + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - variable: hostPath + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: Mount Path + description: Path inside the container the storage is mounted + schema: + type: string + default: "" + required: true + valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' + - variable: medium + label: EmptyDir Medium + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: Memory + description: Memory + - variable: size + label: Size Quotum of Storage + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: storageClass + label: 'storageClass (Advanced)' + description: 'sets the storageClass to something other than iX default. Only for advanced usecases!' + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "" + - variable: static + label: 'Static Fixed PVC Bindings (Experimental)' + description: Link a PVC to a specific storage location + schema: + show_if: [["type", "=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: mode + label: mode + description: | + disabled: use normal dynamic PVCs + smb: connect to an SMB share + nfs: connect to an NFS share + schema: + type: string + default: "disabled" + enum: + - value: "disabled" + description: disabled + - value: smb + description: smb + - value: nfs + description: nfs + - variable: server + label: Server + description: server to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "myserver" + - variable: share + label: Share + description: share to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "/myshare" + - variable: user + label: User + description: connecting user + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "myuser" + - variable: domain + label: Domain + description: user domain + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: password + label: Password + description: connecting password + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: volumeSnapshots + label: 'Volume Snapshots (Experimental)' + description: Add an entry to the list to force creation of a volumeSnapshot of this PVC + schema: + show_if: [["type", "=", "pvc"]] + type: list + default: [] + items: + - variable: volumeSnapshotEntry + label: Custom volumeSnapshot + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: 'WARNING: renaming this, means deletion of the snapshot with the old name!' + schema: + type: string + default: "mysnapshot" + required: true + - variable: volumeSnapshotClassName + label: 'volumeSnapshot Class Name (Advanced)' + description: For use with PVCs using a non-default storageClass + schema: + type: string + default: "" + - variable: ingress + label: "" + group: Ingress + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: Main Ingress + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Ingress + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: Hosts + schema: + type: list + default: [] + items: + - variable: hostEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: host + label: HostName + schema: + type: string + default: "" + required: true + - variable: paths + label: Paths + schema: + type: list + default: [{path: "/", pathType: "Prefix"}] + items: + - variable: pathEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: path + label: Path + schema: + type: string + required: true + default: "/" + - variable: pathType + label: Path Type + schema: + type: string + required: true + default: Prefix + - variable: certificateIssuer + label: Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates. Cannot be used combined with tls option below' + schema: + type: string + default: "" + - variable: middlewares + label: Traefik Middlewares + description: Add previously created Traefik Middlewares to this Ingress + schema: + type: list + default: [] + items: + - variable: name + label: Name + schema: + type: string + default: "" + required: true + - variable: integration + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: homepage + label: Homepage + description: Connect ingress with Homepage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: name + label: Name + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: description + label: Description + description: defaults to chart description + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: group + label: Group + schema: + type: string + required: true + default: "default" + show_if: [["enabled", "=", true]] + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + - variable: entrypoint + label: (Advanced) Traefik Entrypoint + description: Entrypoint used by Traefik when using Traefik as Ingress Provider + schema: + type: string + default: websecure + show_if: [["advanced", "=", true]] + required: true + - variable: allowCors + label: "Allow Cross Origin Requests" + schema: + type: boolean + show_if: [["advanced", "=", true]] + default: false + - variable: ingressClassName + label: (Advanced/Optional) IngressClass Name + schema: + type: string + show_if: [["advanced", "=", true]] + default: "" + - variable: tls + label: TLS-Settings + schema: + type: list + show_if: [["advanced", "=", true]] + default: [] + items: + - variable: tlsEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: hosts + label: Certificate Hosts + schema: + type: list + default: [] + items: + - variable: host + label: Host + schema: + type: string + default: "" + required: true + + - variable: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: 'Use Custom Certificate Secret (Advanced)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: string + default: "" + - variable: scaleCert + label: 'Use TrueNAS SCALE Certificate (Deprecated)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - variable: ingressList + label: Add Manual Custom Ingresses + group: Ingress + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: Custom Ingress + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Ingress + schema: + type: boolean + default: true + hidden: true + - variable: name + label: Name + schema: + type: string + default: "" + - variable: ingressClassName + label: IngressClass Name + schema: + type: string + default: "" + - variable: allowCors + label: "Allow Cross Origin Requests" + schema: + type: boolean + show_if: [["advanced", "=", true]] + default: false + - variable: hosts + label: Hosts + schema: + type: list + default: [] + items: + - variable: hostEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: host + label: HostName + schema: + type: string + default: "" + required: true + - variable: paths + label: Paths + schema: + type: list + default: [] + items: + - variable: pathEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: path + label: Path + schema: + type: string + required: true + default: "/" + - variable: pathType + label: Path Type + schema: + type: string + required: true + default: Prefix + - variable: service + label: Linked Service + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Service Name + schema: + type: string + default: "" + - variable: port + label: Service Port + schema: + type: int + - variable: certificateIssuer + label: certificateIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates. Cannot be used combined with tls option below' + schema: + type: string + default: "" + - variable: tls + label: TLS-Settings + schema: + type: list + default: [] + show_if: [["certificateIssuer", "=", ""]] + items: + - variable: tlsEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: hosts + label: Certificate Hosts + schema: + type: list + default: [] + items: + - variable: host + label: Host + schema: + type: string + default: "" + required: true + - variable: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your Cert-Manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: scaleCert + label: Use TrueNAS SCALE Certificate (Deprecated) + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: Use Custom Secret (Advanced) + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: integration + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: homepage + label: Homepage + description: Connect ingress with Homepage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: name + label: Name + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: description + label: Description + description: defaults to chart description + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: group + label: Group + schema: + type: string + required: true + default: "default" + show_if: [["enabled", "=", true]] + - variable: entrypoint + label: Traefik Entrypoint + description: Entrypoint used by Traefik when using Traefik as Ingress Provider + schema: + type: string + default: websecure + required: true + - variable: middlewares + label: Traefik Middlewares + description: Add previously created Traefik Middlewares to this Ingress + schema: + type: list + default: [] + items: + - variable: name + label: Name + schema: + type: string + default: "" + required: true + - variable: securityContext + group: Security and Permissions + label: Security Context + schema: + additional_attrs: true + type: dict + attrs: + - variable: container + label: Container + schema: + additional_attrs: true + type: dict + attrs: + # Settings from questions.yaml get appended here on a per-app basis + - variable: runAsUser + label: runAsUser + description: The UserID of the user running the application + schema: + type: int + default: 568 + - variable: runAsGroup + label: runAsGroup + description: The groupID of the user running the application + schema: + type: int + default: 568 + # Settings from questions.yaml get appended here on a per-app basis + - variable: PUID + label: Process User ID - PUID + description: When supported by the container, this sets the User ID running the Application Process. Not supported by all Apps + schema: + type: int + show_if: [["runAsUser", "=", 0]] + default: 568 + - variable: UMASK + label: UMASK + description: When supported by the container, this sets the UMASK for the App. Not supported by all Apps + schema: + type: string + default: "0022" + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: pod + label: Pod + schema: + additional_attrs: true + type: dict + attrs: + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: OnRootMismatch + enum: + - value: OnRootMismatch + description: OnRootMismatch + - value: Always + description: Always + - variable: supplementalGroups + label: Supplemental Groups + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: Supplemental Group + schema: + type: int + # Settings from questions.yaml get appended here on a per-app basis + - variable: fsGroup + label: fsGroup + description: The group that should own ALL storage. + schema: + type: int + default: 568 + - variable: resources + group: Resources and Devices + label: "Resource Limits" + schema: + additional_attrs: true + type: dict + attrs: + - variable: limits + label: Advanced Limit Resource Consumption + schema: + additional_attrs: true + type: dict + attrs: + - variable: cpu + label: CPU + description: "1000m means 1 hyperthread. Detailed info: https://truecharts.org/manual/SCALE/validation" + schema: + type: string + default: 4000m + valid_chars: '^(?!^0(\.0|m|)$)([0-9]+)(\.[0-9]|m?)$' + - variable: memory + label: RAM + description: "1Gi means 1 Gibibyte RAM. Detailed info: https://truecharts.org/manual/SCALE/validation" + schema: + type: string + default: 8Gi + valid_chars: '^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$' + - variable: requests + label: "Minimum Resources Required (request)" + schema: + additional_attrs: true + type: dict + hidden: true + attrs: + - variable: cpu + label: CPU + description: "1000m means 1 hyperthread. Detailed info: https://truecharts.org/manual/SCALE/validation" + schema: + type: string + default: 10m + hidden: true + valid_chars: '^(?!^0(\.0|m|)$)([0-9]+)(\.[0-9]|m?)$' + - variable: memory + label: "RAM" + description: "1Gi means 1 Gibibyte RAM. Detailed info: https://truecharts.org/manual/SCALE/validation" + schema: + type: string + default: 50Mi + hidden: true + valid_chars: '^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$' + - variable: deviceList + label: Mount USB Devices + group: Resources and Devices + schema: + type: list + default: [] + items: + - variable: deviceListEntry + label: Device + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the Storage + schema: + type: boolean + default: true + - variable: type + label: (Advanced) Type of Storage + description: Sets the persistence type + schema: + type: string + default: device + hidden: true + - variable: readOnly + label: readOnly + schema: + type: boolean + default: false + - variable: hostPath + label: Host Device Path + description: Path to the device on the host system + schema: + type: path + - variable: mountPath + label: Container Device Path + description: Path inside the container the device is mounted + schema: + type: string + default: "/dev/ttyACM0" + - variable: scaleGPU + label: GPU Configuration + group: Resources and Devices + schema: + type: list + default: [] + items: + - variable: scaleGPUEntry + label: GPU + schema: + additional_attrs: true + type: dict + attrs: + # Specify GPU configuration + - variable: gpu + label: Select GPU + schema: + additional_attrs: true + type: dict + $ref: + - "definitions/gpuConfiguration" + attrs: [] + - variable: workaround + label: "Workaround" + schema: + type: string + default: workaround + hidden: true + - variable: metrics + group: Metrics + label: Prometheus Metrics + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: Main Metrics + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + description: Enable Prometheus Metrics + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: prometheusRule + label: PrometheusRule + description: Enable and configure Prometheus Rules for the App. + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + description: Enable Prometheus Metrics + schema: + type: boolean + default: false + # TODO: Rule List section +# - variable: horizontalPodAutoscaler +# group: Advanced +# label: (Advanced) Horizontal Pod Autoscaler +# schema: +# type: list +# default: [] +# items: +# - variable: hpaEntry +# label: HPA Entry +# schema: +# additional_attrs: true +# type: dict +# attrs: +# - variable: name +# label: Name +# schema: +# type: string +# required: true +# default: "" +# - variable: enabled +# label: Enabled +# schema: +# type: boolean +# default: false +# show_subquestions_if: true +# subquestions: +# - variable: target +# label: Target +# description: Deployment name, Defaults to Main Deployment +# schema: +# type: string +# default: "" +# - variable: minReplicas +# label: Minimum Replicas +# schema: +# type: int +# default: 1 +# - variable: maxReplicas +# label: Maximum Replicas +# schema: +# type: int +# default: 5 +# - variable: targetCPUUtilizationPercentage +# label: Target CPU Utilization Percentage +# schema: +# type: int +# default: 80 +# - variable: targetMemoryUtilizationPercentage +# label: Target Memory Utilization Percentage +# schema: +# type: int +# default: 80 + - variable: networkPolicy + group: Advanced + label: (Advanced) Network Policy + schema: + type: list + default: [] + items: + - variable: netPolicyEntry + label: Network Policy Entry + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + default: "" + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: policyType + label: Policy Type + schema: + type: string + default: "" + enum: + - value: "" + description: Default + - value: ingress + description: Ingress + - value: egress + description: Egress + - value: ingress-egress + description: Ingress and Egress + - variable: egress + label: Egress + schema: + type: list + default: [] + items: + - variable: egressEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: to + label: To + schema: + type: list + default: [] + items: + - variable: toEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: ipBlock + label: IP Block + schema: + additional_attrs: true + type: dict + attrs: + - variable: cidr + label: CIDR + schema: + type: string + default: "" + - variable: except + label: Except + schema: + type: list + default: [] + items: + - variable: exceptint + label: "" + schema: + type: string + - variable: namespaceSelector + label: Namespace Selector + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: podSelector + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: ports + label: Ports + schema: + type: list + default: [] + items: + - variable: portsEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + schema: + type: int + - variable: endPort + label: End Port + schema: + type: int + - variable: protocol + label: Protocol + schema: + type: string + default: TCP + enum: + - value: TCP + description: TCP + - value: UDP + description: UDP + - value: SCTP + description: SCTP + - variable: ingress + label: Ingress + schema: + type: list + default: [] + items: + - variable: ingressEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: from + label: From + schema: + type: list + default: [] + items: + - variable: fromEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: ipBlock + label: IP Block + schema: + additional_attrs: true + type: dict + attrs: + - variable: cidr + label: CIDR + schema: + type: string + default: "" + - variable: except + label: Except + schema: + type: list + default: [] + items: + - variable: exceptint + label: "" + schema: + type: string + - variable: namespaceSelector + label: Namespace Selector + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: podSelector + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: ports + label: Ports + schema: + type: list + default: [] + items: + - variable: portsEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + schema: + type: int + - variable: endPort + label: End Port + schema: + type: int + - variable: protocol + label: Protocol + schema: + type: string + default: TCP + enum: + - value: TCP + description: TCP + - value: UDP + description: UDP + - value: SCTP + description: SCTP + - variable: addons + group: Addons + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: codeserver + label: Codeserver + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: service + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Service Type + description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: LoadBalancer + enum: + - value: NodePort + description: Deprecated CHANGE THIS + - value: ClusterIP + description: ClusterIP + - value: LoadBalancer + description: LoadBalancer + - variable: loadBalancerIP + label: LoadBalancer IP + description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: ports + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: codeserver + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + schema: + type: int + default: 36107 + - variable: ingress + label: "Ingress" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Ingress + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: Hosts + schema: + type: list + default: [] + items: + - variable: hostEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: host + label: HostName + schema: + type: string + default: "" + required: true + - variable: paths + label: Paths + schema: + type: list + default: [{path: "/", pathType: "Prefix"}] + items: + - variable: pathEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: path + label: Path + schema: + type: string + required: true + default: "/" + - variable: pathType + label: Path Type + schema: + type: string + required: true + default: Prefix + - variable: certificateIssuer + label: Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates. Cannot be used combined with tls option below' + schema: + type: string + default: "" + - variable: middlewares + label: Traefik Middlewares + description: Add previously created Traefik Middlewares to this Ingress + schema: + type: list + default: [] + items: + - variable: name + label: Name + schema: + type: string + default: "" + required: true + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + - variable: entrypoint + label: (Advanced) Traefik Entrypoint + description: Entrypoint used by Traefik when using Traefik as Ingress Provider + schema: + type: string + default: websecure + show_if: [["advanced", "=", true]] + required: true + - variable: allowCors + label: "Allow Cross Origin Requests" + schema: + type: boolean + show_if: [["advanced", "=", true]] + default: false + - variable: ingressClassName + label: (Advanced/Optional) IngressClass Name + schema: + type: string + show_if: [["advanced", "=", true]] + default: "" + - variable: tls + label: TLS-Settings + schema: + type: list + show_if: [["advanced", "=", true]] + default: [] + items: + - variable: tlsEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: hosts + label: Certificate Hosts + schema: + type: list + default: [] + items: + - variable: host + label: Host + schema: + type: string + default: "" + required: true + - variable: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: 'Use Custom Certificate Secret (Advanced)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: string + default: "" + - variable: scaleCert + label: 'Use TrueNAS SCALE Certificate (Deprecated)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - variable: envList + label: Codeserver Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + - variable: netshoot + label: Netshoot + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: envList + label: Netshoot Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + - variable: vpn + label: VPN + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type + schema: + type: string + default: disabled + enum: + - value: disabled + description: disabled + - value: gluetun + description: Gluetun + - value: tailscale + description: Tailscale + - value: openvpn + description: OpenVPN (Deprecated) + - value: wireguard + description: Wireguard (Deprecated) + - variable: openvpn + label: OpenVPN Settings + schema: + additional_attrs: true + type: dict + show_if: [["type", "=", "openvpn"]] + attrs: + - variable: username + label: Authentication Username (Optional) + description: Authentication Username, Optional + schema: + type: string + default: "" + - variable: password + label: Authentication Password + description: Authentication Credentials + schema: + type: string + show_if: [["username", "!=", ""]] + default: "" + required: true + - variable: tailscale + label: Tailscale Settings + schema: + additional_attrs: true + type: dict + show_if: [["type", "=", "tailscale"]] + attrs: + - variable: authkey + label: Authentication Key + description: Provide an auth key to automatically authenticate the node as your user account. + schema: + type: string + private: true + default: "" + - variable: auth_once + label: Auth Once + description: Only attempt to log in if not already logged in. + schema: + type: boolean + default: true + - variable: accept_dns + label: Accept DNS + description: Accept DNS configuration from the admin console. + schema: + type: boolean + default: false + - variable: userspace + label: Userspace + description: Userspace Networking mode allows running Tailscale where you do not have access to create a VPN tunnel device. + schema: + type: boolean + default: false + - variable: routes + label: Routes + description: Expose physical subnet routes to your entire Tailscale network. + schema: + type: string + default: "" + - variable: dest_ip + label: Destination IP + description: Tells the DNAT mechanism which Destination IP to set in the IP header, and where to send packets that are matched. + schema: + type: string + default: "" + - variable: sock5_server + label: Sock5 Server + description: The address on which to listen for SOCKS5 proxying into the tailscale net. + schema: + type: string + default: "" + - variable: outbound_http_proxy_listen + label: Outbound HTTP Proxy Listen + description: The address on which to listen for HTTP proxying into the tailscale net. + schema: + type: string + default: "" + - variable: extra_args + label: Extra Args + description: Extra Args + schema: + type: string + default: "" + - variable: daemon_extra_args + label: Tailscale Daemon Extra Args + description: Tailscale Daemon Extra Args + schema: + type: string + default: "" + - variable: killSwitch + label: Enable Killswitch + schema: + type: boolean + show_if: [["type", "!=", "disabled"]] + default: true + - variable: excludedNetworks_IPv4 + label: Killswitch Excluded IPv4 networks + description: List of Killswitch Excluded IPv4 Addresses + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: networkv4 + label: IPv4 Network + schema: + type: string + required: true + - variable: excludedNetworks_IPv6 + label: Killswitch Excluded IPv6 networks + description: "List of Killswitch Excluded IPv6 Addresses" + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: networkv6 + label: IPv6 Network + schema: + type: string + required: true + - variable: configFile + label: VPN Config File Location + schema: + type: string + show_if: [["type", "!=", "disabled"]] + default: "" + + - variable: envList + label: VPN Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + max_length: 10240 + - variable: docs + group: Documentation + label: Please read the documentation at https://truecharts.org + description: Please read the documentation at +
https://truecharts.org + schema: + additional_attrs: true + type: dict + attrs: + - variable: confirmDocs + label: I have checked the documentation + schema: + type: boolean + default: true + - variable: donateNag + group: Documentation + label: Please consider supporting TrueCharts, see https://truecharts.org/sponsor + description: Please consider supporting TrueCharts, see +
https://truecharts.org/sponsor + schema: + additional_attrs: true + type: dict + attrs: + - variable: confirmDonate + label: I have considered donating + schema: + type: boolean + default: true + hidden: true diff --git a/stable/nextcloud/24.0.0/templates/NOTES.txt b/stable/nextcloud/24.0.0/templates/NOTES.txt new file mode 100644 index 00000000000..efcb74cb772 --- /dev/null +++ b/stable/nextcloud/24.0.0/templates/NOTES.txt @@ -0,0 +1 @@ +{{- include "tc.v1.common.lib.chart.notes" $ -}} diff --git a/stable/nextcloud/24.0.0/templates/_configmap.tpl b/stable/nextcloud/24.0.0/templates/_configmap.tpl new file mode 100644 index 00000000000..50cac7f16f6 --- /dev/null +++ b/stable/nextcloud/24.0.0/templates/_configmap.tpl @@ -0,0 +1,443 @@ +{{- define "nextcloud.accessurl" -}} + {{- $accessUrl := .Values.chartContext.appUrl -}} + {{- if or (contains "127.0.0.1" $accessUrl) (contains "localhost" $accessUrl) -}} + {{- if .Values.nextcloud.general.accessIP -}} + {{- $prot := "http" -}} + {{- $host := .Values.nextcloud.general.accessIP -}} + {{- $port := .Values.service.main.ports.main.port -}} + {{/* + Allowing here to override protocol and port + should be enough to make it work with any rev proxy + */}} + {{- $accessUrl = printf "%v://%v:%v" $prot $host $port -}} + {{- end -}} + {{- end -}} + + {{- $accessUrl -}} +{{- end -}} + +{{- define "nextcloud.accesshost" -}} + {{- $accessUrl := (include "nextcloud.accessurl" $) -}} + {{- $accessHost := regexReplaceAll ".*://(.*)" $accessUrl "${1}" -}} + {{- $accessHost = regexReplaceAll "(.*):.*" $accessHost "${1}" -}} + + {{- $accessHost -}} +{{- end -}} + +{{/* Define the configmap */}} +{{- define "nextcloud.configmaps" -}} +{{- $fullname := (include "tc.v1.common.lib.chart.names.fullname" $) -}} +{{- $fqdn := (include "tc.v1.common.lib.chart.names.fqdn" $) -}} +{{- $accessUrl := (include "nextcloud.accessurl" $) -}} +{{- $accessHost := (include "nextcloud.accesshost" $) -}} +{{- $accessHostPort := regexReplaceAll ".*://(.*)" $accessUrl "${1}" -}} +{{- $accessProtocol := regexReplaceAll "(.*)://.*" $accessUrl "${1}" -}} +{{- $redisHost := .Values.redis.creds.plainhost | trimAll "\"" -}} +{{- $redisPass := .Values.redis.creds.redisPassword | trimAll "\"" -}} +{{- $healthHost := "kube.internal.healthcheck" -}} + +php-tune: + enabled: true + data: + zz-tune.conf: | + [www] + pm.max_children = {{ .Values.nextcloud.php.pm_max_children }} + pm.start_servers = {{ .Values.nextcloud.php.pm_start_servers }} + pm.min_spare_servers = {{ .Values.nextcloud.php.pm_min_spare_servers }} + pm.max_spare_servers = {{ .Values.nextcloud.php.pm_max_spare_servers }} + +opcache: + enabled: true + data: + opcache-recommended.ini: | + opcache.enable=1 + opcache.save_comments=1 + opcache.jit=1255 + opcache.interned_strings_buffer={{ .Values.nextcloud.opcache.interned_strings_buffer }} + opcache.max_accelerated_files={{ .Values.nextcloud.opcache.max_accelerated_files }} + opcache.memory_consumption={{ .Values.nextcloud.opcache.memory_consumption }} + opcache.revalidate_freq={{ .Values.nextcloud.opcache.revalidate_freq }} + opcache.jit_buffer_size={{ printf "%vM" .Values.nextcloud.opcache.jit_buffer_size }} + +redis-session: + enabled: true + data: + redis-session.ini: | + session.save_handler = redis + session.save_path = {{ printf "tcp://%v:6379?auth=%v" $redisHost $redisPass | quote }} + redis.session.locking_enabled = 1 + redis.session.lock_retries = -1 + redis.session.lock_wait_time = 10000 + +hpb-config: + enabled: {{ .Values.nextcloud.notify_push.enabled }} + data: + NEXTCLOUD_URL: {{ printf "http://%v:%v" $fullname .Values.service.main.ports.main.port }} + HPB_HOST: {{ $healthHost }} + CONFIG_FILE: {{ printf "%v/config.php" .Values.persistence.config.targetSelector.notify.notify.mountPath }} + METRICS_PORT: {{ .Values.service.notify.ports.metrics.port | quote }} + +clamav-config: + enabled: {{ .Values.nextcloud.clamav.enabled }} + data: + CLAMAV_NO_CLAMD: "false" + CLAMAV_NO_FRESHCLAMD: "true" + CLAMAV_NO_MILTERD: "true" + CLAMD_STARTUP_TIMEOUT: "1800" + +collabora-config: + enabled: {{ .Values.nextcloud.collabora.enabled }} + data: + aliasgroup1: {{ $accessUrl }} + server_name: {{ $accessHostPort }} + dictionaries: {{ join " " .Values.nextcloud.collabora.dictionaries }} + username: {{ .Values.nextcloud.collabora.username | quote }} + password: {{ .Values.nextcloud.collabora.password | quote }} + DONT_GEN_SSL_CERT: "true" + # mount_jail_tree is only used for local storage + # not needed for WOPI https://github.com/CollaboraOnline/online/issues/3604#issuecomment-989833814 + extra_params: | + --o:ssl.enable=false + --o:ssl.termination=true + --o:net.service_root=/collabora + --o:home_mode.enable=true + --o:welcome.enable=false + --o:logging.level=warning + --o:logging.level_startup=warning + --o:security.seccomp=true + --o:mount_jail_tree=false + --o:user_interface.mode={{ .Values.nextcloud.collabora.user_interface_mode }} + +nextcloud-config: + enabled: true + data: + {{/* Database */}} + POSTGRES_DB: {{ .Values.cnpg.main.database | quote }} + POSTGRES_USER: {{ .Values.cnpg.main.user | quote }} + POSTGRES_PASSWORD: {{ .Values.cnpg.main.creds.password | trimAll "\"" }} + POSTGRES_HOST: {{ .Values.cnpg.main.creds.host | trimAll "\"" }} + + {{/* Redis */}} + NX_REDIS_HOST: {{ $redisHost }} + NX_REDIS_PASS: {{ $redisPass }} + + {{/* Nextcloud INITIAL credentials */}} + NEXTCLOUD_ADMIN_USER: {{ .Values.nextcloud.credentials.initialAdminUser | quote }} + NEXTCLOUD_ADMIN_PASSWORD: {{ .Values.nextcloud.credentials.initialAdminPassword | quote }} + + {{/* PHP Variables */}} + PHP_MEMORY_LIMIT: {{ .Values.nextcloud.php.memory_limit | quote }} + PHP_UPLOAD_LIMIT: {{ .Values.nextcloud.php.upload_limit | quote }} + + {{/* Notify Push */}} + NX_NOTIFY_PUSH: {{ .Values.nextcloud.notify_push.enabled | quote }} + {{- if .Values.nextcloud.notify_push.enabled }} + NX_NOTIFY_PUSH_ENDPOINT: {{ $accessUrl }}/push + {{- end }} + + {{/* Previews */}} + NX_PREVIEWS: {{ .Values.nextcloud.previews.enabled | quote }} + NX_PREVIEW_PROVIDERS: {{ join " " .Values.nextcloud.previews.providers }} + NX_PREVIEW_MAX_X: {{ .Values.nextcloud.previews.max_x | quote }} + NX_PREVIEW_MAX_Y: {{ .Values.nextcloud.previews.max_y | quote }} + NX_PREVIEW_MAX_MEMORY: {{ .Values.nextcloud.previews.max_memory | quote }} + NX_PREVIEW_MAX_FILESIZE_IMAGE: {{ .Values.nextcloud.previews.max_file_size_image | quote }} + NX_JPEG_QUALITY: {{ .Values.nextcloud.previews.jpeg_quality | quote }} + NX_PREVIEW_SQUARE_SIZES: {{ .Values.nextcloud.previews.square_sizes | quote }} + NX_PREVIEW_WIDTH_SIZES: {{ .Values.nextcloud.previews.width_sizes | quote }} + NX_PREVIEW_HEIGHT_SIZES: {{ .Values.nextcloud.previews.height_sizes | quote }} + + {{/* Imaginary */}} + NX_IMAGINARY: {{ and .Values.nextcloud.previews.enabled .Values.nextcloud.previews.imaginary | quote }} + {{- if and .Values.nextcloud.previews.enabled .Values.nextcloud.previews.imaginary }} + NX_IMAGINARY_URL: {{ printf "http://%v-imaginary:%v" $fullname .Values.service.imaginary.ports.imaginary.port }} + {{- end }} + + {{/* Expirations */}} + NX_ACTIVITY_EXPIRE_DAYS: {{ .Values.nextcloud.expirations.activity_expire_days | quote }} + NX_TRASH_RETENTION: {{ .Values.nextcloud.expirations.trash_retention_obligation | quote }} + NX_VERSIONS_RETENTION: {{ .Values.nextcloud.expirations.versions_retention_obligation | quote }} + + {{/* General */}} + NX_RUN_OPTIMIZE: {{ .Values.nextcloud.general.run_optimize | quote }} + NX_DEFAULT_PHONE_REGION: {{ .Values.nextcloud.general.default_phone_region | quote }} + NEXTCLOUD_DATA_DIR: {{ .Values.persistence.data.targetSelector.main.main.mountPath }} + NX_FORCE_ENABLE_ALLOW_LOCAL_REMOTE_SERVERS: {{ .Values.nextcloud.general.force_enable_allow_local_remote_servers | quote }} + + {{/* Files */}} + NX_SHARED_FOLDER_NAME: {{ .Values.nextcloud.files.shared_folder_name | quote }} + NX_MAX_CHUNKSIZE: {{ .Values.nextcloud.files.max_chunk_size | mul 1 | quote }} + + {{/* Logging */}} + NX_LOG_LEVEL: {{ .Values.nextcloud.logging.log_level | quote }} + NX_LOG_FILE: {{ .Values.nextcloud.logging.log_file | quote }} + NX_LOG_FILE_AUDIT: {{ .Values.nextcloud.logging.log_audit_file | quote }} + NX_LOG_DATE_FORMAT: {{ .Values.nextcloud.logging.log_date_format | quote }} + NX_LOG_TIMEZONE: {{ .Values.TZ | quote }} + + {{/* ClamAV */}} + NX_CLAMAV: {{ .Values.nextcloud.clamav.enabled | quote }} + {{- if .Values.nextcloud.clamav.enabled }} + NX_CLAMAV_HOST: {{ printf "%v-clamav" $fullname }} + NX_CLAMAV_PORT: {{ .Values.service.clamav.ports.clamav.targetPort | quote }} + NX_CLAMAV_STREAM_MAX_LENGTH: {{ .Values.nextcloud.clamav.stream_max_length | mul 1 | quote }} + NX_CLAMAV_FILE_MAX_SIZE: {{ .Values.nextcloud.clamav.file_max_size | quote }} + NX_CLAMAV_INFECTED_ACTION: {{ .Values.nextcloud.clamav.infected_action | quote }} + {{- end }} + + {{/* Collabora */}} + NX_COLLABORA: {{ .Values.nextcloud.collabora.enabled | quote }} + {{- if .Values.nextcloud.collabora.enabled }} + NX_COLLABORA_URL: {{ printf "%v/collabora" $accessUrl | quote }} + # Ideally this would be a combo of: public ip, pod cidr, svc cidr + # But not always people have static IP. + NX_COLLABORA_ALLOWLIST: "0.0.0.0/0" + {{- end }} + + {{/* Only Office */}} + NX_ONLYOFFICE: {{ .Values.nextcloud.onlyoffice.enabled | quote }} + {{- if .Values.nextcloud.onlyoffice.enabled }} + NX_ONLYOFFICE_URL: {{ .Values.nextcloud.onlyoffice.url | quote }} + NX_ONLYOFFICE_INTERNAL_URL: {{ .Values.nextcloud.onlyoffice.internal_url | quote }} + NX_ONLYOFFICE_VERIFY_SSL: {{ .Values.nextcloud.onlyoffice.verify_ssl | quote }} + NX_ONLYOFFICE_NEXTCLOUD_INTERNAL_URL: {{ printf "http://%v.svc.cluster.local:%v" $fqdn .Values.service.main.ports.main.port }} + NX_ONLYOFFICE_JWT: {{ .Values.nextcloud.onlyoffice.jwt | quote }} + NX_ONLYOFFICE_JWT_HEADER: {{ .Values.nextcloud.onlyoffice.jwt_header | quote }} + {{- end }} + + {{/* URLs */}} + NX_OVERWRITE_HOST: {{ $accessHostPort }} + NX_OVERWRITE_CLI_URL: {{ $accessUrl }} + # Return the protocol part of the URL + NX_OVERWRITE_PROTOCOL: {{ $accessProtocol | lower }} + # IP (or range in this case) of the proxy(ies) + NX_TRUSTED_PROXIES: | + {{ .Values.chartContext.podCIDR }} + {{ .Values.chartContext.svcCIDR }} + # fullname-* will allow access from the + # other services in the same namespace + NX_TRUSTED_DOMAINS: | + 127.0.0.1 + localhost + {{ $fullname }} + {{ printf "%v-*" $fullname }} + {{ $healthHost }} + {{- if not (contains "127.0.0.1" $accessHost) }} + {{- $accessHost | nindent 6 }} + {{- end -}} + {{- with .Values.nextcloud.general.accessIP }} + {{- . | nindent 6 }} + {{- end }} + +# TODO: Replace locations with ingress +# like /push, /.well-known/carddav, /.well-known/caldav +# needs some work as nginx converts urls to pretty urls +# before matching them to locations, so ingress needs to +# take that into consideration. +nginx-config: + enabled: true + data: + nginx.conf: | + worker_processes auto; + + error_log /var/log/nginx/error.log warn; + # Set to /tmp so it can run as non-root + pid /tmp/nginx.pid; + + events { + worker_connections 1024; + } + + http { + # Set to /tmp so it can run as non-root + client_body_temp_path /tmp/nginx/client_temp; + proxy_temp_path /tmp/nginx/proxy_temp_path; + fastcgi_temp_path /tmp/nginx/fastcgi_temp; + uwsgi_temp_path /tmp/nginx/uwsgi_temp; + scgi_temp_path /tmp/nginx/scgi_temp; + + include /etc/nginx/mime.types; + default_type application/octet-stream; + + log_format main '$remote_addr - $remote_user [$time_local] "$request" ' + '$status $body_bytes_sent "$http_referer" ' + '"$http_user_agent" "$http_x_forwarded_for"'; + + access_log /var/log/nginx/access.log main; + + sendfile on; + #tcp_nopush on; + + # Prevent nginx HTTP Server Detection + server_tokens off; + + keepalive_timeout 65; + + #gzip on; + + upstream php-handler { + server {{ printf "%v-nextcloud" $fullname }}:{{ .Values.service.nextcloud.ports.nextcloud.targetPort }}; + } + + server { + listen {{ .Values.service.main.ports.main.port }}; + absolute_redirect off; + + {{- if .Values.nextcloud.notify_push.enabled }} + # Forward Notify_Push "High Performance Backend" to it's own container + location ^~ /push/ { + # The trailing "/" is important! + proxy_pass http://{{ printf "%v-notify" $fullname }}:{{ .Values.service.notify.ports.notify.targetPort }}/; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "Upgrade"; + proxy_set_header Host $host; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + } + {{- end }} + + # HSTS settings + # WARNING: Only add the preload option once you read about + # the consequences in https://hstspreload.org/. This option + # will add the domain to a hardcoded list that is shipped + # in all major browsers and getting removed from this list + # could take several months. + #add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;" always; + + # Set max upload size + client_max_body_size {{ .Values.nextcloud.php.upload_limit | default "512M" }}; + fastcgi_buffers 64 4K; + + # Enable gzip but do not remove ETag headers + gzip on; + gzip_vary on; + gzip_comp_level 4; + gzip_min_length 256; + gzip_proxied expired no-cache no-store private no_last_modified no_etag auth; + gzip_types application/atom+xml 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/24.0.0/templates/_cronjobs.tpl b/stable/nextcloud/24.0.0/templates/_cronjobs.tpl new file mode 100644 index 00000000000..0fa050dba68 --- /dev/null +++ b/stable/nextcloud/24.0.0/templates/_cronjobs.tpl @@ -0,0 +1,34 @@ +{{- define "nextcloud.cronjobs" -}} +{{- range $cj := .Values.cronjobs }} + {{- $name := $cj.name | required "Nextcloud - Expected non-empty name in cronjob" -}} + {{- $schedule := $cj.schedule | required "Nextcloud - Expected non-empty schedule in cronjob" }} + +{{ $name }}: + enabled: {{ $cj.enabled | quote }} + type: CronJob + schedule: {{ $schedule | quote }} + podSpec: + restartPolicy: Never + containers: + {{ $name }}: + enabled: true + primary: true + imageSelector: image + command: + - /bin/bash + - -c + - | + {{- range $cj.cmd }} + {{- . | nindent 12 }} + {{- else -}} + {{- fail "Nextcloud - Expected non-empty cmd in cronjob" -}} + {{- end }} + probes: + liveness: + enabled: false + readiness: + enabled: false + startup: + enabled: false +{{- end }} +{{- end -}} diff --git a/stable/nextcloud/24.0.0/templates/_ingressInjector.tpl b/stable/nextcloud/24.0.0/templates/_ingressInjector.tpl new file mode 100644 index 00000000000..37919189e21 --- /dev/null +++ b/stable/nextcloud/24.0.0/templates/_ingressInjector.tpl @@ -0,0 +1,24 @@ +{{- define "nextcloud.ingressInjector" -}} + {{- if .Values.ingress.main.enabled -}} + {{- $injectPaths := list -}} + {{- if .Values.nextcloud.collabora.enabled -}} + {{- $injectPaths = mustAppend $injectPaths (include "nextcloud.collabora.ingress" $ | fromYaml) -}} + {{- end -}} + {{/* Append more paths here if needed */}} + + {{- range $host := .Values.ingress.main.hosts -}} + {{- $paths := $host.paths -}} + {{- $paths = concat $paths $injectPaths -}} + {{- $_ := set $host "paths" $paths -}} + {{- end -}} + {{- end -}} +{{- end -}} + +{{- define "nextcloud.collabora.ingress" -}} +{{- $fullname := include "tc.v1.common.lib.chart.names.fullname" . }} +path: /collabora/ +pathType: Prefix +service: + name: {{ printf "%v-collabora" $fullname }} + port: {{ .Values.service.collabora.ports.collabora.port }} +{{- end -}} diff --git a/stable/nextcloud/24.0.0/templates/_initPerms.tpl b/stable/nextcloud/24.0.0/templates/_initPerms.tpl new file mode 100644 index 00000000000..ed94790ad93 --- /dev/null +++ b/stable/nextcloud/24.0.0/templates/_initPerms.tpl @@ -0,0 +1,29 @@ +{{- define "nextcloud.init.perms" -}} +{{- $uid := .Values.securityContext.container.runAsUser -}} +{{- $gid := .Values.securityContext.container.runAsGroup -}} +{{- $path := .Values.persistence.data.targetSelector.main.main.mountPath }} +enabled: true +type: install +imageSelector: alpineImage +securityContext: + runAsUser: 0 + runAsGroup: 0 + runAsNonRoot: false + capabilities: + disableS6Caps: true + add: + - DAC_OVERRIDE + - FOWNER + - CHOWN +command: /bin/sh +args: + - -c + - | + echo "Setting permissions to 700 on data directory [{{ $path }}] ..." + chmod 770 {{ $path }} | echo "Failed to set permissions on data directory [{{ $path }}]" + + echo "Setting ownership to {{ $uid }}:{{ $gid }} on data directory [{{ $path }}] ..." + chown {{ $uid }}:{{ $gid }} {{ $path }} | echo "Failed to set ownership on data directory [{{ $path }}]" + + echo "Finished." +{{- end -}} diff --git a/stable/nextcloud/24.0.0/templates/_validation.tpl b/stable/nextcloud/24.0.0/templates/_validation.tpl new file mode 100644 index 00000000000..5650c0f63fe --- /dev/null +++ b/stable/nextcloud/24.0.0/templates/_validation.tpl @@ -0,0 +1,42 @@ +{{- define "nextcloud.validation" -}} + + {{- if not (mustRegexMatch "^[0-9]+(M|G){1}$" .Values.nextcloud.php.memory_limit) -}} + {{- fail (printf "Nextcloud - Expected Memory Limit to be in format [1M, 1G] but got [%v]" .Values.nextcloud.php.memory_limit) -}} + {{- end -}} + + {{- if not (mustRegexMatch "^[0-9]+(M|G){1}$" .Values.nextcloud.php.upload_limit) -}} + {{- fail (printf "Nextcloud - Expected Memory Limit to be in format [1M, 1G] but got [%v]" .Values.nextcloud.php.upload_limit) -}} + {{- end -}} + + {{- if not (deepEqual .Values.nextcloud.previews.providers (uniq .Values.nextcloud.previews.providers)) -}} + {{- fail (printf "Nextcloud - Expected preview providers to be unique but got [%v]" .Values.nextcloud.previews.providers) -}} + {{- end -}} + + {{- if and .Values.nextcloud.collabora.enabled .Values.nextcloud.onlyoffice.enabled -}} + {{- fail "Nextcloud - Expected only one of [Collabora, OnlyOffice] to be enabled" -}} + {{- end -}} + + {{- if contains "$" .Values.nextcloud.collabora.password -}} + {{- fail "Nextcloud - Collabora [Password] cannot contain [$]" -}} + {{- end -}} + + {{- if .Values.nextcloud.collabora.enabled -}} + {{- if lt (len .Values.nextcloud.collabora.password) 8 -}} + {{- fail "Nextcloud - Collabora [Password] must be at least 8 characters" -}} + {{- end -}} + + {{- $collaboraUIModes := (list "default" "compact" "tabbed") -}} + {{- if not (mustHas .Values.nextcloud.collabora.interface_mode $collaboraUIModes) -}} + {{- fail (printf "Nextcloud - Expected [Interface Mode] in Collabora to be one of [%v], but got [%v]" (join "," $collaboraUIModes) .Values.nextcloud.collabora.interface_mode) -}} + {{- end -}} + + {{- if not .Values.nextcloud.collabora.dictionaries -}} + {{- fail "Nextcloud - Expected non-empty Collabora [Dictionaries]" -}} + {{- end -}} + + {{- if not (deepEqual .Values.nextcloud.collabora.dictionaries (uniq .Values.nextcloud.collabora.dictionaries)) -}} + {{- fail "Nextcloud - Collabora [Dictionaries] must be unique" -}} + {{- end -}} + {{- end -}} + +{{- end -}} diff --git a/stable/nextcloud/24.0.0/templates/_waitNextcloud.tpl b/stable/nextcloud/24.0.0/templates/_waitNextcloud.tpl new file mode 100644 index 00000000000..24946d640e8 --- /dev/null +++ b/stable/nextcloud/24.0.0/templates/_waitNextcloud.tpl @@ -0,0 +1,25 @@ +{{- define "nextcloud.wait.nextcloud" -}} +{{- $fullname := (include "tc.v1.common.lib.chart.names.fullname" $) -}} +{{- $ncURL := printf "%v-nextcloud:%v" $fullname .Values.service.nextcloud.ports.nextcloud.targetPort }} +enabled: true +type: init +imageSelector: image +securityContext: +command: /bin/sh +args: + - -c + - | + echo "Waiting Nextcloud [{{ $ncURL }}] to be ready and installed..." + until \ + REQUEST_METHOD="GET" \ + SCRIPT_NAME="status.php" \ + SCRIPT_FILENAME="status.php" \ + cgi-fcgi -bind -connect "{{ $ncURL }}" | grep -q '"installed":true'; + do + echo "Waiting Nextcloud [{{ $ncURL }}] to be ready and installed..." + sleep 3 + done + + echo "Nextcloud is ready and installed..." + echo "Starting Nginx..." +{{- end -}} diff --git a/stable/nextcloud/24.0.0/templates/common.yaml b/stable/nextcloud/24.0.0/templates/common.yaml new file mode 100644 index 00000000000..1eeaf033ebe --- /dev/null +++ b/stable/nextcloud/24.0.0/templates/common.yaml @@ -0,0 +1,80 @@ +{{/* Make sure all variables are set properly */}} +{{- include "tc.v1.common.loader.init" . -}} + +{{- include "nextcloud.validation" $ -}} + +{{/* Render configmaps for all pods */}} +{{- $configmaps := include "nextcloud.configmaps" . | fromYaml -}} +{{- if $configmaps -}} + {{- $_ := mustMergeOverwrite .Values.configmap $configmaps -}} +{{- end -}} + +{{/* Create hostAliases (resolve ingress host to Node/LB IP) */}} +{{- $hostAlias := (list (dict + "ip" .Values.nextcloud.general.accessIP + "hostnames" ( + list (include "nextcloud.accesshost" $) + ) + )) -}} + +{{/* Add [hostAliases] to nextcloud and collabora pod */}} +{{- $_ := set .Values.workload.main.podSpec "hostAliases" $hostAlias -}} +{{- $_ := set .Values.workload.collabora.podSpec "hostAliases" $hostAlias -}} + +{{/* Add [init perms] container to nextcloud */}} +{{- if not (get .Values.workload.main.podSpec "initContainers") -}} + {{- $_ := set .Values.workload.main.podSpec "initContainers" dict -}} +{{- end -}} + +{{- $initPerms := (include "nextcloud.init.perms" . | fromYaml) -}} +{{- $_ := set .Values.workload.main.podSpec.initContainers "init-perms" $initPerms -}} + +{{/* Add [wait nextcloud] container to nginx */}} +{{- if not (get .Values.workload.nginx.podSpec "initContainers") -}} + {{- $_ := set .Values.workload.nginx.podSpec "initContainers" dict -}} +{{- end -}} +{{- $waitNextcloud := (include "nextcloud.wait.nextcloud" . | fromYaml) -}} +{{- $_ := set .Values.workload.nginx.podSpec.initContainers "wait-nextcloud" $waitNextcloud -}} + +{{/* Disable [notify push] if requested */}} +{{- if not .Values.nextcloud.notify_push.enabled -}} + {{- $_ := set .Values.workload.notify "enabled" false -}} + {{- $_ := set .Values.service.notify "enabled" false -}} +{{- else -}} + {{/* Add [wait nextcloud] container to notify push */}} + {{- if not (get .Values.workload.notify.podSpec "initContainers") -}} + {{- $_ := set .Values.workload.notify.podSpec "initContainers" dict -}} + {{- end -}} + {{- $waitNextcloud := (include "nextcloud.wait.nextcloud" . | fromYaml) -}} + {{- $_ := set .Values.workload.notify.podSpec.initContainers "wait-nextcloud" $waitNextcloud -}} +{{- end -}} + +{{/* Disable [clamav] if requested */}} +{{- if not .Values.nextcloud.clamav.enabled -}} + {{- $_ := set .Values.workload.clamav "enabled" false -}} + {{- $_ := set .Values.service.clamav "enabled" false -}} +{{- end -}} + +{{/* Disable [previews] if requested */}} +{{- if or (not .Values.nextcloud.previews.imaginary) (not .Values.nextcloud.previews.enabled) -}} + {{- $_ := set .Values.workload.imaginary "enabled" false -}} + {{- $_ := set .Values.service.imaginary "enabled" false -}} +{{- end -}} + +{{/* Disable [collabora] if requested */}} +{{- if not .Values.nextcloud.collabora.enabled -}} + {{- $_ := set .Values.workload.collabora "enabled" false -}} + {{- $_ := set .Values.service.collabora "enabled" false -}} +{{- end -}} + +{{/* Create [cronjobs] defined */}} +{{- $cronjobs := include "nextcloud.cronjobs" . | fromYaml -}} +{{- if $cronjobs -}} + {{- $_ := mustMergeOverwrite .Values.workload $cronjobs -}} +{{- end -}} + +{{/* TODO: Do we have to cleanup when something (eg Collabora) is disabled? */}} +{{- include "nextcloud.ingressInjector" $ -}} + +{{/* Render the templates */}} +{{- include "tc.v1.common.loader.apply" . -}} diff --git a/stable/nextcloud/24.0.0/values.yaml b/stable/nextcloud/24.0.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d