From f7b6bb1dbfe432364dbe2ebabac5086666dc30dc Mon Sep 17 00:00:00 2001 From: TrueCharts-Bot Date: Wed, 6 Dec 2023 18:28:07 +0000 Subject: [PATCH] Commit new Chart releases for TrueCharts Signed-off-by: TrueCharts-Bot --- enterprise/grafana/9.0.43/app-changelog.md | 9 - .../grafana/{9.0.43 => 9.0.44}/CHANGELOG.md | 18 +- .../grafana/{9.0.43 => 9.0.44}/Chart.yaml | 4 +- enterprise/grafana/{9.0.43 => 9.0.44}/LICENSE | 0 .../grafana/{9.0.43 => 9.0.44}/README.md | 0 enterprise/grafana/9.0.44/app-changelog.md | 9 + .../grafana/{9.0.43 => 9.0.44}/app-readme.md | 0 .../charts/common-14.3.5.tgz | Bin .../grafana/{9.0.43 => 9.0.44}/ix_values.yaml | 2 +- .../grafana/{9.0.43 => 9.0.44}/questions.yaml | 275 +- .../{9.0.43 => 9.0.44}/templates/NOTES.txt | 0 .../{9.0.43 => 9.0.44}/templates/common.yaml | 0 .../grafana/{9.0.43 => 9.0.44}/values.yaml | 0 stable/booksonic-air/10.0.24/CHANGELOG.md | 99 + stable/booksonic-air/10.0.24/Chart.yaml | 38 + .../10.0.24}/README.md | 0 stable/booksonic-air/10.0.24/app-changelog.md | 9 + stable/booksonic-air/10.0.24/app-readme.md | 8 + .../10.0.24}/charts/common-14.3.5.tgz | Bin stable/booksonic-air/10.0.24/ix_values.yaml | 40 + stable/booksonic-air/10.0.24/questions.yaml | 2639 ++++++++++++++++ .../10.0.24}/templates/NOTES.txt | 0 .../10.0.24}/templates/common.yaml | 0 .../10.0.24}/values.yaml | 0 stable/drawio/6.0.28/app-changelog.md | 11 - stable/drawio/{6.0.28 => 6.0.29}/CHANGELOG.md | 18 +- stable/drawio/{6.0.28 => 6.0.29}/Chart.yaml | 6 +- .../6.0.25 => drawio/6.0.29}/README.md | 0 stable/drawio/6.0.29/app-changelog.md | 9 + .../drawio/{6.0.28 => 6.0.29}/app-readme.md | 0 .../6.0.29}/charts/common-14.3.5.tgz | Bin .../drawio/{6.0.28 => 6.0.29}/ix_values.yaml | 2 +- .../7.0.12 => drawio/6.0.29}/questions.yaml | 400 ++- .../6.0.29}/templates/NOTES.txt | 0 .../6.0.29}/templates/common.yaml | 0 .../6.0.25 => drawio/6.0.29}/values.yaml | 0 stable/invidious/6.0.25/app-changelog.md | 9 - .../invidious/{6.0.25 => 6.0.26}/CHANGELOG.md | 18 +- .../invidious/{6.0.25 => 6.0.26}/Chart.yaml | 2 +- stable/invidious/{6.0.25 => 6.0.26}/LICENSE | 0 .../9.0.58 => invidious/6.0.26}/README.md | 0 stable/invidious/6.0.26/app-changelog.md | 9 + .../{6.0.25 => 6.0.26}/app-readme.md | 0 .../6.0.26}/charts/common-14.3.5.tgz | Bin .../{6.0.25 => 6.0.26}/ix_values.yaml | 2 +- .../{6.0.25 => 6.0.26}/questions.yaml | 0 .../{6.0.25 => 6.0.26}/templates/_config.tpl | 0 .../{6.0.25 => 6.0.26}/templates/common.yaml | 0 .../9.0.58 => invidious/6.0.26}/values.yaml | 0 stable/littlelink/10.0.47/CHANGELOG.md | 99 + stable/littlelink/10.0.47/Chart.yaml | 36 + .../7.0.12 => littlelink/10.0.47}/README.md | 0 stable/littlelink/10.0.47/app-changelog.md | 9 + stable/littlelink/10.0.47/app-readme.md | 8 + .../10.0.47}/charts/common-14.3.5.tgz | Bin stable/littlelink/10.0.47/ix_values.yaml | 41 + .../10.0.47}/questions.yaml | 525 +++- .../10.0.47}/templates/NOTES.txt | 0 .../10.0.47/templates/_configmap.tpl | 195 ++ .../littlelink/10.0.47/templates/common.yaml | 11 + .../7.0.12 => littlelink/10.0.47}/values.yaml | 0 stable/mattermost/9.0.58/app-changelog.md | 9 - .../{9.0.58 => 9.0.59}/CHANGELOG.md | 18 +- .../mattermost/{9.0.58 => 9.0.59}/Chart.yaml | 2 +- .../8.0.286 => mattermost/9.0.59}/README.md | 0 stable/mattermost/9.0.59/app-changelog.md | 9 + .../{9.0.58 => 9.0.59}/app-readme.md | 0 .../9.0.59}/charts/common-14.3.5.tgz | Bin .../{9.0.58 => 9.0.59}/ix_values.yaml | 2 +- .../{9.0.58 => 9.0.59}/questions.yaml | 0 .../9.0.59}/templates/NOTES.txt | 0 .../{9.0.58 => 9.0.59}/templates/common.yaml | 0 .../8.0.286 => mattermost/9.0.59}/values.yaml | 0 stable/remmina/7.0.12/app-changelog.md | 11 - .../remmina/{7.0.12 => 7.0.13}/CHANGELOG.md | 18 +- stable/remmina/{7.0.12 => 7.0.13}/Chart.yaml | 4 +- stable/remmina/7.0.13/README.md | 27 + stable/remmina/7.0.13/app-changelog.md | 9 + .../remmina/{7.0.12 => 7.0.13}/app-readme.md | 0 .../remmina/7.0.13/charts/common-14.3.5.tgz | Bin 0 -> 73073 bytes .../remmina/{7.0.12 => 7.0.13}/ix_values.yaml | 2 +- stable/remmina/7.0.13/questions.yaml | 2641 +++++++++++++++++ stable/remmina/7.0.13/templates/NOTES.txt | 1 + .../{7.0.12 => 7.0.13}/templates/common.yaml | 0 stable/remmina/7.0.13/values.yaml | 0 stable/rsshub/8.0.286/app-changelog.md | 9 - .../rsshub/{8.0.286 => 8.0.287}/CHANGELOG.md | 18 +- stable/rsshub/{8.0.286 => 8.0.287}/Chart.yaml | 2 +- stable/rsshub/8.0.287/README.md | 27 + stable/rsshub/8.0.287/app-changelog.md | 9 + .../rsshub/{8.0.286 => 8.0.287}/app-readme.md | 0 .../rsshub/8.0.287/charts/common-14.3.5.tgz | Bin 0 -> 73073 bytes .../charts/redis-6.0.66.tgz | Bin .../{8.0.286 => 8.0.287}/ix_values.yaml | 2 +- .../{8.0.286 => 8.0.287}/questions.yaml | 0 stable/rsshub/8.0.287/templates/NOTES.txt | 1 + stable/rsshub/8.0.287/templates/common.yaml | 1 + stable/rsshub/8.0.287/values.yaml | 0 98 files changed, 7045 insertions(+), 337 deletions(-) delete mode 100644 enterprise/grafana/9.0.43/app-changelog.md rename enterprise/grafana/{9.0.43 => 9.0.44}/CHANGELOG.md (89%) rename enterprise/grafana/{9.0.43 => 9.0.44}/Chart.yaml (98%) rename enterprise/grafana/{9.0.43 => 9.0.44}/LICENSE (100%) rename enterprise/grafana/{9.0.43 => 9.0.44}/README.md (100%) create mode 100644 enterprise/grafana/9.0.44/app-changelog.md rename enterprise/grafana/{9.0.43 => 9.0.44}/app-readme.md (100%) rename enterprise/grafana/{9.0.43 => 9.0.44}/charts/common-14.3.5.tgz (100%) rename enterprise/grafana/{9.0.43 => 9.0.44}/ix_values.yaml (96%) rename enterprise/grafana/{9.0.43 => 9.0.44}/questions.yaml (90%) rename enterprise/grafana/{9.0.43 => 9.0.44}/templates/NOTES.txt (100%) rename enterprise/grafana/{9.0.43 => 9.0.44}/templates/common.yaml (100%) rename enterprise/grafana/{9.0.43 => 9.0.44}/values.yaml (100%) create mode 100644 stable/booksonic-air/10.0.24/CHANGELOG.md create mode 100644 stable/booksonic-air/10.0.24/Chart.yaml rename stable/{drawio/6.0.28 => booksonic-air/10.0.24}/README.md (100%) create mode 100644 stable/booksonic-air/10.0.24/app-changelog.md create mode 100644 stable/booksonic-air/10.0.24/app-readme.md rename stable/{drawio/6.0.28 => booksonic-air/10.0.24}/charts/common-14.3.5.tgz (100%) create mode 100644 stable/booksonic-air/10.0.24/ix_values.yaml create mode 100644 stable/booksonic-air/10.0.24/questions.yaml rename stable/{drawio/6.0.28 => booksonic-air/10.0.24}/templates/NOTES.txt (100%) rename stable/{drawio/6.0.28 => booksonic-air/10.0.24}/templates/common.yaml (100%) rename stable/{drawio/6.0.28 => booksonic-air/10.0.24}/values.yaml (100%) delete mode 100644 stable/drawio/6.0.28/app-changelog.md rename stable/drawio/{6.0.28 => 6.0.29}/CHANGELOG.md (89%) rename stable/drawio/{6.0.28 => 6.0.29}/Chart.yaml (96%) rename stable/{invidious/6.0.25 => drawio/6.0.29}/README.md (100%) create mode 100644 stable/drawio/6.0.29/app-changelog.md rename stable/drawio/{6.0.28 => 6.0.29}/app-readme.md (100%) rename stable/{invidious/6.0.25 => drawio/6.0.29}/charts/common-14.3.5.tgz (100%) rename stable/drawio/{6.0.28 => 6.0.29}/ix_values.yaml (87%) rename stable/{remmina/7.0.12 => drawio/6.0.29}/questions.yaml (93%) rename stable/{mattermost/9.0.58 => drawio/6.0.29}/templates/NOTES.txt (100%) rename stable/{rsshub/8.0.286 => drawio/6.0.29}/templates/common.yaml (100%) rename stable/{invidious/6.0.25 => drawio/6.0.29}/values.yaml (100%) delete mode 100644 stable/invidious/6.0.25/app-changelog.md rename stable/invidious/{6.0.25 => 6.0.26}/CHANGELOG.md (89%) rename stable/invidious/{6.0.25 => 6.0.26}/Chart.yaml (98%) rename stable/invidious/{6.0.25 => 6.0.26}/LICENSE (100%) rename stable/{mattermost/9.0.58 => invidious/6.0.26}/README.md (100%) create mode 100644 stable/invidious/6.0.26/app-changelog.md rename stable/invidious/{6.0.25 => 6.0.26}/app-readme.md (100%) rename stable/{mattermost/9.0.58 => invidious/6.0.26}/charts/common-14.3.5.tgz (100%) rename stable/invidious/{6.0.25 => 6.0.26}/ix_values.yaml (97%) rename stable/invidious/{6.0.25 => 6.0.26}/questions.yaml (100%) rename stable/invidious/{6.0.25 => 6.0.26}/templates/_config.tpl (100%) rename stable/invidious/{6.0.25 => 6.0.26}/templates/common.yaml (100%) rename stable/{mattermost/9.0.58 => invidious/6.0.26}/values.yaml (100%) create mode 100644 stable/littlelink/10.0.47/CHANGELOG.md create mode 100644 stable/littlelink/10.0.47/Chart.yaml rename stable/{remmina/7.0.12 => littlelink/10.0.47}/README.md (100%) create mode 100644 stable/littlelink/10.0.47/app-changelog.md create mode 100644 stable/littlelink/10.0.47/app-readme.md rename stable/{remmina/7.0.12 => littlelink/10.0.47}/charts/common-14.3.5.tgz (100%) create mode 100644 stable/littlelink/10.0.47/ix_values.yaml rename stable/{drawio/6.0.28 => littlelink/10.0.47}/questions.yaml (86%) rename stable/{remmina/7.0.12 => littlelink/10.0.47}/templates/NOTES.txt (100%) create mode 100644 stable/littlelink/10.0.47/templates/_configmap.tpl create mode 100644 stable/littlelink/10.0.47/templates/common.yaml rename stable/{remmina/7.0.12 => littlelink/10.0.47}/values.yaml (100%) delete mode 100644 stable/mattermost/9.0.58/app-changelog.md rename stable/mattermost/{9.0.58 => 9.0.59}/CHANGELOG.md (93%) rename stable/mattermost/{9.0.58 => 9.0.59}/Chart.yaml (98%) rename stable/{rsshub/8.0.286 => mattermost/9.0.59}/README.md (100%) create mode 100644 stable/mattermost/9.0.59/app-changelog.md rename stable/mattermost/{9.0.58 => 9.0.59}/app-readme.md (100%) rename stable/{rsshub/8.0.286 => mattermost/9.0.59}/charts/common-14.3.5.tgz (100%) rename stable/mattermost/{9.0.58 => 9.0.59}/ix_values.yaml (92%) rename stable/mattermost/{9.0.58 => 9.0.59}/questions.yaml (100%) rename stable/{rsshub/8.0.286 => mattermost/9.0.59}/templates/NOTES.txt (100%) rename stable/mattermost/{9.0.58 => 9.0.59}/templates/common.yaml (100%) rename stable/{rsshub/8.0.286 => mattermost/9.0.59}/values.yaml (100%) delete mode 100644 stable/remmina/7.0.12/app-changelog.md rename stable/remmina/{7.0.12 => 7.0.13}/CHANGELOG.md (88%) rename stable/remmina/{7.0.12 => 7.0.13}/Chart.yaml (98%) create mode 100644 stable/remmina/7.0.13/README.md create mode 100644 stable/remmina/7.0.13/app-changelog.md rename stable/remmina/{7.0.12 => 7.0.13}/app-readme.md (100%) create mode 100644 stable/remmina/7.0.13/charts/common-14.3.5.tgz rename stable/remmina/{7.0.12 => 7.0.13}/ix_values.yaml (82%) create mode 100644 stable/remmina/7.0.13/questions.yaml create mode 100644 stable/remmina/7.0.13/templates/NOTES.txt rename stable/remmina/{7.0.12 => 7.0.13}/templates/common.yaml (100%) create mode 100644 stable/remmina/7.0.13/values.yaml delete mode 100644 stable/rsshub/8.0.286/app-changelog.md rename stable/rsshub/{8.0.286 => 8.0.287}/CHANGELOG.md (91%) rename stable/rsshub/{8.0.286 => 8.0.287}/Chart.yaml (98%) create mode 100644 stable/rsshub/8.0.287/README.md create mode 100644 stable/rsshub/8.0.287/app-changelog.md rename stable/rsshub/{8.0.286 => 8.0.287}/app-readme.md (100%) create mode 100644 stable/rsshub/8.0.287/charts/common-14.3.5.tgz rename stable/rsshub/{8.0.286 => 8.0.287}/charts/redis-6.0.66.tgz (100%) rename stable/rsshub/{8.0.286 => 8.0.287}/ix_values.yaml (95%) rename stable/rsshub/{8.0.286 => 8.0.287}/questions.yaml (100%) create mode 100644 stable/rsshub/8.0.287/templates/NOTES.txt create mode 100644 stable/rsshub/8.0.287/templates/common.yaml create mode 100644 stable/rsshub/8.0.287/values.yaml diff --git a/enterprise/grafana/9.0.43/app-changelog.md b/enterprise/grafana/9.0.43/app-changelog.md deleted file mode 100644 index 07c6442873e..00000000000 --- a/enterprise/grafana/9.0.43/app-changelog.md +++ /dev/null @@ -1,9 +0,0 @@ - - -## [grafana-9.0.43](https://github.com/truecharts/charts/compare/grafana-9.0.42...grafana-9.0.43) (2023-12-03) - -### Chore - -- bump everything to ensure catalog has latest versions - - \ No newline at end of file diff --git a/enterprise/grafana/9.0.43/CHANGELOG.md b/enterprise/grafana/9.0.44/CHANGELOG.md similarity index 89% rename from enterprise/grafana/9.0.43/CHANGELOG.md rename to enterprise/grafana/9.0.44/CHANGELOG.md index 65b17ed796a..7cbeadbc678 100644 --- a/enterprise/grafana/9.0.43/CHANGELOG.md +++ b/enterprise/grafana/9.0.44/CHANGELOG.md @@ -4,6 +4,15 @@ +## [grafana-9.0.44](https://github.com/truecharts/charts/compare/grafana-9.0.43...grafana-9.0.44) (2023-12-06) + +### Chore + +- update container image bitnami/grafana to 10.2.2[@cf16036](https://github.com/cf16036) ([#15807](https://github.com/truecharts/charts/issues/15807)) + + + + ## [grafana-9.0.43](https://github.com/truecharts/charts/compare/grafana-9.0.42...grafana-9.0.43) (2023-12-03) ### Chore @@ -88,12 +97,3 @@ ## [grafana-9.0.34](https://github.com/truecharts/charts/compare/grafana-9.0.33...grafana-9.0.34) (2023-11-08) - -### Chore - -- update container image tccr.io/truecharts/grafana to v10.2.0 ([#14421](https://github.com/truecharts/charts/issues/14421)) - - - - -## [grafana-9.0.33](https://github.com/truecharts/charts/compare/grafana-9.0.32...grafana-9.0.33) (2023-11-06) diff --git a/enterprise/grafana/9.0.43/Chart.yaml b/enterprise/grafana/9.0.44/Chart.yaml similarity index 98% rename from enterprise/grafana/9.0.43/Chart.yaml rename to enterprise/grafana/9.0.44/Chart.yaml index 97ed0dddc1c..ea63b285b0a 100644 --- a/enterprise/grafana/9.0.43/Chart.yaml +++ b/enterprise/grafana/9.0.44/Chart.yaml @@ -1,7 +1,7 @@ kubeVersion: ">=1.24.0" apiVersion: v2 name: grafana -version: 9.0.43 +version: 9.0.44 appVersion: 10.2.2 description: Grafana is an open source, feature rich metrics dashboard and graph editor @@ -10,10 +10,10 @@ home: https://truecharts.org/charts/enterprise/grafana icon: https://truecharts.org/img/hotlink-ok/chart-icons/grafana.png deprecated: false sources: + - https://hub.docker.com/r/bitnami/grafana - https://github.com/bitnami/bitnami-docker-grafana - https://grafana.com/ - https://github.com/truecharts/charts/tree/master/charts/enterprise/grafana - - https://hub.docker.com/r/bitnami/grafana maintainers: - name: TrueCharts email: info@truecharts.org diff --git a/enterprise/grafana/9.0.43/LICENSE b/enterprise/grafana/9.0.44/LICENSE similarity index 100% rename from enterprise/grafana/9.0.43/LICENSE rename to enterprise/grafana/9.0.44/LICENSE diff --git a/enterprise/grafana/9.0.43/README.md b/enterprise/grafana/9.0.44/README.md similarity index 100% rename from enterprise/grafana/9.0.43/README.md rename to enterprise/grafana/9.0.44/README.md diff --git a/enterprise/grafana/9.0.44/app-changelog.md b/enterprise/grafana/9.0.44/app-changelog.md new file mode 100644 index 00000000000..b5c23c5eb05 --- /dev/null +++ b/enterprise/grafana/9.0.44/app-changelog.md @@ -0,0 +1,9 @@ + + +## [grafana-9.0.44](https://github.com/truecharts/charts/compare/grafana-9.0.43...grafana-9.0.44) (2023-12-06) + +### Chore + +- update container image bitnami/grafana to 10.2.2[@cf16036](https://github.com/cf16036) ([#15807](https://github.com/truecharts/charts/issues/15807)) + + \ No newline at end of file diff --git a/enterprise/grafana/9.0.43/app-readme.md b/enterprise/grafana/9.0.44/app-readme.md similarity index 100% rename from enterprise/grafana/9.0.43/app-readme.md rename to enterprise/grafana/9.0.44/app-readme.md diff --git a/enterprise/grafana/9.0.43/charts/common-14.3.5.tgz b/enterprise/grafana/9.0.44/charts/common-14.3.5.tgz similarity index 100% rename from enterprise/grafana/9.0.43/charts/common-14.3.5.tgz rename to enterprise/grafana/9.0.44/charts/common-14.3.5.tgz diff --git a/enterprise/grafana/9.0.43/ix_values.yaml b/enterprise/grafana/9.0.44/ix_values.yaml similarity index 96% rename from enterprise/grafana/9.0.43/ix_values.yaml rename to enterprise/grafana/9.0.44/ix_values.yaml index 21fe1d5d9c5..433d31a4ed3 100644 --- a/enterprise/grafana/9.0.43/ix_values.yaml +++ b/enterprise/grafana/9.0.44/ix_values.yaml @@ -1,7 +1,7 @@ image: repository: bitnami/grafana pullPolicy: IfNotPresent - tag: 10.2.2@sha256:b611d3069b5396b5b9eabf48da0fc10c29c7fdd40f7cc3b500ca505ca4f81db9 + tag: 10.2.2@sha256:cf16036efbdf9192af02287492feca0ae1b470fdae2af30dd5d0c029ec447ae6 manifestManager: enabled: true securityContext: diff --git a/enterprise/grafana/9.0.43/questions.yaml b/enterprise/grafana/9.0.44/questions.yaml similarity index 90% rename from enterprise/grafana/9.0.43/questions.yaml rename to enterprise/grafana/9.0.44/questions.yaml index d860beeb0ee..dcd2197c50e 100644 --- a/enterprise/grafana/9.0.43/questions.yaml +++ b/enterprise/grafana/9.0.44/questions.yaml @@ -265,6 +265,44 @@ questions: schema: type: string required: true + + - variable: imagePullSecretList + group: "General Settings" + label: "Image Pull Secrets" + schema: + type: list + default: [] + items: + - variable: pullsecretentry + label: "Pull Secret" + schema: + type: dict + additional_attrs: true + attrs: + - variable: registry + label: "Registry" + schema: + type: string + required: true + default: "https://index.docker.io/v1/" + - variable: username + label: "Username" + schema: + type: string + required: true + default: "" + - variable: password + label: "Password" + schema: + type: string + required: true + default: "" + - variable: email + label: "Email" + schema: + type: string + required: true + default: "" - variable: service group: Networking and Services label: Configure Service(s) @@ -572,6 +610,8 @@ questions: description: emptyDir - value: nfs description: NFS Share + - value: iscsi + description: iSCSI Share - variable: server label: NFS Server schema: @@ -584,6 +624,83 @@ questions: 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 @@ -676,7 +793,7 @@ questions: type: string default: "disabled" enum: - - value: "disabled" + - value: disabled description: disabled - value: smb description: smb @@ -790,6 +907,82 @@ questions: 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 @@ -1038,6 +1231,46 @@ questions: type: string default: "" required: true + - variable: integration + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: homepage + label: Homepage + description: Connect ingress with Homepage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: name + label: Name + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: description + label: Description + description: defaults to chart description + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: group + label: Group + schema: + type: string + required: true + default: "default" + show_if: [["enabled", "=", true]] - variable: advanced label: Show Advanced Settings description: Advanced settings are not covered by TrueCharts Support @@ -1265,6 +1498,46 @@ questions: type: string show_if: [["certificateIssuer", "=", ""]] default: "" + - variable: integration + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: homepage + label: Homepage + description: Connect ingress with Homepage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: name + label: Name + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: description + label: Description + description: defaults to chart description + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: group + label: Group + schema: + type: string + required: true + default: "default" + show_if: [["enabled", "=", true]] - variable: entrypoint label: Traefik Entrypoint description: Entrypoint used by Traefik when using Traefik as Ingress Provider diff --git a/enterprise/grafana/9.0.43/templates/NOTES.txt b/enterprise/grafana/9.0.44/templates/NOTES.txt similarity index 100% rename from enterprise/grafana/9.0.43/templates/NOTES.txt rename to enterprise/grafana/9.0.44/templates/NOTES.txt diff --git a/enterprise/grafana/9.0.43/templates/common.yaml b/enterprise/grafana/9.0.44/templates/common.yaml similarity index 100% rename from enterprise/grafana/9.0.43/templates/common.yaml rename to enterprise/grafana/9.0.44/templates/common.yaml diff --git a/enterprise/grafana/9.0.43/values.yaml b/enterprise/grafana/9.0.44/values.yaml similarity index 100% rename from enterprise/grafana/9.0.43/values.yaml rename to enterprise/grafana/9.0.44/values.yaml diff --git a/stable/booksonic-air/10.0.24/CHANGELOG.md b/stable/booksonic-air/10.0.24/CHANGELOG.md new file mode 100644 index 00000000000..3bb9f5b6d67 --- /dev/null +++ b/stable/booksonic-air/10.0.24/CHANGELOG.md @@ -0,0 +1,99 @@ +**Important:** +*for the complete changelog, please refer to the website* + + + + +## [booksonic-air-10.0.24](https://github.com/truecharts/charts/compare/booksonic-air-10.0.23...booksonic-air-10.0.24) (2023-12-06) + +### Chore + +- update container image ghcr.io/linuxserver/booksonic-air to 2201.1.0[@50f6dc6](https://github.com/50f6dc6) ([#15809](https://github.com/truecharts/charts/issues/15809)) + + + + +## [booksonic-air-10.0.23](https://github.com/truecharts/charts/compare/booksonic-air-10.0.22...booksonic-air-10.0.23) (2023-12-03) + +### Chore + +- bump everything to ensure catalog has latest versions + - fix annotations again + - update annotations + - cleanup chart.yaml and add min-max scale version + + + + + + + + + + + + +## [booksonic-air-10.0.22](https://github.com/truecharts/charts/compare/booksonic-air-10.0.21...booksonic-air-10.0.22) (2023-11-23) + +### Chore + +- update container image ghcr.io/linuxserver/booksonic-air to 2201.1.0[@1e9cbad](https://github.com/1e9cbad) ([#15251](https://github.com/truecharts/charts/issues/15251)) + + + + +## [booksonic-air-10.0.21](https://github.com/truecharts/charts/compare/booksonic-air-10.0.20...booksonic-air-10.0.21) (2023-11-17) + + + + +## [booksonic-air-10.0.20](https://github.com/truecharts/charts/compare/booksonic-air-10.0.19...booksonic-air-10.0.20) (2023-11-15) + +### Chore + +- update container image tccr.io/truecharts/booksonic-air to v2201.1.0 ([#14683](https://github.com/truecharts/charts/issues/14683)) + + + + +## [booksonic-air-10.0.19](https://github.com/truecharts/charts/compare/booksonic-air-10.0.18...booksonic-air-10.0.19) (2023-11-08) + +### Chore + +- update helm general non-major ([#14465](https://github.com/truecharts/charts/issues/14465)) + + + + +## [booksonic-air-10.0.18](https://github.com/truecharts/charts/compare/booksonic-air-10.0.17...booksonic-air-10.0.18) (2023-11-08) + +### Chore + +- update helm general non-major ([#14454](https://github.com/truecharts/charts/issues/14454)) + + + + +## [booksonic-air-10.0.17](https://github.com/truecharts/charts/compare/booksonic-air-10.0.16...booksonic-air-10.0.17) (2023-11-08) + +### Chore + +- update container image tccr.io/truecharts/booksonic-air to v2201.1.0 ([#14451](https://github.com/truecharts/charts/issues/14451)) + + + + +## [booksonic-air-10.0.16](https://github.com/truecharts/charts/compare/booksonic-air-10.0.15...booksonic-air-10.0.16) (2023-11-05) + +### Chore + +- update helm general non-major ([#14365](https://github.com/truecharts/charts/issues/14365)) + + + + +## [booksonic-air-10.0.15](https://github.com/truecharts/charts/compare/booksonic-air-10.0.14...booksonic-air-10.0.15) (2023-11-03) + +### Chore + +- update helm general non-major ([#14287](https://github.com/truecharts/charts/issues/14287)) diff --git a/stable/booksonic-air/10.0.24/Chart.yaml b/stable/booksonic-air/10.0.24/Chart.yaml new file mode 100644 index 00000000000..8f9caeb9afd --- /dev/null +++ b/stable/booksonic-air/10.0.24/Chart.yaml @@ -0,0 +1,38 @@ +kubeVersion: ">=1.24.0" +apiVersion: v2 +name: booksonic-air +version: 10.0.24 +appVersion: 2201.1.0 +description: + Booksonic is a platform for accessing the audibooks you own wherever + you are +home: https://truecharts.org/charts/stable/booksonic-air +icon: https://truecharts.org/img/hotlink-ok/chart-icons/booksonic-air.png +deprecated: false +sources: + - https://github.com/popeen/Booksonic-Air + - https://github.com/truecharts/charts/tree/master/charts/stable/booksonic-air + - https://ghcr.io/linuxserver/booksonic-air +maintainers: + - name: TrueCharts + email: info@truecharts.org + url: https://truecharts.org +keywords: + - booksonic + - audiobook +dependencies: + - name: common + version: 14.3.5 + repository: https://library-charts.truecharts.org + condition: "" + alias: "" + tags: [] + import-values: [] +annotations: + max_scale_version: 23.10.1 + min_scale_version: 22.12.4 + truecharts.org/SCALE-support: "true" + truecharts.org/category: media + truecharts.org/max_helm_version: "3.13" + truecharts.org/min_helm_version: "3.12" + truecharts.org/train: stable diff --git a/stable/drawio/6.0.28/README.md b/stable/booksonic-air/10.0.24/README.md similarity index 100% rename from stable/drawio/6.0.28/README.md rename to stable/booksonic-air/10.0.24/README.md diff --git a/stable/booksonic-air/10.0.24/app-changelog.md b/stable/booksonic-air/10.0.24/app-changelog.md new file mode 100644 index 00000000000..a805712879f --- /dev/null +++ b/stable/booksonic-air/10.0.24/app-changelog.md @@ -0,0 +1,9 @@ + + +## [booksonic-air-10.0.24](https://github.com/truecharts/charts/compare/booksonic-air-10.0.23...booksonic-air-10.0.24) (2023-12-06) + +### Chore + +- update container image ghcr.io/linuxserver/booksonic-air to 2201.1.0[@50f6dc6](https://github.com/50f6dc6) ([#15809](https://github.com/truecharts/charts/issues/15809)) + + \ No newline at end of file diff --git a/stable/booksonic-air/10.0.24/app-readme.md b/stable/booksonic-air/10.0.24/app-readme.md new file mode 100644 index 00000000000..88ff19e3ce3 --- /dev/null +++ b/stable/booksonic-air/10.0.24/app-readme.md @@ -0,0 +1,8 @@ +Booksonic is a platform for accessing the audibooks you own wherever you are + +This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/charts/stable/booksonic-air](https://truecharts.org/charts/stable/booksonic-air) + +--- + +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/drawio/6.0.28/charts/common-14.3.5.tgz b/stable/booksonic-air/10.0.24/charts/common-14.3.5.tgz similarity index 100% rename from stable/drawio/6.0.28/charts/common-14.3.5.tgz rename to stable/booksonic-air/10.0.24/charts/common-14.3.5.tgz diff --git a/stable/booksonic-air/10.0.24/ix_values.yaml b/stable/booksonic-air/10.0.24/ix_values.yaml new file mode 100644 index 00000000000..7fee8d0a965 --- /dev/null +++ b/stable/booksonic-air/10.0.24/ix_values.yaml @@ -0,0 +1,40 @@ +image: + repository: ghcr.io/linuxserver/booksonic-air + pullPolicy: IfNotPresent + tag: 2201.1.0@sha256:50f6dc6c740b96bf7af5a0da06035d27ddd810427f9e20f1ee142c143d8e6d46 +securityContext: + container: + readOnlyRootFilesystem: false + runAsNonRoot: false + runAsUser: 0 + runAsGroup: 0 +service: + main: + ports: + main: + port: 10048 + protocol: http + targetPort: 4040 +workload: + main: + podSpec: + containers: + main: + probes: + liveness: + type: http + path: / + readiness: + type: http + path: / + startup: + type: http + path: / + env: {} +persistence: + config: + enabled: true + mountPath: /config +portal: + open: + enabled: true diff --git a/stable/booksonic-air/10.0.24/questions.yaml b/stable/booksonic-air/10.0.24/questions.yaml new file mode 100644 index 00000000000..9717f3d60e2 --- /dev/null +++ b/stable/booksonic-air/10.0.24/questions.yaml @@ -0,0 +1,2639 @@ +groups: + - name: Container Image + description: Image to be used for container + - name: General Settings + description: General Deployment Settings + - name: Workload Settings + description: Workload Settings + - name: App Configuration + description: App Specific Config Options + - name: Networking and Services + description: Configure Network and Services for Container + - name: Storage and Persistence + description: Persist and Share Data that is Separate from the Container + - name: Ingress + description: Ingress Configuration + - name: Security and Permissions + description: Configure Security Context and Permissions + - name: Resources and Devices + description: "Specify Resources/Devices to be Allocated to Workload" + - name: Middlewares + description: Traefik Middlewares + - name: Metrics + description: Metrics + - name: Addons + description: Addon Configuration + - name: Advanced + description: Advanced Configuration + - name: Postgresql + description: Postgresql + - name: Documentation + description: Documentation +portals: + open: + protocols: + - "$kubernetes-resource_configmap_tcportal-open_protocol" + host: + - "$kubernetes-resource_configmap_tcportal-open_host" + ports: + - "$kubernetes-resource_configmap_tcportal-open_port" +questions: + - variable: global + group: General Settings + label: "Global Settings" + schema: + additional_attrs: true + type: dict + attrs: + - variable: stopAll + label: Stop All + description: "Stops All Running pods and hibernates cnpg" + schema: + type: boolean + default: false + - variable: workload + group: "Workload Settings" + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type (Advanced) + schema: + type: string + default: Deployment + enum: + - value: Deployment + description: Deployment + - value: DaemonSet + description: DaemonSet + + - variable: replicas + label: Replicas (Advanced) + description: Set the number of Replicas + schema: + type: int + show_if: [["type", "!=", "DaemonSet"]] + default: 1 + - variable: podSpec + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: containers + label: Containers + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: Main Container + schema: + additional_attrs: true + type: dict + attrs: + - variable: envList + label: Extra Environment Variables + description: "Please be aware that some variables are set in the background, adding duplicates here might cause issues or prevent the app from starting..." + schema: + type: list + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: extraArgs + label: Extra Args + schema: + type: list + default: [] + items: + - variable: arg + label: Arg + schema: + type: string + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: command + label: Command + schema: + type: list + default: [] + items: + - variable: param + label: Param + schema: + type: string + + - variable: TZ + label: Timezone + group: "General Settings" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: podOptions + group: "General Settings" + label: "Global Pod Options (Advanced)" + schema: + additional_attrs: true + type: dict + attrs: + - variable: expertPodOpts + label: "Expert - Pod Options" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + label: "Host Networking" + schema: + type: boolean + default: false + - variable: dnsConfig + label: "DNS Configuration" + schema: + type: dict + additional_attrs: true + attrs: + - variable: options + label: "Options" + schema: + type: list + default: [{"name": "ndots", "value": "1"}] + items: + - variable: optionsEntry + label: "Option Entry" + schema: + type: dict + additional_attrs: true + attrs: + - variable: name + label: "Name" + schema: + type: string + required: true + - variable: value + label: "Value" + schema: + type: string + - variable: nameservers + label: "Nameservers" + schema: + type: list + default: [] + items: + - variable: nsEntry + label: "Nameserver Entry" + schema: + type: string + required: true + - variable: searches + label: "Searches" + schema: + type: list + default: [] + items: + - variable: searchEntry + label: "Search Entry" + schema: + type: string + required: true + + - variable: imagePullSecretList + group: "General Settings" + label: "Image Pull Secrets" + schema: + type: list + default: [] + items: + - variable: pullsecretentry + label: "Pull Secret" + schema: + type: dict + additional_attrs: true + attrs: + - variable: registry + label: "Registry" + schema: + type: string + required: true + default: "https://index.docker.io/v1/" + - variable: username + label: "Username" + schema: + type: string + required: true + default: "" + - variable: password + label: "Password" + schema: + type: string + required: true + default: "" + - variable: email + label: "Email" + schema: + type: string + required: true + default: "" + - variable: service + group: Networking and Services + label: Configure Service(s) + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the Service + schema: + type: boolean + default: true + hidden: true + - variable: type + label: Service Type + description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: LoadBalancer + enum: + - value: LoadBalancer + description: LoadBalancer (Expose Ports) + - value: ClusterIP + description: ClusterIP (Do Not Expose Ports) + - variable: loadBalancerIP + label: LoadBalancer IP + description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: ports + label: "Service's Port(s) Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 10048 + 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: persistenceList + label: Additional App Storage + group: Storage and Persistence + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: Custom Storage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the storage + schema: + type: boolean + default: true + hidden: true + - variable: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: hostPath + enum: + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: emptyDir + description: emptyDir + - value: nfs + description: NFS Share + - variable: server + label: NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: path + label: Path on NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: iscsi + label: iSCSI Options + schema: + show_if: [["type", "=", "iscsi"]] + type: dict + additional_attrs: true + attrs: + - variable: targetPortal + label: targetPortal + schema: + type: string + required: true + default: "" + - variable: iqn + label: iqn + schema: + type: string + required: true + default: "" + - variable: lun + label: lun + schema: + type: int + default: 0 + - variable: authSession + label: authSession + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: authDiscovery + label: authDiscovery + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: autoPermissions + label: Automatic Permissions Configuration + description: Automatically set permissions + schema: + show_if: [["type", "!=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: chown + label: Run CHOWN + description: | + It will run CHOWN on the path with the given fsGroup + schema: + type: boolean + default: false + - variable: chmod + label: Run CHMOD + description: | + It will run CHMOD on the path with the given value
+ Format should be 3 digits, e.g. 770 + schema: + type: string + valid_chars: '[0-9]{3}' + default: "" + - variable: recursive + label: Recursive + description: | + It will run CHOWN and CHMOD recursively + schema: + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - variable: hostPath + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: Mount Path + description: Path inside the container the storage is mounted + schema: + type: string + default: "" + required: true + valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' + - variable: medium + label: EmptyDir Medium + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: Memory + description: Memory + - variable: size + label: Size Quotum of Storage + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: storageClass + label: 'storageClass (Advanced)' + description: 'sets the storageClass to something other than iX default. Only for advanced usecases!' + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "" + - variable: static + label: 'Static Fixed PVC Bindings (Experimental)' + description: Link a PVC to a specific storage location + schema: + show_if: [["type", "=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: mode + label: mode + description: | + disabled: use normal dynamic PVCs + smb: connect to an SMB share + nfs: connect to an NFS share + schema: + type: string + default: "disabled" + enum: + - value: "disabled" + description: disabled + - value: smb + description: smb + - value: nfs + description: nfs + - variable: server + label: Server + description: server to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "myserver" + - variable: share + label: Share + description: share to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "/myshare" + - variable: user + label: User + description: connecting user + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "myuser" + - variable: domain + label: Domain + description: user domain + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: password + label: Password + description: connecting password + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: volumeSnapshots + label: 'Volume Snapshots (Experimental)' + description: Add an entry to the list to force creation of a volumeSnapshot of this PVC + schema: + show_if: [["type", "=", "pvc"]] + type: list + default: [] + items: + - variable: volumeSnapshotEntry + label: Custom volumeSnapshot + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: 'WARNING: renaming this, means deletion of the snapshot with the old name!' + schema: + type: string + default: "mysnapshot" + required: true + - variable: volumeSnapshotClassName + label: 'volumeSnapshot Class Name (Advanced)' + description: For use with PVCs using a non-default storageClass + schema: + type: string + default: "" + - variable: ingress + label: "" + group: Ingress + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Ingress + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: Hosts + schema: + type: list + default: [] + items: + - variable: hostEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: host + label: HostName + schema: + type: string + default: "" + required: true + - variable: paths + label: Paths + schema: + type: list + default: [{path: "/", pathType: "Prefix"}] + items: + - variable: pathEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: path + label: Path + schema: + type: string + required: true + default: "/" + - variable: pathType + label: Path Type + schema: + type: string + required: true + default: Prefix + - variable: certificateIssuer + label: Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates. Cannot be used combined with tls option below' + schema: + type: string + default: "" + - variable: middlewares + label: Traefik Middlewares + description: Add previously created Traefik Middlewares to this Ingress + schema: + type: list + default: [] + items: + - variable: name + label: Name + schema: + type: string + default: "" + required: true + - variable: integration + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: homepage + label: Homepage + description: Connect ingress with Homepage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: name + label: Name + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: description + label: Description + description: defaults to chart description + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: group + label: Group + schema: + type: string + required: true + default: "default" + show_if: [["enabled", "=", true]] + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + - variable: entrypoint + label: (Advanced) Traefik Entrypoint + description: Entrypoint used by Traefik when using Traefik as Ingress Provider + schema: + type: string + default: websecure + show_if: [["advanced", "=", true]] + required: true + - variable: allowCors + label: "Allow Cross Origin Requests" + schema: + type: boolean + show_if: [["advanced", "=", true]] + default: false + - variable: ingressClassName + label: (Advanced/Optional) IngressClass Name + schema: + type: string + show_if: [["advanced", "=", true]] + default: "" + - variable: tls + label: TLS-Settings + schema: + type: list + show_if: [["advanced", "=", true]] + default: [] + items: + - variable: tlsEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: hosts + label: Certificate Hosts + schema: + type: list + default: [] + items: + - variable: host + label: Host + schema: + type: string + default: "" + required: true + + - variable: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: 'Use Custom Certificate Secret (Advanced)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: string + default: "" + - variable: scaleCert + label: 'Use TrueNAS SCALE Certificate (Deprecated)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - variable: ingressList + label: Add Manual Custom Ingresses + group: Ingress + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: Custom Ingress + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Ingress + schema: + type: boolean + default: true + hidden: true + - variable: name + label: Name + schema: + type: string + default: "" + - variable: ingressClassName + label: IngressClass Name + schema: + type: string + default: "" + - variable: allowCors + label: "Allow Cross Origin Requests" + schema: + type: boolean + show_if: [["advanced", "=", true]] + default: false + - variable: hosts + label: Hosts + schema: + type: list + default: [] + items: + - variable: hostEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: host + label: HostName + schema: + type: string + default: "" + required: true + - variable: paths + label: Paths + schema: + type: list + default: [] + items: + - variable: pathEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: path + label: Path + schema: + type: string + required: true + default: "/" + - variable: pathType + label: Path Type + schema: + type: string + required: true + default: Prefix + - variable: service + label: Linked Service + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Service Name + schema: + type: string + default: "" + - variable: port + label: Service Port + schema: + type: int + - variable: certificateIssuer + label: certificateIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates. Cannot be used combined with tls option below' + schema: + type: string + default: "" + - variable: tls + label: TLS-Settings + schema: + type: list + default: [] + show_if: [["certificateIssuer", "=", ""]] + items: + - variable: tlsEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: hosts + label: Certificate Hosts + schema: + type: list + default: [] + items: + - variable: host + label: Host + schema: + type: string + default: "" + required: true + - variable: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your Cert-Manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: scaleCert + label: Use TrueNAS SCALE Certificate (Deprecated) + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: Use Custom Secret (Advanced) + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: integration + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: homepage + label: Homepage + description: Connect ingress with Homepage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: name + label: Name + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: description + label: Description + description: defaults to chart description + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: group + label: Group + schema: + type: string + required: true + default: "default" + show_if: [["enabled", "=", true]] + - variable: entrypoint + label: Traefik Entrypoint + description: Entrypoint used by Traefik when using Traefik as Ingress Provider + schema: + type: string + default: websecure + required: true + - variable: middlewares + label: Traefik Middlewares + description: Add previously created Traefik Middlewares to this Ingress + schema: + type: list + default: [] + items: + - variable: name + label: Name + schema: + type: string + default: "" + required: true + - variable: securityContext + group: Security and Permissions + label: Security Context + schema: + additional_attrs: true + type: dict + attrs: + - variable: container + label: Container + schema: + additional_attrs: true + type: dict + attrs: + # Settings from questions.yaml get appended here on a per-app basis + + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 0 + - variable: runAsGroup + label: "runAsGroup" + description: "The groupID this App 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: certificateIssuer + label: Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates. Cannot be used combined with tls option below' + schema: + type: string + default: "" + - variable: middlewares + label: Traefik Middlewares + description: Add previously created Traefik Middlewares to this Ingress + schema: + type: list + default: [] + items: + - variable: name + label: Name + schema: + type: string + default: "" + required: true + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + - variable: entrypoint + label: (Advanced) Traefik Entrypoint + description: Entrypoint used by Traefik when using Traefik as Ingress Provider + schema: + type: string + default: websecure + show_if: [["advanced", "=", true]] + required: true + - variable: allowCors + label: "Allow Cross Origin Requests" + schema: + type: boolean + show_if: [["advanced", "=", true]] + default: false + - variable: ingressClassName + label: (Advanced/Optional) IngressClass Name + schema: + type: string + show_if: [["advanced", "=", true]] + default: "" + - variable: tls + label: TLS-Settings + schema: + type: list + show_if: [["advanced", "=", true]] + default: [] + items: + - variable: tlsEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: hosts + label: Certificate Hosts + schema: + type: list + default: [] + items: + - variable: host + label: Host + schema: + type: string + default: "" + required: true + - variable: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: 'Use Custom Certificate Secret (Advanced)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: string + default: "" + - variable: scaleCert + label: 'Use TrueNAS SCALE Certificate (Deprecated)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - variable: envList + label: Codeserver Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + - variable: netshoot + label: Netshoot + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: envList + label: Netshoot Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + - variable: vpn + label: VPN + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type + schema: + type: string + default: disabled + enum: + - value: disabled + description: disabled + - value: gluetun + description: Gluetun + - value: tailscale + description: Tailscale + - value: openvpn + description: OpenVPN (Deprecated) + - value: wireguard + description: Wireguard (Deprecated) + - variable: openvpn + label: OpenVPN Settings + schema: + additional_attrs: true + type: dict + show_if: [["type", "=", "openvpn"]] + attrs: + - variable: username + label: Authentication Username (Optional) + description: Authentication Username, Optional + schema: + type: string + default: "" + - variable: password + label: Authentication Password + description: Authentication Credentials + schema: + type: string + show_if: [["username", "!=", ""]] + default: "" + required: true + - variable: tailscale + label: Tailscale Settings + schema: + additional_attrs: true + type: dict + show_if: [["type", "=", "tailscale"]] + attrs: + - variable: authkey + label: Authentication Key + description: Provide an auth key to automatically authenticate the node as your user account. + schema: + type: string + private: true + default: "" + - variable: auth_once + label: Auth Once + description: Only attempt to log in if not already logged in. + schema: + type: boolean + default: true + - variable: accept_dns + label: Accept DNS + description: Accept DNS configuration from the admin console. + schema: + type: boolean + default: false + - variable: userspace + label: Userspace + description: Userspace Networking mode allows running Tailscale where you do not have access to create a VPN tunnel device. + schema: + type: boolean + default: false + - variable: routes + label: Routes + description: Expose physical subnet routes to your entire Tailscale network. + schema: + type: string + default: "" + - variable: dest_ip + label: Destination IP + description: Tells the DNAT mechanism which Destination IP to set in the IP header, and where to send packets that are matched. + schema: + type: string + default: "" + - variable: sock5_server + label: Sock5 Server + description: The address on which to listen for SOCKS5 proxying into the tailscale net. + schema: + type: string + default: "" + - variable: outbound_http_proxy_listen + label: Outbound HTTP Proxy Listen + description: The address on which to listen for HTTP proxying into the tailscale net. + schema: + type: string + default: "" + - variable: extra_args + label: Extra Args + description: Extra Args + schema: + type: string + default: "" + - variable: daemon_extra_args + label: Tailscale Daemon Extra Args + description: Tailscale Daemon Extra Args + schema: + type: string + default: "" + - variable: killSwitch + label: Enable Killswitch + schema: + type: boolean + show_if: [["type", "!=", "disabled"]] + default: true + - variable: excludedNetworks_IPv4 + label: Killswitch Excluded IPv4 networks + description: List of Killswitch Excluded IPv4 Addresses + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: networkv4 + label: IPv4 Network + schema: + type: string + required: true + - variable: excludedNetworks_IPv6 + label: Killswitch Excluded IPv6 networks + description: "List of Killswitch Excluded IPv6 Addresses" + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: networkv6 + label: IPv6 Network + schema: + type: string + required: true + - variable: configFile + label: VPN Config File Location + schema: + type: string + show_if: [["type", "!=", "disabled"]] + default: "" + + - variable: envList + label: VPN Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + max_length: 10240 + - variable: docs + group: Documentation + label: Please read the documentation at https://truecharts.org + description: Please read the documentation at +
https://truecharts.org + schema: + additional_attrs: true + type: dict + attrs: + - variable: confirmDocs + label: I have checked the documentation + schema: + type: boolean + default: true + - variable: donateNag + group: Documentation + label: Please consider supporting TrueCharts, see https://truecharts.org/sponsor + description: Please consider supporting TrueCharts, see +
https://truecharts.org/sponsor + schema: + additional_attrs: true + type: dict + attrs: + - variable: confirmDonate + label: I have considered donating + schema: + type: boolean + default: true + hidden: true diff --git a/stable/drawio/6.0.28/templates/NOTES.txt b/stable/booksonic-air/10.0.24/templates/NOTES.txt similarity index 100% rename from stable/drawio/6.0.28/templates/NOTES.txt rename to stable/booksonic-air/10.0.24/templates/NOTES.txt diff --git a/stable/drawio/6.0.28/templates/common.yaml b/stable/booksonic-air/10.0.24/templates/common.yaml similarity index 100% rename from stable/drawio/6.0.28/templates/common.yaml rename to stable/booksonic-air/10.0.24/templates/common.yaml diff --git a/stable/drawio/6.0.28/values.yaml b/stable/booksonic-air/10.0.24/values.yaml similarity index 100% rename from stable/drawio/6.0.28/values.yaml rename to stable/booksonic-air/10.0.24/values.yaml diff --git a/stable/drawio/6.0.28/app-changelog.md b/stable/drawio/6.0.28/app-changelog.md deleted file mode 100644 index 4ecc3a3a437..00000000000 --- a/stable/drawio/6.0.28/app-changelog.md +++ /dev/null @@ -1,11 +0,0 @@ - - -## [drawio-6.0.28](https://github.com/truecharts/charts/compare/drawio-6.0.27...drawio-6.0.28) (2023-12-03) - -### Chore - -- bump everything to ensure catalog has latest versions - - fix annotations again - - update annotations - - \ No newline at end of file diff --git a/stable/drawio/6.0.28/CHANGELOG.md b/stable/drawio/6.0.29/CHANGELOG.md similarity index 89% rename from stable/drawio/6.0.28/CHANGELOG.md rename to stable/drawio/6.0.29/CHANGELOG.md index 741828e2229..1b614b6c998 100644 --- a/stable/drawio/6.0.28/CHANGELOG.md +++ b/stable/drawio/6.0.29/CHANGELOG.md @@ -4,6 +4,15 @@ +## [drawio-6.0.29](https://github.com/truecharts/charts/compare/drawio-6.0.28...drawio-6.0.29) (2023-12-06) + +### Chore + +- update container image jgraph/drawio to v22.1.7[@c88f7ec](https://github.com/c88f7ec) ([#15815](https://github.com/truecharts/charts/issues/15815)) + + + + ## [drawio-6.0.28](https://github.com/truecharts/charts/compare/drawio-6.0.27...drawio-6.0.28) (2023-12-03) ### Chore @@ -88,12 +97,3 @@ - update helm general non-major ([#14465](https://github.com/truecharts/charts/issues/14465)) - - - -## [drawio-6.0.19](https://github.com/truecharts/charts/compare/drawio-6.0.18...drawio-6.0.19) (2023-11-08) - -### Chore - -- update helm general non-major ([#14454](https://github.com/truecharts/charts/issues/14454)) - diff --git a/stable/drawio/6.0.28/Chart.yaml b/stable/drawio/6.0.29/Chart.yaml similarity index 96% rename from stable/drawio/6.0.28/Chart.yaml rename to stable/drawio/6.0.29/Chart.yaml index 1cce50fd918..7ee686cdbd9 100644 --- a/stable/drawio/6.0.28/Chart.yaml +++ b/stable/drawio/6.0.29/Chart.yaml @@ -1,16 +1,16 @@ kubeVersion: ">=1.24.0" apiVersion: v2 name: drawio -version: 6.0.28 -appVersion: 22.1.5 +version: 6.0.29 +appVersion: 22.1.7 description: Drawio is free online diagram software. home: https://truecharts.org/charts/stable/drawio icon: https://truecharts.org/img/hotlink-ok/chart-icons/drawio.png deprecated: false sources: - - https://github.com/jgraph/drawio - https://github.com/truecharts/charts/tree/master/charts/stable/drawio - https://hub.docker.com/r/jgraph/drawio + - https://github.com/jgraph/drawio maintainers: - name: TrueCharts email: info@truecharts.org diff --git a/stable/invidious/6.0.25/README.md b/stable/drawio/6.0.29/README.md similarity index 100% rename from stable/invidious/6.0.25/README.md rename to stable/drawio/6.0.29/README.md diff --git a/stable/drawio/6.0.29/app-changelog.md b/stable/drawio/6.0.29/app-changelog.md new file mode 100644 index 00000000000..1765ae49fe4 --- /dev/null +++ b/stable/drawio/6.0.29/app-changelog.md @@ -0,0 +1,9 @@ + + +## [drawio-6.0.29](https://github.com/truecharts/charts/compare/drawio-6.0.28...drawio-6.0.29) (2023-12-06) + +### Chore + +- update container image jgraph/drawio to v22.1.7[@c88f7ec](https://github.com/c88f7ec) ([#15815](https://github.com/truecharts/charts/issues/15815)) + + \ No newline at end of file diff --git a/stable/drawio/6.0.28/app-readme.md b/stable/drawio/6.0.29/app-readme.md similarity index 100% rename from stable/drawio/6.0.28/app-readme.md rename to stable/drawio/6.0.29/app-readme.md diff --git a/stable/invidious/6.0.25/charts/common-14.3.5.tgz b/stable/drawio/6.0.29/charts/common-14.3.5.tgz similarity index 100% rename from stable/invidious/6.0.25/charts/common-14.3.5.tgz rename to stable/drawio/6.0.29/charts/common-14.3.5.tgz diff --git a/stable/drawio/6.0.28/ix_values.yaml b/stable/drawio/6.0.29/ix_values.yaml similarity index 87% rename from stable/drawio/6.0.28/ix_values.yaml rename to stable/drawio/6.0.29/ix_values.yaml index 07efe35bd09..1ed9a9e7698 100644 --- a/stable/drawio/6.0.28/ix_values.yaml +++ b/stable/drawio/6.0.29/ix_values.yaml @@ -1,6 +1,6 @@ image: repository: jgraph/drawio - tag: 22.1.5@sha256:39e9e6f93b9ca26a06421c767b7562e2e873e969fb0dbab334a53a0a1a4bc62f + tag: 22.1.7@sha256:c88f7eca3721c5b76d0c45ae4684f85f4811e02f25c94ecb76468a438792bc62 pullPolicy: IfNotPresent securityContext: container: diff --git a/stable/remmina/7.0.12/questions.yaml b/stable/drawio/6.0.29/questions.yaml similarity index 93% rename from stable/remmina/7.0.12/questions.yaml rename to stable/drawio/6.0.29/questions.yaml index 911094fa66b..ccd92e6a118 100644 --- a/stable/remmina/7.0.12/questions.yaml +++ b/stable/drawio/6.0.29/questions.yaml @@ -100,8 +100,6 @@ questions: 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..." @@ -228,6 +226,44 @@ questions: schema: type: string required: true + + - variable: imagePullSecretList + group: "General Settings" + label: "Image Pull Secrets" + schema: + type: list + default: [] + items: + - variable: pullsecretentry + label: "Pull Secret" + schema: + type: dict + additional_attrs: true + attrs: + - variable: registry + label: "Registry" + schema: + type: string + required: true + default: "https://index.docker.io/v1/" + - variable: username + label: "Username" + schema: + type: string + required: true + default: "" + - variable: password + label: "Password" + schema: + type: string + required: true + default: "" + - variable: email + label: "Email" + schema: + type: string + required: true + default: "" - variable: service group: Networking and Services label: Configure Service(s) @@ -283,7 +319,7 @@ questions: description: "This port exposes the container port on the service" schema: type: int - default: 10042 + default: 10214 required: true - variable: serviceexpert group: Networking and Services @@ -505,208 +541,6 @@ questions: 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 - - 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: 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 @@ -753,6 +587,82 @@ questions: 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 @@ -1001,6 +911,46 @@ questions: type: string default: "" required: true + - variable: integration + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: homepage + label: Homepage + description: Connect ingress with Homepage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: name + label: Name + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: description + label: Description + description: defaults to chart description + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: group + label: Group + schema: + type: string + required: true + default: "default" + show_if: [["enabled", "=", true]] - variable: advanced label: Show Advanced Settings description: Advanced settings are not covered by TrueCharts Support @@ -1228,6 +1178,46 @@ questions: type: string show_if: [["certificateIssuer", "=", ""]] default: "" + - variable: integration + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: homepage + label: Homepage + description: Connect ingress with Homepage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: name + label: Name + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: description + label: Description + description: defaults to chart description + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: group + label: Group + schema: + type: string + required: true + default: "default" + show_if: [["enabled", "=", true]] - variable: entrypoint label: Traefik Entrypoint description: Entrypoint used by Traefik when using Traefik as Ingress Provider diff --git a/stable/mattermost/9.0.58/templates/NOTES.txt b/stable/drawio/6.0.29/templates/NOTES.txt similarity index 100% rename from stable/mattermost/9.0.58/templates/NOTES.txt rename to stable/drawio/6.0.29/templates/NOTES.txt diff --git a/stable/rsshub/8.0.286/templates/common.yaml b/stable/drawio/6.0.29/templates/common.yaml similarity index 100% rename from stable/rsshub/8.0.286/templates/common.yaml rename to stable/drawio/6.0.29/templates/common.yaml diff --git a/stable/invidious/6.0.25/values.yaml b/stable/drawio/6.0.29/values.yaml similarity index 100% rename from stable/invidious/6.0.25/values.yaml rename to stable/drawio/6.0.29/values.yaml diff --git a/stable/invidious/6.0.25/app-changelog.md b/stable/invidious/6.0.25/app-changelog.md deleted file mode 100644 index 25590c763a6..00000000000 --- a/stable/invidious/6.0.25/app-changelog.md +++ /dev/null @@ -1,9 +0,0 @@ - - -## [invidious-6.0.25](https://github.com/truecharts/charts/compare/invidious-6.0.24...invidious-6.0.25) (2023-12-06) - -### Chore - -- update container image quay.io/invidious/invidious to latest[@2bf1388](https://github.com/2bf1388) ([#15798](https://github.com/truecharts/charts/issues/15798)) - - \ No newline at end of file diff --git a/stable/invidious/6.0.25/CHANGELOG.md b/stable/invidious/6.0.26/CHANGELOG.md similarity index 89% rename from stable/invidious/6.0.25/CHANGELOG.md rename to stable/invidious/6.0.26/CHANGELOG.md index b16d5775078..aa6af8b8d3d 100644 --- a/stable/invidious/6.0.25/CHANGELOG.md +++ b/stable/invidious/6.0.26/CHANGELOG.md @@ -4,6 +4,15 @@ +## [invidious-6.0.26](https://github.com/truecharts/charts/compare/invidious-6.0.25...invidious-6.0.26) (2023-12-06) + +### Chore + +- update container image quay.io/invidious/invidious to latest[@d7517f2](https://github.com/d7517f2) ([#15813](https://github.com/truecharts/charts/issues/15813)) + + + + ## [invidious-6.0.25](https://github.com/truecharts/charts/compare/invidious-6.0.24...invidious-6.0.25) (2023-12-06) ### Chore @@ -88,12 +97,3 @@ ### Chore - update helm general non-major ([#14365](https://github.com/truecharts/charts/issues/14365)) - - - - -## [invidious-6.0.16](https://github.com/truecharts/charts/compare/invidious-6.0.15...invidious-6.0.16) (2023-11-04) - -### Chore - -- update container image tccr.io/truecharts/invidious to latest ([#14339](https://github.com/truecharts/charts/issues/14339)) diff --git a/stable/invidious/6.0.25/Chart.yaml b/stable/invidious/6.0.26/Chart.yaml similarity index 98% rename from stable/invidious/6.0.25/Chart.yaml rename to stable/invidious/6.0.26/Chart.yaml index 2e4a76464fb..cd86a76edd8 100644 --- a/stable/invidious/6.0.25/Chart.yaml +++ b/stable/invidious/6.0.26/Chart.yaml @@ -1,7 +1,7 @@ kubeVersion: ">=1.24.0" apiVersion: v2 name: invidious -version: 6.0.25 +version: 6.0.26 appVersion: latest description: Open source alternative front-end to YouTube. home: https://truecharts.org/charts/stable/invidious diff --git a/stable/invidious/6.0.25/LICENSE b/stable/invidious/6.0.26/LICENSE similarity index 100% rename from stable/invidious/6.0.25/LICENSE rename to stable/invidious/6.0.26/LICENSE diff --git a/stable/mattermost/9.0.58/README.md b/stable/invidious/6.0.26/README.md similarity index 100% rename from stable/mattermost/9.0.58/README.md rename to stable/invidious/6.0.26/README.md diff --git a/stable/invidious/6.0.26/app-changelog.md b/stable/invidious/6.0.26/app-changelog.md new file mode 100644 index 00000000000..072ff9761ba --- /dev/null +++ b/stable/invidious/6.0.26/app-changelog.md @@ -0,0 +1,9 @@ + + +## [invidious-6.0.26](https://github.com/truecharts/charts/compare/invidious-6.0.25...invidious-6.0.26) (2023-12-06) + +### Chore + +- update container image quay.io/invidious/invidious to latest[@d7517f2](https://github.com/d7517f2) ([#15813](https://github.com/truecharts/charts/issues/15813)) + + \ No newline at end of file diff --git a/stable/invidious/6.0.25/app-readme.md b/stable/invidious/6.0.26/app-readme.md similarity index 100% rename from stable/invidious/6.0.25/app-readme.md rename to stable/invidious/6.0.26/app-readme.md diff --git a/stable/mattermost/9.0.58/charts/common-14.3.5.tgz b/stable/invidious/6.0.26/charts/common-14.3.5.tgz similarity index 100% rename from stable/mattermost/9.0.58/charts/common-14.3.5.tgz rename to stable/invidious/6.0.26/charts/common-14.3.5.tgz diff --git a/stable/invidious/6.0.25/ix_values.yaml b/stable/invidious/6.0.26/ix_values.yaml similarity index 97% rename from stable/invidious/6.0.25/ix_values.yaml rename to stable/invidious/6.0.26/ix_values.yaml index c24cd9221fc..e03d91d536b 100644 --- a/stable/invidious/6.0.25/ix_values.yaml +++ b/stable/invidious/6.0.26/ix_values.yaml @@ -1,7 +1,7 @@ image: repository: quay.io/invidious/invidious pullPolicy: IfNotPresent - tag: latest@sha256:2bf1388c5fcf23e3db2f6bd436f0bde8ad692c3138558d813c803bac82d3886e + tag: latest@sha256:d7517f2baf820aa778b0b6aa161a754fbfc3de061f1279555202125bfe34ec3b securityContext: container: readOnlyRootFilesystem: false diff --git a/stable/invidious/6.0.25/questions.yaml b/stable/invidious/6.0.26/questions.yaml similarity index 100% rename from stable/invidious/6.0.25/questions.yaml rename to stable/invidious/6.0.26/questions.yaml diff --git a/stable/invidious/6.0.25/templates/_config.tpl b/stable/invidious/6.0.26/templates/_config.tpl similarity index 100% rename from stable/invidious/6.0.25/templates/_config.tpl rename to stable/invidious/6.0.26/templates/_config.tpl diff --git a/stable/invidious/6.0.25/templates/common.yaml b/stable/invidious/6.0.26/templates/common.yaml similarity index 100% rename from stable/invidious/6.0.25/templates/common.yaml rename to stable/invidious/6.0.26/templates/common.yaml diff --git a/stable/mattermost/9.0.58/values.yaml b/stable/invidious/6.0.26/values.yaml similarity index 100% rename from stable/mattermost/9.0.58/values.yaml rename to stable/invidious/6.0.26/values.yaml diff --git a/stable/littlelink/10.0.47/CHANGELOG.md b/stable/littlelink/10.0.47/CHANGELOG.md new file mode 100644 index 00000000000..4eafd532228 --- /dev/null +++ b/stable/littlelink/10.0.47/CHANGELOG.md @@ -0,0 +1,99 @@ +**Important:** +*for the complete changelog, please refer to the website* + + + + +## [littlelink-10.0.47](https://github.com/truecharts/charts/compare/littlelink-10.0.46...littlelink-10.0.47) (2023-12-06) + +### Chore + +- update container image ghcr.io/techno-tim/littlelink-server to latest[@34e811f](https://github.com/34e811f) ([#15811](https://github.com/truecharts/charts/issues/15811)) + + + + +## [littlelink-10.0.46](https://github.com/truecharts/charts/compare/littlelink-10.0.45...littlelink-10.0.46) (2023-12-03) + +### Chore + +- bump everything to ensure catalog has latest versions + - fix annotations again + - update annotations + + + + + + + + + + + + +## [littlelink-10.0.45](https://github.com/truecharts/charts/compare/littlelink-10.0.44...littlelink-10.0.45) (2023-12-01) + +### Chore + +- cleanup chart.yaml and add min-max scale version + - update container image ghcr.io/techno-tim/littlelink-server to latest[@66f12a3](https://github.com/66f12a3) ([#15573](https://github.com/truecharts/charts/issues/15573)) + + + + +## [littlelink-10.0.44](https://github.com/truecharts/charts/compare/littlelink-10.0.43...littlelink-10.0.44) (2023-11-28) + +### Chore + +- update container image ghcr.io/techno-tim/littlelink-server to latest[@69930c8](https://github.com/69930c8) ([#15437](https://github.com/truecharts/charts/issues/15437)) + + + + +## [littlelink-10.0.43](https://github.com/truecharts/charts/compare/littlelink-10.0.42...littlelink-10.0.43) (2023-11-19) + +### Fix + +- update container image ghcr.io/techno-tim/littlelink-server to latest ([#15113](https://github.com/truecharts/charts/issues/15113)) + + + + +## [littlelink-10.0.42](https://github.com/truecharts/charts/compare/littlelink-10.0.41...littlelink-10.0.42) (2023-11-18) + +### Fix + +- update container image ghcr.io/techno-tim/littlelink-server to latest ([#14833](https://github.com/truecharts/charts/issues/14833)) + + + + +## [littlelink-10.0.41](https://github.com/truecharts/charts/compare/littlelink-10.0.40...littlelink-10.0.41) (2023-11-17) + +### Fix + +- update container image ghcr.io/techno-tim/littlelink-server to latest ([#14773](https://github.com/truecharts/charts/issues/14773)) + + + + +## [littlelink-10.0.40](https://github.com/truecharts/charts/compare/littlelink-10.0.39...littlelink-10.0.40) (2023-11-17) + + + + +## [littlelink-10.0.39](https://github.com/truecharts/charts/compare/littlelink-10.0.38...littlelink-10.0.39) (2023-11-16) + +### Chore + +- update container image tccr.io/truecharts/littlelink-server to latest ([#14728](https://github.com/truecharts/charts/issues/14728)) + + + + +## [littlelink-10.0.38](https://github.com/truecharts/charts/compare/littlelink-10.0.37...littlelink-10.0.38) (2023-11-12) + +### Chore + +- update container image tccr.io/truecharts/littlelink-server to latest ([#14598](https://github.com/truecharts/charts/issues/14598)) diff --git a/stable/littlelink/10.0.47/Chart.yaml b/stable/littlelink/10.0.47/Chart.yaml new file mode 100644 index 00000000000..b476b9552fa --- /dev/null +++ b/stable/littlelink/10.0.47/Chart.yaml @@ -0,0 +1,36 @@ +kubeVersion: ">=1.24.0" +apiVersion: v2 +name: littlelink +version: 10.0.47 +appVersion: latest +description: Easy platform to combine all your social links +home: https://truecharts.org/charts/stable/littlelink +icon: https://truecharts.org/img/hotlink-ok/chart-icons/littlelink.png +deprecated: false +sources: + - https://github.com/techno-tim/littlelink-server + - https://github.com/sethcottle/littlelink + - https://github.com/truecharts/charts/tree/master/charts/stable/littlelink + - https://ghcr.io/techno-tim/littlelink-server +maintainers: + - name: TrueCharts + email: info@truecharts.org + url: https://truecharts.org +keywords: + - littlelink +dependencies: + - name: common + version: 14.3.5 + repository: https://library-charts.truecharts.org + condition: "" + alias: "" + tags: [] + import-values: [] +annotations: + max_scale_version: 23.10.1 + min_scale_version: 22.12.4 + truecharts.org/SCALE-support: "true" + truecharts.org/category: social + truecharts.org/max_helm_version: "3.13" + truecharts.org/min_helm_version: "3.12" + truecharts.org/train: stable diff --git a/stable/remmina/7.0.12/README.md b/stable/littlelink/10.0.47/README.md similarity index 100% rename from stable/remmina/7.0.12/README.md rename to stable/littlelink/10.0.47/README.md diff --git a/stable/littlelink/10.0.47/app-changelog.md b/stable/littlelink/10.0.47/app-changelog.md new file mode 100644 index 00000000000..7e65b5e1dfa --- /dev/null +++ b/stable/littlelink/10.0.47/app-changelog.md @@ -0,0 +1,9 @@ + + +## [littlelink-10.0.47](https://github.com/truecharts/charts/compare/littlelink-10.0.46...littlelink-10.0.47) (2023-12-06) + +### Chore + +- update container image ghcr.io/techno-tim/littlelink-server to latest[@34e811f](https://github.com/34e811f) ([#15811](https://github.com/truecharts/charts/issues/15811)) + + \ No newline at end of file diff --git a/stable/littlelink/10.0.47/app-readme.md b/stable/littlelink/10.0.47/app-readme.md new file mode 100644 index 00000000000..0221199b77f --- /dev/null +++ b/stable/littlelink/10.0.47/app-readme.md @@ -0,0 +1,8 @@ +Easy platform to combine all your social links + +This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/charts/stable/littlelink](https://truecharts.org/charts/stable/littlelink) + +--- + +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/remmina/7.0.12/charts/common-14.3.5.tgz b/stable/littlelink/10.0.47/charts/common-14.3.5.tgz similarity index 100% rename from stable/remmina/7.0.12/charts/common-14.3.5.tgz rename to stable/littlelink/10.0.47/charts/common-14.3.5.tgz diff --git a/stable/littlelink/10.0.47/ix_values.yaml b/stable/littlelink/10.0.47/ix_values.yaml new file mode 100644 index 00000000000..e26ab06705f --- /dev/null +++ b/stable/littlelink/10.0.47/ix_values.yaml @@ -0,0 +1,41 @@ +image: + repository: ghcr.io/techno-tim/littlelink-server + pullPolicy: IfNotPresent + tag: latest@sha256:34e811f4d79d62e3652421b7040615d9853e2253e22dff8bf5f3d30b7c117351 +service: + main: + ports: + main: + port: 10040 + targetPort: 3000 +littlelink: + meta_title: "techno tim" + meta_description: "techno tim link page" + meta_author: "techno tim" + theme: "dark" + favicon_url: "https://pbs.twimg.com/profile_images/1286144221217316864/qiaskopb_200x200.jpg" + avatar_url: "https://pbs.twimg.com/profile_images/1286144221217316864/qiaskopb_200x200.jpg" + avatar_2x_url: "https://pbs.twimg.com/profile_images/1286144221217316864/qiaskopb_400x400.jpg" + avatar_alt: "techno tim profile pic" + name: "technotim" + bio: "hey! just a place where you can connect with me!" + github: "https://github.com/timothystewart6" + twitter: "https://twitter.com/technotimlive" + instagram: "https://www.instagram.com/techno.tim" + youtube: "https://www.youtube.com/channel/ucok-ghyjcwznj3br4oxwh0a" + twitch: "https://www.twitch.tv/technotim/" + discord: "https://discord.gg/djkexrj" + tiktok: "https://www.tiktok.com/@technotim" + kit: "https://kit.co/technotim" + footer: "thanks for stopping by!" +portal: + open: + enabled: true +workload: + main: + podSpec: + containers: + main: + envFrom: + - configMapRef: + name: config diff --git a/stable/drawio/6.0.28/questions.yaml b/stable/littlelink/10.0.47/questions.yaml similarity index 86% rename from stable/drawio/6.0.28/questions.yaml rename to stable/littlelink/10.0.47/questions.yaml index 4eb0e4d510d..6fc8ce2b7e1 100644 --- a/stable/drawio/6.0.28/questions.yaml +++ b/stable/littlelink/10.0.47/questions.yaml @@ -100,6 +100,8 @@ questions: 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..." @@ -150,6 +152,329 @@ questions: schema: type: string + - variable: littlelink + label: "" + group: "App Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: meta_title + label: "meta title" + schema: + type: string + default: "" + - variable: meta_description + label: "meta description" + schema: + type: string + default: "" + - variable: meta_author + label: "meta_author" + schema: + type: string + default: "" + - variable: lang + label: "lang" + schema: + type: string + default: "" + - variable: meta_index_status + label: "meta_index_status" + schema: + type: string + default: "" + - variable: ga_tracking_id + label: "ga_tracking_id" + schema: + type: string + default: "" + - variable: theme + label: "theme" + schema: + type: string + default: "" + - variable: favicon_url + label: "favicon_url" + schema: + type: string + default: "" + - variable: avatar_url + label: "avatar_url" + schema: + type: string + default: "" + - variable: avatar_2x_url + label: "avatar_2x_url" + schema: + type: string + default: "" + - variable: avatar_alt + label: "avatar_alt" + schema: + type: string + default: "" + - variable: name + label: "name" + schema: + type: string + default: "" + - variable: bio + label: "bio" + schema: + type: string + default: "" + - variable: github + label: "github" + schema: + type: string + default: "" + - variable: twitter + label: "twitter" + schema: + type: string + default: "" + - variable: instagram + label: "instagram" + schema: + type: string + default: "" + - variable: youtube + label: "youtube" + schema: + type: string + default: "" + - variable: twitch + label: "twitch" + schema: + type: string + default: "" + - variable: discord + label: "discord" + schema: + type: string + default: "" + - variable: tiktok + label: "tiktok" + schema: + type: string + default: "" + - variable: kit + label: "kit" + schema: + type: string + default: "" + - variable: facebook + label: "facebook" + schema: + type: string + default: "" + - variable: facebook_messenger + label: "facebook_messenger" + schema: + type: string + default: "" + - variable: linked_in + label: "linked_in" + schema: + type: string + default: "" + - variable: product_hunt + label: "product_hunt" + schema: + type: string + default: "" + - variable: snapchat + label: "snapchat" + schema: + type: string + default: "" + - variable: spotify + label: "spotify" + schema: + type: string + default: "" + - variable: reddit + label: "reddit" + schema: + type: string + default: "" + - variable: medium + label: "medium" + schema: + type: string + default: "" + - variable: pinterest + label: "pinterest" + schema: + type: string + default: "" + - variable: email + label: "email" + schema: + type: string + default: "" + - variable: email_text + label: "email_text" + schema: + type: string + default: "" + - variable: email_alt + label: "email_alt" + schema: + type: string + default: "" + - variable: email_alt_text + label: "email_alt_text" + schema: + type: string + default: "" + - variable: sound_cloud + label: "sound_cloud" + schema: + type: string + default: "" + - variable: figma + label: "figma" + schema: + type: string + default: "" + - variable: telegram + label: "telegram" + schema: + type: string + default: "" + - variable: tumblr + label: "tumblr" + schema: + type: string + default: "" + - variable: steam + label: "steam" + schema: + type: string + default: "" + - variable: vimeo + label: "vimeo" + schema: + type: string + default: "" + - variable: wordpress + label: "wordpressp" + schema: + type: string + default: "" + - variable: goodreads + label: "goodreads" + schema: + type: string + default: "" + - variable: skoob + label: "skoob" + schema: + type: string + default: "" + - variable: letterboxd + label: "letterboxd" + schema: + type: string + default: "" + - variable: mastodon + label: "mastodon" + schema: + type: string + default: "" + - variable: micro_blog + label: "micro_blog" + schema: + type: string + default: "" + - variable: whatsapp + label: "whatsapp" + schema: + type: string + default: "" + - variable: strava + label: "strava" + schema: + type: string + default: "" + - variable: buymeacoffee + label: "buymeacoffee" + schema: + type: string + default: "" + - variable: gitlab + label: "gitlab" + schema: + type: string + default: "" + - variable: patreon + label: "patreon" + schema: + type: string + default: "" + - variable: devto + label: "devto" + schema: + type: string + default: "" + - variable: umami_website_id + label: "umami_website_id" + schema: + type: string + default: "" + - variable: umami_app_url + label: "umami_app_url" + schema: + type: string + default: "" + - variable: paypal + label: "paypal" + schema: + type: string + default: "" + - variable: slack + label: "slack" + schema: + type: string + default: "" + - variable: lastfm + label: "lastfm" + schema: + type: string + default: "" + - variable: untappd + label: "untappd" + schema: + type: string + default: "" + - variable: stackoverflow + label: "stackoverflow" + schema: + type: string + default: "" + - variable: gitea + label: "gitea" + schema: + type: string + default: "" + - variable: polywork + label: "polywork" + schema: + type: string + default: "" + - variable: signal + label: "signal" + schema: + type: string + default: "" + - variable: footer + label: "footer" + schema: + type: string + default: "" + - variable: TZ label: Timezone group: "General Settings" @@ -226,6 +551,44 @@ questions: schema: type: string required: true + + - variable: imagePullSecretList + group: "General Settings" + label: "Image Pull Secrets" + schema: + type: list + default: [] + items: + - variable: pullsecretentry + label: "Pull Secret" + schema: + type: dict + additional_attrs: true + attrs: + - variable: registry + label: "Registry" + schema: + type: string + required: true + default: "https://index.docker.io/v1/" + - variable: username + label: "Username" + schema: + type: string + required: true + default: "" + - variable: password + label: "Password" + schema: + type: string + required: true + default: "" + - variable: email + label: "Email" + schema: + type: string + required: true + default: "" - variable: service group: Networking and Services label: Configure Service(s) @@ -281,7 +644,7 @@ questions: description: "This port exposes the container port on the service" schema: type: int - default: 10214 + default: 10040 required: true - variable: serviceexpert group: Networking and Services @@ -549,6 +912,82 @@ questions: 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 @@ -797,6 +1236,46 @@ questions: type: string default: "" required: true + - variable: integration + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: homepage + label: Homepage + description: Connect ingress with Homepage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: name + label: Name + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: description + label: Description + description: defaults to chart description + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: group + label: Group + schema: + type: string + required: true + default: "default" + show_if: [["enabled", "=", true]] - variable: advanced label: Show Advanced Settings description: Advanced settings are not covered by TrueCharts Support @@ -1024,6 +1503,46 @@ questions: type: string show_if: [["certificateIssuer", "=", ""]] default: "" + - variable: integration + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: homepage + label: Homepage + description: Connect ingress with Homepage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: name + label: Name + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: description + label: Description + description: defaults to chart description + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: group + label: Group + schema: + type: string + required: true + default: "default" + show_if: [["enabled", "=", true]] - variable: entrypoint label: Traefik Entrypoint description: Entrypoint used by Traefik when using Traefik as Ingress Provider @@ -1064,13 +1583,13 @@ questions: description: "The UserID of the user running the application" schema: type: int - default: 0 + default: 568 - variable: runAsGroup label: "runAsGroup" description: "The groupID this App of the user running the application" schema: type: int - default: 0 + default: 568 # Settings from questions.yaml get appended here on a per-app basis - variable: PUID label: Process User ID - PUID diff --git a/stable/remmina/7.0.12/templates/NOTES.txt b/stable/littlelink/10.0.47/templates/NOTES.txt similarity index 100% rename from stable/remmina/7.0.12/templates/NOTES.txt rename to stable/littlelink/10.0.47/templates/NOTES.txt diff --git a/stable/littlelink/10.0.47/templates/_configmap.tpl b/stable/littlelink/10.0.47/templates/_configmap.tpl new file mode 100644 index 00000000000..8a55b503b2d --- /dev/null +++ b/stable/littlelink/10.0.47/templates/_configmap.tpl @@ -0,0 +1,195 @@ +{{/* Define the configmap */}} +{{- define "littlelink.configmap" -}} +enabled: true +data: + {{- if .Values.littlelink.meta_title }} + META_TITLE: {{ .Values.littlelink.meta_title | quote }} + {{- end }} + {{- if .Values.littlelink.meta_description }} + META_DESCRIPTION: {{ .Values.littlelink.meta_description | quote }} + {{- end }} + {{- if .Values.littlelink.meta_author }} + META_AUTHOR: {{ .Values.littlelink.meta_author | quote }} + {{- end }} + {{- if .Values.littlelink.lang }} + LANG: {{ .Values.littlelink.lang | quote }} + {{- end }} + {{- if .Values.littlelink.meta_index_status }} + META_INDEX_STATUS: {{ .Values.littlelink.meta_index_status | quote }} + {{- end }} + {{- if .Values.littlelink.ga_tracking_id }} + GA_TRACKING_ID: {{ .Values.littlelink.ga_tracking_id | quote }} + {{- end }} + {{- if .Values.littlelink.theme }} + THEME: {{ .Values.littlelink.theme | quote }} + {{- end }} + {{- if .Values.littlelink.favicon_url }} + FAVICON_URL: {{ .Values.littlelink.favicon_url | quote }} + {{- end }} + {{- if .Values.littlelink.avatar_url }} + AVATAR_URL: {{ .Values.littlelink.avatar_url | quote }} + {{- end }} + {{- if .Values.littlelink.avatar_2x_url }} + AVATAR_2X_URL: {{ .Values.littlelink.avatar_2x_url | quote }} + {{- end }} + {{- if .Values.littlelink.avatar_alt }} + AVATAR_ALT: {{ .Values.littlelink.avatar_alt | quote }} + {{- end }} + {{- if .Values.littlelink.name }} + NAME: {{ .Values.littlelink.name | quote }} + {{- end }} + {{- if .Values.littlelink.bio }} + BIO: {{ .Values.littlelink.bio | quote }} + {{- end }} + {{- if .Values.littlelink.github }} + GITHUB: {{ .Values.littlelink.github | quote }} + {{- end }} + {{- if .Values.littlelink.twitter }} + TWITTER: {{ .Values.littlelink.twitter | quote }} + {{- end }} + {{- if .Values.littlelink.instagram }} + INSTAGRAM: {{ .Values.littlelink.instagram | quote }} + {{- end }} + {{- if .Values.littlelink.youtube }} + YOUTUBE: {{ .Values.littlelink.youtube | quote }} + {{- end }} + {{- if .Values.littlelink.twitch }} + TWITCH: {{ .Values.littlelink.twitch | quote }} + {{- end }} + {{- if .Values.littlelink.discord }} + DISCORD: {{ .Values.littlelink.discord | quote }} + {{- end }} + {{- if .Values.littlelink.tiktok }} + TIKTOK: {{ .Values.littlelink.tiktok | quote }} + {{- end }} + {{- if .Values.littlelink.kit }} + KIT: {{ .Values.littlelink.kit | quote }} + {{- end }} + {{- if .Values.littlelink.facebook }} + FACEBOOK: {{ .Values.littlelink.facebook | quote }} + {{- end }} + {{- if .Values.littlelink.facebook_messenger }} + FACEBOOK_MESSENGER: {{ .Values.littlelink.facebook_messenger | quote }} + {{- end }} + {{- if .Values.littlelink.linked_in }} + LINKED_IN: {{ .Values.littlelink.linked_in | quote }} + {{- end }} + {{- if .Values.littlelink.product_hunt }} + PRODUCT_HUNT: {{ .Values.littlelink.product_hunt | quote }} + {{- end }} + {{- if .Values.littlelink.snapchat }} + SNAPCHAT: {{ .Values.littlelink.snapchat | quote }} + {{- end }} + {{- if .Values.littlelink.spotify }} + SPOTIFY: {{ .Values.littlelink.spotify | quote }} + {{- end }} + {{- if .Values.littlelink.reddit }} + REDDIT: {{ .Values.littlelink.reddit | quote }} + {{- end }} + {{- if .Values.littlelink.medium }} + MEDIUM: {{ .Values.littlelink.medium | quote }} + {{- end }} + {{- if .Values.littlelink.pinterest }} + PINTEREST: {{ .Values.littlelink.pinterest | quote }} + {{- end }} + {{- if .Values.littlelink.email }} + EMAIL: {{ .Values.littlelink.email | quote }} + {{- end }} + {{- if .Values.littlelink.email_text }} + EMAIL_TEXT: {{ .Values.littlelink.email_text | quote }} + {{- end }} + {{- if .Values.littlelink.email_alt }} + EMAIL_ALT: {{ .Values.littlelink.email_alt | quote }} + {{- end }} + {{- if .Values.littlelink.email_alt_text }} + EMAIL_ALT_TEXT: {{ .Values.littlelink.email_alt_text | quote }} + {{- end }} + {{- if .Values.littlelink.sound_cloud }} + SOUND_CLOUD: {{ .Values.littlelink.sound_cloud | quote }} + {{- end }} + {{- if .Values.littlelink.figma }} + FIGMA: {{ .Values.littlelink.figma | quote }} + {{- end }} + {{- if .Values.littlelink.telegram }} + TELEGRAM: {{ .Values.littlelink.telegram | quote }} + {{- end }} + {{- if .Values.littlelink.tumblr }} + TUMBLR: {{ .Values.littlelink.tumblr | quote }} + {{- end }} + {{- if .Values.littlelink.steam }} + STEAM: {{ .Values.littlelink.steam | quote }} + {{- end }} + {{- if .Values.littlelink.vimeo }} + VIMEO: {{ .Values.littlelink.vimeo | quote }} + {{- end }} + {{- if .Values.littlelink.wordpress }} + WORDPRESS: {{ .Values.littlelink.wordpress | quote }} + {{- end }} + {{- if .Values.littlelink.goodreads }} + GOODREADS: {{ .Values.littlelink.goodreads | quote }} + {{- end }} + {{- if .Values.littlelink.skoob }} + SKOOB: {{ .Values.littlelink.skoob | quote }} + {{- end }} + {{- if .Values.littlelink.letterboxd }} + LETTERBOXD: {{ .Values.littlelink.letterboxd | quote }} + {{- end }} + {{- if .Values.littlelink.mastodon }} + MASTODON: {{ .Values.littlelink.mastodon | quote }} + {{- end }} + {{- if .Values.littlelink.micro_blog }} + MICRO_BLOG: {{ .Values.littlelink.micro_blog | quote }} + {{- end }} + {{- if .Values.littlelink.whatsapp }} + WHATSAPP: {{ .Values.littlelink.whatsapp | quote }} + {{- end }} + {{- if .Values.littlelink.strava }} + STRAVA: {{ .Values.littlelink.strava | quote }} + {{- end }} + {{- if .Values.littlelink.buymeacoffee }} + BUYMEACOFFEE: {{ .Values.littlelink.buymeacoffee | quote }} + {{- end }} + {{- if .Values.littlelink.gitlab }} + GITLAB: {{ .Values.littlelink.gitlab | quote }} + {{- end }} + {{- if .Values.littlelink.patreon }} + PATREON: {{ .Values.littlelink.patreon | quote }} + {{- end }} + {{- if .Values.littlelink.devto }} + DEVTO: {{ .Values.littlelink.devto | quote }} + {{- end }} + {{- if .Values.littlelink.umami_website_id }} + UMAMI_WEBSITE_ID: {{ .Values.littlelink.umami_website_id | quote }} + {{- end }} + {{- if .Values.littlelink.umami_app_url }} + UMAMI_APP_URL: {{ .Values.littlelink.umami_app_url | quote }} + {{- end }} + {{- if .Values.littlelink.paypal }} + PAYPAL: {{ .Values.littlelink.paypal | quote }} + {{- end }} + {{- if .Values.littlelink.slack }} + SLACK: {{ .Values.littlelink.slack | quote }} + {{- end }} + {{- if .Values.littlelink.lastfm }} + LASTFM: {{ .Values.littlelink.lastfm | quote }} + {{- end }} + {{- if .Values.littlelink.untappd }} + UNTAPPD: {{ .Values.littlelink.untappd | quote }} + {{- end }} + {{- if .Values.littlelink.stackoverflow }} + STACKOVERFLOW: {{ .Values.littlelink.stackoverflow | quote }} + {{- end }} + {{- if .Values.littlelink.gitea }} + GITEA: {{ .Values.littlelink.gitea | quote }} + {{- end }} + {{- if .Values.littlelink.polywork }} + POLYWORK: {{ .Values.littlelink.polywork | quote }} + {{- end }} + {{- if .Values.littlelink.signal }} + SIGNAL: {{ .Values.littlelink.signal | quote }} + {{- end }} + {{- if .Values.littlelink.footer }} + FOOTER: {{ .Values.littlelink.footer | quote }} + {{- end }} + +{{- end -}} diff --git a/stable/littlelink/10.0.47/templates/common.yaml b/stable/littlelink/10.0.47/templates/common.yaml new file mode 100644 index 00000000000..a759b19a618 --- /dev/null +++ b/stable/littlelink/10.0.47/templates/common.yaml @@ -0,0 +1,11 @@ +{{/* Make sure all variables are set properly */}} +{{- include "tc.v1.common.loader.init" . }} + +{{/* Render configmap for littlelink */}} +{{- $configmap := include "littlelink.configmap" . | fromYaml -}} +{{- if $configmap -}} +{{- $_ := set .Values.configmap "config" $configmap -}} +{{- end -}} + +{{/* Render the templates */}} +{{ include "tc.v1.common.loader.apply" . }} diff --git a/stable/remmina/7.0.12/values.yaml b/stable/littlelink/10.0.47/values.yaml similarity index 100% rename from stable/remmina/7.0.12/values.yaml rename to stable/littlelink/10.0.47/values.yaml diff --git a/stable/mattermost/9.0.58/app-changelog.md b/stable/mattermost/9.0.58/app-changelog.md deleted file mode 100644 index 2a091932b6a..00000000000 --- a/stable/mattermost/9.0.58/app-changelog.md +++ /dev/null @@ -1,9 +0,0 @@ - - -## [mattermost-9.0.58](https://github.com/truecharts/charts/compare/mattermost-9.0.57...mattermost-9.0.58) (2023-12-06) - -### Chore - -- update container image mattermost/mattermost-enterprise-edition to release-9.3[@706fa01](https://github.com/706fa01) ([#15773](https://github.com/truecharts/charts/issues/15773)) - - \ No newline at end of file diff --git a/stable/mattermost/9.0.58/CHANGELOG.md b/stable/mattermost/9.0.59/CHANGELOG.md similarity index 93% rename from stable/mattermost/9.0.58/CHANGELOG.md rename to stable/mattermost/9.0.59/CHANGELOG.md index 4b38f67622e..6f273086ecd 100644 --- a/stable/mattermost/9.0.58/CHANGELOG.md +++ b/stable/mattermost/9.0.59/CHANGELOG.md @@ -4,6 +4,15 @@ +## [mattermost-9.0.59](https://github.com/truecharts/charts/compare/mattermost-9.0.58...mattermost-9.0.59) (2023-12-06) + +### Chore + +- update container image mattermost/mattermost-enterprise-edition to release-9.3[@4d3e482](https://github.com/4d3e482) ([#15812](https://github.com/truecharts/charts/issues/15812)) + + + + ## [mattermost-9.0.58](https://github.com/truecharts/charts/compare/mattermost-9.0.57...mattermost-9.0.58) (2023-12-06) ### Chore @@ -88,12 +97,3 @@ ## [mattermost-9.0.58](https://github.com/truecharts/charts/compare/mattermost-9.0.57...mattermost-9.0.58) (2023-12-06) ### Chore - -- update container image mattermost/mattermost-enterprise-edition to release-9.3[@706fa01](https://github.com/706fa01) ([#15773](https://github.com/truecharts/charts/issues/15773)) - - - - -## [mattermost-9.0.58](https://github.com/truecharts/charts/compare/mattermost-9.0.57...mattermost-9.0.58) (2023-12-05) - -### Chore diff --git a/stable/mattermost/9.0.58/Chart.yaml b/stable/mattermost/9.0.59/Chart.yaml similarity index 98% rename from stable/mattermost/9.0.58/Chart.yaml rename to stable/mattermost/9.0.59/Chart.yaml index ab636729991..626d1367d52 100644 --- a/stable/mattermost/9.0.58/Chart.yaml +++ b/stable/mattermost/9.0.59/Chart.yaml @@ -1,7 +1,7 @@ kubeVersion: ">=1.24.0" apiVersion: v2 name: mattermost -version: 9.0.58 +version: 9.0.59 appVersion: "9.3" description: Mattermost is an open source platform for secure collaboration across diff --git a/stable/rsshub/8.0.286/README.md b/stable/mattermost/9.0.59/README.md similarity index 100% rename from stable/rsshub/8.0.286/README.md rename to stable/mattermost/9.0.59/README.md diff --git a/stable/mattermost/9.0.59/app-changelog.md b/stable/mattermost/9.0.59/app-changelog.md new file mode 100644 index 00000000000..97a512415b6 --- /dev/null +++ b/stable/mattermost/9.0.59/app-changelog.md @@ -0,0 +1,9 @@ + + +## [mattermost-9.0.59](https://github.com/truecharts/charts/compare/mattermost-9.0.58...mattermost-9.0.59) (2023-12-06) + +### Chore + +- update container image mattermost/mattermost-enterprise-edition to release-9.3[@4d3e482](https://github.com/4d3e482) ([#15812](https://github.com/truecharts/charts/issues/15812)) + + \ No newline at end of file diff --git a/stable/mattermost/9.0.58/app-readme.md b/stable/mattermost/9.0.59/app-readme.md similarity index 100% rename from stable/mattermost/9.0.58/app-readme.md rename to stable/mattermost/9.0.59/app-readme.md diff --git a/stable/rsshub/8.0.286/charts/common-14.3.5.tgz b/stable/mattermost/9.0.59/charts/common-14.3.5.tgz similarity index 100% rename from stable/rsshub/8.0.286/charts/common-14.3.5.tgz rename to stable/mattermost/9.0.59/charts/common-14.3.5.tgz diff --git a/stable/mattermost/9.0.58/ix_values.yaml b/stable/mattermost/9.0.59/ix_values.yaml similarity index 92% rename from stable/mattermost/9.0.58/ix_values.yaml rename to stable/mattermost/9.0.59/ix_values.yaml index 6ebe19a07c0..c3c782d3fe6 100644 --- a/stable/mattermost/9.0.58/ix_values.yaml +++ b/stable/mattermost/9.0.59/ix_values.yaml @@ -1,6 +1,6 @@ image: repository: mattermost/mattermost-enterprise-edition - tag: release-9.3@sha256:706fa0121558c90d213ebb714cfd0e9b4d339bce1937ba29021de214132d83aa + tag: release-9.3@sha256:4d3e48262ad86437d702df22e531ecfabf0122f56f6b496dd6e555f2a393558c pullPolicy: IfNotPresent workload: main: diff --git a/stable/mattermost/9.0.58/questions.yaml b/stable/mattermost/9.0.59/questions.yaml similarity index 100% rename from stable/mattermost/9.0.58/questions.yaml rename to stable/mattermost/9.0.59/questions.yaml diff --git a/stable/rsshub/8.0.286/templates/NOTES.txt b/stable/mattermost/9.0.59/templates/NOTES.txt similarity index 100% rename from stable/rsshub/8.0.286/templates/NOTES.txt rename to stable/mattermost/9.0.59/templates/NOTES.txt diff --git a/stable/mattermost/9.0.58/templates/common.yaml b/stable/mattermost/9.0.59/templates/common.yaml similarity index 100% rename from stable/mattermost/9.0.58/templates/common.yaml rename to stable/mattermost/9.0.59/templates/common.yaml diff --git a/stable/rsshub/8.0.286/values.yaml b/stable/mattermost/9.0.59/values.yaml similarity index 100% rename from stable/rsshub/8.0.286/values.yaml rename to stable/mattermost/9.0.59/values.yaml diff --git a/stable/remmina/7.0.12/app-changelog.md b/stable/remmina/7.0.12/app-changelog.md deleted file mode 100644 index 080e7058f04..00000000000 --- a/stable/remmina/7.0.12/app-changelog.md +++ /dev/null @@ -1,11 +0,0 @@ - - -## [remmina-7.0.12](https://github.com/truecharts/charts/compare/remmina-7.0.11...remmina-7.0.12) (2023-12-03) - -### Chore - -- bump everything to ensure catalog has latest versions - - fix annotations again - - update annotations - - \ No newline at end of file diff --git a/stable/remmina/7.0.12/CHANGELOG.md b/stable/remmina/7.0.13/CHANGELOG.md similarity index 88% rename from stable/remmina/7.0.12/CHANGELOG.md rename to stable/remmina/7.0.13/CHANGELOG.md index 6b9afb4eb97..1d9b50bdd27 100644 --- a/stable/remmina/7.0.12/CHANGELOG.md +++ b/stable/remmina/7.0.13/CHANGELOG.md @@ -4,6 +4,15 @@ +## [remmina-7.0.13](https://github.com/truecharts/charts/compare/remmina-7.0.12...remmina-7.0.13) (2023-12-06) + +### Chore + +- update container image ghcr.io/linuxserver/remmina to 1.4.2[@3be6679](https://github.com/3be6679) ([#15810](https://github.com/truecharts/charts/issues/15810)) + + + + ## [remmina-7.0.12](https://github.com/truecharts/charts/compare/remmina-7.0.11...remmina-7.0.12) (2023-12-03) ### Chore @@ -88,12 +97,3 @@ - update helm general non-major ([#14094](https://github.com/truecharts/charts/issues/14094)) - - - -## [remmina-7.0.3](https://github.com/truecharts/charts/compare/remmina-7.0.1...remmina-7.0.3) (2023-10-28) - -### Chore - -- Fix typo in categories and make them singular ([#13693](https://github.com/truecharts/charts/issues/13693)) - diff --git a/stable/remmina/7.0.12/Chart.yaml b/stable/remmina/7.0.13/Chart.yaml similarity index 98% rename from stable/remmina/7.0.12/Chart.yaml rename to stable/remmina/7.0.13/Chart.yaml index 4aae89e0fc8..40466d21b74 100644 --- a/stable/remmina/7.0.12/Chart.yaml +++ b/stable/remmina/7.0.13/Chart.yaml @@ -1,17 +1,17 @@ kubeVersion: ">=1.24.0" apiVersion: v2 name: remmina -version: 7.0.12 +version: 7.0.13 appVersion: 1.4.2 description: A remote desktop client written in GTK home: https://truecharts.org/charts/stable/remmina icon: https://truecharts.org/img/hotlink-ok/chart-icons/remmina.png deprecated: false sources: - - https://github.com/linuxserver/docker-remmina - https://remmina.org/ - https://github.com/truecharts/charts/tree/master/charts/stable/remmina - https://ghcr.io/linuxserver/remmina + - https://github.com/linuxserver/docker-remmina maintainers: - name: TrueCharts email: info@truecharts.org diff --git a/stable/remmina/7.0.13/README.md b/stable/remmina/7.0.13/README.md new file mode 100644 index 00000000000..e0a9b8fa8d7 --- /dev/null +++ b/stable/remmina/7.0.13/README.md @@ -0,0 +1,27 @@ +# README + +## General Info + +TrueCharts can be installed as both *normal* Helm Charts or as Apps on TrueNAS SCALE. +However only installations using the TrueNAS SCALE Apps system are supported. + +For more information about this App, please check the docs on the TrueCharts [website](https://truecharts.org/charts/stable/) + +**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/remmina/7.0.13/app-changelog.md b/stable/remmina/7.0.13/app-changelog.md new file mode 100644 index 00000000000..01ea7a62515 --- /dev/null +++ b/stable/remmina/7.0.13/app-changelog.md @@ -0,0 +1,9 @@ + + +## [remmina-7.0.13](https://github.com/truecharts/charts/compare/remmina-7.0.12...remmina-7.0.13) (2023-12-06) + +### Chore + +- update container image ghcr.io/linuxserver/remmina to 1.4.2[@3be6679](https://github.com/3be6679) ([#15810](https://github.com/truecharts/charts/issues/15810)) + + \ No newline at end of file diff --git a/stable/remmina/7.0.12/app-readme.md b/stable/remmina/7.0.13/app-readme.md similarity index 100% rename from stable/remmina/7.0.12/app-readme.md rename to stable/remmina/7.0.13/app-readme.md diff --git a/stable/remmina/7.0.13/charts/common-14.3.5.tgz b/stable/remmina/7.0.13/charts/common-14.3.5.tgz new file mode 100644 index 0000000000000000000000000000000000000000..58fbc6f4962aed33ebff0850b663611ec736857f GIT binary patch literal 73073 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 ThtK~X009602~<;E01ycP + Format should be 3 digits, e.g. 770 + schema: + type: string + valid_chars: '[0-9]{3}' + default: "" + - variable: recursive + label: Recursive + description: | + It will run CHOWN and CHMOD recursively + schema: + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - variable: hostPath + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: medium + label: EmptyDir Medium + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: Memory + description: Memory + - variable: size + label: Size quotum of Storage (Do NOT REDUCE after installation) + description: This value can ONLY be INCREASED after the installation + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: storageClass + label: 'storageClass (Advanced)' + description: 'sets the storageClass to something other than iX default. Only for advanced usecases!' + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "" + - variable: static + label: 'Static Fixed PVC Bindings (Experimental)' + description: Link a PVC to a specific storage location + schema: + show_if: [["type", "=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: mode + label: mode + description: | + disabled: use normal dynamic PVCs + smb: connect to an SMB share + nfs: connect to an NFS share + schema: + type: string + default: "disabled" + enum: + - value: disabled + description: disabled + - value: smb + description: smb + - value: nfs + description: nfs + - variable: server + label: Server + description: server to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "myserver" + - variable: share + label: Share + description: share to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "/myshare" + - variable: user + label: User + description: connecting user + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "myuser" + - variable: domain + label: Domain + description: user domain + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: password + label: Password + description: connecting password + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: volumeSnapshots + label: 'Volume Snapshots (Experimental)' + description: Add an entry to the list to force creation of a volumeSnapshot of this PVC + schema: + show_if: [["type", "=", "pvc"]] + type: list + default: [] + items: + - variable: volumeSnapshotEntry + label: Custom volumeSnapshot + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: 'WARNING: renaming this, means deletion of the snapshot with the old name!' + schema: + type: string + default: "mysnapshot" + required: true + - variable: volumeSnapshotClassName + label: 'volumeSnapshot Class Name (Advanced)' + description: For use with PVCs using a non-default storageClass + schema: + type: string + default: "" + - variable: persistenceList + label: Additional App Storage + group: Storage and Persistence + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: Custom Storage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the storage + schema: + type: boolean + default: true + hidden: true + - variable: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: hostPath + enum: + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: emptyDir + description: emptyDir + - value: nfs + description: NFS Share + - variable: server + label: NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: path + label: Path on NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: iscsi + label: iSCSI Options + schema: + show_if: [["type", "=", "iscsi"]] + type: dict + additional_attrs: true + attrs: + - variable: targetPortal + label: targetPortal + schema: + type: string + required: true + default: "" + - variable: iqn + label: iqn + schema: + type: string + required: true + default: "" + - variable: lun + label: lun + schema: + type: int + default: 0 + - variable: authSession + label: authSession + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: authDiscovery + label: authDiscovery + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: autoPermissions + label: Automatic Permissions Configuration + description: Automatically set permissions + schema: + show_if: [["type", "!=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: chown + label: Run CHOWN + description: | + It will run CHOWN on the path with the given fsGroup + schema: + type: boolean + default: false + - variable: chmod + label: Run CHMOD + description: | + It will run CHMOD on the path with the given value
+ Format should be 3 digits, e.g. 770 + schema: + type: string + valid_chars: '[0-9]{3}' + default: "" + - variable: recursive + label: Recursive + description: | + It will run CHOWN and CHMOD recursively + schema: + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - variable: hostPath + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: Mount Path + description: Path inside the container the storage is mounted + schema: + type: string + default: "" + required: true + valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' + - variable: medium + label: EmptyDir Medium + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: Memory + description: Memory + - variable: size + label: Size Quotum of Storage + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: storageClass + label: 'storageClass (Advanced)' + description: 'sets the storageClass to something other than iX default. Only for advanced usecases!' + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "" + - variable: static + label: 'Static Fixed PVC Bindings (Experimental)' + description: Link a PVC to a specific storage location + schema: + show_if: [["type", "=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: mode + label: mode + description: | + disabled: use normal dynamic PVCs + smb: connect to an SMB share + nfs: connect to an NFS share + schema: + type: string + default: "disabled" + enum: + - value: "disabled" + description: disabled + - value: smb + description: smb + - value: nfs + description: nfs + - variable: server + label: Server + description: server to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "myserver" + - variable: share + label: Share + description: share to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "/myshare" + - variable: user + label: User + description: connecting user + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "myuser" + - variable: domain + label: Domain + description: user domain + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: password + label: Password + description: connecting password + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: volumeSnapshots + label: 'Volume Snapshots (Experimental)' + description: Add an entry to the list to force creation of a volumeSnapshot of this PVC + schema: + show_if: [["type", "=", "pvc"]] + type: list + default: [] + items: + - variable: volumeSnapshotEntry + label: Custom volumeSnapshot + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: 'WARNING: renaming this, means deletion of the snapshot with the old name!' + schema: + type: string + default: "mysnapshot" + required: true + - variable: volumeSnapshotClassName + label: 'volumeSnapshot Class Name (Advanced)' + description: For use with PVCs using a non-default storageClass + schema: + type: string + default: "" + - variable: ingress + label: "" + group: Ingress + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Ingress + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: Hosts + schema: + type: list + default: [] + items: + - variable: hostEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: host + label: HostName + schema: + type: string + default: "" + required: true + - variable: paths + label: Paths + schema: + type: list + default: [{path: "/", pathType: "Prefix"}] + items: + - variable: pathEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: path + label: Path + schema: + type: string + required: true + default: "/" + - variable: pathType + label: Path Type + schema: + type: string + required: true + default: Prefix + - variable: certificateIssuer + label: Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates. Cannot be used combined with tls option below' + schema: + type: string + default: "" + - variable: middlewares + label: Traefik Middlewares + description: Add previously created Traefik Middlewares to this Ingress + schema: + type: list + default: [] + items: + - variable: name + label: Name + schema: + type: string + default: "" + required: true + - variable: integration + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: homepage + label: Homepage + description: Connect ingress with Homepage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: name + label: Name + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: description + label: Description + description: defaults to chart description + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: group + label: Group + schema: + type: string + required: true + default: "default" + show_if: [["enabled", "=", true]] + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + - variable: entrypoint + label: (Advanced) Traefik Entrypoint + description: Entrypoint used by Traefik when using Traefik as Ingress Provider + schema: + type: string + default: websecure + show_if: [["advanced", "=", true]] + required: true + - variable: allowCors + label: "Allow Cross Origin Requests" + schema: + type: boolean + show_if: [["advanced", "=", true]] + default: false + - variable: ingressClassName + label: (Advanced/Optional) IngressClass Name + schema: + type: string + show_if: [["advanced", "=", true]] + default: "" + - variable: tls + label: TLS-Settings + schema: + type: list + show_if: [["advanced", "=", true]] + default: [] + items: + - variable: tlsEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: hosts + label: Certificate Hosts + schema: + type: list + default: [] + items: + - variable: host + label: Host + schema: + type: string + default: "" + required: true + + - variable: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: 'Use Custom Certificate Secret (Advanced)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: string + default: "" + - variable: scaleCert + label: 'Use TrueNAS SCALE Certificate (Deprecated)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - variable: ingressList + label: Add Manual Custom Ingresses + group: Ingress + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: Custom Ingress + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Ingress + schema: + type: boolean + default: true + hidden: true + - variable: name + label: Name + schema: + type: string + default: "" + - variable: ingressClassName + label: IngressClass Name + schema: + type: string + default: "" + - variable: allowCors + label: "Allow Cross Origin Requests" + schema: + type: boolean + show_if: [["advanced", "=", true]] + default: false + - variable: hosts + label: Hosts + schema: + type: list + default: [] + items: + - variable: hostEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: host + label: HostName + schema: + type: string + default: "" + required: true + - variable: paths + label: Paths + schema: + type: list + default: [] + items: + - variable: pathEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: path + label: Path + schema: + type: string + required: true + default: "/" + - variable: pathType + label: Path Type + schema: + type: string + required: true + default: Prefix + - variable: service + label: Linked Service + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Service Name + schema: + type: string + default: "" + - variable: port + label: Service Port + schema: + type: int + - variable: certificateIssuer + label: certificateIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates. Cannot be used combined with tls option below' + schema: + type: string + default: "" + - variable: tls + label: TLS-Settings + schema: + type: list + default: [] + show_if: [["certificateIssuer", "=", ""]] + items: + - variable: tlsEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: hosts + label: Certificate Hosts + schema: + type: list + default: [] + items: + - variable: host + label: Host + schema: + type: string + default: "" + required: true + - variable: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your Cert-Manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: scaleCert + label: Use TrueNAS SCALE Certificate (Deprecated) + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: Use Custom Secret (Advanced) + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: integration + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: homepage + label: Homepage + description: Connect ingress with Homepage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: name + label: Name + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: description + label: Description + description: defaults to chart description + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: group + label: Group + schema: + type: string + required: true + default: "default" + show_if: [["enabled", "=", true]] + - variable: entrypoint + label: Traefik Entrypoint + description: Entrypoint used by Traefik when using Traefik as Ingress Provider + schema: + type: string + default: websecure + required: true + - variable: middlewares + label: Traefik Middlewares + description: Add previously created Traefik Middlewares to this Ingress + schema: + type: list + default: [] + items: + - variable: name + label: Name + schema: + type: string + default: "" + required: true + - variable: securityContext + group: Security and Permissions + label: Security Context + schema: + additional_attrs: true + type: dict + attrs: + - variable: container + label: Container + schema: + additional_attrs: true + type: dict + attrs: + # Settings from questions.yaml get appended here on a per-app basis + + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 0 + - variable: runAsGroup + label: "runAsGroup" + description: "The groupID this App 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: certificateIssuer + label: Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates. Cannot be used combined with tls option below' + schema: + type: string + default: "" + - variable: middlewares + label: Traefik Middlewares + description: Add previously created Traefik Middlewares to this Ingress + schema: + type: list + default: [] + items: + - variable: name + label: Name + schema: + type: string + default: "" + required: true + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + - variable: entrypoint + label: (Advanced) Traefik Entrypoint + description: Entrypoint used by Traefik when using Traefik as Ingress Provider + schema: + type: string + default: websecure + show_if: [["advanced", "=", true]] + required: true + - variable: allowCors + label: "Allow Cross Origin Requests" + schema: + type: boolean + show_if: [["advanced", "=", true]] + default: false + - variable: ingressClassName + label: (Advanced/Optional) IngressClass Name + schema: + type: string + show_if: [["advanced", "=", true]] + default: "" + - variable: tls + label: TLS-Settings + schema: + type: list + show_if: [["advanced", "=", true]] + default: [] + items: + - variable: tlsEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: hosts + label: Certificate Hosts + schema: + type: list + default: [] + items: + - variable: host + label: Host + schema: + type: string + default: "" + required: true + - variable: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: 'Use Custom Certificate Secret (Advanced)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: string + default: "" + - variable: scaleCert + label: 'Use TrueNAS SCALE Certificate (Deprecated)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - variable: envList + label: Codeserver Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + - variable: netshoot + label: Netshoot + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: envList + label: Netshoot Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + - variable: vpn + label: VPN + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type + schema: + type: string + default: disabled + enum: + - value: disabled + description: disabled + - value: gluetun + description: Gluetun + - value: tailscale + description: Tailscale + - value: openvpn + description: OpenVPN (Deprecated) + - value: wireguard + description: Wireguard (Deprecated) + - variable: openvpn + label: OpenVPN Settings + schema: + additional_attrs: true + type: dict + show_if: [["type", "=", "openvpn"]] + attrs: + - variable: username + label: Authentication Username (Optional) + description: Authentication Username, Optional + schema: + type: string + default: "" + - variable: password + label: Authentication Password + description: Authentication Credentials + schema: + type: string + show_if: [["username", "!=", ""]] + default: "" + required: true + - variable: tailscale + label: Tailscale Settings + schema: + additional_attrs: true + type: dict + show_if: [["type", "=", "tailscale"]] + attrs: + - variable: authkey + label: Authentication Key + description: Provide an auth key to automatically authenticate the node as your user account. + schema: + type: string + private: true + default: "" + - variable: auth_once + label: Auth Once + description: Only attempt to log in if not already logged in. + schema: + type: boolean + default: true + - variable: accept_dns + label: Accept DNS + description: Accept DNS configuration from the admin console. + schema: + type: boolean + default: false + - variable: userspace + label: Userspace + description: Userspace Networking mode allows running Tailscale where you do not have access to create a VPN tunnel device. + schema: + type: boolean + default: false + - variable: routes + label: Routes + description: Expose physical subnet routes to your entire Tailscale network. + schema: + type: string + default: "" + - variable: dest_ip + label: Destination IP + description: Tells the DNAT mechanism which Destination IP to set in the IP header, and where to send packets that are matched. + schema: + type: string + default: "" + - variable: sock5_server + label: Sock5 Server + description: The address on which to listen for SOCKS5 proxying into the tailscale net. + schema: + type: string + default: "" + - variable: outbound_http_proxy_listen + label: Outbound HTTP Proxy Listen + description: The address on which to listen for HTTP proxying into the tailscale net. + schema: + type: string + default: "" + - variable: extra_args + label: Extra Args + description: Extra Args + schema: + type: string + default: "" + - variable: daemon_extra_args + label: Tailscale Daemon Extra Args + description: Tailscale Daemon Extra Args + schema: + type: string + default: "" + - variable: killSwitch + label: Enable Killswitch + schema: + type: boolean + show_if: [["type", "!=", "disabled"]] + default: true + - variable: excludedNetworks_IPv4 + label: Killswitch Excluded IPv4 networks + description: List of Killswitch Excluded IPv4 Addresses + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: networkv4 + label: IPv4 Network + schema: + type: string + required: true + - variable: excludedNetworks_IPv6 + label: Killswitch Excluded IPv6 networks + description: "List of Killswitch Excluded IPv6 Addresses" + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: networkv6 + label: IPv6 Network + schema: + type: string + required: true + - variable: configFile + label: VPN Config File Location + schema: + type: string + show_if: [["type", "!=", "disabled"]] + default: "" + + - variable: envList + label: VPN Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + max_length: 10240 + - variable: docs + group: Documentation + label: Please read the documentation at https://truecharts.org + description: Please read the documentation at +
https://truecharts.org + schema: + additional_attrs: true + type: dict + attrs: + - variable: confirmDocs + label: I have checked the documentation + schema: + type: boolean + default: true + - variable: donateNag + group: Documentation + label: Please consider supporting TrueCharts, see https://truecharts.org/sponsor + description: Please consider supporting TrueCharts, see +
https://truecharts.org/sponsor + schema: + additional_attrs: true + type: dict + attrs: + - variable: confirmDonate + label: I have considered donating + schema: + type: boolean + default: true + hidden: true diff --git a/stable/remmina/7.0.13/templates/NOTES.txt b/stable/remmina/7.0.13/templates/NOTES.txt new file mode 100644 index 00000000000..efcb74cb772 --- /dev/null +++ b/stable/remmina/7.0.13/templates/NOTES.txt @@ -0,0 +1 @@ +{{- include "tc.v1.common.lib.chart.notes" $ -}} diff --git a/stable/remmina/7.0.12/templates/common.yaml b/stable/remmina/7.0.13/templates/common.yaml similarity index 100% rename from stable/remmina/7.0.12/templates/common.yaml rename to stable/remmina/7.0.13/templates/common.yaml diff --git a/stable/remmina/7.0.13/values.yaml b/stable/remmina/7.0.13/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/rsshub/8.0.286/app-changelog.md b/stable/rsshub/8.0.286/app-changelog.md deleted file mode 100644 index d15adda3884..00000000000 --- a/stable/rsshub/8.0.286/app-changelog.md +++ /dev/null @@ -1,9 +0,0 @@ - - -## [rsshub-8.0.286](https://github.com/truecharts/charts/compare/rsshub-8.0.285...rsshub-8.0.286) (2023-12-06) - -### Chore - -- update container image diygod/rsshub to latest[@4c026d9](https://github.com/4c026d9) ([#15794](https://github.com/truecharts/charts/issues/15794)) - - \ No newline at end of file diff --git a/stable/rsshub/8.0.286/CHANGELOG.md b/stable/rsshub/8.0.287/CHANGELOG.md similarity index 91% rename from stable/rsshub/8.0.286/CHANGELOG.md rename to stable/rsshub/8.0.287/CHANGELOG.md index 97d6825a660..d627c5821fa 100644 --- a/stable/rsshub/8.0.286/CHANGELOG.md +++ b/stable/rsshub/8.0.287/CHANGELOG.md @@ -4,6 +4,15 @@ +## [rsshub-8.0.287](https://github.com/truecharts/charts/compare/rsshub-8.0.286...rsshub-8.0.287) (2023-12-06) + +### Chore + +- update container image diygod/rsshub to latest[@5cbb9e0](https://github.com/5cbb9e0) ([#15808](https://github.com/truecharts/charts/issues/15808)) + + + + ## [rsshub-8.0.286](https://github.com/truecharts/charts/compare/rsshub-8.0.285...rsshub-8.0.286) (2023-12-06) ### Chore @@ -88,12 +97,3 @@ ## [rsshub-8.0.284](https://github.com/truecharts/charts/compare/rsshub-8.0.283...rsshub-8.0.284) (2023-12-03) ### Chore - -- bump everything to ensure catalog has latest versions - - - - -## [rsshub-8.0.283](https://github.com/truecharts/charts/compare/rsshub-8.0.282...rsshub-8.0.283) (2023-12-03) - -### Chore diff --git a/stable/rsshub/8.0.286/Chart.yaml b/stable/rsshub/8.0.287/Chart.yaml similarity index 98% rename from stable/rsshub/8.0.286/Chart.yaml rename to stable/rsshub/8.0.287/Chart.yaml index d4e19f0bba8..c4aaf42d05b 100644 --- a/stable/rsshub/8.0.286/Chart.yaml +++ b/stable/rsshub/8.0.287/Chart.yaml @@ -1,7 +1,7 @@ kubeVersion: ">=1.24.0" apiVersion: v2 name: rsshub -version: 8.0.286 +version: 8.0.287 appVersion: latest description: RSSHub can generate RSS feeds from pretty much everything home: https://truecharts.org/charts/stable/rsshub diff --git a/stable/rsshub/8.0.287/README.md b/stable/rsshub/8.0.287/README.md new file mode 100644 index 00000000000..e0a9b8fa8d7 --- /dev/null +++ b/stable/rsshub/8.0.287/README.md @@ -0,0 +1,27 @@ +# README + +## General Info + +TrueCharts can be installed as both *normal* Helm Charts or as Apps on TrueNAS SCALE. +However only installations using the TrueNAS SCALE Apps system are supported. + +For more information about this App, please check the docs on the TrueCharts [website](https://truecharts.org/charts/stable/) + +**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/rsshub/8.0.287/app-changelog.md b/stable/rsshub/8.0.287/app-changelog.md new file mode 100644 index 00000000000..391ab81a7c3 --- /dev/null +++ b/stable/rsshub/8.0.287/app-changelog.md @@ -0,0 +1,9 @@ + + +## [rsshub-8.0.287](https://github.com/truecharts/charts/compare/rsshub-8.0.286...rsshub-8.0.287) (2023-12-06) + +### Chore + +- update container image diygod/rsshub to latest[@5cbb9e0](https://github.com/5cbb9e0) ([#15808](https://github.com/truecharts/charts/issues/15808)) + + \ No newline at end of file diff --git a/stable/rsshub/8.0.286/app-readme.md b/stable/rsshub/8.0.287/app-readme.md similarity index 100% rename from stable/rsshub/8.0.286/app-readme.md rename to stable/rsshub/8.0.287/app-readme.md diff --git a/stable/rsshub/8.0.287/charts/common-14.3.5.tgz b/stable/rsshub/8.0.287/charts/common-14.3.5.tgz new file mode 100644 index 0000000000000000000000000000000000000000..58fbc6f4962aed33ebff0850b663611ec736857f GIT binary patch literal 73073 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 ThtK~X009602~<;E01ycP