From 8a4a0bb1395adfe6fea73c24ffa97075d4ef64cc Mon Sep 17 00:00:00 2001 From: TrueCharts-Bot Date: Mon, 14 Nov 2022 07:13:55 +0000 Subject: [PATCH] Commit new Chart releases for TrueCharts Signed-off-by: TrueCharts-Bot --- incubator/apprise-api/1.0.4/app-changelog.md | 9 - .../apprise-api/{1.0.4 => 1.0.5}/CHANGELOG.md | 0 .../apprise-api/{1.0.4 => 1.0.5}/Chart.yaml | 2 +- .../apprise-api/{1.0.4 => 1.0.5}/README.md | 0 incubator/apprise-api/1.0.5/app-changelog.md | 9 + .../{1.0.4 => 1.0.5}/app-readme.md | 0 .../{1.0.4 => 1.0.5}/charts/common-10.9.7.tgz | Bin .../{1.0.4 => 1.0.5}/ix_values.yaml | 2 +- .../{1.0.4 => 1.0.5}/questions.yaml | 0 .../{1.0.4 => 1.0.5}/templates/common.yaml | 0 .../apprise-api/{1.0.4 => 1.0.5}/values.yaml | 0 incubator/cryptpad/1.0.4/app-changelog.md | 11 - .../cryptpad/{1.0.4 => 1.0.5}/CHANGELOG.md | 0 .../cryptpad/{1.0.4 => 1.0.5}/Chart.yaml | 2 +- incubator/cryptpad/{1.0.4 => 1.0.5}/README.md | 0 incubator/cryptpad/1.0.5/app-changelog.md | 9 + .../cryptpad/{1.0.4 => 1.0.5}/app-readme.md | 0 .../{1.0.4 => 1.0.5}/charts/common-10.9.7.tgz | Bin .../cryptpad/{1.0.4 => 1.0.5}/ix_values.yaml | 2 +- .../cryptpad/{1.0.4 => 1.0.5}/questions.yaml | 0 .../{1.0.4 => 1.0.5}/templates/common.yaml | 0 .../cryptpad/{1.0.4 => 1.0.5}/values.yaml | 0 incubator/cups-server/2.0.4/app-changelog.md | 9 - .../cups-server/{2.0.4 => 2.0.5}/CHANGELOG.md | 0 .../cups-server/{2.0.4 => 2.0.5}/Chart.yaml | 2 +- .../cups-server/{2.0.4 => 2.0.5}/README.md | 0 incubator/cups-server/2.0.5/app-changelog.md | 9 + .../{2.0.4 => 2.0.5}/app-readme.md | 0 .../{2.0.4 => 2.0.5}/charts/common-10.9.7.tgz | Bin .../{2.0.4 => 2.0.5}/ix_values.yaml | 2 +- .../{2.0.4 => 2.0.5}/questions.yaml | 0 .../{2.0.4 => 2.0.5}/templates/common.yaml | 0 .../cups-server/{2.0.4 => 2.0.5}/values.yaml | 0 incubator/glauth/1.0.4/app-changelog.md | 9 - .../glauth/{1.0.4 => 1.0.5}/CHANGELOG.md | 0 incubator/glauth/{1.0.4 => 1.0.5}/Chart.yaml | 2 +- incubator/glauth/{1.0.4 => 1.0.5}/README.md | 0 incubator/glauth/1.0.5/app-changelog.md | 9 + .../glauth/{1.0.4 => 1.0.5}/app-readme.md | 0 .../{1.0.4 => 1.0.5}/charts/common-10.9.7.tgz | Bin .../glauth/{1.0.4 => 1.0.5}/ix_values.yaml | 2 +- .../glauth/{1.0.4 => 1.0.5}/questions.yaml | 0 .../{1.0.4 => 1.0.5}/templates/common.yaml | 0 incubator/glauth/{1.0.4 => 1.0.5}/values.yaml | 0 incubator/noisedash/1.0.4/app-changelog.md | 9 - .../noisedash/{1.0.4 => 1.0.5}/CHANGELOG.md | 0 .../noisedash/{1.0.4 => 1.0.5}/Chart.yaml | 4 +- .../noisedash/{1.0.4 => 1.0.5}/README.md | 0 incubator/noisedash/1.0.5/app-changelog.md | 9 + .../noisedash/{1.0.4 => 1.0.5}/app-readme.md | 0 .../{1.0.4 => 1.0.5}/charts/common-10.9.7.tgz | Bin .../noisedash/{1.0.4 => 1.0.5}/ix_values.yaml | 2 +- .../noisedash/{1.0.4 => 1.0.5}/questions.yaml | 0 .../{1.0.4 => 1.0.5}/templates/_configmap.tpl | 0 .../{1.0.4 => 1.0.5}/templates/common.yaml | 0 .../noisedash/{1.0.4 => 1.0.5}/values.yaml | 0 .../1.0.5/app-changelog.md | 9 - .../{1.0.5 => 1.0.6}/CHANGELOG.md | 0 .../{1.0.5 => 1.0.6}/Chart.yaml | 2 +- .../{1.0.5 => 1.0.6}/README.md | 0 .../1.0.6/app-changelog.md | 9 + .../{1.0.5 => 1.0.6}/app-readme.md | 0 .../{1.0.5 => 1.0.6}/charts/common-10.9.7.tgz | Bin .../{1.0.5 => 1.0.6}/ix_values.yaml | 2 +- .../{1.0.5 => 1.0.6}/questions.yaml | 0 .../{1.0.5 => 1.0.6}/templates/common.yaml | 0 .../{1.0.5 => 1.0.6}/values.yaml | 0 incubator/rimgo/1.0.5/app-changelog.md | 9 - incubator/rimgo/{1.0.5 => 1.0.6}/CHANGELOG.md | 0 incubator/rimgo/{1.0.5 => 1.0.6}/Chart.yaml | 2 +- incubator/rimgo/{1.0.5 => 1.0.6}/README.md | 0 incubator/rimgo/1.0.6/app-changelog.md | 9 + .../rimgo/{1.0.5 => 1.0.6}/app-readme.md | 0 .../{1.0.5 => 1.0.6}/charts/common-10.9.7.tgz | Bin .../rimgo/{1.0.5 => 1.0.6}/ix_values.yaml | 2 +- .../rimgo/{1.0.5 => 1.0.6}/questions.yaml | 0 .../{1.0.5 => 1.0.6}/templates/common.yaml | 0 incubator/rimgo/{1.0.5 => 1.0.6}/values.yaml | 0 incubator/searxng/1.0.4/app-changelog.md | 9 - .../searxng/{1.0.4 => 1.0.5}/CHANGELOG.md | 0 incubator/searxng/{1.0.4 => 1.0.5}/Chart.yaml | 2 +- incubator/searxng/{1.0.4 => 1.0.5}/README.md | 0 incubator/searxng/1.0.5/app-changelog.md | 9 + .../searxng/{1.0.4 => 1.0.5}/app-readme.md | 0 .../{1.0.4 => 1.0.5}/charts/common-10.9.7.tgz | Bin .../searxng/{1.0.4 => 1.0.5}/ix_values.yaml | 2 +- .../searxng/{1.0.4 => 1.0.5}/questions.yaml | 0 .../{1.0.4 => 1.0.5}/templates/common.yaml | 0 .../searxng/{1.0.4 => 1.0.5}/values.yaml | 0 .../speedtest-tracker/2.0.0/app-changelog.md | 11 - .../{2.0.0 => 2.0.1}/CHANGELOG.md | 0 .../{2.0.0 => 2.0.1}/Chart.yaml | 2 +- .../{2.0.0 => 2.0.1}/README.md | 0 .../speedtest-tracker/2.0.1/app-changelog.md | 9 + .../{2.0.0 => 2.0.1}/app-readme.md | 0 .../{2.0.0 => 2.0.1}/charts/common-10.9.7.tgz | Bin .../charts/postgresql-9.0.5.tgz | Bin .../{2.0.0 => 2.0.1}/ix_values.yaml | 2 +- .../{2.0.0 => 2.0.1}/questions.yaml | 0 .../{2.0.0 => 2.0.1}/templates/common.yaml | 0 .../{2.0.0 => 2.0.1}/values.yaml | 0 incubator/ts-dnsserver/1.0.4/app-changelog.md | 9 - .../{1.0.4 => 1.0.5}/CHANGELOG.md | 0 .../ts-dnsserver/{1.0.4 => 1.0.5}/Chart.yaml | 2 +- .../ts-dnsserver/{1.0.4 => 1.0.5}/README.md | 0 incubator/ts-dnsserver/1.0.5/app-changelog.md | 9 + .../{1.0.4 => 1.0.5}/app-readme.md | 0 .../{1.0.4 => 1.0.5}/charts/common-10.9.7.tgz | Bin .../{1.0.4 => 1.0.5}/ix_values.yaml | 2 +- .../{1.0.4 => 1.0.5}/questions.yaml | 0 .../{1.0.4 => 1.0.5}/templates/common.yaml | 0 .../ts-dnsserver/{1.0.4 => 1.0.5}/values.yaml | 0 incubator/virt-manager/1.0.4/app-changelog.md | 11 - .../{1.0.4 => 1.0.5}/CHANGELOG.md | 0 .../virt-manager/{1.0.4 => 1.0.5}/Chart.yaml | 2 +- .../virt-manager/{1.0.4 => 1.0.5}/README.md | 0 incubator/virt-manager/1.0.5/app-changelog.md | 9 + .../{1.0.4 => 1.0.5}/app-readme.md | 0 .../{1.0.4 => 1.0.5}/charts/common-10.9.7.tgz | Bin .../{1.0.4 => 1.0.5}/ix_values.yaml | 2 +- .../{1.0.4 => 1.0.5}/questions.yaml | 0 .../{1.0.4 => 1.0.5}/templates/common.yaml | 0 .../virt-manager/{1.0.4 => 1.0.5}/values.yaml | 0 incubator/webtop/1.0.4/app-changelog.md | 9 - .../webtop/{1.0.4 => 1.0.5}/CHANGELOG.md | 0 incubator/webtop/{1.0.4 => 1.0.5}/Chart.yaml | 2 +- incubator/webtop/{1.0.4 => 1.0.5}/README.md | 0 incubator/webtop/1.0.5/app-changelog.md | 9 + .../webtop/{1.0.4 => 1.0.5}/app-readme.md | 0 .../{1.0.4 => 1.0.5}/charts/common-10.9.7.tgz | Bin .../webtop/{1.0.4 => 1.0.5}/ix_values.yaml | 2 +- .../webtop/{1.0.4 => 1.0.5}/questions.yaml | 0 .../{1.0.4 => 1.0.5}/templates/common.yaml | 0 incubator/webtop/{1.0.4 => 1.0.5}/values.yaml | 0 stable/audiobookshelf/3.0.5/app-changelog.md | 9 - .../{3.0.5 => 3.0.6}/CHANGELOG.md | 0 .../{3.0.5 => 3.0.6}/Chart.yaml | 4 +- .../audiobookshelf/{3.0.5 => 3.0.6}/README.md | 0 stable/audiobookshelf/3.0.6/app-changelog.md | 9 + .../{3.0.5 => 3.0.6}/app-readme.md | 0 .../{3.0.5 => 3.0.6}/charts/common-10.9.7.tgz | Bin .../{3.0.5 => 3.0.6}/ix_values.yaml | 2 +- .../{3.0.5 => 3.0.6}/questions.yaml | 0 .../{3.0.5 => 3.0.6}/templates/_secrets.tpl | 0 .../{3.0.5 => 3.0.6}/templates/common.yaml | 0 .../{3.0.5 => 3.0.6}/values.yaml | 0 stable/babybuddy/10.0.1/CHANGELOG.md | 99 + stable/babybuddy/10.0.1/Chart.yaml | 35 + stable/babybuddy/10.0.1/README.md | 107 + stable/babybuddy/10.0.1/app-changelog.md | 9 + stable/babybuddy/10.0.1/app-readme.md | 8 + .../10.0.1}/charts/common-10.9.7.tgz | Bin .../10.0.1}/charts/postgresql-9.0.5.tgz | Bin stable/babybuddy/10.0.1/ix_values.yaml | 50 + stable/babybuddy/10.0.1/questions.yaml | 1842 ++++++++++++ .../10.0.1}/templates/common.yaml | 0 .../7.0.4 => babybuddy/10.0.1}/values.yaml | 0 stable/booksonic-air/7.0.4/app-changelog.md | 9 - .../{7.0.4 => 7.0.5}/CHANGELOG.md | 0 .../booksonic-air/{7.0.4 => 7.0.5}/Chart.yaml | 2 +- .../booksonic-air/{7.0.4 => 7.0.5}/README.md | 0 stable/booksonic-air/7.0.5/app-changelog.md | 9 + .../{7.0.4 => 7.0.5}/app-readme.md | 0 .../7.0.5}/charts/common-10.9.7.tgz | Bin .../{7.0.4 => 7.0.5}/ix_values.yaml | 2 +- .../{7.0.4 => 7.0.5}/questions.yaml | 0 .../7.0.5}/templates/common.yaml | 0 .../6.0.4 => booksonic-air/7.0.5}/values.yaml | 0 stable/custom-app/6.0.4/app-changelog.md | 11 - .../custom-app/{6.0.4 => 6.0.5}/CHANGELOG.md | 0 stable/custom-app/{6.0.4 => 6.0.5}/Chart.yaml | 4 +- stable/custom-app/{6.0.4 => 6.0.5}/README.md | 0 stable/custom-app/6.0.5/app-changelog.md | 9 + .../custom-app/{6.0.4 => 6.0.5}/app-readme.md | 0 .../6.0.5}/charts/common-10.9.7.tgz | Bin .../{6.0.4 => 6.0.5}/ix_values.yaml | 2 +- .../{6.0.4 => 6.0.5}/questions.yaml | 0 .../6.0.5}/templates/common.yaml | 0 .../3.0.4 => custom-app/6.0.5}/values.yaml | 0 stable/cyberchef/3.0.4/app-changelog.md | 11 - .../cyberchef/{3.0.4 => 3.0.5}/CHANGELOG.md | 0 stable/cyberchef/{3.0.4 => 3.0.5}/Chart.yaml | 2 +- stable/cyberchef/{3.0.4 => 3.0.5}/README.md | 0 stable/cyberchef/3.0.5/app-changelog.md | 9 + .../cyberchef/{3.0.4 => 3.0.5}/app-readme.md | 0 .../3.0.5}/charts/common-10.9.7.tgz | Bin .../cyberchef/{3.0.4 => 3.0.5}/ix_values.yaml | 2 +- .../cyberchef/{3.0.4 => 3.0.5}/questions.yaml | 0 .../3.0.5}/templates/common.yaml | 0 .../2.0.4 => cyberchef/3.0.5}/values.yaml | 0 stable/dashdot/2.0.4/app-changelog.md | 9 - stable/dashdot/{2.0.4 => 2.0.5}/CHANGELOG.md | 0 stable/dashdot/{2.0.4 => 2.0.5}/Chart.yaml | 4 +- stable/dashdot/{2.0.4 => 2.0.5}/README.md | 0 stable/dashdot/2.0.5/app-changelog.md | 9 + stable/dashdot/{2.0.4 => 2.0.5}/app-readme.md | 0 .../2.0.5}/charts/common-10.9.7.tgz | Bin .../dashdot/{2.0.4 => 2.0.5}/ix_values.yaml | 2 +- .../dashdot/{2.0.4 => 2.0.5}/questions.yaml | 0 .../2.0.5}/templates/common.yaml | 0 .../4.0.4 => dashdot/2.0.5}/values.yaml | 0 stable/dokuwiki/4.0.4/app-changelog.md | 10 - stable/dokuwiki/{4.0.4 => 4.0.5}/CHANGELOG.md | 0 stable/dokuwiki/{4.0.4 => 4.0.5}/Chart.yaml | 2 +- stable/dokuwiki/{4.0.4 => 4.0.5}/README.md | 0 stable/dokuwiki/4.0.5/app-changelog.md | 9 + .../dokuwiki/{4.0.4 => 4.0.5}/app-readme.md | 0 .../4.0.5}/charts/common-10.9.7.tgz | Bin .../dokuwiki/{4.0.4 => 4.0.5}/ix_values.yaml | 2 +- .../dokuwiki/{4.0.4 => 4.0.5}/questions.yaml | 0 .../4.0.5}/templates/common.yaml | 0 .../3.0.4 => dokuwiki/4.0.5}/values.yaml | 0 stable/flexget/3.0.4/app-changelog.md | 9 - stable/flexget/{3.0.4 => 3.0.5}/CHANGELOG.md | 0 stable/flexget/{3.0.4 => 3.0.5}/Chart.yaml | 4 +- stable/flexget/{3.0.4 => 3.0.5}/README.md | 0 stable/flexget/3.0.5/app-changelog.md | 9 + stable/flexget/{3.0.4 => 3.0.5}/app-readme.md | 0 .../3.0.5}/charts/common-10.9.7.tgz | Bin .../flexget/{3.0.4 => 3.0.5}/ix_values.yaml | 2 +- .../flexget/{3.0.4 => 3.0.5}/questions.yaml | 0 .../3.0.5}/templates/common.yaml | 0 .../{koel/5.0.1 => flexget/3.0.5}/values.yaml | 0 stable/grocy/12.0.5/CHANGELOG.md | 99 + stable/grocy/12.0.5/Chart.yaml | 28 + stable/grocy/12.0.5/README.md | 106 + stable/grocy/12.0.5/app-changelog.md | 9 + stable/grocy/12.0.5/app-readme.md | 8 + .../12.0.5}/charts/common-10.9.7.tgz | Bin stable/grocy/12.0.5/ix_values.yaml | 27 + stable/grocy/12.0.5/questions.yaml | 1829 ++++++++++++ .../12.0.5}/templates/common.yaml | 0 .../5.0.5 => grocy/12.0.5}/values.yaml | 0 stable/jackett/12.0.18/CHANGELOG.md | 99 + stable/jackett/12.0.18/Chart.yaml | 31 + stable/jackett/12.0.18/README.md | 106 + stable/jackett/12.0.18/app-changelog.md | 9 + stable/jackett/12.0.18/app-readme.md | 8 + .../12.0.18}/charts/common-10.9.7.tgz | Bin stable/jackett/12.0.18/ix_values.yaml | 33 + stable/jackett/12.0.18/questions.yaml | 1829 ++++++++++++ .../12.0.18}/templates/common.yaml | 0 .../4.0.4 => jackett/12.0.18}/values.yaml | 0 stable/koel/5.0.1/app-changelog.md | 9 - stable/koel/{5.0.1 => 5.0.2}/CHANGELOG.md | 0 stable/koel/{5.0.1 => 5.0.2}/Chart.yaml | 2 +- stable/koel/{5.0.1 => 5.0.2}/README.md | 0 stable/koel/5.0.2/app-changelog.md | 9 + stable/koel/{5.0.1 => 5.0.2}/app-readme.md | 0 .../5.0.2}/charts/common-10.9.7.tgz | Bin .../{5.0.1 => 5.0.2}/charts/mariadb-4.0.6.tgz | Bin stable/koel/{5.0.1 => 5.0.2}/ix_values.yaml | 2 +- stable/koel/{5.0.1 => 5.0.2}/questions.yaml | 0 .../{5.0.1 => 5.0.2}/templates/_secrets.tpl | 0 .../{5.0.1 => 5.0.2}/templates/common.yaml | 0 .../2.0.4 => koel/5.0.2}/values.yaml | 0 .../5.0.5/app-changelog.md | 9 - .../{5.0.5 => 5.0.6}/CHANGELOG.md | 0 .../{5.0.5 => 5.0.6}/Chart.yaml | 2 +- .../{5.0.5 => 5.0.6}/README.md | 0 .../5.0.6/app-changelog.md | 9 + .../{5.0.5 => 5.0.6}/app-readme.md | 0 .../5.0.6}/charts/common-10.9.7.tgz | Bin .../{5.0.5 => 5.0.6}/ix_values.yaml | 2 +- .../{5.0.5 => 5.0.6}/questions.yaml | 0 .../5.0.6}/templates/common.yaml | 0 .../5.0.6}/values.yaml | 0 stable/medusa/4.0.4/app-changelog.md | 9 - stable/medusa/{4.0.4 => 4.0.5}/CHANGELOG.md | 0 stable/medusa/{4.0.4 => 4.0.5}/Chart.yaml | 2 +- stable/medusa/{4.0.4 => 4.0.5}/README.md | 0 stable/medusa/4.0.5/app-changelog.md | 9 + stable/medusa/{4.0.4 => 4.0.5}/app-readme.md | 0 .../4.0.5}/charts/common-10.9.7.tgz | Bin stable/medusa/{4.0.4 => 4.0.5}/ix_values.yaml | 2 +- stable/medusa/{4.0.4 => 4.0.5}/questions.yaml | 0 .../{4.0.4 => 4.0.5}/templates/common.yaml | 0 .../7.0.4 => medusa/4.0.5}/values.yaml | 0 stable/minecraft-java/2.0.4/app-changelog.md | 10 - .../{2.0.4 => 2.0.5}/CHANGELOG.md | 0 .../{2.0.4 => 2.0.5}/Chart.yaml | 4 +- .../minecraft-java/{2.0.4 => 2.0.5}/README.md | 0 stable/minecraft-java/2.0.5/app-changelog.md | 9 + .../{2.0.4 => 2.0.5}/app-readme.md | 0 .../2.0.5}/charts/common-10.9.7.tgz | Bin .../{2.0.4 => 2.0.5}/ix_values.yaml | 6 +- .../{2.0.4 => 2.0.5}/questions.yaml | 0 .../2.0.5}/templates/common.yaml | 0 .../2.0.5}/values.yaml | 0 stable/ntfy/3.0.4/app-changelog.md | 9 - stable/ntfy/{3.0.4 => 3.0.5}/CHANGELOG.md | 0 stable/ntfy/{3.0.4 => 3.0.5}/Chart.yaml | 4 +- stable/ntfy/{3.0.4 => 3.0.5}/README.md | 0 stable/ntfy/3.0.5/app-changelog.md | 9 + stable/ntfy/{3.0.4 => 3.0.5}/app-readme.md | 0 .../3.0.5}/charts/common-10.9.7.tgz | Bin stable/ntfy/{3.0.4 => 3.0.5}/ix_values.yaml | 2 +- stable/ntfy/{3.0.4 => 3.0.5}/questions.yaml | 0 stable/ntfy/3.0.5/templates/common.yaml | 1 + .../3.0.4 => ntfy/3.0.5}/values.yaml | 0 stable/photoprism/12.0.3/CHANGELOG.md | 99 + stable/photoprism/12.0.3/Chart.yaml | 34 + stable/photoprism/12.0.3/README.md | 108 + stable/photoprism/12.0.3/app-changelog.md | 9 + stable/photoprism/12.0.3/app-readme.md | 8 + .../12.0.3}/charts/common-10.9.7.tgz | Bin .../12.0.3/charts/mariadb-4.0.6.tgz | Bin 0 -> 60298 bytes stable/photoprism/12.0.3/ix_values.yaml | 61 + stable/photoprism/12.0.3/questions.yaml | 1869 +++++++++++++ .../photoprism/12.0.3/templates/common.yaml | 1 + .../2.0.4 => photoprism/12.0.3}/values.yaml | 0 stable/prowlarr/7.0.4/app-changelog.md | 9 - stable/prowlarr/{7.0.4 => 7.0.5}/CHANGELOG.md | 0 stable/prowlarr/{7.0.4 => 7.0.5}/Chart.yaml | 2 +- stable/prowlarr/{7.0.4 => 7.0.5}/README.md | 0 stable/prowlarr/7.0.5/app-changelog.md | 9 + .../prowlarr/{7.0.4 => 7.0.5}/app-readme.md | 0 .../prowlarr/7.0.5/charts/common-10.9.7.tgz | Bin 0 -> 48224 bytes .../prowlarr/{7.0.4 => 7.0.5}/ix_values.yaml | 2 +- .../prowlarr/{7.0.4 => 7.0.5}/questions.yaml | 0 stable/prowlarr/7.0.5/templates/common.yaml | 1 + stable/prowlarr/7.0.5/values.yaml | 0 stable/radarr/12.0.5/CHANGELOG.md | 99 + stable/radarr/12.0.5/Chart.yaml | 30 + stable/radarr/12.0.5/README.md | 106 + stable/radarr/12.0.5/app-changelog.md | 9 + stable/radarr/12.0.5/app-readme.md | 8 + stable/radarr/12.0.5/charts/common-10.9.7.tgz | Bin 0 -> 48224 bytes stable/radarr/12.0.5/ix_values.yaml | 43 + stable/radarr/12.0.5/questions.yaml | 1829 ++++++++++++ stable/radarr/12.0.5/templates/common.yaml | 1 + stable/radarr/12.0.5/values.yaml | 0 stable/sabnzbd/12.0.5/CHANGELOG.md | 99 + stable/sabnzbd/12.0.5/Chart.yaml | 29 + stable/sabnzbd/12.0.5/README.md | 106 + stable/sabnzbd/12.0.5/app-changelog.md | 9 + stable/sabnzbd/12.0.5/app-readme.md | 8 + .../sabnzbd/12.0.5/charts/common-10.9.7.tgz | Bin 0 -> 48224 bytes stable/sabnzbd/12.0.5/ix_values.yaml | 22 + stable/sabnzbd/12.0.5/questions.yaml | 1842 ++++++++++++ stable/sabnzbd/12.0.5/templates/common.yaml | 1 + stable/sabnzbd/12.0.5/values.yaml | 0 stable/tautulli/12.0.5/CHANGELOG.md | 99 + stable/tautulli/12.0.5/Chart.yaml | 29 + stable/tautulli/12.0.5/README.md | 106 + stable/tautulli/12.0.5/app-changelog.md | 9 + stable/tautulli/12.0.5/app-readme.md | 8 + .../tautulli/12.0.5/charts/common-10.9.7.tgz | Bin 0 -> 48224 bytes stable/tautulli/12.0.5/ix_values.yaml | 19 + stable/tautulli/12.0.5/questions.yaml | 1829 ++++++++++++ stable/tautulli/12.0.5/templates/common.yaml | 1 + stable/tautulli/12.0.5/values.yaml | 0 stable/traefik/15.1.1/CHANGELOG.md | 99 + stable/traefik/15.1.1/Chart.yaml | 31 + stable/traefik/15.1.1/README.md | 108 + stable/traefik/15.1.1/app-changelog.md | 9 + stable/traefik/15.1.1/app-readme.md | 8 + .../traefik/15.1.1/charts/common-10.9.7.tgz | Bin 0 -> 48224 bytes stable/traefik/15.1.1/ix_values.yaml | 406 +++ stable/traefik/15.1.1/questions.yaml | 2487 +++++++++++++++++ stable/traefik/15.1.1/templates/_args.tpl | 178 ++ stable/traefik/15.1.1/templates/_helpers.tpl | 22 + .../15.1.1/templates/_ingressclass.tpl | 24 + .../15.1.1/templates/_ingressroute.tpl | 25 + .../traefik/15.1.1/templates/_portalhook.tpl | 26 + .../traefik/15.1.1/templates/_tlsoptions.tpl | 12 + stable/traefik/15.1.1/templates/common.yaml | 24 + .../templates/middlewares/addPrefix.yaml | 17 + .../middlewares/basic-middleware.yaml | 62 + .../templates/middlewares/basicauth.yaml | 34 + .../15.1.1/templates/middlewares/chain.yaml | 21 + .../templates/middlewares/forwardauth.yaml | 34 + .../templates/middlewares/geoblock.yaml | 34 + .../templates/middlewares/ipwhitelist.yaml | 33 + .../templates/middlewares/ratelimit.yaml | 19 + .../15.1.1/templates/middlewares/real-ip.yaml | 21 + .../templates/middlewares/redirectScheme.yaml | 19 + .../templates/middlewares/redirectregex.yaml | 20 + .../middlewares/stripPrefixRegex.yaml | 20 + .../templates/middlewares/tc-chains.yaml | 29 + .../templates/middlewares/tc-headers.yaml | 62 + .../templates/middlewares/tc-nextcloud.yaml | 25 + .../templates/middlewares/theme-park.yaml | 26 + stable/traefik/15.1.1/values.yaml | 0 stable/tvheadend/13.0.5/CHANGELOG.md | 99 + stable/tvheadend/13.0.5/Chart.yaml | 31 + stable/tvheadend/13.0.5/README.md | 106 + stable/tvheadend/13.0.5/app-changelog.md | 9 + stable/tvheadend/13.0.5/app-readme.md | 8 + .../tvheadend/13.0.5/charts/common-10.9.7.tgz | Bin 0 -> 48224 bytes stable/tvheadend/13.0.5/ix_values.yaml | 39 + stable/tvheadend/13.0.5/questions.yaml | 1894 +++++++++++++ stable/tvheadend/13.0.5/templates/common.yaml | 1 + stable/tvheadend/13.0.5/values.yaml | 0 stable/vikunja/5.0.1/app-changelog.md | 9 - stable/vikunja/{5.0.1 => 5.0.2}/CHANGELOG.md | 0 stable/vikunja/{5.0.1 => 5.0.2}/Chart.yaml | 4 +- stable/vikunja/{5.0.1 => 5.0.2}/README.md | 0 stable/vikunja/5.0.2/app-changelog.md | 9 + stable/vikunja/{5.0.1 => 5.0.2}/app-readme.md | 0 stable/vikunja/5.0.2/charts/common-10.9.7.tgz | Bin 0 -> 48224 bytes .../vikunja/5.0.2/charts/postgresql-9.0.5.tgz | Bin 0 -> 54554 bytes .../{5.0.1 => 5.0.2}/charts/redis-4.0.6.tgz | Bin .../vikunja/{5.0.1 => 5.0.2}/ix_values.yaml | 4 +- .../vikunja/{5.0.1 => 5.0.2}/questions.yaml | 0 .../{5.0.1 => 5.0.2}/templates/_secrets.tpl | 0 .../{5.0.1 => 5.0.2}/templates/common.yaml | 0 stable/vikunja/5.0.2/values.yaml | 0 stable/website-shot/3.0.4/app-changelog.md | 9 - .../{3.0.4 => 3.0.5}/CHANGELOG.md | 0 .../website-shot/{3.0.4 => 3.0.5}/Chart.yaml | 2 +- .../website-shot/{3.0.4 => 3.0.5}/README.md | 0 stable/website-shot/3.0.5/app-changelog.md | 9 + .../{3.0.4 => 3.0.5}/app-readme.md | 0 .../3.0.5/charts/common-10.9.7.tgz | Bin 0 -> 48224 bytes .../{3.0.4 => 3.0.5}/ix_values.yaml | 2 +- .../{3.0.4 => 3.0.5}/questions.yaml | 0 .../website-shot/3.0.5/templates/common.yaml | 1 + stable/website-shot/3.0.5/values.yaml | 0 stable/whisparr/2.0.4/app-changelog.md | 9 - stable/whisparr/{2.0.4 => 2.0.5}/CHANGELOG.md | 0 stable/whisparr/{2.0.4 => 2.0.5}/Chart.yaml | 2 +- stable/whisparr/{2.0.4 => 2.0.5}/README.md | 0 stable/whisparr/2.0.5/app-changelog.md | 9 + .../whisparr/{2.0.4 => 2.0.5}/app-readme.md | 0 .../whisparr/2.0.5/charts/common-10.9.7.tgz | Bin 0 -> 48224 bytes .../whisparr/{2.0.4 => 2.0.5}/ix_values.yaml | 2 +- .../whisparr/{2.0.4 => 2.0.5}/questions.yaml | 0 .../{2.0.4 => 2.0.5}/templates/common.yaml | 0 stable/whisparr/2.0.5/values.yaml | 0 stable/xen-orchestra/2.0.0/CHANGELOG.md | 99 + stable/xen-orchestra/2.0.0/Chart.yaml | 26 + stable/xen-orchestra/2.0.0/README.md | 106 + stable/xen-orchestra/2.0.0/app-changelog.md | 9 + stable/xen-orchestra/2.0.0/app-readme.md | 8 + .../2.0.0/charts/common-10.9.7.tgz | Bin 0 -> 48224 bytes stable/xen-orchestra/2.0.0/ix_values.yaml | 62 + stable/xen-orchestra/2.0.0/questions.yaml | 1899 +++++++++++++ .../xen-orchestra/2.0.0/templates/common.yaml | 1 + stable/xen-orchestra/2.0.0/values.yaml | 0 stable/xen-orchestra/item.yaml | 4 + 441 files changed, 23559 insertions(+), 331 deletions(-) delete mode 100644 incubator/apprise-api/1.0.4/app-changelog.md rename incubator/apprise-api/{1.0.4 => 1.0.5}/CHANGELOG.md (100%) rename incubator/apprise-api/{1.0.4 => 1.0.5}/Chart.yaml (98%) rename incubator/apprise-api/{1.0.4 => 1.0.5}/README.md (100%) create mode 100644 incubator/apprise-api/1.0.5/app-changelog.md rename incubator/apprise-api/{1.0.4 => 1.0.5}/app-readme.md (100%) rename incubator/apprise-api/{1.0.4 => 1.0.5}/charts/common-10.9.7.tgz (100%) rename incubator/apprise-api/{1.0.4 => 1.0.5}/ix_values.yaml (82%) rename incubator/apprise-api/{1.0.4 => 1.0.5}/questions.yaml (100%) rename incubator/apprise-api/{1.0.4 => 1.0.5}/templates/common.yaml (100%) rename incubator/apprise-api/{1.0.4 => 1.0.5}/values.yaml (100%) delete mode 100644 incubator/cryptpad/1.0.4/app-changelog.md rename incubator/cryptpad/{1.0.4 => 1.0.5}/CHANGELOG.md (100%) rename incubator/cryptpad/{1.0.4 => 1.0.5}/Chart.yaml (98%) rename incubator/cryptpad/{1.0.4 => 1.0.5}/README.md (100%) create mode 100644 incubator/cryptpad/1.0.5/app-changelog.md rename incubator/cryptpad/{1.0.4 => 1.0.5}/app-readme.md (100%) rename incubator/cryptpad/{1.0.4 => 1.0.5}/charts/common-10.9.7.tgz (100%) rename incubator/cryptpad/{1.0.4 => 1.0.5}/ix_values.yaml (91%) rename incubator/cryptpad/{1.0.4 => 1.0.5}/questions.yaml (100%) rename incubator/cryptpad/{1.0.4 => 1.0.5}/templates/common.yaml (100%) rename incubator/cryptpad/{1.0.4 => 1.0.5}/values.yaml (100%) delete mode 100644 incubator/cups-server/2.0.4/app-changelog.md rename incubator/cups-server/{2.0.4 => 2.0.5}/CHANGELOG.md (100%) rename incubator/cups-server/{2.0.4 => 2.0.5}/Chart.yaml (97%) rename incubator/cups-server/{2.0.4 => 2.0.5}/README.md (100%) create mode 100644 incubator/cups-server/2.0.5/app-changelog.md rename incubator/cups-server/{2.0.4 => 2.0.5}/app-readme.md (100%) rename incubator/cups-server/{2.0.4 => 2.0.5}/charts/common-10.9.7.tgz (100%) rename incubator/cups-server/{2.0.4 => 2.0.5}/ix_values.yaml (86%) rename incubator/cups-server/{2.0.4 => 2.0.5}/questions.yaml (100%) rename incubator/cups-server/{2.0.4 => 2.0.5}/templates/common.yaml (100%) rename incubator/cups-server/{2.0.4 => 2.0.5}/values.yaml (100%) delete mode 100644 incubator/glauth/1.0.4/app-changelog.md rename incubator/glauth/{1.0.4 => 1.0.5}/CHANGELOG.md (100%) rename incubator/glauth/{1.0.4 => 1.0.5}/Chart.yaml (98%) rename incubator/glauth/{1.0.4 => 1.0.5}/README.md (100%) create mode 100644 incubator/glauth/1.0.5/app-changelog.md rename incubator/glauth/{1.0.4 => 1.0.5}/app-readme.md (100%) rename incubator/glauth/{1.0.4 => 1.0.5}/charts/common-10.9.7.tgz (100%) rename incubator/glauth/{1.0.4 => 1.0.5}/ix_values.yaml (88%) rename incubator/glauth/{1.0.4 => 1.0.5}/questions.yaml (100%) rename incubator/glauth/{1.0.4 => 1.0.5}/templates/common.yaml (100%) rename incubator/glauth/{1.0.4 => 1.0.5}/values.yaml (100%) delete mode 100644 incubator/noisedash/1.0.4/app-changelog.md rename incubator/noisedash/{1.0.4 => 1.0.5}/CHANGELOG.md (100%) rename incubator/noisedash/{1.0.4 => 1.0.5}/Chart.yaml (95%) rename incubator/noisedash/{1.0.4 => 1.0.5}/README.md (100%) create mode 100644 incubator/noisedash/1.0.5/app-changelog.md rename incubator/noisedash/{1.0.4 => 1.0.5}/app-readme.md (100%) rename incubator/noisedash/{1.0.4 => 1.0.5}/charts/common-10.9.7.tgz (100%) rename incubator/noisedash/{1.0.4 => 1.0.5}/ix_values.yaml (84%) rename incubator/noisedash/{1.0.4 => 1.0.5}/questions.yaml (100%) rename incubator/noisedash/{1.0.4 => 1.0.5}/templates/_configmap.tpl (100%) rename incubator/noisedash/{1.0.4 => 1.0.5}/templates/common.yaml (100%) rename incubator/noisedash/{1.0.4 => 1.0.5}/values.yaml (100%) delete mode 100644 incubator/passwordpusherephemeral/1.0.5/app-changelog.md rename incubator/passwordpusherephemeral/{1.0.5 => 1.0.6}/CHANGELOG.md (100%) rename incubator/passwordpusherephemeral/{1.0.5 => 1.0.6}/Chart.yaml (98%) rename incubator/passwordpusherephemeral/{1.0.5 => 1.0.6}/README.md (100%) create mode 100644 incubator/passwordpusherephemeral/1.0.6/app-changelog.md rename incubator/passwordpusherephemeral/{1.0.5 => 1.0.6}/app-readme.md (100%) rename incubator/passwordpusherephemeral/{1.0.5 => 1.0.6}/charts/common-10.9.7.tgz (100%) rename incubator/passwordpusherephemeral/{1.0.5 => 1.0.6}/ix_values.yaml (83%) rename incubator/passwordpusherephemeral/{1.0.5 => 1.0.6}/questions.yaml (100%) rename incubator/passwordpusherephemeral/{1.0.5 => 1.0.6}/templates/common.yaml (100%) rename incubator/passwordpusherephemeral/{1.0.5 => 1.0.6}/values.yaml (100%) delete mode 100644 incubator/rimgo/1.0.5/app-changelog.md rename incubator/rimgo/{1.0.5 => 1.0.6}/CHANGELOG.md (100%) rename incubator/rimgo/{1.0.5 => 1.0.6}/Chart.yaml (98%) rename incubator/rimgo/{1.0.5 => 1.0.6}/README.md (100%) create mode 100644 incubator/rimgo/1.0.6/app-changelog.md rename incubator/rimgo/{1.0.5 => 1.0.6}/app-readme.md (100%) rename incubator/rimgo/{1.0.5 => 1.0.6}/charts/common-10.9.7.tgz (100%) rename incubator/rimgo/{1.0.5 => 1.0.6}/ix_values.yaml (82%) rename incubator/rimgo/{1.0.5 => 1.0.6}/questions.yaml (100%) rename incubator/rimgo/{1.0.5 => 1.0.6}/templates/common.yaml (100%) rename incubator/rimgo/{1.0.5 => 1.0.6}/values.yaml (100%) delete mode 100644 incubator/searxng/1.0.4/app-changelog.md rename incubator/searxng/{1.0.4 => 1.0.5}/CHANGELOG.md (100%) rename incubator/searxng/{1.0.4 => 1.0.5}/Chart.yaml (98%) rename incubator/searxng/{1.0.4 => 1.0.5}/README.md (100%) create mode 100644 incubator/searxng/1.0.5/app-changelog.md rename incubator/searxng/{1.0.4 => 1.0.5}/app-readme.md (100%) rename incubator/searxng/{1.0.4 => 1.0.5}/charts/common-10.9.7.tgz (100%) rename incubator/searxng/{1.0.4 => 1.0.5}/ix_values.yaml (83%) rename incubator/searxng/{1.0.4 => 1.0.5}/questions.yaml (100%) rename incubator/searxng/{1.0.4 => 1.0.5}/templates/common.yaml (100%) rename incubator/searxng/{1.0.4 => 1.0.5}/values.yaml (100%) delete mode 100644 incubator/speedtest-tracker/2.0.0/app-changelog.md rename incubator/speedtest-tracker/{2.0.0 => 2.0.1}/CHANGELOG.md (100%) rename incubator/speedtest-tracker/{2.0.0 => 2.0.1}/Chart.yaml (98%) rename incubator/speedtest-tracker/{2.0.0 => 2.0.1}/README.md (100%) create mode 100644 incubator/speedtest-tracker/2.0.1/app-changelog.md rename incubator/speedtest-tracker/{2.0.0 => 2.0.1}/app-readme.md (100%) rename incubator/speedtest-tracker/{2.0.0 => 2.0.1}/charts/common-10.9.7.tgz (100%) rename incubator/speedtest-tracker/{2.0.0 => 2.0.1}/charts/postgresql-9.0.5.tgz (100%) rename incubator/speedtest-tracker/{2.0.0 => 2.0.1}/ix_values.yaml (90%) rename incubator/speedtest-tracker/{2.0.0 => 2.0.1}/questions.yaml (100%) rename incubator/speedtest-tracker/{2.0.0 => 2.0.1}/templates/common.yaml (100%) rename incubator/speedtest-tracker/{2.0.0 => 2.0.1}/values.yaml (100%) delete mode 100644 incubator/ts-dnsserver/1.0.4/app-changelog.md rename incubator/ts-dnsserver/{1.0.4 => 1.0.5}/CHANGELOG.md (100%) rename incubator/ts-dnsserver/{1.0.4 => 1.0.5}/Chart.yaml (98%) rename incubator/ts-dnsserver/{1.0.4 => 1.0.5}/README.md (100%) create mode 100644 incubator/ts-dnsserver/1.0.5/app-changelog.md rename incubator/ts-dnsserver/{1.0.4 => 1.0.5}/app-readme.md (100%) rename incubator/ts-dnsserver/{1.0.4 => 1.0.5}/charts/common-10.9.7.tgz (100%) rename incubator/ts-dnsserver/{1.0.4 => 1.0.5}/ix_values.yaml (86%) rename incubator/ts-dnsserver/{1.0.4 => 1.0.5}/questions.yaml (100%) rename incubator/ts-dnsserver/{1.0.4 => 1.0.5}/templates/common.yaml (100%) rename incubator/ts-dnsserver/{1.0.4 => 1.0.5}/values.yaml (100%) delete mode 100644 incubator/virt-manager/1.0.4/app-changelog.md rename incubator/virt-manager/{1.0.4 => 1.0.5}/CHANGELOG.md (100%) rename incubator/virt-manager/{1.0.4 => 1.0.5}/Chart.yaml (98%) rename incubator/virt-manager/{1.0.4 => 1.0.5}/README.md (100%) create mode 100644 incubator/virt-manager/1.0.5/app-changelog.md rename incubator/virt-manager/{1.0.4 => 1.0.5}/app-readme.md (100%) rename incubator/virt-manager/{1.0.4 => 1.0.5}/charts/common-10.9.7.tgz (100%) rename incubator/virt-manager/{1.0.4 => 1.0.5}/ix_values.yaml (87%) rename incubator/virt-manager/{1.0.4 => 1.0.5}/questions.yaml (100%) rename incubator/virt-manager/{1.0.4 => 1.0.5}/templates/common.yaml (100%) rename incubator/virt-manager/{1.0.4 => 1.0.5}/values.yaml (100%) delete mode 100644 incubator/webtop/1.0.4/app-changelog.md rename incubator/webtop/{1.0.4 => 1.0.5}/CHANGELOG.md (100%) rename incubator/webtop/{1.0.4 => 1.0.5}/Chart.yaml (98%) rename incubator/webtop/{1.0.4 => 1.0.5}/README.md (100%) create mode 100644 incubator/webtop/1.0.5/app-changelog.md rename incubator/webtop/{1.0.4 => 1.0.5}/app-readme.md (100%) rename incubator/webtop/{1.0.4 => 1.0.5}/charts/common-10.9.7.tgz (100%) rename incubator/webtop/{1.0.4 => 1.0.5}/ix_values.yaml (83%) rename incubator/webtop/{1.0.4 => 1.0.5}/questions.yaml (100%) rename incubator/webtop/{1.0.4 => 1.0.5}/templates/common.yaml (100%) rename incubator/webtop/{1.0.4 => 1.0.5}/values.yaml (100%) delete mode 100644 stable/audiobookshelf/3.0.5/app-changelog.md rename stable/audiobookshelf/{3.0.5 => 3.0.6}/CHANGELOG.md (100%) rename stable/audiobookshelf/{3.0.5 => 3.0.6}/Chart.yaml (96%) rename stable/audiobookshelf/{3.0.5 => 3.0.6}/README.md (100%) create mode 100644 stable/audiobookshelf/3.0.6/app-changelog.md rename stable/audiobookshelf/{3.0.5 => 3.0.6}/app-readme.md (100%) rename stable/audiobookshelf/{3.0.5 => 3.0.6}/charts/common-10.9.7.tgz (100%) rename stable/audiobookshelf/{3.0.5 => 3.0.6}/ix_values.yaml (90%) rename stable/audiobookshelf/{3.0.5 => 3.0.6}/questions.yaml (100%) rename stable/audiobookshelf/{3.0.5 => 3.0.6}/templates/_secrets.tpl (100%) rename stable/audiobookshelf/{3.0.5 => 3.0.6}/templates/common.yaml (100%) rename stable/audiobookshelf/{3.0.5 => 3.0.6}/values.yaml (100%) create mode 100644 stable/babybuddy/10.0.1/CHANGELOG.md create mode 100644 stable/babybuddy/10.0.1/Chart.yaml create mode 100644 stable/babybuddy/10.0.1/README.md create mode 100644 stable/babybuddy/10.0.1/app-changelog.md create mode 100644 stable/babybuddy/10.0.1/app-readme.md rename stable/{booksonic-air/7.0.4 => babybuddy/10.0.1}/charts/common-10.9.7.tgz (100%) rename stable/{vikunja/5.0.1 => babybuddy/10.0.1}/charts/postgresql-9.0.5.tgz (100%) create mode 100644 stable/babybuddy/10.0.1/ix_values.yaml create mode 100644 stable/babybuddy/10.0.1/questions.yaml rename stable/{booksonic-air/7.0.4 => babybuddy/10.0.1}/templates/common.yaml (100%) rename stable/{booksonic-air/7.0.4 => babybuddy/10.0.1}/values.yaml (100%) delete mode 100644 stable/booksonic-air/7.0.4/app-changelog.md rename stable/booksonic-air/{7.0.4 => 7.0.5}/CHANGELOG.md (100%) rename stable/booksonic-air/{7.0.4 => 7.0.5}/Chart.yaml (98%) rename stable/booksonic-air/{7.0.4 => 7.0.5}/README.md (100%) create mode 100644 stable/booksonic-air/7.0.5/app-changelog.md rename stable/booksonic-air/{7.0.4 => 7.0.5}/app-readme.md (100%) rename stable/{custom-app/6.0.4 => booksonic-air/7.0.5}/charts/common-10.9.7.tgz (100%) rename stable/booksonic-air/{7.0.4 => 7.0.5}/ix_values.yaml (81%) rename stable/booksonic-air/{7.0.4 => 7.0.5}/questions.yaml (100%) rename stable/{custom-app/6.0.4 => booksonic-air/7.0.5}/templates/common.yaml (100%) rename stable/{custom-app/6.0.4 => booksonic-air/7.0.5}/values.yaml (100%) delete mode 100644 stable/custom-app/6.0.4/app-changelog.md rename stable/custom-app/{6.0.4 => 6.0.5}/CHANGELOG.md (100%) rename stable/custom-app/{6.0.4 => 6.0.5}/Chart.yaml (94%) rename stable/custom-app/{6.0.4 => 6.0.5}/README.md (100%) create mode 100644 stable/custom-app/6.0.5/app-changelog.md rename stable/custom-app/{6.0.4 => 6.0.5}/app-readme.md (100%) rename stable/{cyberchef/3.0.4 => custom-app/6.0.5}/charts/common-10.9.7.tgz (100%) rename stable/custom-app/{6.0.4 => 6.0.5}/ix_values.yaml (52%) rename stable/custom-app/{6.0.4 => 6.0.5}/questions.yaml (100%) rename stable/{cyberchef/3.0.4 => custom-app/6.0.5}/templates/common.yaml (100%) rename stable/{cyberchef/3.0.4 => custom-app/6.0.5}/values.yaml (100%) delete mode 100644 stable/cyberchef/3.0.4/app-changelog.md rename stable/cyberchef/{3.0.4 => 3.0.5}/CHANGELOG.md (100%) rename stable/cyberchef/{3.0.4 => 3.0.5}/Chart.yaml (98%) rename stable/cyberchef/{3.0.4 => 3.0.5}/README.md (100%) create mode 100644 stable/cyberchef/3.0.5/app-changelog.md rename stable/cyberchef/{3.0.4 => 3.0.5}/app-readme.md (100%) rename stable/{dashdot/2.0.4 => cyberchef/3.0.5}/charts/common-10.9.7.tgz (100%) rename stable/cyberchef/{3.0.4 => 3.0.5}/ix_values.yaml (78%) rename stable/cyberchef/{3.0.4 => 3.0.5}/questions.yaml (100%) rename stable/{dashdot/2.0.4 => cyberchef/3.0.5}/templates/common.yaml (100%) rename stable/{dashdot/2.0.4 => cyberchef/3.0.5}/values.yaml (100%) delete mode 100644 stable/dashdot/2.0.4/app-changelog.md rename stable/dashdot/{2.0.4 => 2.0.5}/CHANGELOG.md (100%) rename stable/dashdot/{2.0.4 => 2.0.5}/Chart.yaml (96%) rename stable/dashdot/{2.0.4 => 2.0.5}/README.md (100%) create mode 100644 stable/dashdot/2.0.5/app-changelog.md rename stable/dashdot/{2.0.4 => 2.0.5}/app-readme.md (100%) rename stable/{dokuwiki/4.0.4 => dashdot/2.0.5}/charts/common-10.9.7.tgz (100%) rename stable/dashdot/{2.0.4 => 2.0.5}/ix_values.yaml (97%) rename stable/dashdot/{2.0.4 => 2.0.5}/questions.yaml (100%) rename stable/{dokuwiki/4.0.4 => dashdot/2.0.5}/templates/common.yaml (100%) rename stable/{dokuwiki/4.0.4 => dashdot/2.0.5}/values.yaml (100%) delete mode 100644 stable/dokuwiki/4.0.4/app-changelog.md rename stable/dokuwiki/{4.0.4 => 4.0.5}/CHANGELOG.md (100%) rename stable/dokuwiki/{4.0.4 => 4.0.5}/Chart.yaml (98%) rename stable/dokuwiki/{4.0.4 => 4.0.5}/README.md (100%) create mode 100644 stable/dokuwiki/4.0.5/app-changelog.md rename stable/dokuwiki/{4.0.4 => 4.0.5}/app-readme.md (100%) rename stable/{flexget/3.0.4 => dokuwiki/4.0.5}/charts/common-10.9.7.tgz (100%) rename stable/dokuwiki/{4.0.4 => 4.0.5}/ix_values.yaml (86%) rename stable/dokuwiki/{4.0.4 => 4.0.5}/questions.yaml (100%) rename stable/{flexget/3.0.4 => dokuwiki/4.0.5}/templates/common.yaml (100%) rename stable/{flexget/3.0.4 => dokuwiki/4.0.5}/values.yaml (100%) delete mode 100644 stable/flexget/3.0.4/app-changelog.md rename stable/flexget/{3.0.4 => 3.0.5}/CHANGELOG.md (100%) rename stable/flexget/{3.0.4 => 3.0.5}/Chart.yaml (95%) rename stable/flexget/{3.0.4 => 3.0.5}/README.md (100%) create mode 100644 stable/flexget/3.0.5/app-changelog.md rename stable/flexget/{3.0.4 => 3.0.5}/app-readme.md (100%) rename stable/{koel/5.0.1 => flexget/3.0.5}/charts/common-10.9.7.tgz (100%) rename stable/flexget/{3.0.4 => 3.0.5}/ix_values.yaml (86%) rename stable/flexget/{3.0.4 => 3.0.5}/questions.yaml (100%) rename stable/{logitech-media-server/5.0.5 => flexget/3.0.5}/templates/common.yaml (100%) rename stable/{koel/5.0.1 => flexget/3.0.5}/values.yaml (100%) create mode 100644 stable/grocy/12.0.5/CHANGELOG.md create mode 100644 stable/grocy/12.0.5/Chart.yaml create mode 100644 stable/grocy/12.0.5/README.md create mode 100644 stable/grocy/12.0.5/app-changelog.md create mode 100644 stable/grocy/12.0.5/app-readme.md rename stable/{logitech-media-server/5.0.5 => grocy/12.0.5}/charts/common-10.9.7.tgz (100%) create mode 100644 stable/grocy/12.0.5/ix_values.yaml create mode 100644 stable/grocy/12.0.5/questions.yaml rename stable/{minecraft-java/2.0.4 => grocy/12.0.5}/templates/common.yaml (100%) rename stable/{logitech-media-server/5.0.5 => grocy/12.0.5}/values.yaml (100%) create mode 100644 stable/jackett/12.0.18/CHANGELOG.md create mode 100644 stable/jackett/12.0.18/Chart.yaml create mode 100644 stable/jackett/12.0.18/README.md create mode 100644 stable/jackett/12.0.18/app-changelog.md create mode 100644 stable/jackett/12.0.18/app-readme.md rename stable/{medusa/4.0.4 => jackett/12.0.18}/charts/common-10.9.7.tgz (100%) create mode 100644 stable/jackett/12.0.18/ix_values.yaml create mode 100644 stable/jackett/12.0.18/questions.yaml rename stable/{ntfy/3.0.4 => jackett/12.0.18}/templates/common.yaml (100%) rename stable/{medusa/4.0.4 => jackett/12.0.18}/values.yaml (100%) delete mode 100644 stable/koel/5.0.1/app-changelog.md rename stable/koel/{5.0.1 => 5.0.2}/CHANGELOG.md (100%) rename stable/koel/{5.0.1 => 5.0.2}/Chart.yaml (98%) rename stable/koel/{5.0.1 => 5.0.2}/README.md (100%) create mode 100644 stable/koel/5.0.2/app-changelog.md rename stable/koel/{5.0.1 => 5.0.2}/app-readme.md (100%) rename stable/{minecraft-java/2.0.4 => koel/5.0.2}/charts/common-10.9.7.tgz (100%) rename stable/koel/{5.0.1 => 5.0.2}/charts/mariadb-4.0.6.tgz (100%) rename stable/koel/{5.0.1 => 5.0.2}/ix_values.yaml (96%) rename stable/koel/{5.0.1 => 5.0.2}/questions.yaml (100%) rename stable/koel/{5.0.1 => 5.0.2}/templates/_secrets.tpl (100%) rename stable/koel/{5.0.1 => 5.0.2}/templates/common.yaml (100%) rename stable/{minecraft-java/2.0.4 => koel/5.0.2}/values.yaml (100%) delete mode 100644 stable/logitech-media-server/5.0.5/app-changelog.md rename stable/logitech-media-server/{5.0.5 => 5.0.6}/CHANGELOG.md (100%) rename stable/logitech-media-server/{5.0.5 => 5.0.6}/Chart.yaml (98%) rename stable/logitech-media-server/{5.0.5 => 5.0.6}/README.md (100%) create mode 100644 stable/logitech-media-server/5.0.6/app-changelog.md rename stable/logitech-media-server/{5.0.5 => 5.0.6}/app-readme.md (100%) rename stable/{ntfy/3.0.4 => logitech-media-server/5.0.6}/charts/common-10.9.7.tgz (100%) rename stable/logitech-media-server/{5.0.5 => 5.0.6}/ix_values.yaml (95%) rename stable/logitech-media-server/{5.0.5 => 5.0.6}/questions.yaml (100%) rename stable/{prowlarr/7.0.4 => logitech-media-server/5.0.6}/templates/common.yaml (100%) rename stable/{ntfy/3.0.4 => logitech-media-server/5.0.6}/values.yaml (100%) delete mode 100644 stable/medusa/4.0.4/app-changelog.md rename stable/medusa/{4.0.4 => 4.0.5}/CHANGELOG.md (100%) rename stable/medusa/{4.0.4 => 4.0.5}/Chart.yaml (98%) rename stable/medusa/{4.0.4 => 4.0.5}/README.md (100%) create mode 100644 stable/medusa/4.0.5/app-changelog.md rename stable/medusa/{4.0.4 => 4.0.5}/app-readme.md (100%) rename stable/{prowlarr/7.0.4 => medusa/4.0.5}/charts/common-10.9.7.tgz (100%) rename stable/medusa/{4.0.4 => 4.0.5}/ix_values.yaml (82%) rename stable/medusa/{4.0.4 => 4.0.5}/questions.yaml (100%) rename stable/medusa/{4.0.4 => 4.0.5}/templates/common.yaml (100%) rename stable/{prowlarr/7.0.4 => medusa/4.0.5}/values.yaml (100%) delete mode 100644 stable/minecraft-java/2.0.4/app-changelog.md rename stable/minecraft-java/{2.0.4 => 2.0.5}/CHANGELOG.md (100%) rename stable/minecraft-java/{2.0.4 => 2.0.5}/Chart.yaml (95%) rename stable/minecraft-java/{2.0.4 => 2.0.5}/README.md (100%) create mode 100644 stable/minecraft-java/2.0.5/app-changelog.md rename stable/minecraft-java/{2.0.4 => 2.0.5}/app-readme.md (100%) rename stable/{vikunja/5.0.1 => minecraft-java/2.0.5}/charts/common-10.9.7.tgz (100%) rename stable/minecraft-java/{2.0.4 => 2.0.5}/ix_values.yaml (91%) rename stable/minecraft-java/{2.0.4 => 2.0.5}/questions.yaml (100%) rename stable/{website-shot/3.0.4 => minecraft-java/2.0.5}/templates/common.yaml (100%) rename stable/{vikunja/5.0.1 => minecraft-java/2.0.5}/values.yaml (100%) delete mode 100644 stable/ntfy/3.0.4/app-changelog.md rename stable/ntfy/{3.0.4 => 3.0.5}/CHANGELOG.md (100%) rename stable/ntfy/{3.0.4 => 3.0.5}/Chart.yaml (95%) rename stable/ntfy/{3.0.4 => 3.0.5}/README.md (100%) create mode 100644 stable/ntfy/3.0.5/app-changelog.md rename stable/ntfy/{3.0.4 => 3.0.5}/app-readme.md (100%) rename stable/{website-shot/3.0.4 => ntfy/3.0.5}/charts/common-10.9.7.tgz (100%) rename stable/ntfy/{3.0.4 => 3.0.5}/ix_values.yaml (96%) rename stable/ntfy/{3.0.4 => 3.0.5}/questions.yaml (100%) create mode 100644 stable/ntfy/3.0.5/templates/common.yaml rename stable/{website-shot/3.0.4 => ntfy/3.0.5}/values.yaml (100%) create mode 100644 stable/photoprism/12.0.3/CHANGELOG.md create mode 100644 stable/photoprism/12.0.3/Chart.yaml create mode 100644 stable/photoprism/12.0.3/README.md create mode 100644 stable/photoprism/12.0.3/app-changelog.md create mode 100644 stable/photoprism/12.0.3/app-readme.md rename stable/{whisparr/2.0.4 => photoprism/12.0.3}/charts/common-10.9.7.tgz (100%) create mode 100644 stable/photoprism/12.0.3/charts/mariadb-4.0.6.tgz create mode 100644 stable/photoprism/12.0.3/ix_values.yaml create mode 100644 stable/photoprism/12.0.3/questions.yaml create mode 100644 stable/photoprism/12.0.3/templates/common.yaml rename stable/{whisparr/2.0.4 => photoprism/12.0.3}/values.yaml (100%) delete mode 100644 stable/prowlarr/7.0.4/app-changelog.md rename stable/prowlarr/{7.0.4 => 7.0.5}/CHANGELOG.md (100%) rename stable/prowlarr/{7.0.4 => 7.0.5}/Chart.yaml (98%) rename stable/prowlarr/{7.0.4 => 7.0.5}/README.md (100%) create mode 100644 stable/prowlarr/7.0.5/app-changelog.md rename stable/prowlarr/{7.0.4 => 7.0.5}/app-readme.md (100%) create mode 100644 stable/prowlarr/7.0.5/charts/common-10.9.7.tgz rename stable/prowlarr/{7.0.4 => 7.0.5}/ix_values.yaml (77%) rename stable/prowlarr/{7.0.4 => 7.0.5}/questions.yaml (100%) create mode 100644 stable/prowlarr/7.0.5/templates/common.yaml create mode 100644 stable/prowlarr/7.0.5/values.yaml create mode 100644 stable/radarr/12.0.5/CHANGELOG.md create mode 100644 stable/radarr/12.0.5/Chart.yaml create mode 100644 stable/radarr/12.0.5/README.md create mode 100644 stable/radarr/12.0.5/app-changelog.md create mode 100644 stable/radarr/12.0.5/app-readme.md create mode 100644 stable/radarr/12.0.5/charts/common-10.9.7.tgz create mode 100644 stable/radarr/12.0.5/ix_values.yaml create mode 100644 stable/radarr/12.0.5/questions.yaml create mode 100644 stable/radarr/12.0.5/templates/common.yaml create mode 100644 stable/radarr/12.0.5/values.yaml create mode 100644 stable/sabnzbd/12.0.5/CHANGELOG.md create mode 100644 stable/sabnzbd/12.0.5/Chart.yaml create mode 100644 stable/sabnzbd/12.0.5/README.md create mode 100644 stable/sabnzbd/12.0.5/app-changelog.md create mode 100644 stable/sabnzbd/12.0.5/app-readme.md create mode 100644 stable/sabnzbd/12.0.5/charts/common-10.9.7.tgz create mode 100644 stable/sabnzbd/12.0.5/ix_values.yaml create mode 100644 stable/sabnzbd/12.0.5/questions.yaml create mode 100644 stable/sabnzbd/12.0.5/templates/common.yaml create mode 100644 stable/sabnzbd/12.0.5/values.yaml create mode 100644 stable/tautulli/12.0.5/CHANGELOG.md create mode 100644 stable/tautulli/12.0.5/Chart.yaml create mode 100644 stable/tautulli/12.0.5/README.md create mode 100644 stable/tautulli/12.0.5/app-changelog.md create mode 100644 stable/tautulli/12.0.5/app-readme.md create mode 100644 stable/tautulli/12.0.5/charts/common-10.9.7.tgz create mode 100644 stable/tautulli/12.0.5/ix_values.yaml create mode 100644 stable/tautulli/12.0.5/questions.yaml create mode 100644 stable/tautulli/12.0.5/templates/common.yaml create mode 100644 stable/tautulli/12.0.5/values.yaml create mode 100644 stable/traefik/15.1.1/CHANGELOG.md create mode 100644 stable/traefik/15.1.1/Chart.yaml create mode 100644 stable/traefik/15.1.1/README.md create mode 100644 stable/traefik/15.1.1/app-changelog.md create mode 100644 stable/traefik/15.1.1/app-readme.md create mode 100644 stable/traefik/15.1.1/charts/common-10.9.7.tgz create mode 100644 stable/traefik/15.1.1/ix_values.yaml create mode 100644 stable/traefik/15.1.1/questions.yaml create mode 100644 stable/traefik/15.1.1/templates/_args.tpl create mode 100644 stable/traefik/15.1.1/templates/_helpers.tpl create mode 100644 stable/traefik/15.1.1/templates/_ingressclass.tpl create mode 100644 stable/traefik/15.1.1/templates/_ingressroute.tpl create mode 100644 stable/traefik/15.1.1/templates/_portalhook.tpl create mode 100644 stable/traefik/15.1.1/templates/_tlsoptions.tpl create mode 100644 stable/traefik/15.1.1/templates/common.yaml create mode 100644 stable/traefik/15.1.1/templates/middlewares/addPrefix.yaml create mode 100644 stable/traefik/15.1.1/templates/middlewares/basic-middleware.yaml create mode 100644 stable/traefik/15.1.1/templates/middlewares/basicauth.yaml create mode 100644 stable/traefik/15.1.1/templates/middlewares/chain.yaml create mode 100644 stable/traefik/15.1.1/templates/middlewares/forwardauth.yaml create mode 100644 stable/traefik/15.1.1/templates/middlewares/geoblock.yaml create mode 100644 stable/traefik/15.1.1/templates/middlewares/ipwhitelist.yaml create mode 100644 stable/traefik/15.1.1/templates/middlewares/ratelimit.yaml create mode 100644 stable/traefik/15.1.1/templates/middlewares/real-ip.yaml create mode 100644 stable/traefik/15.1.1/templates/middlewares/redirectScheme.yaml create mode 100644 stable/traefik/15.1.1/templates/middlewares/redirectregex.yaml create mode 100644 stable/traefik/15.1.1/templates/middlewares/stripPrefixRegex.yaml create mode 100644 stable/traefik/15.1.1/templates/middlewares/tc-chains.yaml create mode 100644 stable/traefik/15.1.1/templates/middlewares/tc-headers.yaml create mode 100644 stable/traefik/15.1.1/templates/middlewares/tc-nextcloud.yaml create mode 100644 stable/traefik/15.1.1/templates/middlewares/theme-park.yaml create mode 100644 stable/traefik/15.1.1/values.yaml create mode 100644 stable/tvheadend/13.0.5/CHANGELOG.md create mode 100644 stable/tvheadend/13.0.5/Chart.yaml create mode 100644 stable/tvheadend/13.0.5/README.md create mode 100644 stable/tvheadend/13.0.5/app-changelog.md create mode 100644 stable/tvheadend/13.0.5/app-readme.md create mode 100644 stable/tvheadend/13.0.5/charts/common-10.9.7.tgz create mode 100644 stable/tvheadend/13.0.5/ix_values.yaml create mode 100644 stable/tvheadend/13.0.5/questions.yaml create mode 100644 stable/tvheadend/13.0.5/templates/common.yaml create mode 100644 stable/tvheadend/13.0.5/values.yaml delete mode 100644 stable/vikunja/5.0.1/app-changelog.md rename stable/vikunja/{5.0.1 => 5.0.2}/CHANGELOG.md (100%) rename stable/vikunja/{5.0.1 => 5.0.2}/Chart.yaml (96%) rename stable/vikunja/{5.0.1 => 5.0.2}/README.md (100%) create mode 100644 stable/vikunja/5.0.2/app-changelog.md rename stable/vikunja/{5.0.1 => 5.0.2}/app-readme.md (100%) create mode 100644 stable/vikunja/5.0.2/charts/common-10.9.7.tgz create mode 100644 stable/vikunja/5.0.2/charts/postgresql-9.0.5.tgz rename stable/vikunja/{5.0.1 => 5.0.2}/charts/redis-4.0.6.tgz (100%) rename stable/vikunja/{5.0.1 => 5.0.2}/ix_values.yaml (95%) rename stable/vikunja/{5.0.1 => 5.0.2}/questions.yaml (100%) rename stable/vikunja/{5.0.1 => 5.0.2}/templates/_secrets.tpl (100%) rename stable/vikunja/{5.0.1 => 5.0.2}/templates/common.yaml (100%) create mode 100644 stable/vikunja/5.0.2/values.yaml delete mode 100644 stable/website-shot/3.0.4/app-changelog.md rename stable/website-shot/{3.0.4 => 3.0.5}/CHANGELOG.md (100%) rename stable/website-shot/{3.0.4 => 3.0.5}/Chart.yaml (98%) rename stable/website-shot/{3.0.4 => 3.0.5}/README.md (100%) create mode 100644 stable/website-shot/3.0.5/app-changelog.md rename stable/website-shot/{3.0.4 => 3.0.5}/app-readme.md (100%) create mode 100644 stable/website-shot/3.0.5/charts/common-10.9.7.tgz rename stable/website-shot/{3.0.4 => 3.0.5}/ix_values.yaml (77%) rename stable/website-shot/{3.0.4 => 3.0.5}/questions.yaml (100%) create mode 100644 stable/website-shot/3.0.5/templates/common.yaml create mode 100644 stable/website-shot/3.0.5/values.yaml delete mode 100644 stable/whisparr/2.0.4/app-changelog.md rename stable/whisparr/{2.0.4 => 2.0.5}/CHANGELOG.md (100%) rename stable/whisparr/{2.0.4 => 2.0.5}/Chart.yaml (98%) rename stable/whisparr/{2.0.4 => 2.0.5}/README.md (100%) create mode 100644 stable/whisparr/2.0.5/app-changelog.md rename stable/whisparr/{2.0.4 => 2.0.5}/app-readme.md (100%) create mode 100644 stable/whisparr/2.0.5/charts/common-10.9.7.tgz rename stable/whisparr/{2.0.4 => 2.0.5}/ix_values.yaml (91%) rename stable/whisparr/{2.0.4 => 2.0.5}/questions.yaml (100%) rename stable/whisparr/{2.0.4 => 2.0.5}/templates/common.yaml (100%) create mode 100644 stable/whisparr/2.0.5/values.yaml create mode 100644 stable/xen-orchestra/2.0.0/CHANGELOG.md create mode 100644 stable/xen-orchestra/2.0.0/Chart.yaml create mode 100644 stable/xen-orchestra/2.0.0/README.md create mode 100644 stable/xen-orchestra/2.0.0/app-changelog.md create mode 100644 stable/xen-orchestra/2.0.0/app-readme.md create mode 100644 stable/xen-orchestra/2.0.0/charts/common-10.9.7.tgz create mode 100644 stable/xen-orchestra/2.0.0/ix_values.yaml create mode 100644 stable/xen-orchestra/2.0.0/questions.yaml create mode 100644 stable/xen-orchestra/2.0.0/templates/common.yaml create mode 100644 stable/xen-orchestra/2.0.0/values.yaml create mode 100644 stable/xen-orchestra/item.yaml diff --git a/incubator/apprise-api/1.0.4/app-changelog.md b/incubator/apprise-api/1.0.4/app-changelog.md deleted file mode 100644 index 54906482de9..00000000000 --- a/incubator/apprise-api/1.0.4/app-changelog.md +++ /dev/null @@ -1,9 +0,0 @@ - - -## [apprise-api-1.0.4](https://github.com/truecharts/charts/compare/apprise-api-1.0.3...apprise-api-1.0.4) (2022-11-12) - -### Chore - -- update helm general non-major ([#4395](https://github.com/truecharts/charts/issues/4395)) - - \ No newline at end of file diff --git a/incubator/apprise-api/1.0.4/CHANGELOG.md b/incubator/apprise-api/1.0.5/CHANGELOG.md similarity index 100% rename from incubator/apprise-api/1.0.4/CHANGELOG.md rename to incubator/apprise-api/1.0.5/CHANGELOG.md diff --git a/incubator/apprise-api/1.0.4/Chart.yaml b/incubator/apprise-api/1.0.5/Chart.yaml similarity index 98% rename from incubator/apprise-api/1.0.4/Chart.yaml rename to incubator/apprise-api/1.0.5/Chart.yaml index a3c6f964433..669e357c01a 100644 --- a/incubator/apprise-api/1.0.4/Chart.yaml +++ b/incubator/apprise-api/1.0.5/Chart.yaml @@ -27,4 +27,4 @@ sources: - https://github.com/orgs/linuxserver/packages/container/package/apprise-api - https://github.com/linuxserver/docker-apprise-api#readme type: application -version: 1.0.4 +version: 1.0.5 diff --git a/incubator/apprise-api/1.0.4/README.md b/incubator/apprise-api/1.0.5/README.md similarity index 100% rename from incubator/apprise-api/1.0.4/README.md rename to incubator/apprise-api/1.0.5/README.md diff --git a/incubator/apprise-api/1.0.5/app-changelog.md b/incubator/apprise-api/1.0.5/app-changelog.md new file mode 100644 index 00000000000..4e7dc3b7f10 --- /dev/null +++ b/incubator/apprise-api/1.0.5/app-changelog.md @@ -0,0 +1,9 @@ + + +## [apprise-api-1.0.5](https://github.com/truecharts/charts/compare/apprise-api-1.0.4...apprise-api-1.0.5) (2022-11-14) + +### Chore + +- update docker general non-major ([#4414](https://github.com/truecharts/charts/issues/4414)) + + \ No newline at end of file diff --git a/incubator/apprise-api/1.0.4/app-readme.md b/incubator/apprise-api/1.0.5/app-readme.md similarity index 100% rename from incubator/apprise-api/1.0.4/app-readme.md rename to incubator/apprise-api/1.0.5/app-readme.md diff --git a/incubator/apprise-api/1.0.4/charts/common-10.9.7.tgz b/incubator/apprise-api/1.0.5/charts/common-10.9.7.tgz similarity index 100% rename from incubator/apprise-api/1.0.4/charts/common-10.9.7.tgz rename to incubator/apprise-api/1.0.5/charts/common-10.9.7.tgz diff --git a/incubator/apprise-api/1.0.4/ix_values.yaml b/incubator/apprise-api/1.0.5/ix_values.yaml similarity index 82% rename from incubator/apprise-api/1.0.4/ix_values.yaml rename to incubator/apprise-api/1.0.5/ix_values.yaml index b4aa25e545e..a1541ecd0ab 100644 --- a/incubator/apprise-api/1.0.4/ix_values.yaml +++ b/incubator/apprise-api/1.0.5/ix_values.yaml @@ -3,7 +3,7 @@ env: image: pullPolicy: IfNotPresent repository: tccr.io/truecharts/apprise-api - tag: latest@sha256:a8eb2aff6603683843322e990ecc0bb738f9ae9b58038bc7ab439fe8e17e5de9 + tag: latest@sha256:668a11f30f705958f6c0146023450748be29af5bab73ddf4c8bcca75269defda persistence: config: enabled: true diff --git a/incubator/apprise-api/1.0.4/questions.yaml b/incubator/apprise-api/1.0.5/questions.yaml similarity index 100% rename from incubator/apprise-api/1.0.4/questions.yaml rename to incubator/apprise-api/1.0.5/questions.yaml diff --git a/incubator/apprise-api/1.0.4/templates/common.yaml b/incubator/apprise-api/1.0.5/templates/common.yaml similarity index 100% rename from incubator/apprise-api/1.0.4/templates/common.yaml rename to incubator/apprise-api/1.0.5/templates/common.yaml diff --git a/incubator/apprise-api/1.0.4/values.yaml b/incubator/apprise-api/1.0.5/values.yaml similarity index 100% rename from incubator/apprise-api/1.0.4/values.yaml rename to incubator/apprise-api/1.0.5/values.yaml diff --git a/incubator/cryptpad/1.0.4/app-changelog.md b/incubator/cryptpad/1.0.4/app-changelog.md deleted file mode 100644 index 1e406d7c44d..00000000000 --- a/incubator/cryptpad/1.0.4/app-changelog.md +++ /dev/null @@ -1,11 +0,0 @@ - - -## [cryptpad-1.0.4](https://github.com/truecharts/charts/compare/cryptpad-1.0.3...cryptpad-1.0.4) (2022-11-12) - -### Chore - -- update docker general non-major ([#4394](https://github.com/truecharts/charts/issues/4394)) - - update helm general non-major ([#4395](https://github.com/truecharts/charts/issues/4395)) - - update docker general non-major - - \ No newline at end of file diff --git a/incubator/cryptpad/1.0.4/CHANGELOG.md b/incubator/cryptpad/1.0.5/CHANGELOG.md similarity index 100% rename from incubator/cryptpad/1.0.4/CHANGELOG.md rename to incubator/cryptpad/1.0.5/CHANGELOG.md diff --git a/incubator/cryptpad/1.0.4/Chart.yaml b/incubator/cryptpad/1.0.5/Chart.yaml similarity index 98% rename from incubator/cryptpad/1.0.4/Chart.yaml rename to incubator/cryptpad/1.0.5/Chart.yaml index 9646e32438e..3a4e40b6d4d 100644 --- a/incubator/cryptpad/1.0.4/Chart.yaml +++ b/incubator/cryptpad/1.0.5/Chart.yaml @@ -28,4 +28,4 @@ sources: - https://cryptpad.fr/ - https://hub.docker.com/r/promasu/cryptpad/ type: application -version: 1.0.4 +version: 1.0.5 diff --git a/incubator/cryptpad/1.0.4/README.md b/incubator/cryptpad/1.0.5/README.md similarity index 100% rename from incubator/cryptpad/1.0.4/README.md rename to incubator/cryptpad/1.0.5/README.md diff --git a/incubator/cryptpad/1.0.5/app-changelog.md b/incubator/cryptpad/1.0.5/app-changelog.md new file mode 100644 index 00000000000..8cb51c080e6 --- /dev/null +++ b/incubator/cryptpad/1.0.5/app-changelog.md @@ -0,0 +1,9 @@ + + +## [cryptpad-1.0.5](https://github.com/truecharts/charts/compare/cryptpad-1.0.4...cryptpad-1.0.5) (2022-11-14) + +### Chore + +- update docker general non-major ([#4414](https://github.com/truecharts/charts/issues/4414)) + + \ No newline at end of file diff --git a/incubator/cryptpad/1.0.4/app-readme.md b/incubator/cryptpad/1.0.5/app-readme.md similarity index 100% rename from incubator/cryptpad/1.0.4/app-readme.md rename to incubator/cryptpad/1.0.5/app-readme.md diff --git a/incubator/cryptpad/1.0.4/charts/common-10.9.7.tgz b/incubator/cryptpad/1.0.5/charts/common-10.9.7.tgz similarity index 100% rename from incubator/cryptpad/1.0.4/charts/common-10.9.7.tgz rename to incubator/cryptpad/1.0.5/charts/common-10.9.7.tgz diff --git a/incubator/cryptpad/1.0.4/ix_values.yaml b/incubator/cryptpad/1.0.5/ix_values.yaml similarity index 91% rename from incubator/cryptpad/1.0.4/ix_values.yaml rename to incubator/cryptpad/1.0.5/ix_values.yaml index ff28cbdb032..a39a6b53bc4 100644 --- a/incubator/cryptpad/1.0.4/ix_values.yaml +++ b/incubator/cryptpad/1.0.5/ix_values.yaml @@ -2,7 +2,7 @@ env: {} image: pullPolicy: IfNotPresent repository: tccr.io/truecharts/cryptpad - tag: latest@sha256:332f8e2abbfb4b15647a7c55210e9f4ff10997cfe2a2fea93cb552c6d420445f + tag: latest@sha256:4c5190f9e82c6690e37cf02f4c63f980d6dba2be67dba374504071a570ca364a persistence: blobpath: enabled: true diff --git a/incubator/cryptpad/1.0.4/questions.yaml b/incubator/cryptpad/1.0.5/questions.yaml similarity index 100% rename from incubator/cryptpad/1.0.4/questions.yaml rename to incubator/cryptpad/1.0.5/questions.yaml diff --git a/incubator/cryptpad/1.0.4/templates/common.yaml b/incubator/cryptpad/1.0.5/templates/common.yaml similarity index 100% rename from incubator/cryptpad/1.0.4/templates/common.yaml rename to incubator/cryptpad/1.0.5/templates/common.yaml diff --git a/incubator/cryptpad/1.0.4/values.yaml b/incubator/cryptpad/1.0.5/values.yaml similarity index 100% rename from incubator/cryptpad/1.0.4/values.yaml rename to incubator/cryptpad/1.0.5/values.yaml diff --git a/incubator/cups-server/2.0.4/app-changelog.md b/incubator/cups-server/2.0.4/app-changelog.md deleted file mode 100644 index e2f832c0394..00000000000 --- a/incubator/cups-server/2.0.4/app-changelog.md +++ /dev/null @@ -1,9 +0,0 @@ - - -## [cups-server-2.0.4](https://github.com/truecharts/charts/compare/cups-server-2.0.3...cups-server-2.0.4) (2022-11-12) - -### Chore - -- update helm general non-major ([#4395](https://github.com/truecharts/charts/issues/4395)) - - \ No newline at end of file diff --git a/incubator/cups-server/2.0.4/CHANGELOG.md b/incubator/cups-server/2.0.5/CHANGELOG.md similarity index 100% rename from incubator/cups-server/2.0.4/CHANGELOG.md rename to incubator/cups-server/2.0.5/CHANGELOG.md diff --git a/incubator/cups-server/2.0.4/Chart.yaml b/incubator/cups-server/2.0.5/Chart.yaml similarity index 97% rename from incubator/cups-server/2.0.4/Chart.yaml rename to incubator/cups-server/2.0.5/Chart.yaml index 6e088ffa0e7..fd09bd7104e 100644 --- a/incubator/cups-server/2.0.4/Chart.yaml +++ b/incubator/cups-server/2.0.5/Chart.yaml @@ -19,7 +19,7 @@ name: cups-server sources: - https://github.com/truecharts/charts/tree/master/charts/incubator/cups-server - https://hub.docker.com/r/ydkn/cups -version: 2.0.4 +version: 2.0.5 annotations: truecharts.org/catagories: | - media diff --git a/incubator/cups-server/2.0.4/README.md b/incubator/cups-server/2.0.5/README.md similarity index 100% rename from incubator/cups-server/2.0.4/README.md rename to incubator/cups-server/2.0.5/README.md diff --git a/incubator/cups-server/2.0.5/app-changelog.md b/incubator/cups-server/2.0.5/app-changelog.md new file mode 100644 index 00000000000..86f675f879d --- /dev/null +++ b/incubator/cups-server/2.0.5/app-changelog.md @@ -0,0 +1,9 @@ + + +## [cups-server-2.0.5](https://github.com/truecharts/charts/compare/cups-server-2.0.4...cups-server-2.0.5) (2022-11-14) + +### Chore + +- update docker general non-major ([#4414](https://github.com/truecharts/charts/issues/4414)) + + \ No newline at end of file diff --git a/incubator/cups-server/2.0.4/app-readme.md b/incubator/cups-server/2.0.5/app-readme.md similarity index 100% rename from incubator/cups-server/2.0.4/app-readme.md rename to incubator/cups-server/2.0.5/app-readme.md diff --git a/incubator/cups-server/2.0.4/charts/common-10.9.7.tgz b/incubator/cups-server/2.0.5/charts/common-10.9.7.tgz similarity index 100% rename from incubator/cups-server/2.0.4/charts/common-10.9.7.tgz rename to incubator/cups-server/2.0.5/charts/common-10.9.7.tgz diff --git a/incubator/cups-server/2.0.4/ix_values.yaml b/incubator/cups-server/2.0.5/ix_values.yaml similarity index 86% rename from incubator/cups-server/2.0.4/ix_values.yaml rename to incubator/cups-server/2.0.5/ix_values.yaml index 5987c839a9e..2774c1bb802 100644 --- a/incubator/cups-server/2.0.4/ix_values.yaml +++ b/incubator/cups-server/2.0.5/ix_values.yaml @@ -1,6 +1,6 @@ image: repository: tccr.io/truecharts/cups-server - tag: latest@sha256:4ccb4efb53a2cd64143f81d687ec7c015e055db168e75b9579af2481f6b08612 + tag: latest@sha256:58b5365ad211dc78fe19bb85544d752aaa770c43da6d01bd02bbb4d85a31844b pullPolicy: IfNotPresent securityContext: diff --git a/incubator/cups-server/2.0.4/questions.yaml b/incubator/cups-server/2.0.5/questions.yaml similarity index 100% rename from incubator/cups-server/2.0.4/questions.yaml rename to incubator/cups-server/2.0.5/questions.yaml diff --git a/incubator/cups-server/2.0.4/templates/common.yaml b/incubator/cups-server/2.0.5/templates/common.yaml similarity index 100% rename from incubator/cups-server/2.0.4/templates/common.yaml rename to incubator/cups-server/2.0.5/templates/common.yaml diff --git a/incubator/cups-server/2.0.4/values.yaml b/incubator/cups-server/2.0.5/values.yaml similarity index 100% rename from incubator/cups-server/2.0.4/values.yaml rename to incubator/cups-server/2.0.5/values.yaml diff --git a/incubator/glauth/1.0.4/app-changelog.md b/incubator/glauth/1.0.4/app-changelog.md deleted file mode 100644 index 983da355cfc..00000000000 --- a/incubator/glauth/1.0.4/app-changelog.md +++ /dev/null @@ -1,9 +0,0 @@ - - -## [glauth-1.0.4](https://github.com/truecharts/charts/compare/glauth-1.0.3...glauth-1.0.4) (2022-11-12) - -### Chore - -- update helm general non-major ([#4395](https://github.com/truecharts/charts/issues/4395)) - - \ No newline at end of file diff --git a/incubator/glauth/1.0.4/CHANGELOG.md b/incubator/glauth/1.0.5/CHANGELOG.md similarity index 100% rename from incubator/glauth/1.0.4/CHANGELOG.md rename to incubator/glauth/1.0.5/CHANGELOG.md diff --git a/incubator/glauth/1.0.4/Chart.yaml b/incubator/glauth/1.0.5/Chart.yaml similarity index 98% rename from incubator/glauth/1.0.4/Chart.yaml rename to incubator/glauth/1.0.5/Chart.yaml index 55d106d65d1..9a3c83fdc96 100644 --- a/incubator/glauth/1.0.4/Chart.yaml +++ b/incubator/glauth/1.0.5/Chart.yaml @@ -26,4 +26,4 @@ sources: - https://glauth.github.io - https://hub.docker.com/repository/docker/glauth/glauth type: application -version: 1.0.4 +version: 1.0.5 diff --git a/incubator/glauth/1.0.4/README.md b/incubator/glauth/1.0.5/README.md similarity index 100% rename from incubator/glauth/1.0.4/README.md rename to incubator/glauth/1.0.5/README.md diff --git a/incubator/glauth/1.0.5/app-changelog.md b/incubator/glauth/1.0.5/app-changelog.md new file mode 100644 index 00000000000..7fdb0006f06 --- /dev/null +++ b/incubator/glauth/1.0.5/app-changelog.md @@ -0,0 +1,9 @@ + + +## [glauth-1.0.5](https://github.com/truecharts/charts/compare/glauth-1.0.4...glauth-1.0.5) (2022-11-14) + +### Chore + +- update docker general non-major ([#4414](https://github.com/truecharts/charts/issues/4414)) + + \ No newline at end of file diff --git a/incubator/glauth/1.0.4/app-readme.md b/incubator/glauth/1.0.5/app-readme.md similarity index 100% rename from incubator/glauth/1.0.4/app-readme.md rename to incubator/glauth/1.0.5/app-readme.md diff --git a/incubator/glauth/1.0.4/charts/common-10.9.7.tgz b/incubator/glauth/1.0.5/charts/common-10.9.7.tgz similarity index 100% rename from incubator/glauth/1.0.4/charts/common-10.9.7.tgz rename to incubator/glauth/1.0.5/charts/common-10.9.7.tgz diff --git a/incubator/glauth/1.0.4/ix_values.yaml b/incubator/glauth/1.0.5/ix_values.yaml similarity index 88% rename from incubator/glauth/1.0.4/ix_values.yaml rename to incubator/glauth/1.0.5/ix_values.yaml index 2593b4108b5..ca4cc5d8c14 100644 --- a/incubator/glauth/1.0.4/ix_values.yaml +++ b/incubator/glauth/1.0.5/ix_values.yaml @@ -2,7 +2,7 @@ env: {} image: pullPolicy: IfNotPresent repository: tccr.io/truecharts/glauth - tag: latest@sha256:3712098e07a31c50775d07575396665b0f8a60f019e503589088cf4c8838f7cd + tag: latest@sha256:6447de431d0d9ffcd490a555a90cc3c00a315af6d579e160bd9e19ce82a5fd5f persistence: config: enabled: true diff --git a/incubator/glauth/1.0.4/questions.yaml b/incubator/glauth/1.0.5/questions.yaml similarity index 100% rename from incubator/glauth/1.0.4/questions.yaml rename to incubator/glauth/1.0.5/questions.yaml diff --git a/incubator/glauth/1.0.4/templates/common.yaml b/incubator/glauth/1.0.5/templates/common.yaml similarity index 100% rename from incubator/glauth/1.0.4/templates/common.yaml rename to incubator/glauth/1.0.5/templates/common.yaml diff --git a/incubator/glauth/1.0.4/values.yaml b/incubator/glauth/1.0.5/values.yaml similarity index 100% rename from incubator/glauth/1.0.4/values.yaml rename to incubator/glauth/1.0.5/values.yaml diff --git a/incubator/noisedash/1.0.4/app-changelog.md b/incubator/noisedash/1.0.4/app-changelog.md deleted file mode 100644 index 4548e40422a..00000000000 --- a/incubator/noisedash/1.0.4/app-changelog.md +++ /dev/null @@ -1,9 +0,0 @@ - - -## [noisedash-1.0.4](https://github.com/truecharts/charts/compare/noisedash-1.0.3...noisedash-1.0.4) (2022-11-12) - -### Chore - -- update helm general non-major ([#4395](https://github.com/truecharts/charts/issues/4395)) - - \ No newline at end of file diff --git a/incubator/noisedash/1.0.4/CHANGELOG.md b/incubator/noisedash/1.0.5/CHANGELOG.md similarity index 100% rename from incubator/noisedash/1.0.4/CHANGELOG.md rename to incubator/noisedash/1.0.5/CHANGELOG.md diff --git a/incubator/noisedash/1.0.4/Chart.yaml b/incubator/noisedash/1.0.5/Chart.yaml similarity index 95% rename from incubator/noisedash/1.0.4/Chart.yaml rename to incubator/noisedash/1.0.5/Chart.yaml index 0bb2409a4d4..19036116c03 100644 --- a/incubator/noisedash/1.0.4/Chart.yaml +++ b/incubator/noisedash/1.0.5/Chart.yaml @@ -1,5 +1,5 @@ apiVersion: v2 -appVersion: "0.6.5" +appVersion: "0.6.6" dependencies: - name: common repository: https://library-charts.truecharts.org @@ -18,7 +18,7 @@ name: noisedash sources: - https://github.com/truecharts/charts/tree/master/charts/incubator/noisedash - https://github.com/kaythomas0/noisedash -version: 1.0.4 +version: 1.0.5 annotations: truecharts.org/catagories: | - media diff --git a/incubator/noisedash/1.0.4/README.md b/incubator/noisedash/1.0.5/README.md similarity index 100% rename from incubator/noisedash/1.0.4/README.md rename to incubator/noisedash/1.0.5/README.md diff --git a/incubator/noisedash/1.0.5/app-changelog.md b/incubator/noisedash/1.0.5/app-changelog.md new file mode 100644 index 00000000000..fc58277486c --- /dev/null +++ b/incubator/noisedash/1.0.5/app-changelog.md @@ -0,0 +1,9 @@ + + +## [noisedash-1.0.5](https://github.com/truecharts/charts/compare/noisedash-1.0.4...noisedash-1.0.5) (2022-11-14) + +### Chore + +- update docker general non-major ([#4414](https://github.com/truecharts/charts/issues/4414)) + + \ No newline at end of file diff --git a/incubator/noisedash/1.0.4/app-readme.md b/incubator/noisedash/1.0.5/app-readme.md similarity index 100% rename from incubator/noisedash/1.0.4/app-readme.md rename to incubator/noisedash/1.0.5/app-readme.md diff --git a/incubator/noisedash/1.0.4/charts/common-10.9.7.tgz b/incubator/noisedash/1.0.5/charts/common-10.9.7.tgz similarity index 100% rename from incubator/noisedash/1.0.4/charts/common-10.9.7.tgz rename to incubator/noisedash/1.0.5/charts/common-10.9.7.tgz diff --git a/incubator/noisedash/1.0.4/ix_values.yaml b/incubator/noisedash/1.0.5/ix_values.yaml similarity index 84% rename from incubator/noisedash/1.0.4/ix_values.yaml rename to incubator/noisedash/1.0.5/ix_values.yaml index 997e40f4197..fedaa995ea2 100644 --- a/incubator/noisedash/1.0.4/ix_values.yaml +++ b/incubator/noisedash/1.0.5/ix_values.yaml @@ -1,6 +1,6 @@ image: repository: tccr.io/truecharts/noisedash - tag: v0.6.5@sha256:fedd0dc06300ba834e190323a8a37c7e555efeb179dcf34a6607da969a4c3956 + tag: 0.6.6@sha256:ca344eb08d854930167e33d171afe7203df62b6128832d575ec2318c5ef50e85 pullPolicy: IfNotPresent securityContext: diff --git a/incubator/noisedash/1.0.4/questions.yaml b/incubator/noisedash/1.0.5/questions.yaml similarity index 100% rename from incubator/noisedash/1.0.4/questions.yaml rename to incubator/noisedash/1.0.5/questions.yaml diff --git a/incubator/noisedash/1.0.4/templates/_configmap.tpl b/incubator/noisedash/1.0.5/templates/_configmap.tpl similarity index 100% rename from incubator/noisedash/1.0.4/templates/_configmap.tpl rename to incubator/noisedash/1.0.5/templates/_configmap.tpl diff --git a/incubator/noisedash/1.0.4/templates/common.yaml b/incubator/noisedash/1.0.5/templates/common.yaml similarity index 100% rename from incubator/noisedash/1.0.4/templates/common.yaml rename to incubator/noisedash/1.0.5/templates/common.yaml diff --git a/incubator/noisedash/1.0.4/values.yaml b/incubator/noisedash/1.0.5/values.yaml similarity index 100% rename from incubator/noisedash/1.0.4/values.yaml rename to incubator/noisedash/1.0.5/values.yaml diff --git a/incubator/passwordpusherephemeral/1.0.5/app-changelog.md b/incubator/passwordpusherephemeral/1.0.5/app-changelog.md deleted file mode 100644 index 0dec97736f2..00000000000 --- a/incubator/passwordpusherephemeral/1.0.5/app-changelog.md +++ /dev/null @@ -1,9 +0,0 @@ - - -## [passwordpusherephemeral-1.0.5](https://github.com/truecharts/charts/compare/passwordpusherephemeral-1.0.4...passwordpusherephemeral-1.0.5) (2022-11-13) - -### Chore - -- update docker general non-major ([#4398](https://github.com/truecharts/charts/issues/4398)) - - \ No newline at end of file diff --git a/incubator/passwordpusherephemeral/1.0.5/CHANGELOG.md b/incubator/passwordpusherephemeral/1.0.6/CHANGELOG.md similarity index 100% rename from incubator/passwordpusherephemeral/1.0.5/CHANGELOG.md rename to incubator/passwordpusherephemeral/1.0.6/CHANGELOG.md diff --git a/incubator/passwordpusherephemeral/1.0.5/Chart.yaml b/incubator/passwordpusherephemeral/1.0.6/Chart.yaml similarity index 98% rename from incubator/passwordpusherephemeral/1.0.5/Chart.yaml rename to incubator/passwordpusherephemeral/1.0.6/Chart.yaml index 3b19772234e..38580110a46 100644 --- a/incubator/passwordpusherephemeral/1.0.5/Chart.yaml +++ b/incubator/passwordpusherephemeral/1.0.6/Chart.yaml @@ -30,4 +30,4 @@ sources: - https://github.com/pglombardo/PasswordPusher - https://hub.docker.com/r/pglombardo/pwpush-ephemeral/ type: application -version: 1.0.5 +version: 1.0.6 diff --git a/incubator/passwordpusherephemeral/1.0.5/README.md b/incubator/passwordpusherephemeral/1.0.6/README.md similarity index 100% rename from incubator/passwordpusherephemeral/1.0.5/README.md rename to incubator/passwordpusherephemeral/1.0.6/README.md diff --git a/incubator/passwordpusherephemeral/1.0.6/app-changelog.md b/incubator/passwordpusherephemeral/1.0.6/app-changelog.md new file mode 100644 index 00000000000..585152b8755 --- /dev/null +++ b/incubator/passwordpusherephemeral/1.0.6/app-changelog.md @@ -0,0 +1,9 @@ + + +## [passwordpusherephemeral-1.0.6](https://github.com/truecharts/charts/compare/passwordpusherephemeral-1.0.5...passwordpusherephemeral-1.0.6) (2022-11-14) + +### Chore + +- update docker general non-major ([#4414](https://github.com/truecharts/charts/issues/4414)) + + \ No newline at end of file diff --git a/incubator/passwordpusherephemeral/1.0.5/app-readme.md b/incubator/passwordpusherephemeral/1.0.6/app-readme.md similarity index 100% rename from incubator/passwordpusherephemeral/1.0.5/app-readme.md rename to incubator/passwordpusherephemeral/1.0.6/app-readme.md diff --git a/incubator/passwordpusherephemeral/1.0.5/charts/common-10.9.7.tgz b/incubator/passwordpusherephemeral/1.0.6/charts/common-10.9.7.tgz similarity index 100% rename from incubator/passwordpusherephemeral/1.0.5/charts/common-10.9.7.tgz rename to incubator/passwordpusherephemeral/1.0.6/charts/common-10.9.7.tgz diff --git a/incubator/passwordpusherephemeral/1.0.5/ix_values.yaml b/incubator/passwordpusherephemeral/1.0.6/ix_values.yaml similarity index 83% rename from incubator/passwordpusherephemeral/1.0.5/ix_values.yaml rename to incubator/passwordpusherephemeral/1.0.6/ix_values.yaml index dfcff339e60..37eb301e7ef 100644 --- a/incubator/passwordpusherephemeral/1.0.5/ix_values.yaml +++ b/incubator/passwordpusherephemeral/1.0.6/ix_values.yaml @@ -2,7 +2,7 @@ env: {} image: pullPolicy: IfNotPresent repository: tccr.io/truecharts/passwordpusherephemeral - tag: latest@sha256:afcbe8885f27b6667632da0478bfe25c13247caa091ddc92095d08c4fcc961aa + tag: latest@sha256:74123d06736def6ec65d5c445a017cb88675cc0d6f2d200bfc7bfc893750ddba persistence: {} podSecurityContext: runAsGroup: 0 diff --git a/incubator/passwordpusherephemeral/1.0.5/questions.yaml b/incubator/passwordpusherephemeral/1.0.6/questions.yaml similarity index 100% rename from incubator/passwordpusherephemeral/1.0.5/questions.yaml rename to incubator/passwordpusherephemeral/1.0.6/questions.yaml diff --git a/incubator/passwordpusherephemeral/1.0.5/templates/common.yaml b/incubator/passwordpusherephemeral/1.0.6/templates/common.yaml similarity index 100% rename from incubator/passwordpusherephemeral/1.0.5/templates/common.yaml rename to incubator/passwordpusherephemeral/1.0.6/templates/common.yaml diff --git a/incubator/passwordpusherephemeral/1.0.5/values.yaml b/incubator/passwordpusherephemeral/1.0.6/values.yaml similarity index 100% rename from incubator/passwordpusherephemeral/1.0.5/values.yaml rename to incubator/passwordpusherephemeral/1.0.6/values.yaml diff --git a/incubator/rimgo/1.0.5/app-changelog.md b/incubator/rimgo/1.0.5/app-changelog.md deleted file mode 100644 index 689ec2d7f4b..00000000000 --- a/incubator/rimgo/1.0.5/app-changelog.md +++ /dev/null @@ -1,9 +0,0 @@ - - -## [rimgo-1.0.5](https://github.com/truecharts/charts/compare/rimgo-1.0.4...rimgo-1.0.5) (2022-11-13) - -### Chore - -- update docker general non-major ([#4398](https://github.com/truecharts/charts/issues/4398)) - - \ No newline at end of file diff --git a/incubator/rimgo/1.0.5/CHANGELOG.md b/incubator/rimgo/1.0.6/CHANGELOG.md similarity index 100% rename from incubator/rimgo/1.0.5/CHANGELOG.md rename to incubator/rimgo/1.0.6/CHANGELOG.md diff --git a/incubator/rimgo/1.0.5/Chart.yaml b/incubator/rimgo/1.0.6/Chart.yaml similarity index 98% rename from incubator/rimgo/1.0.5/Chart.yaml rename to incubator/rimgo/1.0.6/Chart.yaml index 89ace886869..9d25b216fdf 100644 --- a/incubator/rimgo/1.0.5/Chart.yaml +++ b/incubator/rimgo/1.0.6/Chart.yaml @@ -25,4 +25,4 @@ sources: - https://github.com/truecharts/charts/tree/master/charts/incubator/rimgo - https://quay.io/repository/pussthecatorg/rimgo type: application -version: 1.0.5 +version: 1.0.6 diff --git a/incubator/rimgo/1.0.5/README.md b/incubator/rimgo/1.0.6/README.md similarity index 100% rename from incubator/rimgo/1.0.5/README.md rename to incubator/rimgo/1.0.6/README.md diff --git a/incubator/rimgo/1.0.6/app-changelog.md b/incubator/rimgo/1.0.6/app-changelog.md new file mode 100644 index 00000000000..fd67f477209 --- /dev/null +++ b/incubator/rimgo/1.0.6/app-changelog.md @@ -0,0 +1,9 @@ + + +## [rimgo-1.0.6](https://github.com/truecharts/charts/compare/rimgo-1.0.5...rimgo-1.0.6) (2022-11-14) + +### Chore + +- update docker general non-major ([#4414](https://github.com/truecharts/charts/issues/4414)) + + \ No newline at end of file diff --git a/incubator/rimgo/1.0.5/app-readme.md b/incubator/rimgo/1.0.6/app-readme.md similarity index 100% rename from incubator/rimgo/1.0.5/app-readme.md rename to incubator/rimgo/1.0.6/app-readme.md diff --git a/incubator/rimgo/1.0.5/charts/common-10.9.7.tgz b/incubator/rimgo/1.0.6/charts/common-10.9.7.tgz similarity index 100% rename from incubator/rimgo/1.0.5/charts/common-10.9.7.tgz rename to incubator/rimgo/1.0.6/charts/common-10.9.7.tgz diff --git a/incubator/rimgo/1.0.5/ix_values.yaml b/incubator/rimgo/1.0.6/ix_values.yaml similarity index 82% rename from incubator/rimgo/1.0.5/ix_values.yaml rename to incubator/rimgo/1.0.6/ix_values.yaml index acc2183d5a5..043fb3e24ab 100644 --- a/incubator/rimgo/1.0.5/ix_values.yaml +++ b/incubator/rimgo/1.0.6/ix_values.yaml @@ -5,7 +5,7 @@ env: image: pullPolicy: IfNotPresent repository: tccr.io/truecharts/rimgo - tag: latest@sha256:17bee1455a424f092f472b6811990bc29603bbda95f0a35e187146b1509ff495 + tag: latest@sha256:7a87a3272d73154e9e1f64d4811e8f8c89fa2f4eae9b1586fcbbb04eaf59275d persistence: {} podSecurityContext: runAsGroup: 0 diff --git a/incubator/rimgo/1.0.5/questions.yaml b/incubator/rimgo/1.0.6/questions.yaml similarity index 100% rename from incubator/rimgo/1.0.5/questions.yaml rename to incubator/rimgo/1.0.6/questions.yaml diff --git a/incubator/rimgo/1.0.5/templates/common.yaml b/incubator/rimgo/1.0.6/templates/common.yaml similarity index 100% rename from incubator/rimgo/1.0.5/templates/common.yaml rename to incubator/rimgo/1.0.6/templates/common.yaml diff --git a/incubator/rimgo/1.0.5/values.yaml b/incubator/rimgo/1.0.6/values.yaml similarity index 100% rename from incubator/rimgo/1.0.5/values.yaml rename to incubator/rimgo/1.0.6/values.yaml diff --git a/incubator/searxng/1.0.4/app-changelog.md b/incubator/searxng/1.0.4/app-changelog.md deleted file mode 100644 index 9695d698aca..00000000000 --- a/incubator/searxng/1.0.4/app-changelog.md +++ /dev/null @@ -1,9 +0,0 @@ - - -## [searxng-1.0.4](https://github.com/truecharts/charts/compare/searxng-1.0.3...searxng-1.0.4) (2022-11-12) - -### Chore - -- update helm general non-major ([#4395](https://github.com/truecharts/charts/issues/4395)) - - \ No newline at end of file diff --git a/incubator/searxng/1.0.4/CHANGELOG.md b/incubator/searxng/1.0.5/CHANGELOG.md similarity index 100% rename from incubator/searxng/1.0.4/CHANGELOG.md rename to incubator/searxng/1.0.5/CHANGELOG.md diff --git a/incubator/searxng/1.0.4/Chart.yaml b/incubator/searxng/1.0.5/Chart.yaml similarity index 98% rename from incubator/searxng/1.0.4/Chart.yaml rename to incubator/searxng/1.0.5/Chart.yaml index 66cdc78f6b2..26fe7612dcb 100644 --- a/incubator/searxng/1.0.4/Chart.yaml +++ b/incubator/searxng/1.0.5/Chart.yaml @@ -23,7 +23,7 @@ sources: - https://github.com/searxng/searxng - https://hub.docker.com/r/searxng/searxng type: application -version: 1.0.4 +version: 1.0.5 annotations: truecharts.org/catagories: | - Productivity diff --git a/incubator/searxng/1.0.4/README.md b/incubator/searxng/1.0.5/README.md similarity index 100% rename from incubator/searxng/1.0.4/README.md rename to incubator/searxng/1.0.5/README.md diff --git a/incubator/searxng/1.0.5/app-changelog.md b/incubator/searxng/1.0.5/app-changelog.md new file mode 100644 index 00000000000..49889edef68 --- /dev/null +++ b/incubator/searxng/1.0.5/app-changelog.md @@ -0,0 +1,9 @@ + + +## [searxng-1.0.5](https://github.com/truecharts/charts/compare/searxng-1.0.4...searxng-1.0.5) (2022-11-14) + +### Chore + +- update docker general non-major ([#4414](https://github.com/truecharts/charts/issues/4414)) + + \ No newline at end of file diff --git a/incubator/searxng/1.0.4/app-readme.md b/incubator/searxng/1.0.5/app-readme.md similarity index 100% rename from incubator/searxng/1.0.4/app-readme.md rename to incubator/searxng/1.0.5/app-readme.md diff --git a/incubator/searxng/1.0.4/charts/common-10.9.7.tgz b/incubator/searxng/1.0.5/charts/common-10.9.7.tgz similarity index 100% rename from incubator/searxng/1.0.4/charts/common-10.9.7.tgz rename to incubator/searxng/1.0.5/charts/common-10.9.7.tgz diff --git a/incubator/searxng/1.0.4/ix_values.yaml b/incubator/searxng/1.0.5/ix_values.yaml similarity index 83% rename from incubator/searxng/1.0.4/ix_values.yaml rename to incubator/searxng/1.0.5/ix_values.yaml index dbd0f5ec833..c026ceb0400 100644 --- a/incubator/searxng/1.0.4/ix_values.yaml +++ b/incubator/searxng/1.0.5/ix_values.yaml @@ -1,7 +1,7 @@ image: pullPolicy: IfNotPresent repository: tccr.io/truecharts/searxng - tag: latest@sha256:2e192106fdf0576d5949f4ef660e75cdba2e990be85698aae9fdacdd2fdb8c5e + tag: latest@sha256:4c4bf0286f0353b36481f339c7ade3890d011c3c36d31aabacd913060c9cf261 env: BASE_URL: "" diff --git a/incubator/searxng/1.0.4/questions.yaml b/incubator/searxng/1.0.5/questions.yaml similarity index 100% rename from incubator/searxng/1.0.4/questions.yaml rename to incubator/searxng/1.0.5/questions.yaml diff --git a/incubator/searxng/1.0.4/templates/common.yaml b/incubator/searxng/1.0.5/templates/common.yaml similarity index 100% rename from incubator/searxng/1.0.4/templates/common.yaml rename to incubator/searxng/1.0.5/templates/common.yaml diff --git a/incubator/searxng/1.0.4/values.yaml b/incubator/searxng/1.0.5/values.yaml similarity index 100% rename from incubator/searxng/1.0.4/values.yaml rename to incubator/searxng/1.0.5/values.yaml diff --git a/incubator/speedtest-tracker/2.0.0/app-changelog.md b/incubator/speedtest-tracker/2.0.0/app-changelog.md deleted file mode 100644 index d06efbfd0da..00000000000 --- a/incubator/speedtest-tracker/2.0.0/app-changelog.md +++ /dev/null @@ -1,11 +0,0 @@ - - -## [speedtest-tracker-2.0.0](https://github.com/truecharts/charts/compare/speedtest-tracker-1.0.3...speedtest-tracker-2.0.0) (2022-11-12) - -### Chore - -- update helm general major (major) ([#4392](https://github.com/truecharts/charts/issues/4392)) - - update helm general non-major ([#4395](https://github.com/truecharts/charts/issues/4395)) - - update docker general non-major - - \ No newline at end of file diff --git a/incubator/speedtest-tracker/2.0.0/CHANGELOG.md b/incubator/speedtest-tracker/2.0.1/CHANGELOG.md similarity index 100% rename from incubator/speedtest-tracker/2.0.0/CHANGELOG.md rename to incubator/speedtest-tracker/2.0.1/CHANGELOG.md diff --git a/incubator/speedtest-tracker/2.0.0/Chart.yaml b/incubator/speedtest-tracker/2.0.1/Chart.yaml similarity index 98% rename from incubator/speedtest-tracker/2.0.0/Chart.yaml rename to incubator/speedtest-tracker/2.0.1/Chart.yaml index d891eac9070..63fa27a932d 100644 --- a/incubator/speedtest-tracker/2.0.0/Chart.yaml +++ b/incubator/speedtest-tracker/2.0.1/Chart.yaml @@ -22,7 +22,7 @@ name: speedtest-tracker sources: - https://github.com/truecharts/charts/tree/master/charts/incubator/speedtest-tracker - https://github.com/alexjustesen/speedtest-tracker -version: 2.0.0 +version: 2.0.1 annotations: truecharts.org/catagories: | - speedtest diff --git a/incubator/speedtest-tracker/2.0.0/README.md b/incubator/speedtest-tracker/2.0.1/README.md similarity index 100% rename from incubator/speedtest-tracker/2.0.0/README.md rename to incubator/speedtest-tracker/2.0.1/README.md diff --git a/incubator/speedtest-tracker/2.0.1/app-changelog.md b/incubator/speedtest-tracker/2.0.1/app-changelog.md new file mode 100644 index 00000000000..97f5c97acc3 --- /dev/null +++ b/incubator/speedtest-tracker/2.0.1/app-changelog.md @@ -0,0 +1,9 @@ + + +## [speedtest-tracker-2.0.1](https://github.com/truecharts/charts/compare/speedtest-tracker-2.0.0...speedtest-tracker-2.0.1) (2022-11-14) + +### Chore + +- update docker general non-major ([#4414](https://github.com/truecharts/charts/issues/4414)) + + \ No newline at end of file diff --git a/incubator/speedtest-tracker/2.0.0/app-readme.md b/incubator/speedtest-tracker/2.0.1/app-readme.md similarity index 100% rename from incubator/speedtest-tracker/2.0.0/app-readme.md rename to incubator/speedtest-tracker/2.0.1/app-readme.md diff --git a/incubator/speedtest-tracker/2.0.0/charts/common-10.9.7.tgz b/incubator/speedtest-tracker/2.0.1/charts/common-10.9.7.tgz similarity index 100% rename from incubator/speedtest-tracker/2.0.0/charts/common-10.9.7.tgz rename to incubator/speedtest-tracker/2.0.1/charts/common-10.9.7.tgz diff --git a/incubator/speedtest-tracker/2.0.0/charts/postgresql-9.0.5.tgz b/incubator/speedtest-tracker/2.0.1/charts/postgresql-9.0.5.tgz similarity index 100% rename from incubator/speedtest-tracker/2.0.0/charts/postgresql-9.0.5.tgz rename to incubator/speedtest-tracker/2.0.1/charts/postgresql-9.0.5.tgz diff --git a/incubator/speedtest-tracker/2.0.0/ix_values.yaml b/incubator/speedtest-tracker/2.0.1/ix_values.yaml similarity index 90% rename from incubator/speedtest-tracker/2.0.0/ix_values.yaml rename to incubator/speedtest-tracker/2.0.1/ix_values.yaml index f0833218dce..a0c2c96accf 100644 --- a/incubator/speedtest-tracker/2.0.0/ix_values.yaml +++ b/incubator/speedtest-tracker/2.0.1/ix_values.yaml @@ -1,6 +1,6 @@ image: repository: tccr.io/truecharts/speedtest-tracker - tag: latest@sha256:bb8b14a15e8b908df858bc4f284a54753787cfab38e2bb7537bb02e91ea0275d + tag: latest@sha256:c05d385213f07f129fc127862a07b08474fc87e7f966ad85c196c35e363a8b35 pullPolicy: IfNotPresent securityContext: diff --git a/incubator/speedtest-tracker/2.0.0/questions.yaml b/incubator/speedtest-tracker/2.0.1/questions.yaml similarity index 100% rename from incubator/speedtest-tracker/2.0.0/questions.yaml rename to incubator/speedtest-tracker/2.0.1/questions.yaml diff --git a/incubator/speedtest-tracker/2.0.0/templates/common.yaml b/incubator/speedtest-tracker/2.0.1/templates/common.yaml similarity index 100% rename from incubator/speedtest-tracker/2.0.0/templates/common.yaml rename to incubator/speedtest-tracker/2.0.1/templates/common.yaml diff --git a/incubator/speedtest-tracker/2.0.0/values.yaml b/incubator/speedtest-tracker/2.0.1/values.yaml similarity index 100% rename from incubator/speedtest-tracker/2.0.0/values.yaml rename to incubator/speedtest-tracker/2.0.1/values.yaml diff --git a/incubator/ts-dnsserver/1.0.4/app-changelog.md b/incubator/ts-dnsserver/1.0.4/app-changelog.md deleted file mode 100644 index 1a64ab6081a..00000000000 --- a/incubator/ts-dnsserver/1.0.4/app-changelog.md +++ /dev/null @@ -1,9 +0,0 @@ - - -## [ts-dnsserver-1.0.4](https://github.com/truecharts/charts/compare/ts-dnsserver-1.0.3...ts-dnsserver-1.0.4) (2022-11-12) - -### Chore - -- update helm general non-major ([#4395](https://github.com/truecharts/charts/issues/4395)) - - \ No newline at end of file diff --git a/incubator/ts-dnsserver/1.0.4/CHANGELOG.md b/incubator/ts-dnsserver/1.0.5/CHANGELOG.md similarity index 100% rename from incubator/ts-dnsserver/1.0.4/CHANGELOG.md rename to incubator/ts-dnsserver/1.0.5/CHANGELOG.md diff --git a/incubator/ts-dnsserver/1.0.4/Chart.yaml b/incubator/ts-dnsserver/1.0.5/Chart.yaml similarity index 98% rename from incubator/ts-dnsserver/1.0.4/Chart.yaml rename to incubator/ts-dnsserver/1.0.5/Chart.yaml index 42eae3b7431..01f20ce6136 100644 --- a/incubator/ts-dnsserver/1.0.4/Chart.yaml +++ b/incubator/ts-dnsserver/1.0.5/Chart.yaml @@ -26,4 +26,4 @@ sources: - https://github.com/TechnitiumSoftware/DnsServer - https://hub.docker.com/r/roxedus/ts-dnsserver/ type: application -version: 1.0.4 +version: 1.0.5 diff --git a/incubator/ts-dnsserver/1.0.4/README.md b/incubator/ts-dnsserver/1.0.5/README.md similarity index 100% rename from incubator/ts-dnsserver/1.0.4/README.md rename to incubator/ts-dnsserver/1.0.5/README.md diff --git a/incubator/ts-dnsserver/1.0.5/app-changelog.md b/incubator/ts-dnsserver/1.0.5/app-changelog.md new file mode 100644 index 00000000000..9dea97a4e4e --- /dev/null +++ b/incubator/ts-dnsserver/1.0.5/app-changelog.md @@ -0,0 +1,9 @@ + + +## [ts-dnsserver-1.0.5](https://github.com/truecharts/charts/compare/ts-dnsserver-1.0.4...ts-dnsserver-1.0.5) (2022-11-14) + +### Chore + +- update docker general non-major ([#4414](https://github.com/truecharts/charts/issues/4414)) + + \ No newline at end of file diff --git a/incubator/ts-dnsserver/1.0.4/app-readme.md b/incubator/ts-dnsserver/1.0.5/app-readme.md similarity index 100% rename from incubator/ts-dnsserver/1.0.4/app-readme.md rename to incubator/ts-dnsserver/1.0.5/app-readme.md diff --git a/incubator/ts-dnsserver/1.0.4/charts/common-10.9.7.tgz b/incubator/ts-dnsserver/1.0.5/charts/common-10.9.7.tgz similarity index 100% rename from incubator/ts-dnsserver/1.0.4/charts/common-10.9.7.tgz rename to incubator/ts-dnsserver/1.0.5/charts/common-10.9.7.tgz diff --git a/incubator/ts-dnsserver/1.0.4/ix_values.yaml b/incubator/ts-dnsserver/1.0.5/ix_values.yaml similarity index 86% rename from incubator/ts-dnsserver/1.0.4/ix_values.yaml rename to incubator/ts-dnsserver/1.0.5/ix_values.yaml index 17b8ecef770..ca995957f44 100644 --- a/incubator/ts-dnsserver/1.0.4/ix_values.yaml +++ b/incubator/ts-dnsserver/1.0.5/ix_values.yaml @@ -2,7 +2,7 @@ env: {} image: pullPolicy: IfNotPresent repository: tccr.io/truecharts/ts-dnsserver - tag: latest@sha256:7854aa1f0cc8befff10da328aed0e2bb18843f3a4b34cd99d88c853dfdc418d6 + tag: latest@sha256:b4631e50712f5224188eb5df8e5e18e95b5f56533725596eaebc1fc5f76ef8fe persistence: config: enabled: true diff --git a/incubator/ts-dnsserver/1.0.4/questions.yaml b/incubator/ts-dnsserver/1.0.5/questions.yaml similarity index 100% rename from incubator/ts-dnsserver/1.0.4/questions.yaml rename to incubator/ts-dnsserver/1.0.5/questions.yaml diff --git a/incubator/ts-dnsserver/1.0.4/templates/common.yaml b/incubator/ts-dnsserver/1.0.5/templates/common.yaml similarity index 100% rename from incubator/ts-dnsserver/1.0.4/templates/common.yaml rename to incubator/ts-dnsserver/1.0.5/templates/common.yaml diff --git a/incubator/ts-dnsserver/1.0.4/values.yaml b/incubator/ts-dnsserver/1.0.5/values.yaml similarity index 100% rename from incubator/ts-dnsserver/1.0.4/values.yaml rename to incubator/ts-dnsserver/1.0.5/values.yaml diff --git a/incubator/virt-manager/1.0.4/app-changelog.md b/incubator/virt-manager/1.0.4/app-changelog.md deleted file mode 100644 index 8ef7b300951..00000000000 --- a/incubator/virt-manager/1.0.4/app-changelog.md +++ /dev/null @@ -1,11 +0,0 @@ - - -## [virt-manager-1.0.4](https://github.com/truecharts/charts/compare/virt-manager-1.0.3...virt-manager-1.0.4) (2022-11-12) - -### Chore - -- update docker general non-major ([#4394](https://github.com/truecharts/charts/issues/4394)) - - update helm general non-major ([#4395](https://github.com/truecharts/charts/issues/4395)) - - update docker general non-major - - \ No newline at end of file diff --git a/incubator/virt-manager/1.0.4/CHANGELOG.md b/incubator/virt-manager/1.0.5/CHANGELOG.md similarity index 100% rename from incubator/virt-manager/1.0.4/CHANGELOG.md rename to incubator/virt-manager/1.0.5/CHANGELOG.md diff --git a/incubator/virt-manager/1.0.4/Chart.yaml b/incubator/virt-manager/1.0.5/Chart.yaml similarity index 98% rename from incubator/virt-manager/1.0.4/Chart.yaml rename to incubator/virt-manager/1.0.5/Chart.yaml index 993eda34cdf..0c770d228bf 100644 --- a/incubator/virt-manager/1.0.4/Chart.yaml +++ b/incubator/virt-manager/1.0.5/Chart.yaml @@ -25,4 +25,4 @@ sources: - https://github.com/truecharts/charts/tree/master/charts/incubator/virt-manager - https://hub.docker.com/r/mber5/virt-manager type: application -version: 1.0.4 +version: 1.0.5 diff --git a/incubator/virt-manager/1.0.4/README.md b/incubator/virt-manager/1.0.5/README.md similarity index 100% rename from incubator/virt-manager/1.0.4/README.md rename to incubator/virt-manager/1.0.5/README.md diff --git a/incubator/virt-manager/1.0.5/app-changelog.md b/incubator/virt-manager/1.0.5/app-changelog.md new file mode 100644 index 00000000000..1506d42c5a4 --- /dev/null +++ b/incubator/virt-manager/1.0.5/app-changelog.md @@ -0,0 +1,9 @@ + + +## [virt-manager-1.0.5](https://github.com/truecharts/charts/compare/virt-manager-1.0.4...virt-manager-1.0.5) (2022-11-14) + +### Chore + +- update docker general non-major ([#4414](https://github.com/truecharts/charts/issues/4414)) + + \ No newline at end of file diff --git a/incubator/virt-manager/1.0.4/app-readme.md b/incubator/virt-manager/1.0.5/app-readme.md similarity index 100% rename from incubator/virt-manager/1.0.4/app-readme.md rename to incubator/virt-manager/1.0.5/app-readme.md diff --git a/incubator/virt-manager/1.0.4/charts/common-10.9.7.tgz b/incubator/virt-manager/1.0.5/charts/common-10.9.7.tgz similarity index 100% rename from incubator/virt-manager/1.0.4/charts/common-10.9.7.tgz rename to incubator/virt-manager/1.0.5/charts/common-10.9.7.tgz diff --git a/incubator/virt-manager/1.0.4/ix_values.yaml b/incubator/virt-manager/1.0.5/ix_values.yaml similarity index 87% rename from incubator/virt-manager/1.0.4/ix_values.yaml rename to incubator/virt-manager/1.0.5/ix_values.yaml index 52a1996fbdf..9d345ca853f 100644 --- a/incubator/virt-manager/1.0.4/ix_values.yaml +++ b/incubator/virt-manager/1.0.5/ix_values.yaml @@ -3,7 +3,7 @@ env: image: pullPolicy: IfNotPresent repository: tccr.io/truecharts/virt-manager - tag: latest@sha256:0e86175447d6329b0025d7db667f13ed65e6afd790726741a113200c445531c6 + tag: latest@sha256:f1af85455f072a40a4b300ca5c0a4043946b1fe7a6b7b5a052170a57117797ba persistence: devkvm: enabled: true diff --git a/incubator/virt-manager/1.0.4/questions.yaml b/incubator/virt-manager/1.0.5/questions.yaml similarity index 100% rename from incubator/virt-manager/1.0.4/questions.yaml rename to incubator/virt-manager/1.0.5/questions.yaml diff --git a/incubator/virt-manager/1.0.4/templates/common.yaml b/incubator/virt-manager/1.0.5/templates/common.yaml similarity index 100% rename from incubator/virt-manager/1.0.4/templates/common.yaml rename to incubator/virt-manager/1.0.5/templates/common.yaml diff --git a/incubator/virt-manager/1.0.4/values.yaml b/incubator/virt-manager/1.0.5/values.yaml similarity index 100% rename from incubator/virt-manager/1.0.4/values.yaml rename to incubator/virt-manager/1.0.5/values.yaml diff --git a/incubator/webtop/1.0.4/app-changelog.md b/incubator/webtop/1.0.4/app-changelog.md deleted file mode 100644 index 6a355f47469..00000000000 --- a/incubator/webtop/1.0.4/app-changelog.md +++ /dev/null @@ -1,9 +0,0 @@ - - -## [webtop-1.0.4](https://github.com/truecharts/charts/compare/webtop-1.0.3...webtop-1.0.4) (2022-11-12) - -### Chore - -- update helm general non-major ([#4395](https://github.com/truecharts/charts/issues/4395)) - - \ No newline at end of file diff --git a/incubator/webtop/1.0.4/CHANGELOG.md b/incubator/webtop/1.0.5/CHANGELOG.md similarity index 100% rename from incubator/webtop/1.0.4/CHANGELOG.md rename to incubator/webtop/1.0.5/CHANGELOG.md diff --git a/incubator/webtop/1.0.4/Chart.yaml b/incubator/webtop/1.0.5/Chart.yaml similarity index 98% rename from incubator/webtop/1.0.4/Chart.yaml rename to incubator/webtop/1.0.5/Chart.yaml index 56017c11e7c..24f6a43ef87 100644 --- a/incubator/webtop/1.0.4/Chart.yaml +++ b/incubator/webtop/1.0.5/Chart.yaml @@ -27,4 +27,4 @@ sources: - https://github.com/orgs/linuxserver/packages/container/package/webtop - https://github.com/linuxserver/docker-webtop#readme type: application -version: 1.0.4 +version: 1.0.5 diff --git a/incubator/webtop/1.0.4/README.md b/incubator/webtop/1.0.5/README.md similarity index 100% rename from incubator/webtop/1.0.4/README.md rename to incubator/webtop/1.0.5/README.md diff --git a/incubator/webtop/1.0.5/app-changelog.md b/incubator/webtop/1.0.5/app-changelog.md new file mode 100644 index 00000000000..cd2fa7254f8 --- /dev/null +++ b/incubator/webtop/1.0.5/app-changelog.md @@ -0,0 +1,9 @@ + + +## [webtop-1.0.5](https://github.com/truecharts/charts/compare/webtop-1.0.4...webtop-1.0.5) (2022-11-14) + +### Chore + +- update docker general non-major ([#4414](https://github.com/truecharts/charts/issues/4414)) + + \ No newline at end of file diff --git a/incubator/webtop/1.0.4/app-readme.md b/incubator/webtop/1.0.5/app-readme.md similarity index 100% rename from incubator/webtop/1.0.4/app-readme.md rename to incubator/webtop/1.0.5/app-readme.md diff --git a/incubator/webtop/1.0.4/charts/common-10.9.7.tgz b/incubator/webtop/1.0.5/charts/common-10.9.7.tgz similarity index 100% rename from incubator/webtop/1.0.4/charts/common-10.9.7.tgz rename to incubator/webtop/1.0.5/charts/common-10.9.7.tgz diff --git a/incubator/webtop/1.0.4/ix_values.yaml b/incubator/webtop/1.0.5/ix_values.yaml similarity index 83% rename from incubator/webtop/1.0.4/ix_values.yaml rename to incubator/webtop/1.0.5/ix_values.yaml index 8be65c75e7e..76e21b570cd 100644 --- a/incubator/webtop/1.0.4/ix_values.yaml +++ b/incubator/webtop/1.0.5/ix_values.yaml @@ -5,7 +5,7 @@ env: image: pullPolicy: IfNotPresent repository: tccr.io/truecharts/webtop - tag: latest@sha256:a6c1aceaedd540def9ef78794e8298ee82ad9f21d32a560f7d66c852dd745ff1 + tag: latest@sha256:cafa6b241a660b291df8e901d37e9b1a0ff0d9db2224a16ee886365d54b5fd73 persistence: config: enabled: true diff --git a/incubator/webtop/1.0.4/questions.yaml b/incubator/webtop/1.0.5/questions.yaml similarity index 100% rename from incubator/webtop/1.0.4/questions.yaml rename to incubator/webtop/1.0.5/questions.yaml diff --git a/incubator/webtop/1.0.4/templates/common.yaml b/incubator/webtop/1.0.5/templates/common.yaml similarity index 100% rename from incubator/webtop/1.0.4/templates/common.yaml rename to incubator/webtop/1.0.5/templates/common.yaml diff --git a/incubator/webtop/1.0.4/values.yaml b/incubator/webtop/1.0.5/values.yaml similarity index 100% rename from incubator/webtop/1.0.4/values.yaml rename to incubator/webtop/1.0.5/values.yaml diff --git a/stable/audiobookshelf/3.0.5/app-changelog.md b/stable/audiobookshelf/3.0.5/app-changelog.md deleted file mode 100644 index 833ccad895d..00000000000 --- a/stable/audiobookshelf/3.0.5/app-changelog.md +++ /dev/null @@ -1,9 +0,0 @@ - - -## [audiobookshelf-3.0.5](https://github.com/truecharts/charts/compare/audiobookshelf-3.0.4...audiobookshelf-3.0.5) (2022-11-13) - -### Chore - -- set opencors middleware ([#4411](https://github.com/truecharts/charts/issues/4411)) - - \ No newline at end of file diff --git a/stable/audiobookshelf/3.0.5/CHANGELOG.md b/stable/audiobookshelf/3.0.6/CHANGELOG.md similarity index 100% rename from stable/audiobookshelf/3.0.5/CHANGELOG.md rename to stable/audiobookshelf/3.0.6/CHANGELOG.md diff --git a/stable/audiobookshelf/3.0.5/Chart.yaml b/stable/audiobookshelf/3.0.6/Chart.yaml similarity index 96% rename from stable/audiobookshelf/3.0.5/Chart.yaml rename to stable/audiobookshelf/3.0.6/Chart.yaml index 591fbfc3581..87ed2171889 100644 --- a/stable/audiobookshelf/3.0.5/Chart.yaml +++ b/stable/audiobookshelf/3.0.6/Chart.yaml @@ -1,5 +1,5 @@ apiVersion: v2 -appVersion: "2.2.1" +appVersion: "2.2.4" dependencies: - name: common repository: https://library-charts.truecharts.org @@ -19,7 +19,7 @@ sources: - https://github.com/truecharts/charts/tree/master/charts/stable/audiobookshelf - https://hub.docker.com/r/advplyr/audiobookshelf - https://github.com/advplyr/audiobookshelf -version: 3.0.5 +version: 3.0.6 annotations: truecharts.org/catagories: | - media diff --git a/stable/audiobookshelf/3.0.5/README.md b/stable/audiobookshelf/3.0.6/README.md similarity index 100% rename from stable/audiobookshelf/3.0.5/README.md rename to stable/audiobookshelf/3.0.6/README.md diff --git a/stable/audiobookshelf/3.0.6/app-changelog.md b/stable/audiobookshelf/3.0.6/app-changelog.md new file mode 100644 index 00000000000..e95f46e7fd1 --- /dev/null +++ b/stable/audiobookshelf/3.0.6/app-changelog.md @@ -0,0 +1,9 @@ + + +## [audiobookshelf-3.0.6](https://github.com/truecharts/charts/compare/audiobookshelf-3.0.5...audiobookshelf-3.0.6) (2022-11-14) + +### Chore + +- update docker general non-major ([#4414](https://github.com/truecharts/charts/issues/4414)) + + \ No newline at end of file diff --git a/stable/audiobookshelf/3.0.5/app-readme.md b/stable/audiobookshelf/3.0.6/app-readme.md similarity index 100% rename from stable/audiobookshelf/3.0.5/app-readme.md rename to stable/audiobookshelf/3.0.6/app-readme.md diff --git a/stable/audiobookshelf/3.0.5/charts/common-10.9.7.tgz b/stable/audiobookshelf/3.0.6/charts/common-10.9.7.tgz similarity index 100% rename from stable/audiobookshelf/3.0.5/charts/common-10.9.7.tgz rename to stable/audiobookshelf/3.0.6/charts/common-10.9.7.tgz diff --git a/stable/audiobookshelf/3.0.5/ix_values.yaml b/stable/audiobookshelf/3.0.6/ix_values.yaml similarity index 90% rename from stable/audiobookshelf/3.0.5/ix_values.yaml rename to stable/audiobookshelf/3.0.6/ix_values.yaml index 27eb4be8b56..198a5073e2e 100644 --- a/stable/audiobookshelf/3.0.5/ix_values.yaml +++ b/stable/audiobookshelf/3.0.6/ix_values.yaml @@ -1,6 +1,6 @@ image: repository: tccr.io/truecharts/audiobookshelf - tag: 2.2.1@sha256:1eca4137fd26a32ec3bf623b64e384123a467412a973f4a4de0d3c3d7a6b082f + tag: 2.2.4@sha256:f704476284348c9118d0b3eadae4e6d60fd658f75793103e5e06de556c57be1a pullPolicy: IfNotPresent env: diff --git a/stable/audiobookshelf/3.0.5/questions.yaml b/stable/audiobookshelf/3.0.6/questions.yaml similarity index 100% rename from stable/audiobookshelf/3.0.5/questions.yaml rename to stable/audiobookshelf/3.0.6/questions.yaml diff --git a/stable/audiobookshelf/3.0.5/templates/_secrets.tpl b/stable/audiobookshelf/3.0.6/templates/_secrets.tpl similarity index 100% rename from stable/audiobookshelf/3.0.5/templates/_secrets.tpl rename to stable/audiobookshelf/3.0.6/templates/_secrets.tpl diff --git a/stable/audiobookshelf/3.0.5/templates/common.yaml b/stable/audiobookshelf/3.0.6/templates/common.yaml similarity index 100% rename from stable/audiobookshelf/3.0.5/templates/common.yaml rename to stable/audiobookshelf/3.0.6/templates/common.yaml diff --git a/stable/audiobookshelf/3.0.5/values.yaml b/stable/audiobookshelf/3.0.6/values.yaml similarity index 100% rename from stable/audiobookshelf/3.0.5/values.yaml rename to stable/audiobookshelf/3.0.6/values.yaml diff --git a/stable/babybuddy/10.0.1/CHANGELOG.md b/stable/babybuddy/10.0.1/CHANGELOG.md new file mode 100644 index 00000000000..25960144b2b --- /dev/null +++ b/stable/babybuddy/10.0.1/CHANGELOG.md @@ -0,0 +1,99 @@ +**Important:** +*for the complete changelog, please refer to the website* + + + + +## [babybuddy-9.0.0](https://github.com/truecharts/charts/compare/babybuddy-8.0.67...babybuddy-9.0.0) (2022-11-10) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Major Change to GUI + - update helm general non-major ([#4349](https://github.com/truecharts/charts/issues/4349)) + - update helm general non-major ([#4342](https://github.com/truecharts/charts/issues/4342)) + - update docker general non-major ([#4331](https://github.com/truecharts/charts/issues/4331)) + - update helm general non-major ([#4329](https://github.com/truecharts/charts/issues/4329)) + + ### Fix + +- change container config label + + + + +## [babybuddy-8.0.71](https://github.com/truecharts/charts/compare/babybuddy-8.0.67...babybuddy-8.0.71) (2022-11-08) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - update helm general non-major ([#4349](https://github.com/truecharts/charts/issues/4349)) + - update helm general non-major ([#4342](https://github.com/truecharts/charts/issues/4342)) + - update docker general non-major ([#4331](https://github.com/truecharts/charts/issues/4331)) + - update helm general non-major ([#4329](https://github.com/truecharts/charts/issues/4329)) + + + + +## [babybuddy-8.0.70](https://github.com/truecharts/charts/compare/babybuddy-8.0.67...babybuddy-8.0.70) (2022-11-08) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - update helm general non-major ([#4342](https://github.com/truecharts/charts/issues/4342)) + - update docker general non-major ([#4331](https://github.com/truecharts/charts/issues/4331)) + - update helm general non-major ([#4329](https://github.com/truecharts/charts/issues/4329)) + + + + +## [babybuddy-8.0.70](https://github.com/truecharts/charts/compare/babybuddy-8.0.67...babybuddy-8.0.70) (2022-11-08) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - update helm general non-major ([#4342](https://github.com/truecharts/charts/issues/4342)) + - update docker general non-major ([#4331](https://github.com/truecharts/charts/issues/4331)) + - update helm general non-major ([#4329](https://github.com/truecharts/charts/issues/4329)) + + + + +## [babybuddy-8.0.70](https://github.com/truecharts/charts/compare/babybuddy-8.0.67...babybuddy-8.0.70) (2022-11-08) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - update helm general non-major ([#4342](https://github.com/truecharts/charts/issues/4342)) + - update docker general non-major ([#4331](https://github.com/truecharts/charts/issues/4331)) + - update helm general non-major ([#4329](https://github.com/truecharts/charts/issues/4329)) + + + + +## [babybuddy-8.0.69](https://github.com/truecharts/charts/compare/babybuddy-8.0.67...babybuddy-8.0.69) (2022-11-07) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] diff --git a/stable/babybuddy/10.0.1/Chart.yaml b/stable/babybuddy/10.0.1/Chart.yaml new file mode 100644 index 00000000000..9cd0011176b --- /dev/null +++ b/stable/babybuddy/10.0.1/Chart.yaml @@ -0,0 +1,35 @@ +apiVersion: v2 +appVersion: "1.13.2" +kubeVersion: ">=1.16.0-0" +version: 10.0.1 +name: babybuddy +description: Helps caregivers track sleep, feedings, diaper changes, tummy time and more to learn about and predict baby's needs without (as much) guess work. +type: application +home: https://truecharts.org/docs/charts/stable/babybuddy +icon: https://truecharts.org/img/hotlink-ok/chart-icons/babybuddy.png +keywords: + - baby + - buddy + - tracker + - parents + - parenting +sources: + - https://github.com/truecharts/charts/tree/master/charts/stable/babybuddy + - https://github.com/babybuddy/babybuddy +dependencies: + - name: common + repository: https://library-charts.truecharts.org + version: 10.9.7 + - condition: postgresql.enabled + name: postgresql + repository: https://charts.truecharts.org/ + version: 9.0.5 +maintainers: + - email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +annotations: + truecharts.org/catagories: | + - media + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/stable/babybuddy/10.0.1/README.md b/stable/babybuddy/10.0.1/README.md new file mode 100644 index 00000000000..c1a922ec056 --- /dev/null +++ b/stable/babybuddy/10.0.1/README.md @@ -0,0 +1,107 @@ +# babybuddy + +Helps caregivers track sleep, feedings, diaper changes, tummy time and more to learn about and predict baby's needs without (as much) guess work. + +TrueCharts can be installed as both *normal* Helm Charts or as Apps on TrueNAS SCALE. + +This readme is just an automatically generated general guide on installing our Helm Charts and Apps. +For more information, please click here: [babybuddy](https://truecharts.org/docs/charts/stable/babybuddy) + +**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)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://charts.truecharts.org/ | postgresql | 8.0.122 | +| https://library-charts.truecharts.org | common | 10.9.4 | + +## Installing the Chart + +### TrueNAS SCALE + +To install this Chart on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/docs/manual/SCALE%20Apps/Installing-an-App). + +### Helm + +To install the chart with the release name `babybuddy` + +```console +helm repo add TrueCharts https://charts.truecharts.org +helm repo update +helm install babybuddy TrueCharts/babybuddy +``` + +## Uninstall + +### TrueNAS SCALE + +**Upgrading, Rolling Back and Uninstalling the Chart** + +To upgrade, rollback or delete this Chart from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/docs/manual/SCALE%20Apps/Upgrade-rollback-delete-an-App). + +### Helm + +To uninstall the `babybuddy` deployment + +```console +helm uninstall babybuddy +``` + +## Configuration + +### Helm + +#### Available Settings + +Read through the values.yaml file. It has several commented out suggested values. +Other values may be used from the [values.yaml](https://github.com/truecharts/library-charts/tree/main/charts/stable/common/values.yaml) from the [common library](https://github.com/truecharts/library-charts/tree/main/charts/common). + +#### Configure using the command line + +Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. + +```console +helm install babybuddy \ + --set env.TZ="America/New York" \ + TrueCharts/babybuddy +``` + +#### Configure using a yaml file + +Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. + +```console +helm install babybuddy TrueCharts/babybuddy -f values.yaml +``` + +#### Connecting to other charts + +If you need to connect this Chart to other Charts on TrueNAS SCALE, please refer to our [Linking Charts Internally](https://truecharts.org/docs/manual/SCALE%20Apps/linking-apps) quick-start guide. + +## Support + +- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/docs/manual/SCALE%20Apps/Important-MUST-READ). +- See the [Website](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/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/babybuddy/10.0.1/app-changelog.md b/stable/babybuddy/10.0.1/app-changelog.md new file mode 100644 index 00000000000..07b6ce9112c --- /dev/null +++ b/stable/babybuddy/10.0.1/app-changelog.md @@ -0,0 +1,9 @@ + + +## [babybuddy-10.0.1](https://github.com/truecharts/charts/compare/babybuddy-10.0.0...babybuddy-10.0.1) (2022-11-14) + +### Chore + +- update docker general non-major ([#4414](https://github.com/truecharts/charts/issues/4414)) + + \ No newline at end of file diff --git a/stable/babybuddy/10.0.1/app-readme.md b/stable/babybuddy/10.0.1/app-readme.md new file mode 100644 index 00000000000..428918843ac --- /dev/null +++ b/stable/babybuddy/10.0.1/app-readme.md @@ -0,0 +1,8 @@ +Helps caregivers track sleep, feedings, diaper changes, tummy time and more to learn about and predict baby's needs without (as much) guess work. + +This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/docs/charts/stable/babybuddy](https://truecharts.org/docs/charts/stable/babybuddy) + +--- + +TrueCharts can only exist due to the incredible effort of our staff. +Please consider making a [donation](https://truecharts.org/docs/about/sponsor) or contributing back to the project any way you can! diff --git a/stable/booksonic-air/7.0.4/charts/common-10.9.7.tgz b/stable/babybuddy/10.0.1/charts/common-10.9.7.tgz similarity index 100% rename from stable/booksonic-air/7.0.4/charts/common-10.9.7.tgz rename to stable/babybuddy/10.0.1/charts/common-10.9.7.tgz diff --git a/stable/vikunja/5.0.1/charts/postgresql-9.0.5.tgz b/stable/babybuddy/10.0.1/charts/postgresql-9.0.5.tgz similarity index 100% rename from stable/vikunja/5.0.1/charts/postgresql-9.0.5.tgz rename to stable/babybuddy/10.0.1/charts/postgresql-9.0.5.tgz diff --git a/stable/babybuddy/10.0.1/ix_values.yaml b/stable/babybuddy/10.0.1/ix_values.yaml new file mode 100644 index 00000000000..e82058b978a --- /dev/null +++ b/stable/babybuddy/10.0.1/ix_values.yaml @@ -0,0 +1,50 @@ +image: + repository: tccr.io/truecharts/babybuddy + pullPolicy: IfNotPresent + tag: 1.13.2@sha256:6ed7a38260fa25213db105a2c42bfae343815dc74bd3a1e0e8a5cf1f032dd400 + +env: + DB_ENGINE: "django.db.backends.postgresql" + DB_NAME: "{{ .Values.postgresql.postgresqlDatabase }}" + DB_USER: "{{ .Values.postgresql.postgresqlUsername }}" + DB_PORT: "5432" + CSRF_TRUSTED_ORIGINS: "" + DB_PASSWORD: + secretKeyRef: + name: dbcreds + key: postgresql-password + DB_HOST: + secretKeyRef: + name: dbcreds + key: plainhost + +securityContext: + readOnlyRootFilesystem: false + runAsNonRoot: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +service: + main: + ports: + main: + port: 10069 + targetPort: 8000 + +persistence: + config: + enabled: true + mountPath: "/config" + varrun: + enabled: true + +postgresql: + enabled: true + existingSecret: "dbcreds" + postgresqlUsername: babybuddy + postgresqlDatabase: babybuddy + +portal: + enabled: true diff --git a/stable/babybuddy/10.0.1/questions.yaml b/stable/babybuddy/10.0.1/questions.yaml new file mode 100644 index 00000000000..21881926519 --- /dev/null +++ b/stable/babybuddy/10.0.1/questions.yaml @@ -0,0 +1,1842 @@ +groups: + - name: Container Image + description: Image to be used for container + - name: General Settings + description: General Deployment 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: VPN + description: VPN + - name: Addons + description: Addon Configuration + - name: Advanced + description: Advanced Configuration + - name: Documentation + description: Documentation +portals: + open: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: global + label: Global Settings + group: "General Settings" + schema: + type: dict + hidden: true + attrs: + - variable: isSCALE + label: Flag this is SCALE + schema: + type: boolean + default: true + hidden: true + - variable: controller + group: "General Settings" + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: replicas + description: Number of desired pod replicas + label: Desired Replicas + schema: + type: int + required: true + default: 1 + - variable: customextraargs + group: "General Settings" + label: "Extra Args" + description: "Do not click this unless you know what you are doing" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: extraArgs + label: Extra Args + schema: + type: list + default: [] + items: + - variable: arg + label: Arg + schema: + type: string + - variable: env + group: "App Configuration" + label: "Image Environment" + schema: + additional_attrs: true + type: dict + attrs: + - variable: CSRF_TRUSTED_ORIGINS + label: "CSRF_TRUSTED_ORIGINS" + description: "Add any address you'd like to access babybuddy at (comma separated, no spaces)" + schema: + type: string + default: "" + - variable: TZ + label: Timezone + group: "General Settings" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - 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..." + group: "General Settings" + 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: 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) + - 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: 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: 10069 + required: true + - variable: serviceexpert + group: Networking and Services + label: Show Expert Config + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: Networking and Services + label: Host-Networking (Complicated) + schema: + type: boolean + default: false + - variable: externalInterfaces + description: Add External Interfaces + label: Add external Interfaces + group: Networking + schema: + type: list + items: + - variable: interfaceConfiguration + description: Interface Configuration + label: Interface Configuration + schema: + 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: + 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 + show_subquestions_if: static + subquestions: + - variable: staticIPConfigurations + label: Static IP Addresses + schema: + type: list + items: + - variable: staticIP + label: Static IP + schema: + type: ipaddr + cidr: true + - variable: staticRoutes + label: Static Routes + schema: + type: list + 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 + - 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: setPermissions + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "hostPath"]] + 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: 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: setPermissions + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "hostPath"]] + 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: 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: [] + 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: tls + label: TLS-Settings + schema: + type: list + 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: scaleCert + label: Select TrueNAS SCALE Certificate + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: (Advanced) Traefik Entrypoint + description: Entrypoint used by Traefik when using Traefik as Ingress Provider + schema: + type: string + default: websecure + required: true + - variable: ingressClassName + label: (Advanced/Optional) IngressClass Name + 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: ingressList + label: Add Manual Custom Ingresses + group: Ingress + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: Custom Ingress + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Ingress + schema: + type: boolean + default: true + hidden: true + - variable: name + label: Name + schema: + type: string + default: "" + - variable: ingressClassName + label: IngressClass Name + schema: + type: string + default: "" + - variable: hosts + label: Hosts + schema: + type: list + default: [] + items: + - variable: hostEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: host + label: HostName + schema: + type: string + default: "" + required: true + - variable: paths + label: Paths + schema: + type: list + default: [] + items: + - variable: pathEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: path + label: Path + schema: + type: string + required: true + default: "/" + - variable: pathType + label: Path Type + schema: + type: string + required: true + default: Prefix + - variable: 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: tls + label: TLS-Settings + schema: + type: list + 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: scaleCert + label: Select TrueNAS SCALE Certificate + schema: + type: int + $ref: + - "definitions/certificate" + - 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: security + label: Container Security Settings + group: Security and Permissions + schema: + type: dict + additional_attrs: true + attrs: + - variable: editsecurity + label: Change PUID / UMASK values + description: By enabling this you override default set values. + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - 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 + 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: "002" + - variable: advancedSecurity + label: Show Advanced Security Settings + group: Security and Permissions + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: Security Context + schema: + additional_attrs: true + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + - variable: podSecurityContext + group: Security and Permissions + label: Pod Security Context + schema: + additional_attrs: true + type: dict + attrs: + - 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 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - 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 + - 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/docs/manual/SCALE%20Apps/indepth/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/docs/manual/SCALE%20Apps/indepth/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/docs/manual/SCALE%20Apps/indepth/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/docs/manual/SCALE%20Apps/indepth/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: hostPath + 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" + # Specify GPU configuration + - variable: scaleGPU + label: GPU Configuration + group: Resources and Devices + schema: + type: dict + $ref: + - "definitions/gpuConfiguration" + attrs: [] + - 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: git + label: Git Settings + schema: + additional_attrs: true + type: dict + attrs: + - variable: deployKey + description: Raw SSH Private Key + label: Deploy Key + schema: + type: string + - variable: deployKeyBase64 + description: Base64-encoded SSH private key. When both variables are set, the raw SSH key takes precedence + label: Deploy Key Base64 + schema: + type: string + - 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: 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: 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: nodePort + description: Leave Empty to Disable + label: nodePort DEPRECATED + schema: + type: int + default: 36107 + - 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: 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: openvpn + description: OpenVPN + - value: wireguard + description: Wireguard + - value: tailscale + description: Tailscale + - variable: openvpn + label: OpenVPN Settings + schema: + 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 + default: "" + required: true + - variable: tailscale + label: Tailscale Settings + schema: + 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: dict + show_if: [["type", "!=", "disabled"]] + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: true + hidden: true + - variable: type + label: Type + schema: + type: string + default: hostPath + hidden: true + - variable: hostPathType + label: hostPathType + schema: + type: string + default: File + hidden: true + - variable: noMount + label: noMount + schema: + type: boolean + default: true + hidden: true + - variable: hostPath + label: Full Path to File + description: "Path to your local VPN config file for example: /mnt/tank/vpn.conf or /mnt/tank/vpn.ovpn" + schema: + type: string + 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 + - 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/booksonic-air/7.0.4/templates/common.yaml b/stable/babybuddy/10.0.1/templates/common.yaml similarity index 100% rename from stable/booksonic-air/7.0.4/templates/common.yaml rename to stable/babybuddy/10.0.1/templates/common.yaml diff --git a/stable/booksonic-air/7.0.4/values.yaml b/stable/babybuddy/10.0.1/values.yaml similarity index 100% rename from stable/booksonic-air/7.0.4/values.yaml rename to stable/babybuddy/10.0.1/values.yaml diff --git a/stable/booksonic-air/7.0.4/app-changelog.md b/stable/booksonic-air/7.0.4/app-changelog.md deleted file mode 100644 index 45c8cadb3e4..00000000000 --- a/stable/booksonic-air/7.0.4/app-changelog.md +++ /dev/null @@ -1,9 +0,0 @@ - - -## [booksonic-air-7.0.4](https://github.com/truecharts/charts/compare/booksonic-air-7.0.3...booksonic-air-7.0.4) (2022-11-12) - -### Chore - -- update helm general non-major ([#4395](https://github.com/truecharts/charts/issues/4395)) - - \ No newline at end of file diff --git a/stable/booksonic-air/7.0.4/CHANGELOG.md b/stable/booksonic-air/7.0.5/CHANGELOG.md similarity index 100% rename from stable/booksonic-air/7.0.4/CHANGELOG.md rename to stable/booksonic-air/7.0.5/CHANGELOG.md diff --git a/stable/booksonic-air/7.0.4/Chart.yaml b/stable/booksonic-air/7.0.5/Chart.yaml similarity index 98% rename from stable/booksonic-air/7.0.4/Chart.yaml rename to stable/booksonic-air/7.0.5/Chart.yaml index 89206ae0d7c..bd90204617e 100644 --- a/stable/booksonic-air/7.0.4/Chart.yaml +++ b/stable/booksonic-air/7.0.5/Chart.yaml @@ -20,7 +20,7 @@ sources: - https://github.com/truecharts/charts/tree/master/charts/stable/booksonic-air - https://github.com/popeen/Booksonic-Air - https://hub.docker.com/r/linuxserver/booksonic-air -version: 7.0.4 +version: 7.0.5 annotations: truecharts.org/catagories: | - media diff --git a/stable/booksonic-air/7.0.4/README.md b/stable/booksonic-air/7.0.5/README.md similarity index 100% rename from stable/booksonic-air/7.0.4/README.md rename to stable/booksonic-air/7.0.5/README.md diff --git a/stable/booksonic-air/7.0.5/app-changelog.md b/stable/booksonic-air/7.0.5/app-changelog.md new file mode 100644 index 00000000000..7a6ef4358b2 --- /dev/null +++ b/stable/booksonic-air/7.0.5/app-changelog.md @@ -0,0 +1,9 @@ + + +## [booksonic-air-7.0.5](https://github.com/truecharts/charts/compare/booksonic-air-7.0.4...booksonic-air-7.0.5) (2022-11-14) + +### Chore + +- update docker general non-major ([#4414](https://github.com/truecharts/charts/issues/4414)) + + \ No newline at end of file diff --git a/stable/booksonic-air/7.0.4/app-readme.md b/stable/booksonic-air/7.0.5/app-readme.md similarity index 100% rename from stable/booksonic-air/7.0.4/app-readme.md rename to stable/booksonic-air/7.0.5/app-readme.md diff --git a/stable/custom-app/6.0.4/charts/common-10.9.7.tgz b/stable/booksonic-air/7.0.5/charts/common-10.9.7.tgz similarity index 100% rename from stable/custom-app/6.0.4/charts/common-10.9.7.tgz rename to stable/booksonic-air/7.0.5/charts/common-10.9.7.tgz diff --git a/stable/booksonic-air/7.0.4/ix_values.yaml b/stable/booksonic-air/7.0.5/ix_values.yaml similarity index 81% rename from stable/booksonic-air/7.0.4/ix_values.yaml rename to stable/booksonic-air/7.0.5/ix_values.yaml index 7a1a4bdb959..1612d957785 100644 --- a/stable/booksonic-air/7.0.4/ix_values.yaml +++ b/stable/booksonic-air/7.0.5/ix_values.yaml @@ -1,7 +1,7 @@ image: repository: tccr.io/truecharts/booksonic-air pullPolicy: IfNotPresent - tag: v2201.1.0@sha256:170f863d4d6866532b42e3fbd2dabce70f7a9e9ded87a5742fdcab49a15dbec3 + tag: v2201.1.0@sha256:f2c643cf49e8b81f671055c6e10295cdec586b78d42ece89cb9820cb796d75b9 securityContext: readOnlyRootFilesystem: false diff --git a/stable/booksonic-air/7.0.4/questions.yaml b/stable/booksonic-air/7.0.5/questions.yaml similarity index 100% rename from stable/booksonic-air/7.0.4/questions.yaml rename to stable/booksonic-air/7.0.5/questions.yaml diff --git a/stable/custom-app/6.0.4/templates/common.yaml b/stable/booksonic-air/7.0.5/templates/common.yaml similarity index 100% rename from stable/custom-app/6.0.4/templates/common.yaml rename to stable/booksonic-air/7.0.5/templates/common.yaml diff --git a/stable/custom-app/6.0.4/values.yaml b/stable/booksonic-air/7.0.5/values.yaml similarity index 100% rename from stable/custom-app/6.0.4/values.yaml rename to stable/booksonic-air/7.0.5/values.yaml diff --git a/stable/custom-app/6.0.4/app-changelog.md b/stable/custom-app/6.0.4/app-changelog.md deleted file mode 100644 index f52745687ab..00000000000 --- a/stable/custom-app/6.0.4/app-changelog.md +++ /dev/null @@ -1,11 +0,0 @@ - - -## [custom-app-6.0.4](https://github.com/truecharts/charts/compare/custom-app-6.0.3...custom-app-6.0.4) (2022-11-12) - -### Chore - -- update docker general non-major ([#4394](https://github.com/truecharts/charts/issues/4394)) - - update helm general non-major ([#4395](https://github.com/truecharts/charts/issues/4395)) - - update docker general non-major - - \ No newline at end of file diff --git a/stable/custom-app/6.0.4/CHANGELOG.md b/stable/custom-app/6.0.5/CHANGELOG.md similarity index 100% rename from stable/custom-app/6.0.4/CHANGELOG.md rename to stable/custom-app/6.0.5/CHANGELOG.md diff --git a/stable/custom-app/6.0.4/Chart.yaml b/stable/custom-app/6.0.5/Chart.yaml similarity index 94% rename from stable/custom-app/6.0.4/Chart.yaml rename to stable/custom-app/6.0.5/Chart.yaml index 5a70ab5d7a7..b4b86e55682 100644 --- a/stable/custom-app/6.0.4/Chart.yaml +++ b/stable/custom-app/6.0.5/Chart.yaml @@ -1,5 +1,5 @@ apiVersion: v2 -appVersion: "0.20.2238" +appVersion: "0.20.2244" dependencies: - name: common repository: https://library-charts.truecharts.org @@ -19,7 +19,7 @@ name: custom-app sources: - https://github.com/truecharts/charts/tree/master/charts/stable/custom-app type: application -version: 6.0.4 +version: 6.0.5 annotations: truecharts.org/catagories: | - custom diff --git a/stable/custom-app/6.0.4/README.md b/stable/custom-app/6.0.5/README.md similarity index 100% rename from stable/custom-app/6.0.4/README.md rename to stable/custom-app/6.0.5/README.md diff --git a/stable/custom-app/6.0.5/app-changelog.md b/stable/custom-app/6.0.5/app-changelog.md new file mode 100644 index 00000000000..fefcd0a197e --- /dev/null +++ b/stable/custom-app/6.0.5/app-changelog.md @@ -0,0 +1,9 @@ + + +## [custom-app-6.0.5](https://github.com/truecharts/charts/compare/custom-app-6.0.4...custom-app-6.0.5) (2022-11-14) + +### Chore + +- update docker general non-major ([#4414](https://github.com/truecharts/charts/issues/4414)) + + \ No newline at end of file diff --git a/stable/custom-app/6.0.4/app-readme.md b/stable/custom-app/6.0.5/app-readme.md similarity index 100% rename from stable/custom-app/6.0.4/app-readme.md rename to stable/custom-app/6.0.5/app-readme.md diff --git a/stable/cyberchef/3.0.4/charts/common-10.9.7.tgz b/stable/custom-app/6.0.5/charts/common-10.9.7.tgz similarity index 100% rename from stable/cyberchef/3.0.4/charts/common-10.9.7.tgz rename to stable/custom-app/6.0.5/charts/common-10.9.7.tgz diff --git a/stable/custom-app/6.0.4/ix_values.yaml b/stable/custom-app/6.0.5/ix_values.yaml similarity index 52% rename from stable/custom-app/6.0.4/ix_values.yaml rename to stable/custom-app/6.0.5/ix_values.yaml index 5175f18151e..a3e3a6ffb0e 100644 --- a/stable/custom-app/6.0.4/ix_values.yaml +++ b/stable/custom-app/6.0.5/ix_values.yaml @@ -1,7 +1,7 @@ image: repository: tccr.io/truecharts/jackett pullPolicy: IfNotPresent - tag: 0.20.2238@sha256:a6046d29cff50f1e594cc139742df326cb712763ab52c3e6f0396d60445e8790 + tag: 0.20.2244@sha256:e8f810c3434e87169403a03549c94cda55d724f0e700c379b8f1314853dfb181 portal: enabled: true diff --git a/stable/custom-app/6.0.4/questions.yaml b/stable/custom-app/6.0.5/questions.yaml similarity index 100% rename from stable/custom-app/6.0.4/questions.yaml rename to stable/custom-app/6.0.5/questions.yaml diff --git a/stable/cyberchef/3.0.4/templates/common.yaml b/stable/custom-app/6.0.5/templates/common.yaml similarity index 100% rename from stable/cyberchef/3.0.4/templates/common.yaml rename to stable/custom-app/6.0.5/templates/common.yaml diff --git a/stable/cyberchef/3.0.4/values.yaml b/stable/custom-app/6.0.5/values.yaml similarity index 100% rename from stable/cyberchef/3.0.4/values.yaml rename to stable/custom-app/6.0.5/values.yaml diff --git a/stable/cyberchef/3.0.4/app-changelog.md b/stable/cyberchef/3.0.4/app-changelog.md deleted file mode 100644 index 0ef9a6fa5c3..00000000000 --- a/stable/cyberchef/3.0.4/app-changelog.md +++ /dev/null @@ -1,11 +0,0 @@ - - -## [cyberchef-3.0.4](https://github.com/truecharts/charts/compare/cyberchef-3.0.3...cyberchef-3.0.4) (2022-11-12) - -### Chore - -- update docker general non-major ([#4394](https://github.com/truecharts/charts/issues/4394)) - - update helm general non-major ([#4395](https://github.com/truecharts/charts/issues/4395)) - - update docker general non-major - - \ No newline at end of file diff --git a/stable/cyberchef/3.0.4/CHANGELOG.md b/stable/cyberchef/3.0.5/CHANGELOG.md similarity index 100% rename from stable/cyberchef/3.0.4/CHANGELOG.md rename to stable/cyberchef/3.0.5/CHANGELOG.md diff --git a/stable/cyberchef/3.0.4/Chart.yaml b/stable/cyberchef/3.0.5/Chart.yaml similarity index 98% rename from stable/cyberchef/3.0.4/Chart.yaml rename to stable/cyberchef/3.0.5/Chart.yaml index 7cf81d50fed..779463442dd 100644 --- a/stable/cyberchef/3.0.4/Chart.yaml +++ b/stable/cyberchef/3.0.5/Chart.yaml @@ -18,7 +18,7 @@ name: cyberchef sources: - https://github.com/truecharts/charts/tree/master/charts/stable/cyberchef - https://hub.docker.com/r/mpepping/cyberchef -version: 3.0.4 +version: 3.0.5 annotations: truecharts.org/catagories: | - utilities diff --git a/stable/cyberchef/3.0.4/README.md b/stable/cyberchef/3.0.5/README.md similarity index 100% rename from stable/cyberchef/3.0.4/README.md rename to stable/cyberchef/3.0.5/README.md diff --git a/stable/cyberchef/3.0.5/app-changelog.md b/stable/cyberchef/3.0.5/app-changelog.md new file mode 100644 index 00000000000..ea86442b717 --- /dev/null +++ b/stable/cyberchef/3.0.5/app-changelog.md @@ -0,0 +1,9 @@ + + +## [cyberchef-3.0.5](https://github.com/truecharts/charts/compare/cyberchef-3.0.4...cyberchef-3.0.5) (2022-11-14) + +### Chore + +- update docker general non-major ([#4414](https://github.com/truecharts/charts/issues/4414)) + + \ No newline at end of file diff --git a/stable/cyberchef/3.0.4/app-readme.md b/stable/cyberchef/3.0.5/app-readme.md similarity index 100% rename from stable/cyberchef/3.0.4/app-readme.md rename to stable/cyberchef/3.0.5/app-readme.md diff --git a/stable/dashdot/2.0.4/charts/common-10.9.7.tgz b/stable/cyberchef/3.0.5/charts/common-10.9.7.tgz similarity index 100% rename from stable/dashdot/2.0.4/charts/common-10.9.7.tgz rename to stable/cyberchef/3.0.5/charts/common-10.9.7.tgz diff --git a/stable/cyberchef/3.0.4/ix_values.yaml b/stable/cyberchef/3.0.5/ix_values.yaml similarity index 78% rename from stable/cyberchef/3.0.4/ix_values.yaml rename to stable/cyberchef/3.0.5/ix_values.yaml index 04c6193386d..599ac935702 100644 --- a/stable/cyberchef/3.0.4/ix_values.yaml +++ b/stable/cyberchef/3.0.5/ix_values.yaml @@ -1,6 +1,6 @@ image: repository: tccr.io/truecharts/cyberchef - tag: 9.49.0@sha256:193d3876767155a562ae4aae19fd005dba7830e3c335ca9ec7b6a28fd02cc473 + tag: 9.49.0@sha256:1b591bc9703f94aa637cdcceac9d7d52a4526e56321551fb448741969f01abcd pullPolicy: IfNotPresent securityContext: diff --git a/stable/cyberchef/3.0.4/questions.yaml b/stable/cyberchef/3.0.5/questions.yaml similarity index 100% rename from stable/cyberchef/3.0.4/questions.yaml rename to stable/cyberchef/3.0.5/questions.yaml diff --git a/stable/dashdot/2.0.4/templates/common.yaml b/stable/cyberchef/3.0.5/templates/common.yaml similarity index 100% rename from stable/dashdot/2.0.4/templates/common.yaml rename to stable/cyberchef/3.0.5/templates/common.yaml diff --git a/stable/dashdot/2.0.4/values.yaml b/stable/cyberchef/3.0.5/values.yaml similarity index 100% rename from stable/dashdot/2.0.4/values.yaml rename to stable/cyberchef/3.0.5/values.yaml diff --git a/stable/dashdot/2.0.4/app-changelog.md b/stable/dashdot/2.0.4/app-changelog.md deleted file mode 100644 index fb86677689a..00000000000 --- a/stable/dashdot/2.0.4/app-changelog.md +++ /dev/null @@ -1,9 +0,0 @@ - - -## [dashdot-2.0.4](https://github.com/truecharts/charts/compare/dashdot-2.0.3...dashdot-2.0.4) (2022-11-12) - -### Chore - -- update helm general non-major ([#4395](https://github.com/truecharts/charts/issues/4395)) - - \ No newline at end of file diff --git a/stable/dashdot/2.0.4/CHANGELOG.md b/stable/dashdot/2.0.5/CHANGELOG.md similarity index 100% rename from stable/dashdot/2.0.4/CHANGELOG.md rename to stable/dashdot/2.0.5/CHANGELOG.md diff --git a/stable/dashdot/2.0.4/Chart.yaml b/stable/dashdot/2.0.5/Chart.yaml similarity index 96% rename from stable/dashdot/2.0.4/Chart.yaml rename to stable/dashdot/2.0.5/Chart.yaml index 571629b0b0e..2f15d26ab53 100644 --- a/stable/dashdot/2.0.4/Chart.yaml +++ b/stable/dashdot/2.0.5/Chart.yaml @@ -1,5 +1,5 @@ apiVersion: v2 -appVersion: "4.5.3" +appVersion: "4.5.6" dependencies: - name: common repository: https://library-charts.truecharts.org @@ -20,7 +20,7 @@ sources: - https://github.com/truecharts/charts/tree/master/charts/stable/dashdot - https://github.com/MauriceNino/dashdot - https://hub.docker.com/r/mauricenino/dashdot -version: 2.0.4 +version: 2.0.5 annotations: truecharts.org/catagories: | - media diff --git a/stable/dashdot/2.0.4/README.md b/stable/dashdot/2.0.5/README.md similarity index 100% rename from stable/dashdot/2.0.4/README.md rename to stable/dashdot/2.0.5/README.md diff --git a/stable/dashdot/2.0.5/app-changelog.md b/stable/dashdot/2.0.5/app-changelog.md new file mode 100644 index 00000000000..6bf944e4f5d --- /dev/null +++ b/stable/dashdot/2.0.5/app-changelog.md @@ -0,0 +1,9 @@ + + +## [dashdot-2.0.5](https://github.com/truecharts/charts/compare/dashdot-2.0.4...dashdot-2.0.5) (2022-11-14) + +### Chore + +- update docker general non-major ([#4414](https://github.com/truecharts/charts/issues/4414)) + + \ No newline at end of file diff --git a/stable/dashdot/2.0.4/app-readme.md b/stable/dashdot/2.0.5/app-readme.md similarity index 100% rename from stable/dashdot/2.0.4/app-readme.md rename to stable/dashdot/2.0.5/app-readme.md diff --git a/stable/dokuwiki/4.0.4/charts/common-10.9.7.tgz b/stable/dashdot/2.0.5/charts/common-10.9.7.tgz similarity index 100% rename from stable/dokuwiki/4.0.4/charts/common-10.9.7.tgz rename to stable/dashdot/2.0.5/charts/common-10.9.7.tgz diff --git a/stable/dashdot/2.0.4/ix_values.yaml b/stable/dashdot/2.0.5/ix_values.yaml similarity index 97% rename from stable/dashdot/2.0.4/ix_values.yaml rename to stable/dashdot/2.0.5/ix_values.yaml index f0748e2babb..82d4a2228fe 100644 --- a/stable/dashdot/2.0.4/ix_values.yaml +++ b/stable/dashdot/2.0.5/ix_values.yaml @@ -1,6 +1,6 @@ image: repository: tccr.io/truecharts/dashdot - tag: 4.5.3@sha256:4c1c9d270cd7cd835f2ea99fdac11262dc265a1d07b83648659bbc51fdf36eda + tag: 4.5.6@sha256:6fe1f5e60dc511cd9348d3d2b82bf6723a85678054cbefd6900570ace18e36f1 pullPolicy: IfNotPresent securityContext: diff --git a/stable/dashdot/2.0.4/questions.yaml b/stable/dashdot/2.0.5/questions.yaml similarity index 100% rename from stable/dashdot/2.0.4/questions.yaml rename to stable/dashdot/2.0.5/questions.yaml diff --git a/stable/dokuwiki/4.0.4/templates/common.yaml b/stable/dashdot/2.0.5/templates/common.yaml similarity index 100% rename from stable/dokuwiki/4.0.4/templates/common.yaml rename to stable/dashdot/2.0.5/templates/common.yaml diff --git a/stable/dokuwiki/4.0.4/values.yaml b/stable/dashdot/2.0.5/values.yaml similarity index 100% rename from stable/dokuwiki/4.0.4/values.yaml rename to stable/dashdot/2.0.5/values.yaml diff --git a/stable/dokuwiki/4.0.4/app-changelog.md b/stable/dokuwiki/4.0.4/app-changelog.md deleted file mode 100644 index 5c90f6ae9af..00000000000 --- a/stable/dokuwiki/4.0.4/app-changelog.md +++ /dev/null @@ -1,10 +0,0 @@ - - -## [dokuwiki-4.0.4](https://github.com/truecharts/charts/compare/dokuwiki-4.0.3...dokuwiki-4.0.4) (2022-11-12) - -### Chore - -- update helm general non-major ([#4395](https://github.com/truecharts/charts/issues/4395)) - - update docker general non-major - - \ No newline at end of file diff --git a/stable/dokuwiki/4.0.4/CHANGELOG.md b/stable/dokuwiki/4.0.5/CHANGELOG.md similarity index 100% rename from stable/dokuwiki/4.0.4/CHANGELOG.md rename to stable/dokuwiki/4.0.5/CHANGELOG.md diff --git a/stable/dokuwiki/4.0.4/Chart.yaml b/stable/dokuwiki/4.0.5/Chart.yaml similarity index 98% rename from stable/dokuwiki/4.0.4/Chart.yaml rename to stable/dokuwiki/4.0.5/Chart.yaml index b73bc997899..ef1fa5b0709 100644 --- a/stable/dokuwiki/4.0.4/Chart.yaml +++ b/stable/dokuwiki/4.0.5/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: dokuwiki -version: 4.0.4 +version: 4.0.5 appVersion: "20220731.1" description: Dokuwiki is a simple to use and highly versatile Open Source wiki software that doesn't require a database. type: application diff --git a/stable/dokuwiki/4.0.4/README.md b/stable/dokuwiki/4.0.5/README.md similarity index 100% rename from stable/dokuwiki/4.0.4/README.md rename to stable/dokuwiki/4.0.5/README.md diff --git a/stable/dokuwiki/4.0.5/app-changelog.md b/stable/dokuwiki/4.0.5/app-changelog.md new file mode 100644 index 00000000000..d5ac62854fc --- /dev/null +++ b/stable/dokuwiki/4.0.5/app-changelog.md @@ -0,0 +1,9 @@ + + +## [dokuwiki-4.0.5](https://github.com/truecharts/charts/compare/dokuwiki-4.0.4...dokuwiki-4.0.5) (2022-11-14) + +### Chore + +- update docker general non-major ([#4414](https://github.com/truecharts/charts/issues/4414)) + + \ No newline at end of file diff --git a/stable/dokuwiki/4.0.4/app-readme.md b/stable/dokuwiki/4.0.5/app-readme.md similarity index 100% rename from stable/dokuwiki/4.0.4/app-readme.md rename to stable/dokuwiki/4.0.5/app-readme.md diff --git a/stable/flexget/3.0.4/charts/common-10.9.7.tgz b/stable/dokuwiki/4.0.5/charts/common-10.9.7.tgz similarity index 100% rename from stable/flexget/3.0.4/charts/common-10.9.7.tgz rename to stable/dokuwiki/4.0.5/charts/common-10.9.7.tgz diff --git a/stable/dokuwiki/4.0.4/ix_values.yaml b/stable/dokuwiki/4.0.5/ix_values.yaml similarity index 86% rename from stable/dokuwiki/4.0.4/ix_values.yaml rename to stable/dokuwiki/4.0.5/ix_values.yaml index 999b2a243eb..321dbcc3f26 100644 --- a/stable/dokuwiki/4.0.4/ix_values.yaml +++ b/stable/dokuwiki/4.0.5/ix_values.yaml @@ -1,7 +1,7 @@ image: repository: tccr.io/truecharts/dokuwiki pullPolicy: IfNotPresent - tag: 20220731.1.0@sha256:930817a10c03e1eaa7f00ec5ab46cab856efb5efb7b1381929cad4edf588871f + tag: 20220731.1.0@sha256:2a568b9a222be3ea1fea966837a9dcc23f24c8a0e0471ea1c53894c349ed2bf8 securityContext: runAsNonRoot: false diff --git a/stable/dokuwiki/4.0.4/questions.yaml b/stable/dokuwiki/4.0.5/questions.yaml similarity index 100% rename from stable/dokuwiki/4.0.4/questions.yaml rename to stable/dokuwiki/4.0.5/questions.yaml diff --git a/stable/flexget/3.0.4/templates/common.yaml b/stable/dokuwiki/4.0.5/templates/common.yaml similarity index 100% rename from stable/flexget/3.0.4/templates/common.yaml rename to stable/dokuwiki/4.0.5/templates/common.yaml diff --git a/stable/flexget/3.0.4/values.yaml b/stable/dokuwiki/4.0.5/values.yaml similarity index 100% rename from stable/flexget/3.0.4/values.yaml rename to stable/dokuwiki/4.0.5/values.yaml diff --git a/stable/flexget/3.0.4/app-changelog.md b/stable/flexget/3.0.4/app-changelog.md deleted file mode 100644 index 0a676e24b86..00000000000 --- a/stable/flexget/3.0.4/app-changelog.md +++ /dev/null @@ -1,9 +0,0 @@ - - -## [flexget-3.0.4](https://github.com/truecharts/charts/compare/flexget-3.0.3...flexget-3.0.4) (2022-11-12) - -### Chore - -- update helm general non-major ([#4395](https://github.com/truecharts/charts/issues/4395)) - - \ No newline at end of file diff --git a/stable/flexget/3.0.4/CHANGELOG.md b/stable/flexget/3.0.5/CHANGELOG.md similarity index 100% rename from stable/flexget/3.0.4/CHANGELOG.md rename to stable/flexget/3.0.5/CHANGELOG.md diff --git a/stable/flexget/3.0.4/Chart.yaml b/stable/flexget/3.0.5/Chart.yaml similarity index 95% rename from stable/flexget/3.0.4/Chart.yaml rename to stable/flexget/3.0.5/Chart.yaml index ef4c57cf6c2..750ad11a3cd 100644 --- a/stable/flexget/3.0.4/Chart.yaml +++ b/stable/flexget/3.0.5/Chart.yaml @@ -1,5 +1,5 @@ apiVersion: v2 -appVersion: "3.5.2" +appVersion: "3.5.5" dependencies: - name: common repository: https://library-charts.truecharts.org @@ -22,7 +22,7 @@ sources: - https://hub.docker.com/r/wiserain/flexget - https://github.com/wiserain/docker-flexget type: application -version: 3.0.4 +version: 3.0.5 annotations: truecharts.org/catagories: | - media diff --git a/stable/flexget/3.0.4/README.md b/stable/flexget/3.0.5/README.md similarity index 100% rename from stable/flexget/3.0.4/README.md rename to stable/flexget/3.0.5/README.md diff --git a/stable/flexget/3.0.5/app-changelog.md b/stable/flexget/3.0.5/app-changelog.md new file mode 100644 index 00000000000..33d113590d5 --- /dev/null +++ b/stable/flexget/3.0.5/app-changelog.md @@ -0,0 +1,9 @@ + + +## [flexget-3.0.5](https://github.com/truecharts/charts/compare/flexget-3.0.4...flexget-3.0.5) (2022-11-14) + +### Chore + +- update docker general non-major ([#4414](https://github.com/truecharts/charts/issues/4414)) + + \ No newline at end of file diff --git a/stable/flexget/3.0.4/app-readme.md b/stable/flexget/3.0.5/app-readme.md similarity index 100% rename from stable/flexget/3.0.4/app-readme.md rename to stable/flexget/3.0.5/app-readme.md diff --git a/stable/koel/5.0.1/charts/common-10.9.7.tgz b/stable/flexget/3.0.5/charts/common-10.9.7.tgz similarity index 100% rename from stable/koel/5.0.1/charts/common-10.9.7.tgz rename to stable/flexget/3.0.5/charts/common-10.9.7.tgz diff --git a/stable/flexget/3.0.4/ix_values.yaml b/stable/flexget/3.0.5/ix_values.yaml similarity index 86% rename from stable/flexget/3.0.4/ix_values.yaml rename to stable/flexget/3.0.5/ix_values.yaml index 091e5d31ba5..34fd09f04ae 100644 --- a/stable/flexget/3.0.4/ix_values.yaml +++ b/stable/flexget/3.0.5/ix_values.yaml @@ -1,7 +1,7 @@ image: repository: tccr.io/truecharts/flexget pullPolicy: IfNotPresent - tag: 3.5.2@sha256:fc36dd9357e6ae4f93530faf988400c5bb09d5bfe178a6fc0a2e409ef50a021e + tag: 3.5.5@sha256:64e1f1f8cd91265c513de125f2fb33d122bf45827155957daad5f09e22fe2469 securityContext: runAsNonRoot: false diff --git a/stable/flexget/3.0.4/questions.yaml b/stable/flexget/3.0.5/questions.yaml similarity index 100% rename from stable/flexget/3.0.4/questions.yaml rename to stable/flexget/3.0.5/questions.yaml diff --git a/stable/logitech-media-server/5.0.5/templates/common.yaml b/stable/flexget/3.0.5/templates/common.yaml similarity index 100% rename from stable/logitech-media-server/5.0.5/templates/common.yaml rename to stable/flexget/3.0.5/templates/common.yaml diff --git a/stable/koel/5.0.1/values.yaml b/stable/flexget/3.0.5/values.yaml similarity index 100% rename from stable/koel/5.0.1/values.yaml rename to stable/flexget/3.0.5/values.yaml diff --git a/stable/grocy/12.0.5/CHANGELOG.md b/stable/grocy/12.0.5/CHANGELOG.md new file mode 100644 index 00000000000..94e03b83099 --- /dev/null +++ b/stable/grocy/12.0.5/CHANGELOG.md @@ -0,0 +1,99 @@ +**Important:** +*for the complete changelog, please refer to the website* + + + + +## [grocy-12.0.0](https://github.com/truecharts/charts/compare/grocy-11.0.59...grocy-12.0.0) (2022-11-10) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Major Change to GUI + - update helm general non-major ([#4342](https://github.com/truecharts/charts/issues/4342)) + - update helm general non-major ([#4349](https://github.com/truecharts/charts/issues/4349)) + - update helm general non-major ([#4329](https://github.com/truecharts/charts/issues/4329)) + + + + +## [grocy-11.0.62](https://github.com/truecharts/charts/compare/grocy-11.0.59...grocy-11.0.62) (2022-11-08) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - update helm general non-major ([#4342](https://github.com/truecharts/charts/issues/4342)) + - update helm general non-major ([#4349](https://github.com/truecharts/charts/issues/4349)) + - update helm general non-major ([#4329](https://github.com/truecharts/charts/issues/4329)) + + + + +## [grocy-11.0.61](https://github.com/truecharts/charts/compare/grocy-11.0.59...grocy-11.0.61) (2022-11-08) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - update helm general non-major ([#4342](https://github.com/truecharts/charts/issues/4342)) + - update helm general non-major ([#4329](https://github.com/truecharts/charts/issues/4329)) + + + + +## [grocy-11.0.61](https://github.com/truecharts/charts/compare/grocy-11.0.59...grocy-11.0.61) (2022-11-08) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - update helm general non-major ([#4342](https://github.com/truecharts/charts/issues/4342)) + - update helm general non-major ([#4329](https://github.com/truecharts/charts/issues/4329)) + + + + +## [grocy-11.0.61](https://github.com/truecharts/charts/compare/grocy-11.0.59...grocy-11.0.61) (2022-11-08) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - update helm general non-major ([#4342](https://github.com/truecharts/charts/issues/4342)) + - update helm general non-major ([#4329](https://github.com/truecharts/charts/issues/4329)) + + + + +## [grocy-11.0.60](https://github.com/truecharts/charts/compare/grocy-11.0.59...grocy-11.0.60) (2022-11-07) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - update helm general non-major ([#4329](https://github.com/truecharts/charts/issues/4329)) + + + + +## [grocy-11.0.60](https://github.com/truecharts/charts/compare/grocy-11.0.59...grocy-11.0.60) (2022-11-06) + +### Chore + diff --git a/stable/grocy/12.0.5/Chart.yaml b/stable/grocy/12.0.5/Chart.yaml new file mode 100644 index 00000000000..637f60e79fb --- /dev/null +++ b/stable/grocy/12.0.5/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +appVersion: "3.3.2" +dependencies: + - name: common + repository: https://library-charts.truecharts.org + version: 10.9.7 +deprecated: false +description: ERP beyond your fridge - grocy is a web-based self-hosted groceries & household management solution for your home +home: https://truecharts.org/docs/charts/stable/grocy +icon: https://truecharts.org/img/hotlink-ok/chart-icons/grocy.png +keywords: + - grocy +kubeVersion: ">=1.16.0-0" +maintainers: + - email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +name: grocy +sources: + - https://github.com/truecharts/charts/tree/master/charts/stable/grocy + - https://github.com/grocy/grocy +type: application +version: 12.0.5 +annotations: + truecharts.org/catagories: | + - Home-Automation + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/stable/grocy/12.0.5/README.md b/stable/grocy/12.0.5/README.md new file mode 100644 index 00000000000..427d7d2ffb9 --- /dev/null +++ b/stable/grocy/12.0.5/README.md @@ -0,0 +1,106 @@ +# grocy + +ERP beyond your fridge - grocy is a web-based self-hosted groceries & household management solution for your home + +TrueCharts can be installed as both *normal* Helm Charts or as Apps on TrueNAS SCALE. + +This readme is just an automatically generated general guide on installing our Helm Charts and Apps. +For more information, please click here: [grocy](https://truecharts.org/docs/charts/stable/grocy) + +**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)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://library-charts.truecharts.org | common | 10.9.4 | + +## Installing the Chart + +### TrueNAS SCALE + +To install this Chart on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/docs/manual/SCALE%20Apps/Installing-an-App). + +### Helm + +To install the chart with the release name `grocy` + +```console +helm repo add TrueCharts https://charts.truecharts.org +helm repo update +helm install grocy TrueCharts/grocy +``` + +## Uninstall + +### TrueNAS SCALE + +**Upgrading, Rolling Back and Uninstalling the Chart** + +To upgrade, rollback or delete this Chart from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/docs/manual/SCALE%20Apps/Upgrade-rollback-delete-an-App). + +### Helm + +To uninstall the `grocy` deployment + +```console +helm uninstall grocy +``` + +## Configuration + +### Helm + +#### Available Settings + +Read through the values.yaml file. It has several commented out suggested values. +Other values may be used from the [values.yaml](https://github.com/truecharts/library-charts/tree/main/charts/stable/common/values.yaml) from the [common library](https://github.com/truecharts/library-charts/tree/main/charts/common). + +#### Configure using the command line + +Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. + +```console +helm install grocy \ + --set env.TZ="America/New York" \ + TrueCharts/grocy +``` + +#### Configure using a yaml file + +Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. + +```console +helm install grocy TrueCharts/grocy -f values.yaml +``` + +#### Connecting to other charts + +If you need to connect this Chart to other Charts on TrueNAS SCALE, please refer to our [Linking Charts Internally](https://truecharts.org/docs/manual/SCALE%20Apps/linking-apps) quick-start guide. + +## Support + +- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/docs/manual/SCALE%20Apps/Important-MUST-READ). +- See the [Website](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/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/grocy/12.0.5/app-changelog.md b/stable/grocy/12.0.5/app-changelog.md new file mode 100644 index 00000000000..d7d9f1debda --- /dev/null +++ b/stable/grocy/12.0.5/app-changelog.md @@ -0,0 +1,9 @@ + + +## [grocy-12.0.5](https://github.com/truecharts/charts/compare/grocy-12.0.4...grocy-12.0.5) (2022-11-14) + +### Chore + +- update docker general non-major ([#4414](https://github.com/truecharts/charts/issues/4414)) + + \ No newline at end of file diff --git a/stable/grocy/12.0.5/app-readme.md b/stable/grocy/12.0.5/app-readme.md new file mode 100644 index 00000000000..fde13924737 --- /dev/null +++ b/stable/grocy/12.0.5/app-readme.md @@ -0,0 +1,8 @@ +ERP beyond your fridge - grocy is a web-based self-hosted groceries & household management solution for your home + +This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/docs/charts/stable/grocy](https://truecharts.org/docs/charts/stable/grocy) + +--- + +TrueCharts can only exist due to the incredible effort of our staff. +Please consider making a [donation](https://truecharts.org/docs/about/sponsor) or contributing back to the project any way you can! diff --git a/stable/logitech-media-server/5.0.5/charts/common-10.9.7.tgz b/stable/grocy/12.0.5/charts/common-10.9.7.tgz similarity index 100% rename from stable/logitech-media-server/5.0.5/charts/common-10.9.7.tgz rename to stable/grocy/12.0.5/charts/common-10.9.7.tgz diff --git a/stable/grocy/12.0.5/ix_values.yaml b/stable/grocy/12.0.5/ix_values.yaml new file mode 100644 index 00000000000..50c88aa8355 --- /dev/null +++ b/stable/grocy/12.0.5/ix_values.yaml @@ -0,0 +1,27 @@ +image: + repository: tccr.io/truecharts/grocy + tag: 3.3.2@sha256:252d26069aa0468c2a85b44185aca7638999f19445ffb0022a7d9867c9d660fb + pullPolicy: IfNotPresent + +securityContext: + readOnlyRootFilesystem: false + runAsNonRoot: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +service: + main: + ports: + main: + port: 10013 + targetPort: 80 + +persistence: + config: + enabled: true + mountPath: "/config" + +portal: + enabled: true diff --git a/stable/grocy/12.0.5/questions.yaml b/stable/grocy/12.0.5/questions.yaml new file mode 100644 index 00000000000..abb57c7bae2 --- /dev/null +++ b/stable/grocy/12.0.5/questions.yaml @@ -0,0 +1,1829 @@ +groups: + - name: Container Image + description: Image to be used for container + - name: General Settings + description: General Deployment 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: VPN + description: VPN + - name: Addons + description: Addon Configuration + - name: Advanced + description: Advanced Configuration + - name: Documentation + description: Documentation +portals: + open: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: global + label: Global Settings + group: "General Settings" + schema: + type: dict + hidden: true + attrs: + - variable: isSCALE + label: Flag this is SCALE + schema: + type: boolean + default: true + hidden: true + - variable: controller + group: "General Settings" + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: replicas + description: Number of desired pod replicas + label: Desired Replicas + schema: + type: int + required: true + default: 1 + - variable: customextraargs + group: "General Settings" + label: "Extra Args" + description: "Do not click this unless you know what you are doing" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: extraArgs + label: Extra Args + schema: + type: list + default: [] + items: + - variable: arg + label: Arg + schema: + type: string + - variable: TZ + label: Timezone + group: "General Settings" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - 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..." + group: "General Settings" + 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: 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) + - 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: 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: 10013 + required: true + - variable: serviceexpert + group: Networking and Services + label: Show Expert Config + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: Networking and Services + label: Host-Networking (Complicated) + schema: + type: boolean + default: false + - variable: externalInterfaces + description: Add External Interfaces + label: Add external Interfaces + group: Networking + schema: + type: list + items: + - variable: interfaceConfiguration + description: Interface Configuration + label: Interface Configuration + schema: + 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: + 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 + show_subquestions_if: static + subquestions: + - variable: staticIPConfigurations + label: Static IP Addresses + schema: + type: list + items: + - variable: staticIP + label: Static IP + schema: + type: ipaddr + cidr: true + - variable: staticRoutes + label: Static Routes + schema: + type: list + 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 + - 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: setPermissions + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "hostPath"]] + 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: 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: setPermissions + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "hostPath"]] + 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: 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: [] + 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: tls + label: TLS-Settings + schema: + type: list + 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: scaleCert + label: Select TrueNAS SCALE Certificate + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: (Advanced) Traefik Entrypoint + description: Entrypoint used by Traefik when using Traefik as Ingress Provider + schema: + type: string + default: websecure + required: true + - variable: ingressClassName + label: (Advanced/Optional) IngressClass Name + 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: ingressList + label: Add Manual Custom Ingresses + group: Ingress + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: Custom Ingress + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Ingress + schema: + type: boolean + default: true + hidden: true + - variable: name + label: Name + schema: + type: string + default: "" + - variable: ingressClassName + label: IngressClass Name + schema: + type: string + default: "" + - variable: hosts + label: Hosts + schema: + type: list + default: [] + items: + - variable: hostEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: host + label: HostName + schema: + type: string + default: "" + required: true + - variable: paths + label: Paths + schema: + type: list + default: [] + items: + - variable: pathEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: path + label: Path + schema: + type: string + required: true + default: "/" + - variable: pathType + label: Path Type + schema: + type: string + required: true + default: Prefix + - variable: 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: tls + label: TLS-Settings + schema: + type: list + 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: scaleCert + label: Select TrueNAS SCALE Certificate + schema: + type: int + $ref: + - "definitions/certificate" + - 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: security + label: Container Security Settings + group: Security and Permissions + schema: + type: dict + additional_attrs: true + attrs: + - variable: editsecurity + label: Change PUID / UMASK values + description: By enabling this you override default set values. + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - 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 + 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: "002" + - variable: advancedSecurity + label: Show Advanced Security Settings + group: Security and Permissions + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: Security Context + schema: + additional_attrs: true + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + - variable: podSecurityContext + group: Security and Permissions + label: Pod Security Context + schema: + additional_attrs: true + type: dict + attrs: + - 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 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - 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 + - 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/docs/manual/SCALE%20Apps/indepth/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/docs/manual/SCALE%20Apps/indepth/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/docs/manual/SCALE%20Apps/indepth/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/docs/manual/SCALE%20Apps/indepth/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: hostPath + 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" + # Specify GPU configuration + - variable: scaleGPU + label: GPU Configuration + group: Resources and Devices + schema: + type: dict + $ref: + - "definitions/gpuConfiguration" + attrs: [] + - 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: git + label: Git Settings + schema: + additional_attrs: true + type: dict + attrs: + - variable: deployKey + description: Raw SSH Private Key + label: Deploy Key + schema: + type: string + - variable: deployKeyBase64 + description: Base64-encoded SSH private key. When both variables are set, the raw SSH key takes precedence + label: Deploy Key Base64 + schema: + type: string + - 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: 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: 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: nodePort + description: Leave Empty to Disable + label: nodePort DEPRECATED + schema: + type: int + default: 36107 + - 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: 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: openvpn + description: OpenVPN + - value: wireguard + description: Wireguard + - value: tailscale + description: Tailscale + - variable: openvpn + label: OpenVPN Settings + schema: + 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 + default: "" + required: true + - variable: tailscale + label: Tailscale Settings + schema: + 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: dict + show_if: [["type", "!=", "disabled"]] + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: true + hidden: true + - variable: type + label: Type + schema: + type: string + default: hostPath + hidden: true + - variable: hostPathType + label: hostPathType + schema: + type: string + default: File + hidden: true + - variable: noMount + label: noMount + schema: + type: boolean + default: true + hidden: true + - variable: hostPath + label: Full Path to File + description: "Path to your local VPN config file for example: /mnt/tank/vpn.conf or /mnt/tank/vpn.ovpn" + schema: + type: string + 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 + - 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/minecraft-java/2.0.4/templates/common.yaml b/stable/grocy/12.0.5/templates/common.yaml similarity index 100% rename from stable/minecraft-java/2.0.4/templates/common.yaml rename to stable/grocy/12.0.5/templates/common.yaml diff --git a/stable/logitech-media-server/5.0.5/values.yaml b/stable/grocy/12.0.5/values.yaml similarity index 100% rename from stable/logitech-media-server/5.0.5/values.yaml rename to stable/grocy/12.0.5/values.yaml diff --git a/stable/jackett/12.0.18/CHANGELOG.md b/stable/jackett/12.0.18/CHANGELOG.md new file mode 100644 index 00000000000..6ff49b22c08 --- /dev/null +++ b/stable/jackett/12.0.18/CHANGELOG.md @@ -0,0 +1,99 @@ +**Important:** +*for the complete changelog, please refer to the website* + + + + +## [jackett-12.0.0](https://github.com/truecharts/charts/compare/jackett-11.1.0...jackett-12.0.0) (2022-11-10) + +### Chore + +- Major Change to GUI + + + + +## [jackett-11.1.0](https://github.com/truecharts/charts/compare/jackett-11.0.130...jackett-11.1.0) (2022-11-10) + + + + +## [jackett-11.0.130](https://github.com/truecharts/charts/compare/jackett-11.0.125...jackett-11.0.130) (2022-11-10) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - update helm general non-major ([#4342](https://github.com/truecharts/charts/issues/4342)) + - update docker general non-major ([#4343](https://github.com/truecharts/charts/issues/4343)) + - update helm general non-major ([#4349](https://github.com/truecharts/charts/issues/4349)) + - update docker general non-major ([#4355](https://github.com/truecharts/charts/issues/4355)) + - update helm general non-major ([#4329](https://github.com/truecharts/charts/issues/4329)) + - update docker general non-major ([#4366](https://github.com/truecharts/charts/issues/4366)) + + + + +## [jackett-11.0.129](https://github.com/truecharts/charts/compare/jackett-11.0.125...jackett-11.0.129) (2022-11-09) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - update docker general non-major ([#4355](https://github.com/truecharts/charts/issues/4355)) + - update helm general non-major ([#4342](https://github.com/truecharts/charts/issues/4342)) + - update docker general non-major ([#4343](https://github.com/truecharts/charts/issues/4343)) + - update helm general non-major ([#4349](https://github.com/truecharts/charts/issues/4349)) + - update helm general non-major ([#4329](https://github.com/truecharts/charts/issues/4329)) + + + + +## [jackett-11.0.128](https://github.com/truecharts/charts/compare/jackett-11.0.125...jackett-11.0.128) (2022-11-08) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - update helm general non-major ([#4342](https://github.com/truecharts/charts/issues/4342)) + - update docker general non-major ([#4343](https://github.com/truecharts/charts/issues/4343)) + - update helm general non-major ([#4349](https://github.com/truecharts/charts/issues/4349)) + - update helm general non-major ([#4329](https://github.com/truecharts/charts/issues/4329)) + + + + +## [jackett-11.0.127](https://github.com/truecharts/charts/compare/jackett-11.0.125...jackett-11.0.127) (2022-11-08) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - update helm general non-major ([#4342](https://github.com/truecharts/charts/issues/4342)) + - update docker general non-major ([#4343](https://github.com/truecharts/charts/issues/4343)) + - update helm general non-major ([#4329](https://github.com/truecharts/charts/issues/4329)) + + + + +## [jackett-11.0.127](https://github.com/truecharts/charts/compare/jackett-11.0.125...jackett-11.0.127) (2022-11-08) + +### Chore diff --git a/stable/jackett/12.0.18/Chart.yaml b/stable/jackett/12.0.18/Chart.yaml new file mode 100644 index 00000000000..d94f4f74fac --- /dev/null +++ b/stable/jackett/12.0.18/Chart.yaml @@ -0,0 +1,31 @@ +apiVersion: v2 +appVersion: "0.20.2244" +dependencies: + - name: common + repository: https://library-charts.truecharts.org + version: 10.9.7 +deprecated: false +description: API Support for your favorite torrent trackers. +home: https://truecharts.org/docs/charts/stable/jackett +icon: https://truecharts.org/img/hotlink-ok/chart-icons/jackett.png +keywords: + - jackett + - torrent + - usenet +kubeVersion: ">=1.16.0-0" +maintainers: + - email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +name: jackett +sources: + - https://github.com/truecharts/charts/tree/master/charts/stable/jackett + - https://github.com/Jackett/Jackett +type: application +version: 12.0.18 +annotations: + truecharts.org/catagories: | + - media + - test + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/stable/jackett/12.0.18/README.md b/stable/jackett/12.0.18/README.md new file mode 100644 index 00000000000..0dcb4b7fc0d --- /dev/null +++ b/stable/jackett/12.0.18/README.md @@ -0,0 +1,106 @@ +# jackett + +API Support for your favorite torrent trackers. + +TrueCharts can be installed as both *normal* Helm Charts or as Apps on TrueNAS SCALE. + +This readme is just an automatically generated general guide on installing our Helm Charts and Apps. +For more information, please click here: [jackett](https://truecharts.org/docs/charts/stable/jackett) + +**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)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://library-charts.truecharts.org | common | 10.9.4 | + +## Installing the Chart + +### TrueNAS SCALE + +To install this Chart on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/docs/manual/SCALE%20Apps/Installing-an-App). + +### Helm + +To install the chart with the release name `jackett` + +```console +helm repo add TrueCharts https://charts.truecharts.org +helm repo update +helm install jackett TrueCharts/jackett +``` + +## Uninstall + +### TrueNAS SCALE + +**Upgrading, Rolling Back and Uninstalling the Chart** + +To upgrade, rollback or delete this Chart from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/docs/manual/SCALE%20Apps/Upgrade-rollback-delete-an-App). + +### Helm + +To uninstall the `jackett` deployment + +```console +helm uninstall jackett +``` + +## Configuration + +### Helm + +#### Available Settings + +Read through the values.yaml file. It has several commented out suggested values. +Other values may be used from the [values.yaml](https://github.com/truecharts/library-charts/tree/main/charts/stable/common/values.yaml) from the [common library](https://github.com/truecharts/library-charts/tree/main/charts/common). + +#### Configure using the command line + +Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. + +```console +helm install jackett \ + --set env.TZ="America/New York" \ + TrueCharts/jackett +``` + +#### Configure using a yaml file + +Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. + +```console +helm install jackett TrueCharts/jackett -f values.yaml +``` + +#### Connecting to other charts + +If you need to connect this Chart to other Charts on TrueNAS SCALE, please refer to our [Linking Charts Internally](https://truecharts.org/docs/manual/SCALE%20Apps/linking-apps) quick-start guide. + +## Support + +- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/docs/manual/SCALE%20Apps/Important-MUST-READ). +- See the [Website](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/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/jackett/12.0.18/app-changelog.md b/stable/jackett/12.0.18/app-changelog.md new file mode 100644 index 00000000000..8a8a9a74970 --- /dev/null +++ b/stable/jackett/12.0.18/app-changelog.md @@ -0,0 +1,9 @@ + + +## [jackett-12.0.18](https://github.com/truecharts/charts/compare/jackett-12.0.17...jackett-12.0.18) (2022-11-14) + +### Chore + +- update docker general non-major ([#4414](https://github.com/truecharts/charts/issues/4414)) + + \ No newline at end of file diff --git a/stable/jackett/12.0.18/app-readme.md b/stable/jackett/12.0.18/app-readme.md new file mode 100644 index 00000000000..94165e2dadb --- /dev/null +++ b/stable/jackett/12.0.18/app-readme.md @@ -0,0 +1,8 @@ +API Support for your favorite torrent trackers. + +This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/docs/charts/stable/jackett](https://truecharts.org/docs/charts/stable/jackett) + +--- + +TrueCharts can only exist due to the incredible effort of our staff. +Please consider making a [donation](https://truecharts.org/docs/about/sponsor) or contributing back to the project any way you can! diff --git a/stable/medusa/4.0.4/charts/common-10.9.7.tgz b/stable/jackett/12.0.18/charts/common-10.9.7.tgz similarity index 100% rename from stable/medusa/4.0.4/charts/common-10.9.7.tgz rename to stable/jackett/12.0.18/charts/common-10.9.7.tgz diff --git a/stable/jackett/12.0.18/ix_values.yaml b/stable/jackett/12.0.18/ix_values.yaml new file mode 100644 index 00000000000..df66e60cc57 --- /dev/null +++ b/stable/jackett/12.0.18/ix_values.yaml @@ -0,0 +1,33 @@ +image: + repository: tccr.io/truecharts/jackett + pullPolicy: IfNotPresent + tag: 0.20.2244@sha256:e8f810c3434e87169403a03549c94cda55d724f0e700c379b8f1314853dfb181 + +securityContext: + readOnlyRootFilesystem: false + +service: + main: + ports: + main: + protocol: HTTP + targetPort: 9117 + port: 9117 + +probes: + liveness: + path: "/UI/Login" + + readiness: + path: "/UI/Login" + + startup: + path: "/UI/Login" + +persistence: + config: + enabled: true + mountPath: "/config" + +portal: + enabled: true diff --git a/stable/jackett/12.0.18/questions.yaml b/stable/jackett/12.0.18/questions.yaml new file mode 100644 index 00000000000..db19f3150de --- /dev/null +++ b/stable/jackett/12.0.18/questions.yaml @@ -0,0 +1,1829 @@ +groups: + - name: Container Image + description: Image to be used for container + - name: General Settings + description: General Deployment 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: VPN + description: VPN + - name: Addons + description: Addon Configuration + - name: Advanced + description: Advanced Configuration + - name: Documentation + description: Documentation +portals: + open: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: global + label: Global Settings + group: "General Settings" + schema: + type: dict + hidden: true + attrs: + - variable: isSCALE + label: Flag this is SCALE + schema: + type: boolean + default: true + hidden: true + - variable: controller + group: "General Settings" + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: replicas + description: Number of desired pod replicas + label: Desired Replicas + schema: + type: int + required: true + default: 1 + - variable: customextraargs + group: "General Settings" + label: "Extra Args" + description: "Do not click this unless you know what you are doing" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: extraArgs + label: Extra Args + schema: + type: list + default: [] + items: + - variable: arg + label: Arg + schema: + type: string + - variable: TZ + label: Timezone + group: "General Settings" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - 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..." + group: "General Settings" + 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: 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) + - 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: 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: 9117 + required: true + - variable: serviceexpert + group: Networking and Services + label: Show Expert Config + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: Networking and Services + label: Host-Networking (Complicated) + schema: + type: boolean + default: false + - variable: externalInterfaces + description: Add External Interfaces + label: Add external Interfaces + group: Networking + schema: + type: list + items: + - variable: interfaceConfiguration + description: Interface Configuration + label: Interface Configuration + schema: + 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: + 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 + show_subquestions_if: static + subquestions: + - variable: staticIPConfigurations + label: Static IP Addresses + schema: + type: list + items: + - variable: staticIP + label: Static IP + schema: + type: ipaddr + cidr: true + - variable: staticRoutes + label: Static Routes + schema: + type: list + 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 + - 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: setPermissions + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "hostPath"]] + 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: 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: setPermissions + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "hostPath"]] + 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: 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: [] + 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: tls + label: TLS-Settings + schema: + type: list + 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: scaleCert + label: Select TrueNAS SCALE Certificate + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: (Advanced) Traefik Entrypoint + description: Entrypoint used by Traefik when using Traefik as Ingress Provider + schema: + type: string + default: websecure + required: true + - variable: ingressClassName + label: (Advanced/Optional) IngressClass Name + 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: ingressList + label: Add Manual Custom Ingresses + group: Ingress + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: Custom Ingress + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Ingress + schema: + type: boolean + default: true + hidden: true + - variable: name + label: Name + schema: + type: string + default: "" + - variable: ingressClassName + label: IngressClass Name + schema: + type: string + default: "" + - variable: hosts + label: Hosts + schema: + type: list + default: [] + items: + - variable: hostEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: host + label: HostName + schema: + type: string + default: "" + required: true + - variable: paths + label: Paths + schema: + type: list + default: [] + items: + - variable: pathEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: path + label: Path + schema: + type: string + required: true + default: "/" + - variable: pathType + label: Path Type + schema: + type: string + required: true + default: Prefix + - variable: 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: tls + label: TLS-Settings + schema: + type: list + 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: scaleCert + label: Select TrueNAS SCALE Certificate + schema: + type: int + $ref: + - "definitions/certificate" + - 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: security + label: Container Security Settings + group: Security and Permissions + schema: + type: dict + additional_attrs: true + attrs: + - variable: editsecurity + label: Change PUID / UMASK values + description: By enabling this you override default set values. + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - 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 + 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: "002" + - variable: advancedSecurity + label: Show Advanced Security Settings + group: Security and Permissions + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: Security Context + schema: + additional_attrs: true + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: podSecurityContext + group: Security and Permissions + label: Pod Security Context + schema: + additional_attrs: true + type: dict + attrs: + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: "The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - 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 + - 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/docs/manual/SCALE%20Apps/indepth/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/docs/manual/SCALE%20Apps/indepth/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/docs/manual/SCALE%20Apps/indepth/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/docs/manual/SCALE%20Apps/indepth/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: hostPath + 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" + # Specify GPU configuration + - variable: scaleGPU + label: GPU Configuration + group: Resources and Devices + schema: + type: dict + $ref: + - "definitions/gpuConfiguration" + attrs: [] + - 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: git + label: Git Settings + schema: + additional_attrs: true + type: dict + attrs: + - variable: deployKey + description: Raw SSH Private Key + label: Deploy Key + schema: + type: string + - variable: deployKeyBase64 + description: Base64-encoded SSH private key. When both variables are set, the raw SSH key takes precedence + label: Deploy Key Base64 + schema: + type: string + - 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: 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: 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: nodePort + description: Leave Empty to Disable + label: nodePort DEPRECATED + schema: + type: int + default: 36107 + - 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: 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: openvpn + description: OpenVPN + - value: wireguard + description: Wireguard + - value: tailscale + description: Tailscale + - variable: openvpn + label: OpenVPN Settings + schema: + 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 + default: "" + required: true + - variable: tailscale + label: Tailscale Settings + schema: + 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: dict + show_if: [["type", "!=", "disabled"]] + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: true + hidden: true + - variable: type + label: Type + schema: + type: string + default: hostPath + hidden: true + - variable: hostPathType + label: hostPathType + schema: + type: string + default: File + hidden: true + - variable: noMount + label: noMount + schema: + type: boolean + default: true + hidden: true + - variable: hostPath + label: Full Path to File + description: "Path to your local VPN config file for example: /mnt/tank/vpn.conf or /mnt/tank/vpn.ovpn" + schema: + type: string + 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 + - 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/ntfy/3.0.4/templates/common.yaml b/stable/jackett/12.0.18/templates/common.yaml similarity index 100% rename from stable/ntfy/3.0.4/templates/common.yaml rename to stable/jackett/12.0.18/templates/common.yaml diff --git a/stable/medusa/4.0.4/values.yaml b/stable/jackett/12.0.18/values.yaml similarity index 100% rename from stable/medusa/4.0.4/values.yaml rename to stable/jackett/12.0.18/values.yaml diff --git a/stable/koel/5.0.1/app-changelog.md b/stable/koel/5.0.1/app-changelog.md deleted file mode 100644 index ba5cac32929..00000000000 --- a/stable/koel/5.0.1/app-changelog.md +++ /dev/null @@ -1,9 +0,0 @@ - - -## [koel-5.0.1](https://github.com/truecharts/charts/compare/koel-5.0.0...koel-5.0.1) (2022-11-13) - -### Chore - -- update helm general non-major ([#4404](https://github.com/truecharts/charts/issues/4404)) - - \ No newline at end of file diff --git a/stable/koel/5.0.1/CHANGELOG.md b/stable/koel/5.0.2/CHANGELOG.md similarity index 100% rename from stable/koel/5.0.1/CHANGELOG.md rename to stable/koel/5.0.2/CHANGELOG.md diff --git a/stable/koel/5.0.1/Chart.yaml b/stable/koel/5.0.2/Chart.yaml similarity index 98% rename from stable/koel/5.0.1/Chart.yaml rename to stable/koel/5.0.2/Chart.yaml index 8a32a6cffe0..e451d9b8a97 100644 --- a/stable/koel/5.0.1/Chart.yaml +++ b/stable/koel/5.0.2/Chart.yaml @@ -26,7 +26,7 @@ sources: - https://github.com/koel/docker - https://hub.docker.com/r/phanan/koel - https://github.com/koel/koel -version: 5.0.1 +version: 5.0.2 annotations: truecharts.org/catagories: | - media diff --git a/stable/koel/5.0.1/README.md b/stable/koel/5.0.2/README.md similarity index 100% rename from stable/koel/5.0.1/README.md rename to stable/koel/5.0.2/README.md diff --git a/stable/koel/5.0.2/app-changelog.md b/stable/koel/5.0.2/app-changelog.md new file mode 100644 index 00000000000..6999763909d --- /dev/null +++ b/stable/koel/5.0.2/app-changelog.md @@ -0,0 +1,9 @@ + + +## [koel-5.0.2](https://github.com/truecharts/charts/compare/koel-5.0.1...koel-5.0.2) (2022-11-14) + +### Chore + +- update docker general non-major ([#4414](https://github.com/truecharts/charts/issues/4414)) + + \ No newline at end of file diff --git a/stable/koel/5.0.1/app-readme.md b/stable/koel/5.0.2/app-readme.md similarity index 100% rename from stable/koel/5.0.1/app-readme.md rename to stable/koel/5.0.2/app-readme.md diff --git a/stable/minecraft-java/2.0.4/charts/common-10.9.7.tgz b/stable/koel/5.0.2/charts/common-10.9.7.tgz similarity index 100% rename from stable/minecraft-java/2.0.4/charts/common-10.9.7.tgz rename to stable/koel/5.0.2/charts/common-10.9.7.tgz diff --git a/stable/koel/5.0.1/charts/mariadb-4.0.6.tgz b/stable/koel/5.0.2/charts/mariadb-4.0.6.tgz similarity index 100% rename from stable/koel/5.0.1/charts/mariadb-4.0.6.tgz rename to stable/koel/5.0.2/charts/mariadb-4.0.6.tgz diff --git a/stable/koel/5.0.1/ix_values.yaml b/stable/koel/5.0.2/ix_values.yaml similarity index 96% rename from stable/koel/5.0.1/ix_values.yaml rename to stable/koel/5.0.2/ix_values.yaml index 3c15c0c4de2..baa8f171813 100644 --- a/stable/koel/5.0.1/ix_values.yaml +++ b/stable/koel/5.0.2/ix_values.yaml @@ -1,6 +1,6 @@ image: repository: tccr.io/truecharts/koel - tag: latest@sha256:c3e26776f33e0ea40644ee4bc159b8bd1daa44bd69c84610ddb38c7178e5e497 + tag: latest@sha256:4fa89bba146f2bedc2ae3284625335e13c8f217198a8c7aefb1989548c8f8cf6 pullPolicy: IfNotPresent securityContext: diff --git a/stable/koel/5.0.1/questions.yaml b/stable/koel/5.0.2/questions.yaml similarity index 100% rename from stable/koel/5.0.1/questions.yaml rename to stable/koel/5.0.2/questions.yaml diff --git a/stable/koel/5.0.1/templates/_secrets.tpl b/stable/koel/5.0.2/templates/_secrets.tpl similarity index 100% rename from stable/koel/5.0.1/templates/_secrets.tpl rename to stable/koel/5.0.2/templates/_secrets.tpl diff --git a/stable/koel/5.0.1/templates/common.yaml b/stable/koel/5.0.2/templates/common.yaml similarity index 100% rename from stable/koel/5.0.1/templates/common.yaml rename to stable/koel/5.0.2/templates/common.yaml diff --git a/stable/minecraft-java/2.0.4/values.yaml b/stable/koel/5.0.2/values.yaml similarity index 100% rename from stable/minecraft-java/2.0.4/values.yaml rename to stable/koel/5.0.2/values.yaml diff --git a/stable/logitech-media-server/5.0.5/app-changelog.md b/stable/logitech-media-server/5.0.5/app-changelog.md deleted file mode 100644 index 1a234ae5ab9..00000000000 --- a/stable/logitech-media-server/5.0.5/app-changelog.md +++ /dev/null @@ -1,9 +0,0 @@ - - -## [logitech-media-server-5.0.5](https://github.com/truecharts/charts/compare/logitech-media-server-5.0.4...logitech-media-server-5.0.5) (2022-11-13) - -### Chore - -- update docker general non-major ([#4398](https://github.com/truecharts/charts/issues/4398)) - - \ No newline at end of file diff --git a/stable/logitech-media-server/5.0.5/CHANGELOG.md b/stable/logitech-media-server/5.0.6/CHANGELOG.md similarity index 100% rename from stable/logitech-media-server/5.0.5/CHANGELOG.md rename to stable/logitech-media-server/5.0.6/CHANGELOG.md diff --git a/stable/logitech-media-server/5.0.5/Chart.yaml b/stable/logitech-media-server/5.0.6/Chart.yaml similarity index 98% rename from stable/logitech-media-server/5.0.5/Chart.yaml rename to stable/logitech-media-server/5.0.6/Chart.yaml index 02736108938..3106348c83d 100644 --- a/stable/logitech-media-server/5.0.5/Chart.yaml +++ b/stable/logitech-media-server/5.0.6/Chart.yaml @@ -24,7 +24,7 @@ sources: - https://github.com/Logitech/slimserver - https://hub.docker.com/r/lmscommunity/logitechmediaserver type: application -version: 5.0.5 +version: 5.0.6 annotations: truecharts.org/catagories: | - media diff --git a/stable/logitech-media-server/5.0.5/README.md b/stable/logitech-media-server/5.0.6/README.md similarity index 100% rename from stable/logitech-media-server/5.0.5/README.md rename to stable/logitech-media-server/5.0.6/README.md diff --git a/stable/logitech-media-server/5.0.6/app-changelog.md b/stable/logitech-media-server/5.0.6/app-changelog.md new file mode 100644 index 00000000000..bf5baaf9419 --- /dev/null +++ b/stable/logitech-media-server/5.0.6/app-changelog.md @@ -0,0 +1,9 @@ + + +## [logitech-media-server-5.0.6](https://github.com/truecharts/charts/compare/logitech-media-server-5.0.5...logitech-media-server-5.0.6) (2022-11-14) + +### Chore + +- update docker general non-major ([#4414](https://github.com/truecharts/charts/issues/4414)) + + \ No newline at end of file diff --git a/stable/logitech-media-server/5.0.5/app-readme.md b/stable/logitech-media-server/5.0.6/app-readme.md similarity index 100% rename from stable/logitech-media-server/5.0.5/app-readme.md rename to stable/logitech-media-server/5.0.6/app-readme.md diff --git a/stable/ntfy/3.0.4/charts/common-10.9.7.tgz b/stable/logitech-media-server/5.0.6/charts/common-10.9.7.tgz similarity index 100% rename from stable/ntfy/3.0.4/charts/common-10.9.7.tgz rename to stable/logitech-media-server/5.0.6/charts/common-10.9.7.tgz diff --git a/stable/logitech-media-server/5.0.5/ix_values.yaml b/stable/logitech-media-server/5.0.6/ix_values.yaml similarity index 95% rename from stable/logitech-media-server/5.0.5/ix_values.yaml rename to stable/logitech-media-server/5.0.6/ix_values.yaml index 83b29c59c45..63971a5c298 100644 --- a/stable/logitech-media-server/5.0.5/ix_values.yaml +++ b/stable/logitech-media-server/5.0.6/ix_values.yaml @@ -1,7 +1,7 @@ image: repository: tccr.io/truecharts/logitechmediaserver pullPolicy: IfNotPresent - tag: 8.4.0@sha256:91562ab24646b3552b771c1ec4d957911959bead537cd097254880807c6828db + tag: 8.4.0@sha256:d5d79400df8c277a9d2fe558eaac8e737fce1925daefccc789b274525311eca1 env: # Permissions Settings HTTP_PORT: "{{ .Values.service.main.ports.main.port }}" diff --git a/stable/logitech-media-server/5.0.5/questions.yaml b/stable/logitech-media-server/5.0.6/questions.yaml similarity index 100% rename from stable/logitech-media-server/5.0.5/questions.yaml rename to stable/logitech-media-server/5.0.6/questions.yaml diff --git a/stable/prowlarr/7.0.4/templates/common.yaml b/stable/logitech-media-server/5.0.6/templates/common.yaml similarity index 100% rename from stable/prowlarr/7.0.4/templates/common.yaml rename to stable/logitech-media-server/5.0.6/templates/common.yaml diff --git a/stable/ntfy/3.0.4/values.yaml b/stable/logitech-media-server/5.0.6/values.yaml similarity index 100% rename from stable/ntfy/3.0.4/values.yaml rename to stable/logitech-media-server/5.0.6/values.yaml diff --git a/stable/medusa/4.0.4/app-changelog.md b/stable/medusa/4.0.4/app-changelog.md deleted file mode 100644 index 290543fcd96..00000000000 --- a/stable/medusa/4.0.4/app-changelog.md +++ /dev/null @@ -1,9 +0,0 @@ - - -## [medusa-4.0.4](https://github.com/truecharts/charts/compare/medusa-4.0.3...medusa-4.0.4) (2022-11-12) - -### Chore - -- update helm general non-major ([#4395](https://github.com/truecharts/charts/issues/4395)) - - \ No newline at end of file diff --git a/stable/medusa/4.0.4/CHANGELOG.md b/stable/medusa/4.0.5/CHANGELOG.md similarity index 100% rename from stable/medusa/4.0.4/CHANGELOG.md rename to stable/medusa/4.0.5/CHANGELOG.md diff --git a/stable/medusa/4.0.4/Chart.yaml b/stable/medusa/4.0.5/Chart.yaml similarity index 98% rename from stable/medusa/4.0.4/Chart.yaml rename to stable/medusa/4.0.5/Chart.yaml index c5dbf669dca..0e0ad0403ed 100644 --- a/stable/medusa/4.0.4/Chart.yaml +++ b/stable/medusa/4.0.5/Chart.yaml @@ -25,7 +25,7 @@ sources: - https://github.com/linuxserver/docker-medusa - https://pymedusa.com/ type: application -version: 4.0.4 +version: 4.0.5 annotations: truecharts.org/catagories: | - media diff --git a/stable/medusa/4.0.4/README.md b/stable/medusa/4.0.5/README.md similarity index 100% rename from stable/medusa/4.0.4/README.md rename to stable/medusa/4.0.5/README.md diff --git a/stable/medusa/4.0.5/app-changelog.md b/stable/medusa/4.0.5/app-changelog.md new file mode 100644 index 00000000000..7848b43e9ff --- /dev/null +++ b/stable/medusa/4.0.5/app-changelog.md @@ -0,0 +1,9 @@ + + +## [medusa-4.0.5](https://github.com/truecharts/charts/compare/medusa-4.0.4...medusa-4.0.5) (2022-11-14) + +### Chore + +- update docker general non-major ([#4414](https://github.com/truecharts/charts/issues/4414)) + + \ No newline at end of file diff --git a/stable/medusa/4.0.4/app-readme.md b/stable/medusa/4.0.5/app-readme.md similarity index 100% rename from stable/medusa/4.0.4/app-readme.md rename to stable/medusa/4.0.5/app-readme.md diff --git a/stable/prowlarr/7.0.4/charts/common-10.9.7.tgz b/stable/medusa/4.0.5/charts/common-10.9.7.tgz similarity index 100% rename from stable/prowlarr/7.0.4/charts/common-10.9.7.tgz rename to stable/medusa/4.0.5/charts/common-10.9.7.tgz diff --git a/stable/medusa/4.0.4/ix_values.yaml b/stable/medusa/4.0.5/ix_values.yaml similarity index 82% rename from stable/medusa/4.0.4/ix_values.yaml rename to stable/medusa/4.0.5/ix_values.yaml index 121ca4dab71..5c55bbacc08 100644 --- a/stable/medusa/4.0.4/ix_values.yaml +++ b/stable/medusa/4.0.5/ix_values.yaml @@ -1,7 +1,7 @@ image: repository: tccr.io/truecharts/medusa pullPolicy: IfNotPresent - tag: 1.0.9@sha256:c828d9c1e1bddeb47e0e8b0b9bd470f9734dee8c17b0ce5fa588075b4d6abc36 + tag: 1.0.9@sha256:a55234e59f4ace11d8f4d3a351f6b63612552a1593630debda4c893e89e439d4 securityContext: readOnlyRootFilesystem: false diff --git a/stable/medusa/4.0.4/questions.yaml b/stable/medusa/4.0.5/questions.yaml similarity index 100% rename from stable/medusa/4.0.4/questions.yaml rename to stable/medusa/4.0.5/questions.yaml diff --git a/stable/medusa/4.0.4/templates/common.yaml b/stable/medusa/4.0.5/templates/common.yaml similarity index 100% rename from stable/medusa/4.0.4/templates/common.yaml rename to stable/medusa/4.0.5/templates/common.yaml diff --git a/stable/prowlarr/7.0.4/values.yaml b/stable/medusa/4.0.5/values.yaml similarity index 100% rename from stable/prowlarr/7.0.4/values.yaml rename to stable/medusa/4.0.5/values.yaml diff --git a/stable/minecraft-java/2.0.4/app-changelog.md b/stable/minecraft-java/2.0.4/app-changelog.md deleted file mode 100644 index b97f5ac8042..00000000000 --- a/stable/minecraft-java/2.0.4/app-changelog.md +++ /dev/null @@ -1,10 +0,0 @@ - - -## [minecraft-java-2.0.4](https://github.com/truecharts/charts/compare/minecraft-java-2.0.3...minecraft-java-2.0.4) (2022-11-12) - -### Chore - -- update helm general non-major ([#4395](https://github.com/truecharts/charts/issues/4395)) - - update docker general non-major - - \ No newline at end of file diff --git a/stable/minecraft-java/2.0.4/CHANGELOG.md b/stable/minecraft-java/2.0.5/CHANGELOG.md similarity index 100% rename from stable/minecraft-java/2.0.4/CHANGELOG.md rename to stable/minecraft-java/2.0.5/CHANGELOG.md diff --git a/stable/minecraft-java/2.0.4/Chart.yaml b/stable/minecraft-java/2.0.5/Chart.yaml similarity index 95% rename from stable/minecraft-java/2.0.4/Chart.yaml rename to stable/minecraft-java/2.0.5/Chart.yaml index 01b237a5105..043e6a8e12b 100644 --- a/stable/minecraft-java/2.0.4/Chart.yaml +++ b/stable/minecraft-java/2.0.5/Chart.yaml @@ -1,5 +1,5 @@ apiVersion: v2 -appVersion: "2022.13.0" +appVersion: "2022.14.0" dependencies: - name: common repository: https://library-charts.truecharts.org @@ -21,7 +21,7 @@ sources: - https://github.com/itzg/docker-minecraft-server - https://hub.docker.com/r/itzg/minecraft-server type: application -version: 2.0.4 +version: 2.0.5 annotations: truecharts.org/catagories: | - games diff --git a/stable/minecraft-java/2.0.4/README.md b/stable/minecraft-java/2.0.5/README.md similarity index 100% rename from stable/minecraft-java/2.0.4/README.md rename to stable/minecraft-java/2.0.5/README.md diff --git a/stable/minecraft-java/2.0.5/app-changelog.md b/stable/minecraft-java/2.0.5/app-changelog.md new file mode 100644 index 00000000000..e752635ab8c --- /dev/null +++ b/stable/minecraft-java/2.0.5/app-changelog.md @@ -0,0 +1,9 @@ + + +## [minecraft-java-2.0.5](https://github.com/truecharts/charts/compare/minecraft-java-2.0.4...minecraft-java-2.0.5) (2022-11-14) + +### Chore + +- update docker general non-major ([#4414](https://github.com/truecharts/charts/issues/4414)) + + \ No newline at end of file diff --git a/stable/minecraft-java/2.0.4/app-readme.md b/stable/minecraft-java/2.0.5/app-readme.md similarity index 100% rename from stable/minecraft-java/2.0.4/app-readme.md rename to stable/minecraft-java/2.0.5/app-readme.md diff --git a/stable/vikunja/5.0.1/charts/common-10.9.7.tgz b/stable/minecraft-java/2.0.5/charts/common-10.9.7.tgz similarity index 100% rename from stable/vikunja/5.0.1/charts/common-10.9.7.tgz rename to stable/minecraft-java/2.0.5/charts/common-10.9.7.tgz diff --git a/stable/minecraft-java/2.0.4/ix_values.yaml b/stable/minecraft-java/2.0.5/ix_values.yaml similarity index 91% rename from stable/minecraft-java/2.0.4/ix_values.yaml rename to stable/minecraft-java/2.0.5/ix_values.yaml index 7811cb8d8ac..0c031bfad8c 100644 --- a/stable/minecraft-java/2.0.4/ix_values.yaml +++ b/stable/minecraft-java/2.0.5/ix_values.yaml @@ -4,7 +4,7 @@ image: pullPolicy: Always j11Image: repository: tccr.io/truecharts/minecraft-java11 - tag: latest@sha256:6930933ba5875ba6bbea5790834c620c1b1b38ea113bb04a7d666b90b306746d + tag: latest@sha256:fc1b7e3e9af1a140f4664d2f2757a4199bc024c1dabd065bdabe811a1cc110a8 pullPolicy: Always j11j9Image: repository: tccr.io/truecharts/minecraft-java11-openj9 @@ -12,11 +12,11 @@ j11j9Image: pullPolicy: Always j8Image: repository: tccr.io/truecharts/minecraft-java8-openj9 - tag: latest@sha256:eaff8ace873fe4deb23d1666b44ba6eb0a57ed66fb7e9d1f6d8e27ced538c98d + tag: latest@sha256:ab7622ac7e78c33392b257da3a4f42f625415602a55906cec5897bb3c0316ef4 pullPolicy: Always j8j9Image: repository: tccr.io/truecharts/minecraft-java8-openj9 - tag: latest@sha256:eaff8ace873fe4deb23d1666b44ba6eb0a57ed66fb7e9d1f6d8e27ced538c98d + tag: latest@sha256:ab7622ac7e78c33392b257da3a4f42f625415602a55906cec5897bb3c0316ef4 pullPolicy: Always securityContext: diff --git a/stable/minecraft-java/2.0.4/questions.yaml b/stable/minecraft-java/2.0.5/questions.yaml similarity index 100% rename from stable/minecraft-java/2.0.4/questions.yaml rename to stable/minecraft-java/2.0.5/questions.yaml diff --git a/stable/website-shot/3.0.4/templates/common.yaml b/stable/minecraft-java/2.0.5/templates/common.yaml similarity index 100% rename from stable/website-shot/3.0.4/templates/common.yaml rename to stable/minecraft-java/2.0.5/templates/common.yaml diff --git a/stable/vikunja/5.0.1/values.yaml b/stable/minecraft-java/2.0.5/values.yaml similarity index 100% rename from stable/vikunja/5.0.1/values.yaml rename to stable/minecraft-java/2.0.5/values.yaml diff --git a/stable/ntfy/3.0.4/app-changelog.md b/stable/ntfy/3.0.4/app-changelog.md deleted file mode 100644 index d1322796ca5..00000000000 --- a/stable/ntfy/3.0.4/app-changelog.md +++ /dev/null @@ -1,9 +0,0 @@ - - -## [ntfy-3.0.4](https://github.com/truecharts/charts/compare/ntfy-3.0.3...ntfy-3.0.4) (2022-11-12) - -### Chore - -- update helm general non-major ([#4395](https://github.com/truecharts/charts/issues/4395)) - - \ No newline at end of file diff --git a/stable/ntfy/3.0.4/CHANGELOG.md b/stable/ntfy/3.0.5/CHANGELOG.md similarity index 100% rename from stable/ntfy/3.0.4/CHANGELOG.md rename to stable/ntfy/3.0.5/CHANGELOG.md diff --git a/stable/ntfy/3.0.4/Chart.yaml b/stable/ntfy/3.0.5/Chart.yaml similarity index 95% rename from stable/ntfy/3.0.4/Chart.yaml rename to stable/ntfy/3.0.5/Chart.yaml index 5aef53bea17..14bf7aecab1 100644 --- a/stable/ntfy/3.0.4/Chart.yaml +++ b/stable/ntfy/3.0.5/Chart.yaml @@ -1,5 +1,5 @@ apiVersion: v2 -appVersion: "1.28.0" +appVersion: "1.29.0" dependencies: - name: common repository: https://library-charts.truecharts.org @@ -18,7 +18,7 @@ name: ntfy sources: - https://github.com/truecharts/charts/tree/master/charts/stable/ntfy - https://github.com/binwiederhier/ntfy/ -version: 3.0.4 +version: 3.0.5 annotations: truecharts.org/catagories: | - media diff --git a/stable/ntfy/3.0.4/README.md b/stable/ntfy/3.0.5/README.md similarity index 100% rename from stable/ntfy/3.0.4/README.md rename to stable/ntfy/3.0.5/README.md diff --git a/stable/ntfy/3.0.5/app-changelog.md b/stable/ntfy/3.0.5/app-changelog.md new file mode 100644 index 00000000000..d74552a0b0e --- /dev/null +++ b/stable/ntfy/3.0.5/app-changelog.md @@ -0,0 +1,9 @@ + + +## [ntfy-3.0.5](https://github.com/truecharts/charts/compare/ntfy-3.0.4...ntfy-3.0.5) (2022-11-14) + +### Chore + +- update docker general non-major ([#4414](https://github.com/truecharts/charts/issues/4414)) + + \ No newline at end of file diff --git a/stable/ntfy/3.0.4/app-readme.md b/stable/ntfy/3.0.5/app-readme.md similarity index 100% rename from stable/ntfy/3.0.4/app-readme.md rename to stable/ntfy/3.0.5/app-readme.md diff --git a/stable/website-shot/3.0.4/charts/common-10.9.7.tgz b/stable/ntfy/3.0.5/charts/common-10.9.7.tgz similarity index 100% rename from stable/website-shot/3.0.4/charts/common-10.9.7.tgz rename to stable/ntfy/3.0.5/charts/common-10.9.7.tgz diff --git a/stable/ntfy/3.0.4/ix_values.yaml b/stable/ntfy/3.0.5/ix_values.yaml similarity index 96% rename from stable/ntfy/3.0.4/ix_values.yaml rename to stable/ntfy/3.0.5/ix_values.yaml index 060fca55803..143bcf0cdc3 100644 --- a/stable/ntfy/3.0.4/ix_values.yaml +++ b/stable/ntfy/3.0.5/ix_values.yaml @@ -1,6 +1,6 @@ image: repository: tccr.io/truecharts/ntfy - tag: 1.28.0@sha256:63d2006310efa402a8c933f20b596268bb7518dba04fd3260845132b6befa898 + tag: 1.29.0@sha256:02f24696e88f25fcb72d9e77457789deb0fbe5288bbaaa79bdb51392156b4917 pullPolicy: IfNotPresent extraArgs: ["serve"] diff --git a/stable/ntfy/3.0.4/questions.yaml b/stable/ntfy/3.0.5/questions.yaml similarity index 100% rename from stable/ntfy/3.0.4/questions.yaml rename to stable/ntfy/3.0.5/questions.yaml diff --git a/stable/ntfy/3.0.5/templates/common.yaml b/stable/ntfy/3.0.5/templates/common.yaml new file mode 100644 index 00000000000..c1a366e1cf0 --- /dev/null +++ b/stable/ntfy/3.0.5/templates/common.yaml @@ -0,0 +1 @@ +{{ include "tc.common.loader.all" . }} diff --git a/stable/website-shot/3.0.4/values.yaml b/stable/ntfy/3.0.5/values.yaml similarity index 100% rename from stable/website-shot/3.0.4/values.yaml rename to stable/ntfy/3.0.5/values.yaml diff --git a/stable/photoprism/12.0.3/CHANGELOG.md b/stable/photoprism/12.0.3/CHANGELOG.md new file mode 100644 index 00000000000..d9e19b71930 --- /dev/null +++ b/stable/photoprism/12.0.3/CHANGELOG.md @@ -0,0 +1,99 @@ +**Important:** +*for the complete changelog, please refer to the website* + + + + +## [pgadmin-8.0.0](https://github.com/truecharts/charts/compare/pgadmin-7.0.45...pgadmin-8.0.0) (2022-11-10) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Major Change to GUI + - update helm general non-major ([#4342](https://github.com/truecharts/charts/issues/4342)) + - update helm general non-major ([#4349](https://github.com/truecharts/charts/issues/4349)) + - update helm general non-major ([#4329](https://github.com/truecharts/charts/issues/4329)) + + ### Fix + +- change container config label + + + + +## [pgadmin-7.0.48](https://github.com/truecharts/charts/compare/pgadmin-7.0.45...pgadmin-7.0.48) (2022-11-08) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - update helm general non-major ([#4342](https://github.com/truecharts/charts/issues/4342)) + - update helm general non-major ([#4349](https://github.com/truecharts/charts/issues/4349)) + - update helm general non-major ([#4329](https://github.com/truecharts/charts/issues/4329)) + + + + +## [pgadmin-7.0.47](https://github.com/truecharts/charts/compare/pgadmin-7.0.45...pgadmin-7.0.47) (2022-11-08) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - update helm general non-major ([#4342](https://github.com/truecharts/charts/issues/4342)) + - update helm general non-major ([#4329](https://github.com/truecharts/charts/issues/4329)) + + + + +## [pgadmin-7.0.47](https://github.com/truecharts/charts/compare/pgadmin-7.0.45...pgadmin-7.0.47) (2022-11-08) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - update helm general non-major ([#4342](https://github.com/truecharts/charts/issues/4342)) + - update helm general non-major ([#4329](https://github.com/truecharts/charts/issues/4329)) + + + + +## [pgadmin-7.0.47](https://github.com/truecharts/charts/compare/pgadmin-7.0.45...pgadmin-7.0.47) (2022-11-08) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - update helm general non-major ([#4342](https://github.com/truecharts/charts/issues/4342)) + - update helm general non-major ([#4329](https://github.com/truecharts/charts/issues/4329)) + + + + +## [pgadmin-7.0.46](https://github.com/truecharts/charts/compare/pgadmin-7.0.45...pgadmin-7.0.46) (2022-11-07) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - update helm general non-major ([#4329](https://github.com/truecharts/charts/issues/4329)) + + + + diff --git a/stable/photoprism/12.0.3/Chart.yaml b/stable/photoprism/12.0.3/Chart.yaml new file mode 100644 index 00000000000..6be13486b3c --- /dev/null +++ b/stable/photoprism/12.0.3/Chart.yaml @@ -0,0 +1,34 @@ +apiVersion: v2 +appVersion: "221105" +dependencies: + - name: common + repository: https://library-charts.truecharts.org + version: 10.9.7 + - condition: mariadb.enabled + name: mariadb + repository: https://charts.truecharts.org/ + version: 4.0.6 +description: "PhotoPrism® is a server-based application for browsing, organizing and sharing your personal photo collection" +home: https://truecharts.org/docs/charts/stable/photoprism +icon: https://truecharts.org/img/hotlink-ok/chart-icons/photoprism.png +keywords: + - photos + - photoprism + - pictures + - sharing +kubeVersion: ">=1.16.0-0" +maintainers: + - email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +name: photoprism +sources: + - https://github.com/truecharts/charts/tree/master/charts/stable/photoprism + - https://github.com/photoprism/photoprism + - https://hub.docker.com/r/photoprism/photoprism +version: 12.0.3 +annotations: + truecharts.org/catagories: | + - media + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/stable/photoprism/12.0.3/README.md b/stable/photoprism/12.0.3/README.md new file mode 100644 index 00000000000..3fd84234347 --- /dev/null +++ b/stable/photoprism/12.0.3/README.md @@ -0,0 +1,108 @@ +# photoprism + +PhotoPrism® is a server-based application for browsing, organizing and sharing your personal photo collection + +TrueCharts can be installed as both *normal* Helm Charts or as Apps on TrueNAS SCALE. + +This readme is just an automatically generated general guide on installing our Helm Charts and Apps. +For more information, please click here: [photoprism](https://truecharts.org/docs/charts/stable/photoprism) + +**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)** + +## Source Code + +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://charts.truecharts.org/ | mariadb | 3.0.119 | +| https://library-charts.truecharts.org | common | 10.9.4 | + +## Installing the Chart + +### TrueNAS SCALE + +To install this Chart on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/docs/manual/SCALE%20Apps/Installing-an-App). + +### Helm + +To install the chart with the release name `photoprism` + +```console +helm repo add TrueCharts https://charts.truecharts.org +helm repo update +helm install photoprism TrueCharts/photoprism +``` + +## Uninstall + +### TrueNAS SCALE + +**Upgrading, Rolling Back and Uninstalling the Chart** + +To upgrade, rollback or delete this Chart from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/docs/manual/SCALE%20Apps/Upgrade-rollback-delete-an-App). + +### Helm + +To uninstall the `photoprism` deployment + +```console +helm uninstall photoprism +``` + +## Configuration + +### Helm + +#### Available Settings + +Read through the values.yaml file. It has several commented out suggested values. +Other values may be used from the [values.yaml](https://github.com/truecharts/library-charts/tree/main/charts/stable/common/values.yaml) from the [common library](https://github.com/truecharts/library-charts/tree/main/charts/common). + +#### Configure using the command line + +Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. + +```console +helm install photoprism \ + --set env.TZ="America/New York" \ + TrueCharts/photoprism +``` + +#### Configure using a yaml file + +Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. + +```console +helm install photoprism TrueCharts/photoprism -f values.yaml +``` + +#### Connecting to other charts + +If you need to connect this Chart to other Charts on TrueNAS SCALE, please refer to our [Linking Charts Internally](https://truecharts.org/docs/manual/SCALE%20Apps/linking-apps) quick-start guide. + +## Support + +- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/docs/manual/SCALE%20Apps/Important-MUST-READ). +- See the [Website](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/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/photoprism/12.0.3/app-changelog.md b/stable/photoprism/12.0.3/app-changelog.md new file mode 100644 index 00000000000..e1ed01fc9aa --- /dev/null +++ b/stable/photoprism/12.0.3/app-changelog.md @@ -0,0 +1,9 @@ + + +## [photoprism-12.0.3](https://github.com/truecharts/charts/compare/photoprism-12.0.2...photoprism-12.0.3) (2022-11-14) + +### Chore + +- update docker general non-major ([#4414](https://github.com/truecharts/charts/issues/4414)) + + \ No newline at end of file diff --git a/stable/photoprism/12.0.3/app-readme.md b/stable/photoprism/12.0.3/app-readme.md new file mode 100644 index 00000000000..77a5ffc449a --- /dev/null +++ b/stable/photoprism/12.0.3/app-readme.md @@ -0,0 +1,8 @@ +PhotoPrism® is a server-based application for browsing, organizing and sharing your personal photo collection + +This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/docs/charts/stable/photoprism](https://truecharts.org/docs/charts/stable/photoprism) + +--- + +TrueCharts can only exist due to the incredible effort of our staff. +Please consider making a [donation](https://truecharts.org/docs/about/sponsor) or contributing back to the project any way you can! diff --git a/stable/whisparr/2.0.4/charts/common-10.9.7.tgz b/stable/photoprism/12.0.3/charts/common-10.9.7.tgz similarity index 100% rename from stable/whisparr/2.0.4/charts/common-10.9.7.tgz rename to stable/photoprism/12.0.3/charts/common-10.9.7.tgz diff --git a/stable/photoprism/12.0.3/charts/mariadb-4.0.6.tgz b/stable/photoprism/12.0.3/charts/mariadb-4.0.6.tgz new file mode 100644 index 0000000000000000000000000000000000000000..adeff09695684fde4c3278ce3d8127ef83345d12 GIT binary patch literal 60298 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 literal 0 HcmV?d00001 diff --git a/stable/photoprism/12.0.3/ix_values.yaml b/stable/photoprism/12.0.3/ix_values.yaml new file mode 100644 index 00000000000..b45a8036faf --- /dev/null +++ b/stable/photoprism/12.0.3/ix_values.yaml @@ -0,0 +1,61 @@ +image: + repository: tccr.io/truecharts/photoprism + tag: v221105@sha256:ed4f2994f2ffb7b3c3fbc43e3b677109b121ec7ca517b8eb2dc42fdbb1e13305 + pullPolicy: IfNotPresent + +securityContext: + readOnlyRootFilesystem: false + +secretEnv: + PHOTOPRISM_ADMIN_PASSWORD: "please-change" + +env: + HOME: "/photoprism" + PHOTOPRISM_ORIGINALS_PATH: "/photoprism/originals" + PHOTOPRISM_IMPORT_PATH: "/photoprism/import" + PHOTOPRISM_TEMP_PATH: "/photoprism/temp" + PHOTOPRISM_STORAGE_PATH: "/assets/storage" + PHOTOPRISM_SIDECAR_PATH: "/assets/sidecar" + PHOTOPRISM_CACHE_PATH: "/assets/cache" + PHOTOPRISM_CONFIG_PATH: "/assets/config" + PROTOPRISM_BACKUP_PATH: "/assets/backup" + PHOTOPRISM_PUBLIC: false + PHOTOPRISM_UID: "{{ .Values.podSecurityContext.runAsUser }}" + PHOTOPRISM_GID: "{{ .Values.podSecurityContext.runAsGroup }}" + PHOTOPRISM_UMASK: "{{ .Values.env.UMASK }}" + PHOTOPRISM_DATABASE_DRIVER: "mysql" + PHOTOPRISM_DATABASE_NAME: "photoprism" + PHOTOPRISM_DATABASE_USER: "photoprism" + PHOTOPRISM_DATABASE_SERVER: + secretKeyRef: + name: mariadbcreds + key: plainporthost + PHOTOPRISM_DATABASE_PASSWORD: + secretKeyRef: + name: mariadbcreds + key: mariadb-password + +service: + main: + ports: + main: + port: 2342 + targetPort: 2342 + +persistence: + storage: + enabled: true + mountPath: "/assets" + temp: + enabled: true + mountPath: "/photoprism/temp" + type: emptyDir + +mariadb: + enabled: true + mariadbUsername: photoprism + mariadbDatabase: photoprism + existingSecret: "mariadbcreds" + +portal: + enabled: true diff --git a/stable/photoprism/12.0.3/questions.yaml b/stable/photoprism/12.0.3/questions.yaml new file mode 100644 index 00000000000..f7e19084df6 --- /dev/null +++ b/stable/photoprism/12.0.3/questions.yaml @@ -0,0 +1,1869 @@ +groups: + - name: Container Image + description: Image to be used for container + - name: General Settings + description: General Deployment 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: VPN + description: VPN + - name: Addons + description: Addon Configuration + - name: Advanced + description: Advanced Configuration + - name: Documentation + description: Documentation +portals: + open: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: global + label: Global Settings + group: "General Settings" + schema: + type: dict + hidden: true + attrs: + - variable: isSCALE + label: Flag this is SCALE + schema: + type: boolean + default: true + hidden: true + - variable: controller + group: "General Settings" + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: replicas + description: Number of desired pod replicas + label: Desired Replicas + schema: + type: int + required: true + default: 1 + - variable: customextraargs + group: "General Settings" + label: "Extra Args" + description: "Do not click this unless you know what you are doing" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: extraArgs + label: Extra Args + schema: + type: list + default: [] + items: + - variable: arg + label: Arg + schema: + type: string + - variable: secretEnv + group: "App Configuration" + label: "Image Secrets" + schema: + additional_attrs: true + type: dict + attrs: + - variable: PHOTOPRISM_ADMIN_PASSWORD + label: "PHOTOPRISM_ADMIN_PASSWORD (First Install Only)" + description: "Initial admin password. **BE SURE TO CHANGE THIS!**" + schema: + type: string + required: true + private: true + default: "REPLACETHIS" + - variable: env + group: "App Configuration" + label: "Image Environment" + schema: + additional_attrs: true + type: dict + attrs: + - variable: PHOTOPRISM_ORIGINALS_PATH + label: "PHOTOPRISM_ORIGINALS_PATH" + description: "Photoprism originals path" + schema: + type: string + default: "/photoprism/originals" + - variable: PHOTOPRISM_IMPORT_PATH + label: "PHOTOPRISM_IMPORT_PATH" + description: "Photoprism import path" + schema: + type: string + default: "/photoprism/import" + - variable: PHOTOPRISM_PUBLIC + label: "PHOTOPRISM_PUBLIC" + description: "Disable authentication / password protection" + schema: + type: boolean + default: false + - variable: TZ + label: Timezone + group: "General Settings" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - 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..." + group: "General Settings" + 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: 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) + - 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: 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: 2342 + required: true + - variable: serviceexpert + group: Networking and Services + label: Show Expert Config + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: Networking and Services + label: Host-Networking (Complicated) + schema: + type: boolean + default: false + - variable: externalInterfaces + description: Add External Interfaces + label: Add external Interfaces + group: Networking + schema: + type: list + items: + - variable: interfaceConfiguration + description: Interface Configuration + label: Interface Configuration + schema: + 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: + 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 + show_subquestions_if: static + subquestions: + - variable: staticIPConfigurations + label: Static IP Addresses + schema: + type: list + items: + - variable: staticIP + label: Static IP + schema: + type: ipaddr + cidr: true + - variable: staticRoutes + label: Static Routes + schema: + type: list + 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: storage + label: "App 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: setPermissions + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "hostPath"]] + 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: 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: setPermissions + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "hostPath"]] + 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: 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: [] + 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: tls + label: TLS-Settings + schema: + type: list + 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: scaleCert + label: Select TrueNAS SCALE Certificate + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: (Advanced) Traefik Entrypoint + description: Entrypoint used by Traefik when using Traefik as Ingress Provider + schema: + type: string + default: websecure + required: true + - variable: ingressClassName + label: (Advanced/Optional) IngressClass Name + 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: ingressList + label: Add Manual Custom Ingresses + group: Ingress + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: Custom Ingress + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Ingress + schema: + type: boolean + default: true + hidden: true + - variable: name + label: Name + schema: + type: string + default: "" + - variable: ingressClassName + label: IngressClass Name + schema: + type: string + default: "" + - variable: hosts + label: Hosts + schema: + type: list + default: [] + items: + - variable: hostEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: host + label: HostName + schema: + type: string + default: "" + required: true + - variable: paths + label: Paths + schema: + type: list + default: [] + items: + - variable: pathEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: path + label: Path + schema: + type: string + required: true + default: "/" + - variable: pathType + label: Path Type + schema: + type: string + required: true + default: Prefix + - variable: 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: tls + label: TLS-Settings + schema: + type: list + 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: scaleCert + label: Select TrueNAS SCALE Certificate + schema: + type: int + $ref: + - "definitions/certificate" + - 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: security + label: Container Security Settings + group: Security and Permissions + schema: + type: dict + additional_attrs: true + attrs: + - variable: editsecurity + label: Change PUID / UMASK values + description: By enabling this you override default set values. + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - 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 + 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: "002" + - variable: advancedSecurity + label: Show Advanced Security Settings + group: Security and Permissions + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: Security Context + schema: + additional_attrs: true + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: podSecurityContext + group: Security and Permissions + label: Pod Security Context + schema: + additional_attrs: true + type: dict + attrs: + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: "The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - 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 + - 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/docs/manual/SCALE%20Apps/indepth/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/docs/manual/SCALE%20Apps/indepth/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/docs/manual/SCALE%20Apps/indepth/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/docs/manual/SCALE%20Apps/indepth/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: hostPath + 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" + # Specify GPU configuration + - variable: scaleGPU + label: GPU Configuration + group: Resources and Devices + schema: + type: dict + $ref: + - "definitions/gpuConfiguration" + attrs: [] + - 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: git + label: Git Settings + schema: + additional_attrs: true + type: dict + attrs: + - variable: deployKey + description: Raw SSH Private Key + label: Deploy Key + schema: + type: string + - variable: deployKeyBase64 + description: Base64-encoded SSH private key. When both variables are set, the raw SSH key takes precedence + label: Deploy Key Base64 + schema: + type: string + - 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: 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: 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: nodePort + description: Leave Empty to Disable + label: nodePort DEPRECATED + schema: + type: int + default: 36107 + - 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: 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: openvpn + description: OpenVPN + - value: wireguard + description: Wireguard + - value: tailscale + description: Tailscale + - variable: openvpn + label: OpenVPN Settings + schema: + 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 + default: "" + required: true + - variable: tailscale + label: Tailscale Settings + schema: + 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: dict + show_if: [["type", "!=", "disabled"]] + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: true + hidden: true + - variable: type + label: Type + schema: + type: string + default: hostPath + hidden: true + - variable: hostPathType + label: hostPathType + schema: + type: string + default: File + hidden: true + - variable: noMount + label: noMount + schema: + type: boolean + default: true + hidden: true + - variable: hostPath + label: Full Path to File + description: "Path to your local VPN config file for example: /mnt/tank/vpn.conf or /mnt/tank/vpn.ovpn" + schema: + type: string + 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 + - 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/photoprism/12.0.3/templates/common.yaml b/stable/photoprism/12.0.3/templates/common.yaml new file mode 100644 index 00000000000..c1a366e1cf0 --- /dev/null +++ b/stable/photoprism/12.0.3/templates/common.yaml @@ -0,0 +1 @@ +{{ include "tc.common.loader.all" . }} diff --git a/stable/whisparr/2.0.4/values.yaml b/stable/photoprism/12.0.3/values.yaml similarity index 100% rename from stable/whisparr/2.0.4/values.yaml rename to stable/photoprism/12.0.3/values.yaml diff --git a/stable/prowlarr/7.0.4/app-changelog.md b/stable/prowlarr/7.0.4/app-changelog.md deleted file mode 100644 index e83d6782402..00000000000 --- a/stable/prowlarr/7.0.4/app-changelog.md +++ /dev/null @@ -1,9 +0,0 @@ - - -## [prowlarr-7.0.4](https://github.com/truecharts/charts/compare/prowlarr-7.0.3...prowlarr-7.0.4) (2022-11-12) - -### Chore - -- update helm general non-major ([#4395](https://github.com/truecharts/charts/issues/4395)) - - \ No newline at end of file diff --git a/stable/prowlarr/7.0.4/CHANGELOG.md b/stable/prowlarr/7.0.5/CHANGELOG.md similarity index 100% rename from stable/prowlarr/7.0.4/CHANGELOG.md rename to stable/prowlarr/7.0.5/CHANGELOG.md diff --git a/stable/prowlarr/7.0.4/Chart.yaml b/stable/prowlarr/7.0.5/Chart.yaml similarity index 98% rename from stable/prowlarr/7.0.4/Chart.yaml rename to stable/prowlarr/7.0.5/Chart.yaml index a149224244e..4f3ce5891b9 100644 --- a/stable/prowlarr/7.0.4/Chart.yaml +++ b/stable/prowlarr/7.0.5/Chart.yaml @@ -21,7 +21,7 @@ sources: - https://github.com/truecharts/charts/tree/master/charts/stable/prowlarr - https://github.com/Prowlarr/Prowlarr - https://github.com/k8s-at-home/container-images -version: 7.0.4 +version: 7.0.5 annotations: truecharts.org/catagories: | - media diff --git a/stable/prowlarr/7.0.4/README.md b/stable/prowlarr/7.0.5/README.md similarity index 100% rename from stable/prowlarr/7.0.4/README.md rename to stable/prowlarr/7.0.5/README.md diff --git a/stable/prowlarr/7.0.5/app-changelog.md b/stable/prowlarr/7.0.5/app-changelog.md new file mode 100644 index 00000000000..0df8e1c1329 --- /dev/null +++ b/stable/prowlarr/7.0.5/app-changelog.md @@ -0,0 +1,9 @@ + + +## [prowlarr-7.0.5](https://github.com/truecharts/charts/compare/prowlarr-7.0.4...prowlarr-7.0.5) (2022-11-14) + +### Chore + +- update docker general non-major ([#4414](https://github.com/truecharts/charts/issues/4414)) + + \ No newline at end of file diff --git a/stable/prowlarr/7.0.4/app-readme.md b/stable/prowlarr/7.0.5/app-readme.md similarity index 100% rename from stable/prowlarr/7.0.4/app-readme.md rename to stable/prowlarr/7.0.5/app-readme.md diff --git a/stable/prowlarr/7.0.5/charts/common-10.9.7.tgz b/stable/prowlarr/7.0.5/charts/common-10.9.7.tgz new file mode 100644 index 0000000000000000000000000000000000000000..3bb192f016c53a80cb8ed717cf4b645c364ae158 GIT binary patch literal 48224 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ⅅYd0t0+#dLo`znMm@+FzD{NKt(3&5 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 literal 0 HcmV?d00001 diff --git a/stable/prowlarr/7.0.4/ix_values.yaml b/stable/prowlarr/7.0.5/ix_values.yaml similarity index 77% rename from stable/prowlarr/7.0.4/ix_values.yaml rename to stable/prowlarr/7.0.5/ix_values.yaml index d644d37a54a..15302b3e61b 100644 --- a/stable/prowlarr/7.0.4/ix_values.yaml +++ b/stable/prowlarr/7.0.5/ix_values.yaml @@ -1,6 +1,6 @@ image: repository: tccr.io/truecharts/prowlarr - tag: 0.4.8.2072@sha256:e0af88a518c312bed38597b1aeda790671d57fd0428fa22246a9792bfd9dbafc + tag: 0.4.8.2072@sha256:4e3ab90e2914b5a58852826a3ba20a5cb7d57735da46ee3f1d6611c7225e160c pullPolicy: IfNotPresent securityContext: diff --git a/stable/prowlarr/7.0.4/questions.yaml b/stable/prowlarr/7.0.5/questions.yaml similarity index 100% rename from stable/prowlarr/7.0.4/questions.yaml rename to stable/prowlarr/7.0.5/questions.yaml diff --git a/stable/prowlarr/7.0.5/templates/common.yaml b/stable/prowlarr/7.0.5/templates/common.yaml new file mode 100644 index 00000000000..c1a366e1cf0 --- /dev/null +++ b/stable/prowlarr/7.0.5/templates/common.yaml @@ -0,0 +1 @@ +{{ include "tc.common.loader.all" . }} diff --git a/stable/prowlarr/7.0.5/values.yaml b/stable/prowlarr/7.0.5/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/radarr/12.0.5/CHANGELOG.md b/stable/radarr/12.0.5/CHANGELOG.md new file mode 100644 index 00000000000..49f3fb5df68 --- /dev/null +++ b/stable/radarr/12.0.5/CHANGELOG.md @@ -0,0 +1,99 @@ +**Important:** +*for the complete changelog, please refer to the website* + + + + +## [radarr-12.0.0](https://github.com/truecharts/charts/compare/radarr-11.0.46...radarr-12.0.0) (2022-11-10) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Major Change to GUI + - update helm general non-major ([#4342](https://github.com/truecharts/charts/issues/4342)) + - update helm general non-major ([#4349](https://github.com/truecharts/charts/issues/4349)) + - update helm general non-major ([#4329](https://github.com/truecharts/charts/issues/4329)) + + + + +## [radarr-11.0.49](https://github.com/truecharts/charts/compare/radarr-11.0.46...radarr-11.0.49) (2022-11-08) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - update helm general non-major ([#4342](https://github.com/truecharts/charts/issues/4342)) + - update helm general non-major ([#4349](https://github.com/truecharts/charts/issues/4349)) + - update helm general non-major ([#4329](https://github.com/truecharts/charts/issues/4329)) + + + + +## [radarr-11.0.48](https://github.com/truecharts/charts/compare/radarr-11.0.46...radarr-11.0.48) (2022-11-08) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - update helm general non-major ([#4342](https://github.com/truecharts/charts/issues/4342)) + - update helm general non-major ([#4329](https://github.com/truecharts/charts/issues/4329)) + + + + +## [radarr-11.0.48](https://github.com/truecharts/charts/compare/radarr-11.0.46...radarr-11.0.48) (2022-11-08) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - update helm general non-major ([#4342](https://github.com/truecharts/charts/issues/4342)) + - update helm general non-major ([#4329](https://github.com/truecharts/charts/issues/4329)) + + + + +## [radarr-11.0.48](https://github.com/truecharts/charts/compare/radarr-11.0.46...radarr-11.0.48) (2022-11-08) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - update helm general non-major ([#4342](https://github.com/truecharts/charts/issues/4342)) + - update helm general non-major ([#4329](https://github.com/truecharts/charts/issues/4329)) + + + + +## [radarr-11.0.47](https://github.com/truecharts/charts/compare/radarr-11.0.46...radarr-11.0.47) (2022-11-07) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - update helm general non-major ([#4329](https://github.com/truecharts/charts/issues/4329)) + + + + +## [radarr-11.0.47](https://github.com/truecharts/charts/compare/radarr-11.0.46...radarr-11.0.47) (2022-11-06) + +### Chore + diff --git a/stable/radarr/12.0.5/Chart.yaml b/stable/radarr/12.0.5/Chart.yaml new file mode 100644 index 00000000000..ad0233633b3 --- /dev/null +++ b/stable/radarr/12.0.5/Chart.yaml @@ -0,0 +1,30 @@ +apiVersion: v2 +appVersion: "4.2.4.6635" +dependencies: + - name: common + repository: https://library-charts.truecharts.org + version: 10.9.7 +deprecated: false +description: "A fork of Sonarr to work with movies à la Couchpotato" +home: https://truecharts.org/docs/charts/stable/radarr +icon: https://truecharts.org/img/hotlink-ok/chart-icons/radarr.png +keywords: + - radarr + - torrent + - usenet +kubeVersion: ">=1.16.0-0" +maintainers: + - email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +name: radarr +sources: + - https://github.com/truecharts/charts/tree/master/charts/stable/radarr + - https://github.com/Radarr/Radarr +type: application +version: 12.0.5 +annotations: + truecharts.org/catagories: | + - media + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/stable/radarr/12.0.5/README.md b/stable/radarr/12.0.5/README.md new file mode 100644 index 00000000000..91c0303ed6d --- /dev/null +++ b/stable/radarr/12.0.5/README.md @@ -0,0 +1,106 @@ +# radarr + +A fork of Sonarr to work with movies à la Couchpotato + +TrueCharts can be installed as both *normal* Helm Charts or as Apps on TrueNAS SCALE. + +This readme is just an automatically generated general guide on installing our Helm Charts and Apps. +For more information, please click here: [radarr](https://truecharts.org/docs/charts/stable/radarr) + +**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)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://library-charts.truecharts.org | common | 10.9.4 | + +## Installing the Chart + +### TrueNAS SCALE + +To install this Chart on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/docs/manual/SCALE%20Apps/Installing-an-App). + +### Helm + +To install the chart with the release name `radarr` + +```console +helm repo add TrueCharts https://charts.truecharts.org +helm repo update +helm install radarr TrueCharts/radarr +``` + +## Uninstall + +### TrueNAS SCALE + +**Upgrading, Rolling Back and Uninstalling the Chart** + +To upgrade, rollback or delete this Chart from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/docs/manual/SCALE%20Apps/Upgrade-rollback-delete-an-App). + +### Helm + +To uninstall the `radarr` deployment + +```console +helm uninstall radarr +``` + +## Configuration + +### Helm + +#### Available Settings + +Read through the values.yaml file. It has several commented out suggested values. +Other values may be used from the [values.yaml](https://github.com/truecharts/library-charts/tree/main/charts/stable/common/values.yaml) from the [common library](https://github.com/truecharts/library-charts/tree/main/charts/common). + +#### Configure using the command line + +Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. + +```console +helm install radarr \ + --set env.TZ="America/New York" \ + TrueCharts/radarr +``` + +#### Configure using a yaml file + +Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. + +```console +helm install radarr TrueCharts/radarr -f values.yaml +``` + +#### Connecting to other charts + +If you need to connect this Chart to other Charts on TrueNAS SCALE, please refer to our [Linking Charts Internally](https://truecharts.org/docs/manual/SCALE%20Apps/linking-apps) quick-start guide. + +## Support + +- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/docs/manual/SCALE%20Apps/Important-MUST-READ). +- See the [Website](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/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/radarr/12.0.5/app-changelog.md b/stable/radarr/12.0.5/app-changelog.md new file mode 100644 index 00000000000..d82a899a0d8 --- /dev/null +++ b/stable/radarr/12.0.5/app-changelog.md @@ -0,0 +1,9 @@ + + +## [radarr-12.0.5](https://github.com/truecharts/charts/compare/radarrsync-1.0.4...radarr-12.0.5) (2022-11-14) + +### Chore + +- update docker general non-major ([#4414](https://github.com/truecharts/charts/issues/4414)) + + \ No newline at end of file diff --git a/stable/radarr/12.0.5/app-readme.md b/stable/radarr/12.0.5/app-readme.md new file mode 100644 index 00000000000..2abad3f38c2 --- /dev/null +++ b/stable/radarr/12.0.5/app-readme.md @@ -0,0 +1,8 @@ +A fork of Sonarr to work with movies à la Couchpotato + +This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/docs/charts/stable/radarr](https://truecharts.org/docs/charts/stable/radarr) + +--- + +TrueCharts can only exist due to the incredible effort of our staff. +Please consider making a [donation](https://truecharts.org/docs/about/sponsor) or contributing back to the project any way you can! diff --git a/stable/radarr/12.0.5/charts/common-10.9.7.tgz b/stable/radarr/12.0.5/charts/common-10.9.7.tgz new file mode 100644 index 0000000000000000000000000000000000000000..3bb192f016c53a80cb8ed717cf4b645c364ae158 GIT binary patch literal 48224 zcmV)jK%u`MiwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0POvHciT9UFb>b(`V@GX^wah{rY^oFn#sQF*iPD~6Whmj($DVf z90wvH3uB641E3srI^X?wa3#QtMA?ozJ!|f4$0C73p-`wQ6bgliOs6F69ZVqQ-8q~l ze|h+)-|zQ#x3}fL{eHjvZ+~}d@Rz~%*4EbEU~{mu{g?h=b9;CDFQESoaH%{wA@^xJx&qoO(Elm_VjzjiX9w@h71Te zgB()URiJW)Xhc$uQZAw9y}jM-et&Ogr*nhmw}i%Q*a<<=SSK`?hVn%x1iG1BqAZz%mr!F^)h)(lNfyDHLUumb=^8DW?cIv)ZaMYM~FD<5>NP}OP+7jP&hB!|~V za{VWpz|EcA;b8n?D@IW~-W_a5qw)3&w7I?c^5y1Wv^(yjG3=ukn>*v}?Y;3%v@__B zc6Ub6%l>$Gx4*f$xBKEnYYehHNkB#t9L+mG{yLLChTwR7Liia)OmwItq5Xm>dYeNU zuS)e>OwqNd*i82Vc1x05m@S~Wgq{t${qAOebI^Y|*f#WjIo{btJG;Am^dcU=h_~ad z7dx8+6z^@p?I_xOIfk3tqw&t(i++D^G#;Vdtu55=4_<7eO*9&hqBc0JMCwb36BfY) ztx9TcDmIh4fL%*!^R;LHY5}A~;jOLiVCRLQ?u$XRw~4l1!j~^b+#U_K$9r&ZG}w8$(;vJX_4}J~zg_EXiJgz~l;_Qqn&t_|Ax?2?L8~Cv z!J;U}tV*4K!Rd4!ZuU1f2ZR2=kZF7La(izF^*08_+a^6s^@E`xq|u+`lQI-To;j9^j>AL0O}fXoo3I7ZT#7QN3X8spD^jODL! zo+QF>)aK@?F6}`P$ksI3X(SeAncP}qS4j!?q7;3t$!0Y}qJ zs#6fb6pRqa8H&3dpi2$Gm#>SV!89dY%7LXIouU$MN0|DQBnhGxWi>i_Dw(g{nql)u zQxpZl>h8+#A7O%HK;+7X0Z0YavV_d1DCHXEd#K3>FNp8vhl* zstWh*(;b_2J93gwM~I5q6(fczia|zVro?4}BgoV&ZepN3yQVNkfN=^rx}M9TZwLj4 z78$l7`ha8A6UAHSD53~*1lF`JTn8|X!8u71oL+y(V#qaL3RoAqHy5ZD*lBu*62wsz zL;+p_JCvjlU;w^O2^CWZv#yk33V$)Rs0%{8aJpa6xYW`Veg=68XAmc1>d9Kp?^VFC zoL(yc@~=`=XJ|`xGf26Sa-jHSrNy}#Q2~Ua85ZIgOfVA~5hQquxg2%%;V1R}op?P2 zTb&N}RISoQg+}$&t6!>6ng07mO{SHXRPNvcB`6ZQ3ML7;Wl}33$mSr!QVRhHVmuxr zTC6-`9Ptf+rx~FfrratLsoucb567xA2J#RD@^_%yHHtyA`g97@c#W-FFvfZlvp_mV zI=YaY$u%$_y=Dt)i_cEg{Ww-NaB3xt(BT?VE~gX_qd%G(Xx+{;a7OVIQk=|d`inku z3ithXa>X>F;KBLfk5Y`aDHe^oQ|E12WA+-C7z<+NQyd_|2+gBE)P1L4Dx7loDz=5 zbFGOxo*d2Okj;T))WmuZ3$myWWp#gzQlu6W#wgMN)IwtlGuHwzMw!o-XOK@o&IH-y zpwA%1q5_j8Gsq`H@MG`CNPcX!tz=we$VBXK7q z@qUdxQKNZl^={{x(^#7pl-ai2T+lV&`6fYowCb$^52}O8A>xQmaf%qYoghKzLKZ2Z zBdP+LrwrU;J^`1P|7EzT+u?lfPlA=fF&^Wz04RU@Af*HZKM{(56Oa;cMq;p^b0Sye zw6uc$d#q>qe{?3c${C4^3S$0DAx@PdtxOEfkB&;d!D%d~7NpnGY!XG>HU%_EVDU+n z`WdIOqp9V(L(fiC0L8wM+ybTpZ;Deq&8GlPNuF{6S=(nnGNBw;25-|Epac1Ciqmsr z&D|elzpsG8&kqOmMc?W6!P$oo94GiUIgQQ`jZn&=X9zt+Gw;!q(0M~kiW3i%k;)LA z;RwMf60J3QaCEVKRm|r)3GO|-Q5L5s{rzfSO)LP##K|ZbA+`Zh!o@#`N8N5$8nOc1 zvE(g^0A^sSELoU>K?&Lhn2I)8t_ld1m&_}rBn(JzPz)e5c&Uc;52L;cOH?_xoLLVI zP@w4q*o5RsEY`Hj*pKVxUjfpQoMH@N92>Kz1Xxz7ERQXm%L($PUl}b<#2VY7V@kNR zr^NC>FH6J_(Hw0E6GMQ)%xGN{Yfa}mBkU?(0##Bw2z(}j;2_BvNA#Q|YN_J%jpvCMI)aN&xlq`0T*lWMZ}w03is>@~ht+Z1#Jb+oj6qBCBnF@1a~j%rGUXG}rCgwF@q_9xm1w&%nhzDn;EsmW*@BFhr{lD*(onOruSKW#2B1L?F*o;hEqP6jABADpMxlYOt~NnUnv)8%lR`> zyNoQFpg0!`Y*X(*R8#s|sPQ@DXd0#@Mqxy;bk>*^yYkJd9q+m42eMG*ICkt$3l`qq z+(H_MF-)%!B{>TVM4F(Z&tkEMxs;vK0B1-_mCiGe`7&Lp1?eMX(rW^)bF8cfC`irn zY2lO=0^fjSVy2iMW{cmseBf3O03Lg7W2P!f+c{`xsjikV&$}Iqs2mKpx^ZP^+G%xoa$(5KHf&IX zSqh~w;YM3KU!XhrIK*+Hcn#niS+K&d$;S|repC*guYpf{LRbb`_K z3_%)AkZXDsCspKB&ovQUX#OnNbiST7=Jgfh;0 zre3J6Nt|Abk12|H2s7yik=+b+!QL|%MTiNu4fzC_*Xtc6t}fKicR0OaRS&o5&>1D7 zzA&>WI6eexXCICa*G13585I4H0R$OHztcmCBb79&7%Z0b<7rU)Ze8vIvqFkElv`_ zZ8T3egnEUk+}*JyHUI=-c8K|lrwBl9H=9VB%)1@^%kK8D2W}0CwF-){jIYo;bDGoT z!miuV8|}3im{=j0&SgtQA-RebI0!>Xh;cdxn4>A{f+NwSSK2u2CUAxT7SjAS74~CS z?ggSU4Dm_zH8y(yDjJl=h%Sz9@sVukiL+l4weC<|rA7T(gk=G%7S}UMMyL|p7lv&_ zIfv{<3UtNlVMgN6;_JLm@C>D5wJjzlmVYr0DbKS|`Sp71jV=mRz*@cUG$`c|Ea6>t zlowC{FgR3AV>Lltu)Yzjr@t3Hf~86GNqqVwj1plm-C{OTZhJNQa}%g$fS*~|O2k*} zYlgV-fr`$Fr82k`wpvPfd1taf)bDd}d2ptj7iy(_d2m)Va6ASO{B(JFrdz;FsjfA5 zt6O~UiT_+!)xNH}oIyS@b?Tb#1v+MfPlooFT{#H4fH6i%Y?xYgR>#1ULkm2rIgVas znY1InKp&XZHSGVzj4l>DoD|W{E=OmCav3Z^a??xW zO)1mu8Q72Hq7Yo3y{p4OBOn82g8NN0xA6y_W_6$+Vv?07)24p^Oh>m(5lk7t9883r z4yN$43@adGu=Cfg{;R=GU#v<+UCG7*OOR(^gvNvlTT;$SRzIVgC+=>)(@_>P^a3>f zrH|w-$ieLdM-#Q(j1%eeDBk#sp&uD=z=A1a3|=F<9=WBMbCh;XbIML#WTsLiorMu{ zK87&Ey<0+W5(49pB1Uo=A=VQn>}=3`W*21PVEvym{$FBoCZ>QDSjTCMBeBStklXeh zDFO;IlI6l;kDG$mKZ(`rC+QRW^adu$2u3%TPA;kRqh`&d>sZYYHPY&XZ*RNZ3oF4#|_&hq*%%_JjDs5W>@t`!ID23FiWvsVGmf>s8OjcLxmnFMrcWJ z&>ccNyqHeqm(Ryz{8@oFx>XGwW*#B@BRMr7trpTd*-8`G8171BgB$uI6u5~DK}hH4B6`?Va9hhVA*CI!spBAe%&Pz;m8 z)!$PRI>cFTT@7F@Hp2$gai)Vby6yx>uM>2^VRW+r&ZL$&%weKmoU3uLZ&ct#_6AOI zGB*xt2Sh0V4`*O3iej_VR_Jc&Tr1ExKAUZCi2v@oO<=RfQZwqx@7-d!9c>`T_s*(7 z43(n_S}~I`Pz$B7R54^mzBFitCE7vKVu@;S;M`F=D2g|#h6eTEF^2@9&RZ09#0sTU zR>)h?4^ASIbe(S(c_v{vhrm9G_1UKl_3wrFUcINt zWUpoHfed~t_WIH8q+9v9+y`gPL02YN0*UM6K^5~wHwvC>wm!+naZ*FN@;(`UH z_I}Pug3}w9b}Dqz6^eqnH^7MSi8{|C#gjllVgWtMYm+qRV-8 z=}HYB>TuX@V%My-NM(>u3Zw*p!u}PXiWN_R*%{=ME@+1mu)8Kb@161 zC+QP`Fm=U>=mS!Ld_v7B>;)Wo9#tsW4;QaNjMUMQd)e_0wpCkRwa{qFx9jP*Lax+$ zEr#}NK#P@zQ}(V)4F%#yeOjP-tzk1M2=`0$eThDES$#bIl!1Ae6=u6|W7O%GUh zJl3yUXDLVkwwOACU^2&+WJF90u5g_{4wAE5RM}V_3U3_jVB26E;Zc67iM;_H~0JWSGaB7a*{vtgUoG4|b zB0flxPmx)%`J3^E!0wThPrbhjbgszwicip$s{S9JHgr*aOhlCYG5k@hQ0BHY%DF#F z)cf}WBh{cpPDTv~h&m>=y1RkLF4$t1K~_hx4B!e?5Vxpn0^BQ7c}0hcYHzVW<$@Cm zuMs$~r>_cW?E#SfBOMU*Dg3kn;&}?EI1*-=O2?&6wit@VHPxgE68`s_3mJ6d#1a`0 zh}Jj}bibN;68AYl0@RN-VPGkj=Q0&y`z zjSpT%vQt9rF?Tyx#Mp%_AIU|7MoY~mN-}t@Pi%N{a9^GedQaT6n?@q?60g25T$w~0 z^3pn%Ai$Kw$j+I<*+0_3e|q@TxWR<${N{YeR63 zVEhZk9Gwb-wdlS)o@rCb7#vM6gr-5P*s^G(4a2{oA$a-nwIN1=WGFp)ePPaB z2`f+hTdDn8kF(G;+T@ILwdI7EnK>#0gPT802k2=I^Ol0CRg#9G1r8HPg>l7i5lR6} z-18nChdEZ^4a*R+y%^K=#euK_g}9U;%C0t*k~Wx^wNp=3uJImCQH*oxY7JDfp`g&Z z5b$X>W?=1n|9v=u(T!j)d*W){Omq#@hDj>UG=K$zin`2hiD}&_ze{1D8ulfm+_SsD zzajPUwQT*PqSz-eMv#k9zt)LxG(9$?V2z;3tHg?(O#GV?8&e4m=-%idD5i!^CJCN_ zftnzH3f7oGnviRDN8Xr0+7s2ExZ{zzL&<71&4|32Mbl>CNQ=^U9A-YvzUu-0_Z#2G zoBcFz&K%fc_R~E54q4+*%@+b{FGjN-n@k_gK$zZ9G!%F~@xW?4aHLFD(LGrBPo_Gx z*ZoFafD`MZ#iK4tg)y2fng0ei*TsUPi8{fd{a>O?)jgp|VCpMwaV&kaBQDMK4ACiO zOnRd9p`Z!5O;y^$$y8?!Wr&{@1uJfj8sCpzbhh;T*z-YRSUwrdKh?Qxrt?F$Hy3Vp z7*p|bo=H!iSOG^96y2D!HJr}12g%3O;3S60*XJP~QiIx8#R@N?tf`gm*P8AHNCjadM zrgMDYe`2S!)8B9BnpP<{mGfAQ#77M>Ly>e(-ouGzB#UyEsb3eyeFK03Z1*vS_7yNL zTIE^W-t0S{)PB))9-4en4SZ#GS=+FdDeLdNHS?FZDOwF5c6`4D8fv>pXJ^yHBQE?%nZ1k=q($w8j za0u!NkG;LUT4|?;ON9$mM@zmh!rx@N%bX!`YfAF0H=T#JNG*e=W7dK@ z(=ltwn(3I`pD$Gsy5b&Y{tvIjkUL&8N3-$L3?Qg!t>X)~X z8%+?*Lj5k3@ynX(Cqja#ZAL-xh@^~Dh~+ⅅYd0t0+#dLo`znMm@+FzD{NKt(3&5 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 literal 0 HcmV?d00001 diff --git a/stable/radarr/12.0.5/ix_values.yaml b/stable/radarr/12.0.5/ix_values.yaml new file mode 100644 index 00000000000..568fde9d58f --- /dev/null +++ b/stable/radarr/12.0.5/ix_values.yaml @@ -0,0 +1,43 @@ +image: + repository: tccr.io/truecharts/radarr + pullPolicy: IfNotPresent + tag: 4.2.4.6635@sha256:23ebb4eb23dcfc152a5aebf24a60095a5f8c73198b1c315c373e9d5a12e1112e + +securityContext: + readOnlyRootFilesystem: false + +service: + main: + ports: + main: + port: 7878 + targetPort: 7878 + +probes: + liveness: + enabled: true + ## Set this to true if you wish to specify your own livenessProbe + custom: true + ## The spec field contains the values for the default livenessProbe. + ## If you selected custom: true, this field holds the definition of the livenessProbe. + spec: + exec: + command: + - /usr/bin/env + - bash + - -c + - curl --fail localhost:7878/api/v3/system/status?apiKey=`IFS=\> && while + read -d \< E C; do if [[ $E = "ApiKey" ]]; then echo $C; fi; done < /config/config.xml` + failureThreshold: 5 + initialDelaySeconds: 60 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 10 + +persistence: + config: + enabled: true + mountPath: "/config" + +portal: + enabled: true diff --git a/stable/radarr/12.0.5/questions.yaml b/stable/radarr/12.0.5/questions.yaml new file mode 100644 index 00000000000..bc2393719ef --- /dev/null +++ b/stable/radarr/12.0.5/questions.yaml @@ -0,0 +1,1829 @@ +groups: + - name: Container Image + description: Image to be used for container + - name: General Settings + description: General Deployment 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: VPN + description: VPN + - name: Addons + description: Addon Configuration + - name: Advanced + description: Advanced Configuration + - name: Documentation + description: Documentation +portals: + open: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: global + label: Global Settings + group: "General Settings" + schema: + type: dict + hidden: true + attrs: + - variable: isSCALE + label: Flag this is SCALE + schema: + type: boolean + default: true + hidden: true + - variable: controller + group: "General Settings" + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: replicas + description: Number of desired pod replicas + label: Desired Replicas + schema: + type: int + required: true + default: 1 + - variable: customextraargs + group: "General Settings" + label: "Extra Args" + description: "Do not click this unless you know what you are doing" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: extraArgs + label: Extra Args + schema: + type: list + default: [] + items: + - variable: arg + label: Arg + schema: + type: string + - variable: TZ + label: Timezone + group: "General Settings" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - 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..." + group: "General Settings" + 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: 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) + - 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: 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: 7878 + required: true + - variable: serviceexpert + group: Networking and Services + label: Show Expert Config + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: Networking and Services + label: Host-Networking (Complicated) + schema: + type: boolean + default: false + - variable: externalInterfaces + description: Add External Interfaces + label: Add external Interfaces + group: Networking + schema: + type: list + items: + - variable: interfaceConfiguration + description: Interface Configuration + label: Interface Configuration + schema: + 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: + 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 + show_subquestions_if: static + subquestions: + - variable: staticIPConfigurations + label: Static IP Addresses + schema: + type: list + items: + - variable: staticIP + label: Static IP + schema: + type: ipaddr + cidr: true + - variable: staticRoutes + label: Static Routes + schema: + type: list + 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 + - 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: setPermissions + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "hostPath"]] + 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: 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: setPermissions + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "hostPath"]] + 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: 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: [] + 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: tls + label: TLS-Settings + schema: + type: list + 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: scaleCert + label: Select TrueNAS SCALE Certificate + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: (Advanced) Traefik Entrypoint + description: Entrypoint used by Traefik when using Traefik as Ingress Provider + schema: + type: string + default: websecure + required: true + - variable: ingressClassName + label: (Advanced/Optional) IngressClass Name + 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: ingressList + label: Add Manual Custom Ingresses + group: Ingress + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: Custom Ingress + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Ingress + schema: + type: boolean + default: true + hidden: true + - variable: name + label: Name + schema: + type: string + default: "" + - variable: ingressClassName + label: IngressClass Name + schema: + type: string + default: "" + - variable: hosts + label: Hosts + schema: + type: list + default: [] + items: + - variable: hostEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: host + label: HostName + schema: + type: string + default: "" + required: true + - variable: paths + label: Paths + schema: + type: list + default: [] + items: + - variable: pathEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: path + label: Path + schema: + type: string + required: true + default: "/" + - variable: pathType + label: Path Type + schema: + type: string + required: true + default: Prefix + - variable: 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: tls + label: TLS-Settings + schema: + type: list + 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: scaleCert + label: Select TrueNAS SCALE Certificate + schema: + type: int + $ref: + - "definitions/certificate" + - 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: security + label: Container Security Settings + group: Security and Permissions + schema: + type: dict + additional_attrs: true + attrs: + - variable: editsecurity + label: Change PUID / UMASK values + description: By enabling this you override default set values. + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - 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 + 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: "002" + - variable: advancedSecurity + label: Show Advanced Security Settings + group: Security and Permissions + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: Security Context + schema: + additional_attrs: true + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: podSecurityContext + group: Security and Permissions + label: Pod Security Context + schema: + additional_attrs: true + type: dict + attrs: + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: "The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - 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 + - 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/docs/manual/SCALE%20Apps/indepth/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/docs/manual/SCALE%20Apps/indepth/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/docs/manual/SCALE%20Apps/indepth/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/docs/manual/SCALE%20Apps/indepth/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: hostPath + 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" + # Specify GPU configuration + - variable: scaleGPU + label: GPU Configuration + group: Resources and Devices + schema: + type: dict + $ref: + - "definitions/gpuConfiguration" + attrs: [] + - 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: git + label: Git Settings + schema: + additional_attrs: true + type: dict + attrs: + - variable: deployKey + description: Raw SSH Private Key + label: Deploy Key + schema: + type: string + - variable: deployKeyBase64 + description: Base64-encoded SSH private key. When both variables are set, the raw SSH key takes precedence + label: Deploy Key Base64 + schema: + type: string + - 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: 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: 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: nodePort + description: Leave Empty to Disable + label: nodePort DEPRECATED + schema: + type: int + default: 36107 + - 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: 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: openvpn + description: OpenVPN + - value: wireguard + description: Wireguard + - value: tailscale + description: Tailscale + - variable: openvpn + label: OpenVPN Settings + schema: + 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 + default: "" + required: true + - variable: tailscale + label: Tailscale Settings + schema: + 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: dict + show_if: [["type", "!=", "disabled"]] + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: true + hidden: true + - variable: type + label: Type + schema: + type: string + default: hostPath + hidden: true + - variable: hostPathType + label: hostPathType + schema: + type: string + default: File + hidden: true + - variable: noMount + label: noMount + schema: + type: boolean + default: true + hidden: true + - variable: hostPath + label: Full Path to File + description: "Path to your local VPN config file for example: /mnt/tank/vpn.conf or /mnt/tank/vpn.ovpn" + schema: + type: string + 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 + - 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/radarr/12.0.5/templates/common.yaml b/stable/radarr/12.0.5/templates/common.yaml new file mode 100644 index 00000000000..c1a366e1cf0 --- /dev/null +++ b/stable/radarr/12.0.5/templates/common.yaml @@ -0,0 +1 @@ +{{ include "tc.common.loader.all" . }} diff --git a/stable/radarr/12.0.5/values.yaml b/stable/radarr/12.0.5/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/sabnzbd/12.0.5/CHANGELOG.md b/stable/sabnzbd/12.0.5/CHANGELOG.md new file mode 100644 index 00000000000..bd5bf076659 --- /dev/null +++ b/stable/sabnzbd/12.0.5/CHANGELOG.md @@ -0,0 +1,99 @@ +**Important:** +*for the complete changelog, please refer to the website* + + + + +## [sabnzbd-12.0.0](https://github.com/truecharts/charts/compare/sabnzbd-11.0.46...sabnzbd-12.0.0) (2022-11-10) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Major Change to GUI + - update helm general non-major ([#4342](https://github.com/truecharts/charts/issues/4342)) + - update docker general non-major ([#4343](https://github.com/truecharts/charts/issues/4343)) + - update helm general non-major ([#4349](https://github.com/truecharts/charts/issues/4349)) + - update helm general non-major ([#4329](https://github.com/truecharts/charts/issues/4329)) + + ### Fix + +- change container config label + + + + +## [sabnzbd-11.0.49](https://github.com/truecharts/charts/compare/sabnzbd-11.0.46...sabnzbd-11.0.49) (2022-11-08) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - update helm general non-major ([#4342](https://github.com/truecharts/charts/issues/4342)) + - update docker general non-major ([#4343](https://github.com/truecharts/charts/issues/4343)) + - update helm general non-major ([#4349](https://github.com/truecharts/charts/issues/4349)) + - update helm general non-major ([#4329](https://github.com/truecharts/charts/issues/4329)) + + + + +## [sabnzbd-11.0.48](https://github.com/truecharts/charts/compare/sabnzbd-11.0.46...sabnzbd-11.0.48) (2022-11-08) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - update helm general non-major ([#4342](https://github.com/truecharts/charts/issues/4342)) + - update docker general non-major ([#4343](https://github.com/truecharts/charts/issues/4343)) + - update helm general non-major ([#4329](https://github.com/truecharts/charts/issues/4329)) + + + + +## [sabnzbd-11.0.48](https://github.com/truecharts/charts/compare/sabnzbd-11.0.46...sabnzbd-11.0.48) (2022-11-08) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - update helm general non-major ([#4342](https://github.com/truecharts/charts/issues/4342)) + - update docker general non-major ([#4343](https://github.com/truecharts/charts/issues/4343)) + - update helm general non-major ([#4329](https://github.com/truecharts/charts/issues/4329)) + + + + +## [sabnzbd-11.0.48](https://github.com/truecharts/charts/compare/sabnzbd-11.0.46...sabnzbd-11.0.48) (2022-11-08) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - update helm general non-major ([#4342](https://github.com/truecharts/charts/issues/4342)) + - update docker general non-major ([#4343](https://github.com/truecharts/charts/issues/4343)) + - update helm general non-major ([#4329](https://github.com/truecharts/charts/issues/4329)) + + + + +## [sabnzbd-11.0.47](https://github.com/truecharts/charts/compare/sabnzbd-11.0.46...sabnzbd-11.0.47) (2022-11-07) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] diff --git a/stable/sabnzbd/12.0.5/Chart.yaml b/stable/sabnzbd/12.0.5/Chart.yaml new file mode 100644 index 00000000000..624a623e6e0 --- /dev/null +++ b/stable/sabnzbd/12.0.5/Chart.yaml @@ -0,0 +1,29 @@ +apiVersion: v2 +appVersion: "3.7.0" +dependencies: + - name: common + repository: https://library-charts.truecharts.org + version: 10.9.7 +deprecated: false +description: Free and easy binary newsreader +home: https://truecharts.org/docs/charts/stable/sabnzbd +icon: https://truecharts.org/img/hotlink-ok/chart-icons/sabnzbd.png +keywords: + - sabnzbd + - usenet +kubeVersion: ">=1.16.0-0" +maintainers: + - email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +name: sabnzbd +sources: + - https://github.com/truecharts/charts/tree/master/charts/stable/sabnzbd + - https://sabnzbd.org/ +type: application +version: 12.0.5 +annotations: + truecharts.org/catagories: | + - media + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/stable/sabnzbd/12.0.5/README.md b/stable/sabnzbd/12.0.5/README.md new file mode 100644 index 00000000000..f0fe37a551f --- /dev/null +++ b/stable/sabnzbd/12.0.5/README.md @@ -0,0 +1,106 @@ +# sabnzbd + +Free and easy binary newsreader + +TrueCharts can be installed as both *normal* Helm Charts or as Apps on TrueNAS SCALE. + +This readme is just an automatically generated general guide on installing our Helm Charts and Apps. +For more information, please click here: [sabnzbd](https://truecharts.org/docs/charts/stable/sabnzbd) + +**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)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://library-charts.truecharts.org | common | 10.9.4 | + +## Installing the Chart + +### TrueNAS SCALE + +To install this Chart on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/docs/manual/SCALE%20Apps/Installing-an-App). + +### Helm + +To install the chart with the release name `sabnzbd` + +```console +helm repo add TrueCharts https://charts.truecharts.org +helm repo update +helm install sabnzbd TrueCharts/sabnzbd +``` + +## Uninstall + +### TrueNAS SCALE + +**Upgrading, Rolling Back and Uninstalling the Chart** + +To upgrade, rollback or delete this Chart from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/docs/manual/SCALE%20Apps/Upgrade-rollback-delete-an-App). + +### Helm + +To uninstall the `sabnzbd` deployment + +```console +helm uninstall sabnzbd +``` + +## Configuration + +### Helm + +#### Available Settings + +Read through the values.yaml file. It has several commented out suggested values. +Other values may be used from the [values.yaml](https://github.com/truecharts/library-charts/tree/main/charts/stable/common/values.yaml) from the [common library](https://github.com/truecharts/library-charts/tree/main/charts/common). + +#### Configure using the command line + +Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. + +```console +helm install sabnzbd \ + --set env.TZ="America/New York" \ + TrueCharts/sabnzbd +``` + +#### Configure using a yaml file + +Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. + +```console +helm install sabnzbd TrueCharts/sabnzbd -f values.yaml +``` + +#### Connecting to other charts + +If you need to connect this Chart to other Charts on TrueNAS SCALE, please refer to our [Linking Charts Internally](https://truecharts.org/docs/manual/SCALE%20Apps/linking-apps) quick-start guide. + +## Support + +- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/docs/manual/SCALE%20Apps/Important-MUST-READ). +- See the [Website](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/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/sabnzbd/12.0.5/app-changelog.md b/stable/sabnzbd/12.0.5/app-changelog.md new file mode 100644 index 00000000000..65838f37cea --- /dev/null +++ b/stable/sabnzbd/12.0.5/app-changelog.md @@ -0,0 +1,9 @@ + + +## [sabnzbd-12.0.5](https://github.com/truecharts/charts/compare/sabnzbd-12.0.4...sabnzbd-12.0.5) (2022-11-14) + +### Chore + +- update docker general non-major ([#4414](https://github.com/truecharts/charts/issues/4414)) + + \ No newline at end of file diff --git a/stable/sabnzbd/12.0.5/app-readme.md b/stable/sabnzbd/12.0.5/app-readme.md new file mode 100644 index 00000000000..ef05cce1010 --- /dev/null +++ b/stable/sabnzbd/12.0.5/app-readme.md @@ -0,0 +1,8 @@ +Free and easy binary newsreader + +This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/docs/charts/stable/sabnzbd](https://truecharts.org/docs/charts/stable/sabnzbd) + +--- + +TrueCharts can only exist due to the incredible effort of our staff. +Please consider making a [donation](https://truecharts.org/docs/about/sponsor) or contributing back to the project any way you can! diff --git a/stable/sabnzbd/12.0.5/charts/common-10.9.7.tgz b/stable/sabnzbd/12.0.5/charts/common-10.9.7.tgz new file mode 100644 index 0000000000000000000000000000000000000000..3bb192f016c53a80cb8ed717cf4b645c364ae158 GIT binary patch literal 48224 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ⅅYd0t0+#dLo`znMm@+FzD{NKt(3&5 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 literal 0 HcmV?d00001 diff --git a/stable/sabnzbd/12.0.5/ix_values.yaml b/stable/sabnzbd/12.0.5/ix_values.yaml new file mode 100644 index 00000000000..0e2796be6af --- /dev/null +++ b/stable/sabnzbd/12.0.5/ix_values.yaml @@ -0,0 +1,22 @@ +image: + repository: tccr.io/truecharts/sabnzbd + pullPolicy: IfNotPresent + tag: 3.7.0@sha256:bbd4b9ab7553091cca1c7b1f2357dc1da310c255308e0801af328bd1db584ecf + +env: + HOST_WHITELIST_ENTRIES: "" + +service: + main: + ports: + main: + port: 10097 + targetPort: 8080 + +persistence: + config: + enabled: true + mountPath: "/config" + +portal: + enabled: true diff --git a/stable/sabnzbd/12.0.5/questions.yaml b/stable/sabnzbd/12.0.5/questions.yaml new file mode 100644 index 00000000000..9ed4660c67f --- /dev/null +++ b/stable/sabnzbd/12.0.5/questions.yaml @@ -0,0 +1,1842 @@ +groups: + - name: Container Image + description: Image to be used for container + - name: General Settings + description: General Deployment 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: VPN + description: VPN + - name: Addons + description: Addon Configuration + - name: Advanced + description: Advanced Configuration + - name: Documentation + description: Documentation +portals: + open: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: global + label: Global Settings + group: "General Settings" + schema: + type: dict + hidden: true + attrs: + - variable: isSCALE + label: Flag this is SCALE + schema: + type: boolean + default: true + hidden: true + - variable: controller + group: "General Settings" + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: replicas + description: Number of desired pod replicas + label: Desired Replicas + schema: + type: int + required: true + default: 1 + - variable: customextraargs + group: "General Settings" + label: "Extra Args" + description: "Do not click this unless you know what you are doing" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: extraArgs + label: Extra Args + schema: + type: list + default: [] + items: + - variable: arg + label: Arg + schema: + type: string + - variable: env + group: "App Configuration" + label: "Image Environment" + schema: + additional_attrs: true + type: dict + attrs: + - variable: HOST_WHITELIST_ENTRIES + label: "HostName Whitelist" + description: "If you use a reverse proxy, you might need to enter your hostname's here (comma seperated)" + schema: + type: string + default: "" + - variable: TZ + label: Timezone + group: "General Settings" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - 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..." + group: "General Settings" + 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: 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) + - 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: 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: 10097 + required: true + - variable: serviceexpert + group: Networking and Services + label: Show Expert Config + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: Networking and Services + label: Host-Networking (Complicated) + schema: + type: boolean + default: false + - variable: externalInterfaces + description: Add External Interfaces + label: Add external Interfaces + group: Networking + schema: + type: list + items: + - variable: interfaceConfiguration + description: Interface Configuration + label: Interface Configuration + schema: + 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: + 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 + show_subquestions_if: static + subquestions: + - variable: staticIPConfigurations + label: Static IP Addresses + schema: + type: list + items: + - variable: staticIP + label: Static IP + schema: + type: ipaddr + cidr: true + - variable: staticRoutes + label: Static Routes + schema: + type: list + 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 + - 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: setPermissions + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "hostPath"]] + 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: 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: setPermissions + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "hostPath"]] + 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: 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: [] + 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: tls + label: TLS-Settings + schema: + type: list + 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: scaleCert + label: Select TrueNAS SCALE Certificate + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: (Advanced) Traefik Entrypoint + description: Entrypoint used by Traefik when using Traefik as Ingress Provider + schema: + type: string + default: websecure + required: true + - variable: ingressClassName + label: (Advanced/Optional) IngressClass Name + 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: ingressList + label: Add Manual Custom Ingresses + group: Ingress + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: Custom Ingress + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Ingress + schema: + type: boolean + default: true + hidden: true + - variable: name + label: Name + schema: + type: string + default: "" + - variable: ingressClassName + label: IngressClass Name + schema: + type: string + default: "" + - variable: hosts + label: Hosts + schema: + type: list + default: [] + items: + - variable: hostEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: host + label: HostName + schema: + type: string + default: "" + required: true + - variable: paths + label: Paths + schema: + type: list + default: [] + items: + - variable: pathEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: path + label: Path + schema: + type: string + required: true + default: "/" + - variable: pathType + label: Path Type + schema: + type: string + required: true + default: Prefix + - variable: 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: tls + label: TLS-Settings + schema: + type: list + 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: scaleCert + label: Select TrueNAS SCALE Certificate + schema: + type: int + $ref: + - "definitions/certificate" + - 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: security + label: Container Security Settings + group: Security and Permissions + schema: + type: dict + additional_attrs: true + attrs: + - variable: editsecurity + label: Change PUID / UMASK values + description: By enabling this you override default set values. + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - 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 + 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: "002" + - variable: advancedSecurity + label: Show Advanced Security Settings + group: Security and Permissions + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: Security Context + schema: + additional_attrs: true + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: podSecurityContext + group: Security and Permissions + label: Pod Security Context + schema: + additional_attrs: true + type: dict + attrs: + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: "The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - 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 + - 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/docs/manual/SCALE%20Apps/indepth/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/docs/manual/SCALE%20Apps/indepth/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/docs/manual/SCALE%20Apps/indepth/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/docs/manual/SCALE%20Apps/indepth/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: hostPath + 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" + # Specify GPU configuration + - variable: scaleGPU + label: GPU Configuration + group: Resources and Devices + schema: + type: dict + $ref: + - "definitions/gpuConfiguration" + attrs: [] + - 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: git + label: Git Settings + schema: + additional_attrs: true + type: dict + attrs: + - variable: deployKey + description: Raw SSH Private Key + label: Deploy Key + schema: + type: string + - variable: deployKeyBase64 + description: Base64-encoded SSH private key. When both variables are set, the raw SSH key takes precedence + label: Deploy Key Base64 + schema: + type: string + - 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: 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: 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: nodePort + description: Leave Empty to Disable + label: nodePort DEPRECATED + schema: + type: int + default: 36107 + - 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: 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: openvpn + description: OpenVPN + - value: wireguard + description: Wireguard + - value: tailscale + description: Tailscale + - variable: openvpn + label: OpenVPN Settings + schema: + 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 + default: "" + required: true + - variable: tailscale + label: Tailscale Settings + schema: + 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: dict + show_if: [["type", "!=", "disabled"]] + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: true + hidden: true + - variable: type + label: Type + schema: + type: string + default: hostPath + hidden: true + - variable: hostPathType + label: hostPathType + schema: + type: string + default: File + hidden: true + - variable: noMount + label: noMount + schema: + type: boolean + default: true + hidden: true + - variable: hostPath + label: Full Path to File + description: "Path to your local VPN config file for example: /mnt/tank/vpn.conf or /mnt/tank/vpn.ovpn" + schema: + type: string + 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 + - 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/sabnzbd/12.0.5/templates/common.yaml b/stable/sabnzbd/12.0.5/templates/common.yaml new file mode 100644 index 00000000000..c1a366e1cf0 --- /dev/null +++ b/stable/sabnzbd/12.0.5/templates/common.yaml @@ -0,0 +1 @@ +{{ include "tc.common.loader.all" . }} diff --git a/stable/sabnzbd/12.0.5/values.yaml b/stable/sabnzbd/12.0.5/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/tautulli/12.0.5/CHANGELOG.md b/stable/tautulli/12.0.5/CHANGELOG.md new file mode 100644 index 00000000000..e29557ffca0 --- /dev/null +++ b/stable/tautulli/12.0.5/CHANGELOG.md @@ -0,0 +1,99 @@ +**Important:** +*for the complete changelog, please refer to the website* + + + + +## [tautulli-12.0.0](https://github.com/truecharts/charts/compare/tautulli-11.0.46...tautulli-12.0.0) (2022-11-10) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Major Change to GUI + - update helm general non-major ([#4342](https://github.com/truecharts/charts/issues/4342)) + - update helm general non-major ([#4349](https://github.com/truecharts/charts/issues/4349)) + - update helm general non-major ([#4329](https://github.com/truecharts/charts/issues/4329)) + - update docker general non-major ([#4347](https://github.com/truecharts/charts/issues/4347)) + + + + +## [tautulli-11.0.50](https://github.com/truecharts/charts/compare/tautulli-11.0.46...tautulli-11.0.50) (2022-11-08) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - update helm general non-major ([#4342](https://github.com/truecharts/charts/issues/4342)) + - update helm general non-major ([#4349](https://github.com/truecharts/charts/issues/4349)) + - update helm general non-major ([#4329](https://github.com/truecharts/charts/issues/4329)) + - update docker general non-major ([#4347](https://github.com/truecharts/charts/issues/4347)) + + + + +## [tautulli-11.0.49](https://github.com/truecharts/charts/compare/tautulli-11.0.46...tautulli-11.0.49) (2022-11-08) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - update helm general non-major ([#4342](https://github.com/truecharts/charts/issues/4342)) + - update helm general non-major ([#4329](https://github.com/truecharts/charts/issues/4329)) + - update docker general non-major ([#4347](https://github.com/truecharts/charts/issues/4347)) + + + + +## [tautulli-11.0.49](https://github.com/truecharts/charts/compare/tautulli-11.0.46...tautulli-11.0.49) (2022-11-08) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - update helm general non-major ([#4342](https://github.com/truecharts/charts/issues/4342)) + - update helm general non-major ([#4329](https://github.com/truecharts/charts/issues/4329)) + - update docker general non-major ([#4347](https://github.com/truecharts/charts/issues/4347)) + + + + +## [tautulli-11.0.48](https://github.com/truecharts/charts/compare/tautulli-11.0.46...tautulli-11.0.48) (2022-11-08) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - update helm general non-major ([#4342](https://github.com/truecharts/charts/issues/4342)) + - update helm general non-major ([#4329](https://github.com/truecharts/charts/issues/4329)) + + + + +## [tautulli-11.0.47](https://github.com/truecharts/charts/compare/tautulli-11.0.46...tautulli-11.0.47) (2022-11-07) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - update helm general non-major ([#4329](https://github.com/truecharts/charts/issues/4329)) + + + + diff --git a/stable/tautulli/12.0.5/Chart.yaml b/stable/tautulli/12.0.5/Chart.yaml new file mode 100644 index 00000000000..24c01bea4e2 --- /dev/null +++ b/stable/tautulli/12.0.5/Chart.yaml @@ -0,0 +1,29 @@ +apiVersion: v2 +appVersion: "2.10.5" +dependencies: + - name: common + repository: https://library-charts.truecharts.org + version: 10.9.7 +deprecated: false +description: A Python based monitoring and tracking tool for Plex Media Server +home: https://truecharts.org/docs/charts/stable/tautulli +icon: https://truecharts.org/img/hotlink-ok/chart-icons/tautulli.png +keywords: + - tautulli + - plex +kubeVersion: ">=1.16.0-0" +maintainers: + - email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +name: tautulli +sources: + - https://github.com/truecharts/charts/tree/master/charts/stable/tautulli + - https://github.com/Tautulli/Tautulli +type: application +version: 12.0.5 +annotations: + truecharts.org/catagories: | + - media + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/stable/tautulli/12.0.5/README.md b/stable/tautulli/12.0.5/README.md new file mode 100644 index 00000000000..f57de066e43 --- /dev/null +++ b/stable/tautulli/12.0.5/README.md @@ -0,0 +1,106 @@ +# tautulli + +A Python based monitoring and tracking tool for Plex Media Server + +TrueCharts can be installed as both *normal* Helm Charts or as Apps on TrueNAS SCALE. + +This readme is just an automatically generated general guide on installing our Helm Charts and Apps. +For more information, please click here: [tautulli](https://truecharts.org/docs/charts/stable/tautulli) + +**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)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://library-charts.truecharts.org | common | 10.9.4 | + +## Installing the Chart + +### TrueNAS SCALE + +To install this Chart on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/docs/manual/SCALE%20Apps/Installing-an-App). + +### Helm + +To install the chart with the release name `tautulli` + +```console +helm repo add TrueCharts https://charts.truecharts.org +helm repo update +helm install tautulli TrueCharts/tautulli +``` + +## Uninstall + +### TrueNAS SCALE + +**Upgrading, Rolling Back and Uninstalling the Chart** + +To upgrade, rollback or delete this Chart from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/docs/manual/SCALE%20Apps/Upgrade-rollback-delete-an-App). + +### Helm + +To uninstall the `tautulli` deployment + +```console +helm uninstall tautulli +``` + +## Configuration + +### Helm + +#### Available Settings + +Read through the values.yaml file. It has several commented out suggested values. +Other values may be used from the [values.yaml](https://github.com/truecharts/library-charts/tree/main/charts/stable/common/values.yaml) from the [common library](https://github.com/truecharts/library-charts/tree/main/charts/common). + +#### Configure using the command line + +Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. + +```console +helm install tautulli \ + --set env.TZ="America/New York" \ + TrueCharts/tautulli +``` + +#### Configure using a yaml file + +Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. + +```console +helm install tautulli TrueCharts/tautulli -f values.yaml +``` + +#### Connecting to other charts + +If you need to connect this Chart to other Charts on TrueNAS SCALE, please refer to our [Linking Charts Internally](https://truecharts.org/docs/manual/SCALE%20Apps/linking-apps) quick-start guide. + +## Support + +- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/docs/manual/SCALE%20Apps/Important-MUST-READ). +- See the [Website](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/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/tautulli/12.0.5/app-changelog.md b/stable/tautulli/12.0.5/app-changelog.md new file mode 100644 index 00000000000..1d54d7f0c7e --- /dev/null +++ b/stable/tautulli/12.0.5/app-changelog.md @@ -0,0 +1,9 @@ + + +## [tautulli-12.0.5](https://github.com/truecharts/charts/compare/tautulli-12.0.4...tautulli-12.0.5) (2022-11-14) + +### Chore + +- update docker general non-major ([#4414](https://github.com/truecharts/charts/issues/4414)) + + \ No newline at end of file diff --git a/stable/tautulli/12.0.5/app-readme.md b/stable/tautulli/12.0.5/app-readme.md new file mode 100644 index 00000000000..90d92b60b45 --- /dev/null +++ b/stable/tautulli/12.0.5/app-readme.md @@ -0,0 +1,8 @@ +A Python based monitoring and tracking tool for Plex Media Server + +This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/docs/charts/stable/tautulli](https://truecharts.org/docs/charts/stable/tautulli) + +--- + +TrueCharts can only exist due to the incredible effort of our staff. +Please consider making a [donation](https://truecharts.org/docs/about/sponsor) or contributing back to the project any way you can! diff --git a/stable/tautulli/12.0.5/charts/common-10.9.7.tgz b/stable/tautulli/12.0.5/charts/common-10.9.7.tgz new file mode 100644 index 0000000000000000000000000000000000000000..3bb192f016c53a80cb8ed717cf4b645c364ae158 GIT binary patch literal 48224 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ⅅYd0t0+#dLo`znMm@+FzD{NKt(3&5 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 literal 0 HcmV?d00001 diff --git a/stable/tautulli/12.0.5/ix_values.yaml b/stable/tautulli/12.0.5/ix_values.yaml new file mode 100644 index 00000000000..441486fb93d --- /dev/null +++ b/stable/tautulli/12.0.5/ix_values.yaml @@ -0,0 +1,19 @@ +image: + repository: tccr.io/truecharts/tautulli + pullPolicy: IfNotPresent + tag: 2.10.5@sha256:7427e04bd077a783693d1a9fcc31e38e6ea916c3faf1a94c893f7f09bb954fe2 + +service: + main: + ports: + main: + port: 8181 + targetPort: 8181 + +persistence: + config: + enabled: true + mountPath: "/config" + +portal: + enabled: true diff --git a/stable/tautulli/12.0.5/questions.yaml b/stable/tautulli/12.0.5/questions.yaml new file mode 100644 index 00000000000..668d71e51cf --- /dev/null +++ b/stable/tautulli/12.0.5/questions.yaml @@ -0,0 +1,1829 @@ +groups: + - name: Container Image + description: Image to be used for container + - name: General Settings + description: General Deployment 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: VPN + description: VPN + - name: Addons + description: Addon Configuration + - name: Advanced + description: Advanced Configuration + - name: Documentation + description: Documentation +portals: + open: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: global + label: Global Settings + group: "General Settings" + schema: + type: dict + hidden: true + attrs: + - variable: isSCALE + label: Flag this is SCALE + schema: + type: boolean + default: true + hidden: true + - variable: controller + group: "General Settings" + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: replicas + description: Number of desired pod replicas + label: Desired Replicas + schema: + type: int + required: true + default: 1 + - variable: customextraargs + group: "General Settings" + label: "Extra Args" + description: "Do not click this unless you know what you are doing" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: extraArgs + label: Extra Args + schema: + type: list + default: [] + items: + - variable: arg + label: Arg + schema: + type: string + - variable: TZ + label: Timezone + group: "General Settings" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - 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..." + group: "General Settings" + 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: 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) + - 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: 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: 8181 + required: true + - variable: serviceexpert + group: Networking and Services + label: Show Expert Config + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: Networking and Services + label: Host-Networking (Complicated) + schema: + type: boolean + default: false + - variable: externalInterfaces + description: Add External Interfaces + label: Add external Interfaces + group: Networking + schema: + type: list + items: + - variable: interfaceConfiguration + description: Interface Configuration + label: Interface Configuration + schema: + 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: + 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 + show_subquestions_if: static + subquestions: + - variable: staticIPConfigurations + label: Static IP Addresses + schema: + type: list + items: + - variable: staticIP + label: Static IP + schema: + type: ipaddr + cidr: true + - variable: staticRoutes + label: Static Routes + schema: + type: list + 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 + - 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: setPermissions + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "hostPath"]] + 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: 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: setPermissions + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "hostPath"]] + 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: 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: [] + 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: tls + label: TLS-Settings + schema: + type: list + 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: scaleCert + label: Select TrueNAS SCALE Certificate + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: (Advanced) Traefik Entrypoint + description: Entrypoint used by Traefik when using Traefik as Ingress Provider + schema: + type: string + default: websecure + required: true + - variable: ingressClassName + label: (Advanced/Optional) IngressClass Name + 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: ingressList + label: Add Manual Custom Ingresses + group: Ingress + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: Custom Ingress + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Ingress + schema: + type: boolean + default: true + hidden: true + - variable: name + label: Name + schema: + type: string + default: "" + - variable: ingressClassName + label: IngressClass Name + schema: + type: string + default: "" + - variable: hosts + label: Hosts + schema: + type: list + default: [] + items: + - variable: hostEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: host + label: HostName + schema: + type: string + default: "" + required: true + - variable: paths + label: Paths + schema: + type: list + default: [] + items: + - variable: pathEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: path + label: Path + schema: + type: string + required: true + default: "/" + - variable: pathType + label: Path Type + schema: + type: string + required: true + default: Prefix + - variable: 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: tls + label: TLS-Settings + schema: + type: list + 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: scaleCert + label: Select TrueNAS SCALE Certificate + schema: + type: int + $ref: + - "definitions/certificate" + - 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: security + label: Container Security Settings + group: Security and Permissions + schema: + type: dict + additional_attrs: true + attrs: + - variable: editsecurity + label: Change PUID / UMASK values + description: By enabling this you override default set values. + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - 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 + 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: "002" + - variable: advancedSecurity + label: Show Advanced Security Settings + group: Security and Permissions + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: Security Context + schema: + additional_attrs: true + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: podSecurityContext + group: Security and Permissions + label: Pod Security Context + schema: + additional_attrs: true + type: dict + attrs: + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: "The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - 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 + - 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/docs/manual/SCALE%20Apps/indepth/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/docs/manual/SCALE%20Apps/indepth/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/docs/manual/SCALE%20Apps/indepth/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/docs/manual/SCALE%20Apps/indepth/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: hostPath + 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" + # Specify GPU configuration + - variable: scaleGPU + label: GPU Configuration + group: Resources and Devices + schema: + type: dict + $ref: + - "definitions/gpuConfiguration" + attrs: [] + - 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: git + label: Git Settings + schema: + additional_attrs: true + type: dict + attrs: + - variable: deployKey + description: Raw SSH Private Key + label: Deploy Key + schema: + type: string + - variable: deployKeyBase64 + description: Base64-encoded SSH private key. When both variables are set, the raw SSH key takes precedence + label: Deploy Key Base64 + schema: + type: string + - 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: 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: 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: nodePort + description: Leave Empty to Disable + label: nodePort DEPRECATED + schema: + type: int + default: 36107 + - 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: 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: openvpn + description: OpenVPN + - value: wireguard + description: Wireguard + - value: tailscale + description: Tailscale + - variable: openvpn + label: OpenVPN Settings + schema: + 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 + default: "" + required: true + - variable: tailscale + label: Tailscale Settings + schema: + 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: dict + show_if: [["type", "!=", "disabled"]] + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: true + hidden: true + - variable: type + label: Type + schema: + type: string + default: hostPath + hidden: true + - variable: hostPathType + label: hostPathType + schema: + type: string + default: File + hidden: true + - variable: noMount + label: noMount + schema: + type: boolean + default: true + hidden: true + - variable: hostPath + label: Full Path to File + description: "Path to your local VPN config file for example: /mnt/tank/vpn.conf or /mnt/tank/vpn.ovpn" + schema: + type: string + 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 + - 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/tautulli/12.0.5/templates/common.yaml b/stable/tautulli/12.0.5/templates/common.yaml new file mode 100644 index 00000000000..c1a366e1cf0 --- /dev/null +++ b/stable/tautulli/12.0.5/templates/common.yaml @@ -0,0 +1 @@ +{{ include "tc.common.loader.all" . }} diff --git a/stable/tautulli/12.0.5/values.yaml b/stable/tautulli/12.0.5/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/traefik/15.1.1/CHANGELOG.md b/stable/traefik/15.1.1/CHANGELOG.md new file mode 100644 index 00000000000..f80fcb741ad --- /dev/null +++ b/stable/traefik/15.1.1/CHANGELOG.md @@ -0,0 +1,99 @@ +**Important:** +*for the complete changelog, please refer to the website* + + + + + +## [traefik-13.5.5](https://github.com/truecharts/charts/compare/traefik-13.5.2...traefik-13.5.5) (2022-11-08) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - update helm general non-major ([#4342](https://github.com/truecharts/charts/issues/4342)) + - update helm general non-major ([#4349](https://github.com/truecharts/charts/issues/4349)) + - update helm general non-major ([#4329](https://github.com/truecharts/charts/issues/4329)) + + + + +## [traefik-13.5.4](https://github.com/truecharts/charts/compare/traefik-13.5.2...traefik-13.5.4) (2022-11-08) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - update helm general non-major ([#4342](https://github.com/truecharts/charts/issues/4342)) + - update helm general non-major ([#4329](https://github.com/truecharts/charts/issues/4329)) + + + + +## [traefik-13.5.4](https://github.com/truecharts/charts/compare/traefik-13.5.2...traefik-13.5.4) (2022-11-08) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - update helm general non-major ([#4342](https://github.com/truecharts/charts/issues/4342)) + - update helm general non-major ([#4329](https://github.com/truecharts/charts/issues/4329)) + + + + +## [traefik-13.5.4](https://github.com/truecharts/charts/compare/traefik-13.5.2...traefik-13.5.4) (2022-11-08) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - update helm general non-major ([#4342](https://github.com/truecharts/charts/issues/4342)) + - update helm general non-major ([#4329](https://github.com/truecharts/charts/issues/4329)) + + + + +## [traefik-13.5.3](https://github.com/truecharts/charts/compare/traefik-13.5.2...traefik-13.5.3) (2022-11-07) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - update helm general non-major ([#4329](https://github.com/truecharts/charts/issues/4329)) + + + + +## [traefik-13.5.3](https://github.com/truecharts/charts/compare/traefik-13.5.2...traefik-13.5.3) (2022-11-06) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major ([#4329](https://github.com/truecharts/charts/issues/4329)) + + + + +## [traefik-13.5.2](https://github.com/truecharts/charts/compare/traefik-13.5.1...traefik-13.5.2) (2022-11-06) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major ([#4317](https://github.com/truecharts/charts/issues/4317)) + + + + +## [traefik-13.5.1](https://github.com/truecharts/charts/compare/traefik-13.5.0...traefik-13.5.1) (2022-11-05) + diff --git a/stable/traefik/15.1.1/Chart.yaml b/stable/traefik/15.1.1/Chart.yaml new file mode 100644 index 00000000000..9930eae4c53 --- /dev/null +++ b/stable/traefik/15.1.1/Chart.yaml @@ -0,0 +1,31 @@ +apiVersion: v2 +appVersion: "2.9.4" +dependencies: + - name: common + repository: https://library-charts.truecharts.org + version: 10.9.7 +deprecated: false +description: Traefik is a flexible reverse proxy and Ingress Provider. +home: https://truecharts.org/docs/charts/stable/traefik +icon: https://truecharts.org/img/hotlink-ok/chart-icons/traefik.png +keywords: + - traefik + - ingress +kubeVersion: ">=1.16.0-0" +maintainers: + - email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +name: traefik +sources: + - https://github.com/truecharts/charts/tree/master/charts/stable/traefik + - https://github.com/traefik/traefik + - https://github.com/traefik/traefik-helm-chart + - https://traefik.io/ +type: application +version: 15.1.1 +annotations: + truecharts.org/catagories: | + - network + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/stable/traefik/15.1.1/README.md b/stable/traefik/15.1.1/README.md new file mode 100644 index 00000000000..ce7731c07fa --- /dev/null +++ b/stable/traefik/15.1.1/README.md @@ -0,0 +1,108 @@ +# traefik + +Traefik is a flexible reverse proxy and Ingress Provider. + +TrueCharts can be installed as both *normal* Helm Charts or as Apps on TrueNAS SCALE. + +This readme is just an automatically generated general guide on installing our Helm Charts and Apps. +For more information, please click here: [traefik](https://truecharts.org/docs/charts/stable/traefik) + +**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)** + +## Source Code + +* +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://library-charts.truecharts.org | common | 10.9.4 | + +## Installing the Chart + +### TrueNAS SCALE + +To install this Chart on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/docs/manual/SCALE%20Apps/Installing-an-App). + +### Helm + +To install the chart with the release name `traefik` + +```console +helm repo add TrueCharts https://charts.truecharts.org +helm repo update +helm install traefik TrueCharts/traefik +``` + +## Uninstall + +### TrueNAS SCALE + +**Upgrading, Rolling Back and Uninstalling the Chart** + +To upgrade, rollback or delete this Chart from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/docs/manual/SCALE%20Apps/Upgrade-rollback-delete-an-App). + +### Helm + +To uninstall the `traefik` deployment + +```console +helm uninstall traefik +``` + +## Configuration + +### Helm + +#### Available Settings + +Read through the values.yaml file. It has several commented out suggested values. +Other values may be used from the [values.yaml](https://github.com/truecharts/library-charts/tree/main/charts/stable/common/values.yaml) from the [common library](https://github.com/truecharts/library-charts/tree/main/charts/common). + +#### Configure using the command line + +Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. + +```console +helm install traefik \ + --set env.TZ="America/New York" \ + TrueCharts/traefik +``` + +#### Configure using a yaml file + +Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. + +```console +helm install traefik TrueCharts/traefik -f values.yaml +``` + +#### Connecting to other charts + +If you need to connect this Chart to other Charts on TrueNAS SCALE, please refer to our [Linking Charts Internally](https://truecharts.org/docs/manual/SCALE%20Apps/linking-apps) quick-start guide. + +## Support + +- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/docs/manual/SCALE%20Apps/Important-MUST-READ). +- See the [Website](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/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/traefik/15.1.1/app-changelog.md b/stable/traefik/15.1.1/app-changelog.md new file mode 100644 index 00000000000..d2c5083802e --- /dev/null +++ b/stable/traefik/15.1.1/app-changelog.md @@ -0,0 +1,9 @@ + + +## [traefik-15.1.1](https://github.com/truecharts/charts/compare/traefik-15.1.0...traefik-15.1.1) (2022-11-14) + +### Chore + +- update docker general non-major ([#4414](https://github.com/truecharts/charts/issues/4414)) + + \ No newline at end of file diff --git a/stable/traefik/15.1.1/app-readme.md b/stable/traefik/15.1.1/app-readme.md new file mode 100644 index 00000000000..b76832bd9a2 --- /dev/null +++ b/stable/traefik/15.1.1/app-readme.md @@ -0,0 +1,8 @@ +Traefik is a flexible reverse proxy and Ingress Provider. + +This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/docs/charts/stable/traefik](https://truecharts.org/docs/charts/stable/traefik) + +--- + +TrueCharts can only exist due to the incredible effort of our staff. +Please consider making a [donation](https://truecharts.org/docs/about/sponsor) or contributing back to the project any way you can! diff --git a/stable/traefik/15.1.1/charts/common-10.9.7.tgz b/stable/traefik/15.1.1/charts/common-10.9.7.tgz new file mode 100644 index 0000000000000000000000000000000000000000..3bb192f016c53a80cb8ed717cf4b645c364ae158 GIT binary patch literal 48224 zcmV)jK%u`MiwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0POvHciT9UFb>b(`V@GX^wah{rY^oFn#sQF*iPD~6Whmj($DVf z90wvH3uB641E3srI^X?wa3#QtMA?ozJ!|f4$0C73p-`wQ6bgliOs6F69ZVqQ-8q~l ze|h+)-|zQ#x3}fL{eHjvZ+~}d@Rz~%*4EbEU~{mu{g?h=b9;CDFQESoaH%{wA@^xJx&qoO(Elm_VjzjiX9w@h71Te zgB()URiJW)Xhc$uQZAw9y}jM-et&Ogr*nhmw}i%Q*a<<=SSK`?hVn%x1iG1BqAZz%mr!F^)h)(lNfyDHLUumb=^8DW?cIv)ZaMYM~FD<5>NP}OP+7jP&hB!|~V za{VWpz|EcA;b8n?D@IW~-W_a5qw)3&w7I?c^5y1Wv^(yjG3=ukn>*v}?Y;3%v@__B zc6Ub6%l>$Gx4*f$xBKEnYYehHNkB#t9L+mG{yLLChTwR7Liia)OmwItq5Xm>dYeNU zuS)e>OwqNd*i82Vc1x05m@S~Wgq{t${qAOebI^Y|*f#WjIo{btJG;Am^dcU=h_~ad z7dx8+6z^@p?I_xOIfk3tqw&t(i++D^G#;Vdtu55=4_<7eO*9&hqBc0JMCwb36BfY) ztx9TcDmIh4fL%*!^R;LHY5}A~;jOLiVCRLQ?u$XRw~4l1!j~^b+#U_K$9r&ZG}w8$(;vJX_4}J~zg_EXiJgz~l;_Qqn&t_|Ax?2?L8~Cv z!J;U}tV*4K!Rd4!ZuU1f2ZR2=kZF7La(izF^*08_+a^6s^@E`xq|u+`lQI-To;j9^j>AL0O}fXoo3I7ZT#7QN3X8spD^jODL! zo+QF>)aK@?F6}`P$ksI3X(SeAncP}qS4j!?q7;3t$!0Y}qJ zs#6fb6pRqa8H&3dpi2$Gm#>SV!89dY%7LXIouU$MN0|DQBnhGxWi>i_Dw(g{nql)u zQxpZl>h8+#A7O%HK;+7X0Z0YavV_d1DCHXEd#K3>FNp8vhl* zstWh*(;b_2J93gwM~I5q6(fczia|zVro?4}BgoV&ZepN3yQVNkfN=^rx}M9TZwLj4 z78$l7`ha8A6UAHSD53~*1lF`JTn8|X!8u71oL+y(V#qaL3RoAqHy5ZD*lBu*62wsz zL;+p_JCvjlU;w^O2^CWZv#yk33V$)Rs0%{8aJpa6xYW`Veg=68XAmc1>d9Kp?^VFC zoL(yc@~=`=XJ|`xGf26Sa-jHSrNy}#Q2~Ua85ZIgOfVA~5hQquxg2%%;V1R}op?P2 zTb&N}RISoQg+}$&t6!>6ng07mO{SHXRPNvcB`6ZQ3ML7;Wl}33$mSr!QVRhHVmuxr zTC6-`9Ptf+rx~FfrratLsoucb567xA2J#RD@^_%yHHtyA`g97@c#W-FFvfZlvp_mV zI=YaY$u%$_y=Dt)i_cEg{Ww-NaB3xt(BT?VE~gX_qd%G(Xx+{;a7OVIQk=|d`inku z3ithXa>X>F;KBLfk5Y`aDHe^oQ|E12WA+-C7z<+NQyd_|2+gBE)P1L4Dx7loDz=5 zbFGOxo*d2Okj;T))WmuZ3$myWWp#gzQlu6W#wgMN)IwtlGuHwzMw!o-XOK@o&IH-y zpwA%1q5_j8Gsq`H@MG`CNPcX!tz=we$VBXK7q z@qUdxQKNZl^={{x(^#7pl-ai2T+lV&`6fYowCb$^52}O8A>xQmaf%qYoghKzLKZ2Z zBdP+LrwrU;J^`1P|7EzT+u?lfPlA=fF&^Wz04RU@Af*HZKM{(56Oa;cMq;p^b0Sye zw6uc$d#q>qe{?3c${C4^3S$0DAx@PdtxOEfkB&;d!D%d~7NpnGY!XG>HU%_EVDU+n z`WdIOqp9V(L(fiC0L8wM+ybTpZ;Deq&8GlPNuF{6S=(nnGNBw;25-|Epac1Ciqmsr z&D|elzpsG8&kqOmMc?W6!P$oo94GiUIgQQ`jZn&=X9zt+Gw;!q(0M~kiW3i%k;)LA z;RwMf60J3QaCEVKRm|r)3GO|-Q5L5s{rzfSO)LP##K|ZbA+`Zh!o@#`N8N5$8nOc1 zvE(g^0A^sSELoU>K?&Lhn2I)8t_ld1m&_}rBn(JzPz)e5c&Uc;52L;cOH?_xoLLVI zP@w4q*o5RsEY`Hj*pKVxUjfpQoMH@N92>Kz1Xxz7ERQXm%L($PUl}b<#2VY7V@kNR zr^NC>FH6J_(Hw0E6GMQ)%xGN{Yfa}mBkU?(0##Bw2z(}j;2_BvNA#Q|YN_J%jpvCMI)aN&xlq`0T*lWMZ}w03is>@~ht+Z1#Jb+oj6qBCBnF@1a~j%rGUXG}rCgwF@q_9xm1w&%nhzDn;EsmW*@BFhr{lD*(onOruSKW#2B1L?F*o;hEqP6jABADpMxlYOt~NnUnv)8%lR`> zyNoQFpg0!`Y*X(*R8#s|sPQ@DXd0#@Mqxy;bk>*^yYkJd9q+m42eMG*ICkt$3l`qq z+(H_MF-)%!B{>TVM4F(Z&tkEMxs;vK0B1-_mCiGe`7&Lp1?eMX(rW^)bF8cfC`irn zY2lO=0^fjSVy2iMW{cmseBf3O03Lg7W2P!f+c{`xsjikV&$}Iqs2mKpx^ZP^+G%xoa$(5KHf&IX zSqh~w;YM3KU!XhrIK*+Hcn#niS+K&d$;S|repC*guYpf{LRbb`_K z3_%)AkZXDsCspKB&ovQUX#OnNbiST7=Jgfh;0 zre3J6Nt|Abk12|H2s7yik=+b+!QL|%MTiNu4fzC_*Xtc6t}fKicR0OaRS&o5&>1D7 zzA&>WI6eexXCICa*G13585I4H0R$OHztcmCBb79&7%Z0b<7rU)Ze8vIvqFkElv`_ zZ8T3egnEUk+}*JyHUI=-c8K|lrwBl9H=9VB%)1@^%kK8D2W}0CwF-){jIYo;bDGoT z!miuV8|}3im{=j0&SgtQA-RebI0!>Xh;cdxn4>A{f+NwSSK2u2CUAxT7SjAS74~CS z?ggSU4Dm_zH8y(yDjJl=h%Sz9@sVukiL+l4weC<|rA7T(gk=G%7S}UMMyL|p7lv&_ zIfv{<3UtNlVMgN6;_JLm@C>D5wJjzlmVYr0DbKS|`Sp71jV=mRz*@cUG$`c|Ea6>t zlowC{FgR3AV>Lltu)Yzjr@t3Hf~86GNqqVwj1plm-C{OTZhJNQa}%g$fS*~|O2k*} zYlgV-fr`$Fr82k`wpvPfd1taf)bDd}d2ptj7iy(_d2m)Va6ASO{B(JFrdz;FsjfA5 zt6O~UiT_+!)xNH}oIyS@b?Tb#1v+MfPlooFT{#H4fH6i%Y?xYgR>#1ULkm2rIgVas znY1InKp&XZHSGVzj4l>DoD|W{E=OmCav3Z^a??xW zO)1mu8Q72Hq7Yo3y{p4OBOn82g8NN0xA6y_W_6$+Vv?07)24p^Oh>m(5lk7t9883r z4yN$43@adGu=Cfg{;R=GU#v<+UCG7*OOR(^gvNvlTT;$SRzIVgC+=>)(@_>P^a3>f zrH|w-$ieLdM-#Q(j1%eeDBk#sp&uD=z=A1a3|=F<9=WBMbCh;XbIML#WTsLiorMu{ zK87&Ey<0+W5(49pB1Uo=A=VQn>}=3`W*21PVEvym{$FBoCZ>QDSjTCMBeBStklXeh zDFO;IlI6l;kDG$mKZ(`rC+QRW^adu$2u3%TPA;kRqh`&d>sZYYHPY&XZ*RNZ3oF4#|_&hq*%%_JjDs5W>@t`!ID23FiWvsVGmf>s8OjcLxmnFMrcWJ z&>ccNyqHeqm(Ryz{8@oFx>XGwW*#B@BRMr7trpTd*-8`G8171BgB$uI6u5~DK}hH4B6`?Va9hhVA*CI!spBAe%&Pz;m8 z)!$PRI>cFTT@7F@Hp2$gai)Vby6yx>uM>2^VRW+r&ZL$&%weKmoU3uLZ&ct#_6AOI zGB*xt2Sh0V4`*O3iej_VR_Jc&Tr1ExKAUZCi2v@oO<=RfQZwqx@7-d!9c>`T_s*(7 z43(n_S}~I`Pz$B7R54^mzBFitCE7vKVu@;S;M`F=D2g|#h6eTEF^2@9&RZ09#0sTU zR>)h?4^ASIbe(S(c_v{vhrm9G_1UKl_3wrFUcINt zWUpoHfed~t_WIH8q+9v9+y`gPL02YN0*UM6K^5~wHwvC>wm!+naZ*FN@;(`UH z_I}Pug3}w9b}Dqz6^eqnH^7MSi8{|C#gjllVgWtMYm+qRV-8 z=}HYB>TuX@V%My-NM(>u3Zw*p!u}PXiWN_R*%{=ME@+1mu)8Kb@161 zC+QP`Fm=U>=mS!Ld_v7B>;)Wo9#tsW4;QaNjMUMQd)e_0wpCkRwa{qFx9jP*Lax+$ zEr#}NK#P@zQ}(V)4F%#yeOjP-tzk1M2=`0$eThDES$#bIl!1Ae6=u6|W7O%GUh zJl3yUXDLVkwwOACU^2&+WJF90u5g_{4wAE5RM}V_3U3_jVB26E;Zc67iM;_H~0JWSGaB7a*{vtgUoG4|b zB0flxPmx)%`J3^E!0wThPrbhjbgszwicip$s{S9JHgr*aOhlCYG5k@hQ0BHY%DF#F z)cf}WBh{cpPDTv~h&m>=y1RkLF4$t1K~_hx4B!e?5Vxpn0^BQ7c}0hcYHzVW<$@Cm zuMs$~r>_cW?E#SfBOMU*Dg3kn;&}?EI1*-=O2?&6wit@VHPxgE68`s_3mJ6d#1a`0 zh}Jj}bibN;68AYl0@RN-VPGkj=Q0&y`z zjSpT%vQt9rF?Tyx#Mp%_AIU|7MoY~mN-}t@Pi%N{a9^GedQaT6n?@q?60g25T$w~0 z^3pn%Ai$Kw$j+I<*+0_3e|q@TxWR<${N{YeR63 zVEhZk9Gwb-wdlS)o@rCb7#vM6gr-5P*s^G(4a2{oA$a-nwIN1=WGFp)ePPaB z2`f+hTdDn8kF(G;+T@ILwdI7EnK>#0gPT802k2=I^Ol0CRg#9G1r8HPg>l7i5lR6} z-18nChdEZ^4a*R+y%^K=#euK_g}9U;%C0t*k~Wx^wNp=3uJImCQH*oxY7JDfp`g&Z z5b$X>W?=1n|9v=u(T!j)d*W){Omq#@hDj>UG=K$zin`2hiD}&_ze{1D8ulfm+_SsD zzajPUwQT*PqSz-eMv#k9zt)LxG(9$?V2z;3tHg?(O#GV?8&e4m=-%idD5i!^CJCN_ zftnzH3f7oGnviRDN8Xr0+7s2ExZ{zzL&<71&4|32Mbl>CNQ=^U9A-YvzUu-0_Z#2G zoBcFz&K%fc_R~E54q4+*%@+b{FGjN-n@k_gK$zZ9G!%F~@xW?4aHLFD(LGrBPo_Gx z*ZoFafD`MZ#iK4tg)y2fng0ei*TsUPi8{fd{a>O?)jgp|VCpMwaV&kaBQDMK4ACiO zOnRd9p`Z!5O;y^$$y8?!Wr&{@1uJfj8sCpzbhh;T*z-YRSUwrdKh?Qxrt?F$Hy3Vp z7*p|bo=H!iSOG^96y2D!HJr}12g%3O;3S60*XJP~QiIx8#R@N?tf`gm*P8AHNCjadM zrgMDYe`2S!)8B9BnpP<{mGfAQ#77M>Ly>e(-ouGzB#UyEsb3eyeFK03Z1*vS_7yNL zTIE^W-t0S{)PB))9-4en4SZ#GS=+FdDeLdNHS?FZDOwF5c6`4D8fv>pXJ^yHBQE?%nZ1k=q($w8j za0u!NkG;LUT4|?;ON9$mM@zmh!rx@N%bX!`YfAF0H=T#JNG*e=W7dK@ z(=ltwn(3I`pD$Gsy5b&Y{tvIjkUL&8N3-$L3?Qg!t>X)~X z8%+?*Lj5k3@ynX(Cqja#ZAL-xh@^~Dh~+ⅅYd0t0+#dLo`znMm@+FzD{NKt(3&5 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 literal 0 HcmV?d00001 diff --git a/stable/traefik/15.1.1/ix_values.yaml b/stable/traefik/15.1.1/ix_values.yaml new file mode 100644 index 00000000000..3a00a0505a2 --- /dev/null +++ b/stable/traefik/15.1.1/ix_values.yaml @@ -0,0 +1,406 @@ +image: + repository: tccr.io/truecharts/traefik + # defaults to appVersion + tag: 2.9.4@sha256:b8f5a2f3856ab41e3455ad0f3e65bed13ffd54b99e23d2e64a6136d02d08414d + pullPolicy: IfNotPresent + +# -- Use ingressClass. Ignored if Traefik version < 2.3 / kubernetes < 1.18.x +ingressClass: + # true is not unit-testable yet, pending https://github.com/rancher/helm-unittest/pull/12 + enabled: false + isDefaultClass: false + # Use to force a networking.k8s.io API Version for certain CI/CD applications. E.g. "v1beta1" + fallbackApiVersion: "" + +# -- Create an IngressRoute for the dashboard +ingressRoute: + dashboard: + enabled: true + # Additional ingressRoute annotations (e.g. for kubernetes.io/ingress.class) + annotations: {} + # Additional ingressRoute labels (e.g. for filtering IngressRoute by custom labels) + labels: {} + +podAnnotations: + prometheus.io/scrape: "true" + prometheus.io/path: "/metrics" + prometheus.io/port: "9180" + +# +# -- Configure providers +providers: + kubernetesCRD: + enabled: true + namespaces: + [] + # - "default" + kubernetesIngress: + enabled: true + # labelSelector: environment=production,method=traefik + namespaces: + [] + # - "default" + # IP used for Kubernetes Ingress endpoints + publishedService: + enabled: true + # Published Kubernetes Service to copy status from. Format: namespace/servicename + # By default this Traefik service + # pathOverride: "" + +# -- Logs +# https://docs.traefik.io/observability/logs/ +logs: + # Traefik logs concern everything that happens to Traefik itself (startup, configuration, events, shutdown, and so on). + general: + # By default, the level is set to ERROR. Alternative logging levels are DEBUG, PANIC, FATAL, ERROR, WARN, and INFO. + level: ERROR + # -- Set the format of General Logs to be either Common Log Format or JSON. For more information: https://doc.traefik.io/traefik/observability/logs/#format + format: common + access: + # To enable access logs + enabled: false + # To write the logs in an asynchronous fashion, specify a bufferingSize option. + # This option represents the number of log lines Traefik will keep in memory before writing + # them to the selected output. In some cases, this option can greatly help performances. + # bufferingSize: 100 + # Filtering https://docs.traefik.io/observability/access-logs/#filtering + filters: + {} + # statuscodes: "200,300-302" + # retryattempts: true + # minduration: 10ms + # Fields + # https://docs.traefik.io/observability/access-logs/#limiting-the-fieldsincluding-headers + fields: + general: + defaultmode: keep + names: + {} + # Examples: + # ClientUsername: drop + headers: + defaultmode: drop + names: + {} + # Examples: + # User-Agent: redact + # Authorization: drop + # Content-Type: keep + # -- Set the format of Access Logs to be either Common Log Format or JSON. For more information: https://doc.traefik.io/traefik/observability/access-logs/#format + format: common + +metrics: + # datadog: + # address: 127.0.0.1:8125 + # influxdb: + # address: localhost:8089 + # protocol: udp + prometheus: + entryPoint: metrics + # statsd: + # address: localhost:8125 + +globalArguments: + - "--global.checknewversion" + +## +# -- Additional arguments to be passed at Traefik's binary +# All available options available on https://docs.traefik.io/reference/static-configuration/cli/ +## Use curly braces to pass values: `helm install --set="additionalArguments={--providers.kubernetesingress.ingressclass=traefik-internal,--log.level=DEBUG}"` +additionalArguments: + - "--metrics.prometheus" + - "--ping" + - "--serverstransport.insecureskipverify=true" + - "--providers.kubernetesingress.allowexternalnameservices=true" + +# -- TLS Options to be created as TLSOption CRDs +# https://doc.traefik.io/tccr.io/truecharts/https/tls/#tls-options +# Example: +tlsOptions: + default: + sniStrict: false + minVersion: VersionTLS12 + curvePreferences: + - CurveP521 + - CurveP384 + cipherSuites: + - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 + - TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 + - TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305 + - TLS_AES_128_GCM_SHA256 + - TLS_AES_256_GCM_SHA384 + - TLS_CHACHA20_POLY1305_SHA256 + +# -- Options for the main traefik service, where the entrypoints traffic comes from +# from. +service: + main: + type: LoadBalancer + ports: + main: + port: 9000 + targetPort: 9000 + protocol: HTTP + # -- Forwarded Headers should never be enabled on Main entrypoint + forwardedHeaders: + enabled: false + # -- Proxy Protocol should never be enabled on Main entrypoint + proxyProtocol: + enabled: false + tcp: + enabled: true + type: LoadBalancer + ports: + web: + enabled: true + port: 9080 + protocol: HTTP + redirectTo: websecure + # Options: Empty, 0 (ingore), or positive int + # redirectPort: + # -- Configure (Forwarded Headers)[https://doc.traefik.io/traefik/routing/entrypoints/#forwarded-headers] Support + forwardedHeaders: + enabled: false + # -- List of trusted IP and CIDR references + trustedIPs: [] + # -- Trust all forwarded headers + insecureMode: false + # -- Configure (Proxy Protocol Headers)[https://doc.traefik.io/traefik/routing/entrypoints/#proxyprotocol] Support + proxyProtocol: + enabled: false + # -- Only IPs in trustedIPs will lead to remote client address replacement + trustedIPs: [] + # -- Trust every incoming connection + insecureMode: false + websecure: + enabled: true + port: 9443 + protocol: HTTPS + # -- Configure (Forwarded Headers)[https://doc.traefik.io/traefik/routing/entrypoints/#forwarded-headers] Support + forwardedHeaders: + enabled: false + # -- List of trusted IP and CIDR references + trustedIPs: [] + # -- Trust all forwarded headers + insecureMode: false + # -- Configure (Proxy Protocol Headers)[https://doc.traefik.io/traefik/routing/entrypoints/#proxyprotocol] Support + proxyProtocol: + enabled: false + # -- Only IPs in trustedIPs will lead to remote client address replacement + trustedIPs: [] + # -- Trust every incoming connection + insecureMode: false + # tcpexample: + # enabled: true + # targetPort: 9443 + # protocol: TCP + # tls: + # enabled: false + # # this is the name of a TLSOption definition + # options: "" + # certResolver: "" + # domains: [] + # # - main: example.com + # # sans: + # # - foo.example.com + # # - bar.example.com + metrics: + enabled: true + type: ClusterIP + ports: + metrics: + enabled: true + port: 9180 + targetPort: 9180 + protocol: HTTP + # -- Forwarded Headers should never be enabled on Metrics entrypoint + forwardedHeaders: + enabled: false + # -- Proxy Protocol should never be enabled on Metrics entrypoint + proxyProtocol: + enabled: false + udp: + enabled: false + +# probes: +# # -- Liveness probe configuration +# # @default -- See below +# liveness: +# # -- sets the probe type when not using a custom probe +# # @default -- "TCP" +# type: HTTP +# # -- If a HTTP probe is used (default for HTTP/HTTPS services) this path is used +# # @default -- "/" +# path: "/ping" + +# # -- Redainess probe configuration +# # @default -- See below +# readiness: +# # -- sets the probe type when not using a custom probe +# # @default -- "TCP" +# type: HTTP +# # -- If a HTTP probe is used (default for HTTP/HTTPS services) this path is used +# # @default -- "/" +# path: "/ping" + +# # -- Startup probe configuration +# # @default -- See below +# startup: +# # -- sets the probe type when not using a custom probe +# # @default -- "TCP" +# type: HTTP +# # -- If a HTTP probe is used (default for HTTP/HTTPS services) this path is used +# # @default -- "/" +# path: "/ping" + +# -- Whether Role Based Access Control objects like roles and rolebindings should be created +rbac: + main: + enabled: true + rules: + - apiGroups: + - "" + resources: + - services + - endpoints + - secrets + verbs: + - get + - list + - watch + - apiGroups: + - extensions + - networking.k8s.io + resources: + - ingresses + - ingressclasses + verbs: + - get + - list + - watch + - apiGroups: + - extensions + - networking.k8s.io + resources: + - ingresses/status + verbs: + - update + - apiGroups: + - traefik.containo.us + resources: + - ingressroutes + - ingressroutetcps + - ingressrouteudps + - middlewares + - middlewaretcps + - tlsoptions + - tlsstores + - traefikservices + - serverstransports + verbs: + - get + - list + - watch + +# -- The service account the pods will use to interact with the Kubernetes API +serviceAccount: + main: + enabled: true + +# -- SCALE Middleware Handlers +middlewares: + basicAuth: [] + # - name: basicauthexample + # users: + # - username: testuser + # password: testpassword + forwardAuth: [] + # - name: forwardAuthexample + # address: https://auth.example.com/ + # authResponseHeaders: + # - X-Secret + # - X-Auth-User + # authRequestHeaders: + # - "Accept" + # - "X-CustomHeader" + # authResponseHeadersRegex: "^X-" + # trustForwardHeader: true + chain: [] + # - name: chainname + # middlewares: + # - name: compress + redirectScheme: [] + # - name: redirectSchemeName + # scheme: https + # permanent: true + rateLimit: [] + # - name: rateLimitName + # average: 300 + # burst: 200 + redirectRegex: [] + # - name: redirectRegexName + # regex: putregexhere + # replacement: replacementurlhere + # permanent: false + stripPrefixRegex: [] + # - name: stripPrefixRegexName + # regex: [] + ipWhiteList: [] + # - name: ipWhiteListName + # sourceRange: [] + # ipStrategy: + # depth: 2 + # excludedIPs: [] + themeParkVersion: v1.2.2 + themePark: [] + # - name: themeParkName + # -- Supported apps, lower case name + # -- https://docs.theme-park.dev/themes + # app: appnamehere + # -- Supported themes, lower case name + # -- https://docs.theme-park.dev/themes/APPNAMEHERE + # -- https://docs.theme-park.dev/community-themes + # theme: themenamehere + # -- https://theme-park.dev or a self hosted url + # baseUrl: https://theme-park.dev + realIPVersion: v1.0.3 + # Sets X-Real-Ip with an IP from the X-Forwarded-For or + # Cf-Connecting-Ip (If from Cloudflare) + # Evaluation of those headers will go from last to first + realIP: [] + # - name: realIPName + # -- The real IP will be the first one that is + # -- not included in any of the CIDRs passed here + # excludedNetworks: + # - 1.1.1.1/24 + addPrefix: [] + # - name: addPrefixName + # prefix: "/foo" + geoBlockVersion: v0.2.3 + geoBlock: [] + # -- https://github.com/PascalMinder/geoblock + # - name: geoBlockName + # allowLocalRequests: true + # logLocalRequests: false + # logAllowedRequests: false + # logApiRequests: false + # api: https://get.geojs.io/v1/ip/country/{ip} + # apiTimeoutMs: 500 + # cacheSize: 25 + # forceMonthlyUpdate: true + # allowUnknownCountries: false + # unknownCountryApiResponse: nil + # countries: + # - RU + +portalhook: + enabled: true + +persistence: + plugins: + enabled: true + mountPath: "/plugins-storage" + type: emptyDir + +portal: + enabled: true diff --git a/stable/traefik/15.1.1/questions.yaml b/stable/traefik/15.1.1/questions.yaml new file mode 100644 index 00000000000..bc64ab449db --- /dev/null +++ b/stable/traefik/15.1.1/questions.yaml @@ -0,0 +1,2487 @@ +groups: + - name: Container Image + description: Image to be used for container + - name: General Settings + description: General Deployment 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: VPN + description: VPN + - name: Addons + description: Addon Configuration + - name: Advanced + description: Advanced Configuration + - name: Documentation + description: Documentation +portals: + open: + protocols: + - "http" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" + path: "/dashboard/" +questions: + - variable: global + label: Global Settings + group: "General Settings" + schema: + type: dict + hidden: true + attrs: + - variable: isSCALE + label: Flag this is SCALE + schema: + type: boolean + default: true + hidden: true + - variable: controller + group: "General Settings" + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: replicas + description: Number of desired pod replicas + label: Desired Replicas + schema: + type: int + required: true + default: 1 + - variable: customextraargs + group: "General Settings" + label: "Extra Args" + description: "Do not click this unless you know what you are doing" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: extraArgs + label: Extra Args + schema: + type: list + default: [] + items: + - variable: arg + label: Arg + schema: + type: string + - variable: TZ + label: Timezone + group: "General Settings" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - 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..." + group: "General Settings" + 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: ingressClass + label: "ingressClass" + group: "App Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: "Enable" + description: "When enabled, ingressClass will match the entered name of this app" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: isDefaultClass + label: "isDefaultClass" + schema: + type: boolean + default: false + - variable: logs + label: "Logs" + group: "App Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: general + label: "General Logs" + schema: + additional_attrs: true + type: dict + attrs: + - variable: level + label: "Log Level" + schema: + type: string + default: "ERROR" + enum: + - value: "INFO" + description: "Info" + - value: "WARN" + description: "Warnings" + - value: "ERROR" + description: "Errors" + - value: "FATAL" + description: "Fatal Errors" + - value: "PANIC" + description: "Panics" + - value: "DEBUG" + description: "Debug" + - variable: format + label: "General Log format" + schema: + type: string + default: "common" + enum: + - value: "common" + description: "Common Log Format" + - value: "json" + description: "JSON" + - variable: access + label: "Access Logs" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: "Enable" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabledFilters + label: "Enable Filters" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: filters + label: "Filters" + schema: + additional_attrs: true + type: dict + attrs: + - variable: statuscodes + label: "Status codes" + schema: + type: string + default: "200,300-302" + - variable: retryattempts + label: "retryattempts" + schema: + type: boolean + default: true + - variable: minduration + label: "minduration" + schema: + type: string + default: "10ms" + - variable: fields + label: "Fields" + schema: + additional_attrs: true + type: dict + attrs: + - variable: general + label: "General" + schema: + additional_attrs: true + type: dict + attrs: + - variable: defaultmode + label: "Default Mode" + schema: + type: string + default: "keep" + enum: + - value: "keep" + description: "Keep" + - value: "drop" + description: "Drop" + - variable: headers + label: "Headers" + schema: + additional_attrs: true + type: dict + attrs: + - variable: defaultmode + label: "Default Mode" + schema: + type: string + default: "drop" + enum: + - value: "keep" + description: "Keep" + - value: "drop" + description: "Drop" + - variable: format + label: "Access Log format" + schema: + type: string + default: "common" + enum: + - value: "common" + description: "Common Log Format" + - value: "json" + description: "JSON" + - variable: middlewares + label: "" + group: "Middlewares" + schema: + additional_attrs: true + type: dict + attrs: + - variable: basicAuth + label: basicAuth + schema: + type: list + default: [] + items: + - variable: basicAuthEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + default: "" + - variable: users + label: Users + schema: + type: list + default: [] + items: + - variable: usersEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: username + label: Username + schema: + type: string + required: true + default: "" + - variable: password + label: Password + schema: + type: string + required: true + default: "" + - variable: forwardAuth + label: forwardAuth + schema: + type: list + default: [] + items: + - variable: basicAuthEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + default: "" + - variable: address + label: Address + schema: + type: string + required: true + default: "" + - variable: trustForwardHeader + label: trustForwardHeader + schema: + type: boolean + default: false + - variable: tls + label: TLS + schema: + additional_attrs: true + type: dict + attrs: + - variable: insecureSkipVerify + label: insecureSkipVerify (expert) + description: >- + This disables all TLS certificate validation on communications with the authentication endpoint. + This could be a security risk and should only be used if you know what you are doing. + schema: + type: boolean + default: false + - variable: authResponseHeadersRegex + label: authResponseHeadersRegex + schema: + type: string + default: "" + - variable: authResponseHeaders + label: authResponseHeaders + schema: + type: list + default: [] + items: + - variable: authResponseHeadersEntry + label: "" + schema: + type: string + default: "" + - variable: authRequestHeaders + label: authRequestHeaders + schema: + type: list + default: [] + items: + - variable: authRequestHeadersEntry + label: "" + schema: + type: string + default: "" + - variable: chain + label: Chain + schema: + type: list + default: [] + items: + - variable: chainEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: middlewares + label: Middlewares to Chain + schema: + type: list + default: [] + items: + - variable: name + label: Name + schema: + type: string + required: true + default: "" + - variable: redirectScheme + label: redirectScheme + schema: + type: list + default: [] + items: + - variable: redirectSchemeEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: scheme + label: Scheme + schema: + type: string + required: true + default: https + enum: + - value: https + description: https + - value: http + description: http + - variable: permanent + label: Permanent + schema: + type: boolean + default: false + - variable: rateLimit + label: rateLimit + schema: + type: list + default: [] + items: + - variable: rateLimitEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: average + label: Average + schema: + type: int + required: true + default: 300 + - variable: burst + label: Burst + schema: + type: int + required: true + default: 200 + - variable: redirectRegex + label: redirectRegex + schema: + type: list + default: [] + items: + - variable: redirectRegexEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: regex + label: Regex + schema: + type: string + required: true + default: "" + - variable: replacement + label: Replacement + schema: + type: string + required: true + default: "" + - variable: permanent + label: Permanent + schema: + type: boolean + default: false + - variable: stripPrefixRegex + label: stripPrefixRegex + schema: + type: list + default: [] + items: + - variable: stripPrefixRegexEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: regex + label: Regex + schema: + type: list + default: [] + items: + - variable: regexEntry + label: Regex + schema: + type: string + required: true + default: "" + - variable: ipWhiteList + label: ipWhiteList + schema: + type: list + default: [] + items: + - variable: ipWhiteListEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + default: "" + - variable: sourceRange + label: Source Range + schema: + type: list + default: [] + items: + - variable: sourceRangeEntry + label: "" + schema: + type: string + required: true + default: "" + - variable: ipStrategy + label: IP Strategy + schema: + additional_attrs: true + type: dict + attrs: + - variable: depth + label: Depth + schema: + type: int + required: true + - variable: excludedIPs + label: Excluded IPs + schema: + type: list + default: [] + items: + - variable: excludedIPsEntry + label: "" + schema: + type: string + required: true + default: "" + - variable: themePark + label: theme.park + schema: + type: list + default: [] + items: + - variable: themeParkEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: This is a 3rd party plugin and not maintained by TrueCharts, + for more information go to traefik-themepark + schema: + type: string + required: true + default: "" + - variable: appName + label: App Name + description: Lower case, name of the app to be themed. +
Go to https://docs.theme-park.dev/themes/ to see supported apps. + schema: + type: string + required: true + default: "" + - variable: themeName + label: Theme Name + description: Lower case, name of the theme to be applied. +
Go to https://docs.theme-park.dev/theme-options/ to see supported themes. + schema: + type: string + required: true + default: "" + - variable: baseUrl + label: Base URL + description: Replace `https://theme-park.dev` URL for self-hosting reference. + schema: + type: string + required: true + default: https://theme-park.dev + - variable: addons + label: Addons + schema: + type: list + default: [] + items: + - variable: addonEntry + label: Addon + description: Currently only supports 'darker' and '4k-logo' for *arr apps. +
Go to https://docs.theme-park.dev/themes/addons/ for Addon information. +
Go to https://github.com/packruler/traefik-themepark for more context on plugin + schema: + type: string + required: true + default: "" + - variable: realIP + label: Real IP + schema: + type: list + default: [] + items: + - variable: realIPEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + default: "" + - variable: excludedNetworks + label: Excluded Networks + schema: + type: list + default: [] + items: + - variable: excludedNetEntry + label: Excluded Network Entry + description: Network to exclude setting it to X-Real-Ip + schema: + type: string + required: true + default: "" + - variable: geoBlock + label: GeoBlock + schema: + type: list + default: [] + items: + - variable: geoBlockEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: This is a 3rd party plugin and not maintained by TrueCharts, + for more information go to geoblock + schema: + type: string + required: true + default: "" + - variable: allowLocalRequests + label: Allow Local Requests + description: If set to true, will not block request from Private IP Ranges + schema: + type: boolean + default: true + - variable: logLocalRequests + label: Log Local Requests + description: If set to true, will log every connection from any IP in the private IP range + schema: + type: boolean + default: false + - variable: logAllowedRequests + label: Log Allowed Requests + description: If set to true, will show a log message with the IP and the country of origin if a request is allowed. + schema: + type: boolean + default: false + - variable: logApiRequests + label: Log API Requests + description: If set to true, will show a log message for every API hit. + schema: + type: boolean + default: false + - variable: api + label: API + description: Defines the API URL for the IP to Country resolution. The IP to fetch can be added with {ip} to the URL. + schema: + type: string + required: true + default: https://get.geojs.io/v1/ip/country/{ip} + - variable: apiTimeoutMs + label: API Timeout in ms + description: Timeout for the call to the api uri. + schema: + type: int + required: true + default: 500 + - variable: cacheSize + label: Cache Size + description: Defines the max size of the LRU (least recently used) cache. + schema: + type: int + required: true + default: 25 + - variable: forceMonthlyUpdate + label: Force Monthly Update + description: Even if an IP stays in the cache for a period of a month (about 30 x 24 hours), it must be fetch again after a month. + schema: + type: boolean + default: true + - variable: allowUnknownCountries + label: Allow Unknown Countries + description: Some IP addresses have no country associated with them. If this option is set to true, all IPs with no associated country are also allowed. + schema: + type: boolean + default: false + - variable: unknownCountryApiResponse + label: Unknown Countries API Response + description: The API uri can be customized. This options allows to customize the response string of the API when a IP with no associated country is requested. + schema: + type: string + required: true + default: nil + - variable: countries + label: Blocked Countries + schema: + type: list + default: [] + items: + - variable: blockedCountryEntry + label: Blocked Country + description: Country codes (2 characters) from which connections to the service should be allowed. + schema: + type: string + required: true + # Allow only 2 Characters + valid_chars: '^[a-zA-Z]{2}$' + default: "" + - variable: addPrefix + label: Add Prefix + schema: + type: list + default: [] + items: + - variable: addPrefixEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + default: "" + - variable: prefix + label: Prefix + schema: + type: string + required: true + default: "" + - variable: service + group: "Networking and Services" + label: "Configure Service Entrypoint" + 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) + - 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: ports + label: "Service's Port(s) Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "Main Entrypoint Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: "Entrypoints Port" + schema: + type: int + default: 9000 + required: true + - variable: tcp + label: "TCP Service" + description: "The tcp Entrypoint service" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the Service + schema: + type: boolean + default: true + hidden: true + - variable: type + label: Service Type + description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: LoadBalancer + enum: + - value: LoadBalancer + description: LoadBalancer (Expose Ports) + - value: ClusterIP + description: ClusterIP (Do Not Expose Ports) + - 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: ports + label: "Service's Port(s) Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: web + label: "web Entrypoint Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: "Entrypoints Port" + schema: + type: int + default: 9080 + required: true + - variable: advanced + label: Show Advanced Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: redirectPort + label: "Redirect to Port" + schema: + type: int + - variable: redirectTo + label: "Redirect to Entrypoint" + schema: + type: string + default: "websecure" + - variable: forwardedHeaders + label: Accept Forwarded Headers + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: trustedIPs + label: Trusted IPs + description: Trust Forwarded Headers from specific IPs. + schema: + type: list + default: [] + items: + - variable: trustedIPsEntry + label: "" + schema: + type: string + required: true + default: "" + - variable: insecureMode + label: Insecure Mode + description: Always Trust Forwarded Headers + schema: + type: boolean + default: false + - variable: proxyProtocol + label: Accept Proxy Protocol connections + description: If Proxy Protocol header parsing is enabled for the entry point, this entry point can accept connections with or without Proxy Protocol headers. + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: trustedIPs + label: Trusted IPs + description: Only IPs in trustedIPs will lead to remote client address replacement + schema: + type: list + default: [] + items: + - variable: trustedIPsEntry + label: "" + schema: + type: string + required: true + default: "" + - variable: insecureMode + label: Insecure Mode + description: Trust every incoming connection + schema: + type: boolean + default: false + - variable: websecure + label: "websecure Entrypoints Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: "Entrypoints Port" + schema: + type: int + default: 9443 + required: true + - variable: advanced + label: Show Advanced Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: redirectPort + label: "Redirect to Port" + schema: + type: int + - variable: redirectTo + label: "Redirect to Entrypoint" + schema: + type: string + - variable: forwardedHeaders + label: Accept Forwarded Headers + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: trustedIPs + label: Trusted IPs + description: Trust Forwarded Headers from specific IPs. + schema: + type: list + default: [] + items: + - variable: trustedIPsEntry + label: "" + schema: + type: string + required: true + default: "" + - variable: insecureMode + label: Insecure Mode + description: Always Trust Forwarded Headers + schema: + type: boolean + default: false + - variable: proxyProtocol + label: Accept Proxy Protocol connections + description: If Proxy Protocol header parsing is enabled for the entry point, this entry point can accept connections with or without Proxy Protocol headers. + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: trustedIPs + label: Trusted IPs + description: Only IPs in trustedIPs will lead to remote client address replacement + schema: + type: list + default: [] + items: + - variable: trustedIPsEntry + label: "" + schema: + type: string + required: true + default: "" + - variable: insecureMode + label: Insecure Mode + description: Trust every incoming connection + schema: + type: boolean + default: false + - variable: tls + label: "websecure Entrypoints Configuration" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + hidden: true + - variable: portsList + label: "Additional TCP Entrypoints" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom Entrypoints" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Entrypoints Name" + schema: + type: string + default: "" + - variable: protocol + label: "Entrypoints Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: tls + label: "websecure Entrypoints Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + - variable: redirectPort + label: "Redirect to Port" + schema: + type: int + - variable: redirectTo + label: "Redirect to Entrypoint" + schema: + type: string + - variable: forwardedHeaders + label: Accept Forwarded Headers + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: trustedIPs + label: Trusted IPs + description: Trust Forwarded Headers from specific IPs. + schema: + type: list + default: [] + items: + - variable: trustedIPsEntry + label: "" + schema: + type: string + required: true + default: "" + - variable: insecureMode + label: Insecure Mode + description: Always Trust Forwarded Headers + schema: + type: boolean + default: false + - variable: proxyProtocol + label: Accept Proxy Protocol connections + description: If Proxy Protocol header parsing is enabled for the entry point, this entry point can accept connections with or without Proxy Protocol headers. + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: trustedIPs + label: Trusted IPs + description: Only IPs in trustedIPs will lead to remote client address replacement + schema: + type: list + default: [] + items: + - variable: trustedIPsEntry + label: "" + schema: + type: string + required: true + default: "" + - variable: insecureMode + label: Insecure Mode + description: Trust every incoming connection + schema: + type: boolean + default: false + - 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: [] + 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: tls + label: TLS-Settings + schema: + type: list + 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: scaleCert + label: Select TrueNAS SCALE Certificate + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: (Advanced) Traefik Entrypoint + description: Entrypoint used by Traefik when using Traefik as Ingress Provider + schema: + type: string + default: websecure + required: true + - variable: ingressClassName + label: (Advanced/Optional) IngressClass Name + 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: ingressList + label: Add Manual Custom Ingresses + group: Ingress + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: Custom Ingress + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Ingress + schema: + type: boolean + default: true + hidden: true + - variable: name + label: Name + schema: + type: string + default: "" + - variable: ingressClassName + label: IngressClass Name + schema: + type: string + default: "" + - variable: hosts + label: Hosts + schema: + type: list + default: [] + items: + - variable: hostEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: host + label: HostName + schema: + type: string + default: "" + required: true + - variable: paths + label: Paths + schema: + type: list + default: [] + items: + - variable: pathEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: path + label: Path + schema: + type: string + required: true + default: "/" + - variable: pathType + label: Path Type + schema: + type: string + required: true + default: Prefix + - variable: 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: tls + label: TLS-Settings + schema: + type: list + 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: scaleCert + label: Select TrueNAS SCALE Certificate + schema: + type: int + $ref: + - "definitions/certificate" + - 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: security + label: Container Security Settings + group: Security and Permissions + schema: + type: dict + additional_attrs: true + attrs: + - variable: editsecurity + label: Change PUID / UMASK values + description: By enabling this you override default set values. + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - 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 + 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: "002" + - variable: advancedSecurity + label: Show Advanced Security Settings + group: Security and Permissions + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: Security Context + schema: + additional_attrs: true + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - variable: podSecurityContext + group: Security and Permissions + label: Pod Security Context + schema: + additional_attrs: true + type: dict + attrs: + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: "The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - 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 + - 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/docs/manual/SCALE%20Apps/indepth/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/docs/manual/SCALE%20Apps/indepth/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/docs/manual/SCALE%20Apps/indepth/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/docs/manual/SCALE%20Apps/indepth/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: hostPath + 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" + # Specify GPU configuration + - variable: scaleGPU + label: GPU Configuration + group: Resources and Devices + schema: + type: dict + $ref: + - "definitions/gpuConfiguration" + attrs: [] + - 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: git + label: Git Settings + schema: + additional_attrs: true + type: dict + attrs: + - variable: deployKey + description: Raw SSH Private Key + label: Deploy Key + schema: + type: string + - variable: deployKeyBase64 + description: Base64-encoded SSH private key. When both variables are set, the raw SSH key takes precedence + label: Deploy Key Base64 + schema: + type: string + - 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: 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: 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: nodePort + description: Leave Empty to Disable + label: nodePort DEPRECATED + schema: + type: int + default: 36107 + - 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: 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: openvpn + description: OpenVPN + - value: wireguard + description: Wireguard + - value: tailscale + description: Tailscale + - variable: openvpn + label: OpenVPN Settings + schema: + 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 + default: "" + required: true + - variable: tailscale + label: Tailscale Settings + schema: + 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: dict + show_if: [["type", "!=", "disabled"]] + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: true + hidden: true + - variable: type + label: Type + schema: + type: string + default: hostPath + hidden: true + - variable: hostPathType + label: hostPathType + schema: + type: string + default: File + hidden: true + - variable: noMount + label: noMount + schema: + type: boolean + default: true + hidden: true + - variable: hostPath + label: Full Path to File + description: "Path to your local VPN config file for example: /mnt/tank/vpn.conf or /mnt/tank/vpn.ovpn" + schema: + type: string + 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 + - 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/traefik/15.1.1/templates/_args.tpl b/stable/traefik/15.1.1/templates/_args.tpl new file mode 100644 index 00000000000..98cc63897b9 --- /dev/null +++ b/stable/traefik/15.1.1/templates/_args.tpl @@ -0,0 +1,178 @@ +{{/* Define the args */}} +{{- define "traefik.args" -}} +args: + {{/* merge all ports */}} + {{- $ports := dict }} + {{- range $.Values.service }} + {{- range $name, $value := .ports }} + {{- $_ := set $ports $name $value }} + {{- end }} + {{- end }} + {{/* start of actual arguments */}} + {{- with .Values.globalArguments }} + {{- range . }} + - {{ . | quote }} + {{- end }} + {{- end }} + {{- range $name, $config := $ports }} + {{- if $config }} + {{- if or ( eq $config.protocol "HTTP" ) ( eq $config.protocol "HTTPS" ) ( eq $config.protocol "TCP" ) }} + {{- $_ := set $config "protocol" "TCP" }} + {{- end }} + - "--entryPoints.{{$name}}.address=:{{ $config.port }}/{{ default "tcp" $config.protocol | lower }}" + {{- end }} + {{- end }} + - "--api.dashboard=true" + - "--ping=true" + {{- if .Values.metrics }} + {{- if .Values.metrics.datadog }} + - "--metrics.datadog=true" + - "--metrics.datadog.address={{ .Values.metrics.datadog.address }}" + {{- end }} + {{- if .Values.metrics.influxdb }} + - "--metrics.influxdb=true" + - "--metrics.influxdb.address={{ .Values.metrics.influxdb.address }}" + - "--metrics.influxdb.protocol={{ .Values.metrics.influxdb.protocol }}" + {{- end }} + {{- if .Values.metrics.prometheus }} + - "--metrics.prometheus=true" + - "--metrics.prometheus.entrypoint={{ .Values.metrics.prometheus.entryPoint }}" + {{- end }} + {{- if .Values.metrics.statsd }} + - "--metrics.statsd=true" + - "--metrics.statsd.address={{ .Values.metrics.statsd.address }}" + {{- end }} + {{- end }} + {{- if .Values.providers.kubernetesCRD.enabled }} + - "--providers.kubernetescrd" + {{- end }} + {{- if .Values.providers.kubernetesIngress.enabled }} + - "--providers.kubernetesingress" + {{- if .Values.providers.kubernetesIngress.publishedService.enabled }} + - "--providers.kubernetesingress.ingressendpoint.publishedservice={{ template "providers.kubernetesIngress.publishedServicePath" . }}" + {{- end }} + {{- if .Values.providers.kubernetesIngress.labelSelector }} + - "--providers.kubernetesingress.labelSelector={{ .Values.providers.kubernetesIngress.labelSelector }}" + {{- end }} + {{- end }} + {{- if and .Values.rbac.enabled .Values.rbac.namespaced }} + {{- if .Values.providers.kubernetesCRD.enabled }} + - "--providers.kubernetescrd.namespaces={{ template "providers.kubernetesCRD.namespaces" . }}" + {{- end }} + {{- if .Values.providers.kubernetesIngress.enabled }} + - "--providers.kubernetesingress.namespaces={{ template "providers.kubernetesIngress.namespaces" . }}" + {{- end }} + {{- end }} + {{- if .Values.ingressClass.enabled }} + - "--providers.kubernetesingress.ingressclass={{ .Release.Name }}" + {{- end }} + {{- range $entrypoint, $config := $ports }} + {{/* add args for proxyProtocol support */}} + {{- if $config.proxyProtocol }} + {{- if $config.proxyProtocol.enabled }} + {{- if $config.proxyProtocol.insecureMode }} + - "--entrypoints.{{ $entrypoint }}.proxyProtocol.insecure" + {{- end }} + {{- if not ( empty $config.proxyProtocol.trustedIPs ) }} + - "--entrypoints.{{ $entrypoint }}.proxyProtocol.trustedIPs={{ join "," $config.proxyProtocol.trustedIPs }}" + {{- end }} + {{- end }} + {{- end }} + {{/* add args for forwardedHeaders support */}} + {{- if $config.forwardedHeaders.enabled }} + {{- if not ( empty $config.forwardedHeaders.trustedIPs ) }} + - "--entrypoints.{{ $entrypoint }}.forwardedHeaders.trustedIPs={{ join "," $config.forwardedHeaders.trustedIPs }}" + {{- end }} + {{- if $config.forwardedHeaders.insecureMode }} + - "--entrypoints.{{ $entrypoint }}.forwardedHeaders.insecure" + {{- end }} + {{- end }} + {{/* end forwardedHeaders configuration */}} + {{- if $config.redirectTo }} + {{- $toPort := index $ports $config.redirectTo }} + - "--entrypoints.{{ $entrypoint }}.http.redirections.entryPoint.to=:{{ $toPort.port }}" + - "--entrypoints.{{ $entrypoint }}.http.redirections.entryPoint.scheme=https" + {{- else if $config.redirectPort }} + {{ if gt $config.redirectPort 0.0 }} + - "--entrypoints.{{ $entrypoint }}.http.redirections.entryPoint.to=:{{ $config.redirectPort }}" + - "--entrypoints.{{ $entrypoint }}.http.redirections.entryPoint.scheme=https" + {{- end }} + {{- end }} + {{- if or ( $config.tls ) ( eq $config.protocol "HTTPS" ) }} + {{- if or ( $config.tls.enabled ) ( eq $config.protocol "HTTPS" ) }} + - "--entrypoints.{{ $entrypoint }}.http.tls=true" + {{- if $config.tls.options }} + - "--entrypoints.{{ $entrypoint }}.http.tls.options={{ $config.tls.options }}" + {{- end }} + {{- if $config.tls.certResolver }} + - "--entrypoints.{{ $entrypoint }}.http.tls.certResolver={{ $config.tls.certResolver }}" + {{- end }} + {{- if $config.tls.domains }} + {{- range $index, $domain := $config.tls.domains }} + {{- if $domain.main }} + - "--entrypoints.{{ $entrypoint }}.http.tls.domains[{{ $index }}].main={{ $domain.main }}" + {{- end }} + {{- if $domain.sans }} + - "--entrypoints.{{ $entrypoint }}.http.tls.domains[{{ $index }}].sans={{ join "," $domain.sans }}" + {{- end }} + {{- end }} + {{- end }} + {{- end }} + {{- end }} + {{- end }} + {{- with .Values.logs }} + - "--log.format={{ .general.format }}" + {{- if ne .general.level "ERROR" }} + - "--log.level={{ .general.level | upper }}" + {{- end }} + {{- if .access.enabled }} + - "--accesslog=true" + - "--accesslog.format={{ .access.format }}" + {{- if .access.bufferingsize }} + - "--accesslog.bufferingsize={{ .access.bufferingsize }}" + {{- end }} + {{- if .access.filters }} + {{- if .access.filters.statuscodes }} + - "--accesslog.filters.statuscodes={{ .access.filters.statuscodes }}" + {{- end }} + {{- if .access.filters.retryattempts }} + - "--accesslog.filters.retryattempts" + {{- end }} + {{- if .access.filters.minduration }} + - "--accesslog.filters.minduration={{ .access.filters.minduration }}" + {{- end }} + {{- end }} + - "--accesslog.fields.defaultmode={{ .access.fields.general.defaultmode }}" + {{- range $fieldname, $fieldaction := .access.fields.general.names }} + - "--accesslog.fields.names.{{ $fieldname }}={{ $fieldaction }}" + {{- end }} + - "--accesslog.fields.headers.defaultmode={{ .access.fields.headers.defaultmode }}" + {{- range $fieldname, $fieldaction := .access.fields.headers.names }} + - "--accesslog.fields.headers.names.{{ $fieldname }}={{ $fieldaction }}" + {{- end }} + {{- end }} + {{- end }} + {{/* theme.park */}} + {{- if .Values.middlewares.themePark }} + - "--experimental.plugins.traefik-themepark.modulename=github.com/packruler/traefik-themepark" + - "--experimental.plugins.traefik-themepark.version={{ .Values.middlewares.themeParkVersion }}" + {{- end }} + {{/* End of theme.park */}} + {{/* GeoBlock */}} + {{- if .Values.middlewares.geoBlock }} + - "--experimental.plugins.GeoBlock.modulename=github.com/PascalMinder/geoblock" + - "--experimental.plugins.GeoBlock.version={{ .Values.middlewares.geoBlockVersion }}" + {{- end }} + {{/* End of GeoBlock */}} + {{/* RealIP */}} + {{- if .Values.middlewares.realIP }} + - "--experimental.plugins.traefik-real-ip.modulename=github.com/soulbalz/traefik-real-ip" + - "--experimental.plugins.traefik-real-ip.version={{ .Values.middlewares.realIPVersion }}" + {{- end }} + {{/* End of RealIP */}} + {{- with .Values.additionalArguments }} + {{- range . }} + - {{ . | quote }} + {{- end }} + {{- end }} +{{- end -}} diff --git a/stable/traefik/15.1.1/templates/_helpers.tpl b/stable/traefik/15.1.1/templates/_helpers.tpl new file mode 100644 index 00000000000..ab55e4e7ec6 --- /dev/null +++ b/stable/traefik/15.1.1/templates/_helpers.tpl @@ -0,0 +1,22 @@ +{{/* +Construct the path for the providers.kubernetesingress.ingressendpoint.publishedservice. +By convention this will simply use the / to match the name of the +service generated. +Users can provide an override for an explicit service they want bound via `.Values.providers.kubernetesIngress.publishedService.pathOverride` +*/}} +{{- define "providers.kubernetesIngress.publishedServicePath" -}} +{{- $fullName := include "tc.common.names.fullname" . -}} +{{- $defServiceName := printf "%s/%s-tcp" .Release.Namespace $fullName -}} +{{- $servicePath := default $defServiceName .Values.providers.kubernetesIngress.publishedService.pathOverride }} +{{- print $servicePath | trimSuffix "-" -}} +{{- end -}} + +{{/* +Construct a comma-separated list of whitelisted namespaces +*/}} +{{- define "providers.kubernetesIngress.namespaces" -}} +{{- default .Release.Namespace (join "," .Values.providers.kubernetesIngress.namespaces) }} +{{- end -}} +{{- define "providers.kubernetesCRD.namespaces" -}} +{{- default .Release.Namespace (join "," .Values.providers.kubernetesCRD.namespaces) }} +{{- end -}} diff --git a/stable/traefik/15.1.1/templates/_ingressclass.tpl b/stable/traefik/15.1.1/templates/_ingressclass.tpl new file mode 100644 index 00000000000..909e249d6a5 --- /dev/null +++ b/stable/traefik/15.1.1/templates/_ingressclass.tpl @@ -0,0 +1,24 @@ +{{/* Define the ingressClass */}} +{{- define "traefik.ingressClass" -}} +--- +{{ if .Values.ingressClass.enabled }} + {{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1/IngressClass" }} +apiVersion: networking.k8s.io/v1 + {{- else if .Capabilities.APIVersions.Has "networking.k8s.io/v1beta1/IngressClass" }} +apiVersion: networking.k8s.io/v1beta1 + {{- else if or (eq .Values.ingressClass.fallbackApiVersion "v1beta1") (eq .Values.ingressClass.fallbackApiVersion "v1") }} +apiVersion: {{ printf "networking.k8s.io/%s" .Values.ingressClass.fallbackApiVersion }} + {{- else }} + {{- fail "\n\n ERROR: You must have at least networking.k8s.io/v1beta1 to use ingressClass" }} + {{- end }} +kind: IngressClass +metadata: + annotations: + ingressclass.kubernetes.io/is-default-class: {{ .Values.ingressClass.isDefaultClass | quote }} + labels: + {{- include "tc.common.labels" . | nindent 4 }} + name: {{ .Release.Name }} +spec: + controller: traefik.io/ingress-controller +{{- end }} +{{- end }} diff --git a/stable/traefik/15.1.1/templates/_ingressroute.tpl b/stable/traefik/15.1.1/templates/_ingressroute.tpl new file mode 100644 index 00000000000..7f012c92350 --- /dev/null +++ b/stable/traefik/15.1.1/templates/_ingressroute.tpl @@ -0,0 +1,25 @@ +{{/* Define the ingressRoute */}} +{{- define "traefik.ingressRoute" -}} +{{ if .Values.ingressRoute.dashboard.enabled }} +--- +apiVersion: traefik.containo.us/v1alpha1 +kind: IngressRoute +metadata: + name: {{ include "tc.common.names.fullname" . }}-dashboard + annotations: + {{- with .Values.ingressRoute.dashboard.annotations }} + {{- toYaml . | nindent 4 }} + {{- end }} + labels: + {{- include "tc.common.labels" . | nindent 4 }} +spec: + entryPoints: + - main + routes: + - match: PathPrefix(`/dashboard`) || PathPrefix(`/api`) + kind: Rule + services: + - name: api@internal + kind: TraefikService +{{ end }} +{{- end -}} diff --git a/stable/traefik/15.1.1/templates/_portalhook.tpl b/stable/traefik/15.1.1/templates/_portalhook.tpl new file mode 100644 index 00000000000..e3586c5d4e9 --- /dev/null +++ b/stable/traefik/15.1.1/templates/_portalhook.tpl @@ -0,0 +1,26 @@ +{{/* Define the portalHook */}} +{{- define "traefik.portalhook" -}} +{{- if .Values.portalhook.enabled }} +{{- $namespace := ( printf "ix-%s" .Release.Name ) }} +{{- if or ( not .Values.ingressClass.enabled ) ( and ( .Values.ingressClass.enabled ) ( .Values.ingressClass.isDefaultClass ) ) }} +{{- $namespace = "default" }} +{{- end }} +--- + +apiVersion: v1 +kind: ConfigMap +metadata: + name: portalhook + namespace: {{ $namespace }} +data: + {{- $ports := dict }} + {{- range $.Values.service }} + {{- range $name, $value := .ports }} + {{- $_ := set $ports $name $value }} + {{- end }} + {{- end }} + {{- range $name, $value := $ports }} + {{ $name }}: {{ $value.port | quote }} + {{- end }} +{{- end }} +{{- end -}} diff --git a/stable/traefik/15.1.1/templates/_tlsoptions.tpl b/stable/traefik/15.1.1/templates/_tlsoptions.tpl new file mode 100644 index 00000000000..3e5aad3bee9 --- /dev/null +++ b/stable/traefik/15.1.1/templates/_tlsoptions.tpl @@ -0,0 +1,12 @@ +{{/* Define the tlsOptions */}} +{{- define "traefik.tlsOptions" -}} +{{- range $name, $config := .Values.tlsOptions }} +--- +apiVersion: traefik.containo.us/v1alpha1 +kind: TLSOption +metadata: + name: {{ $name }} +spec: + {{- toYaml $config | nindent 2 }} +{{- end }} +{{- end -}} diff --git a/stable/traefik/15.1.1/templates/common.yaml b/stable/traefik/15.1.1/templates/common.yaml new file mode 100644 index 00000000000..c933a3d08e0 --- /dev/null +++ b/stable/traefik/15.1.1/templates/common.yaml @@ -0,0 +1,24 @@ +{{/* Make sure all variables are set properly */}} +{{- include "tc.common.loader.init" . }} + +{{- if .Values.metrics }} +{{- if .Values.metrics.prometheus }} +{{- $_ := set .Values.podAnnotations "prometheus.io/scrape" "true" -}} +{{- $_ := set .Values.podAnnotations "prometheus.io/path" "/metrics" -}} +{{- $_ := set .Values.podAnnotations "prometheus.io/port" "9180" -}} +{{- end }} +{{- end }} + +{{- $newArgs := (include "traefik.args" . | fromYaml) }} +{{- $_ := set .Values "newArgs" $newArgs -}} +{{- $mergedargs := concat .Values.args .Values.newArgs.args }} +{{- $_ := set .Values "args" $mergedargs -}} + +{{- include "traefik.portalhook" . }} +{{- include "traefik.tlsOptions" . }} +{{- include "traefik.ingressRoute" . }} +{{- include "traefik.ingressClass" . }} + + +{{/* Render the templates */}} +{{ include "tc.common.loader.apply" . }} diff --git a/stable/traefik/15.1.1/templates/middlewares/addPrefix.yaml b/stable/traefik/15.1.1/templates/middlewares/addPrefix.yaml new file mode 100644 index 00000000000..233b23834c3 --- /dev/null +++ b/stable/traefik/15.1.1/templates/middlewares/addPrefix.yaml @@ -0,0 +1,17 @@ +{{- $values := .Values }} +{{- $namespace := ( printf "ix-%s" .Release.Name ) }} +{{- if or ( not .Values.ingressClass.enabled ) ( and ( .Values.ingressClass.enabled ) ( .Values.ingressClass.isDefaultClass ) ) }} +{{- $namespace = "default" }} +{{- end }} +{{- range $index, $middlewareData := .Values.middlewares.addPrefix }} + +--- +apiVersion: traefik.containo.us/v1alpha1 +kind: Middleware +metadata: + name: {{ $middlewareData.name }} + namespace: {{ $namespace }} +spec: + addPrefix: + prefix: {{ $middlewareData.prefix }} +{{- end }} diff --git a/stable/traefik/15.1.1/templates/middlewares/basic-middleware.yaml b/stable/traefik/15.1.1/templates/middlewares/basic-middleware.yaml new file mode 100644 index 00000000000..9ba8e5c5d93 --- /dev/null +++ b/stable/traefik/15.1.1/templates/middlewares/basic-middleware.yaml @@ -0,0 +1,62 @@ +{{- $values := .Values }} +{{- $namespace := ( printf "ix-%s" .Release.Name ) }} +{{- if or ( not .Values.ingressClass.enabled ) ( and ( .Values.ingressClass.enabled ) ( .Values.ingressClass.isDefaultClass ) ) }} +{{- $namespace = "default" }} +{{- end }} +--- +apiVersion: traefik.containo.us/v1alpha1 +kind: Middleware +metadata: + name: compress + namespace: {{ $namespace }} +spec: + compress: {} +--- +# Here, an average of 300 requests per second is allowed. +# In addition, a burst of 200 requests is allowed. +apiVersion: traefik.containo.us/v1alpha1 +kind: Middleware +metadata: + name: basic-ratelimit + namespace: {{ $namespace }} +spec: + rateLimit: + average: 600 + burst: 400 +--- +apiVersion: traefik.containo.us/v1alpha1 +kind: Middleware +metadata: + name: basic-secure-headers + namespace: {{ $namespace }} +spec: + headers: + accessControlAllowMethods: + - GET + - OPTIONS + - HEAD + - PUT + accessControlMaxAge: 100 + stsSeconds: 63072000 + # stsIncludeSubdomains: false + # stsPreload: false + forceSTSHeader: true + contentTypeNosniff: true + browserXssFilter: true + referrerPolicy: same-origin + customRequestHeaders: + X-Forwarded-Proto: "https" + customResponseHeaders: + server: '' +--- +apiVersion: traefik.containo.us/v1alpha1 +kind: Middleware +metadata: + name: chain-basic + namespace: {{ $namespace }} +spec: + chain: + middlewares: + - name: basic-ratelimit + - name: basic-secure-headers + - name: compress diff --git a/stable/traefik/15.1.1/templates/middlewares/basicauth.yaml b/stable/traefik/15.1.1/templates/middlewares/basicauth.yaml new file mode 100644 index 00000000000..ccb541742f0 --- /dev/null +++ b/stable/traefik/15.1.1/templates/middlewares/basicauth.yaml @@ -0,0 +1,34 @@ +{{- $values := .Values }} +{{- $namespace := ( printf "ix-%s" .Release.Name ) }} +{{- if or ( not .Values.ingressClass.enabled ) ( and ( .Values.ingressClass.enabled ) ( .Values.ingressClass.isDefaultClass ) ) }} +{{- $namespace = "default" }} +{{- end }} +{{ range $index, $middlewareData := .Values.middlewares.basicAuth }} +--- +{{- $users := list }} +{{ range $index, $userdata := $middlewareData.users }} + {{ $users = append $users ( htpasswd $userdata.username $userdata.password ) }} +{{ end }} + +apiVersion: v1 +kind: Secret +metadata: + name: {{printf "%v-%v" $middlewareData.name "secret" }} + namespace: {{ $namespace }} +type: Opaque +stringData: + users: | + {{- range $index, $user := $users }} + {{ printf "%s" $user }} + {{- end }} +--- +# Declaring the user list +apiVersion: traefik.containo.us/v1alpha1 +kind: Middleware +metadata: + name: {{ $middlewareData.name }} + namespace: {{ $namespace }} +spec: + basicAuth: + secret: {{printf "%v-%v" $middlewareData.name "secret" }} +{{ end }} diff --git a/stable/traefik/15.1.1/templates/middlewares/chain.yaml b/stable/traefik/15.1.1/templates/middlewares/chain.yaml new file mode 100644 index 00000000000..f87994f7956 --- /dev/null +++ b/stable/traefik/15.1.1/templates/middlewares/chain.yaml @@ -0,0 +1,21 @@ +{{- $values := .Values }} +{{- $namespace := ( printf "ix-%s" .Release.Name ) }} +{{- if or ( not .Values.ingressClass.enabled ) ( and ( .Values.ingressClass.enabled ) ( .Values.ingressClass.isDefaultClass ) ) }} +{{- $namespace = "default" }} +{{- end }} +{{ range $index, $middlewareData := .Values.middlewares.chain }} + +--- +# Declaring the user list +apiVersion: traefik.containo.us/v1alpha1 +kind: Middleware +metadata: + name: {{ $middlewareData.name }} + namespace: {{ $namespace }} +spec: + chain: + middlewares: + {{ range $index, $middleware := .middlewares }} + - name: {{ printf "%v-%v@%v" $namespace $middleware "kubernetescrd" }} + {{ end }} +{{ end }} diff --git a/stable/traefik/15.1.1/templates/middlewares/forwardauth.yaml b/stable/traefik/15.1.1/templates/middlewares/forwardauth.yaml new file mode 100644 index 00000000000..4bdefbd5c01 --- /dev/null +++ b/stable/traefik/15.1.1/templates/middlewares/forwardauth.yaml @@ -0,0 +1,34 @@ +{{- $values := .Values }} +{{- $namespace := ( printf "ix-%s" .Release.Name ) }} +{{- if or ( not .Values.ingressClass.enabled ) ( and ( .Values.ingressClass.enabled ) ( .Values.ingressClass.isDefaultClass ) ) }} +{{- $namespace = "default" }} +{{- end }} +{{ range $index, $middlewareData := .Values.middlewares.forwardAuth }} +--- +apiVersion: traefik.containo.us/v1alpha1 +kind: Middleware +metadata: + name: {{ $middlewareData.name }} + namespace: {{ $namespace }} +spec: + forwardAuth: + address: {{ $middlewareData.address }} + {{- with $middlewareData.authResponseHeaders }} + authResponseHeaders: + {{- toYaml . | nindent 4 }} + {{- end }} + {{- with $middlewareData.authRequestHeaders }} + authRequestHeaders: + {{- toYaml . | nindent 4 }} + {{- end }} + {{- if $middlewareData.authResponseHeadersRegex }} + authResponseHeadersRegex: {{ $middlewareData.authResponseHeadersRegex }} + {{- end }} + {{- if $middlewareData.trustForwardHeader }} + trustForwardHeader: true + {{- end }} + {{- with $middlewareData.tls }} + tls: + insecureSkipVerify: {{ .insecureSkipVerify | default false }} + {{- end }} +{{ end }} diff --git a/stable/traefik/15.1.1/templates/middlewares/geoblock.yaml b/stable/traefik/15.1.1/templates/middlewares/geoblock.yaml new file mode 100644 index 00000000000..1f0fb752769 --- /dev/null +++ b/stable/traefik/15.1.1/templates/middlewares/geoblock.yaml @@ -0,0 +1,34 @@ +{{- $values := .Values }} +{{- $namespace := ( printf "ix-%s" .Release.Name ) }} +{{- if or ( not .Values.ingressClass.enabled ) ( and ( .Values.ingressClass.enabled ) ( .Values.ingressClass.isDefaultClass ) ) }} +{{- $namespace = "default" }} +{{- end }} +{{- range $index, $middlewareData := .Values.middlewares.geoBlock }} + +--- +apiVersion: traefik.containo.us/v1alpha1 +kind: Middleware +metadata: + name: {{ $middlewareData.name }} + namespace: {{ $namespace }} +spec: + plugin: + GeoBlock: + allowLocalRequests: {{ $middlewareData.allowLocalRequests }} + logLocalRequests: {{ $middlewareData.logLocalRequests }} + logAllowedRequests: {{ $middlewareData.logAllowedRequests }} + logApiRequests: {{ $middlewareData.logApiRequests }} + api: {{ $middlewareData.api }} + apiTimeoutMs: {{ $middlewareData.apiTimeoutMs }} + cacheSize: {{ $middlewareData.cacheSize }} + forceMonthlyUpdate: {{ $middlewareData.forceMonthlyUpdate }} + allowUnknownCountries: {{ $middlewareData.allowUnknownCountries }} + unknownCountryApiResponse: {{ $middlewareData.unknownCountryApiResponse }} + {{- if not $middlewareData.countries }} + {{- fail "You have to define at least one country..." }} + {{- end }} + countries: + {{- range $middlewareData.countries }} + - {{ . }} + {{- end }} +{{- end }} diff --git a/stable/traefik/15.1.1/templates/middlewares/ipwhitelist.yaml b/stable/traefik/15.1.1/templates/middlewares/ipwhitelist.yaml new file mode 100644 index 00000000000..1179245017e --- /dev/null +++ b/stable/traefik/15.1.1/templates/middlewares/ipwhitelist.yaml @@ -0,0 +1,33 @@ +{{- $values := .Values }} +{{- $namespace := ( printf "ix-%s" .Release.Name ) }} +{{- if or ( not .Values.ingressClass.enabled ) ( and ( .Values.ingressClass.enabled ) ( .Values.ingressClass.isDefaultClass ) ) }} +{{- $namespace = "default" }} +{{- end }} +{{ range $index, $middlewareData := .Values.middlewares.ipWhiteList }} + +--- +# Declaring the user list +apiVersion: traefik.containo.us/v1alpha1 +kind: Middleware +metadata: + name: {{ $middlewareData.name }} + namespace: {{ $namespace }} +spec: + ipWhiteList: + sourceRange: + {{- range $middlewareData.sourceRange }} + - {{ . }} + {{- end }} + {{- if $middlewareData.ipStrategy }} + ipStrategy: + {{- if $middlewareData.ipStrategy.depth }} + depth: {{ $middlewareData.ipStrategy.depth }} + {{- end }} + {{- if $middlewareData.ipStrategy.excludedIPs }} + excludedIPs: + {{- range $middlewareData.ipStrategy.excludedIPs }} + - {{ . }} + {{- end }} + {{- end }} + {{- end }} +{{ end }} diff --git a/stable/traefik/15.1.1/templates/middlewares/ratelimit.yaml b/stable/traefik/15.1.1/templates/middlewares/ratelimit.yaml new file mode 100644 index 00000000000..144b9d8bf38 --- /dev/null +++ b/stable/traefik/15.1.1/templates/middlewares/ratelimit.yaml @@ -0,0 +1,19 @@ +{{- $values := .Values }} +{{- $namespace := ( printf "ix-%s" .Release.Name ) }} +{{- if or ( not .Values.ingressClass.enabled ) ( and ( .Values.ingressClass.enabled ) ( .Values.ingressClass.isDefaultClass ) ) }} +{{- $namespace = "default" }} +{{- end }} +{{ range $index, $middlewareData := .Values.middlewares.rateLimit }} + +--- +# Declaring the user list +apiVersion: traefik.containo.us/v1alpha1 +kind: Middleware +metadata: + name: {{ $middlewareData.name }} + namespace: {{ $namespace }} +spec: + rateLimit: + average: {{ $middlewareData.average }} + burst: {{ $middlewareData.burst }} +{{ end }} diff --git a/stable/traefik/15.1.1/templates/middlewares/real-ip.yaml b/stable/traefik/15.1.1/templates/middlewares/real-ip.yaml new file mode 100644 index 00000000000..2dd1ae030a4 --- /dev/null +++ b/stable/traefik/15.1.1/templates/middlewares/real-ip.yaml @@ -0,0 +1,21 @@ +{{- $values := .Values }} +{{- $namespace := ( printf "ix-%s" .Release.Name ) }} +{{- if or ( not .Values.ingressClass.enabled ) ( and ( .Values.ingressClass.enabled ) ( .Values.ingressClass.isDefaultClass ) ) }} +{{- $namespace = "default" }} +{{- end }} +{{- range $index, $middlewareData := .Values.middlewares.realIP }} + +--- +apiVersion: traefik.containo.us/v1alpha1 +kind: Middleware +metadata: + name: {{ $middlewareData.name }} + namespace: {{ $namespace }} +spec: + plugin: + traefik-real-ip: + excludednets: + {{- range $middlewareData.excludedNetworks }} + - {{ . | quote }} + {{- end }} +{{- end }} diff --git a/stable/traefik/15.1.1/templates/middlewares/redirectScheme.yaml b/stable/traefik/15.1.1/templates/middlewares/redirectScheme.yaml new file mode 100644 index 00000000000..f2413f84e19 --- /dev/null +++ b/stable/traefik/15.1.1/templates/middlewares/redirectScheme.yaml @@ -0,0 +1,19 @@ +{{- $values := .Values }} +{{- $namespace := ( printf "ix-%s" .Release.Name ) }} +{{- if or ( not .Values.ingressClass.enabled ) ( and ( .Values.ingressClass.enabled ) ( .Values.ingressClass.isDefaultClass ) ) }} +{{- $namespace = "default" }} +{{- end }} +{{ range $index, $middlewareData := .Values.middlewares.redirectScheme }} + +--- +# Declaring the user list +apiVersion: traefik.containo.us/v1alpha1 +kind: Middleware +metadata: + name: {{ $middlewareData.name }} + namespace: {{ $namespace }} +spec: + redirectScheme: + scheme: {{ $middlewareData.scheme }} + permanent: {{ $middlewareData.permanent }} +{{ end }} diff --git a/stable/traefik/15.1.1/templates/middlewares/redirectregex.yaml b/stable/traefik/15.1.1/templates/middlewares/redirectregex.yaml new file mode 100644 index 00000000000..46e3e724dd6 --- /dev/null +++ b/stable/traefik/15.1.1/templates/middlewares/redirectregex.yaml @@ -0,0 +1,20 @@ +{{- $values := .Values }} +{{- $namespace := ( printf "ix-%s" .Release.Name ) }} +{{- if or ( not .Values.ingressClass.enabled ) ( and ( .Values.ingressClass.enabled ) ( .Values.ingressClass.isDefaultClass ) ) }} +{{- $namespace = "default" }} +{{- end }} +{{ range $index, $middlewareData := .Values.middlewares.redirectRegex }} + +--- +# Declaring the user list +apiVersion: traefik.containo.us/v1alpha1 +kind: Middleware +metadata: + name: {{ $middlewareData.name }} + namespace: {{ $namespace }} +spec: + redirectRegex: + regex: {{ $middlewareData.regex | quote }} + replacement: {{ $middlewareData.replacement | quote }} + permanent: {{ $middlewareData.permanent }} +{{ end }} diff --git a/stable/traefik/15.1.1/templates/middlewares/stripPrefixRegex.yaml b/stable/traefik/15.1.1/templates/middlewares/stripPrefixRegex.yaml new file mode 100644 index 00000000000..007c166ff39 --- /dev/null +++ b/stable/traefik/15.1.1/templates/middlewares/stripPrefixRegex.yaml @@ -0,0 +1,20 @@ +{{- $values := .Values }} +{{- $namespace := ( printf "ix-%s" .Release.Name ) }} +{{- if or ( not .Values.ingressClass.enabled ) ( and ( .Values.ingressClass.enabled ) ( .Values.ingressClass.isDefaultClass ) ) }} +{{- $namespace = "default" }} +{{- end }} + +{{ range $index, $middlewareData := .Values.middlewares.stripPrefixRegex }} +--- +apiVersion: traefik.containo.us/v1alpha1 +kind: Middleware +metadata: + name: {{ $middlewareData.name }} + namespace: {{ $namespace }} +spec: + stripPrefixRegex: + regex: + {{- range $middlewareData.regex }} + - {{ . | quote }} + {{- end }} +{{ end }} diff --git a/stable/traefik/15.1.1/templates/middlewares/tc-chains.yaml b/stable/traefik/15.1.1/templates/middlewares/tc-chains.yaml new file mode 100644 index 00000000000..409766daa89 --- /dev/null +++ b/stable/traefik/15.1.1/templates/middlewares/tc-chains.yaml @@ -0,0 +1,29 @@ +{{- $values := .Values }} +{{- $namespace := ( printf "ix-%s" .Release.Name ) }} +{{- if or ( not .Values.ingressClass.enabled ) ( and ( .Values.ingressClass.enabled ) ( .Values.ingressClass.isDefaultClass ) ) }} +{{- $namespace = "default" }} +{{- end }} +--- +apiVersion: traefik.containo.us/v1alpha1 +kind: Middleware +metadata: + name: tc-opencors-chain + namespace: {{ $namespace }} +spec: + chain: + middlewares: + - name: basic-ratelimit + - name: tc-opencors-headers + - name: compress +--- +apiVersion: traefik.containo.us/v1alpha1 +kind: Middleware +metadata: + name: tc-closedcors-chain + namespace: {{ $namespace }} +spec: + chain: + middlewares: + - name: basic-ratelimit + - name: tc-closedcors-headers + - name: compress diff --git a/stable/traefik/15.1.1/templates/middlewares/tc-headers.yaml b/stable/traefik/15.1.1/templates/middlewares/tc-headers.yaml new file mode 100644 index 00000000000..a0462f1fd73 --- /dev/null +++ b/stable/traefik/15.1.1/templates/middlewares/tc-headers.yaml @@ -0,0 +1,62 @@ +{{- $values := .Values }} +{{- $namespace := ( printf "ix-%s" .Release.Name ) }} +{{- if or ( not .Values.ingressClass.enabled ) ( and ( .Values.ingressClass.enabled ) ( .Values.ingressClass.isDefaultClass ) ) }} +{{- $namespace = "default" }} +{{- end }} +--- +apiVersion: traefik.containo.us/v1alpha1 +kind: Middleware +metadata: + name: tc-opencors-headers + namespace: {{ $namespace }} +spec: + headers: + accessControlAllowHeaders: + - '*' + accessControlAllowMethods: + - GET + - OPTIONS + - HEAD + - PUT + - POST + accessControlAllowOriginList: + - '*' + accessControlMaxAge: 100 + browserXssFilter: true + contentTypeNosniff: true + customRequestHeaders: + X-Forwarded-Proto: https + customResponseHeaders: + server: "" + forceSTSHeader: true + referrerPolicy: same-origin + sslForceHost: true + sslRedirect: true + stsSeconds: 63072000 +--- +apiVersion: traefik.containo.us/v1alpha1 +kind: Middleware +metadata: + name: tc-closedcors-headers + namespace: {{ $namespace }} +spec: + headers: + accessControlAllowMethods: + - GET + - OPTIONS + - HEAD + - PUT + accessControlMaxAge: 100 + sslRedirect: true + stsSeconds: 63072000 + # stsIncludeSubdomains: false + # stsPreload: false + forceSTSHeader: true + contentTypeNosniff: true + browserXssFilter: true + sslForceHost: true + referrerPolicy: same-origin + customRequestHeaders: + X-Forwarded-Proto: "https" + customResponseHeaders: + server: '' diff --git a/stable/traefik/15.1.1/templates/middlewares/tc-nextcloud.yaml b/stable/traefik/15.1.1/templates/middlewares/tc-nextcloud.yaml new file mode 100644 index 00000000000..6a3019d56c5 --- /dev/null +++ b/stable/traefik/15.1.1/templates/middlewares/tc-nextcloud.yaml @@ -0,0 +1,25 @@ +{{- $values := .Values }} +{{- $namespace := ( printf "ix-%s" .Release.Name ) }} +{{- if or ( not .Values.ingressClass.enabled ) ( and ( .Values.ingressClass.enabled ) ( .Values.ingressClass.isDefaultClass ) ) }} +{{- $namespace = "default" }} +{{- end }} +--- +apiVersion: traefik.containo.us/v1alpha1 +kind: Middleware +metadata: + name: tc-nextcloud-redirectregex-dav + namespace: {{ $namespace }} +spec: + redirectRegex: + regex: "https://(.*)/.well-known/(card|cal)dav" + replacement: "https://${1}/remote.php/dav/" +--- +apiVersion: traefik.containo.us/v1alpha1 +kind: Middleware +metadata: + name: tc-nextcloud-chain + namespace: {{ $namespace }} +spec: + chain: + middlewares: + - name: tc-nextcloud-redirectregex-dav diff --git a/stable/traefik/15.1.1/templates/middlewares/theme-park.yaml b/stable/traefik/15.1.1/templates/middlewares/theme-park.yaml new file mode 100644 index 00000000000..92a4257e279 --- /dev/null +++ b/stable/traefik/15.1.1/templates/middlewares/theme-park.yaml @@ -0,0 +1,26 @@ +{{- $values := .Values }} +{{- $namespace := ( printf "ix-%s" .Release.Name ) }} +{{- if or ( not .Values.ingressClass.enabled ) ( and ( .Values.ingressClass.enabled ) ( .Values.ingressClass.isDefaultClass ) ) }} +{{- $namespace = "default" }} +{{- end }} +{{- range $index, $middlewareData := .Values.middlewares.themePark }} + +--- +apiVersion: traefik.containo.us/v1alpha1 +kind: Middleware +metadata: + name: {{ $middlewareData.name }} + namespace: {{ $namespace }} +spec: + plugin: + traefik-themepark: + app: {{ $middlewareData.appName }} + theme: {{ $middlewareData.themeName }} + baseUrl: {{ $middlewareData.baseUrl }} + {{- if $middlewareData.addons }} + addons: + {{- range $middlewareData.addons }} + - {{ . | quote }} + {{- end }} + {{- end }} +{{- end }} diff --git a/stable/traefik/15.1.1/values.yaml b/stable/traefik/15.1.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/tvheadend/13.0.5/CHANGELOG.md b/stable/tvheadend/13.0.5/CHANGELOG.md new file mode 100644 index 00000000000..f76e64aff03 --- /dev/null +++ b/stable/tvheadend/13.0.5/CHANGELOG.md @@ -0,0 +1,99 @@ +**Important:** +*for the complete changelog, please refer to the website* + + + + +## [tvheadend-13.0.0](https://github.com/truecharts/charts/compare/tvheadend-12.0.50...tvheadend-13.0.0) (2022-11-10) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Major Change to GUI + - update helm general non-major ([#4349](https://github.com/truecharts/charts/issues/4349)) + - update helm general non-major ([#4342](https://github.com/truecharts/charts/issues/4342)) + - update docker general non-major ([#4331](https://github.com/truecharts/charts/issues/4331)) + - update helm general non-major ([#4329](https://github.com/truecharts/charts/issues/4329)) + + ### Fix + +- change container config label + + + + +## [tvheadend-12.0.54](https://github.com/truecharts/charts/compare/tvheadend-12.0.50...tvheadend-12.0.54) (2022-11-08) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - update helm general non-major ([#4349](https://github.com/truecharts/charts/issues/4349)) + - update helm general non-major ([#4342](https://github.com/truecharts/charts/issues/4342)) + - update docker general non-major ([#4331](https://github.com/truecharts/charts/issues/4331)) + - update helm general non-major ([#4329](https://github.com/truecharts/charts/issues/4329)) + + + + +## [tvheadend-12.0.53](https://github.com/truecharts/charts/compare/tvheadend-12.0.50...tvheadend-12.0.53) (2022-11-08) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - update helm general non-major ([#4342](https://github.com/truecharts/charts/issues/4342)) + - update docker general non-major ([#4331](https://github.com/truecharts/charts/issues/4331)) + - update helm general non-major ([#4329](https://github.com/truecharts/charts/issues/4329)) + + + + +## [tvheadend-12.0.53](https://github.com/truecharts/charts/compare/tvheadend-12.0.50...tvheadend-12.0.53) (2022-11-08) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - update helm general non-major ([#4342](https://github.com/truecharts/charts/issues/4342)) + - update docker general non-major ([#4331](https://github.com/truecharts/charts/issues/4331)) + - update helm general non-major ([#4329](https://github.com/truecharts/charts/issues/4329)) + + + + +## [tvheadend-12.0.53](https://github.com/truecharts/charts/compare/tvheadend-12.0.50...tvheadend-12.0.53) (2022-11-08) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - update helm general non-major ([#4342](https://github.com/truecharts/charts/issues/4342)) + - update docker general non-major ([#4331](https://github.com/truecharts/charts/issues/4331)) + - update helm general non-major ([#4329](https://github.com/truecharts/charts/issues/4329)) + + + + +## [tvheadend-12.0.52](https://github.com/truecharts/charts/compare/tvheadend-12.0.50...tvheadend-12.0.52) (2022-11-07) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] diff --git a/stable/tvheadend/13.0.5/Chart.yaml b/stable/tvheadend/13.0.5/Chart.yaml new file mode 100644 index 00000000000..fa5225a30ec --- /dev/null +++ b/stable/tvheadend/13.0.5/Chart.yaml @@ -0,0 +1,31 @@ +apiVersion: v2 +appVersion: "latest" +dependencies: + - name: common + repository: https://library-charts.truecharts.org + version: 10.9.7 +deprecated: false +description: TVheadend - a TV streaming server and digital video recorder +home: https://truecharts.org/docs/charts/stable/tvheadend +icon: https://truecharts.org/img/hotlink-ok/chart-icons/tvheadend.png +keywords: + - tvheadend + - tv + - streaming + - dvb +kubeVersion: ">=1.16.0-0" +maintainers: + - email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +name: tvheadend +sources: + - https://github.com/truecharts/charts/tree/master/charts/stable/tvheadend + - https://github.com/tvheadend/tvheadend +type: application +version: 13.0.5 +annotations: + truecharts.org/catagories: | + - media + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/stable/tvheadend/13.0.5/README.md b/stable/tvheadend/13.0.5/README.md new file mode 100644 index 00000000000..a379ecee3a3 --- /dev/null +++ b/stable/tvheadend/13.0.5/README.md @@ -0,0 +1,106 @@ +# tvheadend + +TVheadend - a TV streaming server and digital video recorder + +TrueCharts can be installed as both *normal* Helm Charts or as Apps on TrueNAS SCALE. + +This readme is just an automatically generated general guide on installing our Helm Charts and Apps. +For more information, please click here: [tvheadend](https://truecharts.org/docs/charts/stable/tvheadend) + +**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)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://library-charts.truecharts.org | common | 10.9.4 | + +## Installing the Chart + +### TrueNAS SCALE + +To install this Chart on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/docs/manual/SCALE%20Apps/Installing-an-App). + +### Helm + +To install the chart with the release name `tvheadend` + +```console +helm repo add TrueCharts https://charts.truecharts.org +helm repo update +helm install tvheadend TrueCharts/tvheadend +``` + +## Uninstall + +### TrueNAS SCALE + +**Upgrading, Rolling Back and Uninstalling the Chart** + +To upgrade, rollback or delete this Chart from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/docs/manual/SCALE%20Apps/Upgrade-rollback-delete-an-App). + +### Helm + +To uninstall the `tvheadend` deployment + +```console +helm uninstall tvheadend +``` + +## Configuration + +### Helm + +#### Available Settings + +Read through the values.yaml file. It has several commented out suggested values. +Other values may be used from the [values.yaml](https://github.com/truecharts/library-charts/tree/main/charts/stable/common/values.yaml) from the [common library](https://github.com/truecharts/library-charts/tree/main/charts/common). + +#### Configure using the command line + +Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. + +```console +helm install tvheadend \ + --set env.TZ="America/New York" \ + TrueCharts/tvheadend +``` + +#### Configure using a yaml file + +Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. + +```console +helm install tvheadend TrueCharts/tvheadend -f values.yaml +``` + +#### Connecting to other charts + +If you need to connect this Chart to other Charts on TrueNAS SCALE, please refer to our [Linking Charts Internally](https://truecharts.org/docs/manual/SCALE%20Apps/linking-apps) quick-start guide. + +## Support + +- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/docs/manual/SCALE%20Apps/Important-MUST-READ). +- See the [Website](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/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/tvheadend/13.0.5/app-changelog.md b/stable/tvheadend/13.0.5/app-changelog.md new file mode 100644 index 00000000000..73d91b6e22f --- /dev/null +++ b/stable/tvheadend/13.0.5/app-changelog.md @@ -0,0 +1,9 @@ + + +## [tvheadend-13.0.5](https://github.com/truecharts/charts/compare/tvheadend-13.0.4...tvheadend-13.0.5) (2022-11-14) + +### Chore + +- update docker general non-major ([#4414](https://github.com/truecharts/charts/issues/4414)) + + \ No newline at end of file diff --git a/stable/tvheadend/13.0.5/app-readme.md b/stable/tvheadend/13.0.5/app-readme.md new file mode 100644 index 00000000000..e57a8da91f7 --- /dev/null +++ b/stable/tvheadend/13.0.5/app-readme.md @@ -0,0 +1,8 @@ +TVheadend - a TV streaming server and digital video recorder + +This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/docs/charts/stable/tvheadend](https://truecharts.org/docs/charts/stable/tvheadend) + +--- + +TrueCharts can only exist due to the incredible effort of our staff. +Please consider making a [donation](https://truecharts.org/docs/about/sponsor) or contributing back to the project any way you can! diff --git a/stable/tvheadend/13.0.5/charts/common-10.9.7.tgz b/stable/tvheadend/13.0.5/charts/common-10.9.7.tgz new file mode 100644 index 0000000000000000000000000000000000000000..3bb192f016c53a80cb8ed717cf4b645c364ae158 GIT binary patch literal 48224 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ⅅYd0t0+#dLo`znMm@+FzD{NKt(3&5 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 literal 0 HcmV?d00001 diff --git a/stable/tvheadend/13.0.5/ix_values.yaml b/stable/tvheadend/13.0.5/ix_values.yaml new file mode 100644 index 00000000000..f95e1746e62 --- /dev/null +++ b/stable/tvheadend/13.0.5/ix_values.yaml @@ -0,0 +1,39 @@ +image: + repository: tccr.io/truecharts/tvheadend + pullPolicy: IfNotPresent + tag: latest@sha256:40c38cb942007e33de0ad2ec899a64802095dabf949d480868688ac802165537 + +securityContext: + runAsNonRoot: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +# See https://github.com/linuxserver/docker-tvheadend#parameters +env: + RUN_OPTS: "" + +service: + main: + ports: + main: + port: 9981 + targetPort: 9981 + htsp: + enabled: true + ports: + htsp: + enabled: true + port: 9982 + targetPort: 9982 + +persistence: + config: + enabled: true + mountPath: "/config" + varrun: + enabled: true + +portal: + enabled: true diff --git a/stable/tvheadend/13.0.5/questions.yaml b/stable/tvheadend/13.0.5/questions.yaml new file mode 100644 index 00000000000..a0dc3005187 --- /dev/null +++ b/stable/tvheadend/13.0.5/questions.yaml @@ -0,0 +1,1894 @@ +groups: + - name: Container Image + description: Image to be used for container + - name: General Settings + description: General Deployment 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: VPN + description: VPN + - name: Addons + description: Addon Configuration + - name: Advanced + description: Advanced Configuration + - name: Documentation + description: Documentation +portals: + open: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: global + label: Global Settings + group: "General Settings" + schema: + type: dict + hidden: true + attrs: + - variable: isSCALE + label: Flag this is SCALE + schema: + type: boolean + default: true + hidden: true + - variable: controller + group: "General Settings" + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: replicas + description: Number of desired pod replicas + label: Desired Replicas + schema: + type: int + required: true + default: 1 + - variable: customextraargs + group: "General Settings" + label: "Extra Args" + description: "Do not click this unless you know what you are doing" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: extraArgs + label: Extra Args + schema: + type: list + default: [] + items: + - variable: arg + label: Arg + schema: + type: string + - variable: env + group: "App Configuration" + label: "Image Environment" + schema: + additional_attrs: true + type: dict + attrs: + - variable: RUN_OPTS + label: "RUN_OPTS" + description: "Container Variable RUN_OPTS" + schema: + type: string + default: "" + - variable: TZ + label: Timezone + group: "General Settings" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - 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..." + group: "General Settings" + 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: 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) + - 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: 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: 9981 + required: true + - variable: htsp + label: "HTSP Service" + description: "HTSP service" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the Service + schema: + type: boolean + default: true + hidden: true + - variable: type + label: Service Type + description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: LoadBalancer + enum: + - value: LoadBalancer + description: LoadBalancer (Expose Ports) + - value: ClusterIP + description: ClusterIP (Do Not Expose Ports) + - 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: ports + label: "Service's Port(s) Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: htsp + label: "TCP Service Port Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 9982 + required: true + - variable: serviceexpert + group: Networking and Services + label: Show Expert Config + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: Networking and Services + label: Host-Networking (Complicated) + schema: + type: boolean + default: false + - variable: externalInterfaces + description: Add External Interfaces + label: Add external Interfaces + group: Networking + schema: + type: list + items: + - variable: interfaceConfiguration + description: Interface Configuration + label: Interface Configuration + schema: + 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: + 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 + show_subquestions_if: static + subquestions: + - variable: staticIPConfigurations + label: Static IP Addresses + schema: + type: list + items: + - variable: staticIP + label: Static IP + schema: + type: ipaddr + cidr: true + - variable: staticRoutes + label: Static Routes + schema: + type: list + 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 + - 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: setPermissions + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "hostPath"]] + 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: 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: setPermissions + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "hostPath"]] + 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: 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: [] + 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: tls + label: TLS-Settings + schema: + type: list + 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: scaleCert + label: Select TrueNAS SCALE Certificate + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: (Advanced) Traefik Entrypoint + description: Entrypoint used by Traefik when using Traefik as Ingress Provider + schema: + type: string + default: websecure + required: true + - variable: ingressClassName + label: (Advanced/Optional) IngressClass Name + 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: ingressList + label: Add Manual Custom Ingresses + group: Ingress + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: Custom Ingress + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Ingress + schema: + type: boolean + default: true + hidden: true + - variable: name + label: Name + schema: + type: string + default: "" + - variable: ingressClassName + label: IngressClass Name + schema: + type: string + default: "" + - variable: hosts + label: Hosts + schema: + type: list + default: [] + items: + - variable: hostEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: host + label: HostName + schema: + type: string + default: "" + required: true + - variable: paths + label: Paths + schema: + type: list + default: [] + items: + - variable: pathEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: path + label: Path + schema: + type: string + required: true + default: "/" + - variable: pathType + label: Path Type + schema: + type: string + required: true + default: Prefix + - variable: 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: tls + label: TLS-Settings + schema: + type: list + 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: scaleCert + label: Select TrueNAS SCALE Certificate + schema: + type: int + $ref: + - "definitions/certificate" + - 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: security + label: Container Security Settings + group: Security and Permissions + schema: + type: dict + additional_attrs: true + attrs: + - variable: editsecurity + label: Change PUID / UMASK values + description: By enabling this you override default set values. + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - 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 + 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: "002" + - variable: advancedSecurity + label: Show Advanced Security Settings + group: Security and Permissions + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: Security Context + schema: + additional_attrs: true + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + - variable: podSecurityContext + group: Security and Permissions + label: Pod Security Context + schema: + additional_attrs: true + type: dict + attrs: + - 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 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - 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 + - 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/docs/manual/SCALE%20Apps/indepth/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/docs/manual/SCALE%20Apps/indepth/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/docs/manual/SCALE%20Apps/indepth/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/docs/manual/SCALE%20Apps/indepth/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: hostPath + 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" + # Specify GPU configuration + - variable: scaleGPU + label: GPU Configuration + group: Resources and Devices + schema: + type: dict + $ref: + - "definitions/gpuConfiguration" + attrs: [] + - 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: git + label: Git Settings + schema: + additional_attrs: true + type: dict + attrs: + - variable: deployKey + description: Raw SSH Private Key + label: Deploy Key + schema: + type: string + - variable: deployKeyBase64 + description: Base64-encoded SSH private key. When both variables are set, the raw SSH key takes precedence + label: Deploy Key Base64 + schema: + type: string + - 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: 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: 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: nodePort + description: Leave Empty to Disable + label: nodePort DEPRECATED + schema: + type: int + default: 36107 + - 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: 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: openvpn + description: OpenVPN + - value: wireguard + description: Wireguard + - value: tailscale + description: Tailscale + - variable: openvpn + label: OpenVPN Settings + schema: + 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 + default: "" + required: true + - variable: tailscale + label: Tailscale Settings + schema: + 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: dict + show_if: [["type", "!=", "disabled"]] + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: true + hidden: true + - variable: type + label: Type + schema: + type: string + default: hostPath + hidden: true + - variable: hostPathType + label: hostPathType + schema: + type: string + default: File + hidden: true + - variable: noMount + label: noMount + schema: + type: boolean + default: true + hidden: true + - variable: hostPath + label: Full Path to File + description: "Path to your local VPN config file for example: /mnt/tank/vpn.conf or /mnt/tank/vpn.ovpn" + schema: + type: string + 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 + - 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/tvheadend/13.0.5/templates/common.yaml b/stable/tvheadend/13.0.5/templates/common.yaml new file mode 100644 index 00000000000..c1a366e1cf0 --- /dev/null +++ b/stable/tvheadend/13.0.5/templates/common.yaml @@ -0,0 +1 @@ +{{ include "tc.common.loader.all" . }} diff --git a/stable/tvheadend/13.0.5/values.yaml b/stable/tvheadend/13.0.5/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/vikunja/5.0.1/app-changelog.md b/stable/vikunja/5.0.1/app-changelog.md deleted file mode 100644 index ecd64495ace..00000000000 --- a/stable/vikunja/5.0.1/app-changelog.md +++ /dev/null @@ -1,9 +0,0 @@ - - -## [vikunja-5.0.1](https://github.com/truecharts/charts/compare/vikunja-5.0.0...vikunja-5.0.1) (2022-11-13) - -### Chore - -- update helm general non-major ([#4404](https://github.com/truecharts/charts/issues/4404)) - - \ No newline at end of file diff --git a/stable/vikunja/5.0.1/CHANGELOG.md b/stable/vikunja/5.0.2/CHANGELOG.md similarity index 100% rename from stable/vikunja/5.0.1/CHANGELOG.md rename to stable/vikunja/5.0.2/CHANGELOG.md diff --git a/stable/vikunja/5.0.1/Chart.yaml b/stable/vikunja/5.0.2/Chart.yaml similarity index 96% rename from stable/vikunja/5.0.1/Chart.yaml rename to stable/vikunja/5.0.2/Chart.yaml index 687358a0c23..e72a6bc129f 100644 --- a/stable/vikunja/5.0.1/Chart.yaml +++ b/stable/vikunja/5.0.2/Chart.yaml @@ -1,5 +1,5 @@ apiVersion: v2 -appVersion: "0.20.0" +appVersion: "0.20.1" dependencies: - name: common repository: https://library-charts.truecharts.org @@ -26,7 +26,7 @@ name: vikunja sources: - https://github.com/truecharts/charts/tree/master/charts/stable/vikunja - https://vikunja.io/docs -version: 5.0.1 +version: 5.0.2 annotations: truecharts.org/catagories: | - productivity diff --git a/stable/vikunja/5.0.1/README.md b/stable/vikunja/5.0.2/README.md similarity index 100% rename from stable/vikunja/5.0.1/README.md rename to stable/vikunja/5.0.2/README.md diff --git a/stable/vikunja/5.0.2/app-changelog.md b/stable/vikunja/5.0.2/app-changelog.md new file mode 100644 index 00000000000..5dcbd5998c7 --- /dev/null +++ b/stable/vikunja/5.0.2/app-changelog.md @@ -0,0 +1,9 @@ + + +## [vikunja-5.0.2](https://github.com/truecharts/charts/compare/vikunja-5.0.1...vikunja-5.0.2) (2022-11-14) + +### Chore + +- update docker general non-major ([#4414](https://github.com/truecharts/charts/issues/4414)) + + \ No newline at end of file diff --git a/stable/vikunja/5.0.1/app-readme.md b/stable/vikunja/5.0.2/app-readme.md similarity index 100% rename from stable/vikunja/5.0.1/app-readme.md rename to stable/vikunja/5.0.2/app-readme.md diff --git a/stable/vikunja/5.0.2/charts/common-10.9.7.tgz b/stable/vikunja/5.0.2/charts/common-10.9.7.tgz new file mode 100644 index 0000000000000000000000000000000000000000..3bb192f016c53a80cb8ed717cf4b645c364ae158 GIT binary patch literal 48224 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ⅅYd0t0+#dLo`znMm@+FzD{NKt(3&5 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 literal 0 HcmV?d00001 diff --git a/stable/vikunja/5.0.2/charts/postgresql-9.0.5.tgz b/stable/vikunja/5.0.2/charts/postgresql-9.0.5.tgz new file mode 100644 index 0000000000000000000000000000000000000000..8fe3c326a7cebf2c7dd995e15f189e0db0ee5bd1 GIT binary patch literal 54554 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