From 7fa8b3eb5c05fcf36aa4ed5ea4aaed7c2c6dce21 Mon Sep 17 00:00:00 2001 From: TrueCharts-Bot Date: Tue, 26 Dec 2023 22:14:01 +0000 Subject: [PATCH] Commit new Chart releases for TrueCharts Signed-off-by: TrueCharts-Bot --- stable/authentik/19.0.4/CHANGELOG.md | 99 + stable/authentik/19.0.4/Chart.yaml | 44 + .../4.0.1 => authentik/19.0.4}/LICENSE | 0 stable/authentik/19.0.4/README.md | 27 + stable/authentik/19.0.4/app-changelog.md | 9 + stable/authentik/19.0.4/app-readme.md | 8 + .../19.0.4}/charts/common-17.1.4.tgz | Bin .../authentik/19.0.4/charts/redis-11.0.2.tgz | Bin 0 -> 103215 bytes stable/authentik/19.0.4/ix_values.yaml | 502 ++ stable/authentik/19.0.4/questions.yaml | 5329 +++++++++++++++++ .../19.0.4}/templates/NOTES.txt | 0 stable/authentik/19.0.4/templates/_config.tpl | 128 + stable/authentik/19.0.4/templates/_secret.tpl | 74 + .../19.0.4/templates/_validation.tpl | 23 + .../19.0.4/templates/_waitAuthentik.tpl | 20 + stable/authentik/19.0.4/templates/common.yaml | 97 + .../4.0.1 => authentik/19.0.4}/values.yaml | 0 stable/gamevault-backend/4.0.0/CHANGELOG.md | 99 + stable/gamevault-backend/4.0.0/Chart.yaml | 37 + stable/gamevault-backend/4.0.0/README.md | 27 + .../gamevault-backend/4.0.0/app-changelog.md | 9 + stable/gamevault-backend/4.0.0/app-readme.md | 8 + .../4.0.0/charts/common-17.1.4.tgz | Bin 0 -> 97413 bytes stable/gamevault-backend/4.0.0/ix_values.yaml | 108 + stable/gamevault-backend/4.0.0/questions.yaml | 4008 +++++++++++++ .../4.0.0/templates/NOTES.txt | 1 + .../4.0.0}/templates/common.yaml | 0 stable/gamevault-backend/4.0.0/values.yaml | 0 stable/seafile/4.0.1/app-changelog.md | 9 - stable/seafile/{4.0.1 => 4.0.2}/CHANGELOG.md | 18 +- stable/seafile/{4.0.1 => 4.0.2}/Chart.yaml | 6 +- stable/seafile/4.0.2/LICENSE | 106 + stable/seafile/{4.0.1 => 4.0.2}/README.md | 0 stable/seafile/4.0.2/app-changelog.md | 9 + stable/seafile/{4.0.1 => 4.0.2}/app-readme.md | 0 stable/seafile/4.0.2/charts/common-17.1.4.tgz | Bin 0 -> 97413 bytes .../charts/mariadb-12.0.2.tgz | Bin .../seafile/{4.0.1 => 4.0.2}/ix_values.yaml | 4 +- .../seafile/{4.0.1 => 4.0.2}/questions.yaml | 0 stable/seafile/4.0.2/templates/NOTES.txt | 1 + stable/seafile/4.0.2/templates/common.yaml | 1 + stable/seafile/4.0.2/values.yaml | 0 42 files changed, 10788 insertions(+), 23 deletions(-) create mode 100644 stable/authentik/19.0.4/CHANGELOG.md create mode 100644 stable/authentik/19.0.4/Chart.yaml rename stable/{seafile/4.0.1 => authentik/19.0.4}/LICENSE (100%) create mode 100644 stable/authentik/19.0.4/README.md create mode 100644 stable/authentik/19.0.4/app-changelog.md create mode 100644 stable/authentik/19.0.4/app-readme.md rename stable/{seafile/4.0.1 => authentik/19.0.4}/charts/common-17.1.4.tgz (100%) create mode 100644 stable/authentik/19.0.4/charts/redis-11.0.2.tgz create mode 100644 stable/authentik/19.0.4/ix_values.yaml create mode 100644 stable/authentik/19.0.4/questions.yaml rename stable/{seafile/4.0.1 => authentik/19.0.4}/templates/NOTES.txt (100%) create mode 100644 stable/authentik/19.0.4/templates/_config.tpl create mode 100644 stable/authentik/19.0.4/templates/_secret.tpl create mode 100644 stable/authentik/19.0.4/templates/_validation.tpl create mode 100644 stable/authentik/19.0.4/templates/_waitAuthentik.tpl create mode 100644 stable/authentik/19.0.4/templates/common.yaml rename stable/{seafile/4.0.1 => authentik/19.0.4}/values.yaml (100%) create mode 100644 stable/gamevault-backend/4.0.0/CHANGELOG.md create mode 100644 stable/gamevault-backend/4.0.0/Chart.yaml create mode 100644 stable/gamevault-backend/4.0.0/README.md create mode 100644 stable/gamevault-backend/4.0.0/app-changelog.md create mode 100644 stable/gamevault-backend/4.0.0/app-readme.md create mode 100644 stable/gamevault-backend/4.0.0/charts/common-17.1.4.tgz create mode 100644 stable/gamevault-backend/4.0.0/ix_values.yaml create mode 100644 stable/gamevault-backend/4.0.0/questions.yaml create mode 100644 stable/gamevault-backend/4.0.0/templates/NOTES.txt rename stable/{seafile/4.0.1 => gamevault-backend/4.0.0}/templates/common.yaml (100%) create mode 100644 stable/gamevault-backend/4.0.0/values.yaml delete mode 100644 stable/seafile/4.0.1/app-changelog.md rename stable/seafile/{4.0.1 => 4.0.2}/CHANGELOG.md (89%) rename stable/seafile/{4.0.1 => 4.0.2}/Chart.yaml (97%) create mode 100644 stable/seafile/4.0.2/LICENSE rename stable/seafile/{4.0.1 => 4.0.2}/README.md (100%) create mode 100644 stable/seafile/4.0.2/app-changelog.md rename stable/seafile/{4.0.1 => 4.0.2}/app-readme.md (100%) create mode 100644 stable/seafile/4.0.2/charts/common-17.1.4.tgz rename stable/seafile/{4.0.1 => 4.0.2}/charts/mariadb-12.0.2.tgz (100%) rename stable/seafile/{4.0.1 => 4.0.2}/ix_values.yaml (79%) rename stable/seafile/{4.0.1 => 4.0.2}/questions.yaml (100%) create mode 100644 stable/seafile/4.0.2/templates/NOTES.txt create mode 100644 stable/seafile/4.0.2/templates/common.yaml create mode 100644 stable/seafile/4.0.2/values.yaml diff --git a/stable/authentik/19.0.4/CHANGELOG.md b/stable/authentik/19.0.4/CHANGELOG.md new file mode 100644 index 0000000000..9a40cd0a71 --- /dev/null +++ b/stable/authentik/19.0.4/CHANGELOG.md @@ -0,0 +1,99 @@ +**Important:** +*for the complete changelog, please refer to the website* + + + + +## [authentik-19.0.4](https://github.com/truecharts/charts/compare/authentik-19.0.1...authentik-19.0.4) (2023-12-26) + +### Chore + +- update authentik to v2023.10.5[@4f0722d](https://github.com/4f0722d) by renovate (patch) ([#16456](https://github.com/truecharts/charts/issues/16456)) + + + + +## [authentik-19.0.1](https://github.com/truecharts/charts/compare/authentik-19.0.0...authentik-19.0.1) (2023-12-26) + +### Chore + +- update helm general non-major by renovate ([#16545](https://github.com/truecharts/charts/issues/16545)) + + + + +## [authentik-19.0.0](https://github.com/truecharts/charts/compare/authentik-18.0.0...authentik-19.0.0) (2023-12-26) + +### Chore + +- update helm general major by renovate (major) ([#16547](https://github.com/truecharts/charts/issues/16547)) + + + + +## [authentik-19.0.0](https://github.com/truecharts/charts/compare/authentik-18.0.0...authentik-19.0.0) (2023-12-26) + +### Chore + +- update helm general major by renovate (major) ([#16547](https://github.com/truecharts/charts/issues/16547)) + + + + +## [authentik-18.0.0](https://github.com/truecharts/charts/compare/authentik-17.0.13...authentik-18.0.0) (2023-12-25) + +### Chore + +- update helm chart common to 17.1.0 by renovate ([#16532](https://github.com/truecharts/charts/issues/16532)) + + + + +## [authentik-17.0.13](https://github.com/truecharts/charts/compare/authentik-17.0.12...authentik-17.0.13) (2023-12-24) + +### Chore + +- update helm general non-major by renovate ([#16384](https://github.com/truecharts/charts/issues/16384)) + + + + +## [authentik-17.0.12](https://github.com/truecharts/charts/compare/authentik-17.0.11...authentik-17.0.12) (2023-12-24) + +### Chore + +- update helm general non-major by renovate ([#16376](https://github.com/truecharts/charts/issues/16376)) + + + + +## [authentik-17.0.11](https://github.com/truecharts/charts/compare/authentik-17.0.10...authentik-17.0.11) (2023-12-23) + +### Chore + +- update helm general non-major by renovate ([#16373](https://github.com/truecharts/charts/issues/16373)) + + + + +## [authentik-17.0.10](https://github.com/truecharts/charts/compare/authentik-17.0.9...authentik-17.0.10) (2023-12-23) + +### Chore + +- update helm general non-major by renovate ([#16369](https://github.com/truecharts/charts/issues/16369)) + + + + +## [authentik-17.0.9](https://github.com/truecharts/charts/compare/authentik-17.0.8...authentik-17.0.9) (2023-12-23) + +### Chore + +- update helm general non-major by renovate ([#16361](https://github.com/truecharts/charts/issues/16361)) + + + + +## [authentik-17.0.8](https://github.com/truecharts/charts/compare/authentik-17.0.7...authentik-17.0.8) (2023-12-22) + +### Chore diff --git a/stable/authentik/19.0.4/Chart.yaml b/stable/authentik/19.0.4/Chart.yaml new file mode 100644 index 0000000000..53b7d06d83 --- /dev/null +++ b/stable/authentik/19.0.4/Chart.yaml @@ -0,0 +1,44 @@ +kubeVersion: ">=1.24.0-0" +apiVersion: v2 +name: authentik +version: 19.0.4 +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://github.com/goauthentik/authentik + - https://goauthentik.io/docs/ + - https://github.com/truecharts/charts/tree/master/charts/stable/authentik + - https://ghcr.io/goauthentik/proxy +maintainers: + - name: TrueCharts + email: info@truecharts.org + url: https://truecharts.org +keywords: + - authentik +dependencies: + - name: common + version: 17.1.4 + repository: https://library-charts.truecharts.org + condition: "" + alias: "" + tags: [] + import-values: [] + - name: redis + version: 11.0.2 + 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/seafile/4.0.1/LICENSE b/stable/authentik/19.0.4/LICENSE similarity index 100% rename from stable/seafile/4.0.1/LICENSE rename to stable/authentik/19.0.4/LICENSE diff --git a/stable/authentik/19.0.4/README.md b/stable/authentik/19.0.4/README.md new file mode 100644 index 0000000000..97da9b371c --- /dev/null +++ b/stable/authentik/19.0.4/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/19.0.4/app-changelog.md b/stable/authentik/19.0.4/app-changelog.md new file mode 100644 index 0000000000..1abe185618 --- /dev/null +++ b/stable/authentik/19.0.4/app-changelog.md @@ -0,0 +1,9 @@ + + +## [authentik-19.0.4](https://github.com/truecharts/charts/compare/authentik-19.0.1...authentik-19.0.4) (2023-12-26) + +### Chore + +- update authentik to v2023.10.5[@4f0722d](https://github.com/4f0722d) by renovate (patch) ([#16456](https://github.com/truecharts/charts/issues/16456)) + + \ No newline at end of file diff --git a/stable/authentik/19.0.4/app-readme.md b/stable/authentik/19.0.4/app-readme.md new file mode 100644 index 0000000000..fe4c2e580a --- /dev/null +++ b/stable/authentik/19.0.4/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/seafile/4.0.1/charts/common-17.1.4.tgz b/stable/authentik/19.0.4/charts/common-17.1.4.tgz similarity index 100% rename from stable/seafile/4.0.1/charts/common-17.1.4.tgz rename to stable/authentik/19.0.4/charts/common-17.1.4.tgz diff --git a/stable/authentik/19.0.4/charts/redis-11.0.2.tgz b/stable/authentik/19.0.4/charts/redis-11.0.2.tgz new file mode 100644 index 0000000000000000000000000000000000000000..fcb33443cb965b10391c67708b3dcf8dca0691ef GIT binary patch literal 103215 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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: integrations + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: traefik + label: Traefik + description: Connect ingress with Traefik + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: allowCors + label: 'Allow Cross Origin Requests (advanced)' + schema: + type: boolean + default: false + show_if: [["enabled", "=", true]] + - variable: entrypoints + label: Entrypoints + schema: + type: list + default: ["websecure"] + show_if: [["enabled", "=", true]] + items: + - variable: entrypoint + label: Entrypoint + schema: + type: string + - variable: middlewares + label: Middlewares + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: middleware + label: Middleware + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true + - variable: namespace + label: 'namespace (optional)' + schema: + type: string + default: "" + - variable: certManager + label: certManager + description: Connect ingress with certManager + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: certificateIssuer + label: certificateIssuer + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: homepage + label: Homepage + description: Connect ingress with Homepage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: name + label: Name (Optional) + description: Defaults to chart name + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: description + label: Description (Optional) + description: Defaults to chart description + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: icon + label: Icon (Optional) + description: Defaults to chart icon + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: group + label: Group + schema: + type: string + required: true + default: "default" + show_if: [["enabled", "=", true]] + - variable: widget + label: Widget Settings + schema: + type: dict + additional_attrs: true + show_if: [["enabled", "=", true]] + attrs: + - variable: enabled + label: Enable Widget + description: When disabled all widget annotations are skipped. + schema: + type: boolean + default: true + - variable: custom + label: Options + schema: + type: dict + additional_attrs: true + attrs: + - variable: key + label: API-key (key) + schema: + type: string + default: "" + - variable: customkv + label: Custom Options + schema: + type: list + default: [] + items: + - variable: option + label: Option + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + default: "" + required: true + - variable: value + label: Value + schema: + type: string + default: "" + required: true + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + - variable: ingressClassName + label: (Advanced/Optional) IngressClass Name + schema: + type: string + show_if: [["advanced", "=", true]] + default: "" + - variable: tls + label: TLS-Settings + schema: + type: list + show_if: [["advanced", "=", true]] + default: [] + items: + - variable: tlsEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: hosts + label: Certificate Hosts + schema: + type: list + default: [] + items: + - variable: host + label: Host + schema: + type: string + default: "" + required: true + + - variable: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: 'Use Custom Certificate Secret (Advanced)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: string + default: "" + - variable: scaleCert + label: 'Use TrueNAS SCALE Certificate (Deprecated)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - variable: 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: integrations + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: traefik + label: Traefik + description: Connect ingress with Traefik + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: allowCors + label: 'Allow Cross Origin Requests (advanced)' + schema: + type: boolean + default: false + show_if: [["enabled", "=", true]] + - variable: entrypoints + label: Entrypoints + schema: + type: list + default: ["websecure"] + show_if: [["enabled", "=", true]] + items: + - variable: entrypoint + label: Entrypoint + schema: + type: string + - variable: middlewares + label: Middlewares + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: middleware + label: Middleware + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true + - variable: namespace + label: 'namespace (optional)' + schema: + type: string + default: "" + - variable: certManager + label: certManager + description: Connect ingress with certManager + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: certificateIssuer + label: certificateIssuer + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: homepage + label: Homepage + description: Connect ingress with Homepage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: name + label: Name (Optional) + description: Defaults to chart name + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: description + label: Description (Optional) + description: Defaults to chart description + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: icon + label: Icon (Optional) + description: Defaults to chart icon + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: group + label: Group + schema: + type: string + required: true + default: "default" + show_if: [["enabled", "=", true]] + - variable: widget + label: Widget Settings + schema: + type: dict + additional_attrs: true + show_if: [["enabled", "=", true]] + attrs: + - variable: enabled + label: Enable Widget + description: When disabled all widget annotations are skipped. + schema: + type: boolean + default: true + - variable: custom + label: Options + schema: + type: dict + additional_attrs: true + attrs: + - variable: key + label: API-key (key) + schema: + type: string + default: "" + - variable: customkv + label: Custom Options + schema: + type: list + default: [] + items: + - variable: option + label: Option + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + default: "" + required: true + - variable: value + label: Value + schema: + type: string + default: "" + required: true + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + - variable: ingressClassName + label: (Advanced/Optional) IngressClass Name + schema: + type: string + show_if: [["advanced", "=", true]] + default: "" + - variable: tls + label: TLS-Settings + schema: + type: list + show_if: [["advanced", "=", true]] + default: [] + items: + - variable: tlsEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: hosts + label: Certificate Hosts + schema: + type: list + default: [] + items: + - variable: host + label: Host + schema: + type: string + default: "" + required: true + + - variable: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: 'Use Custom Certificate Secret (Advanced)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: string + default: "" + - variable: scaleCert + label: 'Use TrueNAS SCALE Certificate (Deprecated)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - variable: ingressList + label: Add Manual Custom Ingresses + group: Ingress + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: Custom Ingress + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Ingress + schema: + type: boolean + default: true + hidden: true + - variable: name + label: Name + schema: + type: string + default: "" + - variable: ingressClassName + label: IngressClass Name + schema: + type: string + default: "" + - variable: hosts + label: Hosts + schema: + type: list + default: [] + items: + - variable: hostEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: host + label: HostName + schema: + type: string + default: "" + required: true + - variable: paths + label: Paths + schema: + type: list + default: [] + items: + - variable: pathEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: path + label: Path + schema: + type: string + required: true + default: "/" + - variable: pathType + label: Path Type + schema: + type: string + required: true + default: Prefix + - variable: overrideService + label: Linked Service + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Service Name + schema: + type: string + default: "" + - variable: port + label: Service Port + schema: + type: int + - variable: tls + label: TLS-Settings + schema: + type: list + default: [] + show_if: [["certificateIssuer", "=", ""]] + items: + - variable: tlsEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: hosts + label: Certificate Hosts + schema: + type: list + default: [] + items: + - variable: host + label: Host + schema: + type: string + default: "" + required: true + - variable: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your Cert-Manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: scaleCert + label: Use TrueNAS SCALE Certificate (Deprecated) + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: Use Custom Secret (Advanced) + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: integrations + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: traefik + label: Traefik + description: Connect ingress with Traefik + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: allowCors + label: "Allow Cross Origin Requests" + schema: + type: boolean + default: false + show_if: [["enabled", "=", true]] + - variable: entrypoints + label: Entrypoints + schema: + type: list + default: ["websecure"] + show_if: [["enabled", "=", true]] + items: + - variable: entrypoint + label: Entrypoint + schema: + type: string + - variable: middlewares + label: Middlewares + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: middleware + label: Middleware + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true + - variable: namespace + label: namespace + schema: + type: string + default: "" + - variable: certManager + label: certManager + description: Connect ingress with certManager + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: certificateIssuer + label: certificateIssuer + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: homepage + label: Homepage + description: Connect ingress with Homepage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: name + label: Name + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: description + label: Description + description: defaults to chart description + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: group + label: Group + schema: + type: string + required: true + default: "default" + show_if: [["enabled", "=", true]] + - variable: securityContext + group: Security and Permissions + label: Security Context + schema: + additional_attrs: true + type: dict + attrs: + - variable: container + label: Container + schema: + additional_attrs: true + type: dict + attrs: + # Settings from questions.yaml get appended here on a per-app basis + - variable: runAsUser + label: runAsUser + description: The UserID of the user running the application + schema: + type: int + default: 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: cnpg + group: Postgresql + label: "CloudNative-PG (CNPG)" + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "Main Postgresql Database" + schema: + additional_attrs: true + type: dict + attrs: + - variable: hibernate + label: Hibernate + description: "enable to safely hibernate and shutdown the postgresql cluster" + schema: + type: boolean + default: false + - variable: mode + label: Mode + description: 'Cluster mode of operation. Available modes: standalone - default mode. Creates new or updates an existing CNPG cluster. recovery - Same as standalone but creates a cluster from a backup, object store or via pg_basebackup replica - Creates a replica cluster from an existing CNPG cluster. # TODO.' + schema: + type: string + default: "standalone" + enum: + - value: standalone + description: standalone + - value: replica + description: replica + - value: recovery + description: recovery + - variable: cluster + label: "Cluster Settings" + schema: + additional_attrs: true + type: dict + attrs: + - variable: instances + label: Instances + schema: + type: int + default: 2 + - variable: singleNode + label: singleNode + schema: + type: boolean + default: true + hidden: true + - variable: storage + label: "Storage" + schema: + additional_attrs: true + type: dict + attrs: + - variable: size + label: Size + schema: + type: string + default: "256Gi" + - variable: walStorage + label: "WAL Storage" + schema: + additional_attrs: true + type: dict + attrs: + - variable: size + label: Size + schema: + type: string + default: "256Gi" + - variable: monitoring + label: "Monitoring Settings" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enablePodMonitor + label: "enablePodMonitor" + schema: + type: boolean + default: true + - variable: disableDefaultQueries + label: "disableDefaultQueries" + schema: + type: boolean + default: false + - variable: pooler + label: "Pooler Settings" + schema: + additional_attrs: true + type: dict + attrs: + - variable: instances + label: Instances + schema: + type: int + default: 2 + - variable: createRO + label: "Create ReadOnly Instance" + schema: + type: boolean + default: false + - variable: recovery + label: "Recovery Settings (Experimental)" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + - variable: endpointURL + label: "endpointURL" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "" + - variable: method + label: "method" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "object_store" + - variable: backupName + label: "backupName" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "" + - variable: provider + label: "provider" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "s3" + enum: + - value: s3 + description: S3 + - value: azure + description: Azure + - value: google + description: Google + - variable: s3 + label: "s3" + schema: + additional_attrs: true + type: dict + show_if: [["provider", "=", "s3"]] + attrs: + - variable: region + label: "region" + schema: + type: string + default: "" + - variable: bucket + label: "bucket" + schema: + type: string + default: "" + - variable: path + label: "path" + schema: + type: string + default: "/" + - variable: accessKey + label: "accessKey" + schema: + type: string + default: "" + - variable: secretKey + label: "secretKey" + schema: + type: string + default: "" + - variable: azure + label: "azure (EXTREMELY EXPERIMENTAL)" + schema: + additional_attrs: true + type: dict + show_if: [["provider", "=", "azure"]] + attrs: + - variable: path + label: "path" + schema: + type: string + default: "/" + - variable: connectionString + label: "connectionString" + schema: + type: string + default: "" + - variable: storageAccount + label: "storageAccount" + schema: + type: string + default: "" + - variable: storageKey + label: "storageKey" + schema: + type: string + default: "" + - variable: storageSasToken + label: "storageSasToken" + schema: + type: string + default: "" + - variable: containerName + label: "containerName" + schema: + type: string + default: "" + - variable: serviceName + label: "serviceName" + schema: + type: string + default: "blob" + - variable: inheritFromAzureAD + label: "inheritFromAzureAD" + schema: + type: boolean + default: false + - variable: google + label: "google (EXTREMELY EXPERIMENTAL)" + schema: + additional_attrs: true + type: dict + show_if: [["provider", "=", "google"]] + attrs: + - variable: path + label: "path" + schema: + type: string + default: "/" + - variable: bucket + label: "bucket" + schema: + type: string + default: "" + - variable: gkeEnvironment + label: "gkeEnvironment" + schema: + type: string + default: "" + - variable: applicationCredentials + label: "applicationCredentials" + schema: + type: string + default: "" + - variable: backups + label: "Backup Settings (Experimental)" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + - variable: endpointURL + label: "endpointURL" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "" + - variable: destinationPath + label: "destinationPath" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "" + - variable: retentionPolicy + label: "retentionPolicy" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "30d" + - variable: provider + label: "provider" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "s3" + enum: + - value: s3 + description: S3 + - value: azure + description: Azure + - value: google + description: Google + - variable: s3 + label: "s3" + schema: + additional_attrs: true + type: dict + show_if: [["provider", "=", "s3"]] + attrs: + - variable: region + label: "region" + schema: + type: string + default: "" + - variable: bucket + label: "bucket" + schema: + type: string + default: "" + - variable: path + label: "path" + schema: + type: string + default: "/" + - variable: accessKey + label: "accessKey" + schema: + type: string + default: "" + - variable: secretKey + label: "secretKey" + schema: + type: string + default: "" + - variable: azure + label: "azure (EXTREMELY EXPERIMENTAL)" + schema: + additional_attrs: true + type: dict + show_if: [["provider", "=", "azure"]] + attrs: + - variable: path + label: "path" + schema: + type: string + default: "/" + - variable: connectionString + label: "connectionString" + schema: + type: string + default: "" + - variable: storageAccount + label: "storageAccount" + schema: + type: string + default: "" + - variable: storageKey + label: "storageKey" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "" + - variable: storageSasToken + label: "storageSasToken" + schema: + type: string + default: "" + - variable: containerName + label: "containerName" + schema: + type: string + default: "" + - variable: serviceName + label: "serviceName" + schema: + type: string + default: "blob" + - variable: inheritFromAzureAD + label: "inheritFromAzureAD" + schema: + type: boolean + default: false + - variable: google + label: "google (EXTREMELY EXPERIMENTAL)" + schema: + additional_attrs: true + type: dict + show_if: [["provider", "=", "google"]] + attrs: + - variable: path + label: "path" + schema: + type: string + default: "/" + - variable: bucket + label: "bucket" + schema: + type: string + default: "" + - variable: gkeEnvironment + label: "gkeEnvironment" + schema: + type: string + default: "" + - variable: applicationCredentials + label: "applicationCredentials" + schema: + type: string + default: "" + - variable: scheduledBackups + label: ScheduledBackups + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: backupschedule + label: BackupSchedule + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "daily-backup" + required: true + - variable: schedule + label: schedule + schema: + type: string + required: true + default: "0 0 0 * * *" + - variable: backupOwnerReference + label: backupOwnerReference + schema: + type: string + required: true + default: "self" + - variable: immediate + label: immediate + schema: + type: boolean + default: false + - variable: suspend + label: suspend + schema: + type: boolean + default: false + - variable: manualBackups + label: manualBackups + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: backup + label: Backup + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true + - variable: metrics + group: Metrics + label: Prometheus Metrics + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: Main Metrics + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + description: Enable Prometheus Metrics + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: prometheusRule + label: PrometheusRule + description: Enable and configure Prometheus Rules for the App. + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + description: Enable Prometheus Metrics + schema: + type: boolean + default: false + # TODO: Rule List section +# - variable: horizontalPodAutoscaler +# group: Advanced +# label: (Advanced) Horizontal Pod Autoscaler +# schema: +# type: list +# default: [] +# items: +# - variable: hpaEntry +# label: HPA Entry +# schema: +# additional_attrs: true +# type: dict +# attrs: +# - variable: name +# label: Name +# schema: +# type: string +# required: true +# default: "" +# - variable: enabled +# label: Enabled +# schema: +# type: boolean +# default: false +# show_subquestions_if: true +# subquestions: +# - variable: target +# label: Target +# description: Deployment name, Defaults to Main Deployment +# schema: +# type: string +# default: "" +# - variable: minReplicas +# label: Minimum Replicas +# schema: +# type: int +# default: 1 +# - variable: maxReplicas +# label: Maximum Replicas +# schema: +# type: int +# default: 5 +# - variable: targetCPUUtilizationPercentage +# label: Target CPU Utilization Percentage +# schema: +# type: int +# default: 80 +# - variable: targetMemoryUtilizationPercentage +# label: Target Memory Utilization Percentage +# schema: +# type: int +# default: 80 + - variable: networkPolicy + group: Advanced + label: (Advanced) Network Policy + schema: + type: list + default: [] + items: + - variable: netPolicyEntry + label: Network Policy Entry + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + default: "" + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: policyType + label: Policy Type + schema: + type: string + default: "" + enum: + - value: "" + description: Default + - value: ingress + description: Ingress + - value: egress + description: Egress + - value: ingress-egress + description: Ingress and Egress + - variable: egress + label: Egress + schema: + type: list + default: [] + items: + - variable: egressEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: to + label: To + schema: + type: list + default: [] + items: + - variable: toEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: ipBlock + label: IP Block + schema: + additional_attrs: true + type: dict + attrs: + - variable: cidr + label: CIDR + schema: + type: string + default: "" + - variable: except + label: Except + schema: + type: list + default: [] + items: + - variable: exceptint + label: "" + schema: + type: string + - variable: namespaceSelector + label: Namespace Selector + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: podSelector + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: ports + label: Ports + schema: + type: list + default: [] + items: + - variable: portsEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + schema: + type: int + - variable: endPort + label: End Port + schema: + type: int + - variable: protocol + label: Protocol + schema: + type: string + default: TCP + enum: + - value: TCP + description: TCP + - value: UDP + description: UDP + - value: SCTP + description: SCTP + - variable: ingress + label: Ingress + schema: + type: list + default: [] + items: + - variable: ingressEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: from + label: From + schema: + type: list + default: [] + items: + - variable: fromEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: ipBlock + label: IP Block + schema: + additional_attrs: true + type: dict + attrs: + - variable: cidr + label: CIDR + schema: + type: string + default: "" + - variable: except + label: Except + schema: + type: list + default: [] + items: + - variable: exceptint + label: "" + schema: + type: string + - variable: namespaceSelector + label: Namespace Selector + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: podSelector + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: ports + label: Ports + schema: + type: list + default: [] + items: + - variable: portsEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + schema: + type: int + - variable: endPort + label: End Port + schema: + type: int + - variable: protocol + label: Protocol + schema: + type: string + default: TCP + enum: + - value: TCP + description: TCP + - value: UDP + description: UDP + - value: SCTP + description: SCTP + - variable: addons + group: Addons + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: codeserver + label: Codeserver + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: service + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Service Type + description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: LoadBalancer + enum: + - value: NodePort + description: Deprecated CHANGE THIS + - value: ClusterIP + description: ClusterIP + - value: LoadBalancer + description: LoadBalancer + - variable: loadBalancerIP + label: LoadBalancer IP + description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: ports + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: codeserver + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + schema: + type: int + default: 36107 + - variable: ingress + label: "Ingress" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Ingress + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: Hosts + schema: + type: list + default: [] + items: + - variable: hostEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: host + label: HostName + schema: + type: string + default: "" + required: true + - variable: paths + label: Paths + schema: + type: list + default: [{path: "/", pathType: "Prefix"}] + items: + - variable: pathEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: path + label: Path + schema: + type: string + required: true + default: "/" + - variable: pathType + label: Path Type + schema: + type: string + required: true + default: Prefix + - variable: integrations + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: traefik + label: Traefik + description: Connect ingress with Traefik + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: allowCors + label: 'Allow Cross Origin Requests (advanced)' + schema: + type: boolean + default: false + show_if: [["enabled", "=", true]] + - variable: entrypoints + label: Entrypoints + schema: + type: list + default: ["websecure"] + show_if: [["enabled", "=", true]] + items: + - variable: entrypoint + label: Entrypoint + schema: + type: string + - variable: middlewares + label: Middlewares + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: middleware + label: Middleware + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true + - variable: namespace + label: 'namespace (optional)' + schema: + type: string + default: "" + - variable: certManager + label: certManager + description: Connect ingress with certManager + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: certificateIssuer + label: certificateIssuer + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + - variable: ingressClassName + label: (Advanced/Optional) IngressClass Name + schema: + type: string + show_if: [["advanced", "=", true]] + default: "" + - variable: tls + label: TLS-Settings + schema: + type: list + show_if: [["advanced", "=", true]] + default: [] + items: + - variable: tlsEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: hosts + label: Certificate Hosts + schema: + type: list + default: [] + items: + - variable: host + label: Host + schema: + type: string + default: "" + required: true + + - variable: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: 'Use Custom Certificate Secret (Advanced)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: string + default: "" + - variable: scaleCert + label: 'Use TrueNAS SCALE Certificate (Deprecated)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - variable: envList + label: Codeserver Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + - variable: netshoot + label: Netshoot + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: envList + label: Netshoot Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + - variable: vpn + label: VPN + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type + schema: + type: string + default: disabled + enum: + - value: disabled + description: disabled + - value: gluetun + description: Gluetun + - value: tailscale + description: Tailscale + - value: openvpn + description: OpenVPN (Deprecated) + - value: wireguard + description: Wireguard (Deprecated) + - variable: openvpn + label: OpenVPN Settings + schema: + additional_attrs: true + type: dict + show_if: [["type", "=", "openvpn"]] + attrs: + - variable: username + label: Authentication Username (Optional) + description: Authentication Username, Optional + schema: + type: string + default: "" + - variable: password + label: Authentication Password + description: Authentication Credentials + schema: + type: string + show_if: [["username", "!=", ""]] + default: "" + required: true + - variable: tailscale + label: Tailscale Settings + schema: + additional_attrs: true + type: dict + show_if: [["type", "=", "tailscale"]] + attrs: + - variable: authkey + label: Authentication Key + description: Provide an auth key to automatically authenticate the node as your user account. + schema: + type: string + private: true + default: "" + - variable: auth_once + label: Auth Once + description: Only attempt to log in if not already logged in. + schema: + type: boolean + default: true + - variable: accept_dns + label: Accept DNS + description: Accept DNS configuration from the admin console. + schema: + type: boolean + default: false + - variable: userspace + label: Userspace + description: Userspace Networking mode allows running Tailscale where you do not have access to create a VPN tunnel device. + schema: + type: boolean + default: false + - variable: routes + label: Routes + description: Expose physical subnet routes to your entire Tailscale network. + schema: + type: string + default: "" + - variable: dest_ip + label: Destination IP + description: Tells the DNAT mechanism which Destination IP to set in the IP header, and where to send packets that are matched. + schema: + type: string + default: "" + - variable: sock5_server + label: Sock5 Server + description: The address on which to listen for SOCKS5 proxying into the tailscale net. + schema: + type: string + default: "" + - variable: outbound_http_proxy_listen + label: Outbound HTTP Proxy Listen + description: The address on which to listen for HTTP proxying into the tailscale net. + schema: + type: string + default: "" + - variable: extra_args + label: Extra Args + description: Extra Args + schema: + type: string + default: "" + - variable: daemon_extra_args + label: Tailscale Daemon Extra Args + description: Tailscale Daemon Extra Args + schema: + type: string + default: "" + - variable: killSwitch + label: Enable Killswitch + schema: + type: boolean + show_if: [["type", "!=", "disabled"]] + default: true + - variable: excludedNetworks_IPv4 + label: Killswitch Excluded IPv4 networks + description: List of Killswitch Excluded IPv4 Addresses + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: networkv4 + label: IPv4 Network + schema: + type: string + required: true + - variable: excludedNetworks_IPv6 + label: Killswitch Excluded IPv6 networks + description: "List of Killswitch Excluded IPv6 Addresses" + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: networkv6 + label: IPv6 Network + schema: + type: string + required: true + - variable: configFile + label: VPN Config File Location + schema: + type: string + show_if: [["type", "!=", "disabled"]] + default: "" + + - variable: envList + label: VPN Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + max_length: 10240 + - variable: docs + group: Documentation + label: Please read the documentation at https://truecharts.org + description: Please read the documentation at +
https://truecharts.org + schema: + additional_attrs: true + type: dict + attrs: + - variable: confirmDocs + label: I have checked the documentation + schema: + type: boolean + default: true + - variable: donateNag + group: Documentation + label: Please consider supporting TrueCharts, see https://truecharts.org/sponsor + description: Please consider supporting TrueCharts, see +
https://truecharts.org/sponsor + schema: + additional_attrs: true + type: dict + attrs: + - variable: confirmDonate + label: I have considered donating + schema: + type: boolean + default: true + hidden: true diff --git a/stable/seafile/4.0.1/templates/NOTES.txt b/stable/authentik/19.0.4/templates/NOTES.txt similarity index 100% rename from stable/seafile/4.0.1/templates/NOTES.txt rename to stable/authentik/19.0.4/templates/NOTES.txt diff --git a/stable/authentik/19.0.4/templates/_config.tpl b/stable/authentik/19.0.4/templates/_config.tpl new file mode 100644 index 0000000000..c46407c309 --- /dev/null +++ b/stable/authentik/19.0.4/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/19.0.4/templates/_secret.tpl b/stable/authentik/19.0.4/templates/_secret.tpl new file mode 100644 index 0000000000..faf26d54e1 --- /dev/null +++ b/stable/authentik/19.0.4/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/19.0.4/templates/_validation.tpl b/stable/authentik/19.0.4/templates/_validation.tpl new file mode 100644 index 0000000000..5a1b5f029b --- /dev/null +++ b/stable/authentik/19.0.4/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/19.0.4/templates/_waitAuthentik.tpl b/stable/authentik/19.0.4/templates/_waitAuthentik.tpl new file mode 100644 index 0000000000..b2421746ce --- /dev/null +++ b/stable/authentik/19.0.4/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/19.0.4/templates/common.yaml b/stable/authentik/19.0.4/templates/common.yaml new file mode 100644 index 0000000000..f60f125473 --- /dev/null +++ b/stable/authentik/19.0.4/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/seafile/4.0.1/values.yaml b/stable/authentik/19.0.4/values.yaml similarity index 100% rename from stable/seafile/4.0.1/values.yaml rename to stable/authentik/19.0.4/values.yaml diff --git a/stable/gamevault-backend/4.0.0/CHANGELOG.md b/stable/gamevault-backend/4.0.0/CHANGELOG.md new file mode 100644 index 0000000000..65f7c9946b --- /dev/null +++ b/stable/gamevault-backend/4.0.0/CHANGELOG.md @@ -0,0 +1,99 @@ +**Important:** +*for the complete changelog, please refer to the website* + + + + +## [gamevault-backend-4.0.0](https://github.com/truecharts/charts/compare/gamevault-backend-3.0.1...gamevault-backend-4.0.0) (2023-12-26) + +### Chore + +- update container image phalcode/gamevault-backend to v10.0.1[@3123f5b](https://github.com/3123f5b) by renovate ([#16503](https://github.com/truecharts/charts/issues/16503)) + + + + +## [gamevault-backend-3.0.1](https://github.com/truecharts/charts/compare/gamevault-backend-3.0.0...gamevault-backend-3.0.1) (2023-12-26) + +### Chore + +- update helm general non-major by renovate ([#16545](https://github.com/truecharts/charts/issues/16545)) + + + + +## [gamevault-backend-3.0.0](https://github.com/truecharts/charts/compare/gamevault-backend-2.0.11...gamevault-backend-3.0.0) (2023-12-25) + +### Chore + +- update helm chart common to 17.1.0 by renovate ([#16532](https://github.com/truecharts/charts/issues/16532)) + + + + +## [gamevault-backend-2.0.11](https://github.com/truecharts/charts/compare/gamevault-backend-2.0.10...gamevault-backend-2.0.11) (2023-12-24) + +### Chore + +- update helm general non-major by renovate ([#16384](https://github.com/truecharts/charts/issues/16384)) + + + + +## [gamevault-backend-2.0.10](https://github.com/truecharts/charts/compare/gamevault-backend-2.0.9...gamevault-backend-2.0.10) (2023-12-24) + +### Chore + +- update helm general non-major by renovate ([#16376](https://github.com/truecharts/charts/issues/16376)) + + + + +## [gamevault-backend-2.0.9](https://github.com/truecharts/charts/compare/gamevault-backend-2.0.8...gamevault-backend-2.0.9) (2023-12-23) + +### Chore + +- update helm general non-major by renovate ([#16373](https://github.com/truecharts/charts/issues/16373)) + + + + +## [gamevault-backend-2.0.8](https://github.com/truecharts/charts/compare/gamevault-backend-2.0.7...gamevault-backend-2.0.8) (2023-12-23) + +### Chore + +- update helm general non-major by renovate ([#16369](https://github.com/truecharts/charts/issues/16369)) + + + + +## [gamevault-backend-2.0.7](https://github.com/truecharts/charts/compare/gamevault-backend-2.0.6...gamevault-backend-2.0.7) (2023-12-23) + +### Chore + +- update helm general non-major by renovate ([#16361](https://github.com/truecharts/charts/issues/16361)) + + + + +## [gamevault-backend-2.0.6](https://github.com/truecharts/charts/compare/gamevault-backend-2.0.5...gamevault-backend-2.0.6) (2023-12-22) + +### Chore + +- update helm general non-major by renovate ([#16359](https://github.com/truecharts/charts/issues/16359)) + + + + +## [gamevault-backend-2.0.5](https://github.com/truecharts/charts/compare/gamevault-backend-2.0.4...gamevault-backend-2.0.5) (2023-12-22) + +### Fix + +- expose custom options for homepage integration + + + + +## [gamevault-backend-2.0.4](https://github.com/truecharts/charts/compare/gamevault-backend-2.0.3...gamevault-backend-2.0.4) (2023-12-21) + +### Fix diff --git a/stable/gamevault-backend/4.0.0/Chart.yaml b/stable/gamevault-backend/4.0.0/Chart.yaml new file mode 100644 index 0000000000..4b62d4b914 --- /dev/null +++ b/stable/gamevault-backend/4.0.0/Chart.yaml @@ -0,0 +1,37 @@ +kubeVersion: ">=1.24.0-0" +apiVersion: v2 +name: gamevault-backend +version: 4.0.0 +appVersion: 10.0.1 +description: the self-hosted gaming platform for alternatively obtained games. +home: https://truecharts.org/charts/stable/gamevault-backend +icon: https://truecharts.org/img/hotlink-ok/chart-icons/gamevault-backend.png +deprecated: false +sources: + - https://github.com/Phalcode/gamevault-backend + - https://github.com/truecharts/charts/tree/master/charts/stable/gamevault-backend + - https://hub.docker.com/r/phalcode/gamevault-backend +maintainers: + - name: TrueCharts + email: info@truecharts.org + url: https://truecharts.org +keywords: + - gamevault-backend + - games +dependencies: + - name: common + version: 17.1.4 + 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: games + truecharts.org/max_helm_version: "3.13" + truecharts.org/min_helm_version: "3.12" + truecharts.org/train: stable +type: application diff --git a/stable/gamevault-backend/4.0.0/README.md b/stable/gamevault-backend/4.0.0/README.md new file mode 100644 index 0000000000..b46c865202 --- /dev/null +++ b/stable/gamevault-backend/4.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/gamevault-backend) + +**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/gamevault-backend/4.0.0/app-changelog.md b/stable/gamevault-backend/4.0.0/app-changelog.md new file mode 100644 index 0000000000..45881ff6b1 --- /dev/null +++ b/stable/gamevault-backend/4.0.0/app-changelog.md @@ -0,0 +1,9 @@ + + +## [gamevault-backend-4.0.0](https://github.com/truecharts/charts/compare/gamevault-backend-3.0.1...gamevault-backend-4.0.0) (2023-12-26) + +### Chore + +- update container image phalcode/gamevault-backend to v10.0.1[@3123f5b](https://github.com/3123f5b) by renovate ([#16503](https://github.com/truecharts/charts/issues/16503)) + + \ No newline at end of file diff --git a/stable/gamevault-backend/4.0.0/app-readme.md b/stable/gamevault-backend/4.0.0/app-readme.md new file mode 100644 index 0000000000..e54fa9b01e --- /dev/null +++ b/stable/gamevault-backend/4.0.0/app-readme.md @@ -0,0 +1,8 @@ +the self-hosted gaming platform for alternatively obtained games. + +This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/charts/stable/gamevault-backend](https://truecharts.org/charts/stable/gamevault-backend) + +--- + +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/gamevault-backend/4.0.0/charts/common-17.1.4.tgz b/stable/gamevault-backend/4.0.0/charts/common-17.1.4.tgz new file mode 100644 index 0000000000000000000000000000000000000000..3e9677a9393900a00f43ff08254246e3249b50ba GIT binary patch literal 97413 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

