From d3e288ab2250fac686c90c854a9115c0409d4f95 Mon Sep 17 00:00:00 2001 From: TrueCharts-Bot Date: Sat, 10 Feb 2024 16:31:58 +0000 Subject: [PATCH] Commit new Chart releases for TrueCharts Signed-off-by: TrueCharts-Bot --- dependency/clickhouse/11.0.0/CHANGELOG.md | 99 + dependency/clickhouse/11.0.0/Chart.yaml | 38 + dependency/clickhouse/11.0.0/README.md | 28 + dependency/clickhouse/11.0.0/app-changelog.md | 9 + dependency/clickhouse/11.0.0/app-readme.md | 8 + .../11.0.0}/charts/common-17.2.30.tgz | Bin dependency/clickhouse/11.0.0/ix_values.yaml | 69 + dependency/clickhouse/11.0.0/questions.yaml | 2863 +++++++++++++++ .../clickhouse/11.0.0}/templates/NOTES.txt | 0 .../clickhouse/11.0.0}/templates/common.yaml | 0 .../clickhouse/11.0.0}/values.yaml | 0 stable/alist/8.2.6/app-changelog.md | 9 - stable/alist/{8.2.6 => 8.3.0}/CHANGELOG.md | 18 +- stable/alist/{8.2.6 => 8.3.0}/Chart.yaml | 2 +- stable/alist/{8.2.6 => 8.3.0}/README.md | 0 stable/alist/8.3.0/app-changelog.md | 9 + stable/alist/{8.2.6 => 8.3.0}/app-readme.md | 0 stable/alist/8.3.0/charts/common-17.2.30.tgz | Bin 0 -> 98054 bytes stable/alist/{8.2.6 => 8.3.0}/ix_values.yaml | 12 +- stable/alist/{8.2.6 => 8.3.0}/questions.yaml | 52 + .../1.0.0 => alist/8.3.0}/templates/NOTES.txt | 0 stable/alist/8.3.0/templates/common.yaml | 1 + .../1.0.0 => alist/8.3.0}/values.yaml | 0 .../codeproject-ai-server/1.0.0/CHANGELOG.md | 16 + stable/codeproject-ai-server/1.0.0/Chart.yaml | 37 + stable/codeproject-ai-server/1.0.0/README.md | 28 + .../1.0.0/app-changelog.md | 9 + .../codeproject-ai-server/1.0.0/app-readme.md | 8 + .../1.0.0/charts/common-17.2.30.tgz | Bin 0 -> 98054 bytes .../1.0.0/ix_values.yaml | 45 + .../1.0.0/questions.yaml | 3115 ++++++++++++++++ .../1.0.0/templates/common.yaml | 1 + .../codeproject-ai-server/1.0.0/values.yaml | 0 stable/codeproject-ai-server/item.yaml | 4 + stable/mkvtoolnix/9.0.0/CHANGELOG.md | 99 + stable/mkvtoolnix/9.0.0/Chart.yaml | 39 + .../1.0.0 => mkvtoolnix/9.0.0}/README.md | 2 +- stable/mkvtoolnix/9.0.0/app-changelog.md | 9 + stable/mkvtoolnix/9.0.0/app-readme.md | 8 + .../9.0.0/charts/common-17.2.30.tgz | Bin 0 -> 98054 bytes stable/mkvtoolnix/9.0.0/ix_values.yaml | 75 + stable/mkvtoolnix/9.0.0/questions.yaml | 3221 +++++++++++++++++ stable/mkvtoolnix/9.0.0/templates/NOTES.txt | 1 + stable/mkvtoolnix/9.0.0/templates/common.yaml | 1 + stable/mkvtoolnix/9.0.0/values.yaml | 0 stable/palworld/1.0.0/CHANGELOG.md | 10 - stable/palworld/1.0.0/app-changelog.md | 3 - stable/palworld/1.0.1/CHANGELOG.md | 19 + stable/palworld/{1.0.0 => 1.0.1}/Chart.yaml | 4 +- stable/palworld/1.0.1/README.md | 28 + stable/palworld/1.0.1/app-changelog.md | 9 + .../palworld/{1.0.0 => 1.0.1}/app-readme.md | 0 .../charts/common-17.2.26.tgz | Bin .../palworld/{1.0.0 => 1.0.1}/ix_values.yaml | 0 .../palworld/{1.0.0 => 1.0.1}/questions.yaml | 4 +- stable/palworld/1.0.1/templates/NOTES.txt | 1 + .../{1.0.0 => 1.0.1}/templates/_configmap.tpl | 0 .../{1.0.0 => 1.0.1}/templates/common.yaml | 0 stable/palworld/1.0.1/values.yaml | 0 59 files changed, 9975 insertions(+), 38 deletions(-) create mode 100644 dependency/clickhouse/11.0.0/CHANGELOG.md create mode 100644 dependency/clickhouse/11.0.0/Chart.yaml create mode 100644 dependency/clickhouse/11.0.0/README.md create mode 100644 dependency/clickhouse/11.0.0/app-changelog.md create mode 100644 dependency/clickhouse/11.0.0/app-readme.md rename {stable/alist/8.2.6 => dependency/clickhouse/11.0.0}/charts/common-17.2.30.tgz (100%) create mode 100644 dependency/clickhouse/11.0.0/ix_values.yaml create mode 100644 dependency/clickhouse/11.0.0/questions.yaml rename {stable/alist/8.2.6 => dependency/clickhouse/11.0.0}/templates/NOTES.txt (100%) rename {stable/alist/8.2.6 => dependency/clickhouse/11.0.0}/templates/common.yaml (100%) rename {stable/alist/8.2.6 => dependency/clickhouse/11.0.0}/values.yaml (100%) delete mode 100644 stable/alist/8.2.6/app-changelog.md rename stable/alist/{8.2.6 => 8.3.0}/CHANGELOG.md (91%) rename stable/alist/{8.2.6 => 8.3.0}/Chart.yaml (98%) rename stable/alist/{8.2.6 => 8.3.0}/README.md (100%) create mode 100644 stable/alist/8.3.0/app-changelog.md rename stable/alist/{8.2.6 => 8.3.0}/app-readme.md (100%) create mode 100644 stable/alist/8.3.0/charts/common-17.2.30.tgz rename stable/alist/{8.2.6 => 8.3.0}/ix_values.yaml (72%) rename stable/alist/{8.2.6 => 8.3.0}/questions.yaml (98%) rename stable/{palworld/1.0.0 => alist/8.3.0}/templates/NOTES.txt (100%) create mode 100644 stable/alist/8.3.0/templates/common.yaml rename stable/{palworld/1.0.0 => alist/8.3.0}/values.yaml (100%) create mode 100644 stable/codeproject-ai-server/1.0.0/CHANGELOG.md create mode 100644 stable/codeproject-ai-server/1.0.0/Chart.yaml create mode 100644 stable/codeproject-ai-server/1.0.0/README.md create mode 100644 stable/codeproject-ai-server/1.0.0/app-changelog.md create mode 100644 stable/codeproject-ai-server/1.0.0/app-readme.md create mode 100644 stable/codeproject-ai-server/1.0.0/charts/common-17.2.30.tgz create mode 100644 stable/codeproject-ai-server/1.0.0/ix_values.yaml create mode 100644 stable/codeproject-ai-server/1.0.0/questions.yaml create mode 100644 stable/codeproject-ai-server/1.0.0/templates/common.yaml create mode 100644 stable/codeproject-ai-server/1.0.0/values.yaml create mode 100644 stable/codeproject-ai-server/item.yaml create mode 100644 stable/mkvtoolnix/9.0.0/CHANGELOG.md create mode 100644 stable/mkvtoolnix/9.0.0/Chart.yaml rename stable/{palworld/1.0.0 => mkvtoolnix/9.0.0}/README.md (93%) create mode 100644 stable/mkvtoolnix/9.0.0/app-changelog.md create mode 100644 stable/mkvtoolnix/9.0.0/app-readme.md create mode 100644 stable/mkvtoolnix/9.0.0/charts/common-17.2.30.tgz create mode 100644 stable/mkvtoolnix/9.0.0/ix_values.yaml create mode 100644 stable/mkvtoolnix/9.0.0/questions.yaml create mode 100644 stable/mkvtoolnix/9.0.0/templates/NOTES.txt create mode 100644 stable/mkvtoolnix/9.0.0/templates/common.yaml create mode 100644 stable/mkvtoolnix/9.0.0/values.yaml delete mode 100644 stable/palworld/1.0.0/CHANGELOG.md delete mode 100644 stable/palworld/1.0.0/app-changelog.md create mode 100644 stable/palworld/1.0.1/CHANGELOG.md rename stable/palworld/{1.0.0 => 1.0.1}/Chart.yaml (98%) create mode 100644 stable/palworld/1.0.1/README.md create mode 100644 stable/palworld/1.0.1/app-changelog.md rename stable/palworld/{1.0.0 => 1.0.1}/app-readme.md (100%) rename stable/palworld/{1.0.0 => 1.0.1}/charts/common-17.2.26.tgz (100%) rename stable/palworld/{1.0.0 => 1.0.1}/ix_values.yaml (100%) rename stable/palworld/{1.0.0 => 1.0.1}/questions.yaml (99%) create mode 100644 stable/palworld/1.0.1/templates/NOTES.txt rename stable/palworld/{1.0.0 => 1.0.1}/templates/_configmap.tpl (100%) rename stable/palworld/{1.0.0 => 1.0.1}/templates/common.yaml (100%) create mode 100644 stable/palworld/1.0.1/values.yaml diff --git a/dependency/clickhouse/11.0.0/CHANGELOG.md b/dependency/clickhouse/11.0.0/CHANGELOG.md new file mode 100644 index 00000000000..b4ff4fc1f75 --- /dev/null +++ b/dependency/clickhouse/11.0.0/CHANGELOG.md @@ -0,0 +1,99 @@ +--- +title: Changelog +--- + +**Important:** +*for the complete changelog, please refer to the website* + + + +## [clickhouse-11.0.0](https://github.com/truecharts/charts/compare/clickhouse-10.2.14...clickhouse-11.0.0) (2024-02-10) + +### Chore + + + +- update container image clickhouse/clickhouse-server to v24.1.3.31[@fa8f259](https://github.com/fa8f259) by renovate ([#17950](https://github.com/truecharts/charts/issues/17950)) + + +## [clickhouse-10.2.14](https://github.com/truecharts/charts/compare/clickhouse-10.2.13...clickhouse-10.2.14) (2024-02-05) + +### Chore + + + +- update container image clickhouse/clickhouse-server to v23.12.3.40[@ad7f046](https://github.com/ad7f046) by renovate ([#17903](https://github.com/truecharts/charts/issues/17903)) + + +## [clickhouse-10.2.13](https://github.com/truecharts/charts/compare/clickhouse-10.2.12...clickhouse-10.2.13) (2024-02-03) + +### Chore + + + +- update container image common to v17.2.30[@19ad5ec](https://github.com/19ad5ec) by renovate ([#17804](https://github.com/truecharts/charts/issues/17804)) + + +## [clickhouse-10.2.12](https://github.com/truecharts/charts/compare/clickhouse-10.2.11...clickhouse-10.2.12) (2024-01-26) + +### Chore + + + +- update container image common to v17.2.29[@d7c41a3](https://github.com/d7c41a3) by renovate ([#17545](https://github.com/truecharts/charts/issues/17545)) + + +## [clickhouse-10.2.11](https://github.com/truecharts/charts/compare/clickhouse-10.2.10...clickhouse-10.2.11) (2024-01-21) + +### Chore + + + +- update container image common to v17.2.28[@918b4c5](https://github.com/918b4c5) by renovate ([#17478](https://github.com/truecharts/charts/issues/17478)) + + +## [clickhouse-10.2.10](https://github.com/truecharts/charts/compare/clickhouse-10.2.9...clickhouse-10.2.10) (2024-01-21) + +### Chore + + + +- update container image common to v17.2.26[@24c98f7](https://github.com/24c98f7) by renovate ([#17409](https://github.com/truecharts/charts/issues/17409)) + + +## [clickhouse-10.2.9](https://github.com/truecharts/charts/compare/clickhouse-10.2.8...clickhouse-10.2.9) (2024-01-21) + +### Chore + + + +- update metadata in chart.yaml ([#17457](https://github.com/truecharts/charts/issues/17457)) + + + + +## [clickhouse-10.2.8](https://github.com/truecharts/charts/compare/clickhouse-10.2.7...clickhouse-10.2.8) (2024-01-09) + +### Chore + + + +- update container image common to v17.2.22[@e7c9056](https://github.com/e7c9056) by renovate ([#16986](https://github.com/truecharts/charts/issues/16986)) + + +## [clickhouse-10.2.7](https://github.com/truecharts/charts/compare/clickhouse-10.2.6...clickhouse-10.2.7) (2024-01-08) + +### Chore + + + +- update container image clickhouse/clickhouse-server to v23.12.2.59[@1424a57](https://github.com/1424a57) by renovate ([#16984](https://github.com/truecharts/charts/issues/16984)) + + +## [clickhouse-10.2.6](https://github.com/truecharts/charts/compare/clickhouse-10.2.5...clickhouse-10.2.6) (2024-01-02) + +### Chore + + + +- force bump to ensure up-to-date catalogs diff --git a/dependency/clickhouse/11.0.0/Chart.yaml b/dependency/clickhouse/11.0.0/Chart.yaml new file mode 100644 index 00000000000..22c0b3ca319 --- /dev/null +++ b/dependency/clickhouse/11.0.0/Chart.yaml @@ -0,0 +1,38 @@ +annotations: + max_scale_version: 23.10.2 + min_scale_version: 23.10.0 + truecharts.org/SCALE-support: "true" + truecharts.org/category: database + truecharts.org/max_helm_version: "3.14" + truecharts.org/min_helm_version: "3.12" + truecharts.org/train: dependency +apiVersion: v2 +appVersion: 24.1.3.31 +dependencies: + - name: common + version: 17.2.30 + repository: oci://tccr.io/truecharts + condition: "" + alias: "" + tags: [] + import-values: [] +deprecated: false +description: ClickHouse is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP). +home: https://truecharts.org/charts/dependency/clickhouse +icon: https://truecharts.org/img/hotlink-ok/chart-icons/clickhouse.png +keywords: + - database + - clickhouse + - sql +kubeVersion: ">=1.24.0-0" +maintainers: + - name: TrueCharts + email: info@truecharts.org + url: https://truecharts.org +name: clickhouse +sources: + - https://clickhouse.com/ + - https://github.com/truecharts/charts/tree/master/charts/dependency/clickhouse + - https://hub.docker.com/r/clickhouse/clickhouse-server +type: application +version: 11.0.0 diff --git a/dependency/clickhouse/11.0.0/README.md b/dependency/clickhouse/11.0.0/README.md new file mode 100644 index 00000000000..431e6b69712 --- /dev/null +++ b/dependency/clickhouse/11.0.0/README.md @@ -0,0 +1,28 @@ +--- +title: README +--- + +## General Info + +TrueCharts can be installed as both _normal_ Helm Charts or as Apps on TrueNAS SCALE. +However only installations using the TrueNAS SCALE Apps system are supported. + +For more information about this App, please check the docs on the TrueCharts [website](https://truecharts.org/charts/dependency/clickhouse) + +**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/dependency/clickhouse/11.0.0/app-changelog.md b/dependency/clickhouse/11.0.0/app-changelog.md new file mode 100644 index 00000000000..4d5e9b9f549 --- /dev/null +++ b/dependency/clickhouse/11.0.0/app-changelog.md @@ -0,0 +1,9 @@ + + +## [clickhouse-11.0.0](https://github.com/truecharts/charts/compare/clickhouse-10.2.14...clickhouse-11.0.0) (2024-02-10) + +### Chore + + + +- update container image clickhouse/clickhouse-server to v24.1.3.31[@fa8f259](https://github.com/fa8f259) by renovate ([#17950](https://github.com/truecharts/charts/issues/17950)) \ No newline at end of file diff --git a/dependency/clickhouse/11.0.0/app-readme.md b/dependency/clickhouse/11.0.0/app-readme.md new file mode 100644 index 00000000000..64dbbd02c19 --- /dev/null +++ b/dependency/clickhouse/11.0.0/app-readme.md @@ -0,0 +1,8 @@ +ClickHouse is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP). + +This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/charts/dependency/clickhouse](https://truecharts.org/charts/dependency/clickhouse) + +--- + +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/alist/8.2.6/charts/common-17.2.30.tgz b/dependency/clickhouse/11.0.0/charts/common-17.2.30.tgz similarity index 100% rename from stable/alist/8.2.6/charts/common-17.2.30.tgz rename to dependency/clickhouse/11.0.0/charts/common-17.2.30.tgz diff --git a/dependency/clickhouse/11.0.0/ix_values.yaml b/dependency/clickhouse/11.0.0/ix_values.yaml new file mode 100644 index 00000000000..026a66f20de --- /dev/null +++ b/dependency/clickhouse/11.0.0/ix_values.yaml @@ -0,0 +1,69 @@ +image: + repository: clickhouse/clickhouse-server + pullPolicy: IfNotPresent + tag: 24.1.3.31@sha256:fa8f25982d6c9f16c5a1ace2ea53bfed1ce865a4787b108020301b6901999697 +workload: + main: + replicas: 1 + podSpec: + containers: + main: + env: + CLICKHOUSE_DB: "{{ .Values.clickhouseDatabase }}" + CLICKHOUSE_USER: "{{ .Values.clickhouseUsername }}" + CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT: "{{ .Values.clickhouseDefaultAccessManagement }}" + CLICKHOUSE_PASSWORD: + secretKeyRef: + expandObjectName: "{{ if .Values.clickhousePassword }}true{{ else }}false{{ end }}" + name: '{{ if .Values.clickhousePassword }}credentials{{ else if .Values.existingSecret }}{{ .Values.existingSecret }}{{ else }}{{ printf "%s-%s" .Release.Name "clickhousecreds" }}{{ end }}' + key: "clickhouse-password" + probes: + liveness: + type: http + path: /ping + readiness: + type: http + path: /ping + startup: + type: http + path: /ping +securityContext: + container: + readOnlyRootFilesystem: false + # Optional capabilities advanced ClickHouse features. See also: + # https://github.com/ClickHouse/ClickHouse/blob/master/docker/server/README.md#linux-capabilities + # https://kb.altinity.com/altinity-kb-setup-and-maintenance/altinity-kb-clickhouse-in-docker/ + # https://github.com/ClickHouse/ClickHouse/blob/b844c36a9d5e76300a88b4f49e6debccf1ad22e4/programs/install/Install.cpp#L793-L804 + # capabilities: + # add: + # - IPC_LOCK + # - NET_ADMIN + # - SYS_NICE +service: + main: + ports: + main: + port: 8123 + protocol: http + targetPort: 8123 +persistence: + data: + enabled: true + mountPath: /var/lib/clickhouse +clickhouseDatabase: "test" +clickhouseUsername: "test" +clickhouseDefaultAccessManagement: 0 +# -- Secret or password +# One of these options is required, unless used as a dependency for another TrueCharts chart. +clickhousePassword: "" +existingSecret: "" +secret: + credentials: + enabled: true + data: + clickhouse-password: '{{ ( .Values.clickhousePassword | default "empty" ) }}' +portal: + open: + enabled: false +manifestManager: + enabled: false diff --git a/dependency/clickhouse/11.0.0/questions.yaml b/dependency/clickhouse/11.0.0/questions.yaml new file mode 100644 index 00000000000..de8be291cbd --- /dev/null +++ b/dependency/clickhouse/11.0.0/questions.yaml @@ -0,0 +1,2863 @@ +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: Backup Configuration + description: Configure Velero Backup Schedule + - name: Advanced + description: Advanced Configuration + - name: Postgresql + description: Postgresql + - name: Documentation + description: Documentation +questions: + - variable: global + group: General Settings + label: "Global Settings" + schema: + additional_attrs: true + type: dict + attrs: + - variable: stopAll + label: Stop All + description: "Stops All Running pods and hibernates cnpg" + schema: + type: boolean + default: false + - variable: workload + group: "Workload Settings" + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type (Advanced) + schema: + type: string + default: Deployment + enum: + - value: Deployment + description: Deployment + - value: DaemonSet + description: DaemonSet + - variable: replicas + label: Replicas (Advanced) + description: Set the number of Replicas + schema: + type: int + show_if: [["type", "!=", "DaemonSet"]] + default: 1 + - variable: podSpec + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: containers + label: Containers + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: Main Container + schema: + additional_attrs: true + type: dict + attrs: + - variable: envList + label: Extra Environment Variables + description: "Please be aware that some variables are set in the background, adding duplicates here might cause issues or prevent the app from starting..." + schema: + type: list + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: extraArgs + label: Extra Args + schema: + type: list + default: [] + items: + - variable: arg + label: Arg + schema: + type: string + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: command + label: Command + schema: + type: list + default: [] + items: + - variable: param + label: Param + schema: + type: string + - variable: TZ + label: Timezone + group: "General Settings" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: 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: enabled + label: Enabled + schema: + type: boolean + default: true + - variable: data + label: Data + 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 + private: true + default: "" + - variable: email + label: "Email" + schema: + type: string + required: true + default: "" + - variable: clickhouseDatabase + group: "App Configuration" + label: "Database Name" + schema: + type: string + default: "test" + required: true + - variable: clickhouseUsername + group: "App Configuration" + label: "Database User" + schema: + type: string + default: "test" + required: true + - variable: clickhousePassword + group: "App Configuration" + label: "Database Password" + schema: + type: string + default: "" + required: true + private: true + - variable: clickhouseDefaultAccessManagement + group: "App Configuration" + label: "Default Access Management" + schema: + type: int + default: 0 + required: true + enum: + - value: 0 + description: "Disabled" + - value: 1 + description: "Enabled" + - 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: 8123 + 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: + additional_attrs: true + type: dict + attrs: + - variable: data + label: Data Storage + description: Stores the ClickHouse Data + schema: + type: dict + hidden: true + attrs: + - variable: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: pvc + enum: + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: emptyDir + description: emptyDir + - value: nfs + description: NFS Share + - value: iscsi + description: iSCSI Share + - variable: server + label: NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: path + label: Path on NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: iscsi + label: iSCSI Options + schema: + show_if: [["type", "=", "iscsi"]] + type: dict + additional_attrs: true + attrs: + - variable: targetPortal + label: targetPortal + schema: + type: string + required: true + default: "" + - variable: iqn + label: iqn + schema: + type: string + required: true + default: "" + - variable: lun + label: lun + schema: + type: int + default: 0 + - variable: authSession + label: authSession + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: authDiscovery + label: authDiscovery + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + + - variable: autoPermissions + label: Automatic Permissions Configuration + description: Automatically set permissions + schema: + show_if: [["type", "!=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: chown + label: Run CHOWN + description: | + It will run CHOWN on the path with the given fsGroup + schema: + type: boolean + default: false + - variable: chmod + label: Run CHMOD + description: | + It will run CHMOD on the path with the given value
+ Format should be 3 digits, e.g. 770 + schema: + type: string + valid_chars: '[0-9]{3}' + default: "" + - variable: recursive + label: Recursive + description: | + It will run CHOWN and CHMOD recursively + schema: + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - variable: hostPath + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: medium + label: EmptyDir Medium + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: Memory + description: Memory + - variable: size + label: Size quotum of Storage (Do NOT REDUCE after installation) + description: This value can ONLY be INCREASED after the installation + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: storageClass + label: 'storageClass (Advanced)' + description: 'sets the storageClass to something other than iX default. Only for advanced usecases!' + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "" + - variable: static + label: 'Static Fixed PVC Bindings (Experimental)' + description: Link a PVC to a specific storage location + schema: + show_if: [["type", "=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: mode + label: mode + description: | + disabled: use normal dynamic PVCs + smb: connect to an SMB share + nfs: connect to an NFS share + schema: + type: string + default: "disabled" + enum: + - value: disabled + description: disabled + - value: smb + description: smb + - value: nfs + description: nfs + - variable: server + label: Server + description: server to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "myserver" + - variable: share + label: Share + description: share to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "/myshare" + - variable: user + label: User + description: connecting user + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "myuser" + - variable: domain + label: Domain + description: user domain + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: password + label: Password + description: connecting password + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: volumeSnapshots + label: 'Volume Snapshots (Experimental)' + description: Add an entry to the list to force creation of a volumeSnapshot of this PVC + schema: + show_if: [["type", "=", "pvc"]] + type: list + default: [] + items: + - variable: volumeSnapshotEntry + label: Custom volumeSnapshot + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: 'WARNING: renaming this, means deletion of the snapshot with the old name!' + schema: + type: string + default: "mysnapshot" + required: true + - variable: volumeSnapshotClassName + label: 'volumeSnapshot Class Name (Advanced)' + description: For use with PVCs using a non-default storageClass + schema: + type: string + default: "" + - variable: config-server + label: Server Configuration Storage + description: Files with Server Settings Adjustments + schema: + type: dict + hidden: true + attrs: + - variable: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: pvc + enum: + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: emptyDir + description: emptyDir + - value: nfs + description: NFS Share + - value: iscsi + description: iSCSI Share + - variable: server + label: NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: path + label: Path on NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: iscsi + label: iSCSI Options + schema: + show_if: [["type", "=", "iscsi"]] + type: dict + additional_attrs: true + attrs: + - variable: targetPortal + label: targetPortal + schema: + type: string + required: true + default: "" + - variable: iqn + label: iqn + schema: + type: string + required: true + default: "" + - variable: lun + label: lun + schema: + type: int + default: 0 + - variable: authSession + label: authSession + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: authDiscovery + label: authDiscovery + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + + - variable: autoPermissions + label: Automatic Permissions Configuration + description: Automatically set permissions + schema: + show_if: [["type", "!=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: chown + label: Run CHOWN + description: | + It will run CHOWN on the path with the given fsGroup + schema: + type: boolean + default: false + - variable: chmod + label: Run CHMOD + description: | + It will run CHMOD on the path with the given value
+ Format should be 3 digits, e.g. 770 + schema: + type: string + valid_chars: '[0-9]{3}' + default: "" + - variable: recursive + label: Recursive + description: | + It will run CHOWN and CHMOD recursively + schema: + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - variable: hostPath + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: medium + label: EmptyDir Medium + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: Memory + description: Memory + - variable: size + label: Size quotum of Storage (Do NOT REDUCE after installation) + description: This value can ONLY be INCREASED after the installation + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: storageClass + label: 'storageClass (Advanced)' + description: 'sets the storageClass to something other than iX default. Only for advanced usecases!' + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "" + - variable: static + label: 'Static Fixed PVC Bindings (Experimental)' + description: Link a PVC to a specific storage location + schema: + show_if: [["type", "=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: mode + label: mode + description: | + disabled: use normal dynamic PVCs + smb: connect to an SMB share + nfs: connect to an NFS share + schema: + type: string + default: "disabled" + enum: + - value: disabled + description: disabled + - value: smb + description: smb + - value: nfs + description: nfs + - variable: server + label: Server + description: server to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "myserver" + - variable: share + label: Share + description: share to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "/myshare" + - variable: user + label: User + description: connecting user + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "myuser" + - variable: domain + label: Domain + description: user domain + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: password + label: Password + description: connecting password + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: volumeSnapshots + label: 'Volume Snapshots (Experimental)' + description: Add an entry to the list to force creation of a volumeSnapshot of this PVC + schema: + show_if: [["type", "=", "pvc"]] + type: list + default: [] + items: + - variable: volumeSnapshotEntry + label: Custom volumeSnapshot + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: 'WARNING: renaming this, means deletion of the snapshot with the old name!' + schema: + type: string + default: "mysnapshot" + required: true + - variable: volumeSnapshotClassName + label: 'volumeSnapshot Class Name (Advanced)' + description: For use with PVCs using a non-default storageClass + schema: + type: string + default: "" + - variable: config-users + label: Users Configuration Storage + description: Files with Users Settings Adjustments + schema: + type: dict + hidden: true + 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: securityContext + group: Security and Permissions + label: Security Context + schema: + additional_attrs: true + type: dict + attrs: + - variable: container + label: Container + schema: + additional_attrs: true + type: dict + attrs: + # Settings from questions.yaml get appended here on a per-app basis + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: "The groupID of the user running the application" + schema: + type: int + default: 568 + # Settings from questions.yaml get appended here on a per-app basis + - variable: PUID + label: Process User ID - PUID + description: When supported by the container, this sets the User ID running the Application Process. Not supported by all Apps + schema: + type: int + show_if: [["runAsUser", "=", 0]] + default: 568 + - variable: UMASK + label: UMASK + description: When supported by the container, this sets the UMASK for the App. Not supported by all Apps + schema: + type: string + default: "0022" + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: pod + label: Pod + schema: + additional_attrs: true + type: dict + attrs: + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: OnRootMismatch + enum: + - value: OnRootMismatch + description: OnRootMismatch + - value: Always + description: Always + - variable: supplementalGroups + label: Supplemental Groups + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: Supplemental Group + schema: + type: int + # Settings from questions.yaml get appended here on a per-app basis + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: resources + group: Resources and Devices + label: "Resource Limits" + schema: + additional_attrs: true + type: dict + attrs: + - variable: limits + label: Advanced Limit Resource Consumption + schema: + additional_attrs: true + type: dict + attrs: + - variable: cpu + label: CPU + description: "1000m means 1 hyperthread. Detailed info: https://truecharts.org/manual/SCALE/validation" + schema: + type: string + default: 4000m + valid_chars: '^(?!^0(\.0|m|)$)([0-9]+)(\.[0-9]|m?)$' + - variable: memory + label: RAM + description: "1Gi means 1 Gibibyte RAM. Detailed info: https://truecharts.org/manual/SCALE/validation" + schema: + type: string + default: 8Gi + valid_chars: '^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$' + - variable: requests + label: "Minimum Resources Required (request)" + schema: + additional_attrs: true + type: dict + hidden: true + attrs: + - variable: cpu + label: CPU + description: "1000m means 1 hyperthread. Detailed info: https://truecharts.org/manual/SCALE/validation" + schema: + type: string + default: 10m + hidden: true + valid_chars: '^(?!^0(\.0|m|)$)([0-9]+)(\.[0-9]|m?)$' + - variable: memory + label: "RAM" + description: "1Gi means 1 Gibibyte RAM. Detailed info: https://truecharts.org/manual/SCALE/validation" + schema: + type: string + default: 50Mi + hidden: true + valid_chars: '^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$' + - variable: deviceList + label: Mount USB Devices + group: Resources and Devices + schema: + type: list + default: [] + items: + - variable: deviceListEntry + label: Device + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the Storage + schema: + type: boolean + default: true + - variable: type + label: (Advanced) Type of Storage + description: Sets the persistence type + schema: + type: string + default: device + hidden: true + - variable: readOnly + label: readOnly + schema: + type: boolean + default: false + - variable: hostPath + label: Host Device Path + description: Path to the device on the host system + schema: + type: path + - variable: mountPath + label: Container Device Path + description: Path inside the container the device is mounted + schema: + type: string + default: "/dev/ttyACM0" + - variable: scaleGPU + label: GPU Configuration + group: Resources and Devices + schema: + type: list + default: [] + items: + - variable: scaleGPUEntry + label: GPU + schema: + additional_attrs: true + type: dict + attrs: + # Specify GPU configuration + - variable: gpu + label: Select GPU + schema: + additional_attrs: true + type: dict + $ref: + - "definitions/gpuConfiguration" + attrs: [] + - variable: workaround + label: "Workaround" + schema: + type: string + default: workaround + hidden: true +# - variable: 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/alist/8.2.6/templates/NOTES.txt b/dependency/clickhouse/11.0.0/templates/NOTES.txt similarity index 100% rename from stable/alist/8.2.6/templates/NOTES.txt rename to dependency/clickhouse/11.0.0/templates/NOTES.txt diff --git a/stable/alist/8.2.6/templates/common.yaml b/dependency/clickhouse/11.0.0/templates/common.yaml similarity index 100% rename from stable/alist/8.2.6/templates/common.yaml rename to dependency/clickhouse/11.0.0/templates/common.yaml diff --git a/stable/alist/8.2.6/values.yaml b/dependency/clickhouse/11.0.0/values.yaml similarity index 100% rename from stable/alist/8.2.6/values.yaml rename to dependency/clickhouse/11.0.0/values.yaml diff --git a/stable/alist/8.2.6/app-changelog.md b/stable/alist/8.2.6/app-changelog.md deleted file mode 100644 index 8d5cfd7208c..00000000000 --- a/stable/alist/8.2.6/app-changelog.md +++ /dev/null @@ -1,9 +0,0 @@ - - -## [alist-8.2.6](https://github.com/truecharts/charts/compare/alist-8.2.5...alist-8.2.6) (2024-02-03) - -### Chore - - - -- update container image common to v17.2.30[@19ad5ec](https://github.com/19ad5ec) by renovate ([#17804](https://github.com/truecharts/charts/issues/17804)) \ No newline at end of file diff --git a/stable/alist/8.2.6/CHANGELOG.md b/stable/alist/8.3.0/CHANGELOG.md similarity index 91% rename from stable/alist/8.2.6/CHANGELOG.md rename to stable/alist/8.3.0/CHANGELOG.md index 422bc6173a9..8e4274fddb5 100644 --- a/stable/alist/8.2.6/CHANGELOG.md +++ b/stable/alist/8.3.0/CHANGELOG.md @@ -7,6 +7,15 @@ title: Changelog +## [alist-8.3.0](https://github.com/truecharts/charts/compare/alist-8.2.6...alist-8.3.0) (2024-02-10) + +### Feat + + + +- Add aria2 support (image and port) ([#18011](https://github.com/truecharts/charts/issues/18011)) + + ## [alist-8.2.6](https://github.com/truecharts/charts/compare/alist-8.2.5...alist-8.2.6) (2024-02-03) ### Chore @@ -88,12 +97,3 @@ title: Changelog - bump common ([#16751](https://github.com/truecharts/charts/issues/16751)) - - -## [alist-8.1.4](https://github.com/truecharts/charts/compare/alist-8.1.3...alist-8.1.4) (2024-01-01) - -### Chore - - - -- increase common version for oci fixes diff --git a/stable/alist/8.2.6/Chart.yaml b/stable/alist/8.3.0/Chart.yaml similarity index 98% rename from stable/alist/8.2.6/Chart.yaml rename to stable/alist/8.3.0/Chart.yaml index 168a6cd6743..75d0cd720b7 100644 --- a/stable/alist/8.2.6/Chart.yaml +++ b/stable/alist/8.3.0/Chart.yaml @@ -38,4 +38,4 @@ sources: - https://github.com/truecharts/charts/tree/master/charts/stable/alist - https://hub.docker.com/r/xhofe/alist type: application -version: 8.2.6 +version: 8.3.0 diff --git a/stable/alist/8.2.6/README.md b/stable/alist/8.3.0/README.md similarity index 100% rename from stable/alist/8.2.6/README.md rename to stable/alist/8.3.0/README.md diff --git a/stable/alist/8.3.0/app-changelog.md b/stable/alist/8.3.0/app-changelog.md new file mode 100644 index 00000000000..e36ddd5deac --- /dev/null +++ b/stable/alist/8.3.0/app-changelog.md @@ -0,0 +1,9 @@ + + +## [alist-8.3.0](https://github.com/truecharts/charts/compare/alist-8.2.6...alist-8.3.0) (2024-02-10) + +### Feat + + + +- Add aria2 support (image and port) ([#18011](https://github.com/truecharts/charts/issues/18011)) \ No newline at end of file diff --git a/stable/alist/8.2.6/app-readme.md b/stable/alist/8.3.0/app-readme.md similarity index 100% rename from stable/alist/8.2.6/app-readme.md rename to stable/alist/8.3.0/app-readme.md diff --git a/stable/alist/8.3.0/charts/common-17.2.30.tgz b/stable/alist/8.3.0/charts/common-17.2.30.tgz new file mode 100644 index 0000000000000000000000000000000000000000..a6cb126e1b283d49dc218680d9b1047e66af30f3 GIT binary patch literal 98054 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%0AIfL=!jZC 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 tJ6Yu~*;FIb@G=`MgUep6of};?E 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%0DK5lRM<-l2d&_56tFfI;Cr|eU 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 Re*gdg|NqdaNH_pY3;-e0QZ4`h literal 0 HcmV?d00001 diff --git a/stable/alist/8.2.6/ix_values.yaml b/stable/alist/8.3.0/ix_values.yaml similarity index 72% rename from stable/alist/8.2.6/ix_values.yaml rename to stable/alist/8.3.0/ix_values.yaml index d138a8be10e..57eb4322b4e 100644 --- a/stable/alist/8.2.6/ix_values.yaml +++ b/stable/alist/8.3.0/ix_values.yaml @@ -1,7 +1,7 @@ image: - repository: xhofe/alist + repository: xhofe/alist-aria2 pullPolicy: IfNotPresent - tag: v3.30.0@sha256:084ba82603563ac6e178d1d2bb90e6b3417efeca90a59aa75f7d1c60db7a5b26 + tag: v3.30.0@sha256:3be44197b5fe4009edbca01541bd3bd60b9956dcdcfba5c69af08304bfc16949 securityContext: container: readOnlyRootFilesystem: false @@ -15,6 +15,14 @@ service: targetPort: 5244 protocol: http port: 10167 + aria2: + enabled: true + ports: + aria2: + enabled: true + targetPort: 6800 + protocol: http + port: 6800 workload: main: podSpec: diff --git a/stable/alist/8.2.6/questions.yaml b/stable/alist/8.3.0/questions.yaml similarity index 98% rename from stable/alist/8.2.6/questions.yaml rename to stable/alist/8.3.0/questions.yaml index b05d402e218..871ee152962 100644 --- a/stable/alist/8.2.6/questions.yaml +++ b/stable/alist/8.3.0/questions.yaml @@ -23,6 +23,8 @@ groups: description: Metrics - name: Addons description: Addon Configuration + - name: Backup Configuration + description: Configure Velero Backup Schedule - name: Advanced description: Advanced Configuration - name: Postgresql @@ -331,6 +333,56 @@ questions: type: int default: 10167 required: true + - variable: aria2 + label: Aria 2 RPC Service Port + description: Adds another port for Aria 2 RPC connections + 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: aria2 + label: Aria 2 RPC Service Port + 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: 6800 + required: true - variable: serviceexpert group: Networking and Services label: Show Expert Config diff --git a/stable/palworld/1.0.0/templates/NOTES.txt b/stable/alist/8.3.0/templates/NOTES.txt similarity index 100% rename from stable/palworld/1.0.0/templates/NOTES.txt rename to stable/alist/8.3.0/templates/NOTES.txt diff --git a/stable/alist/8.3.0/templates/common.yaml b/stable/alist/8.3.0/templates/common.yaml new file mode 100644 index 00000000000..b51394e00a4 --- /dev/null +++ b/stable/alist/8.3.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "tc.v1.common.loader.all" . }} diff --git a/stable/palworld/1.0.0/values.yaml b/stable/alist/8.3.0/values.yaml similarity index 100% rename from stable/palworld/1.0.0/values.yaml rename to stable/alist/8.3.0/values.yaml diff --git a/stable/codeproject-ai-server/1.0.0/CHANGELOG.md b/stable/codeproject-ai-server/1.0.0/CHANGELOG.md new file mode 100644 index 00000000000..c5b639d452c --- /dev/null +++ b/stable/codeproject-ai-server/1.0.0/CHANGELOG.md @@ -0,0 +1,16 @@ +--- +title: Changelog +--- + +**Important:** +*for the complete changelog, please refer to the website* + + + +## [codeproject-ai-server-1.0.0]codeproject-ai-server-1.0.0 (2024-02-10) + +### Feat + + + +- Move to Stable and remove deprecate senseai-server ([#18006](https://github.com/truecharts/charts/issues/18006)) \ No newline at end of file diff --git a/stable/codeproject-ai-server/1.0.0/Chart.yaml b/stable/codeproject-ai-server/1.0.0/Chart.yaml new file mode 100644 index 00000000000..a3bb92abe38 --- /dev/null +++ b/stable/codeproject-ai-server/1.0.0/Chart.yaml @@ -0,0 +1,37 @@ +annotations: + max_scale_version: 23.10.2 + min_scale_version: 23.10.0 + truecharts.org/SCALE-support: "true" + truecharts.org/category: AI + truecharts.org/max_helm_version: "3.14" + truecharts.org/min_helm_version: "3.12" + truecharts.org/train: stable +apiVersion: v2 +appVersion: 2.5.1 +dependencies: + - name: common + version: 17.2.30 + repository: oci://tccr.io/truecharts + condition: "" + alias: "" + tags: [] + import-values: [] +deprecated: false +description: A standalone, self-hosted, fast, free and Open Source Artificial Intelligence microserver for any platform, any language. +home: https://truecharts.org/charts/stable/codeproject-ai-server +icon: https://truecharts.org/img/hotlink-ok/chart-icons/codeproject-ai-server.png +keywords: + - ai-server + - sense-ai +kubeVersion: ">=1.24.0-0" +maintainers: + - name: TrueCharts + email: info@truecharts.org + url: https://truecharts.org +name: codeproject-ai-server +sources: + - https://github.com/codeproject/CodeProject.AI-Server + - https://github.com/truecharts/charts/tree/master/charts/stable/codeproject-ai-server + - https://hub.docker.com/r/codeproject/ai-server +type: application +version: 1.0.0 diff --git a/stable/codeproject-ai-server/1.0.0/README.md b/stable/codeproject-ai-server/1.0.0/README.md new file mode 100644 index 00000000000..a340a4a4390 --- /dev/null +++ b/stable/codeproject-ai-server/1.0.0/README.md @@ -0,0 +1,28 @@ +--- +title: README +--- + +## General Info + +TrueCharts can be installed as both _normal_ Helm Charts or as Apps on TrueNAS SCALE. +However only installations using the TrueNAS SCALE Apps system are supported. + +For more information about this App, please check the docs on the TrueCharts [website](https://truecharts.org/charts/incubator/ai-server) + +**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/codeproject-ai-server/1.0.0/app-changelog.md b/stable/codeproject-ai-server/1.0.0/app-changelog.md new file mode 100644 index 00000000000..9f6b80cde03 --- /dev/null +++ b/stable/codeproject-ai-server/1.0.0/app-changelog.md @@ -0,0 +1,9 @@ + + +## [codeproject-ai-server-1.0.0]codeproject-ai-server-1.0.0 (2024-02-10) + +### Feat + + + +- Move to Stable and remove deprecate senseai-server ([#18006](https://github.com/truecharts/charts/issues/18006)) \ No newline at end of file diff --git a/stable/codeproject-ai-server/1.0.0/app-readme.md b/stable/codeproject-ai-server/1.0.0/app-readme.md new file mode 100644 index 00000000000..005353d7b31 --- /dev/null +++ b/stable/codeproject-ai-server/1.0.0/app-readme.md @@ -0,0 +1,8 @@ +A standalone, self-hosted, fast, free and Open Source Artificial Intelligence microserver for any platform, any language. + +This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/charts/stable/codeproject-ai-server](https://truecharts.org/charts/stable/codeproject-ai-server) + +--- + +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/codeproject-ai-server/1.0.0/charts/common-17.2.30.tgz b/stable/codeproject-ai-server/1.0.0/charts/common-17.2.30.tgz new file mode 100644 index 0000000000000000000000000000000000000000..a6cb126e1b283d49dc218680d9b1047e66af30f3 GIT binary patch literal 98054 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%0AIfL=!jZC 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 tJ6Yu~*;FIb@G=`MgUep6of};?E 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%0DK5lRM<-l2d&_56tFfI;Cr|eU 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 Re*gdg|NqdaNH_pY3;-e0QZ4`h literal 0 HcmV?d00001 diff --git a/stable/codeproject-ai-server/1.0.0/ix_values.yaml b/stable/codeproject-ai-server/1.0.0/ix_values.yaml new file mode 100644 index 00000000000..c6cd65bf1ce --- /dev/null +++ b/stable/codeproject-ai-server/1.0.0/ix_values.yaml @@ -0,0 +1,45 @@ +image: + pullPolicy: IfNotPresent + repository: codeproject/ai-server + tag: cpu-2.5.1@sha256:4ac7e0ace01abdb26e6d1876011a95f9f294352abd23936e4c6040f23582ed9f +gpu12Image: + pullPolicy: IfNotPresent + repository: codeproject/ai-server + tag: cuda12_2-2.5.1@sha256:c846c67adb140912ff344a7ba57b3498019d18dfeaf70a32ab68ff389db74efd +gpu11Image: + pullPolicy: IfNotPresent + repository: codeproject/ai-server + tag: cuda11_7-2.5.1@sha256:b48a17af31d10b839baaa07495449bb185493e0d90d88520bd6d6339e6a168cf + +securityContext: + container: + runAsNonRoot: false + readOnlyRootFilesystem: false + runAsUser: 0 + runAsGroup: 0 + +service: + main: + ports: + main: + port: 32168 + targetPort: 32168 + +workload: + main: + podSpec: + containers: + main: + imageSelector: image + +persistence: + data: + enabled: true + mountPath: /etc/codeproject/ai + downloads: + enabled: true + mountPath: /app/modules + +portal: + open: + enabled: true diff --git a/stable/codeproject-ai-server/1.0.0/questions.yaml b/stable/codeproject-ai-server/1.0.0/questions.yaml new file mode 100644 index 00000000000..a6be558f85f --- /dev/null +++ b/stable/codeproject-ai-server/1.0.0/questions.yaml @@ -0,0 +1,3115 @@ +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: Backup Configuration + description: Configure Velero Backup Schedule + - name: Advanced + description: Advanced Configuration + - name: Postgresql + description: Postgresql + - name: Documentation + description: Documentation +portals: + open: + protocols: + - "$kubernetes-resource_configmap_tcportal-open_protocol" + host: + - "$kubernetes-resource_configmap_tcportal-open_host" + ports: + - "$kubernetes-resource_configmap_tcportal-open_port" +questions: + - variable: global + group: General Settings + label: "Global Settings" + schema: + additional_attrs: true + type: dict + attrs: + - variable: stopAll + label: Stop All + description: "Stops All Running pods and hibernates cnpg" + schema: + type: boolean + default: false + - variable: workload + group: "Workload Settings" + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type (Advanced) + schema: + type: string + default: Deployment + enum: + - value: Deployment + description: Deployment + - value: DaemonSet + description: DaemonSet + - variable: replicas + label: Replicas (Advanced) + description: Set the number of Replicas + schema: + type: int + show_if: [["type", "!=", "DaemonSet"]] + default: 1 + - variable: podSpec + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: containers + label: Containers + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: Main Container + schema: + additional_attrs: true + type: dict + attrs: + - variable: imageSelector + label: Select Image + schema: + type: string + default: image + enum: + - value: image + description: Default (CPU) + - value: gpu12Image + description: CUDA 12 (Nvidia GPUs) image + - value: gpu11Image + description: CUDA 11 (Nvidia GPUs) image + - variable: envList + label: Extra Environment Variables + description: "Please be aware that some variables are set in the background, adding duplicates here might cause issues or prevent the app from starting..." + schema: + type: list + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: extraArgs + label: Extra Args + schema: + type: list + default: [] + items: + - variable: arg + label: Arg + schema: + type: string + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: command + label: Command + schema: + type: list + default: [] + items: + - variable: param + label: Param + schema: + type: string + - variable: TZ + label: Timezone + group: "General Settings" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: 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: enabled + label: Enabled + schema: + type: boolean + default: true + - variable: data + label: Data + 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 + private: 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: 32168 + 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: data + label: "App Data Storage" + description: "Stores the Application Data." + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: pvc + enum: + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: emptyDir + description: emptyDir + - value: nfs + description: NFS Share + - value: iscsi + description: iSCSI Share + - variable: server + label: NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: path + label: Path on NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: iscsi + label: iSCSI Options + schema: + show_if: [["type", "=", "iscsi"]] + type: dict + additional_attrs: true + attrs: + - variable: targetPortal + label: targetPortal + schema: + type: string + required: true + default: "" + - variable: iqn + label: iqn + schema: + type: string + required: true + default: "" + - variable: lun + label: lun + schema: + type: int + default: 0 + - variable: authSession + label: authSession + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: authDiscovery + label: authDiscovery + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + + - variable: autoPermissions + label: Automatic Permissions Configuration + description: Automatically set permissions + schema: + show_if: [["type", "!=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: chown + label: Run CHOWN + description: | + It will run CHOWN on the path with the given fsGroup + schema: + type: boolean + default: false + - variable: chmod + label: Run CHMOD + description: | + It will run CHMOD on the path with the given value
+ Format should be 3 digits, e.g. 770 + schema: + type: string + valid_chars: '[0-9]{3}' + default: "" + - variable: recursive + label: Recursive + description: | + It will run CHOWN and CHMOD recursively + schema: + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - variable: hostPath + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: medium + label: EmptyDir Medium + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: Memory + description: Memory + - variable: size + label: Size quotum of Storage (Do NOT REDUCE after installation) + description: This value can ONLY be INCREASED after the installation + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: storageClass + label: 'storageClass (Advanced)' + description: 'sets the storageClass to something other than iX default. Only for advanced usecases!' + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "" + - variable: static + label: 'Static Fixed PVC Bindings (Experimental)' + description: Link a PVC to a specific storage location + schema: + show_if: [["type", "=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: mode + label: mode + description: | + disabled: use normal dynamic PVCs + smb: connect to an SMB share + nfs: connect to an NFS share + schema: + type: string + default: "disabled" + enum: + - value: disabled + description: disabled + - value: smb + description: smb + - value: nfs + description: nfs + - variable: server + label: Server + description: server to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "myserver" + - variable: share + label: Share + description: share to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "/myshare" + - variable: user + label: User + description: connecting user + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "myuser" + - variable: domain + label: Domain + description: user domain + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: password + label: Password + description: connecting password + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: volumeSnapshots + label: 'Volume Snapshots (Experimental)' + description: Add an entry to the list to force creation of a volumeSnapshot of this PVC + schema: + show_if: [["type", "=", "pvc"]] + type: list + default: [] + items: + - variable: volumeSnapshotEntry + label: Custom volumeSnapshot + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: 'WARNING: renaming this, means deletion of the snapshot with the old name!' + schema: + type: string + default: "mysnapshot" + required: true + - variable: volumeSnapshotClassName + label: 'volumeSnapshot Class Name (Advanced)' + description: For use with PVCs using a non-default storageClass + schema: + type: string + default: "" + - variable: downloads + label: App Modules Storage + description: Stores the App Modules or Downloads + 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: 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/codeproject-ai-server/1.0.0/templates/common.yaml b/stable/codeproject-ai-server/1.0.0/templates/common.yaml new file mode 100644 index 00000000000..b51394e00a4 --- /dev/null +++ b/stable/codeproject-ai-server/1.0.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "tc.v1.common.loader.all" . }} diff --git a/stable/codeproject-ai-server/1.0.0/values.yaml b/stable/codeproject-ai-server/1.0.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/codeproject-ai-server/item.yaml b/stable/codeproject-ai-server/item.yaml new file mode 100644 index 00000000000..07f89dd5928 --- /dev/null +++ b/stable/codeproject-ai-server/item.yaml @@ -0,0 +1,4 @@ +icon_url: https://truecharts.org/img/hotlink-ok/chart-icons/codeproject-ai-server.png +categories: +- AI +screenshots: [] diff --git a/stable/mkvtoolnix/9.0.0/CHANGELOG.md b/stable/mkvtoolnix/9.0.0/CHANGELOG.md new file mode 100644 index 00000000000..ec6933c7c76 --- /dev/null +++ b/stable/mkvtoolnix/9.0.0/CHANGELOG.md @@ -0,0 +1,99 @@ +--- +title: Changelog +--- + +**Important:** +*for the complete changelog, please refer to the website* + + + +## [mkvtoolnix-9.0.0](https://github.com/truecharts/charts/compare/mkvtoolnix-8.1.11...mkvtoolnix-9.0.0) (2024-02-10) + +### Chore + + + +- update container image jlesage/mkvtoolnix to v24.02.1[@f90aca5](https://github.com/f90aca5) by renovate ([#17965](https://github.com/truecharts/charts/issues/17965)) + + +## [mkvtoolnix-8.1.11](https://github.com/truecharts/charts/compare/mkvtoolnix-8.1.10...mkvtoolnix-8.1.11) (2024-02-03) + +### Chore + + + +- update container image common to v17.2.30[@19ad5ec](https://github.com/19ad5ec) by renovate ([#17804](https://github.com/truecharts/charts/issues/17804)) + + +## [mkvtoolnix-8.1.10](https://github.com/truecharts/charts/compare/mkvtoolnix-8.1.9...mkvtoolnix-8.1.10) (2024-01-26) + +### Chore + + + +- update container image common to v17.2.29[@d7c41a3](https://github.com/d7c41a3) by renovate ([#17545](https://github.com/truecharts/charts/issues/17545)) + + +## [mkvtoolnix-8.1.9](https://github.com/truecharts/charts/compare/mkvtoolnix-8.1.8...mkvtoolnix-8.1.9) (2024-01-21) + +### Chore + + + +- update container image common to v17.2.28[@918b4c5](https://github.com/918b4c5) by renovate ([#17478](https://github.com/truecharts/charts/issues/17478)) + + +## [mkvtoolnix-8.1.8](https://github.com/truecharts/charts/compare/mkvtoolnix-8.1.7...mkvtoolnix-8.1.8) (2024-01-21) + +### Chore + + + +- update container image common to v17.2.26[@24c98f7](https://github.com/24c98f7) by renovate ([#17409](https://github.com/truecharts/charts/issues/17409)) + + +## [mkvtoolnix-8.1.7](https://github.com/truecharts/charts/compare/mkvtoolnix-8.1.6...mkvtoolnix-8.1.7) (2024-01-21) + +### Chore + + + +- update metadata in chart.yaml ([#17457](https://github.com/truecharts/charts/issues/17457)) + + + + +## [mkvtoolnix-8.1.6](https://github.com/truecharts/charts/compare/mkvtoolnix-8.1.5...mkvtoolnix-8.1.6) (2024-01-09) + +### Chore + + + +- update container image common to v17.2.22[@e7c9056](https://github.com/e7c9056) by renovate ([#16986](https://github.com/truecharts/charts/issues/16986)) + + +## [mkvtoolnix-8.1.5](https://github.com/truecharts/charts/compare/mkvtoolnix-8.1.4...mkvtoolnix-8.1.5) (2024-01-02) + +### Chore + + + +- force bump to ensure up-to-date catalogs + + +## [mkvtoolnix-8.1.4](https://github.com/truecharts/charts/compare/mkvtoolnix-8.1.3...mkvtoolnix-8.1.4) (2024-01-01) + +### Chore + + + +- increase common version for oci fixes + +- remove non-existent template refs ([#16738](https://github.com/truecharts/charts/issues/16738)) + + +## [mkvtoolnix-8.1.3](https://github.com/truecharts/charts/compare/mkvtoolnix-8.1.0...mkvtoolnix-8.1.3) (2024-01-01) + +### Chore + + diff --git a/stable/mkvtoolnix/9.0.0/Chart.yaml b/stable/mkvtoolnix/9.0.0/Chart.yaml new file mode 100644 index 00000000000..c80812c5391 --- /dev/null +++ b/stable/mkvtoolnix/9.0.0/Chart.yaml @@ -0,0 +1,39 @@ +annotations: + max_scale_version: 23.10.2 + min_scale_version: 23.10.0 + truecharts.org/SCALE-support: "true" + truecharts.org/category: media + truecharts.org/max_helm_version: "3.14" + truecharts.org/min_helm_version: "3.12" + truecharts.org/train: stable +apiVersion: v2 +appVersion: 24.02.1 +dependencies: + - name: common + version: 17.2.30 + repository: oci://tccr.io/truecharts + condition: "" + alias: "" + tags: [] + import-values: [] +deprecated: false +description: MKVToolNix is a set of tools to create, alter and inspect Matroska files. +home: https://truecharts.org/charts/stable/mkvtoolnix +icon: https://truecharts.org/img/hotlink-ok/chart-icons/mkvtoolnix.png +keywords: + - media + - mkvtoolnix + - mkv +kubeVersion: ">=1.24.0-0" +maintainers: + - name: TrueCharts + email: info@truecharts.org + url: https://truecharts.org +name: mkvtoolnix +sources: + - https://mkvtoolnix.download/ + - https://github.com/jlesage/docker-mkvtoolnix + - https://github.com/truecharts/charts/tree/master/charts/stable/mkvtoolnix + - https://hub.docker.com/r/jlesage/mkvtoolnix +type: application +version: 9.0.0 diff --git a/stable/palworld/1.0.0/README.md b/stable/mkvtoolnix/9.0.0/README.md similarity index 93% rename from stable/palworld/1.0.0/README.md rename to stable/mkvtoolnix/9.0.0/README.md index f9d51de8476..30e0b91cbe8 100644 --- a/stable/palworld/1.0.0/README.md +++ b/stable/mkvtoolnix/9.0.0/README.md @@ -7,7 +7,7 @@ title: README 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/incubator/palworld) +For more information about this App, please check the docs on the TrueCharts [website](https://truecharts.org/charts/stable/mkvtoolnix) **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)** diff --git a/stable/mkvtoolnix/9.0.0/app-changelog.md b/stable/mkvtoolnix/9.0.0/app-changelog.md new file mode 100644 index 00000000000..657a137ad1f --- /dev/null +++ b/stable/mkvtoolnix/9.0.0/app-changelog.md @@ -0,0 +1,9 @@ + + +## [mkvtoolnix-9.0.0](https://github.com/truecharts/charts/compare/mkvtoolnix-8.1.11...mkvtoolnix-9.0.0) (2024-02-10) + +### Chore + + + +- update container image jlesage/mkvtoolnix to v24.02.1[@f90aca5](https://github.com/f90aca5) by renovate ([#17965](https://github.com/truecharts/charts/issues/17965)) \ No newline at end of file diff --git a/stable/mkvtoolnix/9.0.0/app-readme.md b/stable/mkvtoolnix/9.0.0/app-readme.md new file mode 100644 index 00000000000..e287651357e --- /dev/null +++ b/stable/mkvtoolnix/9.0.0/app-readme.md @@ -0,0 +1,8 @@ +MKVToolNix is a set of tools to create, alter and inspect Matroska files. + +This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/charts/stable/mkvtoolnix](https://truecharts.org/charts/stable/mkvtoolnix) + +--- + +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/mkvtoolnix/9.0.0/charts/common-17.2.30.tgz b/stable/mkvtoolnix/9.0.0/charts/common-17.2.30.tgz new file mode 100644 index 0000000000000000000000000000000000000000..a6cb126e1b283d49dc218680d9b1047e66af30f3 GIT binary patch literal 98054 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%0AIfL=!jZC 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 tJ6Yu~*;FIb@G=`MgUep6of};?E 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%0DK5lRM<-l2d&_56tFfI;Cr|eU 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 Re*gdg|NqdaNH_pY3;-e0QZ4`h literal 0 HcmV?d00001 diff --git a/stable/mkvtoolnix/9.0.0/ix_values.yaml b/stable/mkvtoolnix/9.0.0/ix_values.yaml new file mode 100644 index 00000000000..305a82c0067 --- /dev/null +++ b/stable/mkvtoolnix/9.0.0/ix_values.yaml @@ -0,0 +1,75 @@ +image: + repository: jlesage/mkvtoolnix + tag: v24.02.1@sha256:f90aca56685225fc0b63b9f6f076d334f375102631131b01d8c059af24a2bf5f + pullPolicy: IfNotPresent +service: + main: + ports: + main: + port: 10236 + targetPort: 5800 + vnc: + enabled: true + ports: + vnc: + enabled: true + port: 10237 + targetPort: 5900 +mkvtoolnix: + # General Settings + KEEP_APP_RUNNING: false + # GUI Settings + DISPLAY_WIDTH: 1280 + DISPLAY_HEIGHT: 768 + DARK_MODE: false + # App Settings + SECURE_CONNECTION: false + ENABLE_CJK_FONT: false +configmap: + mkvtoolnix: + enabled: true + data: + ENABLE_CJK_FONT: '{{ ternary "1" "0" .Values.mkvtoolnix.ENABLE_CJK_FONT }}' + KEEP_APP_RUNNING: '{{ ternary "1" "0" .Values.mkvtoolnix.KEEP_APP_RUNNING }}' + SECURE_CONNECTION: '{{ ternary "1" "0" .Values.mkvtoolnix.SECURE_CONNECTION }}' + DISPLAY_WIDTH: "{{ .Values.mkvtoolnix.DISPLAY_WIDTH }}" + DISPLAY_HEIGHT: "{{ .Values.mkvtoolnix.DISPLAY_HEIGHT }}" + DARK_MODE: '{{ ternary "1" "0" .Values.mkvtoolnix.DARK_MODE }}' +persistence: + config: + enabled: true + mountPath: "/config" + storage: + enabled: true + mountPath: "/storage" +portal: + open: + enabled: true +securityContext: + container: + readOnlyRootFilesystem: false + runAsNonRoot: false + runAsUser: 0 + runAsGroup: 0 +workload: + main: + podSpec: + containers: + main: + securityContext: + capabilities: + add: + - NET_BIND_SERVICE + - KILL + probes: + liveness: + type: tcp + readiness: + type: tcp + startup: + type: tcp + env: + VNC_PASSWORD: "" + envFrom: + - configMapRef: + name: "mkvtoolnix" diff --git a/stable/mkvtoolnix/9.0.0/questions.yaml b/stable/mkvtoolnix/9.0.0/questions.yaml new file mode 100644 index 00000000000..6c34342788a --- /dev/null +++ b/stable/mkvtoolnix/9.0.0/questions.yaml @@ -0,0 +1,3221 @@ +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: Backup Configuration + description: Configure Velero Backup Schedule + - name: Advanced + description: Advanced Configuration + - name: Postgresql + description: Postgresql + - name: Documentation + description: Documentation +portals: + open: + protocols: + - "$kubernetes-resource_configmap_tcportal-open_protocol" + host: + - "$kubernetes-resource_configmap_tcportal-open_host" + ports: + - "$kubernetes-resource_configmap_tcportal-open_port" +questions: + # Portal + - 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: env + group: "App Configuration" + label: "Image Environment" + schema: + additional_attrs: true + type: dict + attrs: + - variable: VNC_PASSWORD + label: "VNC_PASSWORD" + description: "Password needed to connect to the application's GUI. See the VNC Password section for more details." + schema: + type: string + private: true + default: "" + - 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: mkvtoolnix + group: "App Configuration" + label: "MKVToolNix Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: ENABLE_CJK_FONT + label: "ENABLE_CJK_FONT" + description: "When set to true, open-source computer font WenQuanYi Zen Hei is installed. " + schema: + type: boolean + default: false + - variable: KEEP_APP_RUNNING + label: "KEEP_APP_RUNNING" + description: "When set to true, the application will be automatically restarted if it crashes or if a user quits it." + schema: + type: boolean + default: false + - variable: gui + label: "GUI Settings" + description: "Always read description before changing a value here. Also refer to README" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: DISPLAY_WIDTH + label: "DISPLAY_WIDTH" + description: "Width (in pixels) of the application's window." + schema: + type: int + default: 1280 + required: true + - variable: DISPLAY_HEIGHT + label: "DISPLAY_HEIGHT" + description: "Height (in pixels) of the application's window." + schema: + type: int + default: 768 + required: true + - variable: SECURE_CONNECTION + label: "SECURE_CONNECTION" + description: "When set to true, an encrypted connection is used to access the application's GUI (either via a web browser or VNC client). See the Security section for more details." + schema: + type: boolean + default: false + - variable: DARK_MODE + label: "DARK_MODE" + description: "When set to true, mkvtoolnix UI is changed to Dark Mode" + schema: + type: boolean + default: false + - variable: TZ + label: Timezone + group: "General Settings" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: podOptions + group: "General Settings" + label: "Global Pod Options (Advanced)" + schema: + additional_attrs: true + type: dict + attrs: + - variable: expertPodOpts + label: "Expert - Pod Options" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + label: "Host Networking" + schema: + type: boolean + default: false + - variable: dnsConfig + label: "DNS Configuration" + schema: + type: dict + additional_attrs: true + attrs: + - variable: options + label: "Options" + schema: + type: list + default: [{"name": "ndots", "value": "1"}] + items: + - variable: optionsEntry + label: "Option Entry" + schema: + type: dict + additional_attrs: true + attrs: + - variable: name + label: "Name" + schema: + type: string + required: true + - variable: value + label: "Value" + schema: + type: string + - variable: nameservers + label: "Nameservers" + schema: + type: list + default: [] + items: + - variable: nsEntry + label: "Nameserver Entry" + schema: + type: string + required: true + - variable: searches + label: "Searches" + schema: + type: list + default: [] + items: + - variable: searchEntry + label: "Search Entry" + schema: + type: string + required: true + + - variable: imagePullSecretList + group: "General Settings" + label: "Image Pull Secrets" + schema: + type: list + default: [] + items: + - variable: pullsecretentry + label: "Pull Secret" + schema: + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: true + - variable: data + label: Data + 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 + private: 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: 10236 + required: true + - variable: vnc + label: "VNC Service" + description: "VNC 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: vnc + label: "TCP 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: 10237 + required: true + - variable: serviceexpert + group: Networking and Services + label: Show Expert Config + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: scaleExternalInterface + description: Add External Interfaces + label: Add external Interfaces + group: Networking + schema: + type: list + items: + - variable: interfaceConfiguration + description: Interface Configuration + label: Interface Configuration + schema: + additional_attrs: true + type: dict + $ref: + - "normalize/interfaceConfiguration" + attrs: + - variable: hostInterface + description: Please Specify Host Interface + label: Host Interface + schema: + type: string + required: true + $ref: + - "definitions/interface" + - variable: ipam + description: Define how IP Address will be managed + label: IP Address Management + schema: + additional_attrs: true + type: dict + required: true + attrs: + - variable: type + description: Specify type for IPAM + label: IPAM Type + schema: + type: string + required: true + enum: + - value: dhcp + description: Use DHCP + - value: static + description: Use Static IP + - variable: staticIPConfigurations + label: Static IP Addresses + schema: + type: list + show_if: [["type", "=", "static"]] + items: + - variable: staticIP + label: Static IP + schema: + type: ipaddr + cidr: true + - variable: staticRoutes + label: Static Routes + schema: + type: list + show_if: [["type", "=", "static"]] + items: + - variable: staticRouteConfiguration + label: Static Route Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: destination + label: Destination + schema: + type: ipaddr + cidr: true + required: true + - variable: gateway + label: Gateway + schema: + type: ipaddr + cidr: false + required: true + - variable: serviceList + label: Add Manual Custom Services + group: Networking and Services + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: Custom Service + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the service + schema: + type: boolean + default: true + hidden: true + - variable: name + label: Name + schema: + type: string + default: "" + - variable: type + label: Service Type + description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: LoadBalancer + enum: + - value: LoadBalancer + description: LoadBalancer (Expose Ports) + - value: ClusterIP + description: ClusterIP (Do Not Expose Ports) + - value: Simple + description: Deprecated CHANGE THIS + - variable: loadBalancerIP + label: LoadBalancer IP + description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: advancedsvcset + label: Show Advanced Service Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + type: list + default: [] + items: + - variable: externalIP + label: External IP + schema: + type: string + - variable: ipFamilyPolicy + label: IP Family Policy + description: Specify the IP Policy + schema: + type: string + default: SingleStack + enum: + - value: SingleStack + description: SingleStack + - value: PreferDualStack + description: PreferDualStack + - value: RequireDualStack + description: RequireDualStack + - variable: ipFamilies + label: IP Families + description: (Advanced) The IP Families that should be used + schema: + type: list + default: [] + items: + - variable: ipFamily + label: IP Family + schema: + type: string + - variable: portsList + label: Additional Service Ports + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: Custom ports + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the Port + schema: + type: boolean + default: true + hidden: true + - variable: name + label: Port Name + schema: + type: string + default: "" + - variable: protocol + label: Port Type + schema: + type: string + default: tcp + enum: + - value: http + description: HTTP + - value: https + description: HTTPS + - value: tcp + description: TCP + - value: udp + description: UDP + - variable: targetPort + label: Target Port + description: This port exposes the container port on the service + schema: + type: int + required: true + - variable: port + label: Container Port + schema: + type: int + required: true + - variable: persistence + label: Integrated Persistent Storage + description: Integrated Persistent Storage + group: Storage and Persistence + schema: + additional_attrs: true + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: pvc + enum: + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: emptyDir + description: emptyDir + - value: nfs + description: NFS Share + - value: iscsi + description: iSCSI Share + - variable: server + label: NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: path + label: Path on NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: iscsi + label: iSCSI Options + schema: + show_if: [["type", "=", "iscsi"]] + type: dict + additional_attrs: true + attrs: + - variable: targetPortal + label: targetPortal + schema: + type: string + required: true + default: "" + - variable: iqn + label: iqn + schema: + type: string + required: true + default: "" + - variable: lun + label: lun + schema: + type: int + default: 0 + - variable: authSession + label: authSession + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: authDiscovery + label: authDiscovery + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + + - variable: autoPermissions + label: Automatic Permissions Configuration + description: Automatically set permissions + schema: + show_if: [["type", "!=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: chown + label: Run CHOWN + description: | + It will run CHOWN on the path with the given fsGroup + schema: + type: boolean + default: false + - variable: chmod + label: Run CHMOD + description: | + It will run CHMOD on the path with the given value
+ Format should be 3 digits, e.g. 770 + schema: + type: string + valid_chars: '[0-9]{3}' + default: "" + - variable: recursive + label: Recursive + description: | + It will run CHOWN and CHMOD recursively + schema: + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - variable: hostPath + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: medium + label: EmptyDir Medium + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: Memory + description: Memory + - variable: size + label: Size quotum of Storage (Do NOT REDUCE after installation) + description: This value can ONLY be INCREASED after the installation + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: storageClass + label: 'storageClass (Advanced)' + description: 'sets the storageClass to something other than iX default. Only for advanced usecases!' + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "" + - variable: static + label: 'Static Fixed PVC Bindings (Experimental)' + description: Link a PVC to a specific storage location + schema: + show_if: [["type", "=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: mode + label: mode + description: | + disabled: use normal dynamic PVCs + smb: connect to an SMB share + nfs: connect to an NFS share + schema: + type: string + default: "disabled" + enum: + - value: disabled + description: disabled + - value: smb + description: smb + - value: nfs + description: nfs + - variable: server + label: Server + description: server to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "myserver" + - variable: share + label: Share + description: share to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "/myshare" + - variable: user + label: User + description: connecting user + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "myuser" + - variable: domain + label: Domain + description: user domain + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: password + label: Password + description: connecting password + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: volumeSnapshots + label: 'Volume Snapshots (Experimental)' + description: Add an entry to the list to force creation of a volumeSnapshot of this PVC + schema: + show_if: [["type", "=", "pvc"]] + type: list + default: [] + items: + - variable: volumeSnapshotEntry + label: Custom volumeSnapshot + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: 'WARNING: renaming this, means deletion of the snapshot with the old name!' + schema: + type: string + default: "mysnapshot" + required: true + - variable: volumeSnapshotClassName + label: 'volumeSnapshot Class Name (Advanced)' + description: For use with PVCs using a non-default storageClass + schema: + type: string + default: "" + - variable: storage + label: "App Storage" + description: "Application Storage." + 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: 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/mkvtoolnix/9.0.0/templates/NOTES.txt b/stable/mkvtoolnix/9.0.0/templates/NOTES.txt new file mode 100644 index 00000000000..efcb74cb772 --- /dev/null +++ b/stable/mkvtoolnix/9.0.0/templates/NOTES.txt @@ -0,0 +1 @@ +{{- include "tc.v1.common.lib.chart.notes" $ -}} diff --git a/stable/mkvtoolnix/9.0.0/templates/common.yaml b/stable/mkvtoolnix/9.0.0/templates/common.yaml new file mode 100644 index 00000000000..b51394e00a4 --- /dev/null +++ b/stable/mkvtoolnix/9.0.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "tc.v1.common.loader.all" . }} diff --git a/stable/mkvtoolnix/9.0.0/values.yaml b/stable/mkvtoolnix/9.0.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/palworld/1.0.0/CHANGELOG.md b/stable/palworld/1.0.0/CHANGELOG.md deleted file mode 100644 index f7daf3fdc4b..00000000000 --- a/stable/palworld/1.0.0/CHANGELOG.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Changelog ---- - -**Important:** -*for the complete changelog, please refer to the website* - - - -## [palworld-1.0.0](https://github.com/truecharts/charts/compare/palworld-0.1.5...palworld-1.0.0) (2024-02-06) \ No newline at end of file diff --git a/stable/palworld/1.0.0/app-changelog.md b/stable/palworld/1.0.0/app-changelog.md deleted file mode 100644 index 66d1de52686..00000000000 --- a/stable/palworld/1.0.0/app-changelog.md +++ /dev/null @@ -1,3 +0,0 @@ - - -## [palworld-1.0.0](https://github.com/truecharts/charts/compare/palworld-0.1.5...palworld-1.0.0) (2024-02-06) \ No newline at end of file diff --git a/stable/palworld/1.0.1/CHANGELOG.md b/stable/palworld/1.0.1/CHANGELOG.md new file mode 100644 index 00000000000..3ab55301538 --- /dev/null +++ b/stable/palworld/1.0.1/CHANGELOG.md @@ -0,0 +1,19 @@ +--- +title: Changelog +--- + +**Important:** +*for the complete changelog, please refer to the website* + + + +## [palworld-1.0.1](https://github.com/truecharts/charts/compare/palworld-1.0.0...palworld-1.0.1) (2024-02-10) + +### Docs + + + +- fix a typo in questions ([#18012](https://github.com/truecharts/charts/issues/18012)) + + +## [palworld-1.0.0](https://github.com/truecharts/charts/compare/palworld-0.1.5...palworld-1.0.0) (2024-02-06) \ No newline at end of file diff --git a/stable/palworld/1.0.0/Chart.yaml b/stable/palworld/1.0.1/Chart.yaml similarity index 98% rename from stable/palworld/1.0.0/Chart.yaml rename to stable/palworld/1.0.1/Chart.yaml index 513b7821993..a28571bcbe6 100644 --- a/stable/palworld/1.0.0/Chart.yaml +++ b/stable/palworld/1.0.1/Chart.yaml @@ -32,7 +32,7 @@ name: palworld sources: - https://github.com/ich777/docker-steamcmd-server/tree/palworld - https://github.com/truecharts/charts/tree/master/charts/stable/palworld - - https://hub.docker.com/r/outdead/rcon - https://ghcr.io/ich777/steamcmd + - https://hub.docker.com/r/outdead/rcon type: application -version: 1.0.0 +version: 1.0.1 diff --git a/stable/palworld/1.0.1/README.md b/stable/palworld/1.0.1/README.md new file mode 100644 index 00000000000..84567c0f029 --- /dev/null +++ b/stable/palworld/1.0.1/README.md @@ -0,0 +1,28 @@ +--- +title: README +--- + +## General Info + +TrueCharts can be installed as both _normal_ Helm Charts or as Apps on TrueNAS SCALE. +However only installations using the TrueNAS SCALE Apps system are supported. + +For more information about this App, please check the docs on the TrueCharts [website](https://truecharts.org/charts/stable/palworld) + +**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/palworld/1.0.1/app-changelog.md b/stable/palworld/1.0.1/app-changelog.md new file mode 100644 index 00000000000..70daed1f16f --- /dev/null +++ b/stable/palworld/1.0.1/app-changelog.md @@ -0,0 +1,9 @@ + + +## [palworld-1.0.1](https://github.com/truecharts/charts/compare/palworld-1.0.0...palworld-1.0.1) (2024-02-10) + +### Docs + + + +- fix a typo in questions ([#18012](https://github.com/truecharts/charts/issues/18012)) \ No newline at end of file diff --git a/stable/palworld/1.0.0/app-readme.md b/stable/palworld/1.0.1/app-readme.md similarity index 100% rename from stable/palworld/1.0.0/app-readme.md rename to stable/palworld/1.0.1/app-readme.md diff --git a/stable/palworld/1.0.0/charts/common-17.2.26.tgz b/stable/palworld/1.0.1/charts/common-17.2.26.tgz similarity index 100% rename from stable/palworld/1.0.0/charts/common-17.2.26.tgz rename to stable/palworld/1.0.1/charts/common-17.2.26.tgz diff --git a/stable/palworld/1.0.0/ix_values.yaml b/stable/palworld/1.0.1/ix_values.yaml similarity index 100% rename from stable/palworld/1.0.0/ix_values.yaml rename to stable/palworld/1.0.1/ix_values.yaml diff --git a/stable/palworld/1.0.0/questions.yaml b/stable/palworld/1.0.1/questions.yaml similarity index 99% rename from stable/palworld/1.0.0/questions.yaml rename to stable/palworld/1.0.1/questions.yaml index a6dd34d77ad..0a400b2093e 100644 --- a/stable/palworld/1.0.0/questions.yaml +++ b/stable/palworld/1.0.1/questions.yaml @@ -23,6 +23,8 @@ groups: description: Metrics - name: Addons description: Addon Configuration + - name: Backup Configuration + description: Configure Velero Backup Schedule - name: Advanced description: Advanced Configuration - name: Postgresql @@ -220,7 +222,7 @@ questions: private: true default: "" - variable: auto_reset_guild_time_no_online_players - label: Auto Reset Guid Time No Online Players + label: Auto Reset Guild Time No Online Players schema: type: string default: "72.000000" diff --git a/stable/palworld/1.0.1/templates/NOTES.txt b/stable/palworld/1.0.1/templates/NOTES.txt new file mode 100644 index 00000000000..efcb74cb772 --- /dev/null +++ b/stable/palworld/1.0.1/templates/NOTES.txt @@ -0,0 +1 @@ +{{- include "tc.v1.common.lib.chart.notes" $ -}} diff --git a/stable/palworld/1.0.0/templates/_configmap.tpl b/stable/palworld/1.0.1/templates/_configmap.tpl similarity index 100% rename from stable/palworld/1.0.0/templates/_configmap.tpl rename to stable/palworld/1.0.1/templates/_configmap.tpl diff --git a/stable/palworld/1.0.0/templates/common.yaml b/stable/palworld/1.0.1/templates/common.yaml similarity index 100% rename from stable/palworld/1.0.0/templates/common.yaml rename to stable/palworld/1.0.1/templates/common.yaml diff --git a/stable/palworld/1.0.1/values.yaml b/stable/palworld/1.0.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d