3dKkxh;(JJ>WSVTH`iQ<*r}d)VA3nqEXs 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 A!2kdN literal 0 HcmV?d00001 diff --git a/stable/gamevault-backend/4.0.0/ix_values.yaml b/stable/gamevault-backend/4.0.0/ix_values.yaml new file mode 100644 index 0000000000..9e53bfd428 --- /dev/null +++ b/stable/gamevault-backend/4.0.0/ix_values.yaml @@ -0,0 +1,108 @@ +image: + repository: phalcode/gamevault-backend + pullPolicy: IfNotPresent + tag: 10.0.1@sha256:3123f5b92f7d238d257f018cf8d0d9ed83f7e48a4b73fb5312d91a4bb69e547e +securityContext: + container: + runAsNonRoot: false + readOnlyRootFilesystem: false + runAsUser: 0 + runAsGroup: 0 +service: + main: + ports: + main: + protocol: http + port: 8080 + targetPort: 8080 +gamevault: + server: + admin_username: admin + admin_password: password + registration_disabled: false + account_activation_disabled: false + allowed_origins: + - "*" + log_level: info + games: + index_interval_in_minutes: 5 + search_recursive: true + file_formats: + - ".7z" + images: + gc_keep_days: 30 + gc_interval_minutes: 60 + rawg: + api_url: https://api.rawg.io/api + api_cache_days: 7 + api_key: "" +workload: + main: + podSpec: + containers: + main: + probes: + liveness: + path: /api/v1/health + type: http + readiness: + path: /api/v1/health + type: http + startup: + path: /api/v1/health + type: http + env: + # manually set and change to /games so its easy for users to know where to place their game files. + VOLUMES_FILES: "{{.Values.persistence.games.mountPath }}" + VOLUMES_IMAGES: "{{.Values.persistence.images.mountPath }}" + VOLUMES_LOG: "{{.Values.persistence.logs.mountPath }}" + # DB + DB_SYSTEM: POSTGRESQL + DB_PORT: 5432 + DB_HOST: + secretKeyRef: + name: cnpg-main-urls + key: host + DB_DATABASE: "{{ .Values.cnpg.main.database }}" + DB_USERNAME: "{{ .Values.cnpg.main.user }}" + DB_PASSWORD: + secretKeyRef: + name: cnpg-main-user + key: password + # ADMIN + SERVER_ADMIN_USERNAME: "{{ .Values.gamevault.server.admin_username }}" + SERVER_ADMIN_PASSWORD: "{{ .Values.gamevault.server.admin_password }}" + SERVER_REGISTRATION_DISABLED: "{{ .Values.gamevault.server.registration_disabled }}" + SERVER_ACCOUNT_ACTIVATION_DISABLED: "{{ .Values.gamevault.server.account_activation_disabled }}" + # SERVER + SERVER_LOG_LEVEL: "{{ .Values.gamevault.server.log_level }}" + SERVER_CORS_ALLOWED_ORIGINS: '{{ join "," .Values.gamevault.server.allowed_origins }}' + # GAMES + GAMES_INDEX_INTERVAL_IN_MINUTES: "{{ .Values.gamevault.games.index_interval_in_minutes }}" + GAMES_SEARCH_RECURSIVE: "{{ .Values.gamevault.games.search_recursive }}" + GAMES_SUPPORTED_FILE_FORMATS: '{{ join "," .Values.gamevault.games.file_formats }}' + # IMAGES + IMAGE_GC_KEEP_DAYS: "{{ .Values.gamevault.images.gc_keep_days }}" + IMAGE_GC_INTERVAL_MINUTES: "{{ .Values.gamevault.images.gc_interval_minutes }}" + # RAWG + RAWG_API_URL: "{{ .Values.gamevault.rawg.api_url }}" + RAWG_API_CACHE_DAYS: "{{ .Values.gamevault.rawg.api_cache_days }}" + RAWG_API_KEY: "{{ .Values.gamevault.rawg.api_key }}" +persistence: + logs: + enabled: true + mountPath: /logs + images: + enabled: true + mountPath: /images + games: + enabled: true + mountPath: /games +cnpg: + main: + enabled: true + user: gamevault + database: gamevault +portal: + open: + enabled: false diff --git a/stable/gamevault-backend/4.0.0/questions.yaml b/stable/gamevault-backend/4.0.0/questions.yaml new file mode 100644 index 0000000000..291bc4cddc --- /dev/null +++ b/stable/gamevault-backend/4.0.0/questions.yaml @@ -0,0 +1,4008 @@ +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: {} +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: gamevault + group: App Configuration + label: Gamevault + schema: + additional_attrs: true + type: dict + attrs: + - variable: server + label: Server + schema: + additional_attrs: true + type: dict + attrs: + - variable: admin_username + label: Admin User + schema: + type: string + required: true + default: "" + - variable: admin_password + label: Admin Password + schema: + type: string + private: true + required: true + default: "" + - variable: registration_disabled + label: Registration Disabled + description: If registration is enabled or not. + schema: + type: boolean + default: false + - variable: account_activation_disabled + label: Account Activation Disabled + description: If accounts need to be activated by an admin before using them. + schema: + type: boolean + default: false + - variable: allowed_origins + label: Allowed Origins + description: List of Allowed CORS origins for the server. + schema: + type: list + empty: false + required: true + default: + - "*" + items: + - variable: origin + label: Origin + schema: + type: string + required: true + default: "" + - variable: log_level + label: Log Level + description: The log level of the server. + schema: + type: string + required: true + default: "info" + enum: + - value: "debug" + description: "Debug" + - value: "info" + description: "Info" + - value: "warn" + description: "Warn" + - value: "error" + description: "Error" + - value: "fatal" + description: "Fatal" + - variable: games + label: Games + schema: + additional_attrs: true + type: dict + attrs: + - variable: index_interval_in_minutes + label: Index Interval In Minutes + description: Determines how often the server should index the list of games. + schema: + type: int + default: 5 + - variable: search_recursive + label: Search Recursive + description: Toggling the Indexer's search for games in sub folders. + schema: + type: boolean + default: true + - variable: file_formats + label: Supported File Formats + description: Custom list of file formats. + schema: + type: list + empty: false + required: true + default: + - ".7z" + - ".xz" + - ".bz2" + - ".gz" + - ".tar" + - ".zip" + - ".wim" + - ".ar" + - ".arj" + - ".cab" + - ".chm" + - ".cpio" + - ".cramfs" + - ".dmg" + - ".ext" + - ".fat" + - ".gpt" + - ".hfs" + - ".ihex" + - ".iso" + - ".lzh" + - ".lzma" + - ".mbr" + - ".msi" + - ".nsis" + - ".ntfs" + - ".qcow2" + - ".rar" + - ".rpm" + - ".squashfs" + - ".udf" + - ".uefi" + - ".vdi" + - ".vhd" + - ".vmdk" + - ".wim" + - ".xar" + - ".z" + items: + - variable: format + label: Format + schema: + type: string + required: true + default: "" + - variable: images + label: Images + schema: + additional_attrs: true + type: dict + attrs: + - variable: gc_keep_days + label: GC Keep Days + description: The number of days to keep unused images. After this period, images that have not been accessed are deleted. + schema: + type: int + default: 30 + min: 1 + - variable: gc_interval_minutes + label: GC Interval Minutes + description: How often to run the image garbage collector, in minutes. + schema: + type: int + default: 60 + min: 1 + - variable: rawg + label: Rawg + schema: + additional_attrs: true + type: dict + attrs: + - variable: api_url + label: API Url + schema: + type: string + default: "https://api.rawg.io/api" + - variable: api_cache_days + label: API Cache Days + schema: + type: int + default: 7 + min: 1 + - variable: api_key + label: API Key + schema: + type: string + 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: 8080 + 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: logs + label: "App Logs Storage" + description: "Stores the Application Logs." + 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: images + label: "App Images Storage" + description: "Stores the Application Images." + 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: games + label: "App Games Storage" + description: "Stores the Application Games." + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: pvc + enum: + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: emptyDir + description: emptyDir + - value: nfs + description: NFS Share + - value: iscsi + description: iSCSI Share + - variable: server + label: NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: path + label: Path on NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: iscsi + label: iSCSI Options + schema: + show_if: [["type", "=", "iscsi"]] + type: dict + additional_attrs: true + attrs: + - variable: targetPortal + label: targetPortal + schema: + type: string + required: true + default: "" + - variable: iqn + label: iqn + schema: + type: string + required: true + default: "" + - variable: lun + label: lun + schema: + type: int + default: 0 + - variable: authSession + label: authSession + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: authDiscovery + label: authDiscovery + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + + - variable: autoPermissions + label: Automatic Permissions Configuration + description: Automatically set permissions + schema: + show_if: [["type", "!=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: chown + label: Run CHOWN + description: | + It will run CHOWN on the path with the given fsGroup + schema: + type: boolean + default: false + - variable: chmod + label: Run CHMOD + description: | + It will run CHMOD on the path with the given value
+ Format should be 3 digits, e.g. 770 + schema: + type: string + valid_chars: '[0-9]{3}' + default: "" + - variable: recursive + label: Recursive + description: | + It will run CHOWN and CHMOD recursively + schema: + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - variable: hostPath + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: medium + label: EmptyDir Medium + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: Memory + description: Memory + - variable: size + label: Size quotum of Storage (Do NOT REDUCE after installation) + description: This value can ONLY be INCREASED after the installation + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: storageClass + label: 'storageClass (Advanced)' + description: 'sets the storageClass to something other than iX default. Only for advanced usecases!' + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "" + - variable: static + label: 'Static Fixed PVC Bindings (Experimental)' + description: Link a PVC to a specific storage location + schema: + show_if: [["type", "=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: mode + label: mode + description: | + disabled: use normal dynamic PVCs + smb: connect to an SMB share + nfs: connect to an NFS share + schema: + type: string + default: "disabled" + enum: + - value: disabled + description: disabled + - value: smb + description: smb + - value: nfs + description: nfs + - variable: server + label: Server + description: server to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "myserver" + - variable: share + label: Share + description: share to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "/myshare" + - variable: user + label: User + description: connecting user + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "myuser" + - variable: domain + label: Domain + description: user domain + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: password + label: Password + description: connecting password + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: volumeSnapshots + label: 'Volume Snapshots (Experimental)' + description: Add an entry to the list to force creation of a volumeSnapshot of this PVC + schema: + show_if: [["type", "=", "pvc"]] + type: list + default: [] + items: + - variable: volumeSnapshotEntry + label: Custom volumeSnapshot + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: 'WARNING: renaming this, means deletion of the snapshot with the old name!' + schema: + type: string + default: "mysnapshot" + required: true + - variable: volumeSnapshotClassName + label: 'volumeSnapshot Class Name (Advanced)' + description: For use with PVCs using a non-default storageClass + schema: + type: string + default: "" + - variable: persistenceList + label: Additional App Storage + group: Storage and Persistence + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: Custom Storage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the storage + schema: + type: boolean + default: true + hidden: true + - variable: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: hostPath + enum: + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: emptyDir + description: emptyDir + - value: nfs + description: NFS Share + - variable: server + label: NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: path + label: Path on NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: iscsi + label: iSCSI Options + schema: + show_if: [["type", "=", "iscsi"]] + type: dict + additional_attrs: true + attrs: + - variable: targetPortal + label: targetPortal + schema: + type: string + required: true + default: "" + - variable: iqn + label: iqn + schema: + type: string + required: true + default: "" + - variable: lun + label: lun + schema: + type: int + default: 0 + - variable: authSession + label: authSession + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: authDiscovery + label: authDiscovery + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: autoPermissions + label: Automatic Permissions Configuration + description: Automatically set permissions + schema: + show_if: [["type", "!=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: chown + label: Run CHOWN + description: | + It will run CHOWN on the path with the given fsGroup + schema: + type: boolean + default: false + - variable: chmod + label: Run CHMOD + description: | + It will run CHMOD on the path with the given value
+ Format should be 3 digits, e.g. 770 + schema: + type: string + valid_chars: '[0-9]{3}' + default: "" + - variable: recursive + label: Recursive + description: | + It will run CHOWN and CHMOD recursively + schema: + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - variable: hostPath + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: Mount Path + description: Path inside the container the storage is mounted + schema: + type: string + default: "" + required: true + valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' + - variable: medium + label: EmptyDir Medium + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: Memory + description: Memory + - variable: size + label: Size Quotum of Storage + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: storageClass + label: 'storageClass (Advanced)' + description: 'sets the storageClass to something other than iX default. Only for advanced usecases!' + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "" + - variable: static + label: 'Static Fixed PVC Bindings (Experimental)' + description: Link a PVC to a specific storage location + schema: + show_if: [["type", "=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: mode + label: mode + description: | + disabled: use normal dynamic PVCs + smb: connect to an SMB share + nfs: connect to an NFS share + schema: + type: string + default: "disabled" + enum: + - value: "disabled" + description: disabled + - value: smb + description: smb + - value: nfs + description: nfs + - variable: server + label: Server + description: server to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "myserver" + - variable: share + label: Share + description: share to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "/myshare" + - variable: user + label: User + description: connecting user + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "myuser" + - variable: domain + label: Domain + description: user domain + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: password + label: Password + description: connecting password + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: volumeSnapshots + label: 'Volume Snapshots (Experimental)' + description: Add an entry to the list to force creation of a volumeSnapshot of this PVC + schema: + show_if: [["type", "=", "pvc"]] + type: list + default: [] + items: + - variable: volumeSnapshotEntry + label: Custom volumeSnapshot + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: 'WARNING: renaming this, means deletion of the snapshot with the old name!' + schema: + type: string + default: "mysnapshot" + required: true + - variable: volumeSnapshotClassName + label: 'volumeSnapshot Class Name (Advanced)' + description: For use with PVCs using a non-default storageClass + schema: + type: string + default: "" + - variable: ingress + label: "" + group: Ingress + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Ingress + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: Hosts + schema: + type: list + default: [] + items: + - variable: hostEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: host + label: HostName + schema: + type: string + default: "" + required: true + - variable: paths + label: Paths + schema: + type: list + default: [{path: "/", pathType: "Prefix"}] + items: + - variable: pathEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: path + label: Path + schema: + type: string + required: true + default: "/" + - variable: pathType + label: Path Type + schema: + type: string + required: true + default: Prefix + + + - variable: integrations + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: traefik + label: Traefik + description: Connect ingress with Traefik + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: allowCors + label: 'Allow Cross Origin Requests (advanced)' + schema: + type: boolean + default: false + show_if: [["enabled", "=", true]] + - variable: entrypoints + label: Entrypoints + schema: + type: list + default: ["websecure"] + show_if: [["enabled", "=", true]] + items: + - variable: entrypoint + label: Entrypoint + schema: + type: string + - variable: middlewares + label: Middlewares + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: middleware + label: Middleware + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true + - variable: namespace + label: 'namespace (optional)' + schema: + type: string + default: "" + - variable: certManager + label: certManager + description: Connect ingress with certManager + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: certificateIssuer + label: certificateIssuer + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: homepage + label: Homepage + description: Connect ingress with Homepage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: name + label: Name (Optional) + description: Defaults to chart name + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: description + label: Description (Optional) + description: Defaults to chart description + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: icon + label: Icon (Optional) + description: Defaults to chart icon + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: group + label: Group + schema: + type: string + required: true + default: "default" + show_if: [["enabled", "=", true]] + - variable: widget + label: Widget Settings + schema: + type: dict + additional_attrs: true + show_if: [["enabled", "=", true]] + attrs: + - variable: enabled + label: Enable Widget + description: When disabled all widget annotations are skipped. + schema: + type: boolean + default: true + - variable: custom + label: Options + schema: + type: dict + additional_attrs: true + attrs: + - variable: key + label: API-key (key) + schema: + type: string + default: "" + - variable: customkv + label: Custom Options + schema: + type: list + default: [] + items: + - variable: option + label: Option + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + default: "" + required: true + - variable: value + label: Value + schema: + type: string + default: "" + required: true + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + - variable: ingressClassName + label: (Advanced/Optional) IngressClass Name + schema: + type: string + show_if: [["advanced", "=", true]] + default: "" + - variable: tls + label: TLS-Settings + schema: + type: list + show_if: [["advanced", "=", true]] + default: [] + items: + - variable: tlsEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: hosts + label: Certificate Hosts + schema: + type: list + default: [] + items: + - variable: host + label: Host + schema: + type: string + default: "" + required: true + + - variable: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: 'Use Custom Certificate Secret (Advanced)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: string + default: "" + - variable: scaleCert + label: 'Use TrueNAS SCALE Certificate (Deprecated)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - variable: ingressList + label: Add Manual Custom Ingresses + group: Ingress + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: Custom Ingress + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Ingress + schema: + type: boolean + default: true + hidden: true + - variable: name + label: Name + schema: + type: string + default: "" + - variable: ingressClassName + label: IngressClass Name + schema: + type: string + default: "" + - variable: hosts + label: Hosts + schema: + type: list + default: [] + items: + - variable: hostEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: host + label: HostName + schema: + type: string + default: "" + required: true + - variable: paths + label: Paths + schema: + type: list + default: [] + items: + - variable: pathEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: path + label: Path + schema: + type: string + required: true + default: "/" + - variable: pathType + label: Path Type + schema: + type: string + required: true + default: Prefix + - variable: overrideService + label: Linked Service + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Service Name + schema: + type: string + default: "" + - variable: port + label: Service Port + schema: + type: int + - variable: tls + label: TLS-Settings + schema: + type: list + default: [] + show_if: [["certificateIssuer", "=", ""]] + items: + - variable: tlsEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: hosts + label: Certificate Hosts + schema: + type: list + default: [] + items: + - variable: host + label: Host + schema: + type: string + default: "" + required: true + - variable: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your Cert-Manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: scaleCert + label: Use TrueNAS SCALE Certificate (Deprecated) + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: Use Custom Secret (Advanced) + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: integrations + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: traefik + label: Traefik + description: Connect ingress with Traefik + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: allowCors + label: "Allow Cross Origin Requests" + schema: + type: boolean + default: false + show_if: [["enabled", "=", true]] + - variable: entrypoints + label: Entrypoints + schema: + type: list + default: ["websecure"] + show_if: [["enabled", "=", true]] + items: + - variable: entrypoint + label: Entrypoint + schema: + type: string + - variable: middlewares + label: Middlewares + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: middleware + label: Middleware + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true + - variable: namespace + label: namespace + schema: + type: string + default: "" + - variable: certManager + label: certManager + description: Connect ingress with certManager + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: certificateIssuer + label: certificateIssuer + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: homepage + label: Homepage + description: Connect ingress with Homepage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: name + label: Name + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: description + label: Description + description: defaults to chart description + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: group + label: Group + schema: + type: string + required: true + default: "default" + show_if: [["enabled", "=", true]] + - variable: securityContext + group: Security and Permissions + label: Security Context + schema: + additional_attrs: true + type: dict + attrs: + - variable: container + label: Container + schema: + additional_attrs: true + type: dict + attrs: + # Settings from questions.yaml get appended here on a per-app basis + + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 0 + - variable: runAsGroup + label: "runAsGroup" + description: "The groupID of the user running the application" + schema: + type: int + default: 0 + # Settings from questions.yaml get appended here on a per-app basis + - variable: PUID + label: Process User ID - PUID + description: When supported by the container, this sets the User ID running the Application Process. Not supported by all Apps + schema: + type: int + show_if: [["runAsUser", "=", 0]] + default: 568 + - variable: UMASK + label: UMASK + description: When supported by the container, this sets the UMASK for the App. Not supported by all Apps + schema: + type: string + default: "0022" + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: pod + label: Pod + schema: + additional_attrs: true + type: dict + attrs: + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: OnRootMismatch + enum: + - value: OnRootMismatch + description: OnRootMismatch + - value: Always + description: Always + - variable: supplementalGroups + label: Supplemental Groups + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: Supplemental Group + schema: + type: int + # Settings from questions.yaml get appended here on a per-app basis + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + + - variable: resources + group: Resources and Devices + label: "Resource Limits" + schema: + additional_attrs: true + type: dict + attrs: + - variable: limits + label: Advanced Limit Resource Consumption + schema: + additional_attrs: true + type: dict + attrs: + - variable: cpu + label: CPU + description: "1000m means 1 hyperthread. Detailed info: https://truecharts.org/manual/SCALE/validation" + schema: + type: string + default: 4000m + valid_chars: '^(?!^0(\.0|m|)$)([0-9]+)(\.[0-9]|m?)$' + - variable: memory + label: RAM + description: "1Gi means 1 Gibibyte RAM. Detailed info: https://truecharts.org/manual/SCALE/validation" + schema: + type: string + default: 8Gi + valid_chars: '^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$' + - variable: requests + label: "Minimum Resources Required (request)" + schema: + additional_attrs: true + type: dict + hidden: true + attrs: + - variable: cpu + label: CPU + description: "1000m means 1 hyperthread. Detailed info: https://truecharts.org/manual/SCALE/validation" + schema: + type: string + default: 10m + hidden: true + valid_chars: '^(?!^0(\.0|m|)$)([0-9]+)(\.[0-9]|m?)$' + - variable: memory + label: "RAM" + description: "1Gi means 1 Gibibyte RAM. Detailed info: https://truecharts.org/manual/SCALE/validation" + schema: + type: string + default: 50Mi + hidden: true + valid_chars: '^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$' + - variable: deviceList + label: Mount USB Devices + group: Resources and Devices + schema: + type: list + default: [] + items: + - variable: deviceListEntry + label: Device + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the Storage + schema: + type: boolean + default: true + - variable: type + label: (Advanced) Type of Storage + description: Sets the persistence type + schema: + type: string + default: device + hidden: true + - variable: readOnly + label: readOnly + schema: + type: boolean + default: false + - variable: hostPath + label: Host Device Path + description: Path to the device on the host system + schema: + type: path + - variable: mountPath + label: Container Device Path + description: Path inside the container the device is mounted + schema: + type: string + default: "/dev/ttyACM0" + - variable: scaleGPU + label: GPU Configuration + group: Resources and Devices + schema: + type: list + default: [] + items: + - variable: scaleGPUEntry + label: GPU + schema: + additional_attrs: true + type: dict + attrs: + # Specify GPU configuration + - variable: gpu + label: Select GPU + schema: + additional_attrs: true + type: dict + $ref: + - "definitions/gpuConfiguration" + attrs: [] + - variable: workaround + label: "Workaround" + schema: + type: string + default: workaround + hidden: true + - variable: cnpg + group: Postgresql + label: "CloudNative-PG (CNPG)" + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "Main Postgresql Database" + schema: + additional_attrs: true + type: dict + attrs: + - variable: hibernate + label: Hibernate + description: "enable to safely hibernate and shutdown the postgresql cluster" + schema: + type: boolean + default: false + - variable: mode + label: Mode + description: 'Cluster mode of operation. Available modes: standalone - default mode. Creates new or updates an existing CNPG cluster. recovery - Same as standalone but creates a cluster from a backup, object store or via pg_basebackup replica - Creates a replica cluster from an existing CNPG cluster. # TODO.' + schema: + type: string + default: "standalone" + enum: + - value: standalone + description: standalone + - value: replica + description: replica + - value: recovery + description: recovery + - variable: cluster + label: "Cluster Settings" + schema: + additional_attrs: true + type: dict + attrs: + - variable: instances + label: Instances + schema: + type: int + default: 2 + - variable: singleNode + label: singleNode + schema: + type: boolean + default: true + hidden: true + - variable: storage + label: "Storage" + schema: + additional_attrs: true + type: dict + attrs: + - variable: size + label: Size + schema: + type: string + default: "256Gi" + - variable: walStorage + label: "WAL Storage" + schema: + additional_attrs: true + type: dict + attrs: + - variable: size + label: Size + schema: + type: string + default: "256Gi" + - variable: monitoring + label: "Monitoring Settings" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enablePodMonitor + label: "enablePodMonitor" + schema: + type: boolean + default: true + - variable: disableDefaultQueries + label: "disableDefaultQueries" + schema: + type: boolean + default: false + - variable: pooler + label: "Pooler Settings" + schema: + additional_attrs: true + type: dict + attrs: + - variable: instances + label: Instances + schema: + type: int + default: 2 + - variable: createRO + label: "Create ReadOnly Instance" + schema: + type: boolean + default: false + - variable: recovery + label: "Recovery Settings (Experimental)" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + - variable: endpointURL + label: "endpointURL" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "" + - variable: method + label: "method" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "object_store" + - variable: backupName + label: "backupName" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "" + - variable: provider + label: "provider" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "s3" + enum: + - value: s3 + description: S3 + - value: azure + description: Azure + - value: google + description: Google + - variable: s3 + label: "s3" + schema: + additional_attrs: true + type: dict + show_if: [["provider", "=", "s3"]] + attrs: + - variable: region + label: "region" + schema: + type: string + default: "" + - variable: bucket + label: "bucket" + schema: + type: string + default: "" + - variable: path + label: "path" + schema: + type: string + default: "/" + - variable: accessKey + label: "accessKey" + schema: + type: string + default: "" + - variable: secretKey + label: "secretKey" + schema: + type: string + default: "" + - variable: azure + label: "azure (EXTREMELY EXPERIMENTAL)" + schema: + additional_attrs: true + type: dict + show_if: [["provider", "=", "azure"]] + attrs: + - variable: path + label: "path" + schema: + type: string + default: "/" + - variable: connectionString + label: "connectionString" + schema: + type: string + default: "" + - variable: storageAccount + label: "storageAccount" + schema: + type: string + default: "" + - variable: storageKey + label: "storageKey" + schema: + type: string + default: "" + - variable: storageSasToken + label: "storageSasToken" + schema: + type: string + default: "" + - variable: containerName + label: "containerName" + schema: + type: string + default: "" + - variable: serviceName + label: "serviceName" + schema: + type: string + default: "blob" + - variable: inheritFromAzureAD + label: "inheritFromAzureAD" + schema: + type: boolean + default: false + - variable: google + label: "google (EXTREMELY EXPERIMENTAL)" + schema: + additional_attrs: true + type: dict + show_if: [["provider", "=", "google"]] + attrs: + - variable: path + label: "path" + schema: + type: string + default: "/" + - variable: bucket + label: "bucket" + schema: + type: string + default: "" + - variable: gkeEnvironment + label: "gkeEnvironment" + schema: + type: string + default: "" + - variable: applicationCredentials + label: "applicationCredentials" + schema: + type: string + default: "" + - variable: backups + label: "Backup Settings (Experimental)" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + - variable: endpointURL + label: "endpointURL" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "" + - variable: destinationPath + label: "destinationPath" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "" + - variable: retentionPolicy + label: "retentionPolicy" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "30d" + - variable: provider + label: "provider" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "s3" + enum: + - value: s3 + description: S3 + - value: azure + description: Azure + - value: google + description: Google + - variable: s3 + label: "s3" + schema: + additional_attrs: true + type: dict + show_if: [["provider", "=", "s3"]] + attrs: + - variable: region + label: "region" + schema: + type: string + default: "" + - variable: bucket + label: "bucket" + schema: + type: string + default: "" + - variable: path + label: "path" + schema: + type: string + default: "/" + - variable: accessKey + label: "accessKey" + schema: + type: string + default: "" + - variable: secretKey + label: "secretKey" + schema: + type: string + default: "" + - variable: azure + label: "azure (EXTREMELY EXPERIMENTAL)" + schema: + additional_attrs: true + type: dict + show_if: [["provider", "=", "azure"]] + attrs: + - variable: path + label: "path" + schema: + type: string + default: "/" + - variable: connectionString + label: "connectionString" + schema: + type: string + default: "" + - variable: storageAccount + label: "storageAccount" + schema: + type: string + default: "" + - variable: storageKey + label: "storageKey" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "" + - variable: storageSasToken + label: "storageSasToken" + schema: + type: string + default: "" + - variable: containerName + label: "containerName" + schema: + type: string + default: "" + - variable: serviceName + label: "serviceName" + schema: + type: string + default: "blob" + - variable: inheritFromAzureAD + label: "inheritFromAzureAD" + schema: + type: boolean + default: false + - variable: google + label: "google (EXTREMELY EXPERIMENTAL)" + schema: + additional_attrs: true + type: dict + show_if: [["provider", "=", "google"]] + attrs: + - variable: path + label: "path" + schema: + type: string + default: "/" + - variable: bucket + label: "bucket" + schema: + type: string + default: "" + - variable: gkeEnvironment + label: "gkeEnvironment" + schema: + type: string + default: "" + - variable: applicationCredentials + label: "applicationCredentials" + schema: + type: string + default: "" + - variable: scheduledBackups + label: ScheduledBackups + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: backupschedule + label: BackupSchedule + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "daily-backup" + required: true + - variable: schedule + label: schedule + schema: + type: string + required: true + default: "0 0 0 * * *" + - variable: backupOwnerReference + label: backupOwnerReference + schema: + type: string + required: true + default: "self" + - variable: immediate + label: immediate + schema: + type: boolean + default: false + - variable: suspend + label: suspend + schema: + type: boolean + default: false + - variable: manualBackups + label: manualBackups + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: backup + label: Backup + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true +# - variable: horizontalPodAutoscaler +# group: Advanced +# label: (Advanced) Horizontal Pod Autoscaler +# schema: +# type: list +# default: [] +# items: +# - variable: hpaEntry +# label: HPA Entry +# schema: +# additional_attrs: true +# type: dict +# attrs: +# - variable: name +# label: Name +# schema: +# type: string +# required: true +# default: "" +# - variable: enabled +# label: Enabled +# schema: +# type: boolean +# default: false +# show_subquestions_if: true +# subquestions: +# - variable: target +# label: Target +# description: Deployment name, Defaults to Main Deployment +# schema: +# type: string +# default: "" +# - variable: minReplicas +# label: Minimum Replicas +# schema: +# type: int +# default: 1 +# - variable: maxReplicas +# label: Maximum Replicas +# schema: +# type: int +# default: 5 +# - variable: targetCPUUtilizationPercentage +# label: Target CPU Utilization Percentage +# schema: +# type: int +# default: 80 +# - variable: targetMemoryUtilizationPercentage +# label: Target Memory Utilization Percentage +# schema: +# type: int +# default: 80 + - variable: networkPolicy + group: Advanced + label: (Advanced) Network Policy + schema: + type: list + default: [] + items: + - variable: netPolicyEntry + label: Network Policy Entry + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + default: "" + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: policyType + label: Policy Type + schema: + type: string + default: "" + enum: + - value: "" + description: Default + - value: ingress + description: Ingress + - value: egress + description: Egress + - value: ingress-egress + description: Ingress and Egress + - variable: egress + label: Egress + schema: + type: list + default: [] + items: + - variable: egressEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: to + label: To + schema: + type: list + default: [] + items: + - variable: toEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: ipBlock + label: IP Block + schema: + additional_attrs: true + type: dict + attrs: + - variable: cidr + label: CIDR + schema: + type: string + default: "" + - variable: except + label: Except + schema: + type: list + default: [] + items: + - variable: exceptint + label: "" + schema: + type: string + - variable: namespaceSelector + label: Namespace Selector + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: podSelector + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: ports + label: Ports + schema: + type: list + default: [] + items: + - variable: portsEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + schema: + type: int + - variable: endPort + label: End Port + schema: + type: int + - variable: protocol + label: Protocol + schema: + type: string + default: TCP + enum: + - value: TCP + description: TCP + - value: UDP + description: UDP + - value: SCTP + description: SCTP + - variable: ingress + label: Ingress + schema: + type: list + default: [] + items: + - variable: ingressEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: from + label: From + schema: + type: list + default: [] + items: + - variable: fromEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: ipBlock + label: IP Block + schema: + additional_attrs: true + type: dict + attrs: + - variable: cidr + label: CIDR + schema: + type: string + default: "" + - variable: except + label: Except + schema: + type: list + default: [] + items: + - variable: exceptint + label: "" + schema: + type: string + - variable: namespaceSelector + label: Namespace Selector + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: podSelector + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: ports + label: Ports + schema: + type: list + default: [] + items: + - variable: portsEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + schema: + type: int + - variable: endPort + label: End Port + schema: + type: int + - variable: protocol + label: Protocol + schema: + type: string + default: TCP + enum: + - value: TCP + description: TCP + - value: UDP + description: UDP + - value: SCTP + description: SCTP + - variable: addons + group: Addons + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: codeserver + label: Codeserver + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: service + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Service Type + description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: LoadBalancer + enum: + - value: NodePort + description: Deprecated CHANGE THIS + - value: ClusterIP + description: ClusterIP + - value: LoadBalancer + description: LoadBalancer + - variable: loadBalancerIP + label: LoadBalancer IP + description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: ports + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: codeserver + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + schema: + type: int + default: 36107 + - variable: ingress + label: "Ingress" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Ingress + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: Hosts + schema: + type: list + default: [] + items: + - variable: hostEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: host + label: HostName + schema: + type: string + default: "" + required: true + - variable: paths + label: Paths + schema: + type: list + default: [{path: "/", pathType: "Prefix"}] + items: + - variable: pathEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: path + label: Path + schema: + type: string + required: true + default: "/" + - variable: pathType + label: Path Type + schema: + type: string + required: true + default: Prefix + - variable: integrations + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: traefik + label: Traefik + description: Connect ingress with Traefik + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: allowCors + label: 'Allow Cross Origin Requests (advanced)' + schema: + type: boolean + default: false + show_if: [["enabled", "=", true]] + - variable: entrypoints + label: Entrypoints + schema: + type: list + default: ["websecure"] + show_if: [["enabled", "=", true]] + items: + - variable: entrypoint + label: Entrypoint + schema: + type: string + - variable: middlewares + label: Middlewares + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: middleware + label: Middleware + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true + - variable: namespace + label: 'namespace (optional)' + schema: + type: string + default: "" + - variable: certManager + label: certManager + description: Connect ingress with certManager + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: certificateIssuer + label: certificateIssuer + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + - variable: ingressClassName + label: (Advanced/Optional) IngressClass Name + schema: + type: string + show_if: [["advanced", "=", true]] + default: "" + - variable: tls + label: TLS-Settings + schema: + type: list + show_if: [["advanced", "=", true]] + default: [] + items: + - variable: tlsEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: hosts + label: Certificate Hosts + schema: + type: list + default: [] + items: + - variable: host + label: Host + schema: + type: string + default: "" + required: true + + - variable: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: 'Use Custom Certificate Secret (Advanced)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: string + default: "" + - variable: scaleCert + label: 'Use TrueNAS SCALE Certificate (Deprecated)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - variable: envList + label: Codeserver Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + - variable: netshoot + label: Netshoot + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: envList + label: Netshoot Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + - variable: vpn + label: VPN + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type + schema: + type: string + default: disabled + enum: + - value: disabled + description: disabled + - value: gluetun + description: Gluetun + - value: tailscale + description: Tailscale + - value: openvpn + description: OpenVPN (Deprecated) + - value: wireguard + description: Wireguard (Deprecated) + - variable: openvpn + label: OpenVPN Settings + schema: + additional_attrs: true + type: dict + show_if: [["type", "=", "openvpn"]] + attrs: + - variable: username + label: Authentication Username (Optional) + description: Authentication Username, Optional + schema: + type: string + default: "" + - variable: password + label: Authentication Password + description: Authentication Credentials + schema: + type: string + show_if: [["username", "!=", ""]] + default: "" + required: true + - variable: tailscale + label: Tailscale Settings + schema: + additional_attrs: true + type: dict + show_if: [["type", "=", "tailscale"]] + attrs: + - variable: authkey + label: Authentication Key + description: Provide an auth key to automatically authenticate the node as your user account. + schema: + type: string + private: true + default: "" + - variable: auth_once + label: Auth Once + description: Only attempt to log in if not already logged in. + schema: + type: boolean + default: true + - variable: accept_dns + label: Accept DNS + description: Accept DNS configuration from the admin console. + schema: + type: boolean + default: false + - variable: userspace + label: Userspace + description: Userspace Networking mode allows running Tailscale where you do not have access to create a VPN tunnel device. + schema: + type: boolean + default: false + - variable: routes + label: Routes + description: Expose physical subnet routes to your entire Tailscale network. + schema: + type: string + default: "" + - variable: dest_ip + label: Destination IP + description: Tells the DNAT mechanism which Destination IP to set in the IP header, and where to send packets that are matched. + schema: + type: string + default: "" + - variable: sock5_server + label: Sock5 Server + description: The address on which to listen for SOCKS5 proxying into the tailscale net. + schema: + type: string + default: "" + - variable: outbound_http_proxy_listen + label: Outbound HTTP Proxy Listen + description: The address on which to listen for HTTP proxying into the tailscale net. + schema: + type: string + default: "" + - variable: extra_args + label: Extra Args + description: Extra Args + schema: + type: string + default: "" + - variable: daemon_extra_args + label: Tailscale Daemon Extra Args + description: Tailscale Daemon Extra Args + schema: + type: string + default: "" + - variable: killSwitch + label: Enable Killswitch + schema: + type: boolean + show_if: [["type", "!=", "disabled"]] + default: true + - variable: excludedNetworks_IPv4 + label: Killswitch Excluded IPv4 networks + description: List of Killswitch Excluded IPv4 Addresses + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: networkv4 + label: IPv4 Network + schema: + type: string + required: true + - variable: excludedNetworks_IPv6 + label: Killswitch Excluded IPv6 networks + description: "List of Killswitch Excluded IPv6 Addresses" + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: networkv6 + label: IPv6 Network + schema: + type: string + required: true + - variable: configFile + label: VPN Config File Location + schema: + type: string + show_if: [["type", "!=", "disabled"]] + default: "" + + - variable: envList + label: VPN Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + max_length: 10240 + - variable: docs + group: Documentation + label: Please read the documentation at https://truecharts.org + description: Please read the documentation at +
https://truecharts.org + schema: + additional_attrs: true + type: dict + attrs: + - variable: confirmDocs + label: I have checked the documentation + schema: + type: boolean + default: true + - variable: donateNag + group: Documentation + label: Please consider supporting TrueCharts, see https://truecharts.org/sponsor + description: Please consider supporting TrueCharts, see +
https://truecharts.org/sponsor + schema: + additional_attrs: true + type: dict + attrs: + - variable: confirmDonate + label: I have considered donating + schema: + type: boolean + default: true + hidden: true diff --git a/stable/gamevault-backend/4.0.0/templates/NOTES.txt b/stable/gamevault-backend/4.0.0/templates/NOTES.txt new file mode 100644 index 0000000000..efcb74cb77 --- /dev/null +++ b/stable/gamevault-backend/4.0.0/templates/NOTES.txt @@ -0,0 +1 @@ +{{- include "tc.v1.common.lib.chart.notes" $ -}} diff --git a/stable/seafile/4.0.1/templates/common.yaml b/stable/gamevault-backend/4.0.0/templates/common.yaml similarity index 100% rename from stable/seafile/4.0.1/templates/common.yaml rename to stable/gamevault-backend/4.0.0/templates/common.yaml diff --git a/stable/gamevault-backend/4.0.0/values.yaml b/stable/gamevault-backend/4.0.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/stable/seafile/4.0.1/app-changelog.md b/stable/seafile/4.0.1/app-changelog.md deleted file mode 100644 index e5137b2270..0000000000 --- a/stable/seafile/4.0.1/app-changelog.md +++ /dev/null @@ -1,9 +0,0 @@ - - -## [seafile-4.0.1](https://github.com/truecharts/charts/compare/seafile-4.0.0...seafile-4.0.1) (2023-12-26) - -### Chore - -- update helm general non-major by renovate ([#16545](https://github.com/truecharts/charts/issues/16545)) - - \ No newline at end of file diff --git a/stable/seafile/4.0.1/CHANGELOG.md b/stable/seafile/4.0.2/CHANGELOG.md similarity index 89% rename from stable/seafile/4.0.1/CHANGELOG.md rename to stable/seafile/4.0.2/CHANGELOG.md index b6e20e4f66..f61f4b8b68 100644 --- a/stable/seafile/4.0.1/CHANGELOG.md +++ b/stable/seafile/4.0.2/CHANGELOG.md @@ -4,6 +4,15 @@ +## [seafile-4.0.2](https://github.com/truecharts/charts/compare/seafile-4.0.1...seafile-4.0.2) (2023-12-26) + +### Chore + +- update container image seafileltd/seafile-mc to v11.0.3[@2823eda](https://github.com/2823eda) by renovate ([#16475](https://github.com/truecharts/charts/issues/16475)) + + + + ## [seafile-4.0.1](https://github.com/truecharts/charts/compare/seafile-4.0.0...seafile-4.0.1) (2023-12-26) ### Chore @@ -88,12 +97,3 @@ ## [seafile-2.0.7](https://github.com/truecharts/charts/compare/seafile-2.0.6...seafile-2.0.7) (2023-12-22) ### Chore - -- update helm general non-major by renovate ([#16359](https://github.com/truecharts/charts/issues/16359)) - - - - -## [seafile-2.0.6](https://github.com/truecharts/charts/compare/seafile-2.0.5...seafile-2.0.6) (2023-12-22) - -### Fix diff --git a/stable/seafile/4.0.1/Chart.yaml b/stable/seafile/4.0.2/Chart.yaml similarity index 97% rename from stable/seafile/4.0.1/Chart.yaml rename to stable/seafile/4.0.2/Chart.yaml index 76b941d996..9fe974bab0 100644 --- a/stable/seafile/4.0.1/Chart.yaml +++ b/stable/seafile/4.0.2/Chart.yaml @@ -1,16 +1,16 @@ kubeVersion: ">=1.24.0-0" apiVersion: v2 name: seafile -version: 4.0.1 -appVersion: 11.0.2 +version: 4.0.2 +appVersion: 11.0.3 description: Reliable and Performant File Sync and Share Solution home: https://truecharts.org/charts/stable/seafile icon: https://truecharts.org/img/hotlink-ok/chart-icons/seafile.png deprecated: false sources: - - https://seafile.com - https://github.com/truecharts/charts/tree/master/charts/stable/seafile - https://hub.docker.com/r/seafileltd/seafile-mc + - https://seafile.com maintainers: - name: TrueCharts email: info@truecharts.org diff --git a/stable/seafile/4.0.2/LICENSE b/stable/seafile/4.0.2/LICENSE new file mode 100644 index 0000000000..33a8cbb23f --- /dev/null +++ b/stable/seafile/4.0.2/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/seafile/4.0.1/README.md b/stable/seafile/4.0.2/README.md similarity index 100% rename from stable/seafile/4.0.1/README.md rename to stable/seafile/4.0.2/README.md diff --git a/stable/seafile/4.0.2/app-changelog.md b/stable/seafile/4.0.2/app-changelog.md new file mode 100644 index 0000000000..9315e4bb8b --- /dev/null +++ b/stable/seafile/4.0.2/app-changelog.md @@ -0,0 +1,9 @@ + + +## [seafile-4.0.2](https://github.com/truecharts/charts/compare/seafile-4.0.1...seafile-4.0.2) (2023-12-26) + +### Chore + +- update container image seafileltd/seafile-mc to v11.0.3[@2823eda](https://github.com/2823eda) by renovate ([#16475](https://github.com/truecharts/charts/issues/16475)) + + \ No newline at end of file diff --git a/stable/seafile/4.0.1/app-readme.md b/stable/seafile/4.0.2/app-readme.md similarity index 100% rename from stable/seafile/4.0.1/app-readme.md rename to stable/seafile/4.0.2/app-readme.md diff --git a/stable/seafile/4.0.2/charts/common-17.1.4.tgz b/stable/seafile/4.0.2/charts/common-17.1.4.tgz new file mode 100644 index 0000000000000000000000000000000000000000..3e9677a9393900a00f43ff08254246e3249b50ba GIT binary patch literal 97413 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

3dKkxh;(JJ>WSVTH`iQ<*r}d)VA3nqEXs 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 A!2kdN literal 0 HcmV?d00001 diff --git a/stable/seafile/4.0.1/charts/mariadb-12.0.2.tgz b/stable/seafile/4.0.2/charts/mariadb-12.0.2.tgz similarity index 100% rename from stable/seafile/4.0.1/charts/mariadb-12.0.2.tgz rename to stable/seafile/4.0.2/charts/mariadb-12.0.2.tgz diff --git a/stable/seafile/4.0.1/ix_values.yaml b/stable/seafile/4.0.2/ix_values.yaml similarity index 79% rename from stable/seafile/4.0.1/ix_values.yaml rename to stable/seafile/4.0.2/ix_values.yaml index b24d6dabc6..e51dbfb505 100644 --- a/stable/seafile/4.0.1/ix_values.yaml +++ b/stable/seafile/4.0.2/ix_values.yaml @@ -1,6 +1,6 @@ image: repository: seafileltd/seafile-mc - tag: 11.0.2@sha256:c4637b24b87f29dabb886e41f5a7563ae289091168578e85d20a7c4026a263c3 + tag: 11.0.3@sha256:2823eda58bd83b83a21aa874409768b6d6ed57f899f715fcf58edb8d6e6cad2f pullPolicy: IfNotPresent service: main: @@ -32,7 +32,7 @@ workload: name: '{{ printf "%s-%s" .Release.Name "mariadbcreds" }}' key: mariadb-root-password SEAFILE_SERVER_LETSENCRYPT: false - SEAFILE_SERVER_HOSTNAME: "{{ if .Values.ingress }}{{ if .Values.ingress.main.enabled }}{{ ( index .Values.ingress.main.hosts 0 ).host }}{{ else }}placeholder.com{{ end }}{{ else }}placeholder.com{{ end }}" + SEAFILE_SERVER_HOSTNAME: "" SEAFILE_ADMIN_EMAIL: me@example.com SEAFILE_ADMIN_PASSWORD: a_very_secret_password FORCE_HTTPS_IN_CONF: false diff --git a/stable/seafile/4.0.1/questions.yaml b/stable/seafile/4.0.2/questions.yaml similarity index 100% rename from stable/seafile/4.0.1/questions.yaml rename to stable/seafile/4.0.2/questions.yaml diff --git a/stable/seafile/4.0.2/templates/NOTES.txt b/stable/seafile/4.0.2/templates/NOTES.txt new file mode 100644 index 0000000000..efcb74cb77 --- /dev/null +++ b/stable/seafile/4.0.2/templates/NOTES.txt @@ -0,0 +1 @@ +{{- include "tc.v1.common.lib.chart.notes" $ -}} diff --git a/stable/seafile/4.0.2/templates/common.yaml b/stable/seafile/4.0.2/templates/common.yaml new file mode 100644 index 0000000000..b51394e00a --- /dev/null +++ b/stable/seafile/4.0.2/templates/common.yaml @@ -0,0 +1 @@ +{{ include "tc.v1.common.loader.all" . }} diff --git a/stable/seafile/4.0.2/values.yaml b/stable/seafile/4.0.2/values.yaml new file mode 100644 index 0000000000..e69de29bb2