From 1f7ee76ff80fb5c1c2dbdfd2b329b68e28e1e065 Mon Sep 17 00:00:00 2001 From: TrueCharts-Bot Date: Thu, 3 Nov 2022 03:06:37 +0000 Subject: [PATCH] Commit new Chart releases for TrueCharts Signed-off-by: TrueCharts-Bot --- .../mariadb/{3.0.109 => 3.0.110}/CHANGELOG.md | 20 +- .../mariadb/{3.0.109 => 3.0.110}/Chart.lock | 2 +- .../mariadb/{3.0.109 => 3.0.110}/Chart.yaml | 2 +- .../mariadb/{3.0.109 => 3.0.110}/README.md | 0 .../{3.0.109 => 3.0.110}/app-readme.md | 0 .../charts/common-10.7.13.tgz | Bin .../{3.0.109 => 3.0.110}/ix_values.yaml | 2 +- .../{3.0.109 => 3.0.110}/questions.yaml | 0 .../templates/common.yaml | 0 .../mariadb/{3.0.109 => 3.0.110}/values.yaml | 0 .../cryptpad/{0.0.85 => 0.0.86}/CHANGELOG.md | 20 +- .../cryptpad/{0.0.85 => 0.0.86}/Chart.lock | 2 +- .../cryptpad/{0.0.85 => 0.0.86}/Chart.yaml | 2 +- .../cryptpad/{0.0.85 => 0.0.86}/README.md | 0 .../cryptpad/{0.0.85 => 0.0.86}/app-readme.md | 0 .../charts/common-10.7.13.tgz | Bin .../{0.0.85 => 0.0.86}/ix_values.yaml | 2 +- .../{0.0.85 => 0.0.86}/questions.yaml | 0 .../{0.0.85 => 0.0.86}/templates/common.yaml | 0 .../cryptpad/{0.0.85 => 0.0.86}/values.yaml | 0 .../{0.0.37 => 0.0.38}/CHANGELOG.md | 20 +- .../{0.0.37 => 0.0.38}/Chart.lock | 2 +- .../{0.0.37 => 0.0.38}/Chart.yaml | 2 +- .../{0.0.37 => 0.0.38}/README.md | 0 .../{0.0.37 => 0.0.38}/app-readme.md | 0 .../charts/common-10.7.13.tgz | Bin .../{0.0.37 => 0.0.38}/ix_values.yaml | 2 +- .../{0.0.37 => 0.0.38}/questions.yaml | 0 .../{0.0.37 => 0.0.38}/templates/common.yaml | 0 .../{0.0.37 => 0.0.38}/values.yaml | 0 .../ghost/{3.0.80 => 3.0.81}/CHANGELOG.md | 20 +- .../ghost/3.0.81}/Chart.lock | 2 +- incubator/ghost/{3.0.80 => 3.0.81}/Chart.yaml | 4 +- incubator/ghost/{3.0.80 => 3.0.81}/README.md | 0 .../ghost/{3.0.80 => 3.0.81}/app-readme.md | 0 .../charts/common-10.7.13.tgz | Bin .../charts/mariadb-3.0.109.tgz | Bin .../ghost/{3.0.80 => 3.0.81}/ix_values.yaml | 2 +- .../ghost/{3.0.80 => 3.0.81}/questions.yaml | 0 .../{3.0.80 => 3.0.81}/templates/common.yaml | 0 .../ghost/{3.0.80 => 3.0.81}/values.yaml | 0 .../pyload-ng/{0.0.40 => 0.0.41}/CHANGELOG.md | 20 +- .../pyload-ng/{0.0.40 => 0.0.41}/Chart.lock | 2 +- .../pyload-ng/{0.0.40 => 0.0.41}/Chart.yaml | 2 +- .../pyload-ng/{0.0.40 => 0.0.41}/README.md | 0 .../{0.0.40 => 0.0.41}/app-readme.md | 0 .../charts/common-10.7.13.tgz | Bin .../{0.0.40 => 0.0.41}/ix_values.yaml | 2 +- .../{0.0.40 => 0.0.41}/questions.yaml | 0 .../{0.0.40 => 0.0.41}/templates/common.yaml | 0 .../pyload-ng/{0.0.40 => 0.0.41}/values.yaml | 0 incubator/rimgo/0.0.97/Chart.lock | 6 - .../rimgo/{0.0.97 => 0.0.98}/CHANGELOG.md | 20 +- incubator/rimgo/0.0.98/Chart.lock | 6 + incubator/rimgo/{0.0.97 => 0.0.98}/Chart.yaml | 2 +- incubator/rimgo/{0.0.97 => 0.0.98}/README.md | 0 .../rimgo/{0.0.97 => 0.0.98}/app-readme.md | 0 .../charts/common-10.7.13.tgz | Bin .../rimgo/{0.0.97 => 0.0.98}/ix_values.yaml | 2 +- .../rimgo/{0.0.97 => 0.0.98}/questions.yaml | 0 .../{0.0.97 => 0.0.98}/templates/common.yaml | 0 .../rimgo/{0.0.97 => 0.0.98}/values.yaml | 0 .../{0.1.1 => 0.1.2}/CHANGELOG.md | 10 + .../{0.1.1 => 0.1.2}/Chart.lock | 2 +- .../{0.1.1 => 0.1.2}/Chart.yaml | 2 +- .../{0.1.1 => 0.1.2}/README.md | 0 .../{0.1.1 => 0.1.2}/app-readme.md | 0 .../charts/common-10.7.13.tgz | Bin .../charts/postgresql-8.0.114.tgz | Bin .../{0.1.1 => 0.1.2}/ix_values.yaml | 2 +- .../{0.1.1 => 0.1.2}/questions.yaml | 0 .../{0.1.1 => 0.1.2}/templates/common.yaml | 0 .../{0.1.1 => 0.1.2}/values.yaml | 0 stable/adguard-home/2.0.15/Chart.lock | 6 - .../{2.0.15 => 2.0.16}/CHANGELOG.md | 20 +- stable/adguard-home/2.0.16/Chart.lock | 6 + .../{2.0.15 => 2.0.16}/Chart.yaml | 4 +- .../adguard-home/{2.0.15 => 2.0.16}/README.md | 0 .../{2.0.15 => 2.0.16}/app-readme.md | 0 .../charts/common-10.7.13.tgz | Bin .../{2.0.15 => 2.0.16}/ix_values.yaml | 2 +- .../{2.0.15 => 2.0.16}/questions.yaml | 0 .../{2.0.15 => 2.0.16}/templates/common.yaml | 0 .../{2.0.15 => 2.0.16}/values.yaml | 0 .../baserow/{3.0.53 => 3.0.54}/CHANGELOG.md | 20 +- stable/baserow/{3.0.53 => 3.0.54}/Chart.lock | 2 +- stable/baserow/{3.0.53 => 3.0.54}/Chart.yaml | 4 +- stable/baserow/{3.0.53 => 3.0.54}/README.md | 0 .../baserow/{3.0.53 => 3.0.54}/app-readme.md | 0 .../charts/common-10.7.13.tgz | Bin .../charts/postgresql-8.0.114.tgz | Bin .../charts/redis-3.0.111.tgz | Bin .../baserow/{3.0.53 => 3.0.54}/ix_values.yaml | 2 +- .../baserow/{3.0.53 => 3.0.54}/questions.yaml | 0 .../{3.0.53 => 3.0.54}/templates/_secrets.tpl | 0 .../{3.0.53 => 3.0.54}/templates/common.yaml | 0 stable/baserow/{3.0.53 => 3.0.54}/values.yaml | 0 stable/bazarr/11.0.45/CHANGELOG.md | 99 + stable/bazarr/11.0.45/Chart.lock | 6 + stable/bazarr/11.0.45/Chart.yaml | 34 + stable/bazarr/11.0.45/README.md | 107 + stable/bazarr/11.0.45/app-readme.md | 8 + .../11.0.45}/charts/common-10.7.13.tgz | Bin stable/bazarr/11.0.45/ix_values.yaml | 19 + stable/bazarr/11.0.45/questions.yaml | 2567 ++++++++++++++ .../11.0.45}/templates/common.yaml | 0 .../4.0.48 => bazarr/11.0.45}/values.yaml | 0 stable/code-server/4.0.48/Chart.lock | 6 - .../{4.0.48 => 4.0.49}/CHANGELOG.md | 20 +- stable/code-server/4.0.49/Chart.lock | 6 + .../code-server/{4.0.48 => 4.0.49}/Chart.yaml | 4 +- .../code-server/{4.0.48 => 4.0.49}/README.md | 0 .../{4.0.48 => 4.0.49}/app-readme.md | 0 .../4.0.49}/charts/common-10.7.13.tgz | Bin .../{4.0.48 => 4.0.49}/ix_values.yaml | 2 +- .../{4.0.48 => 4.0.49}/questions.yaml | 0 .../{4.0.48 => 4.0.49}/templates/common.yaml | 0 .../5.1.91 => code-server/4.0.49}/values.yaml | 0 stable/custom-app/5.1.91/Chart.lock | 6 - .../{5.1.91 => 5.1.92}/CHANGELOG.md | 20 +- stable/custom-app/5.1.92/Chart.lock | 6 + .../custom-app/{5.1.91 => 5.1.92}/Chart.yaml | 4 +- .../custom-app/{5.1.91 => 5.1.92}/README.md | 0 .../{5.1.91 => 5.1.92}/app-readme.md | 0 .../5.1.92}/charts/common-10.7.13.tgz | Bin .../{5.1.91 => 5.1.92}/ci/test-values.yaml | 2 +- .../{5.1.91 => 5.1.92}/ix_values.yaml | 2 +- .../{5.1.91 => 5.1.92}/questions.yaml | 0 .../5.1.92}/templates/common.yaml | 0 .../2.0.52 => custom-app/5.1.92}/values.yaml | 0 stable/duckdns/2.0.52/Chart.lock | 6 - .../duckdns/{2.0.52 => 2.0.53}/CHANGELOG.md | 20 +- stable/duckdns/2.0.53/Chart.lock | 6 + stable/duckdns/{2.0.52 => 2.0.53}/Chart.yaml | 2 +- stable/duckdns/{2.0.52 => 2.0.53}/README.md | 0 .../duckdns/{2.0.52 => 2.0.53}/app-readme.md | 0 .../2.0.53}/charts/common-10.7.13.tgz | Bin .../duckdns/{2.0.52 => 2.0.53}/ix_values.yaml | 2 +- .../duckdns/{2.0.52 => 2.0.53}/questions.yaml | 0 .../2.0.53}/templates/common.yaml | 0 .../4.0.4 => duckdns/2.0.53}/values.yaml | 0 stable/emby/11.0.44/CHANGELOG.md | 99 + stable/emby/11.0.44/Chart.lock | 6 + stable/emby/11.0.44/Chart.yaml | 31 + stable/emby/11.0.44/README.md | 107 + stable/emby/11.0.44/app-readme.md | 8 + .../11.0.44}/charts/common-10.7.13.tgz | Bin stable/emby/11.0.44/ix_values.yaml | 22 + stable/emby/11.0.44/questions.yaml | 2567 ++++++++++++++ .../11.0.44}/templates/common.yaml | 0 .../2.0.57 => emby/11.0.44}/values.yaml | 0 stable/esphome/11.0.51/CHANGELOG.md | 99 + stable/esphome/11.0.51/Chart.lock | 6 + stable/esphome/11.0.51/Chart.yaml | 29 + stable/esphome/11.0.51/README.md | 107 + stable/esphome/11.0.51/app-readme.md | 8 + .../11.0.51}/charts/common-10.7.13.tgz | Bin stable/esphome/11.0.51/ix_values.yaml | 43 + stable/esphome/11.0.51/questions.yaml | 2745 ++++++++++++++ .../11.0.51}/templates/common.yaml | 0 .../6.0.47 => esphome/11.0.51}/values.yaml | 0 stable/fireflyiii/16.0.55/CHANGELOG.md | 99 + .../4.0.4 => fireflyiii/16.0.55}/Chart.lock | 2 +- stable/fireflyiii/16.0.55/Chart.yaml | 37 + stable/fireflyiii/16.0.55/README.md | 108 + stable/fireflyiii/16.0.55/app-readme.md | 8 + .../16.0.55}/charts/common-10.7.13.tgz | Bin .../16.0.55}/charts/postgresql-8.0.114.tgz | Bin .../16.0.55}/charts/redis-3.0.111.tgz | Bin stable/fireflyiii/16.0.55/ix_values.yaml | 93 + stable/fireflyiii/16.0.55/questions.yaml | 2586 ++++++++++++++ .../fireflyiii/16.0.55/templates/_cronjob.tpl | 54 + .../fireflyiii/16.0.55/templates/_secrets.tpl | 24 + .../fireflyiii/16.0.55/templates/common.yaml | 11 + .../1.0.33 => fireflyiii/16.0.55}/values.yaml | 0 stable/grist/{4.0.4 => 4.0.5}/CHANGELOG.md | 20 +- stable/{n8n/4.0.74 => grist/4.0.5}/Chart.lock | 2 +- stable/grist/{4.0.4 => 4.0.5}/Chart.yaml | 4 +- stable/grist/{4.0.4 => 4.0.5}/README.md | 0 stable/grist/{4.0.4 => 4.0.5}/app-readme.md | 0 .../4.0.5}/charts/common-10.7.13.tgz | Bin .../4.0.5}/charts/postgresql-8.0.114.tgz | Bin .../4.0.5}/charts/redis-3.0.111.tgz | Bin stable/grist/{4.0.4 => 4.0.5}/ix_values.yaml | 2 +- stable/grist/{4.0.4 => 4.0.5}/questions.yaml | 0 .../{4.0.4 => 4.0.5}/templates/_config.tpl | 0 .../{4.0.4 => 4.0.5}/templates/_secret.tpl | 0 .../{4.0.4 => 4.0.5}/templates/common.yaml | 0 .../3.0.86 => grist/4.0.5}/values.yaml | 0 stable/ispy-agent-dvr/2.0.57/Chart.lock | 6 - .../{2.0.57 => 2.0.58}/CHANGELOG.md | 20 +- stable/ispy-agent-dvr/2.0.58/Chart.lock | 6 + .../{2.0.57 => 2.0.58}/Chart.yaml | 4 +- .../{2.0.57 => 2.0.58}/README.md | 0 .../{2.0.57 => 2.0.58}/app-readme.md | 0 .../2.0.58}/charts/common-10.7.13.tgz | Bin .../{2.0.57 => 2.0.58}/ix_values.yaml | 2 +- .../{2.0.57 => 2.0.58}/questions.yaml | 0 .../2.0.58}/templates/common.yaml | 0 .../2.0.58}/values.yaml | 0 stable/jackett/11.0.122/CHANGELOG.md | 99 + stable/jackett/11.0.122/Chart.lock | 6 + stable/jackett/11.0.122/Chart.yaml | 31 + stable/jackett/11.0.122/README.md | 106 + stable/jackett/11.0.122/app-readme.md | 8 + .../11.0.122}/charts/common-10.7.13.tgz | Bin stable/jackett/11.0.122/ix_values.yaml | 33 + stable/jackett/11.0.122/questions.yaml | 2567 ++++++++++++++ .../11.0.122}/templates/common.yaml | 0 .../6.3.1 => jackett/11.0.122}/values.yaml | 0 stable/komga/6.0.47/Chart.lock | 6 - stable/komga/{6.0.47 => 6.0.48}/CHANGELOG.md | 20 +- stable/komga/6.0.48/Chart.lock | 6 + stable/komga/{6.0.47 => 6.0.48}/Chart.yaml | 4 +- stable/komga/{6.0.47 => 6.0.48}/README.md | 0 stable/komga/{6.0.47 => 6.0.48}/app-readme.md | 0 .../6.0.48}/charts/common-10.7.13.tgz | Bin .../komga/{6.0.47 => 6.0.48}/ix_values.yaml | 2 +- .../komga/{6.0.47 => 6.0.48}/questions.yaml | 0 .../6.0.48}/templates/common.yaml | 0 .../6.0.47 => komga/6.0.48}/values.yaml | 0 stable/libreddit/1.0.33/Chart.lock | 6 - .../libreddit/{1.0.33 => 1.0.34}/CHANGELOG.md | 20 +- stable/libreddit/1.0.34/Chart.lock | 6 + .../libreddit/{1.0.33 => 1.0.34}/Chart.yaml | 2 +- stable/libreddit/{1.0.33 => 1.0.34}/README.md | 0 .../{1.0.33 => 1.0.34}/app-readme.md | 0 .../1.0.34}/charts/common-10.7.13.tgz | Bin .../{1.0.33 => 1.0.34}/ix_values.yaml | 2 +- .../{1.0.33 => 1.0.34}/questions.yaml | 0 .../1.0.34}/templates/common.yaml | 0 .../1.0.11 => libreddit/1.0.34}/values.yaml | 0 stable/matomo/{3.0.86 => 3.0.87}/CHANGELOG.md | 20 +- .../matomo/3.0.87}/Chart.lock | 2 +- stable/matomo/{3.0.86 => 3.0.87}/Chart.yaml | 2 +- stable/matomo/{3.0.86 => 3.0.87}/README.md | 0 .../matomo/{3.0.86 => 3.0.87}/app-readme.md | 0 .../3.0.87}/charts/common-10.7.13.tgz | Bin .../charts/mariadb-3.0.109.tgz | Bin .../matomo/{3.0.86 => 3.0.87}/ix_values.yaml | 2 +- .../matomo/{3.0.86 => 3.0.87}/questions.yaml | 0 .../3.0.87}/templates/common.yaml | 0 .../3.0.133 => matomo/3.0.87}/values.yaml | 0 stable/n8n/{4.0.74 => 4.0.75}/CHANGELOG.md | 20 +- stable/n8n/4.0.75/Chart.lock | 12 + stable/n8n/{4.0.74 => 4.0.75}/Chart.yaml | 4 +- stable/n8n/{4.0.74 => 4.0.75}/README.md | 0 stable/n8n/{4.0.74 => 4.0.75}/app-readme.md | 0 .../4.0.75}/charts/common-10.7.13.tgz | Bin .../4.0.75}/charts/postgresql-8.0.114.tgz | Bin .../4.0.75}/charts/redis-3.0.111.tgz | Bin stable/n8n/{4.0.74 => 4.0.75}/ix_values.yaml | 2 +- stable/n8n/{4.0.74 => 4.0.75}/questions.yaml | 0 .../templates/_configmap.tpl | 0 .../{4.0.74 => 4.0.75}/templates/common.yaml | 0 .../2.0.59 => n8n/4.0.75}/values.yaml | 0 stable/omada-controller/6.3.1/Chart.lock | 6 - .../{6.3.1 => 6.3.2}/CHANGELOG.md | 26 +- stable/omada-controller/6.3.2/Chart.lock | 6 + .../{6.3.1 => 6.3.2}/Chart.yaml | 2 +- .../{6.3.1 => 6.3.2}/README.md | 0 .../{6.3.1 => 6.3.2}/app-readme.md | 0 .../6.3.2}/charts/common-10.7.13.tgz | Bin .../{6.3.1 => 6.3.2}/ix_values.yaml | 0 .../{6.3.1 => 6.3.2}/questions.yaml | 0 .../6.3.2}/templates/common.yaml | 0 .../6.3.2}/values.yaml | 0 stable/photoprism/10.0.54/CHANGELOG.md | 99 + stable/photoprism/10.0.54/Chart.lock | 9 + stable/photoprism/10.0.54/Chart.yaml | 34 + stable/photoprism/10.0.54/README.md | 108 + stable/photoprism/10.0.54/app-readme.md | 8 + .../10.0.54}/charts/common-10.7.13.tgz | Bin .../10.0.54/charts/mariadb-3.0.109.tgz | Bin 0 -> 60864 bytes stable/photoprism/10.0.54/ix_values.yaml | 61 + stable/photoprism/10.0.54/questions.yaml | 2607 ++++++++++++++ .../photoprism/10.0.54/templates/common.yaml | 1 + .../1.0.11 => photoprism/10.0.54}/values.yaml | 0 stable/plex/10.2.22/CHANGELOG.md | 99 + stable/plex/10.2.22/Chart.lock | 6 + stable/plex/10.2.22/Chart.yaml | 29 + stable/plex/10.2.22/README.md | 106 + stable/plex/10.2.22/app-readme.md | 8 + .../10.2.22}/charts/common-10.7.13.tgz | Bin stable/plex/10.2.22/ix_values.yaml | 36 + stable/plex/10.2.22/questions.yaml | 2615 ++++++++++++++ stable/plex/10.2.22/templates/common.yaml | 1 + .../3.0.59 => plex/10.2.22}/values.yaml | 0 stable/prowlarr/6.0.47/Chart.lock | 6 - .../prowlarr/{6.0.47 => 6.0.48}/CHANGELOG.md | 20 +- stable/prowlarr/6.0.48/Chart.lock | 6 + stable/prowlarr/{6.0.47 => 6.0.48}/Chart.yaml | 2 +- stable/prowlarr/{6.0.47 => 6.0.48}/README.md | 0 .../prowlarr/{6.0.47 => 6.0.48}/app-readme.md | 0 .../6.0.48}/charts/common-10.7.13.tgz | Bin .../{6.0.47 => 6.0.48}/ix_values.yaml | 2 +- .../{6.0.47 => 6.0.48}/questions.yaml | 0 stable/prowlarr/6.0.48/templates/common.yaml | 1 + .../4.0.43 => prowlarr/6.0.48}/values.yaml | 0 stable/qbitmanage/1.0.11/Chart.lock | 6 - .../{1.0.11 => 1.0.12}/CHANGELOG.md | 20 +- stable/qbitmanage/1.0.12/Chart.lock | 6 + .../qbitmanage/{1.0.11 => 1.0.12}/Chart.yaml | 4 +- .../qbitmanage/{1.0.11 => 1.0.12}/README.md | 0 .../{1.0.11 => 1.0.12}/app-readme.md | 0 .../1.0.12/charts/common-10.7.13.tgz | Bin 0 -> 49153 bytes .../{1.0.11 => 1.0.12}/ix_values.yaml | 2 +- .../{1.0.11 => 1.0.12}/questions.yaml | 0 .../{1.0.11 => 1.0.12}/templates/common.yaml | 0 .../1.0.12/values.yaml} | 0 stable/radarr/11.0.44/CHANGELOG.md | 99 + stable/radarr/11.0.44/Chart.lock | 6 + stable/radarr/11.0.44/Chart.yaml | 30 + stable/radarr/11.0.44/README.md | 106 + stable/radarr/11.0.44/app-readme.md | 8 + .../radarr/11.0.44/charts/common-10.7.13.tgz | Bin 0 -> 49153 bytes stable/radarr/11.0.44/ix_values.yaml | 43 + stable/radarr/11.0.44/questions.yaml | 2567 ++++++++++++++ stable/radarr/11.0.44/templates/common.yaml | 1 + .../11.0.44/values.yaml} | 0 .../rsshub/{3.0.133 => 3.0.134}/CHANGELOG.md | 20 +- stable/rsshub/{3.0.133 => 3.0.134}/Chart.lock | 2 +- stable/rsshub/{3.0.133 => 3.0.134}/Chart.yaml | 2 +- stable/rsshub/{3.0.133 => 3.0.134}/README.md | 0 .../rsshub/{3.0.133 => 3.0.134}/app-readme.md | 0 .../rsshub/3.0.134/charts/common-10.7.13.tgz | Bin 0 -> 49153 bytes .../rsshub/3.0.134/charts/redis-3.0.111.tgz | Bin 0 -> 55989 bytes .../{3.0.133 => 3.0.134}/ix_values.yaml | 2 +- .../{3.0.133 => 3.0.134}/questions.yaml | 0 stable/rsshub/3.0.134/templates/common.yaml | 1 + stable/rsshub/3.0.134/values.yaml | 0 stable/storj-node/2.0.59/Chart.lock | 6 - .../{2.0.59 => 2.0.60}/CHANGELOG.md | 20 +- stable/storj-node/2.0.60/Chart.lock | 6 + .../storj-node/{2.0.59 => 2.0.60}/Chart.yaml | 4 +- .../storj-node/{2.0.59 => 2.0.60}/README.md | 0 stable/storj-node/2.0.60/SKIPINSTALL | 0 .../{2.0.59 => 2.0.60}/app-readme.md | 0 .../2.0.60/charts/common-10.7.13.tgz | Bin 0 -> 49153 bytes .../{2.0.59 => 2.0.60}/ix_values.yaml | 2 +- .../{2.0.59 => 2.0.60}/questions.yaml | 0 .../storj-node/2.0.60/templates/common.yaml | 1 + stable/storj-node/2.0.60/values.yaml | 0 stable/syncthing/11.0.45/CHANGELOG.md | 99 + stable/syncthing/11.0.45/Chart.lock | 6 + stable/syncthing/11.0.45/Chart.yaml | 30 + stable/syncthing/11.0.45/README.md | 108 + stable/syncthing/11.0.45/app-readme.md | 8 + .../11.0.45/charts/common-10.7.13.tgz | Bin 0 -> 49153 bytes stable/syncthing/11.0.45/ix_values.yaml | 42 + stable/syncthing/11.0.45/questions.yaml | 2969 ++++++++++++++++ .../syncthing/11.0.45/templates/common.yaml | 1 + stable/syncthing/11.0.45/values.yaml | 0 stable/tailscale/1.1.17/Chart.lock | 6 - .../tailscale/{1.1.17 => 1.1.18}/CHANGELOG.md | 20 +- stable/tailscale/1.1.18/Chart.lock | 6 + .../tailscale/{1.1.17 => 1.1.18}/Chart.yaml | 4 +- stable/tailscale/{1.1.17 => 1.1.18}/README.md | 0 .../{1.1.17 => 1.1.18}/app-readme.md | 0 .../1.1.18/charts/common-10.7.13.tgz | Bin 0 -> 49153 bytes .../{1.1.17 => 1.1.18}/ix_values.yaml | 2 +- .../{1.1.17 => 1.1.18}/questions.yaml | 0 .../templates/_configmap.tpl | 0 .../{1.1.17 => 1.1.18}/templates/_secret.tpl | 0 .../{1.1.17 => 1.1.18}/templates/common.yaml | 0 stable/tailscale/1.1.18/values.yaml | 0 stable/traefik/13.5.0/CHANGELOG.md | 99 + stable/traefik/13.5.0/Chart.lock | 6 + stable/traefik/13.5.0/Chart.yaml | 31 + stable/traefik/13.5.0/README.md | 108 + stable/traefik/13.5.0/app-readme.md | 8 + .../traefik/13.5.0/charts/common-10.7.13.tgz | Bin 0 -> 49153 bytes stable/traefik/13.5.0/crds/ingressroute.yaml | 209 ++ .../traefik/13.5.0/crds/ingressroutetcp.yaml | 169 + .../traefik/13.5.0/crds/ingressrouteudp.yaml | 87 + stable/traefik/13.5.0/crds/middlewares.yaml | 587 +++ .../traefik/13.5.0/crds/middlewarestcp.yaml | 61 + .../13.5.0/crds/serverstransports.yaml | 108 + stable/traefik/13.5.0/crds/tlsoptions.yaml | 92 + stable/traefik/13.5.0/crds/tlsstores.yaml | 68 + .../traefik/13.5.0/crds/traefikservices.yaml | 289 ++ stable/traefik/13.5.0/ix_values.yaml | 392 ++ stable/traefik/13.5.0/questions.yaml | 2951 +++++++++++++++ stable/traefik/13.5.0/templates/_args.tpl | 172 + stable/traefik/13.5.0/templates/_helpers.tpl | 22 + .../13.5.0/templates/_ingressclass.tpl | 24 + .../13.5.0/templates/_ingressroute.tpl | 25 + .../traefik/13.5.0/templates/_portalhook.tpl | 26 + .../traefik/13.5.0/templates/_tlsoptions.tpl | 12 + stable/traefik/13.5.0/templates/common.yaml | 24 + .../templates/middlewares/addPrefix.yaml | 17 + .../middlewares/basic-middleware.yaml | 62 + .../templates/middlewares/basicauth.yaml | 34 + .../13.5.0/templates/middlewares/chain.yaml | 21 + .../templates/middlewares/forwardauth.yaml | 34 + .../templates/middlewares/ipwhitelist.yaml | 33 + .../templates/middlewares/ratelimit.yaml | 19 + .../13.5.0/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/13.5.0/values.yaml | 0 stable/unifi/11.0.44/CHANGELOG.md | 99 + stable/unifi/11.0.44/Chart.lock | 6 + stable/unifi/11.0.44/Chart.yaml | 30 + stable/unifi/11.0.44/README.md | 107 + stable/unifi/11.0.44/app-readme.md | 8 + .../unifi/11.0.44/charts/common-10.7.13.tgz | Bin 0 -> 49153 bytes stable/unifi/11.0.44/ix_values.yaml | 64 + stable/unifi/11.0.44/questions.yaml | 3156 +++++++++++++++++ stable/unifi/11.0.44/templates/common.yaml | 1 + stable/unifi/11.0.44/values.yaml | 0 stable/whisparr/1.0.11/Chart.lock | 6 - .../whisparr/{1.0.11 => 1.0.12}/CHANGELOG.md | 20 +- stable/whisparr/1.0.12/Chart.lock | 6 + stable/whisparr/{1.0.11 => 1.0.12}/Chart.yaml | 2 +- stable/whisparr/{1.0.11 => 1.0.12}/README.md | 0 .../whisparr/{1.0.11 => 1.0.12}/app-readme.md | 0 .../whisparr/1.0.12/charts/common-10.7.13.tgz | Bin 0 -> 49153 bytes .../{1.0.11 => 1.0.12}/ix_values.yaml | 2 +- .../{1.0.11 => 1.0.12}/questions.yaml | 0 .../{1.0.11 => 1.0.12}/templates/common.yaml | 0 stable/whisparr/1.0.12/values.yaml | 0 stable/xwiki/{3.0.59 => 3.0.60}/CHANGELOG.md | 20 +- stable/xwiki/{3.0.59 => 3.0.60}/Chart.lock | 2 +- stable/xwiki/{3.0.59 => 3.0.60}/Chart.yaml | 2 +- stable/xwiki/{3.0.59 => 3.0.60}/README.md | 0 stable/xwiki/{3.0.59 => 3.0.60}/app-readme.md | 0 stable/xwiki/3.0.60/charts/common-10.7.13.tgz | Bin 0 -> 49153 bytes .../3.0.60/charts/postgresql-8.0.114.tgz | Bin 0 -> 55210 bytes .../xwiki/{3.0.59 => 3.0.60}/ix_values.yaml | 2 +- .../xwiki/{3.0.59 => 3.0.60}/questions.yaml | 0 stable/xwiki/3.0.60/templates/common.yaml | 1 + stable/xwiki/3.0.60/values.yaml | 0 stable/zigbee2mqtt/4.0.43/Chart.lock | 6 - .../{4.0.43 => 4.0.44}/CHANGELOG.md | 20 +- stable/zigbee2mqtt/4.0.44/Chart.lock | 6 + .../zigbee2mqtt/{4.0.43 => 4.0.44}/Chart.yaml | 4 +- .../zigbee2mqtt/{4.0.43 => 4.0.44}/README.md | 0 stable/zigbee2mqtt/4.0.44/SKIPINSTALL | 0 .../{4.0.43 => 4.0.44}/app-readme.md | 0 .../4.0.44/charts/common-10.7.13.tgz | Bin 0 -> 49153 bytes .../{4.0.43 => 4.0.44}/ix_values.yaml | 2 +- .../{4.0.43 => 4.0.44}/questions.yaml | 0 .../{4.0.43 => 4.0.44}/templates/common.yaml | 0 stable/zigbee2mqtt/4.0.44/values.yaml | 0 stable/zwavejs2mqtt/12.0.14/CHANGELOG.md | 99 + stable/zwavejs2mqtt/12.0.14/Chart.lock | 6 + stable/zwavejs2mqtt/12.0.14/Chart.yaml | 32 + stable/zwavejs2mqtt/12.0.14/README.md | 107 + stable/zwavejs2mqtt/12.0.14/app-readme.md | 8 + .../12.0.14/charts/common-10.7.13.tgz | Bin 0 -> 49153 bytes stable/zwavejs2mqtt/12.0.14/ix_values.yaml | 85 + stable/zwavejs2mqtt/12.0.14/questions.yaml | 2701 ++++++++++++++ .../12.0.14/templates/common.yaml | 1 + stable/zwavejs2mqtt/12.0.14/values.yaml | 0 460 files changed, 39517 insertions(+), 432 deletions(-) rename dependency/mariadb/{3.0.109 => 3.0.110}/CHANGELOG.md (91%) rename dependency/mariadb/{3.0.109 => 3.0.110}/Chart.lock (80%) rename dependency/mariadb/{3.0.109 => 3.0.110}/Chart.yaml (98%) rename dependency/mariadb/{3.0.109 => 3.0.110}/README.md (100%) rename dependency/mariadb/{3.0.109 => 3.0.110}/app-readme.md (100%) rename dependency/mariadb/{3.0.109 => 3.0.110}/charts/common-10.7.13.tgz (100%) rename dependency/mariadb/{3.0.109 => 3.0.110}/ix_values.yaml (97%) rename dependency/mariadb/{3.0.109 => 3.0.110}/questions.yaml (100%) rename dependency/mariadb/{3.0.109 => 3.0.110}/templates/common.yaml (100%) rename dependency/mariadb/{3.0.109 => 3.0.110}/values.yaml (100%) rename incubator/cryptpad/{0.0.85 => 0.0.86}/CHANGELOG.md (91%) rename incubator/cryptpad/{0.0.85 => 0.0.86}/Chart.lock (80%) rename incubator/cryptpad/{0.0.85 => 0.0.86}/Chart.yaml (98%) rename incubator/cryptpad/{0.0.85 => 0.0.86}/README.md (100%) rename incubator/cryptpad/{0.0.85 => 0.0.86}/app-readme.md (100%) rename incubator/cryptpad/{0.0.85 => 0.0.86}/charts/common-10.7.13.tgz (100%) rename incubator/cryptpad/{0.0.85 => 0.0.86}/ix_values.yaml (91%) rename incubator/cryptpad/{0.0.85 => 0.0.86}/questions.yaml (100%) rename incubator/cryptpad/{0.0.85 => 0.0.86}/templates/common.yaml (100%) rename incubator/cryptpad/{0.0.85 => 0.0.86}/values.yaml (100%) rename incubator/firefox-desktop-g3/{0.0.37 => 0.0.38}/CHANGELOG.md (90%) rename incubator/firefox-desktop-g3/{0.0.37 => 0.0.38}/Chart.lock (80%) rename incubator/firefox-desktop-g3/{0.0.37 => 0.0.38}/Chart.yaml (98%) rename incubator/firefox-desktop-g3/{0.0.37 => 0.0.38}/README.md (100%) rename incubator/firefox-desktop-g3/{0.0.37 => 0.0.38}/app-readme.md (100%) rename incubator/firefox-desktop-g3/{0.0.37 => 0.0.38}/charts/common-10.7.13.tgz (100%) rename incubator/firefox-desktop-g3/{0.0.37 => 0.0.38}/ix_values.yaml (87%) rename incubator/firefox-desktop-g3/{0.0.37 => 0.0.38}/questions.yaml (100%) rename incubator/firefox-desktop-g3/{0.0.37 => 0.0.38}/templates/common.yaml (100%) rename incubator/firefox-desktop-g3/{0.0.37 => 0.0.38}/values.yaml (100%) rename incubator/ghost/{3.0.80 => 3.0.81}/CHANGELOG.md (92%) rename {stable/matomo/3.0.86 => incubator/ghost/3.0.81}/Chart.lock (85%) rename incubator/ghost/{3.0.80 => 3.0.81}/Chart.yaml (96%) rename incubator/ghost/{3.0.80 => 3.0.81}/README.md (100%) rename incubator/ghost/{3.0.80 => 3.0.81}/app-readme.md (100%) rename incubator/ghost/{3.0.80 => 3.0.81}/charts/common-10.7.13.tgz (100%) rename incubator/ghost/{3.0.80 => 3.0.81}/charts/mariadb-3.0.109.tgz (100%) rename incubator/ghost/{3.0.80 => 3.0.81}/ix_values.yaml (95%) rename incubator/ghost/{3.0.80 => 3.0.81}/questions.yaml (100%) rename incubator/ghost/{3.0.80 => 3.0.81}/templates/common.yaml (100%) rename incubator/ghost/{3.0.80 => 3.0.81}/values.yaml (100%) rename incubator/pyload-ng/{0.0.40 => 0.0.41}/CHANGELOG.md (90%) rename incubator/pyload-ng/{0.0.40 => 0.0.41}/Chart.lock (80%) rename incubator/pyload-ng/{0.0.40 => 0.0.41}/Chart.yaml (98%) rename incubator/pyload-ng/{0.0.40 => 0.0.41}/README.md (100%) rename incubator/pyload-ng/{0.0.40 => 0.0.41}/app-readme.md (100%) rename incubator/pyload-ng/{0.0.40 => 0.0.41}/charts/common-10.7.13.tgz (100%) rename incubator/pyload-ng/{0.0.40 => 0.0.41}/ix_values.yaml (87%) rename incubator/pyload-ng/{0.0.40 => 0.0.41}/questions.yaml (100%) rename incubator/pyload-ng/{0.0.40 => 0.0.41}/templates/common.yaml (100%) rename incubator/pyload-ng/{0.0.40 => 0.0.41}/values.yaml (100%) delete mode 100644 incubator/rimgo/0.0.97/Chart.lock rename incubator/rimgo/{0.0.97 => 0.0.98}/CHANGELOG.md (92%) create mode 100644 incubator/rimgo/0.0.98/Chart.lock rename incubator/rimgo/{0.0.97 => 0.0.98}/Chart.yaml (97%) rename incubator/rimgo/{0.0.97 => 0.0.98}/README.md (100%) rename incubator/rimgo/{0.0.97 => 0.0.98}/app-readme.md (100%) rename incubator/rimgo/{0.0.97 => 0.0.98}/charts/common-10.7.13.tgz (100%) rename incubator/rimgo/{0.0.97 => 0.0.98}/ix_values.yaml (82%) rename incubator/rimgo/{0.0.97 => 0.0.98}/questions.yaml (100%) rename incubator/rimgo/{0.0.97 => 0.0.98}/templates/common.yaml (100%) rename incubator/rimgo/{0.0.97 => 0.0.98}/values.yaml (100%) rename incubator/speedtest-tracker/{0.1.1 => 0.1.2}/CHANGELOG.md (86%) rename incubator/speedtest-tracker/{0.1.1 => 0.1.2}/Chart.lock (85%) rename incubator/speedtest-tracker/{0.1.1 => 0.1.2}/Chart.yaml (98%) rename incubator/speedtest-tracker/{0.1.1 => 0.1.2}/README.md (100%) rename incubator/speedtest-tracker/{0.1.1 => 0.1.2}/app-readme.md (100%) rename incubator/speedtest-tracker/{0.1.1 => 0.1.2}/charts/common-10.7.13.tgz (100%) rename incubator/speedtest-tracker/{0.1.1 => 0.1.2}/charts/postgresql-8.0.114.tgz (100%) rename incubator/speedtest-tracker/{0.1.1 => 0.1.2}/ix_values.yaml (90%) rename incubator/speedtest-tracker/{0.1.1 => 0.1.2}/questions.yaml (100%) rename incubator/speedtest-tracker/{0.1.1 => 0.1.2}/templates/common.yaml (100%) rename incubator/speedtest-tracker/{0.1.1 => 0.1.2}/values.yaml (100%) delete mode 100644 stable/adguard-home/2.0.15/Chart.lock rename stable/adguard-home/{2.0.15 => 2.0.16}/CHANGELOG.md (90%) create mode 100644 stable/adguard-home/2.0.16/Chart.lock rename stable/adguard-home/{2.0.15 => 2.0.16}/Chart.yaml (95%) rename stable/adguard-home/{2.0.15 => 2.0.16}/README.md (100%) rename stable/adguard-home/{2.0.15 => 2.0.16}/app-readme.md (100%) rename stable/adguard-home/{2.0.15 => 2.0.16}/charts/common-10.7.13.tgz (100%) rename stable/adguard-home/{2.0.15 => 2.0.16}/ix_values.yaml (96%) rename stable/adguard-home/{2.0.15 => 2.0.16}/questions.yaml (100%) rename stable/adguard-home/{2.0.15 => 2.0.16}/templates/common.yaml (100%) rename stable/adguard-home/{2.0.15 => 2.0.16}/values.yaml (100%) rename stable/baserow/{3.0.53 => 3.0.54}/CHANGELOG.md (91%) rename stable/baserow/{3.0.53 => 3.0.54}/Chart.lock (88%) rename stable/baserow/{3.0.53 => 3.0.54}/Chart.yaml (96%) rename stable/baserow/{3.0.53 => 3.0.54}/README.md (100%) rename stable/baserow/{3.0.53 => 3.0.54}/app-readme.md (100%) rename stable/baserow/{3.0.53 => 3.0.54}/charts/common-10.7.13.tgz (100%) rename stable/baserow/{3.0.53 => 3.0.54}/charts/postgresql-8.0.114.tgz (100%) rename stable/baserow/{3.0.53 => 3.0.54}/charts/redis-3.0.111.tgz (100%) rename stable/baserow/{3.0.53 => 3.0.54}/ix_values.yaml (94%) rename stable/baserow/{3.0.53 => 3.0.54}/questions.yaml (100%) rename stable/baserow/{3.0.53 => 3.0.54}/templates/_secrets.tpl (100%) rename stable/baserow/{3.0.53 => 3.0.54}/templates/common.yaml (100%) rename stable/baserow/{3.0.53 => 3.0.54}/values.yaml (100%) create mode 100644 stable/bazarr/11.0.45/CHANGELOG.md create mode 100644 stable/bazarr/11.0.45/Chart.lock create mode 100644 stable/bazarr/11.0.45/Chart.yaml create mode 100644 stable/bazarr/11.0.45/README.md create mode 100644 stable/bazarr/11.0.45/app-readme.md rename stable/{code-server/4.0.48 => bazarr/11.0.45}/charts/common-10.7.13.tgz (100%) create mode 100644 stable/bazarr/11.0.45/ix_values.yaml create mode 100644 stable/bazarr/11.0.45/questions.yaml rename stable/{custom-app/5.1.91 => bazarr/11.0.45}/templates/common.yaml (100%) rename stable/{code-server/4.0.48 => bazarr/11.0.45}/values.yaml (100%) delete mode 100644 stable/code-server/4.0.48/Chart.lock rename stable/code-server/{4.0.48 => 4.0.49}/CHANGELOG.md (91%) create mode 100644 stable/code-server/4.0.49/Chart.lock rename stable/code-server/{4.0.48 => 4.0.49}/Chart.yaml (95%) rename stable/code-server/{4.0.48 => 4.0.49}/README.md (100%) rename stable/code-server/{4.0.48 => 4.0.49}/app-readme.md (100%) rename stable/{custom-app/5.1.91 => code-server/4.0.49}/charts/common-10.7.13.tgz (100%) rename stable/code-server/{4.0.48 => 4.0.49}/ix_values.yaml (85%) rename stable/code-server/{4.0.48 => 4.0.49}/questions.yaml (100%) rename stable/code-server/{4.0.48 => 4.0.49}/templates/common.yaml (100%) rename stable/{custom-app/5.1.91 => code-server/4.0.49}/values.yaml (100%) delete mode 100644 stable/custom-app/5.1.91/Chart.lock rename stable/custom-app/{5.1.91 => 5.1.92}/CHANGELOG.md (91%) create mode 100644 stable/custom-app/5.1.92/Chart.lock rename stable/custom-app/{5.1.91 => 5.1.92}/Chart.yaml (94%) rename stable/custom-app/{5.1.91 => 5.1.92}/README.md (100%) rename stable/custom-app/{5.1.91 => 5.1.92}/app-readme.md (100%) rename stable/{duckdns/2.0.52 => custom-app/5.1.92}/charts/common-10.7.13.tgz (100%) rename stable/custom-app/{5.1.91 => 5.1.92}/ci/test-values.yaml (88%) rename stable/custom-app/{5.1.91 => 5.1.92}/ix_values.yaml (52%) rename stable/custom-app/{5.1.91 => 5.1.92}/questions.yaml (100%) rename stable/{duckdns/2.0.52 => custom-app/5.1.92}/templates/common.yaml (100%) rename stable/{duckdns/2.0.52 => custom-app/5.1.92}/values.yaml (100%) delete mode 100644 stable/duckdns/2.0.52/Chart.lock rename stable/duckdns/{2.0.52 => 2.0.53}/CHANGELOG.md (89%) create mode 100644 stable/duckdns/2.0.53/Chart.lock rename stable/duckdns/{2.0.52 => 2.0.53}/Chart.yaml (98%) rename stable/duckdns/{2.0.52 => 2.0.53}/README.md (100%) rename stable/duckdns/{2.0.52 => 2.0.53}/app-readme.md (100%) rename stable/{grist/4.0.4 => duckdns/2.0.53}/charts/common-10.7.13.tgz (100%) rename stable/duckdns/{2.0.52 => 2.0.53}/ix_values.yaml (84%) rename stable/duckdns/{2.0.52 => 2.0.53}/questions.yaml (100%) rename stable/{ispy-agent-dvr/2.0.57 => duckdns/2.0.53}/templates/common.yaml (100%) rename stable/{grist/4.0.4 => duckdns/2.0.53}/values.yaml (100%) create mode 100644 stable/emby/11.0.44/CHANGELOG.md create mode 100644 stable/emby/11.0.44/Chart.lock create mode 100644 stable/emby/11.0.44/Chart.yaml create mode 100644 stable/emby/11.0.44/README.md create mode 100644 stable/emby/11.0.44/app-readme.md rename stable/{ispy-agent-dvr/2.0.57 => emby/11.0.44}/charts/common-10.7.13.tgz (100%) create mode 100644 stable/emby/11.0.44/ix_values.yaml create mode 100644 stable/emby/11.0.44/questions.yaml rename stable/{komga/6.0.47 => emby/11.0.44}/templates/common.yaml (100%) rename stable/{ispy-agent-dvr/2.0.57 => emby/11.0.44}/values.yaml (100%) create mode 100644 stable/esphome/11.0.51/CHANGELOG.md create mode 100644 stable/esphome/11.0.51/Chart.lock create mode 100644 stable/esphome/11.0.51/Chart.yaml create mode 100644 stable/esphome/11.0.51/README.md create mode 100644 stable/esphome/11.0.51/app-readme.md rename stable/{komga/6.0.47 => esphome/11.0.51}/charts/common-10.7.13.tgz (100%) create mode 100644 stable/esphome/11.0.51/ix_values.yaml create mode 100644 stable/esphome/11.0.51/questions.yaml rename stable/{libreddit/1.0.33 => esphome/11.0.51}/templates/common.yaml (100%) rename stable/{komga/6.0.47 => esphome/11.0.51}/values.yaml (100%) create mode 100644 stable/fireflyiii/16.0.55/CHANGELOG.md rename stable/{grist/4.0.4 => fireflyiii/16.0.55}/Chart.lock (88%) create mode 100644 stable/fireflyiii/16.0.55/Chart.yaml create mode 100644 stable/fireflyiii/16.0.55/README.md create mode 100644 stable/fireflyiii/16.0.55/app-readme.md rename stable/{libreddit/1.0.33 => fireflyiii/16.0.55}/charts/common-10.7.13.tgz (100%) rename stable/{grist/4.0.4 => fireflyiii/16.0.55}/charts/postgresql-8.0.114.tgz (100%) rename stable/{grist/4.0.4 => fireflyiii/16.0.55}/charts/redis-3.0.111.tgz (100%) create mode 100644 stable/fireflyiii/16.0.55/ix_values.yaml create mode 100644 stable/fireflyiii/16.0.55/questions.yaml create mode 100644 stable/fireflyiii/16.0.55/templates/_cronjob.tpl create mode 100644 stable/fireflyiii/16.0.55/templates/_secrets.tpl create mode 100644 stable/fireflyiii/16.0.55/templates/common.yaml rename stable/{libreddit/1.0.33 => fireflyiii/16.0.55}/values.yaml (100%) rename stable/grist/{4.0.4 => 4.0.5}/CHANGELOG.md (91%) rename stable/{n8n/4.0.74 => grist/4.0.5}/Chart.lock (88%) rename stable/grist/{4.0.4 => 4.0.5}/Chart.yaml (97%) rename stable/grist/{4.0.4 => 4.0.5}/README.md (100%) rename stable/grist/{4.0.4 => 4.0.5}/app-readme.md (100%) rename stable/{matomo/3.0.86 => grist/4.0.5}/charts/common-10.7.13.tgz (100%) rename stable/{n8n/4.0.74 => grist/4.0.5}/charts/postgresql-8.0.114.tgz (100%) rename stable/{n8n/4.0.74 => grist/4.0.5}/charts/redis-3.0.111.tgz (100%) rename stable/grist/{4.0.4 => 4.0.5}/ix_values.yaml (94%) rename stable/grist/{4.0.4 => 4.0.5}/questions.yaml (100%) rename stable/grist/{4.0.4 => 4.0.5}/templates/_config.tpl (100%) rename stable/grist/{4.0.4 => 4.0.5}/templates/_secret.tpl (100%) rename stable/grist/{4.0.4 => 4.0.5}/templates/common.yaml (100%) rename stable/{matomo/3.0.86 => grist/4.0.5}/values.yaml (100%) delete mode 100644 stable/ispy-agent-dvr/2.0.57/Chart.lock rename stable/ispy-agent-dvr/{2.0.57 => 2.0.58}/CHANGELOG.md (90%) create mode 100644 stable/ispy-agent-dvr/2.0.58/Chart.lock rename stable/ispy-agent-dvr/{2.0.57 => 2.0.58}/Chart.yaml (95%) rename stable/ispy-agent-dvr/{2.0.57 => 2.0.58}/README.md (100%) rename stable/ispy-agent-dvr/{2.0.57 => 2.0.58}/app-readme.md (100%) rename stable/{n8n/4.0.74 => ispy-agent-dvr/2.0.58}/charts/common-10.7.13.tgz (100%) rename stable/ispy-agent-dvr/{2.0.57 => 2.0.58}/ix_values.yaml (95%) rename stable/ispy-agent-dvr/{2.0.57 => 2.0.58}/questions.yaml (100%) rename stable/{matomo/3.0.86 => ispy-agent-dvr/2.0.58}/templates/common.yaml (100%) rename stable/{n8n/4.0.74 => ispy-agent-dvr/2.0.58}/values.yaml (100%) create mode 100644 stable/jackett/11.0.122/CHANGELOG.md create mode 100644 stable/jackett/11.0.122/Chart.lock create mode 100644 stable/jackett/11.0.122/Chart.yaml create mode 100644 stable/jackett/11.0.122/README.md create mode 100644 stable/jackett/11.0.122/app-readme.md rename stable/{omada-controller/6.3.1 => jackett/11.0.122}/charts/common-10.7.13.tgz (100%) create mode 100644 stable/jackett/11.0.122/ix_values.yaml create mode 100644 stable/jackett/11.0.122/questions.yaml rename stable/{omada-controller/6.3.1 => jackett/11.0.122}/templates/common.yaml (100%) rename stable/{omada-controller/6.3.1 => jackett/11.0.122}/values.yaml (100%) delete mode 100644 stable/komga/6.0.47/Chart.lock rename stable/komga/{6.0.47 => 6.0.48}/CHANGELOG.md (91%) create mode 100644 stable/komga/6.0.48/Chart.lock rename stable/komga/{6.0.47 => 6.0.48}/Chart.yaml (95%) rename stable/komga/{6.0.47 => 6.0.48}/README.md (100%) rename stable/komga/{6.0.47 => 6.0.48}/app-readme.md (100%) rename stable/{prowlarr/6.0.47 => komga/6.0.48}/charts/common-10.7.13.tgz (100%) rename stable/komga/{6.0.47 => 6.0.48}/ix_values.yaml (77%) rename stable/komga/{6.0.47 => 6.0.48}/questions.yaml (100%) rename stable/{prowlarr/6.0.47 => komga/6.0.48}/templates/common.yaml (100%) rename stable/{prowlarr/6.0.47 => komga/6.0.48}/values.yaml (100%) delete mode 100644 stable/libreddit/1.0.33/Chart.lock rename stable/libreddit/{1.0.33 => 1.0.34}/CHANGELOG.md (91%) create mode 100644 stable/libreddit/1.0.34/Chart.lock rename stable/libreddit/{1.0.33 => 1.0.34}/Chart.yaml (98%) rename stable/libreddit/{1.0.33 => 1.0.34}/README.md (100%) rename stable/libreddit/{1.0.33 => 1.0.34}/app-readme.md (100%) rename stable/{qbitmanage/1.0.11 => libreddit/1.0.34}/charts/common-10.7.13.tgz (100%) rename stable/libreddit/{1.0.33 => 1.0.34}/ix_values.yaml (94%) rename stable/libreddit/{1.0.33 => 1.0.34}/questions.yaml (100%) rename stable/{rsshub/3.0.133 => libreddit/1.0.34}/templates/common.yaml (100%) rename stable/{qbitmanage/1.0.11 => libreddit/1.0.34}/values.yaml (100%) rename stable/matomo/{3.0.86 => 3.0.87}/CHANGELOG.md (91%) rename {incubator/ghost/3.0.80 => stable/matomo/3.0.87}/Chart.lock (85%) rename stable/matomo/{3.0.86 => 3.0.87}/Chart.yaml (98%) rename stable/matomo/{3.0.86 => 3.0.87}/README.md (100%) rename stable/matomo/{3.0.86 => 3.0.87}/app-readme.md (100%) rename stable/{rsshub/3.0.133 => matomo/3.0.87}/charts/common-10.7.13.tgz (100%) rename stable/matomo/{3.0.86 => 3.0.87}/charts/mariadb-3.0.109.tgz (100%) rename stable/matomo/{3.0.86 => 3.0.87}/ix_values.yaml (96%) rename stable/matomo/{3.0.86 => 3.0.87}/questions.yaml (100%) rename stable/{storj-node/2.0.59 => matomo/3.0.87}/templates/common.yaml (100%) rename stable/{rsshub/3.0.133 => matomo/3.0.87}/values.yaml (100%) rename stable/n8n/{4.0.74 => 4.0.75}/CHANGELOG.md (91%) create mode 100644 stable/n8n/4.0.75/Chart.lock rename stable/n8n/{4.0.74 => 4.0.75}/Chart.yaml (96%) rename stable/n8n/{4.0.74 => 4.0.75}/README.md (100%) rename stable/n8n/{4.0.74 => 4.0.75}/app-readme.md (100%) rename stable/{storj-node/2.0.59 => n8n/4.0.75}/charts/common-10.7.13.tgz (100%) rename stable/{xwiki/3.0.59 => n8n/4.0.75}/charts/postgresql-8.0.114.tgz (100%) rename stable/{rsshub/3.0.133 => n8n/4.0.75}/charts/redis-3.0.111.tgz (100%) rename stable/n8n/{4.0.74 => 4.0.75}/ix_values.yaml (97%) rename stable/n8n/{4.0.74 => 4.0.75}/questions.yaml (100%) rename stable/n8n/{4.0.74 => 4.0.75}/templates/_configmap.tpl (100%) rename stable/n8n/{4.0.74 => 4.0.75}/templates/common.yaml (100%) rename stable/{storj-node/2.0.59 => n8n/4.0.75}/values.yaml (100%) delete mode 100644 stable/omada-controller/6.3.1/Chart.lock rename stable/omada-controller/{6.3.1 => 6.3.2}/CHANGELOG.md (90%) create mode 100644 stable/omada-controller/6.3.2/Chart.lock rename stable/omada-controller/{6.3.1 => 6.3.2}/Chart.yaml (98%) rename stable/omada-controller/{6.3.1 => 6.3.2}/README.md (100%) rename stable/omada-controller/{6.3.1 => 6.3.2}/app-readme.md (100%) rename stable/{tailscale/1.1.17 => omada-controller/6.3.2}/charts/common-10.7.13.tgz (100%) rename stable/omada-controller/{6.3.1 => 6.3.2}/ix_values.yaml (100%) rename stable/omada-controller/{6.3.1 => 6.3.2}/questions.yaml (100%) rename stable/{xwiki/3.0.59 => omada-controller/6.3.2}/templates/common.yaml (100%) rename stable/{tailscale/1.1.17 => omada-controller/6.3.2}/values.yaml (100%) create mode 100644 stable/photoprism/10.0.54/CHANGELOG.md create mode 100644 stable/photoprism/10.0.54/Chart.lock create mode 100644 stable/photoprism/10.0.54/Chart.yaml create mode 100644 stable/photoprism/10.0.54/README.md create mode 100644 stable/photoprism/10.0.54/app-readme.md rename stable/{whisparr/1.0.11 => photoprism/10.0.54}/charts/common-10.7.13.tgz (100%) create mode 100644 stable/photoprism/10.0.54/charts/mariadb-3.0.109.tgz create mode 100644 stable/photoprism/10.0.54/ix_values.yaml create mode 100644 stable/photoprism/10.0.54/questions.yaml create mode 100644 stable/photoprism/10.0.54/templates/common.yaml rename stable/{whisparr/1.0.11 => photoprism/10.0.54}/values.yaml (100%) create mode 100644 stable/plex/10.2.22/CHANGELOG.md create mode 100644 stable/plex/10.2.22/Chart.lock create mode 100644 stable/plex/10.2.22/Chart.yaml create mode 100644 stable/plex/10.2.22/README.md create mode 100644 stable/plex/10.2.22/app-readme.md rename stable/{xwiki/3.0.59 => plex/10.2.22}/charts/common-10.7.13.tgz (100%) create mode 100644 stable/plex/10.2.22/ix_values.yaml create mode 100644 stable/plex/10.2.22/questions.yaml create mode 100644 stable/plex/10.2.22/templates/common.yaml rename stable/{xwiki/3.0.59 => plex/10.2.22}/values.yaml (100%) delete mode 100644 stable/prowlarr/6.0.47/Chart.lock rename stable/prowlarr/{6.0.47 => 6.0.48}/CHANGELOG.md (91%) create mode 100644 stable/prowlarr/6.0.48/Chart.lock rename stable/prowlarr/{6.0.47 => 6.0.48}/Chart.yaml (98%) rename stable/prowlarr/{6.0.47 => 6.0.48}/README.md (100%) rename stable/prowlarr/{6.0.47 => 6.0.48}/app-readme.md (100%) rename stable/{zigbee2mqtt/4.0.43 => prowlarr/6.0.48}/charts/common-10.7.13.tgz (100%) rename stable/prowlarr/{6.0.47 => 6.0.48}/ix_values.yaml (77%) rename stable/prowlarr/{6.0.47 => 6.0.48}/questions.yaml (100%) create mode 100644 stable/prowlarr/6.0.48/templates/common.yaml rename stable/{zigbee2mqtt/4.0.43 => prowlarr/6.0.48}/values.yaml (100%) delete mode 100644 stable/qbitmanage/1.0.11/Chart.lock rename stable/qbitmanage/{1.0.11 => 1.0.12}/CHANGELOG.md (91%) create mode 100644 stable/qbitmanage/1.0.12/Chart.lock rename stable/qbitmanage/{1.0.11 => 1.0.12}/Chart.yaml (96%) rename stable/qbitmanage/{1.0.11 => 1.0.12}/README.md (100%) rename stable/qbitmanage/{1.0.11 => 1.0.12}/app-readme.md (100%) create mode 100644 stable/qbitmanage/1.0.12/charts/common-10.7.13.tgz rename stable/qbitmanage/{1.0.11 => 1.0.12}/ix_values.yaml (90%) rename stable/qbitmanage/{1.0.11 => 1.0.12}/questions.yaml (100%) rename stable/qbitmanage/{1.0.11 => 1.0.12}/templates/common.yaml (100%) rename stable/{storj-node/2.0.59/SKIPINSTALL => qbitmanage/1.0.12/values.yaml} (100%) create mode 100644 stable/radarr/11.0.44/CHANGELOG.md create mode 100644 stable/radarr/11.0.44/Chart.lock create mode 100644 stable/radarr/11.0.44/Chart.yaml create mode 100644 stable/radarr/11.0.44/README.md create mode 100644 stable/radarr/11.0.44/app-readme.md create mode 100644 stable/radarr/11.0.44/charts/common-10.7.13.tgz create mode 100644 stable/radarr/11.0.44/ix_values.yaml create mode 100644 stable/radarr/11.0.44/questions.yaml create mode 100644 stable/radarr/11.0.44/templates/common.yaml rename stable/{zigbee2mqtt/4.0.43/SKIPINSTALL => radarr/11.0.44/values.yaml} (100%) rename stable/rsshub/{3.0.133 => 3.0.134}/CHANGELOG.md (88%) rename stable/rsshub/{3.0.133 => 3.0.134}/Chart.lock (85%) rename stable/rsshub/{3.0.133 => 3.0.134}/Chart.yaml (98%) rename stable/rsshub/{3.0.133 => 3.0.134}/README.md (100%) rename stable/rsshub/{3.0.133 => 3.0.134}/app-readme.md (100%) create mode 100644 stable/rsshub/3.0.134/charts/common-10.7.13.tgz create mode 100644 stable/rsshub/3.0.134/charts/redis-3.0.111.tgz rename stable/rsshub/{3.0.133 => 3.0.134}/ix_values.yaml (93%) rename stable/rsshub/{3.0.133 => 3.0.134}/questions.yaml (100%) create mode 100644 stable/rsshub/3.0.134/templates/common.yaml create mode 100644 stable/rsshub/3.0.134/values.yaml delete mode 100644 stable/storj-node/2.0.59/Chart.lock rename stable/storj-node/{2.0.59 => 2.0.60}/CHANGELOG.md (91%) create mode 100644 stable/storj-node/2.0.60/Chart.lock rename stable/storj-node/{2.0.59 => 2.0.60}/Chart.yaml (96%) rename stable/storj-node/{2.0.59 => 2.0.60}/README.md (100%) create mode 100644 stable/storj-node/2.0.60/SKIPINSTALL rename stable/storj-node/{2.0.59 => 2.0.60}/app-readme.md (100%) create mode 100644 stable/storj-node/2.0.60/charts/common-10.7.13.tgz rename stable/storj-node/{2.0.59 => 2.0.60}/ix_values.yaml (90%) rename stable/storj-node/{2.0.59 => 2.0.60}/questions.yaml (100%) create mode 100644 stable/storj-node/2.0.60/templates/common.yaml create mode 100644 stable/storj-node/2.0.60/values.yaml create mode 100644 stable/syncthing/11.0.45/CHANGELOG.md create mode 100644 stable/syncthing/11.0.45/Chart.lock create mode 100644 stable/syncthing/11.0.45/Chart.yaml create mode 100644 stable/syncthing/11.0.45/README.md create mode 100644 stable/syncthing/11.0.45/app-readme.md create mode 100644 stable/syncthing/11.0.45/charts/common-10.7.13.tgz create mode 100644 stable/syncthing/11.0.45/ix_values.yaml create mode 100644 stable/syncthing/11.0.45/questions.yaml create mode 100644 stable/syncthing/11.0.45/templates/common.yaml create mode 100644 stable/syncthing/11.0.45/values.yaml delete mode 100644 stable/tailscale/1.1.17/Chart.lock rename stable/tailscale/{1.1.17 => 1.1.18}/CHANGELOG.md (91%) create mode 100644 stable/tailscale/1.1.18/Chart.lock rename stable/tailscale/{1.1.17 => 1.1.18}/Chart.yaml (95%) rename stable/tailscale/{1.1.17 => 1.1.18}/README.md (100%) rename stable/tailscale/{1.1.17 => 1.1.18}/app-readme.md (100%) create mode 100644 stable/tailscale/1.1.18/charts/common-10.7.13.tgz rename stable/tailscale/{1.1.17 => 1.1.18}/ix_values.yaml (94%) rename stable/tailscale/{1.1.17 => 1.1.18}/questions.yaml (100%) rename stable/tailscale/{1.1.17 => 1.1.18}/templates/_configmap.tpl (100%) rename stable/tailscale/{1.1.17 => 1.1.18}/templates/_secret.tpl (100%) rename stable/tailscale/{1.1.17 => 1.1.18}/templates/common.yaml (100%) create mode 100644 stable/tailscale/1.1.18/values.yaml create mode 100644 stable/traefik/13.5.0/CHANGELOG.md create mode 100644 stable/traefik/13.5.0/Chart.lock create mode 100644 stable/traefik/13.5.0/Chart.yaml create mode 100644 stable/traefik/13.5.0/README.md create mode 100644 stable/traefik/13.5.0/app-readme.md create mode 100644 stable/traefik/13.5.0/charts/common-10.7.13.tgz create mode 100644 stable/traefik/13.5.0/crds/ingressroute.yaml create mode 100644 stable/traefik/13.5.0/crds/ingressroutetcp.yaml create mode 100644 stable/traefik/13.5.0/crds/ingressrouteudp.yaml create mode 100644 stable/traefik/13.5.0/crds/middlewares.yaml create mode 100644 stable/traefik/13.5.0/crds/middlewarestcp.yaml create mode 100644 stable/traefik/13.5.0/crds/serverstransports.yaml create mode 100644 stable/traefik/13.5.0/crds/tlsoptions.yaml create mode 100644 stable/traefik/13.5.0/crds/tlsstores.yaml create mode 100644 stable/traefik/13.5.0/crds/traefikservices.yaml create mode 100644 stable/traefik/13.5.0/ix_values.yaml create mode 100644 stable/traefik/13.5.0/questions.yaml create mode 100644 stable/traefik/13.5.0/templates/_args.tpl create mode 100644 stable/traefik/13.5.0/templates/_helpers.tpl create mode 100644 stable/traefik/13.5.0/templates/_ingressclass.tpl create mode 100644 stable/traefik/13.5.0/templates/_ingressroute.tpl create mode 100644 stable/traefik/13.5.0/templates/_portalhook.tpl create mode 100644 stable/traefik/13.5.0/templates/_tlsoptions.tpl create mode 100644 stable/traefik/13.5.0/templates/common.yaml create mode 100644 stable/traefik/13.5.0/templates/middlewares/addPrefix.yaml create mode 100644 stable/traefik/13.5.0/templates/middlewares/basic-middleware.yaml create mode 100644 stable/traefik/13.5.0/templates/middlewares/basicauth.yaml create mode 100644 stable/traefik/13.5.0/templates/middlewares/chain.yaml create mode 100644 stable/traefik/13.5.0/templates/middlewares/forwardauth.yaml create mode 100644 stable/traefik/13.5.0/templates/middlewares/ipwhitelist.yaml create mode 100644 stable/traefik/13.5.0/templates/middlewares/ratelimit.yaml create mode 100644 stable/traefik/13.5.0/templates/middlewares/real-ip.yaml create mode 100644 stable/traefik/13.5.0/templates/middlewares/redirectScheme.yaml create mode 100644 stable/traefik/13.5.0/templates/middlewares/redirectregex.yaml create mode 100644 stable/traefik/13.5.0/templates/middlewares/stripPrefixRegex.yaml create mode 100644 stable/traefik/13.5.0/templates/middlewares/tc-chains.yaml create mode 100644 stable/traefik/13.5.0/templates/middlewares/tc-headers.yaml create mode 100644 stable/traefik/13.5.0/templates/middlewares/tc-nextcloud.yaml create mode 100644 stable/traefik/13.5.0/templates/middlewares/theme-park.yaml create mode 100644 stable/traefik/13.5.0/values.yaml create mode 100644 stable/unifi/11.0.44/CHANGELOG.md create mode 100644 stable/unifi/11.0.44/Chart.lock create mode 100644 stable/unifi/11.0.44/Chart.yaml create mode 100644 stable/unifi/11.0.44/README.md create mode 100644 stable/unifi/11.0.44/app-readme.md create mode 100644 stable/unifi/11.0.44/charts/common-10.7.13.tgz create mode 100644 stable/unifi/11.0.44/ix_values.yaml create mode 100644 stable/unifi/11.0.44/questions.yaml create mode 100644 stable/unifi/11.0.44/templates/common.yaml create mode 100644 stable/unifi/11.0.44/values.yaml delete mode 100644 stable/whisparr/1.0.11/Chart.lock rename stable/whisparr/{1.0.11 => 1.0.12}/CHANGELOG.md (91%) create mode 100644 stable/whisparr/1.0.12/Chart.lock rename stable/whisparr/{1.0.11 => 1.0.12}/Chart.yaml (98%) rename stable/whisparr/{1.0.11 => 1.0.12}/README.md (100%) rename stable/whisparr/{1.0.11 => 1.0.12}/app-readme.md (100%) create mode 100644 stable/whisparr/1.0.12/charts/common-10.7.13.tgz rename stable/whisparr/{1.0.11 => 1.0.12}/ix_values.yaml (91%) rename stable/whisparr/{1.0.11 => 1.0.12}/questions.yaml (100%) rename stable/whisparr/{1.0.11 => 1.0.12}/templates/common.yaml (100%) create mode 100644 stable/whisparr/1.0.12/values.yaml rename stable/xwiki/{3.0.59 => 3.0.60}/CHANGELOG.md (91%) rename stable/xwiki/{3.0.59 => 3.0.60}/Chart.lock (85%) rename stable/xwiki/{3.0.59 => 3.0.60}/Chart.yaml (98%) rename stable/xwiki/{3.0.59 => 3.0.60}/README.md (100%) rename stable/xwiki/{3.0.59 => 3.0.60}/app-readme.md (100%) create mode 100644 stable/xwiki/3.0.60/charts/common-10.7.13.tgz create mode 100644 stable/xwiki/3.0.60/charts/postgresql-8.0.114.tgz rename stable/xwiki/{3.0.59 => 3.0.60}/ix_values.yaml (89%) rename stable/xwiki/{3.0.59 => 3.0.60}/questions.yaml (100%) create mode 100644 stable/xwiki/3.0.60/templates/common.yaml create mode 100644 stable/xwiki/3.0.60/values.yaml delete mode 100644 stable/zigbee2mqtt/4.0.43/Chart.lock rename stable/zigbee2mqtt/{4.0.43 => 4.0.44}/CHANGELOG.md (91%) create mode 100644 stable/zigbee2mqtt/4.0.44/Chart.lock rename stable/zigbee2mqtt/{4.0.43 => 4.0.44}/Chart.yaml (95%) rename stable/zigbee2mqtt/{4.0.43 => 4.0.44}/README.md (100%) create mode 100644 stable/zigbee2mqtt/4.0.44/SKIPINSTALL rename stable/zigbee2mqtt/{4.0.43 => 4.0.44}/app-readme.md (100%) create mode 100644 stable/zigbee2mqtt/4.0.44/charts/common-10.7.13.tgz rename stable/zigbee2mqtt/{4.0.43 => 4.0.44}/ix_values.yaml (98%) rename stable/zigbee2mqtt/{4.0.43 => 4.0.44}/questions.yaml (100%) rename stable/zigbee2mqtt/{4.0.43 => 4.0.44}/templates/common.yaml (100%) create mode 100644 stable/zigbee2mqtt/4.0.44/values.yaml create mode 100644 stable/zwavejs2mqtt/12.0.14/CHANGELOG.md create mode 100644 stable/zwavejs2mqtt/12.0.14/Chart.lock create mode 100644 stable/zwavejs2mqtt/12.0.14/Chart.yaml create mode 100644 stable/zwavejs2mqtt/12.0.14/README.md create mode 100644 stable/zwavejs2mqtt/12.0.14/app-readme.md create mode 100644 stable/zwavejs2mqtt/12.0.14/charts/common-10.7.13.tgz create mode 100644 stable/zwavejs2mqtt/12.0.14/ix_values.yaml create mode 100644 stable/zwavejs2mqtt/12.0.14/questions.yaml create mode 100644 stable/zwavejs2mqtt/12.0.14/templates/common.yaml create mode 100644 stable/zwavejs2mqtt/12.0.14/values.yaml diff --git a/dependency/mariadb/3.0.109/CHANGELOG.md b/dependency/mariadb/3.0.110/CHANGELOG.md similarity index 91% rename from dependency/mariadb/3.0.109/CHANGELOG.md rename to dependency/mariadb/3.0.110/CHANGELOG.md index a3cd2f98929..11990931778 100644 --- a/dependency/mariadb/3.0.109/CHANGELOG.md +++ b/dependency/mariadb/3.0.110/CHANGELOG.md @@ -2,6 +2,16 @@ +## [mariadb-3.0.110](https://github.com/truecharts/charts/compare/mariadb-3.0.109...mariadb-3.0.110) (2022-11-03) + +### Chore + +- Auto-update chart README [skip ci] + - update docker general non-major ([#4286](https://github.com/truecharts/charts/issues/4286)) + + + + ## [mariadb-3.0.109](https://github.com/truecharts/charts/compare/mariadb-3.0.108...mariadb-3.0.109) (2022-11-01) ### Chore @@ -87,13 +97,3 @@ ### Chore -- Auto-update chart README [skip ci] - - update docker general non-major ([#4189](https://github.com/truecharts/charts/issues/4189)) - - - - -## [memcached-3.0.101](https://github.com/truecharts/charts/compare/memcached-3.0.100...memcached-3.0.101) (2022-10-23) - -### Chore - diff --git a/dependency/mariadb/3.0.109/Chart.lock b/dependency/mariadb/3.0.110/Chart.lock similarity index 80% rename from dependency/mariadb/3.0.109/Chart.lock rename to dependency/mariadb/3.0.110/Chart.lock index bafd264419b..e7478b501d3 100644 --- a/dependency/mariadb/3.0.109/Chart.lock +++ b/dependency/mariadb/3.0.110/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://library-charts.truecharts.org version: 10.7.13 digest: sha256:2f2267115af9bdc61a64db6317564e2d07f4f27ccb0627720c8a63d82b1786b7 -generated: "2022-11-01T15:55:07.119714Z" +generated: "2022-11-03T02:44:15.69824039Z" diff --git a/dependency/mariadb/3.0.109/Chart.yaml b/dependency/mariadb/3.0.110/Chart.yaml similarity index 98% rename from dependency/mariadb/3.0.109/Chart.yaml rename to dependency/mariadb/3.0.110/Chart.yaml index 62dab27c8ec..1d2bb207b89 100644 --- a/dependency/mariadb/3.0.109/Chart.yaml +++ b/dependency/mariadb/3.0.110/Chart.yaml @@ -25,7 +25,7 @@ sources: - https://github.com/prometheus/mysqld_exporter - https://mariadb.org type: application -version: 3.0.109 +version: 3.0.110 annotations: truecharts.org/catagories: | - database diff --git a/dependency/mariadb/3.0.109/README.md b/dependency/mariadb/3.0.110/README.md similarity index 100% rename from dependency/mariadb/3.0.109/README.md rename to dependency/mariadb/3.0.110/README.md diff --git a/dependency/mariadb/3.0.109/app-readme.md b/dependency/mariadb/3.0.110/app-readme.md similarity index 100% rename from dependency/mariadb/3.0.109/app-readme.md rename to dependency/mariadb/3.0.110/app-readme.md diff --git a/dependency/mariadb/3.0.109/charts/common-10.7.13.tgz b/dependency/mariadb/3.0.110/charts/common-10.7.13.tgz similarity index 100% rename from dependency/mariadb/3.0.109/charts/common-10.7.13.tgz rename to dependency/mariadb/3.0.110/charts/common-10.7.13.tgz diff --git a/dependency/mariadb/3.0.109/ix_values.yaml b/dependency/mariadb/3.0.110/ix_values.yaml similarity index 97% rename from dependency/mariadb/3.0.109/ix_values.yaml rename to dependency/mariadb/3.0.110/ix_values.yaml index 378649af0f0..481485507f0 100644 --- a/dependency/mariadb/3.0.109/ix_values.yaml +++ b/dependency/mariadb/3.0.110/ix_values.yaml @@ -1,7 +1,7 @@ image: repository: tccr.io/truecharts/mariadb pullPolicy: IfNotPresent - tag: 10.9.3@sha256:0a1f2e8b12d77b356812135732aeb55c8eb30fd913f23919ca9856af43abc41c + tag: 10.9.3@sha256:615fbb022fa22d3205d4ecdafa42b8209654ed1769a6fe68dad85cfb613d7e61 controller: # -- Set the controller type. diff --git a/dependency/mariadb/3.0.109/questions.yaml b/dependency/mariadb/3.0.110/questions.yaml similarity index 100% rename from dependency/mariadb/3.0.109/questions.yaml rename to dependency/mariadb/3.0.110/questions.yaml diff --git a/dependency/mariadb/3.0.109/templates/common.yaml b/dependency/mariadb/3.0.110/templates/common.yaml similarity index 100% rename from dependency/mariadb/3.0.109/templates/common.yaml rename to dependency/mariadb/3.0.110/templates/common.yaml diff --git a/dependency/mariadb/3.0.109/values.yaml b/dependency/mariadb/3.0.110/values.yaml similarity index 100% rename from dependency/mariadb/3.0.109/values.yaml rename to dependency/mariadb/3.0.110/values.yaml diff --git a/incubator/cryptpad/0.0.85/CHANGELOG.md b/incubator/cryptpad/0.0.86/CHANGELOG.md similarity index 91% rename from incubator/cryptpad/0.0.85/CHANGELOG.md rename to incubator/cryptpad/0.0.86/CHANGELOG.md index 565b849ebfc..e303b43b8b6 100644 --- a/incubator/cryptpad/0.0.85/CHANGELOG.md +++ b/incubator/cryptpad/0.0.86/CHANGELOG.md @@ -2,6 +2,16 @@ +## [cryptpad-0.0.86](https://github.com/truecharts/charts/compare/cryptpad-0.0.85...cryptpad-0.0.86) (2022-11-03) + +### Chore + +- Auto-update chart README [skip ci] + - update docker general non-major ([#4286](https://github.com/truecharts/charts/issues/4286)) + + + + ## [cryptpad-0.0.85](https://github.com/truecharts/charts/compare/cryptpad-0.0.84...cryptpad-0.0.85) (2022-11-02) ### Chore @@ -87,13 +97,3 @@ ### Chore -- Auto-update chart README [skip ci] - - update docker general non-major ([#4139](https://github.com/truecharts/charts/issues/4139)) - - - - -## [cryptpad-0.0.77](https://github.com/truecharts/charts/compare/cryptpad-0.0.76...cryptpad-0.0.77) (2022-10-19) - -### Chore - diff --git a/incubator/cryptpad/0.0.85/Chart.lock b/incubator/cryptpad/0.0.86/Chart.lock similarity index 80% rename from incubator/cryptpad/0.0.85/Chart.lock rename to incubator/cryptpad/0.0.86/Chart.lock index c8f90e74412..3da0ae19862 100644 --- a/incubator/cryptpad/0.0.85/Chart.lock +++ b/incubator/cryptpad/0.0.86/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://library-charts.truecharts.org version: 10.7.13 digest: sha256:2f2267115af9bdc61a64db6317564e2d07f4f27ccb0627720c8a63d82b1786b7 -generated: "2022-11-02T08:54:01.061501271Z" +generated: "2022-11-03T02:44:15.646632152Z" diff --git a/incubator/cryptpad/0.0.85/Chart.yaml b/incubator/cryptpad/0.0.86/Chart.yaml similarity index 98% rename from incubator/cryptpad/0.0.85/Chart.yaml rename to incubator/cryptpad/0.0.86/Chart.yaml index 9464f01f5e9..b0497b58aa3 100644 --- a/incubator/cryptpad/0.0.85/Chart.yaml +++ b/incubator/cryptpad/0.0.86/Chart.yaml @@ -28,4 +28,4 @@ sources: - https://cryptpad.fr/ - https://hub.docker.com/r/promasu/cryptpad/ type: application -version: 0.0.85 +version: 0.0.86 diff --git a/incubator/cryptpad/0.0.85/README.md b/incubator/cryptpad/0.0.86/README.md similarity index 100% rename from incubator/cryptpad/0.0.85/README.md rename to incubator/cryptpad/0.0.86/README.md diff --git a/incubator/cryptpad/0.0.85/app-readme.md b/incubator/cryptpad/0.0.86/app-readme.md similarity index 100% rename from incubator/cryptpad/0.0.85/app-readme.md rename to incubator/cryptpad/0.0.86/app-readme.md diff --git a/incubator/cryptpad/0.0.85/charts/common-10.7.13.tgz b/incubator/cryptpad/0.0.86/charts/common-10.7.13.tgz similarity index 100% rename from incubator/cryptpad/0.0.85/charts/common-10.7.13.tgz rename to incubator/cryptpad/0.0.86/charts/common-10.7.13.tgz diff --git a/incubator/cryptpad/0.0.85/ix_values.yaml b/incubator/cryptpad/0.0.86/ix_values.yaml similarity index 91% rename from incubator/cryptpad/0.0.85/ix_values.yaml rename to incubator/cryptpad/0.0.86/ix_values.yaml index 9281f22e817..a94d381d458 100644 --- a/incubator/cryptpad/0.0.85/ix_values.yaml +++ b/incubator/cryptpad/0.0.86/ix_values.yaml @@ -2,7 +2,7 @@ env: {} image: pullPolicy: IfNotPresent repository: tccr.io/truecharts/cryptpad - tag: latest@sha256:19a8e6091a3d764dc339d3979598c3866fd0ad65310010a57deda0bef17f12d3 + tag: latest@sha256:f02af0ccb9e6a1ca8ff488c5783d890503ae156a6f8b52bc287e281f4a20abc3 persistence: blobpath: enabled: true diff --git a/incubator/cryptpad/0.0.85/questions.yaml b/incubator/cryptpad/0.0.86/questions.yaml similarity index 100% rename from incubator/cryptpad/0.0.85/questions.yaml rename to incubator/cryptpad/0.0.86/questions.yaml diff --git a/incubator/cryptpad/0.0.85/templates/common.yaml b/incubator/cryptpad/0.0.86/templates/common.yaml similarity index 100% rename from incubator/cryptpad/0.0.85/templates/common.yaml rename to incubator/cryptpad/0.0.86/templates/common.yaml diff --git a/incubator/cryptpad/0.0.85/values.yaml b/incubator/cryptpad/0.0.86/values.yaml similarity index 100% rename from incubator/cryptpad/0.0.85/values.yaml rename to incubator/cryptpad/0.0.86/values.yaml diff --git a/incubator/firefox-desktop-g3/0.0.37/CHANGELOG.md b/incubator/firefox-desktop-g3/0.0.38/CHANGELOG.md similarity index 90% rename from incubator/firefox-desktop-g3/0.0.37/CHANGELOG.md rename to incubator/firefox-desktop-g3/0.0.38/CHANGELOG.md index 2a7c47dae22..f7fe51681ab 100644 --- a/incubator/firefox-desktop-g3/0.0.37/CHANGELOG.md +++ b/incubator/firefox-desktop-g3/0.0.38/CHANGELOG.md @@ -2,6 +2,16 @@ +## [firefox-desktop-g3-0.0.38](https://github.com/truecharts/charts/compare/firefox-desktop-g3-0.0.37...firefox-desktop-g3-0.0.38) (2022-11-03) + +### Chore + +- Auto-update chart README [skip ci] + - update docker general non-major ([#4286](https://github.com/truecharts/charts/issues/4286)) + + + + ## [firefox-desktop-g3-0.0.37](https://github.com/truecharts/charts/compare/firefox-desktop-g3-0.0.36...firefox-desktop-g3-0.0.37) (2022-11-02) ### Chore @@ -87,13 +97,3 @@ ## [firefox-desktop-g3-0.0.30](https://github.com/truecharts/charts/compare/firefox-desktop-g3-0.0.29...firefox-desktop-g3-0.0.30) (2022-09-29) -### Chore - -- Auto-update chart README [skip ci] - - Auto-update chart README [skip ci] - - update docker general non-major ([#3953](https://github.com/truecharts/charts/issues/3953)) - - - - -## [firefox-desktop-g3-0.0.30](https://github.com/truecharts/charts/compare/firefox-desktop-g3-0.0.29...firefox-desktop-g3-0.0.30) (2022-09-29) diff --git a/incubator/firefox-desktop-g3/0.0.37/Chart.lock b/incubator/firefox-desktop-g3/0.0.38/Chart.lock similarity index 80% rename from incubator/firefox-desktop-g3/0.0.37/Chart.lock rename to incubator/firefox-desktop-g3/0.0.38/Chart.lock index b32258a77a1..a9c9ab622ff 100644 --- a/incubator/firefox-desktop-g3/0.0.37/Chart.lock +++ b/incubator/firefox-desktop-g3/0.0.38/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://library-charts.truecharts.org version: 10.7.13 digest: sha256:2f2267115af9bdc61a64db6317564e2d07f4f27ccb0627720c8a63d82b1786b7 -generated: "2022-11-02T09:02:48.599494804Z" +generated: "2022-11-03T02:44:15.708333576Z" diff --git a/incubator/firefox-desktop-g3/0.0.37/Chart.yaml b/incubator/firefox-desktop-g3/0.0.38/Chart.yaml similarity index 98% rename from incubator/firefox-desktop-g3/0.0.37/Chart.yaml rename to incubator/firefox-desktop-g3/0.0.38/Chart.yaml index 448ba0eae03..5f7d21a7656 100644 --- a/incubator/firefox-desktop-g3/0.0.37/Chart.yaml +++ b/incubator/firefox-desktop-g3/0.0.38/Chart.yaml @@ -30,4 +30,4 @@ sources: - https://github.com/accetto/headless-drawing-g3/ - https://hub.docker.com/r/accetto/ubuntu-vnc-xfce-firefox-g3 type: application -version: 0.0.37 +version: 0.0.38 diff --git a/incubator/firefox-desktop-g3/0.0.37/README.md b/incubator/firefox-desktop-g3/0.0.38/README.md similarity index 100% rename from incubator/firefox-desktop-g3/0.0.37/README.md rename to incubator/firefox-desktop-g3/0.0.38/README.md diff --git a/incubator/firefox-desktop-g3/0.0.37/app-readme.md b/incubator/firefox-desktop-g3/0.0.38/app-readme.md similarity index 100% rename from incubator/firefox-desktop-g3/0.0.37/app-readme.md rename to incubator/firefox-desktop-g3/0.0.38/app-readme.md diff --git a/incubator/firefox-desktop-g3/0.0.37/charts/common-10.7.13.tgz b/incubator/firefox-desktop-g3/0.0.38/charts/common-10.7.13.tgz similarity index 100% rename from incubator/firefox-desktop-g3/0.0.37/charts/common-10.7.13.tgz rename to incubator/firefox-desktop-g3/0.0.38/charts/common-10.7.13.tgz diff --git a/incubator/firefox-desktop-g3/0.0.37/ix_values.yaml b/incubator/firefox-desktop-g3/0.0.38/ix_values.yaml similarity index 87% rename from incubator/firefox-desktop-g3/0.0.37/ix_values.yaml rename to incubator/firefox-desktop-g3/0.0.38/ix_values.yaml index cac44f96a1f..e8ebbfe7517 100644 --- a/incubator/firefox-desktop-g3/0.0.37/ix_values.yaml +++ b/incubator/firefox-desktop-g3/0.0.38/ix_values.yaml @@ -4,7 +4,7 @@ env: image: pullPolicy: IfNotPresent repository: tccr.io/truecharts/firefox-desktop-g3 - tag: latest@sha256:6a10e1ce98cde3dd1f87ece9262707d78a4c75af29d23e47548c850ee5729f61 + tag: latest@sha256:802e2cd5ec4f636130b424f291e0d8d7d9ed061f88d4949bf0c1d6da4872dc8a persistence: internalshare: enabled: true diff --git a/incubator/firefox-desktop-g3/0.0.37/questions.yaml b/incubator/firefox-desktop-g3/0.0.38/questions.yaml similarity index 100% rename from incubator/firefox-desktop-g3/0.0.37/questions.yaml rename to incubator/firefox-desktop-g3/0.0.38/questions.yaml diff --git a/incubator/firefox-desktop-g3/0.0.37/templates/common.yaml b/incubator/firefox-desktop-g3/0.0.38/templates/common.yaml similarity index 100% rename from incubator/firefox-desktop-g3/0.0.37/templates/common.yaml rename to incubator/firefox-desktop-g3/0.0.38/templates/common.yaml diff --git a/incubator/firefox-desktop-g3/0.0.37/values.yaml b/incubator/firefox-desktop-g3/0.0.38/values.yaml similarity index 100% rename from incubator/firefox-desktop-g3/0.0.37/values.yaml rename to incubator/firefox-desktop-g3/0.0.38/values.yaml diff --git a/incubator/ghost/3.0.80/CHANGELOG.md b/incubator/ghost/3.0.81/CHANGELOG.md similarity index 92% rename from incubator/ghost/3.0.80/CHANGELOG.md rename to incubator/ghost/3.0.81/CHANGELOG.md index 79db2de579f..16b20b7092e 100644 --- a/incubator/ghost/3.0.80/CHANGELOG.md +++ b/incubator/ghost/3.0.81/CHANGELOG.md @@ -2,6 +2,16 @@ +## [ghost-3.0.81](https://github.com/truecharts/charts/compare/ghost-3.0.80...ghost-3.0.81) (2022-11-03) + +### Chore + +- Auto-update chart README [skip ci] + - update docker general non-major ([#4286](https://github.com/truecharts/charts/issues/4286)) + + + + ## [ghost-3.0.80](https://github.com/truecharts/charts/compare/ghost-3.0.79...ghost-3.0.80) (2022-11-02) ### Chore @@ -87,13 +97,3 @@ ## [ghost-3.0.73](https://github.com/truecharts/charts/compare/ghost-3.0.72...ghost-3.0.73) (2022-10-14) ### Chore - -- Auto-update chart README [skip ci] - - update docker general non-major ([#4084](https://github.com/truecharts/charts/issues/4084)) - - - - -## [ghost-3.0.72](https://github.com/truecharts/charts/compare/ghost-3.0.71...ghost-3.0.72) (2022-10-12) - -### Chore diff --git a/stable/matomo/3.0.86/Chart.lock b/incubator/ghost/3.0.81/Chart.lock similarity index 85% rename from stable/matomo/3.0.86/Chart.lock rename to incubator/ghost/3.0.81/Chart.lock index 714dc74f3e7..4c3dc3b4b80 100644 --- a/stable/matomo/3.0.86/Chart.lock +++ b/incubator/ghost/3.0.81/Chart.lock @@ -6,4 +6,4 @@ dependencies: repository: https://charts.truecharts.org/ version: 3.0.109 digest: sha256:09e299c01368822db7a5627ce25bf9862595c7c2b8c40df964df95fe29ee88ed -generated: "2022-11-02T10:29:20.399267091Z" +generated: "2022-11-03T02:44:36.394776799Z" diff --git a/incubator/ghost/3.0.80/Chart.yaml b/incubator/ghost/3.0.81/Chart.yaml similarity index 96% rename from incubator/ghost/3.0.80/Chart.yaml rename to incubator/ghost/3.0.81/Chart.yaml index 9a11bd8ce19..185287166f6 100644 --- a/incubator/ghost/3.0.80/Chart.yaml +++ b/incubator/ghost/3.0.81/Chart.yaml @@ -1,5 +1,5 @@ apiVersion: v2 -appVersion: "5.22.1" +appVersion: "5.22.4" dependencies: - name: common repository: https://library-charts.truecharts.org @@ -26,7 +26,7 @@ sources: - https://github.com/TryGhost/Ghost - https://hub.docker.com/_/ghost - https://ghost.org/docs/ -version: 3.0.80 +version: 3.0.81 annotations: truecharts.org/catagories: | - productivity diff --git a/incubator/ghost/3.0.80/README.md b/incubator/ghost/3.0.81/README.md similarity index 100% rename from incubator/ghost/3.0.80/README.md rename to incubator/ghost/3.0.81/README.md diff --git a/incubator/ghost/3.0.80/app-readme.md b/incubator/ghost/3.0.81/app-readme.md similarity index 100% rename from incubator/ghost/3.0.80/app-readme.md rename to incubator/ghost/3.0.81/app-readme.md diff --git a/incubator/ghost/3.0.80/charts/common-10.7.13.tgz b/incubator/ghost/3.0.81/charts/common-10.7.13.tgz similarity index 100% rename from incubator/ghost/3.0.80/charts/common-10.7.13.tgz rename to incubator/ghost/3.0.81/charts/common-10.7.13.tgz diff --git a/incubator/ghost/3.0.80/charts/mariadb-3.0.109.tgz b/incubator/ghost/3.0.81/charts/mariadb-3.0.109.tgz similarity index 100% rename from incubator/ghost/3.0.80/charts/mariadb-3.0.109.tgz rename to incubator/ghost/3.0.81/charts/mariadb-3.0.109.tgz diff --git a/incubator/ghost/3.0.80/ix_values.yaml b/incubator/ghost/3.0.81/ix_values.yaml similarity index 95% rename from incubator/ghost/3.0.80/ix_values.yaml rename to incubator/ghost/3.0.81/ix_values.yaml index b707634725c..279ebe20b89 100644 --- a/incubator/ghost/3.0.80/ix_values.yaml +++ b/incubator/ghost/3.0.81/ix_values.yaml @@ -1,6 +1,6 @@ image: repository: tccr.io/truecharts/ghost - tag: 5.22.1@sha256:26d4a5e1fa1cbb022866b3fbd937c4e5952fbf44ab9bd08bbc430796792ac23e + tag: 5.22.4@sha256:8589ee0c4221796b05b8045bbd4b1cc8c6e5cea2439bbfc2bd82d9e08ab8cdbc pullPolicy: IfNotPresent env: diff --git a/incubator/ghost/3.0.80/questions.yaml b/incubator/ghost/3.0.81/questions.yaml similarity index 100% rename from incubator/ghost/3.0.80/questions.yaml rename to incubator/ghost/3.0.81/questions.yaml diff --git a/incubator/ghost/3.0.80/templates/common.yaml b/incubator/ghost/3.0.81/templates/common.yaml similarity index 100% rename from incubator/ghost/3.0.80/templates/common.yaml rename to incubator/ghost/3.0.81/templates/common.yaml diff --git a/incubator/ghost/3.0.80/values.yaml b/incubator/ghost/3.0.81/values.yaml similarity index 100% rename from incubator/ghost/3.0.80/values.yaml rename to incubator/ghost/3.0.81/values.yaml diff --git a/incubator/pyload-ng/0.0.40/CHANGELOG.md b/incubator/pyload-ng/0.0.41/CHANGELOG.md similarity index 90% rename from incubator/pyload-ng/0.0.40/CHANGELOG.md rename to incubator/pyload-ng/0.0.41/CHANGELOG.md index 72730d67145..b611b90a0f7 100644 --- a/incubator/pyload-ng/0.0.40/CHANGELOG.md +++ b/incubator/pyload-ng/0.0.41/CHANGELOG.md @@ -2,6 +2,16 @@ +## [pyload-ng-0.0.41](https://github.com/truecharts/charts/compare/pyload-ng-0.0.40...pyload-ng-0.0.41) (2022-11-03) + +### Chore + +- Auto-update chart README [skip ci] + - update docker general non-major ([#4286](https://github.com/truecharts/charts/issues/4286)) + + + + ## [pyload-ng-0.0.40](https://github.com/truecharts/charts/compare/pyload-ng-0.0.39...pyload-ng-0.0.40) (2022-11-02) ### Chore @@ -87,13 +97,3 @@ ## [pyload-ng-0.0.33](https://github.com/truecharts/charts/compare/pyload-ng-0.0.32...pyload-ng-0.0.33) (2022-10-05) ### Chore - -- Auto-update chart README [skip ci] - - split addons in smaller templates ([#3979](https://github.com/truecharts/charts/issues/3979)) - - update helm general non-major - - - - -## [pyload-ng-0.0.32](https://github.com/truecharts/charts/compare/pyload-ng-0.0.31...pyload-ng-0.0.32) (2022-09-28) - diff --git a/incubator/pyload-ng/0.0.40/Chart.lock b/incubator/pyload-ng/0.0.41/Chart.lock similarity index 80% rename from incubator/pyload-ng/0.0.40/Chart.lock rename to incubator/pyload-ng/0.0.41/Chart.lock index c3b67bcf3ef..7792897ad60 100644 --- a/incubator/pyload-ng/0.0.40/Chart.lock +++ b/incubator/pyload-ng/0.0.41/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://library-charts.truecharts.org version: 10.7.13 digest: sha256:2f2267115af9bdc61a64db6317564e2d07f4f27ccb0627720c8a63d82b1786b7 -generated: "2022-11-02T09:30:43.785684098Z" +generated: "2022-11-03T02:45:04.293408666Z" diff --git a/incubator/pyload-ng/0.0.40/Chart.yaml b/incubator/pyload-ng/0.0.41/Chart.yaml similarity index 98% rename from incubator/pyload-ng/0.0.40/Chart.yaml rename to incubator/pyload-ng/0.0.41/Chart.yaml index 651368b3f98..43f58610810 100644 --- a/incubator/pyload-ng/0.0.40/Chart.yaml +++ b/incubator/pyload-ng/0.0.41/Chart.yaml @@ -27,4 +27,4 @@ sources: - https://github.com/orgs/linuxserver/packages/container/package/pyload-ng - https://github.com/linuxserver/docker-pyload-ng#readme type: application -version: 0.0.40 +version: 0.0.41 diff --git a/incubator/pyload-ng/0.0.40/README.md b/incubator/pyload-ng/0.0.41/README.md similarity index 100% rename from incubator/pyload-ng/0.0.40/README.md rename to incubator/pyload-ng/0.0.41/README.md diff --git a/incubator/pyload-ng/0.0.40/app-readme.md b/incubator/pyload-ng/0.0.41/app-readme.md similarity index 100% rename from incubator/pyload-ng/0.0.40/app-readme.md rename to incubator/pyload-ng/0.0.41/app-readme.md diff --git a/incubator/pyload-ng/0.0.40/charts/common-10.7.13.tgz b/incubator/pyload-ng/0.0.41/charts/common-10.7.13.tgz similarity index 100% rename from incubator/pyload-ng/0.0.40/charts/common-10.7.13.tgz rename to incubator/pyload-ng/0.0.41/charts/common-10.7.13.tgz diff --git a/incubator/pyload-ng/0.0.40/ix_values.yaml b/incubator/pyload-ng/0.0.41/ix_values.yaml similarity index 87% rename from incubator/pyload-ng/0.0.40/ix_values.yaml rename to incubator/pyload-ng/0.0.41/ix_values.yaml index 2dc6c115011..6a4be6e106f 100644 --- a/incubator/pyload-ng/0.0.40/ix_values.yaml +++ b/incubator/pyload-ng/0.0.41/ix_values.yaml @@ -3,7 +3,7 @@ env: image: pullPolicy: IfNotPresent repository: tccr.io/truecharts/pyload-ng - tag: latest@sha256:7910cd2280306827425e45360b4dca228d51bdb83771d0afd614d5e879aecd65 + tag: latest@sha256:8b5825da92e7dad0a9fc05517907b45967e71b62ed6fa7815702705d2a28ab93 persistence: config: enabled: true diff --git a/incubator/pyload-ng/0.0.40/questions.yaml b/incubator/pyload-ng/0.0.41/questions.yaml similarity index 100% rename from incubator/pyload-ng/0.0.40/questions.yaml rename to incubator/pyload-ng/0.0.41/questions.yaml diff --git a/incubator/pyload-ng/0.0.40/templates/common.yaml b/incubator/pyload-ng/0.0.41/templates/common.yaml similarity index 100% rename from incubator/pyload-ng/0.0.40/templates/common.yaml rename to incubator/pyload-ng/0.0.41/templates/common.yaml diff --git a/incubator/pyload-ng/0.0.40/values.yaml b/incubator/pyload-ng/0.0.41/values.yaml similarity index 100% rename from incubator/pyload-ng/0.0.40/values.yaml rename to incubator/pyload-ng/0.0.41/values.yaml diff --git a/incubator/rimgo/0.0.97/Chart.lock b/incubator/rimgo/0.0.97/Chart.lock deleted file mode 100644 index 095a976e14c..00000000000 --- a/incubator/rimgo/0.0.97/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: https://library-charts.truecharts.org - version: 10.7.13 -digest: sha256:2f2267115af9bdc61a64db6317564e2d07f4f27ccb0627720c8a63d82b1786b7 -generated: "2022-11-02T09:34:12.073375684Z" diff --git a/incubator/rimgo/0.0.97/CHANGELOG.md b/incubator/rimgo/0.0.98/CHANGELOG.md similarity index 92% rename from incubator/rimgo/0.0.97/CHANGELOG.md rename to incubator/rimgo/0.0.98/CHANGELOG.md index 184b9b4dbd4..0518b649a90 100644 --- a/incubator/rimgo/0.0.97/CHANGELOG.md +++ b/incubator/rimgo/0.0.98/CHANGELOG.md @@ -2,6 +2,16 @@ +## [rimgo-0.0.98](https://github.com/truecharts/charts/compare/rimgo-0.0.97...rimgo-0.0.98) (2022-11-03) + +### Chore + +- Auto-update chart README [skip ci] + - update docker general non-major ([#4286](https://github.com/truecharts/charts/issues/4286)) + + + + ## [rimgo-0.0.97](https://github.com/truecharts/charts/compare/rimgo-0.0.96...rimgo-0.0.97) (2022-11-02) ### Chore @@ -87,13 +97,3 @@ ## [rimgo-0.0.90](https://github.com/truecharts/charts/compare/rimgo-0.0.89...rimgo-0.0.90) (2022-10-26) ### Chore - -- Auto-update chart README [skip ci] - - update docker general non-major ([#4189](https://github.com/truecharts/charts/issues/4189)) - - - - -## [rimgo-0.0.89](https://github.com/truecharts/charts/compare/rimgo-0.0.88...rimgo-0.0.89) (2022-10-25) - -### Chore diff --git a/incubator/rimgo/0.0.98/Chart.lock b/incubator/rimgo/0.0.98/Chart.lock new file mode 100644 index 00000000000..cae7212dd9e --- /dev/null +++ b/incubator/rimgo/0.0.98/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://library-charts.truecharts.org + version: 10.7.13 +digest: sha256:2f2267115af9bdc61a64db6317564e2d07f4f27ccb0627720c8a63d82b1786b7 +generated: "2022-11-03T02:45:04.264905497Z" diff --git a/incubator/rimgo/0.0.97/Chart.yaml b/incubator/rimgo/0.0.98/Chart.yaml similarity index 97% rename from incubator/rimgo/0.0.97/Chart.yaml rename to incubator/rimgo/0.0.98/Chart.yaml index 1a652cfba5f..dd6e993ac6e 100644 --- a/incubator/rimgo/0.0.97/Chart.yaml +++ b/incubator/rimgo/0.0.98/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: 0.0.97 +version: 0.0.98 diff --git a/incubator/rimgo/0.0.97/README.md b/incubator/rimgo/0.0.98/README.md similarity index 100% rename from incubator/rimgo/0.0.97/README.md rename to incubator/rimgo/0.0.98/README.md diff --git a/incubator/rimgo/0.0.97/app-readme.md b/incubator/rimgo/0.0.98/app-readme.md similarity index 100% rename from incubator/rimgo/0.0.97/app-readme.md rename to incubator/rimgo/0.0.98/app-readme.md diff --git a/incubator/rimgo/0.0.97/charts/common-10.7.13.tgz b/incubator/rimgo/0.0.98/charts/common-10.7.13.tgz similarity index 100% rename from incubator/rimgo/0.0.97/charts/common-10.7.13.tgz rename to incubator/rimgo/0.0.98/charts/common-10.7.13.tgz diff --git a/incubator/rimgo/0.0.97/ix_values.yaml b/incubator/rimgo/0.0.98/ix_values.yaml similarity index 82% rename from incubator/rimgo/0.0.97/ix_values.yaml rename to incubator/rimgo/0.0.98/ix_values.yaml index f3f165e5dab..7b5b690baaf 100644 --- a/incubator/rimgo/0.0.97/ix_values.yaml +++ b/incubator/rimgo/0.0.98/ix_values.yaml @@ -5,7 +5,7 @@ env: image: pullPolicy: IfNotPresent repository: tccr.io/truecharts/rimgo - tag: latest@sha256:ac40f0a46095d19eae96232b6ed0f1cb42235c362301054af522b47a4af7b70e + tag: latest@sha256:a8533609cc867c5df7eec74a370560988fdf912144c38c02d5b746049c50bcec persistence: {} podSecurityContext: runAsGroup: 0 diff --git a/incubator/rimgo/0.0.97/questions.yaml b/incubator/rimgo/0.0.98/questions.yaml similarity index 100% rename from incubator/rimgo/0.0.97/questions.yaml rename to incubator/rimgo/0.0.98/questions.yaml diff --git a/incubator/rimgo/0.0.97/templates/common.yaml b/incubator/rimgo/0.0.98/templates/common.yaml similarity index 100% rename from incubator/rimgo/0.0.97/templates/common.yaml rename to incubator/rimgo/0.0.98/templates/common.yaml diff --git a/incubator/rimgo/0.0.97/values.yaml b/incubator/rimgo/0.0.98/values.yaml similarity index 100% rename from incubator/rimgo/0.0.97/values.yaml rename to incubator/rimgo/0.0.98/values.yaml diff --git a/incubator/speedtest-tracker/0.1.1/CHANGELOG.md b/incubator/speedtest-tracker/0.1.2/CHANGELOG.md similarity index 86% rename from incubator/speedtest-tracker/0.1.1/CHANGELOG.md rename to incubator/speedtest-tracker/0.1.2/CHANGELOG.md index b6c5373e1bc..72a50f4f9d9 100644 --- a/incubator/speedtest-tracker/0.1.1/CHANGELOG.md +++ b/incubator/speedtest-tracker/0.1.2/CHANGELOG.md @@ -2,6 +2,16 @@ +## [speedtest-tracker-0.1.2](https://github.com/truecharts/charts/compare/speedtest-tracker-0.1.1...speedtest-tracker-0.1.2) (2022-11-03) + +### Chore + +- Auto-update chart README [skip ci] + - update docker general non-major ([#4286](https://github.com/truecharts/charts/issues/4286)) + + + + ## [speedtest-tracker-0.1.1](https://github.com/truecharts/charts/compare/speedtest-tracker-0.1.0...speedtest-tracker-0.1.1) (2022-11-02) ### Chore diff --git a/incubator/speedtest-tracker/0.1.1/Chart.lock b/incubator/speedtest-tracker/0.1.2/Chart.lock similarity index 85% rename from incubator/speedtest-tracker/0.1.1/Chart.lock rename to incubator/speedtest-tracker/0.1.2/Chart.lock index 9dcb26ba669..023a62417a2 100644 --- a/incubator/speedtest-tracker/0.1.1/Chart.lock +++ b/incubator/speedtest-tracker/0.1.2/Chart.lock @@ -6,4 +6,4 @@ dependencies: repository: https://charts.truecharts.org/ version: 8.0.114 digest: sha256:7d5a56e86e0f22e36a8a06215d5b649f5ea0ce3f4b9aa929d3cc8240798214f1 -generated: "2022-11-02T09:40:36.981213277Z" +generated: "2022-11-03T02:45:24.539950211Z" diff --git a/incubator/speedtest-tracker/0.1.1/Chart.yaml b/incubator/speedtest-tracker/0.1.2/Chart.yaml similarity index 98% rename from incubator/speedtest-tracker/0.1.1/Chart.yaml rename to incubator/speedtest-tracker/0.1.2/Chart.yaml index 6cd0f9f363a..b560b1d22d6 100644 --- a/incubator/speedtest-tracker/0.1.1/Chart.yaml +++ b/incubator/speedtest-tracker/0.1.2/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: 0.1.1 +version: 0.1.2 annotations: truecharts.org/catagories: | - speedtest diff --git a/incubator/speedtest-tracker/0.1.1/README.md b/incubator/speedtest-tracker/0.1.2/README.md similarity index 100% rename from incubator/speedtest-tracker/0.1.1/README.md rename to incubator/speedtest-tracker/0.1.2/README.md diff --git a/incubator/speedtest-tracker/0.1.1/app-readme.md b/incubator/speedtest-tracker/0.1.2/app-readme.md similarity index 100% rename from incubator/speedtest-tracker/0.1.1/app-readme.md rename to incubator/speedtest-tracker/0.1.2/app-readme.md diff --git a/incubator/speedtest-tracker/0.1.1/charts/common-10.7.13.tgz b/incubator/speedtest-tracker/0.1.2/charts/common-10.7.13.tgz similarity index 100% rename from incubator/speedtest-tracker/0.1.1/charts/common-10.7.13.tgz rename to incubator/speedtest-tracker/0.1.2/charts/common-10.7.13.tgz diff --git a/incubator/speedtest-tracker/0.1.1/charts/postgresql-8.0.114.tgz b/incubator/speedtest-tracker/0.1.2/charts/postgresql-8.0.114.tgz similarity index 100% rename from incubator/speedtest-tracker/0.1.1/charts/postgresql-8.0.114.tgz rename to incubator/speedtest-tracker/0.1.2/charts/postgresql-8.0.114.tgz diff --git a/incubator/speedtest-tracker/0.1.1/ix_values.yaml b/incubator/speedtest-tracker/0.1.2/ix_values.yaml similarity index 90% rename from incubator/speedtest-tracker/0.1.1/ix_values.yaml rename to incubator/speedtest-tracker/0.1.2/ix_values.yaml index a2c94fedfb7..bd33c5a390a 100644 --- a/incubator/speedtest-tracker/0.1.1/ix_values.yaml +++ b/incubator/speedtest-tracker/0.1.2/ix_values.yaml @@ -1,6 +1,6 @@ image: repository: tccr.io/truecharts/speedtest-tracker - tag: latest@sha256:20a1812252cbda90d9b7a06d32247c28477f2d73fd8295323a8117242dbc3a1a + tag: latest@sha256:8c0bb694c6db503fc2f04a632344bb62353c64dec5e0e787fd199802f1911563 pullPolicy: IfNotPresent securityContext: diff --git a/incubator/speedtest-tracker/0.1.1/questions.yaml b/incubator/speedtest-tracker/0.1.2/questions.yaml similarity index 100% rename from incubator/speedtest-tracker/0.1.1/questions.yaml rename to incubator/speedtest-tracker/0.1.2/questions.yaml diff --git a/incubator/speedtest-tracker/0.1.1/templates/common.yaml b/incubator/speedtest-tracker/0.1.2/templates/common.yaml similarity index 100% rename from incubator/speedtest-tracker/0.1.1/templates/common.yaml rename to incubator/speedtest-tracker/0.1.2/templates/common.yaml diff --git a/incubator/speedtest-tracker/0.1.1/values.yaml b/incubator/speedtest-tracker/0.1.2/values.yaml similarity index 100% rename from incubator/speedtest-tracker/0.1.1/values.yaml rename to incubator/speedtest-tracker/0.1.2/values.yaml diff --git a/stable/adguard-home/2.0.15/Chart.lock b/stable/adguard-home/2.0.15/Chart.lock deleted file mode 100644 index a4fdc6558b1..00000000000 --- a/stable/adguard-home/2.0.15/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: https://library-charts.truecharts.org - version: 10.7.13 -digest: sha256:2f2267115af9bdc61a64db6317564e2d07f4f27ccb0627720c8a63d82b1786b7 -generated: "2022-11-02T09:53:10.627338927Z" diff --git a/stable/adguard-home/2.0.15/CHANGELOG.md b/stable/adguard-home/2.0.16/CHANGELOG.md similarity index 90% rename from stable/adguard-home/2.0.15/CHANGELOG.md rename to stable/adguard-home/2.0.16/CHANGELOG.md index 579c04e9378..f63cac95907 100644 --- a/stable/adguard-home/2.0.15/CHANGELOG.md +++ b/stable/adguard-home/2.0.16/CHANGELOG.md @@ -2,6 +2,16 @@ +## [adguard-home-2.0.16](https://github.com/truecharts/charts/compare/adguard-home-2.0.15...adguard-home-2.0.16) (2022-11-03) + +### Chore + +- Auto-update chart README [skip ci] + - update docker general non-major ([#4286](https://github.com/truecharts/charts/issues/4286)) + + + + ## [adguard-home-2.0.15](https://github.com/truecharts/charts/compare/adguard-home-2.0.14...adguard-home-2.0.15) (2022-11-02) ### Chore @@ -87,13 +97,3 @@ ## [adguard-home-2.0.8](https://github.com/truecharts/charts/compare/adguard-home-2.0.6...adguard-home-2.0.8) (2022-10-02) ### Chore - -- Auto-update chart README [skip ci] - - split addons in smaller templates ([#3979](https://github.com/truecharts/charts/issues/3979)) - - ### Fix - -- Change port on main service ([#3987](https://github.com/truecharts/charts/issues/3987)) - - - diff --git a/stable/adguard-home/2.0.16/Chart.lock b/stable/adguard-home/2.0.16/Chart.lock new file mode 100644 index 00000000000..6d25c19a7d9 --- /dev/null +++ b/stable/adguard-home/2.0.16/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://library-charts.truecharts.org + version: 10.7.13 +digest: sha256:2f2267115af9bdc61a64db6317564e2d07f4f27ccb0627720c8a63d82b1786b7 +generated: "2022-11-03T02:45:40.033194018Z" diff --git a/stable/adguard-home/2.0.15/Chart.yaml b/stable/adguard-home/2.0.16/Chart.yaml similarity index 95% rename from stable/adguard-home/2.0.15/Chart.yaml rename to stable/adguard-home/2.0.16/Chart.yaml index 6cefe840493..80f1004fa5d 100644 --- a/stable/adguard-home/2.0.15/Chart.yaml +++ b/stable/adguard-home/2.0.16/Chart.yaml @@ -1,5 +1,5 @@ apiVersion: v2 -appVersion: "0.107.16" +appVersion: "0.107.17" dependencies: - name: common repository: https://library-charts.truecharts.org @@ -19,7 +19,7 @@ name: adguard-home sources: - https://github.com/truecharts/charts/tree/master/charts/stable/adguard-home - https://hub.docker.com/r/adguard/adguardhome -version: 2.0.15 +version: 2.0.16 annotations: truecharts.org/catagories: | - media diff --git a/stable/adguard-home/2.0.15/README.md b/stable/adguard-home/2.0.16/README.md similarity index 100% rename from stable/adguard-home/2.0.15/README.md rename to stable/adguard-home/2.0.16/README.md diff --git a/stable/adguard-home/2.0.15/app-readme.md b/stable/adguard-home/2.0.16/app-readme.md similarity index 100% rename from stable/adguard-home/2.0.15/app-readme.md rename to stable/adguard-home/2.0.16/app-readme.md diff --git a/stable/adguard-home/2.0.15/charts/common-10.7.13.tgz b/stable/adguard-home/2.0.16/charts/common-10.7.13.tgz similarity index 100% rename from stable/adguard-home/2.0.15/charts/common-10.7.13.tgz rename to stable/adguard-home/2.0.16/charts/common-10.7.13.tgz diff --git a/stable/adguard-home/2.0.15/ix_values.yaml b/stable/adguard-home/2.0.16/ix_values.yaml similarity index 96% rename from stable/adguard-home/2.0.15/ix_values.yaml rename to stable/adguard-home/2.0.16/ix_values.yaml index a49f0d18de9..10cb7fa5708 100644 --- a/stable/adguard-home/2.0.15/ix_values.yaml +++ b/stable/adguard-home/2.0.16/ix_values.yaml @@ -1,6 +1,6 @@ image: repository: tccr.io/truecharts/adguard-home - tag: 0.107.16@sha256:7ba765b5e13dc1175c0bbe0e88522f80a9854bb1a9df0fda72956b906e9cb1b6 + tag: 0.107.17@sha256:a36e235429e93b51db3ef23db971a968ed198a3709a4746bc92db24aa47882d2 pullPolicy: IfNotPresent # Those args are copied from the upstream Dockerfile. diff --git a/stable/adguard-home/2.0.15/questions.yaml b/stable/adguard-home/2.0.16/questions.yaml similarity index 100% rename from stable/adguard-home/2.0.15/questions.yaml rename to stable/adguard-home/2.0.16/questions.yaml diff --git a/stable/adguard-home/2.0.15/templates/common.yaml b/stable/adguard-home/2.0.16/templates/common.yaml similarity index 100% rename from stable/adguard-home/2.0.15/templates/common.yaml rename to stable/adguard-home/2.0.16/templates/common.yaml diff --git a/stable/adguard-home/2.0.15/values.yaml b/stable/adguard-home/2.0.16/values.yaml similarity index 100% rename from stable/adguard-home/2.0.15/values.yaml rename to stable/adguard-home/2.0.16/values.yaml diff --git a/stable/baserow/3.0.53/CHANGELOG.md b/stable/baserow/3.0.54/CHANGELOG.md similarity index 91% rename from stable/baserow/3.0.53/CHANGELOG.md rename to stable/baserow/3.0.54/CHANGELOG.md index 1ad6be935a9..0be9ca7bab1 100644 --- a/stable/baserow/3.0.53/CHANGELOG.md +++ b/stable/baserow/3.0.54/CHANGELOG.md @@ -2,6 +2,16 @@ +## [baserow-3.0.54](https://github.com/truecharts/charts/compare/baserow-3.0.53...baserow-3.0.54) (2022-11-03) + +### Chore + +- Auto-update chart README [skip ci] + - update docker general non-major ([#4286](https://github.com/truecharts/charts/issues/4286)) + + + + ## [baserow-3.0.53](https://github.com/truecharts/charts/compare/baserow-3.0.52...baserow-3.0.53) (2022-11-02) ### Chore @@ -87,13 +97,3 @@ ### Chore -- Auto-update chart README [skip ci] - - update helm general non-major ([#3918](https://github.com/truecharts/charts/issues/3918)) - - - - -## [baserow-3.0.44](https://github.com/truecharts/charts/compare/baserow-3.0.43...baserow-3.0.44) (2022-09-25) - -### Chore - diff --git a/stable/baserow/3.0.53/Chart.lock b/stable/baserow/3.0.54/Chart.lock similarity index 88% rename from stable/baserow/3.0.53/Chart.lock rename to stable/baserow/3.0.54/Chart.lock index bc235aef826..8d9726d83fb 100644 --- a/stable/baserow/3.0.53/Chart.lock +++ b/stable/baserow/3.0.54/Chart.lock @@ -9,4 +9,4 @@ dependencies: repository: https://charts.truecharts.org version: 3.0.111 digest: sha256:238817db6a234e4867dd6bbec814b200393e995f5abd8dd6dca1d7ba6ebf08f6 -generated: "2022-11-02T09:58:22.004671715Z" +generated: "2022-11-03T02:46:29.092896031Z" diff --git a/stable/baserow/3.0.53/Chart.yaml b/stable/baserow/3.0.54/Chart.yaml similarity index 96% rename from stable/baserow/3.0.53/Chart.yaml rename to stable/baserow/3.0.54/Chart.yaml index b085ded237d..854a0a72850 100644 --- a/stable/baserow/3.0.53/Chart.yaml +++ b/stable/baserow/3.0.54/Chart.yaml @@ -1,5 +1,5 @@ apiVersion: v2 -appVersion: "1.12.1" +appVersion: "1.13.0" dependencies: - name: common repository: https://library-charts.truecharts.org @@ -27,7 +27,7 @@ sources: - https://github.com/truecharts/charts/tree/master/charts/stable/baserow - https://hub.docker.com/r/baserow/baserow - https://gitlab.com/bramw/baserow/ -version: 3.0.53 +version: 3.0.54 annotations: truecharts.org/catagories: | - productivity diff --git a/stable/baserow/3.0.53/README.md b/stable/baserow/3.0.54/README.md similarity index 100% rename from stable/baserow/3.0.53/README.md rename to stable/baserow/3.0.54/README.md diff --git a/stable/baserow/3.0.53/app-readme.md b/stable/baserow/3.0.54/app-readme.md similarity index 100% rename from stable/baserow/3.0.53/app-readme.md rename to stable/baserow/3.0.54/app-readme.md diff --git a/stable/baserow/3.0.53/charts/common-10.7.13.tgz b/stable/baserow/3.0.54/charts/common-10.7.13.tgz similarity index 100% rename from stable/baserow/3.0.53/charts/common-10.7.13.tgz rename to stable/baserow/3.0.54/charts/common-10.7.13.tgz diff --git a/stable/baserow/3.0.53/charts/postgresql-8.0.114.tgz b/stable/baserow/3.0.54/charts/postgresql-8.0.114.tgz similarity index 100% rename from stable/baserow/3.0.53/charts/postgresql-8.0.114.tgz rename to stable/baserow/3.0.54/charts/postgresql-8.0.114.tgz diff --git a/stable/baserow/3.0.53/charts/redis-3.0.111.tgz b/stable/baserow/3.0.54/charts/redis-3.0.111.tgz similarity index 100% rename from stable/baserow/3.0.53/charts/redis-3.0.111.tgz rename to stable/baserow/3.0.54/charts/redis-3.0.111.tgz diff --git a/stable/baserow/3.0.53/ix_values.yaml b/stable/baserow/3.0.54/ix_values.yaml similarity index 94% rename from stable/baserow/3.0.53/ix_values.yaml rename to stable/baserow/3.0.54/ix_values.yaml index ecd206fde7a..c4ba2c3f65d 100644 --- a/stable/baserow/3.0.53/ix_values.yaml +++ b/stable/baserow/3.0.54/ix_values.yaml @@ -1,6 +1,6 @@ image: repository: tccr.io/truecharts/baserow - tag: 1.12.1@sha256:49bcb1ea1ed5573d5180c6d30aefb9dc4ed7d634dc2c5866f6f198a6fbcd69d2 + tag: 1.13.0@sha256:72ff0d5793ff7509d8dd860ff4864c88715255278b2fe66c5f8502cf41ce1939 pullPolicy: IfNotPresent securityContext: diff --git a/stable/baserow/3.0.53/questions.yaml b/stable/baserow/3.0.54/questions.yaml similarity index 100% rename from stable/baserow/3.0.53/questions.yaml rename to stable/baserow/3.0.54/questions.yaml diff --git a/stable/baserow/3.0.53/templates/_secrets.tpl b/stable/baserow/3.0.54/templates/_secrets.tpl similarity index 100% rename from stable/baserow/3.0.53/templates/_secrets.tpl rename to stable/baserow/3.0.54/templates/_secrets.tpl diff --git a/stable/baserow/3.0.53/templates/common.yaml b/stable/baserow/3.0.54/templates/common.yaml similarity index 100% rename from stable/baserow/3.0.53/templates/common.yaml rename to stable/baserow/3.0.54/templates/common.yaml diff --git a/stable/baserow/3.0.53/values.yaml b/stable/baserow/3.0.54/values.yaml similarity index 100% rename from stable/baserow/3.0.53/values.yaml rename to stable/baserow/3.0.54/values.yaml diff --git a/stable/bazarr/11.0.45/CHANGELOG.md b/stable/bazarr/11.0.45/CHANGELOG.md new file mode 100644 index 00000000000..a75e7442ab3 --- /dev/null +++ b/stable/bazarr/11.0.45/CHANGELOG.md @@ -0,0 +1,99 @@ +# Changelog + + + +## [bazarr-11.0.45](https://github.com/truecharts/charts/compare/bazarr-11.0.44...bazarr-11.0.45) (2022-11-03) + +### Chore + +- Auto-update chart README [skip ci] + - update docker general non-major ([#4286](https://github.com/truecharts/charts/issues/4286)) + + + + +## [bazarr-11.0.44](https://github.com/truecharts/charts/compare/bazarr-11.0.43...bazarr-11.0.44) (2022-11-02) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major ([#4261](https://github.com/truecharts/charts/issues/4261)) + + + + +## [bazarr-11.0.43](https://github.com/truecharts/charts/compare/bazarr-11.0.42...bazarr-11.0.43) (2022-10-25) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major ([#4182](https://github.com/truecharts/charts/issues/4182)) + + + + +## [bazarr-11.0.42](https://github.com/truecharts/charts/compare/bazarr-11.0.41...bazarr-11.0.42) (2022-10-19) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major ([#4122](https://github.com/truecharts/charts/issues/4122)) + + + + +## [bazarr-11.0.41](https://github.com/truecharts/charts/compare/bazarr-11.0.40...bazarr-11.0.41) (2022-10-16) + +### Chore + +- Auto-update chart README [skip ci] + - update docker general non-major ([#4108](https://github.com/truecharts/charts/issues/4108)) + + + + +## [bazarr-11.0.40](https://github.com/truecharts/charts/compare/bazarr-11.0.39...bazarr-11.0.40) (2022-10-12) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major ([#4071](https://github.com/truecharts/charts/issues/4071)) + + + + +## [bazarr-11.0.39](https://github.com/truecharts/charts/compare/bazarr-11.0.38...bazarr-11.0.39) (2022-10-07) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - update helm general non-major + + + + +## [bazarr-11.0.39](https://github.com/truecharts/charts/compare/bazarr-11.0.38...bazarr-11.0.39) (2022-10-07) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major + + + + +## [bazarr-11.0.38](https://github.com/truecharts/charts/compare/bazarr-11.0.37...bazarr-11.0.38) (2022-10-05) + +### Chore + +- Auto-update chart README [skip ci] + - split addons in smaller templates ([#3979](https://github.com/truecharts/charts/issues/3979)) + - update helm general non-major + + + + +## [bazarr-11.0.37](https://github.com/truecharts/charts/compare/bazarr-11.0.36...bazarr-11.0.37) (2022-09-27) + +### Chore diff --git a/stable/bazarr/11.0.45/Chart.lock b/stable/bazarr/11.0.45/Chart.lock new file mode 100644 index 00000000000..15bcb978ef8 --- /dev/null +++ b/stable/bazarr/11.0.45/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://library-charts.truecharts.org + version: 10.7.13 +digest: sha256:2f2267115af9bdc61a64db6317564e2d07f4f27ccb0627720c8a63d82b1786b7 +generated: "2022-11-03T02:45:52.662543084Z" diff --git a/stable/bazarr/11.0.45/Chart.yaml b/stable/bazarr/11.0.45/Chart.yaml new file mode 100644 index 00000000000..72f130c6b76 --- /dev/null +++ b/stable/bazarr/11.0.45/Chart.yaml @@ -0,0 +1,34 @@ +apiVersion: v2 +appVersion: "1.1.2" +dependencies: + - name: common + repository: https://library-charts.truecharts.org + version: 10.7.13 +deprecated: false +description: Bazarr is a companion application to Sonarr and Radarr. It manages and downloads subtitles based on your requirements +home: https://truecharts.org/docs/charts/stable/bazarr +icon: https://truecharts.org/img/hotlink-ok/chart-icons/bazarr.png +keywords: + - bazarr + - radarr + - sonarr + - subtitles + - usenet + - torrent +kubeVersion: ">=1.16.0-0" +maintainers: + - email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +name: bazarr +sources: + - https://github.com/truecharts/charts/tree/master/charts/stable/bazarr + - https://github.com/morpheus65535/bazarr + - https://hub.docker.com/r/linuxserver/bazarr +type: application +version: 11.0.45 +annotations: + truecharts.org/catagories: | + - media + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/stable/bazarr/11.0.45/README.md b/stable/bazarr/11.0.45/README.md new file mode 100644 index 00000000000..b2486a9d427 --- /dev/null +++ b/stable/bazarr/11.0.45/README.md @@ -0,0 +1,107 @@ +# bazarr + +Bazarr is a companion application to Sonarr and Radarr. It manages and downloads subtitles based on your requirements + +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: [bazarr](https://truecharts.org/docs/charts/stable/bazarr) + +**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.7.13 | + +## 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 `bazarr` + +```console +helm repo add TrueCharts https://charts.truecharts.org +helm repo update +helm install bazarr TrueCharts/bazarr +``` + +## 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 `bazarr` deployment + +```console +helm uninstall bazarr +``` + +## 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 bazarr \ + --set env.TZ="America/New York" \ + TrueCharts/bazarr +``` + +#### 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 bazarr TrueCharts/bazarr -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/bazarr/11.0.45/app-readme.md b/stable/bazarr/11.0.45/app-readme.md new file mode 100644 index 00000000000..28c311a374b --- /dev/null +++ b/stable/bazarr/11.0.45/app-readme.md @@ -0,0 +1,8 @@ +Bazarr is a companion application to Sonarr and Radarr. It manages and downloads subtitles based on your requirements + +This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/docs/charts/stable/bazarr](https://truecharts.org/docs/charts/stable/bazarr) + +--- + +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/code-server/4.0.48/charts/common-10.7.13.tgz b/stable/bazarr/11.0.45/charts/common-10.7.13.tgz similarity index 100% rename from stable/code-server/4.0.48/charts/common-10.7.13.tgz rename to stable/bazarr/11.0.45/charts/common-10.7.13.tgz diff --git a/stable/bazarr/11.0.45/ix_values.yaml b/stable/bazarr/11.0.45/ix_values.yaml new file mode 100644 index 00000000000..2a54a0d83e4 --- /dev/null +++ b/stable/bazarr/11.0.45/ix_values.yaml @@ -0,0 +1,19 @@ +image: + repository: tccr.io/truecharts/bazarr + pullPolicy: IfNotPresent + tag: 1.1.2@sha256:2a1dc284afc39b90619c700ae14b694ac3faa5920db29a2f546f51d6183c97b1 + +service: + main: + ports: + main: + port: 6767 + targetPort: 6767 + +persistence: + config: + enabled: true + mountPath: "/config" + +portal: + enabled: true diff --git a/stable/bazarr/11.0.45/questions.yaml b/stable/bazarr/11.0.45/questions.yaml new file mode 100644 index 00000000000..8513ebb88ca --- /dev/null +++ b/stable/bazarr/11.0.45/questions.yaml @@ -0,0 +1,2567 @@ +groups: + - name: Container Image + description: Image to be used for container + - name: Controller + description: Configure Workload Deployment + - name: Container Configuration + description: Additional Container Configuration + - name: App Configuration + description: App Specific Config Options + - name: Networking and Services + description: Configure Network and Services for Container + - name: Storage and Persistence + description: Persist and Share Data that is Separate from the Container + - name: Ingress + description: Ingress Configuration + - name: Security and Permissions + description: Configure Security Context and Permissions + - name: Resources and Devices + description: "Specify Resources/Devices to be Allocated to Workload" + - name: Middlewares + description: Traefik Middlewares + - name: Metrics + description: Metrics + - name: Addons + description: Addon Configuration + - name: Advanced + description: Advanced Configuration + - name: 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: Controller + schema: + type: dict + hidden: true + attrs: + - variable: isSCALE + label: Flag this is SCALE + schema: + type: boolean + default: true + hidden: true + - variable: controller + group: Controller + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: advanced + label: Show Advanced Controller Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: Please specify type of workload to deploy + label: (Advanced) Controller Type + schema: + type: string + required: true + enum: + - value: deployment + description: Deployment + - value: statefulset + description: Statefulset + - value: daemonset + description: Daemonset + default: deployment + - variable: replicas + description: Number of desired pod replicas + label: Desired Replicas + schema: + type: int + required: true + default: 1 + - variable: strategy + description: Please specify type of workload to deploy + label: (Advanced) Update Strategy + schema: + type: string + required: true + enum: + - value: Recreate + description: "Recreate: Kill existing pods before creating new ones" + - value: RollingUpdate + description: "RollingUpdate: Create new pods and then kill old ones" + - value: OnDelete + description: "(Legacy) OnDelete: ignore .spec.template changes" + default: Recreate + - variable: expert + label: Show Expert Configuration Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: Controller Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Controller Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: customextraargs + group: Controller + 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: Container Configuration + 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: Container Configuration + 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: expertpodconf + group: Container Configuration + label: Show Expert Configuration + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: tty + label: Enable TTY + description: Determines whether containers in a pod runs with TTY enabled. By default pod has it disabled. + group: Workload Details + schema: + type: boolean + default: false + - variable: stdin + label: Enable STDIN + description: Determines whether containers in a pod runs with stdin enabled. By default pod has it disabled. + group: Workload Details + schema: + type: boolean + default: false + - variable: termination + group: Container Configuration + label: Termination settings + schema: + additional_attrs: true + type: dict + attrs: + - variable: gracePeriodSeconds + label: Grace Period Seconds + schema: + type: int + default: 10 + - variable: podLabelsList + group: Container Configuration + label: Pod Labels + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: podAnnotationsList + group: Container Configuration + label: Pod Annotations + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: Label + 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: 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: The IP Families that should be used + schema: + type: list + default: [] + items: + - variable: ipFamily + label: IP Family + schema: + type: string + - 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: 6767 + required: true + - variable: advanced + label: Show Advanced Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: Enable the Port + schema: + type: boolean + hidden: true + default: true + - variable: protocol + label: Port Type + schema: + type: string + default: HTTP + enum: + - value: HTTP + description: HTTP + - value: HTTPS + description: HTTPS + - value: TCP + description: TCP + - value: UDP + description: UDP + - variable: nodePort + label: Node Port (Optional) + description: This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 6767 + - 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: dnsPolicy + group: Networking and Services + label: dnsPolicy + schema: + type: string + default: "" + enum: + - value: "" + description: Default + - value: ClusterFirst + description: ClusterFirst + - value: None + description: None + - variable: dnsConfig + label: DNS Configuration + group: Networking and Services + description: Specify custom DNS configuration which will be applied to the pod + schema: + additional_attrs: true + type: dict + attrs: + - variable: nameservers + label: Name Servers + schema: + default: [] + type: list + items: + - variable: nameserver + label: Name Server + schema: + type: string + - variable: options + label: Options + schema: + default: [] + type: list + items: + - variable: option + label: Option Entry + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: searches + label: Searches + schema: + default: [] + type: list + items: + - variable: search + label: Search Entry + schema: + type: string + - 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: simplePVC + enum: + - value: simplePVC + description: PVC (simple) + - value: simpleHP + description: Host Path (simple) + - value: emptyDir + description: emptyDir + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - 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: setPermissionsSimple + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "simpleHP"]] + type: boolean + default: false + - 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: hostPathSimple + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "simpleHP"]] + type: hostpath + - 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 + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: hostPathType + label: (Advanced) hostPath Type + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: DirectoryOrCreate + description: DirectoryOrCreate + - value: Directory + description: Directory + - value: FileOrCreate + description: FileOrCreate + - value: File + description: File + - value: Socket + description: Socket + - value: CharDevice + description: CharDevice + - value: BlockDevice + description: BlockDevice + - variable: storageClass + label: (Advanced) storageClass + description: "Warning: Anything other than SCALE-ZFS or empty will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: SCALE-ZFS + - variable: accessMode + label: (Advanced) Access Mode + description: Allow or disallow multiple PVC's writhing to the same PV + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: ReadWriteOnce + enum: + - value: ReadWriteOnce + description: ReadWriteOnce + - value: ReadOnlyMany + description: ReadOnlyMany + - value: ReadWriteMany + description: ReadWriteMany + - variable: advanced + label: Show Advanced Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - 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: name + label: Name (Optional) + description: "Not required, please set to config when mounting /config or temp when mounting /tmp" + schema: + type: string + - variable: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: simpleHP + enum: + - value: simplePVC + description: PVC (Simple) + - value: simpleHP + description: Host Path (Simple) + - value: emptyDir + description: emptyDir + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - 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: setPermissionsSimple + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "simpleHP"]] + type: boolean + default: false + - 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: hostPathSimple + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "simpleHP"]] + type: hostpath + - 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: hostPathType + label: (Advanced) Host Path Type + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: DirectoryOrCreate + description: DirectoryOrCreate + - value: Directory + description: Directory + - value: FileOrCreate + description: FileOrCreate + - value: File + description: File + - value: Socket + description: Socket + - value: CharDevice + description: CharDevice + - value: BlockDevice + description: BlockDevice + - variable: storageClass + label: (Advanced) StorageClass + description: "Warning: Anything other than SCALE-ZFS or empty will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: SCALE-ZFS + - variable: accessMode + label: (Advanced) Access Mode + description: Allow or disallow multiple PVC's writhing to the same PV + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: ReadWriteOnce + enum: + - value: ReadWriteOnce + description: ReadWriteOnce + - value: ReadOnlyMany + description: ReadOnlyMany + - value: ReadWriteMany + description: ReadWriteMany + - variable: advanced + label: Show Advanced Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - 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: 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: expert + label: Show Expert Configuration Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enableFixedMiddlewares + description: These middlewares enforce a number of best practices. + label: Enable Default Middlewares + schema: + type: boolean + default: true + - variable: ingressClassName + label: IngressClass Name + schema: + type: string + default: "" + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - 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: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - 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: capabilities + label: Capabilities + schema: + additional_attrs: true + type: dict + attrs: + - variable: drop + label: Drop Capability + schema: + type: list + default: [] + items: + - variable: dropEntry + label: "" + schema: + type: string + - variable: add + label: Add Capability + schema: + type: list + default: [] + items: + - variable: addEntry + label: "" + schema: + type: string + - 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: advancedresources + label: Set Custom Resource Limits/Requests (Advanced) + group: Resources and Devices + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: resources + label: "" + 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 + 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 + 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 + 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: promtail + label: Promtail + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: loki + label: Loki URL + schema: + type: string + required: true + - variable: logs + label: Log Paths + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: path + label: Path + schema: + type: string + required: true + - variable: args + label: Promtail Command Line Arguments + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: arg + label: Arg + schema: + type: string + required: true + - variable: envList + label: Promtail Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + - variable: netshoot + label: Netshoot + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: envList + label: Netshoot Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + - variable: vpn + label: VPN + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type + schema: + type: string + default: disabled + enum: + - value: disabled + description: disabled + - value: 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: 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: Sock5 Server + 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/custom-app/5.1.91/templates/common.yaml b/stable/bazarr/11.0.45/templates/common.yaml similarity index 100% rename from stable/custom-app/5.1.91/templates/common.yaml rename to stable/bazarr/11.0.45/templates/common.yaml diff --git a/stable/code-server/4.0.48/values.yaml b/stable/bazarr/11.0.45/values.yaml similarity index 100% rename from stable/code-server/4.0.48/values.yaml rename to stable/bazarr/11.0.45/values.yaml diff --git a/stable/code-server/4.0.48/Chart.lock b/stable/code-server/4.0.48/Chart.lock deleted file mode 100644 index 11bb8cf5c9b..00000000000 --- a/stable/code-server/4.0.48/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: https://library-charts.truecharts.org - version: 10.7.13 -digest: sha256:2f2267115af9bdc61a64db6317564e2d07f4f27ccb0627720c8a63d82b1786b7 -generated: "2022-11-02T10:01:59.943546594Z" diff --git a/stable/code-server/4.0.48/CHANGELOG.md b/stable/code-server/4.0.49/CHANGELOG.md similarity index 91% rename from stable/code-server/4.0.48/CHANGELOG.md rename to stable/code-server/4.0.49/CHANGELOG.md index e155aeb34c2..68932652023 100644 --- a/stable/code-server/4.0.48/CHANGELOG.md +++ b/stable/code-server/4.0.49/CHANGELOG.md @@ -2,6 +2,16 @@ +## [code-server-4.0.49](https://github.com/truecharts/charts/compare/code-server-4.0.48...code-server-4.0.49) (2022-11-03) + +### Chore + +- Auto-update chart README [skip ci] + - update docker general non-major ([#4286](https://github.com/truecharts/charts/issues/4286)) + + + + ## [code-server-4.0.48](https://github.com/truecharts/charts/compare/code-server-4.0.47...code-server-4.0.48) (2022-11-02) ### Chore @@ -87,13 +97,3 @@ ### Chore -- Auto-update chart README [skip ci] - - update helm general non-major - - - - -## [code-server-4.0.41](https://github.com/truecharts/charts/compare/code-server-4.0.40...code-server-4.0.41) (2022-10-05) - -### Chore - diff --git a/stable/code-server/4.0.49/Chart.lock b/stable/code-server/4.0.49/Chart.lock new file mode 100644 index 00000000000..79487b3b14d --- /dev/null +++ b/stable/code-server/4.0.49/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://library-charts.truecharts.org + version: 10.7.13 +digest: sha256:2f2267115af9bdc61a64db6317564e2d07f4f27ccb0627720c8a63d82b1786b7 +generated: "2022-11-03T02:46:27.425391296Z" diff --git a/stable/code-server/4.0.48/Chart.yaml b/stable/code-server/4.0.49/Chart.yaml similarity index 95% rename from stable/code-server/4.0.48/Chart.yaml rename to stable/code-server/4.0.49/Chart.yaml index 47b0095941d..836610a2c79 100644 --- a/stable/code-server/4.0.48/Chart.yaml +++ b/stable/code-server/4.0.49/Chart.yaml @@ -1,5 +1,5 @@ apiVersion: v2 -appVersion: "4.8.1" +appVersion: "4.8.2" dependencies: - name: common repository: https://library-charts.truecharts.org @@ -22,7 +22,7 @@ sources: - https://github.com/truecharts/charts/tree/master/charts/stable/code-server - https://github.com/cdr/code-server type: application -version: 4.0.48 +version: 4.0.49 annotations: truecharts.org/catagories: | - media diff --git a/stable/code-server/4.0.48/README.md b/stable/code-server/4.0.49/README.md similarity index 100% rename from stable/code-server/4.0.48/README.md rename to stable/code-server/4.0.49/README.md diff --git a/stable/code-server/4.0.48/app-readme.md b/stable/code-server/4.0.49/app-readme.md similarity index 100% rename from stable/code-server/4.0.48/app-readme.md rename to stable/code-server/4.0.49/app-readme.md diff --git a/stable/custom-app/5.1.91/charts/common-10.7.13.tgz b/stable/code-server/4.0.49/charts/common-10.7.13.tgz similarity index 100% rename from stable/custom-app/5.1.91/charts/common-10.7.13.tgz rename to stable/code-server/4.0.49/charts/common-10.7.13.tgz diff --git a/stable/code-server/4.0.48/ix_values.yaml b/stable/code-server/4.0.49/ix_values.yaml similarity index 85% rename from stable/code-server/4.0.48/ix_values.yaml rename to stable/code-server/4.0.49/ix_values.yaml index ebee4a03b9a..37bcb38a871 100644 --- a/stable/code-server/4.0.48/ix_values.yaml +++ b/stable/code-server/4.0.49/ix_values.yaml @@ -1,7 +1,7 @@ image: repository: tccr.io/truecharts/code-server pullPolicy: IfNotPresent - tag: 4.8.1@sha256:90d177d75a17843f5604349ee2b537daeeb5cffa6346335ad7f802843e0f7fef + tag: 4.8.2@sha256:e5f8ac63174c08e769cbfb7ec17cf3db236e7b4212cca31c25d695b1c73bc7bb args: - --user-data-dir diff --git a/stable/code-server/4.0.48/questions.yaml b/stable/code-server/4.0.49/questions.yaml similarity index 100% rename from stable/code-server/4.0.48/questions.yaml rename to stable/code-server/4.0.49/questions.yaml diff --git a/stable/code-server/4.0.48/templates/common.yaml b/stable/code-server/4.0.49/templates/common.yaml similarity index 100% rename from stable/code-server/4.0.48/templates/common.yaml rename to stable/code-server/4.0.49/templates/common.yaml diff --git a/stable/custom-app/5.1.91/values.yaml b/stable/code-server/4.0.49/values.yaml similarity index 100% rename from stable/custom-app/5.1.91/values.yaml rename to stable/code-server/4.0.49/values.yaml diff --git a/stable/custom-app/5.1.91/Chart.lock b/stable/custom-app/5.1.91/Chart.lock deleted file mode 100644 index 20fd657231d..00000000000 --- a/stable/custom-app/5.1.91/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: https://library-charts.truecharts.org - version: 10.7.13 -digest: sha256:2f2267115af9bdc61a64db6317564e2d07f4f27ccb0627720c8a63d82b1786b7 -generated: "2022-11-02T10:02:41.754720508Z" diff --git a/stable/custom-app/5.1.91/CHANGELOG.md b/stable/custom-app/5.1.92/CHANGELOG.md similarity index 91% rename from stable/custom-app/5.1.91/CHANGELOG.md rename to stable/custom-app/5.1.92/CHANGELOG.md index 5d2469c4792..ea7079257c4 100644 --- a/stable/custom-app/5.1.91/CHANGELOG.md +++ b/stable/custom-app/5.1.92/CHANGELOG.md @@ -2,6 +2,16 @@ +## [custom-app-5.1.92](https://github.com/truecharts/charts/compare/custom-app-5.1.91...custom-app-5.1.92) (2022-11-03) + +### Chore + +- Auto-update chart README [skip ci] + - update docker general non-major ([#4286](https://github.com/truecharts/charts/issues/4286)) + + + + ## [custom-app-5.1.91](https://github.com/truecharts/charts/compare/custom-app-5.1.90...custom-app-5.1.91) (2022-11-02) ### Chore @@ -87,13 +97,3 @@ ## [custom-app-5.1.84](https://github.com/truecharts/charts/compare/custom-app-5.1.83...custom-app-5.1.84) (2022-10-24) ### Chore - -- Auto-update chart README [skip ci] - - update docker general non-major ([#4171](https://github.com/truecharts/charts/issues/4171)) - - - - -## [custom-app-5.1.83](https://github.com/truecharts/charts/compare/custom-app-5.1.82...custom-app-5.1.83) (2022-10-22) - -### Chore diff --git a/stable/custom-app/5.1.92/Chart.lock b/stable/custom-app/5.1.92/Chart.lock new file mode 100644 index 00000000000..41d31e6725e --- /dev/null +++ b/stable/custom-app/5.1.92/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://library-charts.truecharts.org + version: 10.7.13 +digest: sha256:2f2267115af9bdc61a64db6317564e2d07f4f27ccb0627720c8a63d82b1786b7 +generated: "2022-11-03T02:46:28.563751202Z" diff --git a/stable/custom-app/5.1.91/Chart.yaml b/stable/custom-app/5.1.92/Chart.yaml similarity index 94% rename from stable/custom-app/5.1.91/Chart.yaml rename to stable/custom-app/5.1.92/Chart.yaml index 7682c97125b..75f4d2b0508 100644 --- a/stable/custom-app/5.1.91/Chart.yaml +++ b/stable/custom-app/5.1.92/Chart.yaml @@ -1,5 +1,5 @@ apiVersion: v2 -appVersion: "0.20.2182" +appVersion: "0.20.2186" 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: 5.1.91 +version: 5.1.92 annotations: truecharts.org/catagories: | - custom diff --git a/stable/custom-app/5.1.91/README.md b/stable/custom-app/5.1.92/README.md similarity index 100% rename from stable/custom-app/5.1.91/README.md rename to stable/custom-app/5.1.92/README.md diff --git a/stable/custom-app/5.1.91/app-readme.md b/stable/custom-app/5.1.92/app-readme.md similarity index 100% rename from stable/custom-app/5.1.91/app-readme.md rename to stable/custom-app/5.1.92/app-readme.md diff --git a/stable/duckdns/2.0.52/charts/common-10.7.13.tgz b/stable/custom-app/5.1.92/charts/common-10.7.13.tgz similarity index 100% rename from stable/duckdns/2.0.52/charts/common-10.7.13.tgz rename to stable/custom-app/5.1.92/charts/common-10.7.13.tgz diff --git a/stable/custom-app/5.1.91/ci/test-values.yaml b/stable/custom-app/5.1.92/ci/test-values.yaml similarity index 88% rename from stable/custom-app/5.1.91/ci/test-values.yaml rename to stable/custom-app/5.1.92/ci/test-values.yaml index 9445734ebb6..84fa4386d0a 100644 --- a/stable/custom-app/5.1.91/ci/test-values.yaml +++ b/stable/custom-app/5.1.92/ci/test-values.yaml @@ -1,7 +1,7 @@ image: repository: tccr.io/truecharts/jackett pullPolicy: IfNotPresent - tag: 0.20.2182@sha256:2dc1ae86eb47079bf54153b7dc180efad6d2b0986a9541b7edbdcc00e91d4a2f + tag: 0.20.2186@sha256:1f0e0813185a5c39082c75b0545c71a34ef34ed556a1dd7fad1c08baee90ecc4 securityContext: readOnlyRootFilesystem: false diff --git a/stable/custom-app/5.1.91/ix_values.yaml b/stable/custom-app/5.1.92/ix_values.yaml similarity index 52% rename from stable/custom-app/5.1.91/ix_values.yaml rename to stable/custom-app/5.1.92/ix_values.yaml index d3212a385bc..3073835645e 100644 --- a/stable/custom-app/5.1.91/ix_values.yaml +++ b/stable/custom-app/5.1.92/ix_values.yaml @@ -1,7 +1,7 @@ image: repository: tccr.io/truecharts/jackett pullPolicy: IfNotPresent - tag: 0.20.2182@sha256:2dc1ae86eb47079bf54153b7dc180efad6d2b0986a9541b7edbdcc00e91d4a2f + tag: 0.20.2186@sha256:1f0e0813185a5c39082c75b0545c71a34ef34ed556a1dd7fad1c08baee90ecc4 portal: enabled: true diff --git a/stable/custom-app/5.1.91/questions.yaml b/stable/custom-app/5.1.92/questions.yaml similarity index 100% rename from stable/custom-app/5.1.91/questions.yaml rename to stable/custom-app/5.1.92/questions.yaml diff --git a/stable/duckdns/2.0.52/templates/common.yaml b/stable/custom-app/5.1.92/templates/common.yaml similarity index 100% rename from stable/duckdns/2.0.52/templates/common.yaml rename to stable/custom-app/5.1.92/templates/common.yaml diff --git a/stable/duckdns/2.0.52/values.yaml b/stable/custom-app/5.1.92/values.yaml similarity index 100% rename from stable/duckdns/2.0.52/values.yaml rename to stable/custom-app/5.1.92/values.yaml diff --git a/stable/duckdns/2.0.52/Chart.lock b/stable/duckdns/2.0.52/Chart.lock deleted file mode 100644 index f6e47b4036c..00000000000 --- a/stable/duckdns/2.0.52/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: https://library-charts.truecharts.org - version: 10.7.13 -digest: sha256:2f2267115af9bdc61a64db6317564e2d07f4f27ccb0627720c8a63d82b1786b7 -generated: "2022-11-02T10:07:05.075865513Z" diff --git a/stable/duckdns/2.0.52/CHANGELOG.md b/stable/duckdns/2.0.53/CHANGELOG.md similarity index 89% rename from stable/duckdns/2.0.52/CHANGELOG.md rename to stable/duckdns/2.0.53/CHANGELOG.md index bc214bade7e..2fffb2834f7 100644 --- a/stable/duckdns/2.0.52/CHANGELOG.md +++ b/stable/duckdns/2.0.53/CHANGELOG.md @@ -2,6 +2,16 @@ +## [duckdns-2.0.53](https://github.com/truecharts/charts/compare/duckdns-2.0.52...duckdns-2.0.53) (2022-11-03) + +### Chore + +- Auto-update chart README [skip ci] + - update docker general non-major ([#4286](https://github.com/truecharts/charts/issues/4286)) + + + + ## [duckdns-2.0.52](https://github.com/truecharts/charts/compare/duckdns-2.0.51...duckdns-2.0.52) (2022-11-02) ### Chore @@ -87,13 +97,3 @@ ## [duckdns-2.0.45](https://github.com/truecharts/charts/compare/duckdns-2.0.44...duckdns-2.0.45) (2022-09-29) ### Chore - -- Auto-update chart README [skip ci] - - Auto-update chart README [skip ci] - - update docker general non-major ([#3953](https://github.com/truecharts/charts/issues/3953)) - - - - -## [duckdns-2.0.45](https://github.com/truecharts/charts/compare/duckdns-2.0.44...duckdns-2.0.45) (2022-09-29) - diff --git a/stable/duckdns/2.0.53/Chart.lock b/stable/duckdns/2.0.53/Chart.lock new file mode 100644 index 00000000000..ef1cbcb68b0 --- /dev/null +++ b/stable/duckdns/2.0.53/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://library-charts.truecharts.org + version: 10.7.13 +digest: sha256:2f2267115af9bdc61a64db6317564e2d07f4f27ccb0627720c8a63d82b1786b7 +generated: "2022-11-03T02:46:39.907620328Z" diff --git a/stable/duckdns/2.0.52/Chart.yaml b/stable/duckdns/2.0.53/Chart.yaml similarity index 98% rename from stable/duckdns/2.0.52/Chart.yaml rename to stable/duckdns/2.0.53/Chart.yaml index 163e867935b..a3d28f3ea44 100644 --- a/stable/duckdns/2.0.52/Chart.yaml +++ b/stable/duckdns/2.0.53/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: duckdns -version: 2.0.52 +version: 2.0.53 appVersion: "latest" description: Duckdns is a free service which will point a DNS (sub domains of duckdns.org) to an IP of your choice. type: application diff --git a/stable/duckdns/2.0.52/README.md b/stable/duckdns/2.0.53/README.md similarity index 100% rename from stable/duckdns/2.0.52/README.md rename to stable/duckdns/2.0.53/README.md diff --git a/stable/duckdns/2.0.52/app-readme.md b/stable/duckdns/2.0.53/app-readme.md similarity index 100% rename from stable/duckdns/2.0.52/app-readme.md rename to stable/duckdns/2.0.53/app-readme.md diff --git a/stable/grist/4.0.4/charts/common-10.7.13.tgz b/stable/duckdns/2.0.53/charts/common-10.7.13.tgz similarity index 100% rename from stable/grist/4.0.4/charts/common-10.7.13.tgz rename to stable/duckdns/2.0.53/charts/common-10.7.13.tgz diff --git a/stable/duckdns/2.0.52/ix_values.yaml b/stable/duckdns/2.0.53/ix_values.yaml similarity index 84% rename from stable/duckdns/2.0.52/ix_values.yaml rename to stable/duckdns/2.0.53/ix_values.yaml index 92f210cbdaa..651906715ea 100644 --- a/stable/duckdns/2.0.52/ix_values.yaml +++ b/stable/duckdns/2.0.53/ix_values.yaml @@ -1,7 +1,7 @@ image: repository: tccr.io/truecharts/duckdns pullPolicy: IfNotPresent - tag: latest@sha256:ab617fea4efcc396aa72e33e9505bba3da6322288b086e24933ad025bc2237d9 + tag: latest@sha256:ae932d6f077b37c8c44ff13790d5a77988888db03e9fed8e34a24e617050a7d6 securityContext: runAsNonRoot: false diff --git a/stable/duckdns/2.0.52/questions.yaml b/stable/duckdns/2.0.53/questions.yaml similarity index 100% rename from stable/duckdns/2.0.52/questions.yaml rename to stable/duckdns/2.0.53/questions.yaml diff --git a/stable/ispy-agent-dvr/2.0.57/templates/common.yaml b/stable/duckdns/2.0.53/templates/common.yaml similarity index 100% rename from stable/ispy-agent-dvr/2.0.57/templates/common.yaml rename to stable/duckdns/2.0.53/templates/common.yaml diff --git a/stable/grist/4.0.4/values.yaml b/stable/duckdns/2.0.53/values.yaml similarity index 100% rename from stable/grist/4.0.4/values.yaml rename to stable/duckdns/2.0.53/values.yaml diff --git a/stable/emby/11.0.44/CHANGELOG.md b/stable/emby/11.0.44/CHANGELOG.md new file mode 100644 index 00000000000..e25797d5a66 --- /dev/null +++ b/stable/emby/11.0.44/CHANGELOG.md @@ -0,0 +1,99 @@ +# Changelog + + + +## [emby-11.0.44](https://github.com/truecharts/charts/compare/emby-11.0.43...emby-11.0.44) (2022-11-03) + +### Chore + +- Auto-update chart README [skip ci] + - update docker general non-major ([#4286](https://github.com/truecharts/charts/issues/4286)) + + + + +## [emby-11.0.43](https://github.com/truecharts/charts/compare/emby-11.0.42...emby-11.0.43) (2022-11-02) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major ([#4261](https://github.com/truecharts/charts/issues/4261)) + + + + +## [emby-11.0.42](https://github.com/truecharts/charts/compare/emby-sync-0.0.31...emby-11.0.42) (2022-10-27) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - update docker general non-major ([#4201](https://github.com/truecharts/charts/issues/4201)) + + + + +## [emby-11.0.42](https://github.com/truecharts/charts/compare/emby-sync-0.0.31...emby-11.0.42) (2022-10-27) + +### Chore + +- Auto-update chart README [skip ci] + - update docker general non-major ([#4201](https://github.com/truecharts/charts/issues/4201)) + + + + +## [emby-11.0.41](https://github.com/truecharts/charts/compare/emby-11.0.40...emby-11.0.41) (2022-10-25) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major ([#4182](https://github.com/truecharts/charts/issues/4182)) + + + + +## [emby-11.0.40](https://github.com/truecharts/charts/compare/embystat-2.0.36...emby-11.0.40) (2022-10-19) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major ([#4122](https://github.com/truecharts/charts/issues/4122)) + + + + +## [emby-11.0.39](https://github.com/truecharts/charts/compare/emby-11.0.38...emby-11.0.39) (2022-10-12) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major ([#4071](https://github.com/truecharts/charts/issues/4071)) + + + + +## [emby-11.0.38](https://github.com/truecharts/charts/compare/emby-11.0.37...emby-11.0.38) (2022-10-07) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - update helm general non-major + + + + +## [emby-11.0.38](https://github.com/truecharts/charts/compare/emby-11.0.37...emby-11.0.38) (2022-10-07) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major + + + + +## [emby-11.0.37](https://github.com/truecharts/charts/compare/emby-11.0.36...emby-11.0.37) (2022-10-07) + +### Chore diff --git a/stable/emby/11.0.44/Chart.lock b/stable/emby/11.0.44/Chart.lock new file mode 100644 index 00000000000..939a7d54049 --- /dev/null +++ b/stable/emby/11.0.44/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://library-charts.truecharts.org + version: 10.7.13 +digest: sha256:2f2267115af9bdc61a64db6317564e2d07f4f27ccb0627720c8a63d82b1786b7 +generated: "2022-11-03T02:47:14.734400969Z" diff --git a/stable/emby/11.0.44/Chart.yaml b/stable/emby/11.0.44/Chart.yaml new file mode 100644 index 00000000000..f37e8a3c695 --- /dev/null +++ b/stable/emby/11.0.44/Chart.yaml @@ -0,0 +1,31 @@ +apiVersion: v2 +appVersion: "4.7.8.0" +dependencies: + - name: common + repository: https://library-charts.truecharts.org + version: 10.7.13 +deprecated: false +description: Emby Server is a home media server +home: https://truecharts.org/docs/charts/stable/emby +icon: https://truecharts.org/img/hotlink-ok/chart-icons/emby.png +keywords: + - jellyfin + - plex + - emby +kubeVersion: ">=1.16.0-0" +maintainers: + - email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +name: emby +sources: + - https://github.com/truecharts/charts/tree/master/charts/stable/emby + - https://hub.docker.com/r/linuxserver/emby + - https://github.com/linuxserver/docker-emby.git +type: application +version: 11.0.44 +annotations: + truecharts.org/catagories: | + - media + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/stable/emby/11.0.44/README.md b/stable/emby/11.0.44/README.md new file mode 100644 index 00000000000..eb58bf921b4 --- /dev/null +++ b/stable/emby/11.0.44/README.md @@ -0,0 +1,107 @@ +# emby + +Emby Server is a home 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: [emby](https://truecharts.org/docs/charts/stable/emby) + +**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.7.13 | + +## 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 `emby` + +```console +helm repo add TrueCharts https://charts.truecharts.org +helm repo update +helm install emby TrueCharts/emby +``` + +## 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 `emby` deployment + +```console +helm uninstall emby +``` + +## 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 emby \ + --set env.TZ="America/New York" \ + TrueCharts/emby +``` + +#### 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 emby TrueCharts/emby -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/emby/11.0.44/app-readme.md b/stable/emby/11.0.44/app-readme.md new file mode 100644 index 00000000000..a1ff0396c88 --- /dev/null +++ b/stable/emby/11.0.44/app-readme.md @@ -0,0 +1,8 @@ +Emby Server is a home media server + +This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/docs/charts/stable/emby](https://truecharts.org/docs/charts/stable/emby) + +--- + +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/ispy-agent-dvr/2.0.57/charts/common-10.7.13.tgz b/stable/emby/11.0.44/charts/common-10.7.13.tgz similarity index 100% rename from stable/ispy-agent-dvr/2.0.57/charts/common-10.7.13.tgz rename to stable/emby/11.0.44/charts/common-10.7.13.tgz diff --git a/stable/emby/11.0.44/ix_values.yaml b/stable/emby/11.0.44/ix_values.yaml new file mode 100644 index 00000000000..118f47c1334 --- /dev/null +++ b/stable/emby/11.0.44/ix_values.yaml @@ -0,0 +1,22 @@ +image: + repository: tccr.io/truecharts/emby + pullPolicy: IfNotPresent + tag: 4.7.8.0@sha256:a53458c16b756c1d914939d0a0d2921e13e5f8326662ce2d2191281f2f5f36b7 + +securityContext: + readOnlyRootFilesystem: false + +service: + main: + ports: + main: + port: 10079 + targetPort: 8096 + +persistence: + config: + enabled: true + mountPath: "/config" + +portal: + enabled: true diff --git a/stable/emby/11.0.44/questions.yaml b/stable/emby/11.0.44/questions.yaml new file mode 100644 index 00000000000..85547d6d555 --- /dev/null +++ b/stable/emby/11.0.44/questions.yaml @@ -0,0 +1,2567 @@ +groups: + - name: Container Image + description: Image to be used for container + - name: Controller + description: Configure Workload Deployment + - name: Container Configuration + description: Additional Container Configuration + - name: App Configuration + description: App Specific Config Options + - name: Networking and Services + description: Configure Network and Services for Container + - name: Storage and Persistence + description: Persist and Share Data that is Separate from the Container + - name: Ingress + description: Ingress Configuration + - name: Security and Permissions + description: Configure Security Context and Permissions + - name: Resources and Devices + description: "Specify Resources/Devices to be Allocated to Workload" + - name: Middlewares + description: Traefik Middlewares + - name: Metrics + description: Metrics + - name: Addons + description: Addon Configuration + - name: Advanced + description: Advanced Configuration + - name: 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: Controller + schema: + type: dict + hidden: true + attrs: + - variable: isSCALE + label: Flag this is SCALE + schema: + type: boolean + default: true + hidden: true + - variable: controller + group: Controller + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: advanced + label: Show Advanced Controller Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: Please specify type of workload to deploy + label: (Advanced) Controller Type + schema: + type: string + required: true + enum: + - value: deployment + description: Deployment + - value: statefulset + description: Statefulset + - value: daemonset + description: Daemonset + default: deployment + - variable: replicas + description: Number of desired pod replicas + label: Desired Replicas + schema: + type: int + required: true + default: 1 + - variable: strategy + description: Please specify type of workload to deploy + label: (Advanced) Update Strategy + schema: + type: string + required: true + enum: + - value: Recreate + description: "Recreate: Kill existing pods before creating new ones" + - value: RollingUpdate + description: "RollingUpdate: Create new pods and then kill old ones" + - value: OnDelete + description: "(Legacy) OnDelete: ignore .spec.template changes" + default: Recreate + - variable: expert + label: Show Expert Configuration Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: Controller Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Controller Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: customextraargs + group: Controller + 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: Container Configuration + 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: Container Configuration + 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: expertpodconf + group: Container Configuration + label: Show Expert Configuration + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: tty + label: Enable TTY + description: Determines whether containers in a pod runs with TTY enabled. By default pod has it disabled. + group: Workload Details + schema: + type: boolean + default: false + - variable: stdin + label: Enable STDIN + description: Determines whether containers in a pod runs with stdin enabled. By default pod has it disabled. + group: Workload Details + schema: + type: boolean + default: false + - variable: termination + group: Container Configuration + label: Termination settings + schema: + additional_attrs: true + type: dict + attrs: + - variable: gracePeriodSeconds + label: Grace Period Seconds + schema: + type: int + default: 10 + - variable: podLabelsList + group: Container Configuration + label: Pod Labels + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: podAnnotationsList + group: Container Configuration + label: Pod Annotations + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: Label + 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: 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: The IP Families that should be used + schema: + type: list + default: [] + items: + - variable: ipFamily + label: IP Family + schema: + type: string + - 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: 10079 + required: true + - variable: advanced + label: Show Advanced Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: Enable the Port + schema: + type: boolean + hidden: true + default: true + - variable: protocol + label: Port Type + schema: + type: string + default: HTTP + enum: + - value: HTTP + description: HTTP + - value: HTTPS + description: HTTPS + - value: TCP + description: TCP + - value: UDP + description: UDP + - variable: nodePort + label: Node Port (Optional) + description: This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 8096 + - 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: dnsPolicy + group: Networking and Services + label: dnsPolicy + schema: + type: string + default: "" + enum: + - value: "" + description: Default + - value: ClusterFirst + description: ClusterFirst + - value: None + description: None + - variable: dnsConfig + label: DNS Configuration + group: Networking and Services + description: Specify custom DNS configuration which will be applied to the pod + schema: + additional_attrs: true + type: dict + attrs: + - variable: nameservers + label: Name Servers + schema: + default: [] + type: list + items: + - variable: nameserver + label: Name Server + schema: + type: string + - variable: options + label: Options + schema: + default: [] + type: list + items: + - variable: option + label: Option Entry + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: searches + label: Searches + schema: + default: [] + type: list + items: + - variable: search + label: Search Entry + schema: + type: string + - 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: simplePVC + enum: + - value: simplePVC + description: PVC (simple) + - value: simpleHP + description: Host Path (simple) + - value: emptyDir + description: emptyDir + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - 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: setPermissionsSimple + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "simpleHP"]] + type: boolean + default: false + - 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: hostPathSimple + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "simpleHP"]] + type: hostpath + - 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 + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: hostPathType + label: (Advanced) hostPath Type + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: DirectoryOrCreate + description: DirectoryOrCreate + - value: Directory + description: Directory + - value: FileOrCreate + description: FileOrCreate + - value: File + description: File + - value: Socket + description: Socket + - value: CharDevice + description: CharDevice + - value: BlockDevice + description: BlockDevice + - variable: storageClass + label: (Advanced) storageClass + description: "Warning: Anything other than SCALE-ZFS or empty will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: SCALE-ZFS + - variable: accessMode + label: (Advanced) Access Mode + description: Allow or disallow multiple PVC's writhing to the same PV + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: ReadWriteOnce + enum: + - value: ReadWriteOnce + description: ReadWriteOnce + - value: ReadOnlyMany + description: ReadOnlyMany + - value: ReadWriteMany + description: ReadWriteMany + - variable: advanced + label: Show Advanced Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - 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: name + label: Name (Optional) + description: "Not required, please set to config when mounting /config or temp when mounting /tmp" + schema: + type: string + - variable: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: simpleHP + enum: + - value: simplePVC + description: PVC (Simple) + - value: simpleHP + description: Host Path (Simple) + - value: emptyDir + description: emptyDir + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - 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: setPermissionsSimple + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "simpleHP"]] + type: boolean + default: false + - 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: hostPathSimple + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "simpleHP"]] + type: hostpath + - 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: hostPathType + label: (Advanced) Host Path Type + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: DirectoryOrCreate + description: DirectoryOrCreate + - value: Directory + description: Directory + - value: FileOrCreate + description: FileOrCreate + - value: File + description: File + - value: Socket + description: Socket + - value: CharDevice + description: CharDevice + - value: BlockDevice + description: BlockDevice + - variable: storageClass + label: (Advanced) StorageClass + description: "Warning: Anything other than SCALE-ZFS or empty will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: SCALE-ZFS + - variable: accessMode + label: (Advanced) Access Mode + description: Allow or disallow multiple PVC's writhing to the same PV + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: ReadWriteOnce + enum: + - value: ReadWriteOnce + description: ReadWriteOnce + - value: ReadOnlyMany + description: ReadOnlyMany + - value: ReadWriteMany + description: ReadWriteMany + - variable: advanced + label: Show Advanced Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - 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: 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: expert + label: Show Expert Configuration Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enableFixedMiddlewares + description: These middlewares enforce a number of best practices. + label: Enable Default Middlewares + schema: + type: boolean + default: true + - variable: ingressClassName + label: IngressClass Name + schema: + type: string + default: "" + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - 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: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - 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: capabilities + label: Capabilities + schema: + additional_attrs: true + type: dict + attrs: + - variable: drop + label: Drop Capability + schema: + type: list + default: [] + items: + - variable: dropEntry + label: "" + schema: + type: string + - variable: add + label: Add Capability + schema: + type: list + default: [] + items: + - variable: addEntry + label: "" + schema: + type: string + - 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: advancedresources + label: Set Custom Resource Limits/Requests (Advanced) + group: Resources and Devices + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: resources + label: "" + 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 + 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 + 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 + 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: promtail + label: Promtail + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: loki + label: Loki URL + schema: + type: string + required: true + - variable: logs + label: Log Paths + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: path + label: Path + schema: + type: string + required: true + - variable: args + label: Promtail Command Line Arguments + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: arg + label: Arg + schema: + type: string + required: true + - variable: envList + label: Promtail Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + - variable: netshoot + label: Netshoot + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: envList + label: Netshoot Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + - variable: vpn + label: VPN + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type + schema: + type: string + default: disabled + enum: + - value: disabled + description: disabled + - value: 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: 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: Sock5 Server + 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/komga/6.0.47/templates/common.yaml b/stable/emby/11.0.44/templates/common.yaml similarity index 100% rename from stable/komga/6.0.47/templates/common.yaml rename to stable/emby/11.0.44/templates/common.yaml diff --git a/stable/ispy-agent-dvr/2.0.57/values.yaml b/stable/emby/11.0.44/values.yaml similarity index 100% rename from stable/ispy-agent-dvr/2.0.57/values.yaml rename to stable/emby/11.0.44/values.yaml diff --git a/stable/esphome/11.0.51/CHANGELOG.md b/stable/esphome/11.0.51/CHANGELOG.md new file mode 100644 index 00000000000..2910c5bf931 --- /dev/null +++ b/stable/esphome/11.0.51/CHANGELOG.md @@ -0,0 +1,99 @@ +# Changelog + + + +## [esphome-11.0.51](https://github.com/truecharts/charts/compare/esphome-11.0.50...esphome-11.0.51) (2022-11-03) + +### Chore + +- Auto-update chart README [skip ci] + - update docker general non-major ([#4286](https://github.com/truecharts/charts/issues/4286)) + + + + +## [esphome-11.0.50](https://github.com/truecharts/charts/compare/esphome-11.0.49...esphome-11.0.50) (2022-11-02) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major ([#4261](https://github.com/truecharts/charts/issues/4261)) + + + + +## [esphome-11.0.49](https://github.com/truecharts/charts/compare/esphome-11.0.48...esphome-11.0.49) (2022-10-27) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - update docker general non-major ([#4201](https://github.com/truecharts/charts/issues/4201)) + + + + +## [esphome-11.0.49](https://github.com/truecharts/charts/compare/esphome-11.0.48...esphome-11.0.49) (2022-10-27) + +### Chore + +- Auto-update chart README [skip ci] + - update docker general non-major ([#4201](https://github.com/truecharts/charts/issues/4201)) + + + + +## [esphome-11.0.48](https://github.com/truecharts/charts/compare/esphome-11.0.47...esphome-11.0.48) (2022-10-25) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major ([#4182](https://github.com/truecharts/charts/issues/4182)) + + + + +## [esphome-11.0.47](https://github.com/truecharts/charts/compare/esphome-11.0.46...esphome-11.0.47) (2022-10-21) + +### Chore + +- Auto-update chart README [skip ci] + - update docker general non-major ([#4139](https://github.com/truecharts/charts/issues/4139)) + + + + +## [esphome-11.0.46](https://github.com/truecharts/charts/compare/esphome-11.0.45...esphome-11.0.46) (2022-10-19) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major ([#4122](https://github.com/truecharts/charts/issues/4122)) + + + + +## [esphome-11.0.45](https://github.com/truecharts/charts/compare/esphome-11.0.44...esphome-11.0.45) (2022-10-12) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major ([#4071](https://github.com/truecharts/charts/issues/4071)) + + + + +## [esphome-11.0.44](https://github.com/truecharts/charts/compare/esphome-11.0.43...esphome-11.0.44) (2022-10-07) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - update helm general non-major + + + + +## [esphome-11.0.44](https://github.com/truecharts/charts/compare/esphome-11.0.43...esphome-11.0.44) (2022-10-07) + +### Chore diff --git a/stable/esphome/11.0.51/Chart.lock b/stable/esphome/11.0.51/Chart.lock new file mode 100644 index 00000000000..e69b56c1bda --- /dev/null +++ b/stable/esphome/11.0.51/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://library-charts.truecharts.org + version: 10.7.13 +digest: sha256:2f2267115af9bdc61a64db6317564e2d07f4f27ccb0627720c8a63d82b1786b7 +generated: "2022-11-03T02:47:16.956224214Z" diff --git a/stable/esphome/11.0.51/Chart.yaml b/stable/esphome/11.0.51/Chart.yaml new file mode 100644 index 00000000000..82ad7ddeb33 --- /dev/null +++ b/stable/esphome/11.0.51/Chart.yaml @@ -0,0 +1,29 @@ +apiVersion: v2 +appVersion: "2022.10.2" +dependencies: + - name: common + repository: https://library-charts.truecharts.org + version: 10.7.13 +deprecated: false +description: ESPHome is a system to control your ESP8266/ESP32 by simple yet powerful configuration files and control them remotely through Home Automation systems. +home: https://truecharts.org/docs/charts/stable/esphome +icon: https://truecharts.org/img/hotlink-ok/chart-icons/esphome.png +keywords: + - esphome +kubeVersion: ">=1.16.0-0" +maintainers: + - email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +name: esphome +sources: + - https://github.com/truecharts/charts/tree/master/charts/stable/esphome + - https://github.com/esphome/esphome + - https://hub.docker.com/u/esphome +type: application +version: 11.0.51 +annotations: + truecharts.org/catagories: | + - tools + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/stable/esphome/11.0.51/README.md b/stable/esphome/11.0.51/README.md new file mode 100644 index 00000000000..e8fefccd805 --- /dev/null +++ b/stable/esphome/11.0.51/README.md @@ -0,0 +1,107 @@ +# esphome + +ESPHome is a system to control your ESP8266/ESP32 by simple yet powerful configuration files and control them remotely through Home Automation systems. + +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: [esphome](https://truecharts.org/docs/charts/stable/esphome) + +**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.7.13 | + +## 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 `esphome` + +```console +helm repo add TrueCharts https://charts.truecharts.org +helm repo update +helm install esphome TrueCharts/esphome +``` + +## 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 `esphome` deployment + +```console +helm uninstall esphome +``` + +## 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 esphome \ + --set env.TZ="America/New York" \ + TrueCharts/esphome +``` + +#### 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 esphome TrueCharts/esphome -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/esphome/11.0.51/app-readme.md b/stable/esphome/11.0.51/app-readme.md new file mode 100644 index 00000000000..4c8d1d55300 --- /dev/null +++ b/stable/esphome/11.0.51/app-readme.md @@ -0,0 +1,8 @@ +ESPHome is a system to control your ESP8266/ESP32 by simple yet powerful configuration files and control them remotely through Home Automation systems. + +This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/docs/charts/stable/esphome](https://truecharts.org/docs/charts/stable/esphome) + +--- + +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/komga/6.0.47/charts/common-10.7.13.tgz b/stable/esphome/11.0.51/charts/common-10.7.13.tgz similarity index 100% rename from stable/komga/6.0.47/charts/common-10.7.13.tgz rename to stable/esphome/11.0.51/charts/common-10.7.13.tgz diff --git a/stable/esphome/11.0.51/ix_values.yaml b/stable/esphome/11.0.51/ix_values.yaml new file mode 100644 index 00000000000..7688a44a95f --- /dev/null +++ b/stable/esphome/11.0.51/ix_values.yaml @@ -0,0 +1,43 @@ +image: + repository: tccr.io/truecharts/esphome + pullPolicy: IfNotPresent + tag: 2022.10.2@sha256:86b3563aa7d6890db26a753e276aa90bb53cdc7f865476f14f68dfee65f3c0bf + +# App needs to run as root because of this: https://github.com/esphome/issues/issues/2752 +securityContext: + runAsNonRoot: false + readOnlyRootFilesystem: false + privileged: true + allowPrivilegeEscalation: true + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +service: + main: + ports: + main: + port: 6052 + targetPort: 6052 + +env: + {} + # ESPHOME_DASHBOARD_USE_PING: true + # ESPHOME_DASHBOARD_RELATIVE_URL: "/" + # ESPHOME_QUICKWIZARD: + # ESPHOME_IS_HASSIO: + # DISABLE_HA_AUTHENTICATION: + # USERNAME: + # PASSWORD: + +persistence: + config: + enabled: true + mountPath: "/config" + platformio: + enabled: true + mountPath: "/.platformio" + +portal: + enabled: true diff --git a/stable/esphome/11.0.51/questions.yaml b/stable/esphome/11.0.51/questions.yaml new file mode 100644 index 00000000000..eb7875c7ac2 --- /dev/null +++ b/stable/esphome/11.0.51/questions.yaml @@ -0,0 +1,2745 @@ +groups: + - name: Container Image + description: Image to be used for container + - name: Controller + description: Configure Workload Deployment + - name: Container Configuration + description: Additional Container Configuration + - name: App Configuration + description: App Specific Config Options + - name: Networking and Services + description: Configure Network and Services for Container + - name: Storage and Persistence + description: Persist and Share Data that is Separate from the Container + - name: Ingress + description: Ingress Configuration + - name: Security and Permissions + description: Configure Security Context and Permissions + - name: Resources and Devices + description: "Specify Resources/Devices to be Allocated to Workload" + - name: Middlewares + description: Traefik Middlewares + - name: Metrics + description: Metrics + - name: Addons + description: Addon Configuration + - name: Advanced + description: Advanced Configuration + - name: 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: Controller + schema: + type: dict + hidden: true + attrs: + - variable: isSCALE + label: Flag this is SCALE + schema: + type: boolean + default: true + hidden: true + - variable: controller + group: Controller + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: advanced + label: Show Advanced Controller Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: Please specify type of workload to deploy + label: (Advanced) Controller Type + schema: + type: string + required: true + enum: + - value: deployment + description: Deployment + - value: statefulset + description: Statefulset + - value: daemonset + description: Daemonset + default: deployment + - variable: replicas + description: Number of desired pod replicas + label: Desired Replicas + schema: + type: int + required: true + default: 1 + - variable: strategy + description: Please specify type of workload to deploy + label: (Advanced) Update Strategy + schema: + type: string + required: true + enum: + - value: Recreate + description: "Recreate: Kill existing pods before creating new ones" + - value: RollingUpdate + description: "RollingUpdate: Create new pods and then kill old ones" + - value: OnDelete + description: "(Legacy) OnDelete: ignore .spec.template changes" + default: Recreate + - variable: expert + label: Show Expert Configuration Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: Controller Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Controller Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: customextraargs + group: Controller + 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: Container Configuration + 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: Container Configuration + 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: expertpodconf + group: Container Configuration + label: Show Expert Configuration + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: tty + label: Enable TTY + description: Determines whether containers in a pod runs with TTY enabled. By default pod has it disabled. + group: Workload Details + schema: + type: boolean + default: false + - variable: stdin + label: Enable STDIN + description: Determines whether containers in a pod runs with stdin enabled. By default pod has it disabled. + group: Workload Details + schema: + type: boolean + default: false + - variable: termination + group: Container Configuration + label: Termination settings + schema: + additional_attrs: true + type: dict + attrs: + - variable: gracePeriodSeconds + label: Grace Period Seconds + schema: + type: int + default: 10 + - variable: podLabelsList + group: Container Configuration + label: Pod Labels + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: podAnnotationsList + group: Container Configuration + label: Pod Annotations + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: Label + 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: 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: The IP Families that should be used + schema: + type: list + default: [] + items: + - variable: ipFamily + label: IP Family + schema: + type: string + - 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: 6052 + required: true + - variable: advanced + label: Show Advanced Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: Enable the Port + schema: + type: boolean + hidden: true + default: true + - variable: protocol + label: Port Type + schema: + type: string + default: HTTP + enum: + - value: HTTP + description: HTTP + - value: HTTPS + description: HTTPS + - value: TCP + description: TCP + - value: UDP + description: UDP + - variable: nodePort + label: Node Port (Optional) + description: This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 6052 + # Configure app volumes + - 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: dnsPolicy + group: Networking and Services + label: dnsPolicy + schema: + type: string + default: "" + enum: + - value: "" + description: Default + - value: ClusterFirst + description: ClusterFirst + - value: None + description: None + - variable: dnsConfig + label: DNS Configuration + group: Networking and Services + description: Specify custom DNS configuration which will be applied to the pod + schema: + additional_attrs: true + type: dict + attrs: + - variable: nameservers + label: Name Servers + schema: + default: [] + type: list + items: + - variable: nameserver + label: Name Server + schema: + type: string + - variable: options + label: Options + schema: + default: [] + type: list + items: + - variable: option + label: Option Entry + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: searches + label: Searches + schema: + default: [] + type: list + items: + - variable: search + label: Search Entry + schema: + type: string + - 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: simplePVC + enum: + - value: simplePVC + description: PVC (simple) + - value: simpleHP + description: Host Path (simple) + - value: emptyDir + description: emptyDir + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - 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: setPermissionsSimple + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "simpleHP"]] + type: boolean + default: false + - 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: hostPathSimple + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "simpleHP"]] + type: hostpath + - 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 + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: hostPathType + label: (Advanced) hostPath Type + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: DirectoryOrCreate + description: DirectoryOrCreate + - value: Directory + description: Directory + - value: FileOrCreate + description: FileOrCreate + - value: File + description: File + - value: Socket + description: Socket + - value: CharDevice + description: CharDevice + - value: BlockDevice + description: BlockDevice + - variable: storageClass + label: (Advanced) storageClass + description: "Warning: Anything other than SCALE-ZFS or empty will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: SCALE-ZFS + - variable: accessMode + label: (Advanced) Access Mode + description: Allow or disallow multiple PVC's writhing to the same PV + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: ReadWriteOnce + enum: + - value: ReadWriteOnce + description: ReadWriteOnce + - value: ReadOnlyMany + description: ReadOnlyMany + - value: ReadWriteMany + description: ReadWriteMany + - variable: advanced + label: Show Advanced Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: platformio + label: "Platformio 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: simplePVC + enum: + - value: simplePVC + description: PVC (simple) + - value: simpleHP + description: Host Path (simple) + - value: emptyDir + description: emptyDir + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - 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: setPermissionsSimple + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "simpleHP"]] + type: boolean + default: false + - 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: hostPathSimple + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "simpleHP"]] + type: hostpath + - 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 + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: hostPathType + label: (Advanced) hostPath Type + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: DirectoryOrCreate + description: DirectoryOrCreate + - value: Directory + description: Directory + - value: FileOrCreate + description: FileOrCreate + - value: File + description: File + - value: Socket + description: Socket + - value: CharDevice + description: CharDevice + - value: BlockDevice + description: BlockDevice + - variable: storageClass + label: (Advanced) storageClass + description: "Warning: Anything other than SCALE-ZFS or empty will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: SCALE-ZFS + - variable: accessMode + label: (Advanced) Access Mode + description: Allow or disallow multiple PVC's writhing to the same PV + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: ReadWriteOnce + enum: + - value: ReadWriteOnce + description: ReadWriteOnce + - value: ReadOnlyMany + description: ReadOnlyMany + - value: ReadWriteMany + description: ReadWriteMany + - variable: advanced + label: Show Advanced Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - 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: name + label: Name (Optional) + description: "Not required, please set to config when mounting /config or temp when mounting /tmp" + schema: + type: string + - variable: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: simpleHP + enum: + - value: simplePVC + description: PVC (Simple) + - value: simpleHP + description: Host Path (Simple) + - value: emptyDir + description: emptyDir + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - 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: setPermissionsSimple + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "simpleHP"]] + type: boolean + default: false + - 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: hostPathSimple + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "simpleHP"]] + type: hostpath + - 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: hostPathType + label: (Advanced) Host Path Type + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: DirectoryOrCreate + description: DirectoryOrCreate + - value: Directory + description: Directory + - value: FileOrCreate + description: FileOrCreate + - value: File + description: File + - value: Socket + description: Socket + - value: CharDevice + description: CharDevice + - value: BlockDevice + description: BlockDevice + - variable: storageClass + label: (Advanced) StorageClass + description: "Warning: Anything other than SCALE-ZFS or empty will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: SCALE-ZFS + - variable: accessMode + label: (Advanced) Access Mode + description: Allow or disallow multiple PVC's writhing to the same PV + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: ReadWriteOnce + enum: + - value: ReadWriteOnce + description: ReadWriteOnce + - value: ReadOnlyMany + description: ReadOnlyMany + - value: ReadWriteMany + description: ReadWriteMany + - variable: advanced + label: Show Advanced Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - 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: 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: expert + label: Show Expert Configuration Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enableFixedMiddlewares + description: These middlewares enforce a number of best practices. + label: Enable Default Middlewares + schema: + type: boolean + default: true + - variable: ingressClassName + label: IngressClass Name + schema: + type: string + default: "" + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - 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: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - 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: true + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + - variable: capabilities + label: Capabilities + schema: + additional_attrs: true + type: dict + attrs: + - variable: drop + label: Drop Capability + schema: + type: list + default: [] + items: + - variable: dropEntry + label: "" + schema: + type: string + - variable: add + label: Add Capability + schema: + type: list + default: [] + items: + - variable: addEntry + label: "" + schema: + type: string + - 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: advancedresources + label: Set Custom Resource Limits/Requests (Advanced) + group: Resources and Devices + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: resources + label: "" + 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 + 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 + 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 + 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: promtail + label: Promtail + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: loki + label: Loki URL + schema: + type: string + required: true + - variable: logs + label: Log Paths + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: path + label: Path + schema: + type: string + required: true + - variable: args + label: Promtail Command Line Arguments + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: arg + label: Arg + schema: + type: string + required: true + - variable: envList + label: Promtail Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + - variable: netshoot + label: Netshoot + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: envList + label: Netshoot Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + - variable: vpn + label: VPN + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type + schema: + type: string + default: disabled + enum: + - value: disabled + description: disabled + - value: 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: 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: Sock5 Server + 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/libreddit/1.0.33/templates/common.yaml b/stable/esphome/11.0.51/templates/common.yaml similarity index 100% rename from stable/libreddit/1.0.33/templates/common.yaml rename to stable/esphome/11.0.51/templates/common.yaml diff --git a/stable/komga/6.0.47/values.yaml b/stable/esphome/11.0.51/values.yaml similarity index 100% rename from stable/komga/6.0.47/values.yaml rename to stable/esphome/11.0.51/values.yaml diff --git a/stable/fireflyiii/16.0.55/CHANGELOG.md b/stable/fireflyiii/16.0.55/CHANGELOG.md new file mode 100644 index 00000000000..68dea57fa6f --- /dev/null +++ b/stable/fireflyiii/16.0.55/CHANGELOG.md @@ -0,0 +1,99 @@ +# Changelog + + + +## [fireflyiii-16.0.55](https://github.com/truecharts/charts/compare/fireflyiii-16.0.54...fireflyiii-16.0.55) (2022-11-03) + +### Chore + +- Auto-update chart README [skip ci] + - update docker general non-major ([#4286](https://github.com/truecharts/charts/issues/4286)) + + + + +## [fireflyiii-16.0.54](https://github.com/truecharts/charts/compare/fireflyiii-16.0.53...fireflyiii-16.0.54) (2022-11-02) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major ([#4261](https://github.com/truecharts/charts/issues/4261)) + + + + +## [fireflyiii-16.0.53](https://github.com/truecharts/charts/compare/fireflyiii-data-importer-0.0.4...fireflyiii-16.0.53) (2022-10-25) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major + + + + +## [fireflyiii-16.0.52](https://github.com/truecharts/charts/compare/fireflyiii-data-importer-0.0.3...fireflyiii-16.0.52) (2022-10-25) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major ([#4182](https://github.com/truecharts/charts/issues/4182)) + + + + +## [fireflyiii-16.0.51](https://github.com/truecharts/charts/compare/fireflyiii-data-importer-0.0.2...fireflyiii-16.0.51) (2022-10-19) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major ([#4122](https://github.com/truecharts/charts/issues/4122)) + - update docker general non-major ([#4128](https://github.com/truecharts/charts/issues/4128)) + + + + +## [fireflyiii-16.0.50](https://github.com/truecharts/charts/compare/fireflyiii-data-importer-0.0.1...fireflyiii-16.0.50) (2022-10-12) + +### Chore + +- update helm general non-major ([#4071](https://github.com/truecharts/charts/issues/4071)) + + + + +## [fireflyiii-16.0.49](https://github.com/truecharts/charts/compare/fireflyiii-16.0.48...fireflyiii-16.0.49) (2022-10-07) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - update helm general non-major + + + + +## [fireflyiii-16.0.49](https://github.com/truecharts/charts/compare/fireflyiii-16.0.48...fireflyiii-16.0.49) (2022-10-07) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major + + + + +## [fireflyiii-16.0.48](https://github.com/truecharts/charts/compare/fireflyiii-16.0.47...fireflyiii-16.0.48) (2022-10-05) + +### Chore + +- split addons in smaller templates ([#3979](https://github.com/truecharts/charts/issues/3979)) + - update helm general non-major + + + + +## [fireflyiii-16.0.46](https://github.com/truecharts/charts/compare/fireflyiii-16.0.45...fireflyiii-16.0.46) (2022-09-27) + +### Chore + diff --git a/stable/grist/4.0.4/Chart.lock b/stable/fireflyiii/16.0.55/Chart.lock similarity index 88% rename from stable/grist/4.0.4/Chart.lock rename to stable/fireflyiii/16.0.55/Chart.lock index 17b851bc09c..00d63c63823 100644 --- a/stable/grist/4.0.4/Chart.lock +++ b/stable/fireflyiii/16.0.55/Chart.lock @@ -9,4 +9,4 @@ dependencies: repository: https://charts.truecharts.org version: 3.0.111 digest: sha256:238817db6a234e4867dd6bbec814b200393e995f5abd8dd6dca1d7ba6ebf08f6 -generated: "2022-11-02T10:16:00.349950489Z" +generated: "2022-11-03T02:48:04.314020482Z" diff --git a/stable/fireflyiii/16.0.55/Chart.yaml b/stable/fireflyiii/16.0.55/Chart.yaml new file mode 100644 index 00000000000..4eda86e20de --- /dev/null +++ b/stable/fireflyiii/16.0.55/Chart.yaml @@ -0,0 +1,37 @@ +apiVersion: v2 +appVersion: "5.7.15" +dependencies: + - name: common + repository: https://library-charts.truecharts.org + version: 10.7.13 + - condition: postgresql.enabled + name: postgresql + repository: https://charts.truecharts.org/ + version: 8.0.114 + - condition: redis.enabled + name: redis + repository: https://charts.truecharts.org + version: 3.0.111 +deprecated: false +description: A free and open source personal finance manager +home: https://truecharts.org/docs/charts/stable/fireflyiii +icon: https://truecharts.org/img/hotlink-ok/chart-icons/fireflyiii.png +keywords: + - fireflyiii + - finacial +kubeVersion: ">=1.16.0-0" +maintainers: + - email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +name: fireflyiii +sources: + - https://github.com/truecharts/charts/tree/master/charts/stable/fireflyiii + - https://github.com/firefly-iii/firefly-iii/ +type: application +version: 16.0.55 +annotations: + truecharts.org/catagories: | + - finacial + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/stable/fireflyiii/16.0.55/README.md b/stable/fireflyiii/16.0.55/README.md new file mode 100644 index 00000000000..3b53e8feb00 --- /dev/null +++ b/stable/fireflyiii/16.0.55/README.md @@ -0,0 +1,108 @@ +# fireflyiii + +A free and open source personal finance manager + +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: [fireflyiii](https://truecharts.org/docs/charts/stable/fireflyiii) + +**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.114 | +| https://charts.truecharts.org | redis | 3.0.111 | +| https://library-charts.truecharts.org | common | 10.7.13 | + +## 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 `fireflyiii` + +```console +helm repo add TrueCharts https://charts.truecharts.org +helm repo update +helm install fireflyiii TrueCharts/fireflyiii +``` + +## 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 `fireflyiii` deployment + +```console +helm uninstall fireflyiii +``` + +## 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 fireflyiii \ + --set env.TZ="America/New York" \ + TrueCharts/fireflyiii +``` + +#### 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 fireflyiii TrueCharts/fireflyiii -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/fireflyiii/16.0.55/app-readme.md b/stable/fireflyiii/16.0.55/app-readme.md new file mode 100644 index 00000000000..9852dd193a1 --- /dev/null +++ b/stable/fireflyiii/16.0.55/app-readme.md @@ -0,0 +1,8 @@ +A free and open source personal finance manager + +This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/docs/charts/stable/fireflyiii](https://truecharts.org/docs/charts/stable/fireflyiii) + +--- + +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/libreddit/1.0.33/charts/common-10.7.13.tgz b/stable/fireflyiii/16.0.55/charts/common-10.7.13.tgz similarity index 100% rename from stable/libreddit/1.0.33/charts/common-10.7.13.tgz rename to stable/fireflyiii/16.0.55/charts/common-10.7.13.tgz diff --git a/stable/grist/4.0.4/charts/postgresql-8.0.114.tgz b/stable/fireflyiii/16.0.55/charts/postgresql-8.0.114.tgz similarity index 100% rename from stable/grist/4.0.4/charts/postgresql-8.0.114.tgz rename to stable/fireflyiii/16.0.55/charts/postgresql-8.0.114.tgz diff --git a/stable/grist/4.0.4/charts/redis-3.0.111.tgz b/stable/fireflyiii/16.0.55/charts/redis-3.0.111.tgz similarity index 100% rename from stable/grist/4.0.4/charts/redis-3.0.111.tgz rename to stable/fireflyiii/16.0.55/charts/redis-3.0.111.tgz diff --git a/stable/fireflyiii/16.0.55/ix_values.yaml b/stable/fireflyiii/16.0.55/ix_values.yaml new file mode 100644 index 00000000000..146f38f8f0b --- /dev/null +++ b/stable/fireflyiii/16.0.55/ix_values.yaml @@ -0,0 +1,93 @@ +image: + repository: tccr.io/truecharts/fireflyiii-core + pullPolicy: IfNotPresent + tag: 5.7.15@sha256:66df853f2dc9fc888052e7de6a608483674a259fb41b3df12a14fa2e496fd9db + +securityContext: + readOnlyRootFilesystem: false + runAsNonRoot: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +service: + main: + ports: + main: + port: 10082 + targetPort: 8080 + +probes: + liveness: + path: "/login" + + readiness: + path: "/login" + + startup: + path: "/login" + +env: + DB_USERNAME: "{{ .Values.postgresql.postgresqlUsername }}" + DB_DATABASE: "{{ .Values.postgresql.postgresqlDatabase }}" + DB_CONNECTION: pgsql + DB_PORT: 5432 + REDIS_DB: "0" + REDIS_CACHE_DB: "1" + CACHE_DRIVER: redis + SESSION_DRIVER: redis + REDIS_SCHEME: tcp + REDIS_PORT: 6379 + APP_URL: "" + TRUSTED_PROXIES: "172.16.0.0/16" + DB_HOST: + secretKeyRef: + name: dbcreds + key: plainhost + DB_PASSWORD: + secretKeyRef: + name: dbcreds + key: postgresql-password + REDIS_HOST: + secretKeyRef: + name: rediscreds + key: plainhost + REDIS_PASSWORD: + secretKeyRef: + name: rediscreds + key: redis-password + STATIC_CRON_TOKEN: + secretKeyRef: + name: fireflyiii-secrets + key: STATIC_CRON_TOKEN + APP_KEY: + secretKeyRef: + name: fireflyiii-secrets + key: APP_KEY + +persistence: + data: + enabled: true + mountPath: "/var/www/html/storage/upload" + +cronjob: + schedule: "0 3 * * *" + annotations: {} + failedJobsHistoryLimit: 5 + successfulJobsHistoryLimit: 2 + +# Enabled redis +redis: + enabled: true + existingSecret: "rediscreds" + +# Enabled postgres +postgresql: + enabled: true + existingSecret: "dbcreds" + postgresqlUsername: firefly + postgresqlDatabase: firefly + +portal: + enabled: true diff --git a/stable/fireflyiii/16.0.55/questions.yaml b/stable/fireflyiii/16.0.55/questions.yaml new file mode 100644 index 00000000000..c9923aaad43 --- /dev/null +++ b/stable/fireflyiii/16.0.55/questions.yaml @@ -0,0 +1,2586 @@ +groups: + - name: Container Image + description: Image to be used for container + - name: Controller + description: Configure Workload Deployment + - name: Container Configuration + description: Additional Container Configuration + - name: App Configuration + description: App Specific Config Options + - name: Networking and Services + description: Configure Network and Services for Container + - name: Storage and Persistence + description: Persist and Share Data that is Separate from the Container + - name: Ingress + description: Ingress Configuration + - name: Security and Permissions + description: Configure Security Context and Permissions + - name: Resources and Devices + description: "Specify Resources/Devices to be Allocated to Workload" + - name: Middlewares + description: Traefik Middlewares + - name: Metrics + description: Metrics + - name: Addons + description: Addon Configuration + - name: Advanced + description: Advanced Configuration + - name: 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: Controller + schema: + type: dict + hidden: true + attrs: + - variable: isSCALE + label: Flag this is SCALE + schema: + type: boolean + default: true + hidden: true + - variable: controller + group: Controller + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: advanced + label: Show Advanced Controller Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: Please specify type of workload to deploy + label: (Advanced) Controller Type + schema: + type: string + required: true + enum: + - value: deployment + description: Deployment + - value: statefulset + description: Statefulset + - value: daemonset + description: Daemonset + default: deployment + - variable: replicas + description: Number of desired pod replicas + label: Desired Replicas + schema: + type: int + required: true + default: 1 + - variable: strategy + description: Please specify type of workload to deploy + label: (Advanced) Update Strategy + schema: + type: string + required: true + enum: + - value: Recreate + description: "Recreate: Kill existing pods before creating new ones" + - value: RollingUpdate + description: "RollingUpdate: Create new pods and then kill old ones" + - value: OnDelete + description: "(Legacy) OnDelete: ignore .spec.template changes" + default: Recreate + - variable: expert + label: Show Expert Configuration Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: Controller Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Controller Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: customextraargs + group: Controller + 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: "Container Configuration" + label: "Image Environment" + schema: + additional_attrs: true + type: dict + attrs: + - variable: APP_URL + label: "APP_URL" + description: "Application URL eg. https://fireflyiii.mydomain.com" + schema: + type: string + default: "http://localhost:10082" + - variable: TRUSTED_PROXIES + label: "TRUSTED_PROXIES" + description: "TRUSTED_PROXIES" + schema: + type: string + default: "172.16.0.0/16" + - variable: TZ + label: Timezone + group: Container Configuration + 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: Container Configuration + 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: expertpodconf + group: Container Configuration + label: Show Expert Configuration + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: tty + label: Enable TTY + description: Determines whether containers in a pod runs with TTY enabled. By default pod has it disabled. + group: Workload Details + schema: + type: boolean + default: false + - variable: stdin + label: Enable STDIN + description: Determines whether containers in a pod runs with stdin enabled. By default pod has it disabled. + group: Workload Details + schema: + type: boolean + default: false + - variable: termination + group: Container Configuration + label: Termination settings + schema: + additional_attrs: true + type: dict + attrs: + - variable: gracePeriodSeconds + label: Grace Period Seconds + schema: + type: int + default: 10 + - variable: podLabelsList + group: Container Configuration + label: Pod Labels + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: podAnnotationsList + group: Container Configuration + label: Pod Annotations + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: Label + 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: 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: The IP Families that should be used + schema: + type: list + default: [] + items: + - variable: ipFamily + label: IP Family + schema: + type: string + - 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: 10082 + required: true + - variable: advanced + label: Show Advanced Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: Enable the Port + schema: + type: boolean + hidden: true + default: true + - variable: protocol + label: Port Type + schema: + type: string + default: HTTP + enum: + - value: HTTP + description: HTTP + - value: HTTPS + description: HTTPS + - value: TCP + description: TCP + - value: UDP + description: UDP + - variable: nodePort + label: Node Port (Optional) + description: This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 8080 + - 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: dnsPolicy + group: Networking and Services + label: dnsPolicy + schema: + type: string + default: "" + enum: + - value: "" + description: Default + - value: ClusterFirst + description: ClusterFirst + - value: None + description: None + - variable: dnsConfig + label: DNS Configuration + group: Networking and Services + description: Specify custom DNS configuration which will be applied to the pod + schema: + additional_attrs: true + type: dict + attrs: + - variable: nameservers + label: Name Servers + schema: + default: [] + type: list + items: + - variable: nameserver + label: Name Server + schema: + type: string + - variable: options + label: Options + schema: + default: [] + type: list + items: + - variable: option + label: Option Entry + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: searches + label: Searches + schema: + default: [] + type: list + items: + - variable: search + label: Search Entry + schema: + type: string + - variable: serviceList + label: Add Manual Custom Services + group: Networking and Services + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: Custom Service + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the service + schema: + type: boolean + default: true + hidden: true + - variable: name + label: Name + schema: + type: string + default: "" + - variable: type + label: Service Type + description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: LoadBalancer + enum: + - value: LoadBalancer + description: LoadBalancer (Expose Ports) + - value: ClusterIP + description: ClusterIP (Do Not Expose Ports) + - value: Simple + description: Deprecated CHANGE THIS + - variable: loadBalancerIP + label: LoadBalancer IP + description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: advancedsvcset + label: Show Advanced Service Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + type: list + default: [] + items: + - variable: externalIP + label: External IP + schema: + type: string + - variable: ipFamilyPolicy + label: IP Family Policy + description: Specify the IP Policy + schema: + type: string + default: SingleStack + enum: + - value: SingleStack + description: SingleStack + - value: PreferDualStack + description: PreferDualStack + - value: RequireDualStack + description: RequireDualStack + - variable: ipFamilies + label: IP Families + description: (Advanced) The IP Families that should be used + schema: + type: list + default: [] + items: + - variable: ipFamily + label: IP Family + schema: + type: string + - variable: portsList + label: Additional Service Ports + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: Custom ports + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the Port + schema: + type: boolean + default: true + hidden: true + - variable: name + label: Port Name + schema: + type: string + default: "" + - variable: protocol + label: Port Type + schema: + type: string + default: TCP + enum: + - value: HTTP + description: HTTP + - value: HTTPS + description: HTTPS + - value: TCP + description: TCP + - value: UDP + description: UDP + - variable: targetPort + label: Target Port + description: This port exposes the container port on the service + schema: + type: int + required: true + - variable: port + label: Container Port + schema: + type: int + required: true + - variable: persistence + label: Integrated Persistent Storage + description: Integrated Persistent Storage + group: Storage and Persistence + schema: + additional_attrs: true + type: dict + attrs: + - variable: data + label: "App 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: simplePVC + enum: + - value: simplePVC + description: PVC (simple) + - value: simpleHP + description: Host Path (simple) + - value: emptyDir + description: emptyDir + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - 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: setPermissionsSimple + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "simpleHP"]] + type: boolean + default: false + - 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: hostPathSimple + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "simpleHP"]] + type: hostpath + - 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 + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: hostPathType + label: (Advanced) hostPath Type + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: DirectoryOrCreate + description: DirectoryOrCreate + - value: Directory + description: Directory + - value: FileOrCreate + description: FileOrCreate + - value: File + description: File + - value: Socket + description: Socket + - value: CharDevice + description: CharDevice + - value: BlockDevice + description: BlockDevice + - variable: storageClass + label: (Advanced) storageClass + description: "Warning: Anything other than SCALE-ZFS or empty will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: SCALE-ZFS + - variable: accessMode + label: (Advanced) Access Mode + description: Allow or disallow multiple PVC's writhing to the same PV + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: ReadWriteOnce + enum: + - value: ReadWriteOnce + description: ReadWriteOnce + - value: ReadOnlyMany + description: ReadOnlyMany + - value: ReadWriteMany + description: ReadWriteMany + - variable: advanced + label: Show Advanced Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - 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: name + label: Name (Optional) + description: "Not required, please set to config when mounting /config or temp when mounting /tmp" + schema: + type: string + - variable: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: simpleHP + enum: + - value: simplePVC + description: PVC (Simple) + - value: simpleHP + description: Host Path (Simple) + - value: emptyDir + description: emptyDir + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - 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: setPermissionsSimple + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "simpleHP"]] + type: boolean + default: false + - 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: hostPathSimple + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "simpleHP"]] + type: hostpath + - 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: hostPathType + label: (Advanced) Host Path Type + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: DirectoryOrCreate + description: DirectoryOrCreate + - value: Directory + description: Directory + - value: FileOrCreate + description: FileOrCreate + - value: File + description: File + - value: Socket + description: Socket + - value: CharDevice + description: CharDevice + - value: BlockDevice + description: BlockDevice + - variable: storageClass + label: (Advanced) StorageClass + description: "Warning: Anything other than SCALE-ZFS or empty will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: SCALE-ZFS + - variable: accessMode + label: (Advanced) Access Mode + description: Allow or disallow multiple PVC's writhing to the same PV + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: ReadWriteOnce + enum: + - value: ReadWriteOnce + description: ReadWriteOnce + - value: ReadOnlyMany + description: ReadOnlyMany + - value: ReadWriteMany + description: ReadWriteMany + - variable: advanced + label: Show Advanced Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - 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: 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: expert + label: Show Expert Configuration Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enableFixedMiddlewares + description: These middlewares enforce a number of best practices. + label: Enable Default Middlewares + schema: + type: boolean + default: true + - variable: ingressClassName + label: IngressClass Name + schema: + type: string + default: "" + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - 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: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - 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: capabilities + label: Capabilities + schema: + additional_attrs: true + type: dict + attrs: + - variable: drop + label: Drop Capability + schema: + type: list + default: [] + items: + - variable: dropEntry + label: "" + schema: + type: string + - variable: add + label: Add Capability + schema: + type: list + default: [] + items: + - variable: addEntry + label: "" + schema: + type: string + - 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: advancedresources + label: Set Custom Resource Limits/Requests (Advanced) + group: Resources and Devices + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: resources + label: "" + 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 + 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 + 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 + 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: promtail + label: Promtail + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: loki + label: Loki URL + schema: + type: string + required: true + - variable: logs + label: Log Paths + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: path + label: Path + schema: + type: string + required: true + - variable: args + label: Promtail Command Line Arguments + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: arg + label: Arg + schema: + type: string + required: true + - variable: envList + label: Promtail Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + - variable: netshoot + label: Netshoot + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: envList + label: Netshoot Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + - variable: vpn + label: VPN + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type + schema: + type: string + default: disabled + enum: + - value: disabled + description: disabled + - value: 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: 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: Sock5 Server + 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/fireflyiii/16.0.55/templates/_cronjob.tpl b/stable/fireflyiii/16.0.55/templates/_cronjob.tpl new file mode 100644 index 00000000000..cb8c902c952 --- /dev/null +++ b/stable/fireflyiii/16.0.55/templates/_cronjob.tpl @@ -0,0 +1,54 @@ +{{/* Define the cronjob */}} +{{- define "fireflyiii.cronjob" -}} +{{- $jobName := include "tc.common.names.fullname" . }} + +--- +apiVersion: batch/v1 +kind: CronJob +metadata: + name: {{ printf "%s-cronjob" $jobName }} + labels: + {{- include "tc.common.labels" . | nindent 4 }} +spec: + schedule: "{{ .Values.cronjob.schedule }}" + concurrencyPolicy: Forbid + {{- with .Values.cronjob.failedJobsHistoryLimit }} + failedJobsHistoryLimit: {{ . }} + {{- end }} + {{- with .Values.cronjob.successfulJobsHistoryLimit }} + successfulJobsHistoryLimit: {{ . }} + {{- end }} + jobTemplate: + metadata: + spec: + template: + metadata: + spec: + securityContext: + runAsUser: 568 + runAsGroup: 568 + restartPolicy: Never + containers: + - name: {{ .Chart.Name }} + securityContext: + privileged: false + readOnlyRootFilesystem: true + allowPrivilegeEscalation: false + runAsNonRoot: true + capabilities: + drop: + - ALL + env: + - name: STATIC_CRON_TOKEN + valueFrom: + secretKeyRef: + name: fireflyiii-secrets + key: STATIC_CRON_TOKEN + image: "{{ .Values.alpineImage.repository }}:{{ .Values.alpineImage.tag }}" + args: + - curl + - "http://{{ $jobName }}.ix-{{ .Release.Name }}.svc.cluster.local:{{ .Values.service.main.ports.main.port }}/api/v1/cron/$(STATIC_CRON_TOKEN)" + resources: +{{ toYaml .Values.resources | indent 16 }} + +{{- end -}} diff --git a/stable/fireflyiii/16.0.55/templates/_secrets.tpl b/stable/fireflyiii/16.0.55/templates/_secrets.tpl new file mode 100644 index 00000000000..dc4d67f4ddf --- /dev/null +++ b/stable/fireflyiii/16.0.55/templates/_secrets.tpl @@ -0,0 +1,24 @@ +{{/* Define the secrets */}} +{{- define "fireflyiii.secrets" -}} +--- + +apiVersion: v1 +kind: Secret +type: Opaque +metadata: + name: fireflyiii-secrets +{{- $fireflyiiiprevious := lookup "v1" "Secret" .Release.Namespace "fireflyiii-secrets" }} +{{- $static_cron_token := "" }} +{{- $app_key := "" }} +data: + {{- if $fireflyiiiprevious}} + STATIC_CRON_TOKEN: {{ index $fireflyiiiprevious.data "STATIC_CRON_TOKEN" }} + APP_KEY: {{ index $fireflyiiiprevious.data "APP_KEY" }} + {{- else }} + {{- $static_cron_token := randAlphaNum 32 }} + {{- $app_key := randAlphaNum 32 }} + STATIC_CRON_TOKEN: {{ $static_cron_token | b64enc }} + APP_KEY: {{ $app_key | b64enc }} + {{- end }} + +{{- end -}} diff --git a/stable/fireflyiii/16.0.55/templates/common.yaml b/stable/fireflyiii/16.0.55/templates/common.yaml new file mode 100644 index 00000000000..12e701a6af1 --- /dev/null +++ b/stable/fireflyiii/16.0.55/templates/common.yaml @@ -0,0 +1,11 @@ +{{/* Make sure all variables are set properly */}} +{{- include "tc.common.loader.init" . }} + +{{/* Render secrets for fireflyiii */}} +{{- include "fireflyiii.secrets" . }} + +{{/* Render cronjob for fireflyiii */}} +{{- include "fireflyiii.cronjob" . }} + +{{/* Render the templates */}} +{{ include "tc.common.loader.apply" . }} diff --git a/stable/libreddit/1.0.33/values.yaml b/stable/fireflyiii/16.0.55/values.yaml similarity index 100% rename from stable/libreddit/1.0.33/values.yaml rename to stable/fireflyiii/16.0.55/values.yaml diff --git a/stable/grist/4.0.4/CHANGELOG.md b/stable/grist/4.0.5/CHANGELOG.md similarity index 91% rename from stable/grist/4.0.4/CHANGELOG.md rename to stable/grist/4.0.5/CHANGELOG.md index 96bdaf35498..5d356f56d3c 100644 --- a/stable/grist/4.0.4/CHANGELOG.md +++ b/stable/grist/4.0.5/CHANGELOG.md @@ -2,6 +2,16 @@ +## [grist-4.0.5](https://github.com/truecharts/charts/compare/grist-4.0.4...grist-4.0.5) (2022-11-03) + +### Chore + +- Auto-update chart README [skip ci] + - update docker general non-major ([#4286](https://github.com/truecharts/charts/issues/4286)) + + + + ## [grist-4.0.4](https://github.com/truecharts/charts/compare/grist-4.0.3...grist-4.0.4) (2022-11-02) ### Chore @@ -87,13 +97,3 @@ ## [hammond-2.0.34](https://github.com/truecharts/charts/compare/hammond-2.0.33...hammond-2.0.34) (2022-09-27) ### Chore - -- Auto-update chart README [skip ci] - - update helm general non-major ([#3918](https://github.com/truecharts/charts/issues/3918)) - - - - -## [hammond-2.0.33](https://github.com/truecharts/charts/compare/hammond-2.0.32...hammond-2.0.33) (2022-09-25) - -### Chore diff --git a/stable/n8n/4.0.74/Chart.lock b/stable/grist/4.0.5/Chart.lock similarity index 88% rename from stable/n8n/4.0.74/Chart.lock rename to stable/grist/4.0.5/Chart.lock index caa1b8a8808..0800f14803c 100644 --- a/stable/n8n/4.0.74/Chart.lock +++ b/stable/grist/4.0.5/Chart.lock @@ -9,4 +9,4 @@ dependencies: repository: https://charts.truecharts.org version: 3.0.111 digest: sha256:238817db6a234e4867dd6bbec814b200393e995f5abd8dd6dca1d7ba6ebf08f6 -generated: "2022-11-02T10:35:30.784847139Z" +generated: "2022-11-03T02:48:31.290730884Z" diff --git a/stable/grist/4.0.4/Chart.yaml b/stable/grist/4.0.5/Chart.yaml similarity index 97% rename from stable/grist/4.0.4/Chart.yaml rename to stable/grist/4.0.5/Chart.yaml index 93c9ecb2221..2878207a81b 100644 --- a/stable/grist/4.0.4/Chart.yaml +++ b/stable/grist/4.0.5/Chart.yaml @@ -1,5 +1,5 @@ apiVersion: v2 -appVersion: "1.0.3" +appVersion: "1.0.4" dependencies: - name: common repository: https://library-charts.truecharts.org @@ -30,7 +30,7 @@ sources: - https://hub.docker.com/r/gristlabs/grist - https://github.com/gristlabs/grist-core - https://support.getgrist.com/ -version: 4.0.4 +version: 4.0.5 annotations: truecharts.org/catagories: | - productivity diff --git a/stable/grist/4.0.4/README.md b/stable/grist/4.0.5/README.md similarity index 100% rename from stable/grist/4.0.4/README.md rename to stable/grist/4.0.5/README.md diff --git a/stable/grist/4.0.4/app-readme.md b/stable/grist/4.0.5/app-readme.md similarity index 100% rename from stable/grist/4.0.4/app-readme.md rename to stable/grist/4.0.5/app-readme.md diff --git a/stable/matomo/3.0.86/charts/common-10.7.13.tgz b/stable/grist/4.0.5/charts/common-10.7.13.tgz similarity index 100% rename from stable/matomo/3.0.86/charts/common-10.7.13.tgz rename to stable/grist/4.0.5/charts/common-10.7.13.tgz diff --git a/stable/n8n/4.0.74/charts/postgresql-8.0.114.tgz b/stable/grist/4.0.5/charts/postgresql-8.0.114.tgz similarity index 100% rename from stable/n8n/4.0.74/charts/postgresql-8.0.114.tgz rename to stable/grist/4.0.5/charts/postgresql-8.0.114.tgz diff --git a/stable/n8n/4.0.74/charts/redis-3.0.111.tgz b/stable/grist/4.0.5/charts/redis-3.0.111.tgz similarity index 100% rename from stable/n8n/4.0.74/charts/redis-3.0.111.tgz rename to stable/grist/4.0.5/charts/redis-3.0.111.tgz diff --git a/stable/grist/4.0.4/ix_values.yaml b/stable/grist/4.0.5/ix_values.yaml similarity index 94% rename from stable/grist/4.0.4/ix_values.yaml rename to stable/grist/4.0.5/ix_values.yaml index 906d14eea72..d4303ac94d9 100644 --- a/stable/grist/4.0.4/ix_values.yaml +++ b/stable/grist/4.0.5/ix_values.yaml @@ -1,6 +1,6 @@ image: repository: tccr.io/truecharts/grist - tag: v1.0.3@sha256:d924a73ae31e0818331ca5d744a4103caa1ddf902dbd0c7a0e74e20cf9b953cc + tag: 1.0.4@sha256:ed76bba8fc6940ade518b67578c13a10900cebf5657603b68b33fa29deaaf40b pullPolicy: IfNotPresent securityContext: diff --git a/stable/grist/4.0.4/questions.yaml b/stable/grist/4.0.5/questions.yaml similarity index 100% rename from stable/grist/4.0.4/questions.yaml rename to stable/grist/4.0.5/questions.yaml diff --git a/stable/grist/4.0.4/templates/_config.tpl b/stable/grist/4.0.5/templates/_config.tpl similarity index 100% rename from stable/grist/4.0.4/templates/_config.tpl rename to stable/grist/4.0.5/templates/_config.tpl diff --git a/stable/grist/4.0.4/templates/_secret.tpl b/stable/grist/4.0.5/templates/_secret.tpl similarity index 100% rename from stable/grist/4.0.4/templates/_secret.tpl rename to stable/grist/4.0.5/templates/_secret.tpl diff --git a/stable/grist/4.0.4/templates/common.yaml b/stable/grist/4.0.5/templates/common.yaml similarity index 100% rename from stable/grist/4.0.4/templates/common.yaml rename to stable/grist/4.0.5/templates/common.yaml diff --git a/stable/matomo/3.0.86/values.yaml b/stable/grist/4.0.5/values.yaml similarity index 100% rename from stable/matomo/3.0.86/values.yaml rename to stable/grist/4.0.5/values.yaml diff --git a/stable/ispy-agent-dvr/2.0.57/Chart.lock b/stable/ispy-agent-dvr/2.0.57/Chart.lock deleted file mode 100644 index b120c48e8af..00000000000 --- a/stable/ispy-agent-dvr/2.0.57/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: https://library-charts.truecharts.org - version: 10.7.13 -digest: sha256:2f2267115af9bdc61a64db6317564e2d07f4f27ccb0627720c8a63d82b1786b7 -generated: "2022-11-02T10:20:47.535599641Z" diff --git a/stable/ispy-agent-dvr/2.0.57/CHANGELOG.md b/stable/ispy-agent-dvr/2.0.58/CHANGELOG.md similarity index 90% rename from stable/ispy-agent-dvr/2.0.57/CHANGELOG.md rename to stable/ispy-agent-dvr/2.0.58/CHANGELOG.md index 72da8d734ff..42d86de8d85 100644 --- a/stable/ispy-agent-dvr/2.0.57/CHANGELOG.md +++ b/stable/ispy-agent-dvr/2.0.58/CHANGELOG.md @@ -2,6 +2,16 @@ +## [ispy-agent-dvr-2.0.58](https://github.com/truecharts/charts/compare/ispy-agent-dvr-2.0.57...ispy-agent-dvr-2.0.58) (2022-11-03) + +### Chore + +- Auto-update chart README [skip ci] + - update docker general non-major ([#4286](https://github.com/truecharts/charts/issues/4286)) + + + + ## [ispy-agent-dvr-2.0.57](https://github.com/truecharts/charts/compare/ispy-agent-dvr-2.0.56...ispy-agent-dvr-2.0.57) (2022-11-02) ### Chore @@ -87,13 +97,3 @@ ## [ispy-agent-dvr-2.0.50](https://github.com/truecharts/charts/compare/ispy-agent-dvr-2.0.49...ispy-agent-dvr-2.0.50) (2022-10-10) ### Chore - -- Auto-update chart README [skip ci] - - update docker general non-major ([#4049](https://github.com/truecharts/charts/issues/4049)) - - update docker general non-major - - - - -## [ispy-agent-dvr-2.0.49](https://github.com/truecharts/charts/compare/ispy-agent-dvr-2.0.48...ispy-agent-dvr-2.0.49) (2022-10-07) - diff --git a/stable/ispy-agent-dvr/2.0.58/Chart.lock b/stable/ispy-agent-dvr/2.0.58/Chart.lock new file mode 100644 index 00000000000..3deadc9e48e --- /dev/null +++ b/stable/ispy-agent-dvr/2.0.58/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://library-charts.truecharts.org + version: 10.7.13 +digest: sha256:2f2267115af9bdc61a64db6317564e2d07f4f27ccb0627720c8a63d82b1786b7 +generated: "2022-11-03T02:48:02.431205883Z" diff --git a/stable/ispy-agent-dvr/2.0.57/Chart.yaml b/stable/ispy-agent-dvr/2.0.58/Chart.yaml similarity index 95% rename from stable/ispy-agent-dvr/2.0.57/Chart.yaml rename to stable/ispy-agent-dvr/2.0.58/Chart.yaml index 193a4e9a684..b04e1ef385b 100644 --- a/stable/ispy-agent-dvr/2.0.57/Chart.yaml +++ b/stable/ispy-agent-dvr/2.0.58/Chart.yaml @@ -1,5 +1,5 @@ apiVersion: v2 -appVersion: "4.3.5.0" +appVersion: "4.3.6.0" dependencies: - name: common repository: https://library-charts.truecharts.org @@ -21,7 +21,7 @@ sources: - https://github.com/truecharts/charts/tree/master/charts/stable/ispy-agent-dvr - https://hub.docker.com/r/doitandbedone/ispyagentdvr - https://github.com/doitandbedone/ispyagentdvr-docker -version: 2.0.57 +version: 2.0.58 annotations: truecharts.org/catagories: | - security diff --git a/stable/ispy-agent-dvr/2.0.57/README.md b/stable/ispy-agent-dvr/2.0.58/README.md similarity index 100% rename from stable/ispy-agent-dvr/2.0.57/README.md rename to stable/ispy-agent-dvr/2.0.58/README.md diff --git a/stable/ispy-agent-dvr/2.0.57/app-readme.md b/stable/ispy-agent-dvr/2.0.58/app-readme.md similarity index 100% rename from stable/ispy-agent-dvr/2.0.57/app-readme.md rename to stable/ispy-agent-dvr/2.0.58/app-readme.md diff --git a/stable/n8n/4.0.74/charts/common-10.7.13.tgz b/stable/ispy-agent-dvr/2.0.58/charts/common-10.7.13.tgz similarity index 100% rename from stable/n8n/4.0.74/charts/common-10.7.13.tgz rename to stable/ispy-agent-dvr/2.0.58/charts/common-10.7.13.tgz diff --git a/stable/ispy-agent-dvr/2.0.57/ix_values.yaml b/stable/ispy-agent-dvr/2.0.58/ix_values.yaml similarity index 95% rename from stable/ispy-agent-dvr/2.0.57/ix_values.yaml rename to stable/ispy-agent-dvr/2.0.58/ix_values.yaml index 031efe1cac3..cc17ce4af1a 100644 --- a/stable/ispy-agent-dvr/2.0.57/ix_values.yaml +++ b/stable/ispy-agent-dvr/2.0.58/ix_values.yaml @@ -1,6 +1,6 @@ image: repository: tccr.io/truecharts/ispy-agent-dvr - tag: 4.3.5.0@sha256:b0a3d2500d40fa50636c4b7481b9574239cc93ba571c2412bf093dc37bc051d7 + tag: 4.3.6.0@sha256:6950a3059d88368e93720a60955165f658ccf34cbc0a834feada7f96ef26c868 pullPolicy: IfNotPresent securityContext: diff --git a/stable/ispy-agent-dvr/2.0.57/questions.yaml b/stable/ispy-agent-dvr/2.0.58/questions.yaml similarity index 100% rename from stable/ispy-agent-dvr/2.0.57/questions.yaml rename to stable/ispy-agent-dvr/2.0.58/questions.yaml diff --git a/stable/matomo/3.0.86/templates/common.yaml b/stable/ispy-agent-dvr/2.0.58/templates/common.yaml similarity index 100% rename from stable/matomo/3.0.86/templates/common.yaml rename to stable/ispy-agent-dvr/2.0.58/templates/common.yaml diff --git a/stable/n8n/4.0.74/values.yaml b/stable/ispy-agent-dvr/2.0.58/values.yaml similarity index 100% rename from stable/n8n/4.0.74/values.yaml rename to stable/ispy-agent-dvr/2.0.58/values.yaml diff --git a/stable/jackett/11.0.122/CHANGELOG.md b/stable/jackett/11.0.122/CHANGELOG.md new file mode 100644 index 00000000000..400ec5c63f1 --- /dev/null +++ b/stable/jackett/11.0.122/CHANGELOG.md @@ -0,0 +1,99 @@ +# Changelog + + + +## [jackett-11.0.122](https://github.com/truecharts/charts/compare/jackett-11.0.121...jackett-11.0.122) (2022-11-03) + +### Chore + +- Auto-update chart README [skip ci] + - update docker general non-major ([#4286](https://github.com/truecharts/charts/issues/4286)) + + + + +## [jackett-11.0.121](https://github.com/truecharts/charts/compare/jackett-11.0.120...jackett-11.0.121) (2022-11-02) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major ([#4261](https://github.com/truecharts/charts/issues/4261)) + - update docker general non-major ([#4280](https://github.com/truecharts/charts/issues/4280)) + + + + +## [jackett-11.0.120](https://github.com/truecharts/charts/compare/jackett-11.0.119...jackett-11.0.120) (2022-11-01) + +### Chore + +- Auto-update chart README [skip ci] + - update docker general non-major ([#4260](https://github.com/truecharts/charts/issues/4260)) + + + + +## [jackett-11.0.119](https://github.com/truecharts/charts/compare/jackett-11.0.118...jackett-11.0.119) (2022-10-30) + +### Chore + +- Auto-update chart README [skip ci] + - update docker general non-major ([#4238](https://github.com/truecharts/charts/issues/4238)) + + + + +## [jackett-11.0.118](https://github.com/truecharts/charts/compare/jackett-11.0.117...jackett-11.0.118) (2022-10-28) + +### Chore + +- Auto-update chart README [skip ci] + - update docker general non-major ([#4218](https://github.com/truecharts/charts/issues/4218)) + + + + +## [jackett-11.0.117](https://github.com/truecharts/charts/compare/jackett-11.0.116...jackett-11.0.117) (2022-10-27) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - update docker general non-major ([#4201](https://github.com/truecharts/charts/issues/4201)) + + + + +## [jackett-11.0.117](https://github.com/truecharts/charts/compare/jackett-11.0.116...jackett-11.0.117) (2022-10-27) + +### Chore + +- Auto-update chart README [skip ci] + - update docker general non-major ([#4201](https://github.com/truecharts/charts/issues/4201)) + + + + +## [jackett-11.0.116](https://github.com/truecharts/charts/compare/jackett-11.0.115...jackett-11.0.116) (2022-10-25) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major ([#4182](https://github.com/truecharts/charts/issues/4182)) + + + + +## [jackett-11.0.115](https://github.com/truecharts/charts/compare/jackett-11.0.114...jackett-11.0.115) (2022-10-25) + +### Chore + +- Auto-update chart README [skip ci] + - update docker general non-major ([#4181](https://github.com/truecharts/charts/issues/4181)) + + + + +## [jackett-11.0.114](https://github.com/truecharts/charts/compare/jackett-11.0.112...jackett-11.0.114) (2022-10-24) + +### Chore diff --git a/stable/jackett/11.0.122/Chart.lock b/stable/jackett/11.0.122/Chart.lock new file mode 100644 index 00000000000..678708fc63f --- /dev/null +++ b/stable/jackett/11.0.122/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://library-charts.truecharts.org + version: 10.7.13 +digest: sha256:2f2267115af9bdc61a64db6317564e2d07f4f27ccb0627720c8a63d82b1786b7 +generated: "2022-11-03T02:48:04.414767383Z" diff --git a/stable/jackett/11.0.122/Chart.yaml b/stable/jackett/11.0.122/Chart.yaml new file mode 100644 index 00000000000..2c5539e6630 --- /dev/null +++ b/stable/jackett/11.0.122/Chart.yaml @@ -0,0 +1,31 @@ +apiVersion: v2 +appVersion: "0.20.2186" +dependencies: + - name: common + repository: https://library-charts.truecharts.org + version: 10.7.13 +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: 11.0.122 +annotations: + truecharts.org/catagories: | + - media + - test + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/stable/jackett/11.0.122/README.md b/stable/jackett/11.0.122/README.md new file mode 100644 index 00000000000..1c63f781cb5 --- /dev/null +++ b/stable/jackett/11.0.122/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.7.13 | + +## 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/11.0.122/app-readme.md b/stable/jackett/11.0.122/app-readme.md new file mode 100644 index 00000000000..94165e2dadb --- /dev/null +++ b/stable/jackett/11.0.122/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/omada-controller/6.3.1/charts/common-10.7.13.tgz b/stable/jackett/11.0.122/charts/common-10.7.13.tgz similarity index 100% rename from stable/omada-controller/6.3.1/charts/common-10.7.13.tgz rename to stable/jackett/11.0.122/charts/common-10.7.13.tgz diff --git a/stable/jackett/11.0.122/ix_values.yaml b/stable/jackett/11.0.122/ix_values.yaml new file mode 100644 index 00000000000..16af44060fc --- /dev/null +++ b/stable/jackett/11.0.122/ix_values.yaml @@ -0,0 +1,33 @@ +image: + repository: tccr.io/truecharts/jackett + pullPolicy: IfNotPresent + tag: 0.20.2186@sha256:1f0e0813185a5c39082c75b0545c71a34ef34ed556a1dd7fad1c08baee90ecc4 + +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/11.0.122/questions.yaml b/stable/jackett/11.0.122/questions.yaml new file mode 100644 index 00000000000..3725b4ccd2d --- /dev/null +++ b/stable/jackett/11.0.122/questions.yaml @@ -0,0 +1,2567 @@ +groups: + - name: Container Image + description: Image to be used for container + - name: Controller + description: Configure Workload Deployment + - name: Container Configuration + description: Additional Container Configuration + - name: App Configuration + description: App Specific Config Options + - name: Networking and Services + description: Configure Network and Services for Container + - name: Storage and Persistence + description: Persist and Share Data that is Separate from the Container + - name: Ingress + description: Ingress Configuration + - name: Security and Permissions + description: Configure Security Context and Permissions + - name: Resources and Devices + description: "Specify Resources/Devices to be Allocated to Workload" + - name: Middlewares + description: Traefik Middlewares + - name: Metrics + description: Metrics + - name: Addons + description: Addon Configuration + - name: Advanced + description: Advanced Configuration + - name: 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: Controller + schema: + type: dict + hidden: true + attrs: + - variable: isSCALE + label: Flag this is SCALE + schema: + type: boolean + default: true + hidden: true + - variable: controller + group: Controller + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: advanced + label: Show Advanced Controller Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: Please specify type of workload to deploy + label: (Advanced) Controller Type + schema: + type: string + required: true + enum: + - value: deployment + description: Deployment + - value: statefulset + description: Statefulset + - value: daemonset + description: Daemonset + default: deployment + - variable: replicas + description: Number of desired pod replicas + label: Desired Replicas + schema: + type: int + required: true + default: 1 + - variable: strategy + description: Please specify type of workload to deploy + label: (Advanced) Update Strategy + schema: + type: string + required: true + enum: + - value: Recreate + description: "Recreate: Kill existing pods before creating new ones" + - value: RollingUpdate + description: "RollingUpdate: Create new pods and then kill old ones" + - value: OnDelete + description: "(Legacy) OnDelete: ignore .spec.template changes" + default: Recreate + - variable: expert + label: Show Expert Configuration Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: Controller Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Controller Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: customextraargs + group: Controller + 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: Container Configuration + 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: Container Configuration + 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: expertpodconf + group: Container Configuration + label: Show Expert Configuration + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: tty + label: Enable TTY + description: Determines whether containers in a pod runs with TTY enabled. By default pod has it disabled. + group: Workload Details + schema: + type: boolean + default: false + - variable: stdin + label: Enable STDIN + description: Determines whether containers in a pod runs with stdin enabled. By default pod has it disabled. + group: Workload Details + schema: + type: boolean + default: false + - variable: termination + group: Container Configuration + label: Termination settings + schema: + additional_attrs: true + type: dict + attrs: + - variable: gracePeriodSeconds + label: Grace Period Seconds + schema: + type: int + default: 10 + - variable: podLabelsList + group: Container Configuration + label: Pod Labels + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: podAnnotationsList + group: Container Configuration + label: Pod Annotations + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: Label + 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: 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: The IP Families that should be used + schema: + type: list + default: [] + items: + - variable: ipFamily + label: IP Family + schema: + type: string + - 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: advanced + label: Show Advanced Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: Enable the Port + schema: + type: boolean + hidden: true + default: true + - variable: protocol + label: Port Type + schema: + type: string + default: HTTP + enum: + - value: HTTP + description: HTTP + - value: HTTPS + description: HTTPS + - value: TCP + description: TCP + - value: UDP + description: UDP + - variable: nodePort + label: Node Port (Optional) + description: This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 9117 + - 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: dnsPolicy + group: Networking and Services + label: dnsPolicy + schema: + type: string + default: "" + enum: + - value: "" + description: Default + - value: ClusterFirst + description: ClusterFirst + - value: None + description: None + - variable: dnsConfig + label: DNS Configuration + group: Networking and Services + description: Specify custom DNS configuration which will be applied to the pod + schema: + additional_attrs: true + type: dict + attrs: + - variable: nameservers + label: Name Servers + schema: + default: [] + type: list + items: + - variable: nameserver + label: Name Server + schema: + type: string + - variable: options + label: Options + schema: + default: [] + type: list + items: + - variable: option + label: Option Entry + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: searches + label: Searches + schema: + default: [] + type: list + items: + - variable: search + label: Search Entry + schema: + type: string + - 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: simplePVC + enum: + - value: simplePVC + description: PVC (simple) + - value: simpleHP + description: Host Path (simple) + - value: emptyDir + description: emptyDir + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - 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: setPermissionsSimple + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "simpleHP"]] + type: boolean + default: false + - 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: hostPathSimple + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "simpleHP"]] + type: hostpath + - 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 + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: hostPathType + label: (Advanced) hostPath Type + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: DirectoryOrCreate + description: DirectoryOrCreate + - value: Directory + description: Directory + - value: FileOrCreate + description: FileOrCreate + - value: File + description: File + - value: Socket + description: Socket + - value: CharDevice + description: CharDevice + - value: BlockDevice + description: BlockDevice + - variable: storageClass + label: (Advanced) storageClass + description: "Warning: Anything other than SCALE-ZFS or empty will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: SCALE-ZFS + - variable: accessMode + label: (Advanced) Access Mode + description: Allow or disallow multiple PVC's writhing to the same PV + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: ReadWriteOnce + enum: + - value: ReadWriteOnce + description: ReadWriteOnce + - value: ReadOnlyMany + description: ReadOnlyMany + - value: ReadWriteMany + description: ReadWriteMany + - variable: advanced + label: Show Advanced Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - 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: name + label: Name (Optional) + description: "Not required, please set to config when mounting /config or temp when mounting /tmp" + schema: + type: string + - variable: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: simpleHP + enum: + - value: simplePVC + description: PVC (Simple) + - value: simpleHP + description: Host Path (Simple) + - value: emptyDir + description: emptyDir + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - 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: setPermissionsSimple + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "simpleHP"]] + type: boolean + default: false + - 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: hostPathSimple + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "simpleHP"]] + type: hostpath + - 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: hostPathType + label: (Advanced) Host Path Type + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: DirectoryOrCreate + description: DirectoryOrCreate + - value: Directory + description: Directory + - value: FileOrCreate + description: FileOrCreate + - value: File + description: File + - value: Socket + description: Socket + - value: CharDevice + description: CharDevice + - value: BlockDevice + description: BlockDevice + - variable: storageClass + label: (Advanced) StorageClass + description: "Warning: Anything other than SCALE-ZFS or empty will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: SCALE-ZFS + - variable: accessMode + label: (Advanced) Access Mode + description: Allow or disallow multiple PVC's writhing to the same PV + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: ReadWriteOnce + enum: + - value: ReadWriteOnce + description: ReadWriteOnce + - value: ReadOnlyMany + description: ReadOnlyMany + - value: ReadWriteMany + description: ReadWriteMany + - variable: advanced + label: Show Advanced Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - 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: 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: expert + label: Show Expert Configuration Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enableFixedMiddlewares + description: These middlewares enforce a number of best practices. + label: Enable Default Middlewares + schema: + type: boolean + default: true + - variable: ingressClassName + label: IngressClass Name + schema: + type: string + default: "" + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - 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: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - 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: capabilities + label: Capabilities + schema: + additional_attrs: true + type: dict + attrs: + - variable: drop + label: Drop Capability + schema: + type: list + default: [] + items: + - variable: dropEntry + label: "" + schema: + type: string + - variable: add + label: Add Capability + schema: + type: list + default: [] + items: + - variable: addEntry + label: "" + schema: + type: string + - 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: advancedresources + label: Set Custom Resource Limits/Requests (Advanced) + group: Resources and Devices + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: resources + label: "" + 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 + 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 + 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 + 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: promtail + label: Promtail + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: loki + label: Loki URL + schema: + type: string + required: true + - variable: logs + label: Log Paths + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: path + label: Path + schema: + type: string + required: true + - variable: args + label: Promtail Command Line Arguments + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: arg + label: Arg + schema: + type: string + required: true + - variable: envList + label: Promtail Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + - variable: netshoot + label: Netshoot + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: envList + label: Netshoot Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + - variable: vpn + label: VPN + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type + schema: + type: string + default: disabled + enum: + - value: disabled + description: disabled + - value: 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: 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: Sock5 Server + 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/omada-controller/6.3.1/templates/common.yaml b/stable/jackett/11.0.122/templates/common.yaml similarity index 100% rename from stable/omada-controller/6.3.1/templates/common.yaml rename to stable/jackett/11.0.122/templates/common.yaml diff --git a/stable/omada-controller/6.3.1/values.yaml b/stable/jackett/11.0.122/values.yaml similarity index 100% rename from stable/omada-controller/6.3.1/values.yaml rename to stable/jackett/11.0.122/values.yaml diff --git a/stable/komga/6.0.47/Chart.lock b/stable/komga/6.0.47/Chart.lock deleted file mode 100644 index 6d0b5ab4b8f..00000000000 --- a/stable/komga/6.0.47/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: https://library-charts.truecharts.org - version: 10.7.13 -digest: sha256:2f2267115af9bdc61a64db6317564e2d07f4f27ccb0627720c8a63d82b1786b7 -generated: "2022-11-02T10:24:06.890203375Z" diff --git a/stable/komga/6.0.47/CHANGELOG.md b/stable/komga/6.0.48/CHANGELOG.md similarity index 91% rename from stable/komga/6.0.47/CHANGELOG.md rename to stable/komga/6.0.48/CHANGELOG.md index 8a58634b163..89a9cbffe53 100644 --- a/stable/komga/6.0.47/CHANGELOG.md +++ b/stable/komga/6.0.48/CHANGELOG.md @@ -2,6 +2,16 @@ +## [komga-6.0.48](https://github.com/truecharts/charts/compare/komga-6.0.47...komga-6.0.48) (2022-11-03) + +### Chore + +- Auto-update chart README [skip ci] + - update docker general non-major ([#4286](https://github.com/truecharts/charts/issues/4286)) + + + + ## [komga-6.0.47](https://github.com/truecharts/charts/compare/komga-6.0.46...komga-6.0.47) (2022-11-02) ### Chore @@ -87,13 +97,3 @@ ## [komga-6.0.40](https://github.com/truecharts/charts/compare/komga-6.0.39...komga-6.0.40) (2022-09-27) ### Chore - -- Auto-update chart README [skip ci] - - update helm general non-major ([#3918](https://github.com/truecharts/charts/issues/3918)) - - - - -## [komga-6.0.39](https://github.com/truecharts/charts/compare/komga-6.0.38...komga-6.0.39) (2022-09-25) - -### Chore diff --git a/stable/komga/6.0.48/Chart.lock b/stable/komga/6.0.48/Chart.lock new file mode 100644 index 00000000000..dc8276a6268 --- /dev/null +++ b/stable/komga/6.0.48/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://library-charts.truecharts.org + version: 10.7.13 +digest: sha256:2f2267115af9bdc61a64db6317564e2d07f4f27ccb0627720c8a63d82b1786b7 +generated: "2022-11-03T02:48:50.864707616Z" diff --git a/stable/komga/6.0.47/Chart.yaml b/stable/komga/6.0.48/Chart.yaml similarity index 95% rename from stable/komga/6.0.47/Chart.yaml rename to stable/komga/6.0.48/Chart.yaml index 9b94773c290..e8c1b97a4b7 100644 --- a/stable/komga/6.0.47/Chart.yaml +++ b/stable/komga/6.0.48/Chart.yaml @@ -1,5 +1,5 @@ apiVersion: v2 -appVersion: "0.157.3" +appVersion: "0.157.4" dependencies: - name: common repository: https://library-charts.truecharts.org @@ -22,7 +22,7 @@ sources: - https://github.com/truecharts/charts/tree/master/charts/stable/komga - https://komga.org/ - https://github.com/gotson/komga -version: 6.0.47 +version: 6.0.48 annotations: truecharts.org/catagories: | - media diff --git a/stable/komga/6.0.47/README.md b/stable/komga/6.0.48/README.md similarity index 100% rename from stable/komga/6.0.47/README.md rename to stable/komga/6.0.48/README.md diff --git a/stable/komga/6.0.47/app-readme.md b/stable/komga/6.0.48/app-readme.md similarity index 100% rename from stable/komga/6.0.47/app-readme.md rename to stable/komga/6.0.48/app-readme.md diff --git a/stable/prowlarr/6.0.47/charts/common-10.7.13.tgz b/stable/komga/6.0.48/charts/common-10.7.13.tgz similarity index 100% rename from stable/prowlarr/6.0.47/charts/common-10.7.13.tgz rename to stable/komga/6.0.48/charts/common-10.7.13.tgz diff --git a/stable/komga/6.0.47/ix_values.yaml b/stable/komga/6.0.48/ix_values.yaml similarity index 77% rename from stable/komga/6.0.47/ix_values.yaml rename to stable/komga/6.0.48/ix_values.yaml index f78ceac672d..36ba6e9f638 100644 --- a/stable/komga/6.0.47/ix_values.yaml +++ b/stable/komga/6.0.48/ix_values.yaml @@ -1,6 +1,6 @@ image: repository: tccr.io/truecharts/komga - tag: 0.157.3@sha256:c47663f8bf7424406bef84b7ebf3a09b895ac88ea9074148487ac90fc4c9ebf2 + tag: 0.157.4@sha256:9b65759f5cc851096bb2e0d6c91275585b480d929f20961f67ef106f015bfc36 pullPolicy: IfNotPresent service: diff --git a/stable/komga/6.0.47/questions.yaml b/stable/komga/6.0.48/questions.yaml similarity index 100% rename from stable/komga/6.0.47/questions.yaml rename to stable/komga/6.0.48/questions.yaml diff --git a/stable/prowlarr/6.0.47/templates/common.yaml b/stable/komga/6.0.48/templates/common.yaml similarity index 100% rename from stable/prowlarr/6.0.47/templates/common.yaml rename to stable/komga/6.0.48/templates/common.yaml diff --git a/stable/prowlarr/6.0.47/values.yaml b/stable/komga/6.0.48/values.yaml similarity index 100% rename from stable/prowlarr/6.0.47/values.yaml rename to stable/komga/6.0.48/values.yaml diff --git a/stable/libreddit/1.0.33/Chart.lock b/stable/libreddit/1.0.33/Chart.lock deleted file mode 100644 index 60b13d0388f..00000000000 --- a/stable/libreddit/1.0.33/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: https://library-charts.truecharts.org - version: 10.7.13 -digest: sha256:2f2267115af9bdc61a64db6317564e2d07f4f27ccb0627720c8a63d82b1786b7 -generated: "2022-11-02T10:26:11.151600119Z" diff --git a/stable/libreddit/1.0.33/CHANGELOG.md b/stable/libreddit/1.0.34/CHANGELOG.md similarity index 91% rename from stable/libreddit/1.0.33/CHANGELOG.md rename to stable/libreddit/1.0.34/CHANGELOG.md index b007cc5129a..e110f2fc953 100644 --- a/stable/libreddit/1.0.33/CHANGELOG.md +++ b/stable/libreddit/1.0.34/CHANGELOG.md @@ -2,6 +2,16 @@ +## [libreddit-1.0.34](https://github.com/truecharts/charts/compare/libreddit-1.0.33...libreddit-1.0.34) (2022-11-03) + +### Chore + +- Auto-update chart README [skip ci] + - update docker general non-major ([#4286](https://github.com/truecharts/charts/issues/4286)) + + + + ## [libreddit-1.0.33](https://github.com/truecharts/charts/compare/libreddit-1.0.32...libreddit-1.0.33) (2022-11-02) ### Chore @@ -87,13 +97,3 @@ ## [libreddit-1.0.26](https://github.com/truecharts/charts/compare/libreddit-1.0.25...libreddit-1.0.26) (2022-09-25) -### Chore - -- Auto-update chart README [skip ci] - - update helm general non-major ([#3898](https://github.com/truecharts/charts/issues/3898)) - - - - -## [libreddit-1.0.25](https://github.com/truecharts/charts/compare/libreddit-1.0.24...libreddit-1.0.25) (2022-09-22) - diff --git a/stable/libreddit/1.0.34/Chart.lock b/stable/libreddit/1.0.34/Chart.lock new file mode 100644 index 00000000000..06ffb1d7787 --- /dev/null +++ b/stable/libreddit/1.0.34/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://library-charts.truecharts.org + version: 10.7.13 +digest: sha256:2f2267115af9bdc61a64db6317564e2d07f4f27ccb0627720c8a63d82b1786b7 +generated: "2022-11-03T02:48:52.383297408Z" diff --git a/stable/libreddit/1.0.33/Chart.yaml b/stable/libreddit/1.0.34/Chart.yaml similarity index 98% rename from stable/libreddit/1.0.33/Chart.yaml rename to stable/libreddit/1.0.34/Chart.yaml index 010e71103b1..7725be34309 100644 --- a/stable/libreddit/1.0.33/Chart.yaml +++ b/stable/libreddit/1.0.34/Chart.yaml @@ -21,7 +21,7 @@ sources: - https://github.com/truecharts/charts/tree/master/charts/stable/libreddit - https://github.com/spikecodes/libreddit - https://hub.docker.com/r/spikecodes/libreddit -version: 1.0.33 +version: 1.0.34 annotations: truecharts.org/catagories: | - media diff --git a/stable/libreddit/1.0.33/README.md b/stable/libreddit/1.0.34/README.md similarity index 100% rename from stable/libreddit/1.0.33/README.md rename to stable/libreddit/1.0.34/README.md diff --git a/stable/libreddit/1.0.33/app-readme.md b/stable/libreddit/1.0.34/app-readme.md similarity index 100% rename from stable/libreddit/1.0.33/app-readme.md rename to stable/libreddit/1.0.34/app-readme.md diff --git a/stable/qbitmanage/1.0.11/charts/common-10.7.13.tgz b/stable/libreddit/1.0.34/charts/common-10.7.13.tgz similarity index 100% rename from stable/qbitmanage/1.0.11/charts/common-10.7.13.tgz rename to stable/libreddit/1.0.34/charts/common-10.7.13.tgz diff --git a/stable/libreddit/1.0.33/ix_values.yaml b/stable/libreddit/1.0.34/ix_values.yaml similarity index 94% rename from stable/libreddit/1.0.33/ix_values.yaml rename to stable/libreddit/1.0.34/ix_values.yaml index bfd456ae4ff..31dfdd43589 100644 --- a/stable/libreddit/1.0.33/ix_values.yaml +++ b/stable/libreddit/1.0.34/ix_values.yaml @@ -1,6 +1,6 @@ image: repository: tccr.io/truecharts/libreddit - tag: latest@sha256:87d3806bc3e52078b30857d259996c990a69f347138d437eacc29d00453794dc + tag: latest@sha256:eb5c82ca4722b56fbda1a1b186a0a7789c6a2d087a024354dbc71dabdbecd8dc pullPolicy: IfNotPresent libreddit: diff --git a/stable/libreddit/1.0.33/questions.yaml b/stable/libreddit/1.0.34/questions.yaml similarity index 100% rename from stable/libreddit/1.0.33/questions.yaml rename to stable/libreddit/1.0.34/questions.yaml diff --git a/stable/rsshub/3.0.133/templates/common.yaml b/stable/libreddit/1.0.34/templates/common.yaml similarity index 100% rename from stable/rsshub/3.0.133/templates/common.yaml rename to stable/libreddit/1.0.34/templates/common.yaml diff --git a/stable/qbitmanage/1.0.11/values.yaml b/stable/libreddit/1.0.34/values.yaml similarity index 100% rename from stable/qbitmanage/1.0.11/values.yaml rename to stable/libreddit/1.0.34/values.yaml diff --git a/stable/matomo/3.0.86/CHANGELOG.md b/stable/matomo/3.0.87/CHANGELOG.md similarity index 91% rename from stable/matomo/3.0.86/CHANGELOG.md rename to stable/matomo/3.0.87/CHANGELOG.md index 7fea6137f52..287d83cf45a 100644 --- a/stable/matomo/3.0.86/CHANGELOG.md +++ b/stable/matomo/3.0.87/CHANGELOG.md @@ -2,6 +2,16 @@ +## [matomo-3.0.87](https://github.com/truecharts/charts/compare/matomo-3.0.86...matomo-3.0.87) (2022-11-03) + +### Chore + +- Auto-update chart README [skip ci] + - update docker general non-major ([#4286](https://github.com/truecharts/charts/issues/4286)) + + + + ## [matomo-3.0.86](https://github.com/truecharts/charts/compare/matomo-3.0.85...matomo-3.0.86) (2022-11-02) ### Chore @@ -87,13 +97,3 @@ ### Chore -- Auto-update chart README [skip ci] - - update docker general non-major - - - - -## [matomo-3.0.77](https://github.com/truecharts/charts/compare/matomo-3.0.76...matomo-3.0.77) (2022-10-14) - -### Chore - diff --git a/incubator/ghost/3.0.80/Chart.lock b/stable/matomo/3.0.87/Chart.lock similarity index 85% rename from incubator/ghost/3.0.80/Chart.lock rename to stable/matomo/3.0.87/Chart.lock index 7f4bae63d09..5916cb21683 100644 --- a/incubator/ghost/3.0.80/Chart.lock +++ b/stable/matomo/3.0.87/Chart.lock @@ -6,4 +6,4 @@ dependencies: repository: https://charts.truecharts.org/ version: 3.0.109 digest: sha256:09e299c01368822db7a5627ce25bf9862595c7c2b8c40df964df95fe29ee88ed -generated: "2022-11-02T09:06:31.391723575Z" +generated: "2022-11-03T02:49:48.583428451Z" diff --git a/stable/matomo/3.0.86/Chart.yaml b/stable/matomo/3.0.87/Chart.yaml similarity index 98% rename from stable/matomo/3.0.86/Chart.yaml rename to stable/matomo/3.0.87/Chart.yaml index 0418673bfc7..03d62d2cde9 100644 --- a/stable/matomo/3.0.86/Chart.yaml +++ b/stable/matomo/3.0.87/Chart.yaml @@ -24,7 +24,7 @@ sources: - https://hub.docker.com/r/bitnami/matomo - https://github.com/bitnami/bitnami-docker-matomo - https://github.com/matomo-org/matomo -version: 3.0.86 +version: 3.0.87 annotations: truecharts.org/catagories: | - productivity diff --git a/stable/matomo/3.0.86/README.md b/stable/matomo/3.0.87/README.md similarity index 100% rename from stable/matomo/3.0.86/README.md rename to stable/matomo/3.0.87/README.md diff --git a/stable/matomo/3.0.86/app-readme.md b/stable/matomo/3.0.87/app-readme.md similarity index 100% rename from stable/matomo/3.0.86/app-readme.md rename to stable/matomo/3.0.87/app-readme.md diff --git a/stable/rsshub/3.0.133/charts/common-10.7.13.tgz b/stable/matomo/3.0.87/charts/common-10.7.13.tgz similarity index 100% rename from stable/rsshub/3.0.133/charts/common-10.7.13.tgz rename to stable/matomo/3.0.87/charts/common-10.7.13.tgz diff --git a/stable/matomo/3.0.86/charts/mariadb-3.0.109.tgz b/stable/matomo/3.0.87/charts/mariadb-3.0.109.tgz similarity index 100% rename from stable/matomo/3.0.86/charts/mariadb-3.0.109.tgz rename to stable/matomo/3.0.87/charts/mariadb-3.0.109.tgz diff --git a/stable/matomo/3.0.86/ix_values.yaml b/stable/matomo/3.0.87/ix_values.yaml similarity index 96% rename from stable/matomo/3.0.86/ix_values.yaml rename to stable/matomo/3.0.87/ix_values.yaml index d037f22934a..ec6ba825fd3 100644 --- a/stable/matomo/3.0.86/ix_values.yaml +++ b/stable/matomo/3.0.87/ix_values.yaml @@ -1,6 +1,6 @@ image: repository: tccr.io/truecharts/matomo - tag: 4.12.3@sha256:8726fc35fbb3cc282f6eef15ffbb077681a9d037249cca3765c42a981ec8349c + tag: 4.12.3@sha256:f328e2a2b0b6a56a1abf36386f4278aa798f05d17f4154732bbc3c54c3674909 pullPolicy: IfNotPresent securityContext: diff --git a/stable/matomo/3.0.86/questions.yaml b/stable/matomo/3.0.87/questions.yaml similarity index 100% rename from stable/matomo/3.0.86/questions.yaml rename to stable/matomo/3.0.87/questions.yaml diff --git a/stable/storj-node/2.0.59/templates/common.yaml b/stable/matomo/3.0.87/templates/common.yaml similarity index 100% rename from stable/storj-node/2.0.59/templates/common.yaml rename to stable/matomo/3.0.87/templates/common.yaml diff --git a/stable/rsshub/3.0.133/values.yaml b/stable/matomo/3.0.87/values.yaml similarity index 100% rename from stable/rsshub/3.0.133/values.yaml rename to stable/matomo/3.0.87/values.yaml diff --git a/stable/n8n/4.0.74/CHANGELOG.md b/stable/n8n/4.0.75/CHANGELOG.md similarity index 91% rename from stable/n8n/4.0.74/CHANGELOG.md rename to stable/n8n/4.0.75/CHANGELOG.md index 4bed3416864..d5d94bfc5ff 100644 --- a/stable/n8n/4.0.74/CHANGELOG.md +++ b/stable/n8n/4.0.75/CHANGELOG.md @@ -2,6 +2,16 @@ +## [n8n-4.0.75](https://github.com/truecharts/charts/compare/n8n-4.0.74...n8n-4.0.75) (2022-11-03) + +### Chore + +- Auto-update chart README [skip ci] + - update docker general non-major ([#4286](https://github.com/truecharts/charts/issues/4286)) + + + + ## [n8n-4.0.74](https://github.com/truecharts/charts/compare/n8n-4.0.73...n8n-4.0.74) (2022-11-02) ### Chore @@ -86,14 +96,4 @@ ### Chore -- Auto-update chart README [skip ci] - - update helm general non-major ([#4071](https://github.com/truecharts/charts/issues/4071)) - - - - -## [n8n-4.0.65](https://github.com/truecharts/charts/compare/n8n-4.0.64...n8n-4.0.65) (2022-10-11) - -### Chore - - Auto-update chart README [skip ci] diff --git a/stable/n8n/4.0.75/Chart.lock b/stable/n8n/4.0.75/Chart.lock new file mode 100644 index 00000000000..acb1ddb077e --- /dev/null +++ b/stable/n8n/4.0.75/Chart.lock @@ -0,0 +1,12 @@ +dependencies: +- name: common + repository: https://library-charts.truecharts.org + version: 10.7.13 +- name: postgresql + repository: https://charts.truecharts.org/ + version: 8.0.114 +- name: redis + repository: https://charts.truecharts.org + version: 3.0.111 +digest: sha256:238817db6a234e4867dd6bbec814b200393e995f5abd8dd6dca1d7ba6ebf08f6 +generated: "2022-11-03T02:50:14.809182858Z" diff --git a/stable/n8n/4.0.74/Chart.yaml b/stable/n8n/4.0.75/Chart.yaml similarity index 96% rename from stable/n8n/4.0.74/Chart.yaml rename to stable/n8n/4.0.75/Chart.yaml index 43cf1f54c6f..915a0769cef 100644 --- a/stable/n8n/4.0.74/Chart.yaml +++ b/stable/n8n/4.0.75/Chart.yaml @@ -1,5 +1,5 @@ apiVersion: v2 -appVersion: "0.200.1" +appVersion: "0.201.0" dependencies: - name: common repository: https://library-charts.truecharts.org @@ -29,7 +29,7 @@ sources: - https://docs.n8n.io/ - https://github.com/n8n-io/n8n - https://hub.docker.com/r/n8nio/n8n -version: 4.0.74 +version: 4.0.75 annotations: truecharts.org/catagories: | - media diff --git a/stable/n8n/4.0.74/README.md b/stable/n8n/4.0.75/README.md similarity index 100% rename from stable/n8n/4.0.74/README.md rename to stable/n8n/4.0.75/README.md diff --git a/stable/n8n/4.0.74/app-readme.md b/stable/n8n/4.0.75/app-readme.md similarity index 100% rename from stable/n8n/4.0.74/app-readme.md rename to stable/n8n/4.0.75/app-readme.md diff --git a/stable/storj-node/2.0.59/charts/common-10.7.13.tgz b/stable/n8n/4.0.75/charts/common-10.7.13.tgz similarity index 100% rename from stable/storj-node/2.0.59/charts/common-10.7.13.tgz rename to stable/n8n/4.0.75/charts/common-10.7.13.tgz diff --git a/stable/xwiki/3.0.59/charts/postgresql-8.0.114.tgz b/stable/n8n/4.0.75/charts/postgresql-8.0.114.tgz similarity index 100% rename from stable/xwiki/3.0.59/charts/postgresql-8.0.114.tgz rename to stable/n8n/4.0.75/charts/postgresql-8.0.114.tgz diff --git a/stable/rsshub/3.0.133/charts/redis-3.0.111.tgz b/stable/n8n/4.0.75/charts/redis-3.0.111.tgz similarity index 100% rename from stable/rsshub/3.0.133/charts/redis-3.0.111.tgz rename to stable/n8n/4.0.75/charts/redis-3.0.111.tgz diff --git a/stable/n8n/4.0.74/ix_values.yaml b/stable/n8n/4.0.75/ix_values.yaml similarity index 97% rename from stable/n8n/4.0.74/ix_values.yaml rename to stable/n8n/4.0.75/ix_values.yaml index 1c36eec856f..7d3424c266e 100644 --- a/stable/n8n/4.0.74/ix_values.yaml +++ b/stable/n8n/4.0.75/ix_values.yaml @@ -1,6 +1,6 @@ image: repository: tccr.io/truecharts/n8n - tag: 0.200.1@sha256:e7cea03f8215097a0f8aaf7a6e89c10152798b27dc5779ab2c75d8a6ec49e893 + tag: 0.201.0@sha256:b90a14866abeec42318f8290bb5fe69195e5760fef3a4821e561b3777d6e7fc4 pullPolicy: IfNotPresent securityContext: diff --git a/stable/n8n/4.0.74/questions.yaml b/stable/n8n/4.0.75/questions.yaml similarity index 100% rename from stable/n8n/4.0.74/questions.yaml rename to stable/n8n/4.0.75/questions.yaml diff --git a/stable/n8n/4.0.74/templates/_configmap.tpl b/stable/n8n/4.0.75/templates/_configmap.tpl similarity index 100% rename from stable/n8n/4.0.74/templates/_configmap.tpl rename to stable/n8n/4.0.75/templates/_configmap.tpl diff --git a/stable/n8n/4.0.74/templates/common.yaml b/stable/n8n/4.0.75/templates/common.yaml similarity index 100% rename from stable/n8n/4.0.74/templates/common.yaml rename to stable/n8n/4.0.75/templates/common.yaml diff --git a/stable/storj-node/2.0.59/values.yaml b/stable/n8n/4.0.75/values.yaml similarity index 100% rename from stable/storj-node/2.0.59/values.yaml rename to stable/n8n/4.0.75/values.yaml diff --git a/stable/omada-controller/6.3.1/Chart.lock b/stable/omada-controller/6.3.1/Chart.lock deleted file mode 100644 index 86c31549066..00000000000 --- a/stable/omada-controller/6.3.1/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: https://library-charts.truecharts.org - version: 10.7.13 -digest: sha256:2f2267115af9bdc61a64db6317564e2d07f4f27ccb0627720c8a63d82b1786b7 -generated: "2022-11-02T10:38:41.481745769Z" diff --git a/stable/omada-controller/6.3.1/CHANGELOG.md b/stable/omada-controller/6.3.2/CHANGELOG.md similarity index 90% rename from stable/omada-controller/6.3.1/CHANGELOG.md rename to stable/omada-controller/6.3.2/CHANGELOG.md index edcf63604b7..7a176b2ad6f 100644 --- a/stable/omada-controller/6.3.1/CHANGELOG.md +++ b/stable/omada-controller/6.3.2/CHANGELOG.md @@ -2,6 +2,19 @@ +## [omada-controller-6.3.2](https://github.com/truecharts/charts/compare/omada-controller-6.3.1...omada-controller-6.3.2) (2022-11-02) + +### Chore + +- Auto-update chart README [skip ci] + + ### Docs + +- Add DHCP Option 138 for APs ([#4285](https://github.com/truecharts/charts/issues/4285)) + + + + ## [omada-controller-6.3.1](https://github.com/truecharts/charts/compare/omada-controller-6.3.0...omada-controller-6.3.1) (2022-11-02) ### Chore @@ -84,16 +97,3 @@ ## [omada-controller-6.0.70](https://github.com/truecharts/charts/compare/omada-controller-6.0.69...omada-controller-6.0.70) (2022-10-07) ### Chore - -- Auto-update chart README [skip ci] - - Auto-update chart README [skip ci] - - update helm general non-major - - - - -## [omada-controller-6.0.70](https://github.com/truecharts/charts/compare/omada-controller-6.0.69...omada-controller-6.0.70) (2022-10-07) - -### Chore - -- Auto-update chart README [skip ci] diff --git a/stable/omada-controller/6.3.2/Chart.lock b/stable/omada-controller/6.3.2/Chart.lock new file mode 100644 index 00000000000..5af6b1a2782 --- /dev/null +++ b/stable/omada-controller/6.3.2/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://library-charts.truecharts.org + version: 10.7.13 +digest: sha256:2f2267115af9bdc61a64db6317564e2d07f4f27ccb0627720c8a63d82b1786b7 +generated: "2022-11-03T02:49:40.186696524Z" diff --git a/stable/omada-controller/6.3.1/Chart.yaml b/stable/omada-controller/6.3.2/Chart.yaml similarity index 98% rename from stable/omada-controller/6.3.1/Chart.yaml rename to stable/omada-controller/6.3.2/Chart.yaml index 3f897ddbee1..fcd0fadde15 100644 --- a/stable/omada-controller/6.3.1/Chart.yaml +++ b/stable/omada-controller/6.3.2/Chart.yaml @@ -18,7 +18,7 @@ name: omada-controller sources: - https://github.com/truecharts/charts/tree/master/charts/stable/omada-controller - https://github.com/mbentley/docker-omada-controller -version: 6.3.1 +version: 6.3.2 annotations: truecharts.org/catagories: | - media diff --git a/stable/omada-controller/6.3.1/README.md b/stable/omada-controller/6.3.2/README.md similarity index 100% rename from stable/omada-controller/6.3.1/README.md rename to stable/omada-controller/6.3.2/README.md diff --git a/stable/omada-controller/6.3.1/app-readme.md b/stable/omada-controller/6.3.2/app-readme.md similarity index 100% rename from stable/omada-controller/6.3.1/app-readme.md rename to stable/omada-controller/6.3.2/app-readme.md diff --git a/stable/tailscale/1.1.17/charts/common-10.7.13.tgz b/stable/omada-controller/6.3.2/charts/common-10.7.13.tgz similarity index 100% rename from stable/tailscale/1.1.17/charts/common-10.7.13.tgz rename to stable/omada-controller/6.3.2/charts/common-10.7.13.tgz diff --git a/stable/omada-controller/6.3.1/ix_values.yaml b/stable/omada-controller/6.3.2/ix_values.yaml similarity index 100% rename from stable/omada-controller/6.3.1/ix_values.yaml rename to stable/omada-controller/6.3.2/ix_values.yaml diff --git a/stable/omada-controller/6.3.1/questions.yaml b/stable/omada-controller/6.3.2/questions.yaml similarity index 100% rename from stable/omada-controller/6.3.1/questions.yaml rename to stable/omada-controller/6.3.2/questions.yaml diff --git a/stable/xwiki/3.0.59/templates/common.yaml b/stable/omada-controller/6.3.2/templates/common.yaml similarity index 100% rename from stable/xwiki/3.0.59/templates/common.yaml rename to stable/omada-controller/6.3.2/templates/common.yaml diff --git a/stable/tailscale/1.1.17/values.yaml b/stable/omada-controller/6.3.2/values.yaml similarity index 100% rename from stable/tailscale/1.1.17/values.yaml rename to stable/omada-controller/6.3.2/values.yaml diff --git a/stable/photoprism/10.0.54/CHANGELOG.md b/stable/photoprism/10.0.54/CHANGELOG.md new file mode 100644 index 00000000000..1cd8e688e68 --- /dev/null +++ b/stable/photoprism/10.0.54/CHANGELOG.md @@ -0,0 +1,99 @@ +# Changelog + + + +## [photoprism-10.0.54](https://github.com/truecharts/charts/compare/photoprism-10.0.53...photoprism-10.0.54) (2022-11-03) + +### Chore + +- Auto-update chart README [skip ci] + - update docker general non-major ([#4286](https://github.com/truecharts/charts/issues/4286)) + + + + +## [photoprism-10.0.53](https://github.com/truecharts/charts/compare/photoprism-10.0.52...photoprism-10.0.53) (2022-11-02) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major ([#4261](https://github.com/truecharts/charts/issues/4261)) + + + + +## [photoprism-10.0.52](https://github.com/truecharts/charts/compare/photoprism-10.0.51...photoprism-10.0.52) (2022-10-25) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major ([#4182](https://github.com/truecharts/charts/issues/4182)) + + + + +## [photoprism-10.0.51](https://github.com/truecharts/charts/compare/photoprism-10.0.50...photoprism-10.0.51) (2022-10-19) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major ([#4122](https://github.com/truecharts/charts/issues/4122)) + + + + +## [photoprism-10.0.50](https://github.com/truecharts/charts/compare/photoprism-10.0.49...photoprism-10.0.50) (2022-10-12) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major ([#4071](https://github.com/truecharts/charts/issues/4071)) + + + + +## [photoprism-10.0.49](https://github.com/truecharts/charts/compare/photoprism-10.0.48...photoprism-10.0.49) (2022-10-07) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - update helm general non-major + + + + +## [photoprism-10.0.49](https://github.com/truecharts/charts/compare/photoprism-10.0.48...photoprism-10.0.49) (2022-10-07) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major + + + + +## [photoprism-10.0.48](https://github.com/truecharts/charts/compare/photoprism-10.0.47...photoprism-10.0.48) (2022-10-05) + +### Chore + +- split addons in smaller templates ([#3979](https://github.com/truecharts/charts/issues/3979)) + - update helm general non-major + + + + +## [photoprism-10.0.46](https://github.com/truecharts/charts/compare/photoprism-10.0.45...photoprism-10.0.46) (2022-09-27) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major ([#3918](https://github.com/truecharts/charts/issues/3918)) + + + + +## [photoprism-10.0.45](https://github.com/truecharts/charts/compare/photoprism-10.0.44...photoprism-10.0.45) (2022-09-25) + +### Chore + diff --git a/stable/photoprism/10.0.54/Chart.lock b/stable/photoprism/10.0.54/Chart.lock new file mode 100644 index 00000000000..f09ca6a50a4 --- /dev/null +++ b/stable/photoprism/10.0.54/Chart.lock @@ -0,0 +1,9 @@ +dependencies: +- name: common + repository: https://library-charts.truecharts.org + version: 10.7.13 +- name: mariadb + repository: https://charts.truecharts.org/ + version: 3.0.109 +digest: sha256:09e299c01368822db7a5627ce25bf9862595c7c2b8c40df964df95fe29ee88ed +generated: "2022-11-03T02:50:15.291928487Z" diff --git a/stable/photoprism/10.0.54/Chart.yaml b/stable/photoprism/10.0.54/Chart.yaml new file mode 100644 index 00000000000..977c86dd2fe --- /dev/null +++ b/stable/photoprism/10.0.54/Chart.yaml @@ -0,0 +1,34 @@ +apiVersion: v2 +appVersion: "221102" +dependencies: + - name: common + repository: https://library-charts.truecharts.org + version: 10.7.13 + - condition: mariadb.enabled + name: mariadb + repository: https://charts.truecharts.org/ + version: 3.0.109 +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: 10.0.54 +annotations: + truecharts.org/catagories: | + - media + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/stable/photoprism/10.0.54/README.md b/stable/photoprism/10.0.54/README.md new file mode 100644 index 00000000000..c4ad1e53882 --- /dev/null +++ b/stable/photoprism/10.0.54/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.109 | +| https://library-charts.truecharts.org | common | 10.7.13 | + +## 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/10.0.54/app-readme.md b/stable/photoprism/10.0.54/app-readme.md new file mode 100644 index 00000000000..77a5ffc449a --- /dev/null +++ b/stable/photoprism/10.0.54/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/1.0.11/charts/common-10.7.13.tgz b/stable/photoprism/10.0.54/charts/common-10.7.13.tgz similarity index 100% rename from stable/whisparr/1.0.11/charts/common-10.7.13.tgz rename to stable/photoprism/10.0.54/charts/common-10.7.13.tgz diff --git a/stable/photoprism/10.0.54/charts/mariadb-3.0.109.tgz b/stable/photoprism/10.0.54/charts/mariadb-3.0.109.tgz new file mode 100644 index 0000000000000000000000000000000000000000..13e48587b73fea1cd31581b19f3269f00659f84d GIT binary patch literal 60864 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�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://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/10.0.54/templates/common.yaml b/stable/photoprism/10.0.54/templates/common.yaml new file mode 100644 index 00000000000..c1a366e1cf0 --- /dev/null +++ b/stable/photoprism/10.0.54/templates/common.yaml @@ -0,0 +1 @@ +{{ include "tc.common.loader.all" . }} diff --git a/stable/whisparr/1.0.11/values.yaml b/stable/photoprism/10.0.54/values.yaml similarity index 100% rename from stable/whisparr/1.0.11/values.yaml rename to stable/photoprism/10.0.54/values.yaml diff --git a/stable/plex/10.2.22/CHANGELOG.md b/stable/plex/10.2.22/CHANGELOG.md new file mode 100644 index 00000000000..b255ed3bcd5 --- /dev/null +++ b/stable/plex/10.2.22/CHANGELOG.md @@ -0,0 +1,99 @@ +# Changelog + + + +## [plex-10.2.22](https://github.com/truecharts/charts/compare/plextraktsync-1.0.18...plex-10.2.22) (2022-11-03) + +### Chore + +- Auto-update chart README [skip ci] + - update docker general non-major ([#4286](https://github.com/truecharts/charts/issues/4286)) + + + + +## [plex-10.2.21](https://github.com/truecharts/charts/compare/plextraktsync-1.0.17...plex-10.2.21) (2022-11-02) + +### Chore + +- update helm general non-major ([#4261](https://github.com/truecharts/charts/issues/4261)) + + + + +## [plex-10.2.20](https://github.com/truecharts/charts/compare/plextraktsync-1.0.13...plex-10.2.20) (2022-10-27) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - update docker general non-major ([#4201](https://github.com/truecharts/charts/issues/4201)) + + + + +## [plex-10.2.20](https://github.com/truecharts/charts/compare/plextraktsync-1.0.13...plex-10.2.20) (2022-10-27) + +### Chore + +- Auto-update chart README [skip ci] + - update docker general non-major ([#4201](https://github.com/truecharts/charts/issues/4201)) + + + + +## [plex-10.2.19](https://github.com/truecharts/charts/compare/plextraktsync-1.0.12...plex-10.2.19) (2022-10-25) + +### Chore + +- update helm general non-major ([#4182](https://github.com/truecharts/charts/issues/4182)) + + + + +## [plex-10.2.18](https://github.com/truecharts/charts/compare/plextraktsync-1.0.11...plex-10.2.18) (2022-10-22) + +### Chore + +- update docker general non-major ([#4155](https://github.com/truecharts/charts/issues/4155)) + + + + +## [plex-10.2.17](https://github.com/truecharts/charts/compare/plexripper-0.0.29...plex-10.2.17) (2022-10-19) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major ([#4122](https://github.com/truecharts/charts/issues/4122)) + + + + +## [plex-10.2.16](https://github.com/truecharts/charts/compare/owi2plex-0.0.28...plex-10.2.16) (2022-10-12) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major ([#4071](https://github.com/truecharts/charts/issues/4071)) + + + + +## [plex-10.2.15](https://github.com/truecharts/charts/compare/plex-10.2.14...plex-10.2.15) (2022-10-07) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - update helm general non-major + + + + +## [plex-10.2.15](https://github.com/truecharts/charts/compare/plex-10.2.14...plex-10.2.15) (2022-10-07) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major diff --git a/stable/plex/10.2.22/Chart.lock b/stable/plex/10.2.22/Chart.lock new file mode 100644 index 00000000000..86cf69c811b --- /dev/null +++ b/stable/plex/10.2.22/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://library-charts.truecharts.org + version: 10.7.13 +digest: sha256:2f2267115af9bdc61a64db6317564e2d07f4f27ccb0627720c8a63d82b1786b7 +generated: "2022-11-03T02:50:28.345668805Z" diff --git a/stable/plex/10.2.22/Chart.yaml b/stable/plex/10.2.22/Chart.yaml new file mode 100644 index 00000000000..4d7d50d4b98 --- /dev/null +++ b/stable/plex/10.2.22/Chart.yaml @@ -0,0 +1,29 @@ +apiVersion: v2 +appVersion: "1.29.1.631" +dependencies: + - name: common + repository: https://library-charts.truecharts.org + version: 10.7.13 +deprecated: false +description: Plex Media Server +home: https://truecharts.org/docs/charts/stable/plex +icon: https://truecharts.org/img/hotlink-ok/chart-icons/plex.png +keywords: + - plex + - plex-media-server +kubeVersion: ">=1.16.0-0" +maintainers: + - email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +name: plex +sources: + - https://github.com/truecharts/charts/tree/master/charts/stable/plex + - https://github.com/k8s-at-home/container-images/pkgs/container/plex +type: application +version: 10.2.22 +annotations: + truecharts.org/catagories: | + - media + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/stable/plex/10.2.22/README.md b/stable/plex/10.2.22/README.md new file mode 100644 index 00000000000..59950de9959 --- /dev/null +++ b/stable/plex/10.2.22/README.md @@ -0,0 +1,106 @@ +# plex + +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: [plex](https://truecharts.org/docs/charts/stable/plex) + +**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.7.13 | + +## 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 `plex` + +```console +helm repo add TrueCharts https://charts.truecharts.org +helm repo update +helm install plex TrueCharts/plex +``` + +## 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 `plex` deployment + +```console +helm uninstall plex +``` + +## 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 plex \ + --set env.TZ="America/New York" \ + TrueCharts/plex +``` + +#### 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 plex TrueCharts/plex -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/plex/10.2.22/app-readme.md b/stable/plex/10.2.22/app-readme.md new file mode 100644 index 00000000000..0c9dfd48c99 --- /dev/null +++ b/stable/plex/10.2.22/app-readme.md @@ -0,0 +1,8 @@ +Plex Media Server + +This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/docs/charts/stable/plex](https://truecharts.org/docs/charts/stable/plex) + +--- + +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/xwiki/3.0.59/charts/common-10.7.13.tgz b/stable/plex/10.2.22/charts/common-10.7.13.tgz similarity index 100% rename from stable/xwiki/3.0.59/charts/common-10.7.13.tgz rename to stable/plex/10.2.22/charts/common-10.7.13.tgz diff --git a/stable/plex/10.2.22/ix_values.yaml b/stable/plex/10.2.22/ix_values.yaml new file mode 100644 index 00000000000..468de086e6a --- /dev/null +++ b/stable/plex/10.2.22/ix_values.yaml @@ -0,0 +1,36 @@ +image: + repository: tccr.io/truecharts/plex + pullPolicy: IfNotPresent + tag: 1.29.1.6316@sha256:56251d9a845cec37a18268ff2298f5ad67eb8d6d2d07db658da947ce81617c63 + +service: + main: + ports: + main: + protocol: HTTP + port: 32400 + targetPort: 32400 + +persistence: + config: + enabled: true + mountPath: "/config" + +plex: + serverURL: "{{ .Values.service.main.ports.main.protocol | lower }}://{{ .Values.plex.serverIP }}:{{ .Values.service.main.ports.main.port }}" + serverIngressURL: "{{ if .Values.ingress.main.enabled }}{{ with (first .Values.ingress.main.hosts) }},https://{{ .host }}{{ end }}{{ end }}" + serverIngressURLPort: "{{ if .Values.ingress.main.enabled }}{{ $port := .Values.service.main.ports.main.port }}{{ with (first .Values.ingress.main.hosts) }},https://{{ .host }}:{{ $port }}{{ end }}{{ end }}" + # User Defined + serverIP: "127.0.0.1" + additionalAdvertiseURL: "" + disableGDM: true + +env: + ADVERTISE_IP: "{{ tpl (.Values.plex.serverURL) .}}{{ tpl (.Values.plex.serverIngressURL) . }}{{ tpl (.Values.plex.serverIngressURLPort) . }}{{ with .Values.plex.additionalAdvertiseURL }},{{ . }}{{ end }}" + PLEX_PREFERENCE_GDM: 'GdmEnabled={{ ternary "0" "1" .Values.plex.disableGDM }}' + # User Defined + ALLOWED_NETWORKS: "172.16.0.0/12,10.0.0.0/8,192.168.0.0/16" + PLEX_CLAIM: "" + +portal: + enabled: true diff --git a/stable/plex/10.2.22/questions.yaml b/stable/plex/10.2.22/questions.yaml new file mode 100644 index 00000000000..d5dd5a5c0b2 --- /dev/null +++ b/stable/plex/10.2.22/questions.yaml @@ -0,0 +1,2615 @@ +groups: + - name: Container Image + description: Image to be used for container + - name: Controller + description: Configure Workload Deployment + - name: Container Configuration + description: Additional Container Configuration + - name: App Configuration + description: App Specific Config Options + - name: Networking and Services + description: Configure Network and Services for Container + - name: Storage and Persistence + description: Persist and Share Data that is Separate from the Container + - name: Ingress + description: Ingress Configuration + - name: Security and Permissions + description: Configure Security Context and Permissions + - name: Resources and Devices + description: "Specify Resources/Devices to be Allocated to Workload" + - name: Middlewares + description: Traefik Middlewares + - name: Metrics + description: Metrics + - name: Addons + description: Addon Configuration + - name: Advanced + description: Advanced Configuration + - name: Documentation + description: Documentation +portals: + open: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" + path: "/web" +questions: + - variable: global + label: Global Settings + group: Controller + schema: + type: dict + hidden: true + attrs: + - variable: isSCALE + label: Flag this is SCALE + schema: + type: boolean + default: true + hidden: true + - variable: controller + group: Controller + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: advanced + label: Show Advanced Controller Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: Please specify type of workload to deploy + label: (Advanced) Controller Type + schema: + type: string + required: true + enum: + - value: deployment + description: Deployment + - value: statefulset + description: Statefulset + - value: daemonset + description: Daemonset + default: deployment + - variable: replicas + description: Number of desired pod replicas + label: Desired Replicas + schema: + type: int + required: true + default: 1 + - variable: strategy + description: Please specify type of workload to deploy + label: (Advanced) Update Strategy + schema: + type: string + required: true + enum: + - value: Recreate + description: "Recreate: Kill existing pods before creating new ones" + - value: RollingUpdate + description: "RollingUpdate: Create new pods and then kill old ones" + - value: OnDelete + description: "(Legacy) OnDelete: ignore .spec.template changes" + default: Recreate + - variable: expert + label: Show Expert Configuration Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: Controller Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Controller Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: customextraargs + group: Controller + 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: plex + group: "Container Configuration" + label: "Plex Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: serverIP + label: "Server IP" + description: "Set to the IP-Address used to reach Plex." + schema: + type: string + required: true + $ref: + - "definitions/nodeIP" + - variable: additionalAdvertiseURL + label: "Addition Advertise URLs" + description: "URLs to advertise to Plex, format http(s)://IPorDNS:3200. By default your serverIP and ingress URL is added" + schema: + type: string + valid_chars: '^$|^(http(s)?:\/\/([a-zA-Z0-9.-]*)(:\d{0,5})?,?)*$' + default: "" + - variable: disableGDM + label: "Disable GDM" + description: "Recommended to keep this to true. Disables legacy local network discovery. Keeping it enabled might break discovery for some Plex Clients" + schema: + type: boolean + default: true + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + additional_attrs: true + type: dict + attrs: + - variable: ALLOWED_NETWORKS + label: "Allowed Networks" + description: "Networks allowed to connect to plex. Add your local network IP to this list" + schema: + type: string + default: "172.16.0.0/12,10.0.0.0/8,192.168.0.0/16" + - variable: PLEX_CLAIM + label: "Plex Claim Token" + description: "Claim token to use to register the plex server (Max. 4 minutes old!). You can obtain a claim token to login your server to your plex account by visiting https://www.plex.tv/claim." + schema: + type: string + default: "" + - variable: TZ + label: Timezone + group: Container Configuration + 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: Container Configuration + 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: expertpodconf + group: Container Configuration + label: Show Expert Configuration + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: tty + label: Enable TTY + description: Determines whether containers in a pod runs with TTY enabled. By default pod has it disabled. + group: Workload Details + schema: + type: boolean + default: false + - variable: stdin + label: Enable STDIN + description: Determines whether containers in a pod runs with stdin enabled. By default pod has it disabled. + group: Workload Details + schema: + type: boolean + default: false + - variable: termination + group: Container Configuration + label: Termination settings + schema: + additional_attrs: true + type: dict + attrs: + - variable: gracePeriodSeconds + label: Grace Period Seconds + schema: + type: int + default: 10 + - variable: podLabelsList + group: Container Configuration + label: Pod Labels + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: podAnnotationsList + group: Container Configuration + label: Pod Annotations + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: Label + 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: 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: The IP Families that should be used + schema: + type: list + default: [] + items: + - variable: ipFamily + label: IP Family + schema: + type: string + - 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: 32400 + required: true + - variable: advanced + label: Show Advanced Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: Enable the Port + schema: + type: boolean + hidden: true + default: true + - variable: protocol + label: Port Type + schema: + type: string + default: HTTP + enum: + - value: HTTP + description: HTTP + - value: HTTPS + description: HTTPS + - value: TCP + description: TCP + - value: UDP + description: UDP + - variable: nodePort + label: Node Port (Optional) + description: This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 32400 + - 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: dnsPolicy + group: Networking and Services + label: dnsPolicy + schema: + type: string + default: "" + enum: + - value: "" + description: Default + - value: ClusterFirst + description: ClusterFirst + - value: None + description: None + - variable: dnsConfig + label: DNS Configuration + group: Networking and Services + description: Specify custom DNS configuration which will be applied to the pod + schema: + additional_attrs: true + type: dict + attrs: + - variable: nameservers + label: Name Servers + schema: + default: [] + type: list + items: + - variable: nameserver + label: Name Server + schema: + type: string + - variable: options + label: Options + schema: + default: [] + type: list + items: + - variable: option + label: Option Entry + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: searches + label: Searches + schema: + default: [] + type: list + items: + - variable: search + label: Search Entry + schema: + type: string + - 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: simplePVC + enum: + - value: simplePVC + description: PVC (simple) + - value: simpleHP + description: Host Path (simple) + - value: emptyDir + description: emptyDir + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - 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: setPermissionsSimple + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "simpleHP"]] + type: boolean + default: false + - 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: hostPathSimple + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "simpleHP"]] + type: hostpath + - 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 + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: hostPathType + label: (Advanced) hostPath Type + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: DirectoryOrCreate + description: DirectoryOrCreate + - value: Directory + description: Directory + - value: FileOrCreate + description: FileOrCreate + - value: File + description: File + - value: Socket + description: Socket + - value: CharDevice + description: CharDevice + - value: BlockDevice + description: BlockDevice + - variable: storageClass + label: (Advanced) storageClass + description: "Warning: Anything other than SCALE-ZFS or empty will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: SCALE-ZFS + - variable: accessMode + label: (Advanced) Access Mode + description: Allow or disallow multiple PVC's writhing to the same PV + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: ReadWriteOnce + enum: + - value: ReadWriteOnce + description: ReadWriteOnce + - value: ReadOnlyMany + description: ReadOnlyMany + - value: ReadWriteMany + description: ReadWriteMany + - variable: advanced + label: Show Advanced Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - 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: name + label: Name (Optional) + description: "Not required, please set to config when mounting /config or temp when mounting /tmp" + schema: + type: string + - variable: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: simpleHP + enum: + - value: simplePVC + description: PVC (Simple) + - value: simpleHP + description: Host Path (Simple) + - value: emptyDir + description: emptyDir + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - 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: setPermissionsSimple + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "simpleHP"]] + type: boolean + default: false + - 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: hostPathSimple + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "simpleHP"]] + type: hostpath + - 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: hostPathType + label: (Advanced) Host Path Type + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: DirectoryOrCreate + description: DirectoryOrCreate + - value: Directory + description: Directory + - value: FileOrCreate + description: FileOrCreate + - value: File + description: File + - value: Socket + description: Socket + - value: CharDevice + description: CharDevice + - value: BlockDevice + description: BlockDevice + - variable: storageClass + label: (Advanced) StorageClass + description: "Warning: Anything other than SCALE-ZFS or empty will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: SCALE-ZFS + - variable: accessMode + label: (Advanced) Access Mode + description: Allow or disallow multiple PVC's writhing to the same PV + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: ReadWriteOnce + enum: + - value: ReadWriteOnce + description: ReadWriteOnce + - value: ReadOnlyMany + description: ReadOnlyMany + - value: ReadWriteMany + description: ReadWriteMany + - variable: advanced + label: Show Advanced Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - 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: 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: expert + label: Show Expert Configuration Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enableFixedMiddlewares + description: These middlewares enforce a number of best practices. + label: Enable Default Middlewares + schema: + type: boolean + default: true + - variable: ingressClassName + label: IngressClass Name + schema: + type: string + default: "" + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - 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: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - 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: capabilities + label: Capabilities + schema: + additional_attrs: true + type: dict + attrs: + - variable: drop + label: Drop Capability + schema: + type: list + default: [] + items: + - variable: dropEntry + label: "" + schema: + type: string + - variable: add + label: Add Capability + schema: + type: list + default: [] + items: + - variable: addEntry + label: "" + schema: + type: string + - 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: advancedresources + label: Set Custom Resource Limits/Requests (Advanced) + group: Resources and Devices + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: resources + label: "" + 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 + 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 + 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 + 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: promtail + label: Promtail + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: loki + label: Loki URL + schema: + type: string + required: true + - variable: logs + label: Log Paths + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: path + label: Path + schema: + type: string + required: true + - variable: args + label: Promtail Command Line Arguments + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: arg + label: Arg + schema: + type: string + required: true + - variable: envList + label: Promtail Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + - variable: netshoot + label: Netshoot + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: envList + label: Netshoot Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + - variable: vpn + label: VPN + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type + schema: + type: string + default: disabled + enum: + - value: disabled + description: disabled + - value: 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: 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: Sock5 Server + 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/plex/10.2.22/templates/common.yaml b/stable/plex/10.2.22/templates/common.yaml new file mode 100644 index 00000000000..c1a366e1cf0 --- /dev/null +++ b/stable/plex/10.2.22/templates/common.yaml @@ -0,0 +1 @@ +{{ include "tc.common.loader.all" . }} diff --git a/stable/xwiki/3.0.59/values.yaml b/stable/plex/10.2.22/values.yaml similarity index 100% rename from stable/xwiki/3.0.59/values.yaml rename to stable/plex/10.2.22/values.yaml diff --git a/stable/prowlarr/6.0.47/Chart.lock b/stable/prowlarr/6.0.47/Chart.lock deleted file mode 100644 index f8986200bd9..00000000000 --- a/stable/prowlarr/6.0.47/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: https://library-charts.truecharts.org - version: 10.7.13 -digest: sha256:2f2267115af9bdc61a64db6317564e2d07f4f27ccb0627720c8a63d82b1786b7 -generated: "2022-11-02T10:47:17.948628686Z" diff --git a/stable/prowlarr/6.0.47/CHANGELOG.md b/stable/prowlarr/6.0.48/CHANGELOG.md similarity index 91% rename from stable/prowlarr/6.0.47/CHANGELOG.md rename to stable/prowlarr/6.0.48/CHANGELOG.md index 39805da922a..f0bd4c53e98 100644 --- a/stable/prowlarr/6.0.47/CHANGELOG.md +++ b/stable/prowlarr/6.0.48/CHANGELOG.md @@ -2,6 +2,16 @@ +## [prowlarr-6.0.48](https://github.com/truecharts/charts/compare/prowlarr-6.0.47...prowlarr-6.0.48) (2022-11-03) + +### Chore + +- Auto-update chart README [skip ci] + - update docker general non-major ([#4286](https://github.com/truecharts/charts/issues/4286)) + + + + ## [prowlarr-6.0.47](https://github.com/truecharts/charts/compare/prowlarr-6.0.46...prowlarr-6.0.47) (2022-11-02) ### Chore @@ -87,13 +97,3 @@ ## [prowlarr-6.0.40](https://github.com/truecharts/charts/compare/prowlarr-6.0.39...prowlarr-6.0.40) (2022-09-25) -### Chore - -- Auto-update chart README [skip ci] - - update helm general non-major ([#3898](https://github.com/truecharts/charts/issues/3898)) - - - - -## [prowlarr-6.0.39](https://github.com/truecharts/charts/compare/prowlarr-6.0.38...prowlarr-6.0.39) (2022-09-25) - diff --git a/stable/prowlarr/6.0.48/Chart.lock b/stable/prowlarr/6.0.48/Chart.lock new file mode 100644 index 00000000000..16663ee7479 --- /dev/null +++ b/stable/prowlarr/6.0.48/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://library-charts.truecharts.org + version: 10.7.13 +digest: sha256:2f2267115af9bdc61a64db6317564e2d07f4f27ccb0627720c8a63d82b1786b7 +generated: "2022-11-03T02:50:52.83834487Z" diff --git a/stable/prowlarr/6.0.47/Chart.yaml b/stable/prowlarr/6.0.48/Chart.yaml similarity index 98% rename from stable/prowlarr/6.0.47/Chart.yaml rename to stable/prowlarr/6.0.48/Chart.yaml index b735c31b3f3..71159cde23f 100644 --- a/stable/prowlarr/6.0.47/Chart.yaml +++ b/stable/prowlarr/6.0.48/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: 6.0.47 +version: 6.0.48 annotations: truecharts.org/catagories: | - media diff --git a/stable/prowlarr/6.0.47/README.md b/stable/prowlarr/6.0.48/README.md similarity index 100% rename from stable/prowlarr/6.0.47/README.md rename to stable/prowlarr/6.0.48/README.md diff --git a/stable/prowlarr/6.0.47/app-readme.md b/stable/prowlarr/6.0.48/app-readme.md similarity index 100% rename from stable/prowlarr/6.0.47/app-readme.md rename to stable/prowlarr/6.0.48/app-readme.md diff --git a/stable/zigbee2mqtt/4.0.43/charts/common-10.7.13.tgz b/stable/prowlarr/6.0.48/charts/common-10.7.13.tgz similarity index 100% rename from stable/zigbee2mqtt/4.0.43/charts/common-10.7.13.tgz rename to stable/prowlarr/6.0.48/charts/common-10.7.13.tgz diff --git a/stable/prowlarr/6.0.47/ix_values.yaml b/stable/prowlarr/6.0.48/ix_values.yaml similarity index 77% rename from stable/prowlarr/6.0.47/ix_values.yaml rename to stable/prowlarr/6.0.48/ix_values.yaml index 4468b76604f..411bd1d4044 100644 --- a/stable/prowlarr/6.0.47/ix_values.yaml +++ b/stable/prowlarr/6.0.48/ix_values.yaml @@ -1,6 +1,6 @@ image: repository: tccr.io/truecharts/prowlarr - tag: 0.4.7.2016@sha256:298ceda513dfd2be9cd34a0c81b81dd125b6241f033b2379ff932a797ae24448 + tag: 0.4.7.2016@sha256:d1c7e0b8c8e2d4c5c198e2829dd55da4fa127a1efb6cc4db7de75f677ded62e2 pullPolicy: IfNotPresent securityContext: diff --git a/stable/prowlarr/6.0.47/questions.yaml b/stable/prowlarr/6.0.48/questions.yaml similarity index 100% rename from stable/prowlarr/6.0.47/questions.yaml rename to stable/prowlarr/6.0.48/questions.yaml diff --git a/stable/prowlarr/6.0.48/templates/common.yaml b/stable/prowlarr/6.0.48/templates/common.yaml new file mode 100644 index 00000000000..c1a366e1cf0 --- /dev/null +++ b/stable/prowlarr/6.0.48/templates/common.yaml @@ -0,0 +1 @@ +{{ include "tc.common.loader.all" . }} diff --git a/stable/zigbee2mqtt/4.0.43/values.yaml b/stable/prowlarr/6.0.48/values.yaml similarity index 100% rename from stable/zigbee2mqtt/4.0.43/values.yaml rename to stable/prowlarr/6.0.48/values.yaml diff --git a/stable/qbitmanage/1.0.11/Chart.lock b/stable/qbitmanage/1.0.11/Chart.lock deleted file mode 100644 index 8b12ffc0fd4..00000000000 --- a/stable/qbitmanage/1.0.11/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: https://library-charts.truecharts.org - version: 10.7.13 -digest: sha256:2f2267115af9bdc61a64db6317564e2d07f4f27ccb0627720c8a63d82b1786b7 -generated: "2022-11-02T10:48:40.418444017Z" diff --git a/stable/qbitmanage/1.0.11/CHANGELOG.md b/stable/qbitmanage/1.0.12/CHANGELOG.md similarity index 91% rename from stable/qbitmanage/1.0.11/CHANGELOG.md rename to stable/qbitmanage/1.0.12/CHANGELOG.md index b1e2299b9de..affb2517568 100644 --- a/stable/qbitmanage/1.0.11/CHANGELOG.md +++ b/stable/qbitmanage/1.0.12/CHANGELOG.md @@ -2,6 +2,16 @@ +## [qbitmanage-1.0.12](https://github.com/truecharts/charts/compare/qbitmanage-1.0.11...qbitmanage-1.0.12) (2022-11-03) + +### Chore + +- Auto-update chart README [skip ci] + - update docker general non-major ([#4286](https://github.com/truecharts/charts/issues/4286)) + + + + ## [qbitmanage-1.0.11](https://github.com/truecharts/charts/compare/qbitmanage-1.0.10...qbitmanage-1.0.11) (2022-11-02) ### Chore @@ -87,13 +97,3 @@ ## [qbitmanage-1.0.4](https://github.com/truecharts/charts/compare/qbitmanage-1.0.3...qbitmanage-1.0.4) (2022-09-27) ### Chore - -- Auto-update chart README [skip ci] - - update helm general non-major ([#3918](https://github.com/truecharts/charts/issues/3918)) - - - - -## [qbitmanage-1.0.3](https://github.com/truecharts/charts/compare/qbitmanage-1.0.2...qbitmanage-1.0.3) (2022-09-25) - -### Chore diff --git a/stable/qbitmanage/1.0.12/Chart.lock b/stable/qbitmanage/1.0.12/Chart.lock new file mode 100644 index 00000000000..bf1f693bb7d --- /dev/null +++ b/stable/qbitmanage/1.0.12/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://library-charts.truecharts.org + version: 10.7.13 +digest: sha256:2f2267115af9bdc61a64db6317564e2d07f4f27ccb0627720c8a63d82b1786b7 +generated: "2022-11-03T02:51:15.273124187Z" diff --git a/stable/qbitmanage/1.0.11/Chart.yaml b/stable/qbitmanage/1.0.12/Chart.yaml similarity index 96% rename from stable/qbitmanage/1.0.11/Chart.yaml rename to stable/qbitmanage/1.0.12/Chart.yaml index 2e3957885bc..73bf3356fd9 100644 --- a/stable/qbitmanage/1.0.11/Chart.yaml +++ b/stable/qbitmanage/1.0.12/Chart.yaml @@ -1,5 +1,5 @@ apiVersion: v2 -appVersion: "3.3.0" +appVersion: "3.3.1" dependencies: - name: common repository: https://library-charts.truecharts.org @@ -23,7 +23,7 @@ sources: - https://github.com/StuffAnThings/qbit_manage/wiki/Docker-Installation - https://hub.docker.com/r/bobokun/qbit_manage type: application -version: 1.0.11 +version: 1.0.12 annotations: truecharts.org/SCALE-support: "true" truecharts.org/catagories: | diff --git a/stable/qbitmanage/1.0.11/README.md b/stable/qbitmanage/1.0.12/README.md similarity index 100% rename from stable/qbitmanage/1.0.11/README.md rename to stable/qbitmanage/1.0.12/README.md diff --git a/stable/qbitmanage/1.0.11/app-readme.md b/stable/qbitmanage/1.0.12/app-readme.md similarity index 100% rename from stable/qbitmanage/1.0.11/app-readme.md rename to stable/qbitmanage/1.0.12/app-readme.md diff --git a/stable/qbitmanage/1.0.12/charts/common-10.7.13.tgz b/stable/qbitmanage/1.0.12/charts/common-10.7.13.tgz new file mode 100644 index 0000000000000000000000000000000000000000..c3131de86ff390f136bf19240caede7a29b33ecd GIT binary patch literal 49153 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 literal 0 HcmV?d00001 diff --git a/stable/qbitmanage/1.0.11/ix_values.yaml b/stable/qbitmanage/1.0.12/ix_values.yaml similarity index 90% rename from stable/qbitmanage/1.0.11/ix_values.yaml rename to stable/qbitmanage/1.0.12/ix_values.yaml index 957c93ea947..5bbdf09e2cd 100644 --- a/stable/qbitmanage/1.0.11/ix_values.yaml +++ b/stable/qbitmanage/1.0.12/ix_values.yaml @@ -1,7 +1,7 @@ image: repository: tccr.io/truecharts/qbitmanage pullPolicy: IfNotPresent - tag: 3.3.0@sha256:6dbd0e74d002380fd20bd3da7aa16ceb0eaee3bb78c028f6fb77a98ac6dbb8a8 + tag: 3.3.1@sha256:911c9ade229f525372e6c115ce6d3e5421f2a02f45907f771ab1d93b657d4ca4 podSecurityContext: runAsGroup: 0 diff --git a/stable/qbitmanage/1.0.11/questions.yaml b/stable/qbitmanage/1.0.12/questions.yaml similarity index 100% rename from stable/qbitmanage/1.0.11/questions.yaml rename to stable/qbitmanage/1.0.12/questions.yaml diff --git a/stable/qbitmanage/1.0.11/templates/common.yaml b/stable/qbitmanage/1.0.12/templates/common.yaml similarity index 100% rename from stable/qbitmanage/1.0.11/templates/common.yaml rename to stable/qbitmanage/1.0.12/templates/common.yaml diff --git a/stable/storj-node/2.0.59/SKIPINSTALL b/stable/qbitmanage/1.0.12/values.yaml similarity index 100% rename from stable/storj-node/2.0.59/SKIPINSTALL rename to stable/qbitmanage/1.0.12/values.yaml diff --git a/stable/radarr/11.0.44/CHANGELOG.md b/stable/radarr/11.0.44/CHANGELOG.md new file mode 100644 index 00000000000..7671b0f69d2 --- /dev/null +++ b/stable/radarr/11.0.44/CHANGELOG.md @@ -0,0 +1,99 @@ +# Changelog + + + +## [radarr-11.0.44](https://github.com/truecharts/charts/compare/radarr-11.0.43...radarr-11.0.44) (2022-11-03) + +### Chore + +- Auto-update chart README [skip ci] + - update docker general non-major ([#4286](https://github.com/truecharts/charts/issues/4286)) + + + + +## [radarr-11.0.43](https://github.com/truecharts/charts/compare/radarr-11.0.42...radarr-11.0.43) (2022-11-02) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major ([#4261](https://github.com/truecharts/charts/issues/4261)) + + + + +## [radarr-11.0.42](https://github.com/truecharts/charts/compare/radarr-11.0.41...radarr-11.0.42) (2022-10-25) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major ([#4182](https://github.com/truecharts/charts/issues/4182)) + + + + +## [radarr-11.0.41](https://github.com/truecharts/charts/compare/radarrsync-0.0.29...radarr-11.0.41) (2022-10-19) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major ([#4122](https://github.com/truecharts/charts/issues/4122)) + + + + +## [radarr-11.0.40](https://github.com/truecharts/charts/compare/radarr-11.0.39...radarr-11.0.40) (2022-10-12) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major ([#4071](https://github.com/truecharts/charts/issues/4071)) + + + + +## [radarr-11.0.39](https://github.com/truecharts/charts/compare/radarr-11.0.38...radarr-11.0.39) (2022-10-07) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - update helm general non-major + + + + +## [radarr-11.0.39](https://github.com/truecharts/charts/compare/radarr-11.0.38...radarr-11.0.39) (2022-10-07) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major + + + + +## [radarr-11.0.38](https://github.com/truecharts/charts/compare/radarr-11.0.37...radarr-11.0.38) (2022-10-05) + +### Chore + +- Auto-update chart README [skip ci] + - split addons in smaller templates ([#3979](https://github.com/truecharts/charts/issues/3979)) + - update helm general non-major + + + + +## [radarr-11.0.37](https://github.com/truecharts/charts/compare/radarr-11.0.36...radarr-11.0.37) (2022-09-27) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major ([#3918](https://github.com/truecharts/charts/issues/3918)) + + + + +## [radarr-11.0.36](https://github.com/truecharts/charts/compare/radarrsync-0.0.25...radarr-11.0.36) (2022-09-26) + +### Chore diff --git a/stable/radarr/11.0.44/Chart.lock b/stable/radarr/11.0.44/Chart.lock new file mode 100644 index 00000000000..b5f88f581eb --- /dev/null +++ b/stable/radarr/11.0.44/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://library-charts.truecharts.org + version: 10.7.13 +digest: sha256:2f2267115af9bdc61a64db6317564e2d07f4f27ccb0627720c8a63d82b1786b7 +generated: "2022-11-03T02:51:20.423526561Z" diff --git a/stable/radarr/11.0.44/Chart.yaml b/stable/radarr/11.0.44/Chart.yaml new file mode 100644 index 00000000000..70cbfce3806 --- /dev/null +++ b/stable/radarr/11.0.44/Chart.yaml @@ -0,0 +1,30 @@ +apiVersion: v2 +appVersion: "4.2.4.6635" +dependencies: + - name: common + repository: https://library-charts.truecharts.org + version: 10.7.13 +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: 11.0.44 +annotations: + truecharts.org/catagories: | + - media + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/stable/radarr/11.0.44/README.md b/stable/radarr/11.0.44/README.md new file mode 100644 index 00000000000..667cee650aa --- /dev/null +++ b/stable/radarr/11.0.44/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.7.13 | + +## 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/11.0.44/app-readme.md b/stable/radarr/11.0.44/app-readme.md new file mode 100644 index 00000000000..2abad3f38c2 --- /dev/null +++ b/stable/radarr/11.0.44/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/11.0.44/charts/common-10.7.13.tgz b/stable/radarr/11.0.44/charts/common-10.7.13.tgz new file mode 100644 index 0000000000000000000000000000000000000000..c3131de86ff390f136bf19240caede7a29b33ecd GIT binary patch literal 49153 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 literal 0 HcmV?d00001 diff --git a/stable/radarr/11.0.44/ix_values.yaml b/stable/radarr/11.0.44/ix_values.yaml new file mode 100644 index 00000000000..40d0bc96f6e --- /dev/null +++ b/stable/radarr/11.0.44/ix_values.yaml @@ -0,0 +1,43 @@ +image: + repository: tccr.io/truecharts/radarr + pullPolicy: IfNotPresent + tag: 4.2.4.6635@sha256:af95a1591758c23121967f94710b8432a2beefbd9f36686ca21a2727e9c12787 + +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/11.0.44/questions.yaml b/stable/radarr/11.0.44/questions.yaml new file mode 100644 index 00000000000..24b7ea99b72 --- /dev/null +++ b/stable/radarr/11.0.44/questions.yaml @@ -0,0 +1,2567 @@ +groups: + - name: Container Image + description: Image to be used for container + - name: Controller + description: Configure Workload Deployment + - name: Container Configuration + description: Additional Container Configuration + - name: App Configuration + description: App Specific Config Options + - name: Networking and Services + description: Configure Network and Services for Container + - name: Storage and Persistence + description: Persist and Share Data that is Separate from the Container + - name: Ingress + description: Ingress Configuration + - name: Security and Permissions + description: Configure Security Context and Permissions + - name: Resources and Devices + description: "Specify Resources/Devices to be Allocated to Workload" + - name: Middlewares + description: Traefik Middlewares + - name: Metrics + description: Metrics + - name: Addons + description: Addon Configuration + - name: Advanced + description: Advanced Configuration + - name: 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: Controller + schema: + type: dict + hidden: true + attrs: + - variable: isSCALE + label: Flag this is SCALE + schema: + type: boolean + default: true + hidden: true + - variable: controller + group: Controller + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: advanced + label: Show Advanced Controller Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: Please specify type of workload to deploy + label: (Advanced) Controller Type + schema: + type: string + required: true + enum: + - value: deployment + description: Deployment + - value: statefulset + description: Statefulset + - value: daemonset + description: Daemonset + default: deployment + - variable: replicas + description: Number of desired pod replicas + label: Desired Replicas + schema: + type: int + required: true + default: 1 + - variable: strategy + description: Please specify type of workload to deploy + label: (Advanced) Update Strategy + schema: + type: string + required: true + enum: + - value: Recreate + description: "Recreate: Kill existing pods before creating new ones" + - value: RollingUpdate + description: "RollingUpdate: Create new pods and then kill old ones" + - value: OnDelete + description: "(Legacy) OnDelete: ignore .spec.template changes" + default: Recreate + - variable: expert + label: Show Expert Configuration Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: Controller Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Controller Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: customextraargs + group: Controller + 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: Container Configuration + 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: Container Configuration + 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: expertpodconf + group: Container Configuration + label: Show Expert Configuration + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: tty + label: Enable TTY + description: Determines whether containers in a pod runs with TTY enabled. By default pod has it disabled. + group: Workload Details + schema: + type: boolean + default: false + - variable: stdin + label: Enable STDIN + description: Determines whether containers in a pod runs with stdin enabled. By default pod has it disabled. + group: Workload Details + schema: + type: boolean + default: false + - variable: termination + group: Container Configuration + label: Termination settings + schema: + additional_attrs: true + type: dict + attrs: + - variable: gracePeriodSeconds + label: Grace Period Seconds + schema: + type: int + default: 10 + - variable: podLabelsList + group: Container Configuration + label: Pod Labels + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: podAnnotationsList + group: Container Configuration + label: Pod Annotations + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: Label + 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: 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: The IP Families that should be used + schema: + type: list + default: [] + items: + - variable: ipFamily + label: IP Family + schema: + type: string + - 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: advanced + label: Show Advanced Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: Enable the Port + schema: + type: boolean + hidden: true + default: true + - variable: protocol + label: Port Type + schema: + type: string + default: HTTP + enum: + - value: HTTP + description: HTTP + - value: HTTPS + description: HTTPS + - value: TCP + description: TCP + - value: UDP + description: UDP + - variable: nodePort + label: Node Port (Optional) + description: This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 7878 + - 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: dnsPolicy + group: Networking and Services + label: dnsPolicy + schema: + type: string + default: "" + enum: + - value: "" + description: Default + - value: ClusterFirst + description: ClusterFirst + - value: None + description: None + - variable: dnsConfig + label: DNS Configuration + group: Networking and Services + description: Specify custom DNS configuration which will be applied to the pod + schema: + additional_attrs: true + type: dict + attrs: + - variable: nameservers + label: Name Servers + schema: + default: [] + type: list + items: + - variable: nameserver + label: Name Server + schema: + type: string + - variable: options + label: Options + schema: + default: [] + type: list + items: + - variable: option + label: Option Entry + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: searches + label: Searches + schema: + default: [] + type: list + items: + - variable: search + label: Search Entry + schema: + type: string + - 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: simplePVC + enum: + - value: simplePVC + description: PVC (simple) + - value: simpleHP + description: Host Path (simple) + - value: emptyDir + description: emptyDir + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - 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: setPermissionsSimple + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "simpleHP"]] + type: boolean + default: false + - 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: hostPathSimple + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "simpleHP"]] + type: hostpath + - 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 + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: hostPathType + label: (Advanced) hostPath Type + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: DirectoryOrCreate + description: DirectoryOrCreate + - value: Directory + description: Directory + - value: FileOrCreate + description: FileOrCreate + - value: File + description: File + - value: Socket + description: Socket + - value: CharDevice + description: CharDevice + - value: BlockDevice + description: BlockDevice + - variable: storageClass + label: (Advanced) storageClass + description: "Warning: Anything other than SCALE-ZFS or empty will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: SCALE-ZFS + - variable: accessMode + label: (Advanced) Access Mode + description: Allow or disallow multiple PVC's writhing to the same PV + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: ReadWriteOnce + enum: + - value: ReadWriteOnce + description: ReadWriteOnce + - value: ReadOnlyMany + description: ReadOnlyMany + - value: ReadWriteMany + description: ReadWriteMany + - variable: advanced + label: Show Advanced Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - 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: name + label: Name (Optional) + description: "Not required, please set to config when mounting /config or temp when mounting /tmp" + schema: + type: string + - variable: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: simpleHP + enum: + - value: simplePVC + description: PVC (Simple) + - value: simpleHP + description: Host Path (Simple) + - value: emptyDir + description: emptyDir + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - 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: setPermissionsSimple + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "simpleHP"]] + type: boolean + default: false + - 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: hostPathSimple + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "simpleHP"]] + type: hostpath + - 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: hostPathType + label: (Advanced) Host Path Type + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: DirectoryOrCreate + description: DirectoryOrCreate + - value: Directory + description: Directory + - value: FileOrCreate + description: FileOrCreate + - value: File + description: File + - value: Socket + description: Socket + - value: CharDevice + description: CharDevice + - value: BlockDevice + description: BlockDevice + - variable: storageClass + label: (Advanced) StorageClass + description: "Warning: Anything other than SCALE-ZFS or empty will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: SCALE-ZFS + - variable: accessMode + label: (Advanced) Access Mode + description: Allow or disallow multiple PVC's writhing to the same PV + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: ReadWriteOnce + enum: + - value: ReadWriteOnce + description: ReadWriteOnce + - value: ReadOnlyMany + description: ReadOnlyMany + - value: ReadWriteMany + description: ReadWriteMany + - variable: advanced + label: Show Advanced Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - 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: 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: expert + label: Show Expert Configuration Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enableFixedMiddlewares + description: These middlewares enforce a number of best practices. + label: Enable Default Middlewares + schema: + type: boolean + default: true + - variable: ingressClassName + label: IngressClass Name + schema: + type: string + default: "" + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - 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: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - 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: capabilities + label: Capabilities + schema: + additional_attrs: true + type: dict + attrs: + - variable: drop + label: Drop Capability + schema: + type: list + default: [] + items: + - variable: dropEntry + label: "" + schema: + type: string + - variable: add + label: Add Capability + schema: + type: list + default: [] + items: + - variable: addEntry + label: "" + schema: + type: string + - 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: advancedresources + label: Set Custom Resource Limits/Requests (Advanced) + group: Resources and Devices + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: resources + label: "" + 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 + 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 + 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 + 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: promtail + label: Promtail + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: loki + label: Loki URL + schema: + type: string + required: true + - variable: logs + label: Log Paths + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: path + label: Path + schema: + type: string + required: true + - variable: args + label: Promtail Command Line Arguments + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: arg + label: Arg + schema: + type: string + required: true + - variable: envList + label: Promtail Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + - variable: netshoot + label: Netshoot + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: envList + label: Netshoot Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + - variable: vpn + label: VPN + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type + schema: + type: string + default: disabled + enum: + - value: disabled + description: disabled + - value: 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: 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: Sock5 Server + 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/11.0.44/templates/common.yaml b/stable/radarr/11.0.44/templates/common.yaml new file mode 100644 index 00000000000..c1a366e1cf0 --- /dev/null +++ b/stable/radarr/11.0.44/templates/common.yaml @@ -0,0 +1 @@ +{{ include "tc.common.loader.all" . }} diff --git a/stable/zigbee2mqtt/4.0.43/SKIPINSTALL b/stable/radarr/11.0.44/values.yaml similarity index 100% rename from stable/zigbee2mqtt/4.0.43/SKIPINSTALL rename to stable/radarr/11.0.44/values.yaml diff --git a/stable/rsshub/3.0.133/CHANGELOG.md b/stable/rsshub/3.0.134/CHANGELOG.md similarity index 88% rename from stable/rsshub/3.0.133/CHANGELOG.md rename to stable/rsshub/3.0.134/CHANGELOG.md index 14fc3c20fc5..acf497ad8b5 100644 --- a/stable/rsshub/3.0.133/CHANGELOG.md +++ b/stable/rsshub/3.0.134/CHANGELOG.md @@ -2,6 +2,16 @@ +## [rsshub-3.0.134](https://github.com/truecharts/charts/compare/rsshub-3.0.133...rsshub-3.0.134) (2022-11-03) + +### Chore + +- Auto-update chart README [skip ci] + - update docker general non-major ([#4286](https://github.com/truecharts/charts/issues/4286)) + + + + ## [rsshub-3.0.133](https://github.com/truecharts/charts/compare/rsshub-3.0.132...rsshub-3.0.133) (2022-11-02) ### Chore @@ -87,13 +97,3 @@ ## [rsshub-3.0.126](https://github.com/truecharts/charts/compare/rsshub-3.0.124...rsshub-3.0.126) (2022-10-24) ### Chore - -- Auto-update chart README [skip ci] - - update docker general non-major ([#4171](https://github.com/truecharts/charts/issues/4171)) - - update docker general non-major ([#4165](https://github.com/truecharts/charts/issues/4165)) - - - - -## [rsshub-3.0.124](https://github.com/truecharts/charts/compare/rsshub-3.0.123...rsshub-3.0.124) (2022-10-22) - diff --git a/stable/rsshub/3.0.133/Chart.lock b/stable/rsshub/3.0.134/Chart.lock similarity index 85% rename from stable/rsshub/3.0.133/Chart.lock rename to stable/rsshub/3.0.134/Chart.lock index ce3ea75c162..539b7dc1c92 100644 --- a/stable/rsshub/3.0.133/Chart.lock +++ b/stable/rsshub/3.0.134/Chart.lock @@ -6,4 +6,4 @@ dependencies: repository: https://charts.truecharts.org version: 3.0.111 digest: sha256:f60bfe01ae321d7199a7bcf9e17cb14622ceea47d49a9c0b8cadb7780848c701 -generated: "2022-11-02T10:52:50.922802303Z" +generated: "2022-11-03T02:51:56.540205953Z" diff --git a/stable/rsshub/3.0.133/Chart.yaml b/stable/rsshub/3.0.134/Chart.yaml similarity index 98% rename from stable/rsshub/3.0.133/Chart.yaml rename to stable/rsshub/3.0.134/Chart.yaml index 97654ed2dd7..966f5f2de46 100644 --- a/stable/rsshub/3.0.133/Chart.yaml +++ b/stable/rsshub/3.0.134/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: rsshub -version: 3.0.133 +version: 3.0.134 appVersion: "latest" description: RSSHub can generate RSS feeds from pretty much everything type: application diff --git a/stable/rsshub/3.0.133/README.md b/stable/rsshub/3.0.134/README.md similarity index 100% rename from stable/rsshub/3.0.133/README.md rename to stable/rsshub/3.0.134/README.md diff --git a/stable/rsshub/3.0.133/app-readme.md b/stable/rsshub/3.0.134/app-readme.md similarity index 100% rename from stable/rsshub/3.0.133/app-readme.md rename to stable/rsshub/3.0.134/app-readme.md diff --git a/stable/rsshub/3.0.134/charts/common-10.7.13.tgz b/stable/rsshub/3.0.134/charts/common-10.7.13.tgz new file mode 100644 index 0000000000000000000000000000000000000000..c3131de86ff390f136bf19240caede7a29b33ecd GIT binary patch literal 49153 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 literal 0 HcmV?d00001 diff --git a/stable/rsshub/3.0.134/charts/redis-3.0.111.tgz b/stable/rsshub/3.0.134/charts/redis-3.0.111.tgz new file mode 100644 index 0000000000000000000000000000000000000000..ba229f9081b76667aa12628c4050bdbb13cb9fef GIT binary patch literal 55989 zcmV)iK%&1NiwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0PMYccjLCvINZPaDe%bK->!2^in_~sx_#@|PU4fj__e*8U!OcZ zUWkMw)D*!Iki2TL?`MAxt^_ZVDBrS4&C_Nr5*W-327|$1Fi25|Y4dmnQ|7JUJo?ik zJihPy{cczM>-&E3-&VKV{!^>l>G>a11F@KLZ%dP`Tzbg&`V&4-QQ5N0d@b;t^Q39hfBM=fLy5o)e-3#UY9V-iqUb z7|ziM1Y|xZu>(Mg5<)Q}>1qUKj3so`Y({vT!gS@T_VP_T04#M2E#Dh>t&S5S8l*U3 z;^q4U#ekAU8lVFJ!zGLZ6oMPHa+fe#AV3*Ok>|_^$3r(+ATJ~VZOY$GL%^yj2AzWg z-prbscs^~;2#auhcTat!?9}=d^5fu12Ru|kX#>lYqs$0!v*&>Z4u1aLede=D&|a{MY?AfYa(1HdAU)=}Wd;u0;%M$v>W zJ;iLc7<&PkTNO30Sc*_{4k<(FTJ}|f8ee@9%O~pY>nhskfXar!A zL^u$mz%fG6@qDkvvH*^aqpfq&*0NvEOeG25mnW!hRp*9LGK2y5JHqz-9qx+qB)5vVt}N8GRV+m5m6+N7luIoooMdeVm?MGAQKQGic=JVgoIQw zj2jJf1X>$VTO`871(b1(HC>6K-;orY7`*5KSPHb|C=^&K$eSCr<#84ST23`U?5e(vB0G`GqMS#sP<=-^^qdWl4 z2mAL(nEQqq8S@M6&f#aUh~X0A2#zDUNU(lOp4J6K7wJ@j5PubLu==!6H-Ra`!sz1_ z%r7Hp7qW*rkQ6O3pVYt%bGv^9B0R@TNP+zDgM9ynzaD{(<4_bVQp{GzBxdL{lS2%K z@8f87K?wT}M~JQ{L-P@sz=$HpNl18EQE3q$(eG2TNJhXH17d=wbC~dNGXx_xlk}pP zGcFv76_$9z&42j~fCR_WYu-MN5vA7=31H;W*$DjVsuBR~{a160Xp}&bN6rTGV&D9Q zC*Wt$c%kuYfd6_88t3odecu58_-{UhPg#*0@WPWciUG+y|P z{j4?K)-|^@7WB1m-Zoxjm78m(;0Eu*Uw_R(c=7+#0%7po0z)w3h4pd$)bdn(C{1WP zv!Ogxcjf}O(NZL=tRO`piW!Cxtz%BfahA>XFMs(3yaL`wxr`QH&(%lpD^NBzXvBog za6D~*eemVWOUFU+l0%fE?&9?P&DrtM)!F-Z*KgmSoQ{B`%mLu&&71c>U7x-^zxumT z6C==AA=)t2`Dh)1#xK7ZG$=}!I6&SU;@IQ*hsr-0Os9yQbA|Nfiv>UfmX@?&&5vkx zfhL-2=^J`!HGw{3%5Xfr6s0XvUx6gWF`IzKpQ&pxw*g)O90$=NM4-U}Pdb`B4w-tB zMHKPB8o&elibt~L8?+jMMxN^p$H_5z1R4xc#y>ZlJYplzXz<<^{NU7ZK1iwrUo?T) zYyD{i`kld{d6ltFeQ=f}TFlXL1o8X|&65Z+B*10TQkJASS;Xudve^hUjK^Bg(r_HH z@;Fb)SS%wac)CcXV_JOp`R5c({_&4j+81}T7^5^s3<-C(*lu8u-q5D5i`;~SE?pQ=U1Bt$DV@9Ho zYKS-%i&8))IiBQTuVXI|m}`kfpR>P#aPh)899a{l3oN^a|8#@g&!${&uF>G2?PLq* z5aK%tgptK+i7=lZMI;RLN05m;><1Q#YT&3 zz`l1EItfZCrVPb$0u>yT^RcW8jAKepZ(BxrR&m`VDIKzsmszL%G(#!kgI6>n`%28f ze3ig|@hKdb=}zlT+p=d65{2rl=ZR5W`=#}>WThIId zPx9=6bI2GU`tT+r;_C8^ast8;{Ks=bQh}*#jS8iphe4vy)Tmcu7kBi2~+$I7F~1 z%cbO>j<=)%2@!|={-<}R7ncI4SVsJ4Y%NEAa`pfpbS^i$fSG@tZ@ejC^CWWifcP>Y zQHWAUSZB^2zyXOx;HZfIe1QH}@qa%Yz5D+3&HL}YdH4W83(w~9-y8U?PI3IV2Ce7u z{}j(2IG(|HiXt*~9LL$)13$~vnGApRv(>`JfZc%16PTi=Ro6fCJTC`pAH2%K_4avV zymdYz9Tyxe7;zUeFhc+Z7pF%jZ%@I`^adv&!2fXgQdO0ZalJrB0!APvu{($VBq@0H z^Io^zuZuRObb)A-*Vx~8Dj47&-h%uG}*ZNUdo8eb|odl zdr&ecP%^YAX&*iwB`w*Xo%XK%*=euo&%r&o&@XUd@PJ&{EYO{u1-i3Np!@e=K(D}n zzRiH)%znzR4+^p?{AwGG>~nYwMwh)?Gorq3j4ciAiuvx1Kr&^J1mH;ZJYUzq=Bj^xRZHh z_fb1vqK60)t2`r1L@x9ehNI;q{N?xZ^zPdO3`#)oY}`6YcxlL#{a!;r)j;26+3 zlqcG>LzvUoIUMXb5%3y2*c5(kKcC@W%dZE&g2%NNJmrBf%rkdrTXv7>QtTWKc3h_+pFGL8s6RCG{~ESL*M4+W4YYckWt&jsvsl3 zL>?SI1R2l8en-VpG=TvlDY%qpj3^M9)4=y1&T0?cLG87N9=e0Wnnt)(4ecErle|WK z)u5){UAJm^jU9*>40eS-7*zYoA8Wkd)ee6y_B9l%Igr1Cf$;Tfi>DgMcVCJY2lC)~ zAb<76eh*Xa*Du_6jXrxW_AIr}Qv16v_AHJMAdaoOI;;P4iapEOvz$E((6azNOU8XA z-F@W6~dk`qEbX6O*-T6v@Wj z>3r11ptq6G6wS#Jfkhl66rvEI2#EySla$QChciX!u90VhL3If7;7-9Lxp0~M-uu9g zDQT7V-fMX3tD*%4caQiOqzJG_QL>%Jl^lRHFnza6) zZ;>`9@sxyPx6M)7kv6+7H+OQdZ0hc$W%|2jRNyt%P`0bVW7q8zD9a3-;p1gg=y`p~ zgwC!p;Qdaob^uMUl3BYNO`Dk2-N>w+Fhp~4pJOOT&(5-%uP(&30I?3Ln%7=+ z+w)=($NQ1kEt6=AZaM6IdvC~K?|y4%GFuzS+*#c6)jMS}yZ0osqsZJ@|FnENY`=ij zuBJ|*daF!l+otnQ6JxKxYut9PZ^vy15e{xVJ@_ethU}zeP^|`59f?0>kO-n9C z>8`8iUhc4a3DbL0+Nz*5*PnN=2z*KD&c{u9-TnqjceR0w_5BJ;TNb6|oq}zWt3EI| zl}FWjwR^)*+}hN)yPB?r`iB(+`!>NlA3E%MtFeobIlv zHh7KoowMsnwnFtmncSgGZpl)GVaQ2Z%uy__tOmgh1vg{zxk*tVUN8b+6sdiIqa>lV ztgo&(5&!^i?K}LLwkM?$JC+#uK_#5=)*6|IKWGx@NWjR^NUM&<}aIKGi2wYQ%W7g%V5 z+J~*0tE8^w87ks_AHpk4ovuyzV;xxRDpyi_dwz}r$ND=slG@wzW)z@r(D_@f${qRK z*~sT7CvWRu+(cf59oe?Y+u4llD#ucLdtgYO#KDG1rQYCNLt>QyX_Hu*v%g);6EP)A z;G8mjeYd(hK-@}eZfpQ4nxGWL0iqyWh^roEizxy)4pIau0%T%cRa}1zYYw!(h3^=T5GC}L>5MZpI=c8D%Kh5O5O_u!@0bu_yox--^3j$u{7z{VS8tp z_A6FJetuOn$P8~~8>T1|VaQ-aqzo%L)bsl~T<;}5!wOXW4XBR!@M8p^m@ZNTtUT`k zQ;^8JyE%LL5Iq*{ufcn(!M6$Rei`kdjrBUGG!D4�PMzx7z@2_4okJ7!X7V#)|}y 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 C$`gP9 literal 0 HcmV?d00001 diff --git a/stable/rsshub/3.0.133/ix_values.yaml b/stable/rsshub/3.0.134/ix_values.yaml similarity index 93% rename from stable/rsshub/3.0.133/ix_values.yaml rename to stable/rsshub/3.0.134/ix_values.yaml index a5dfd99fc3c..2101805deef 100644 --- a/stable/rsshub/3.0.133/ix_values.yaml +++ b/stable/rsshub/3.0.134/ix_values.yaml @@ -1,7 +1,7 @@ image: repository: tccr.io/truecharts/rsshub pullPolicy: IfNotPresent - tag: latest@sha256:89327faead4da6a093b3f99ad5f06c05c0695005db5f5d49cc61e9bb74bbebb9 + tag: latest@sha256:cbb8b7d19dec8bad3b85600c4e7474129a1f3025f3f546def5db5d436bce2531 browserlessImage: repository: tccr.io/truecharts/browserless-chrome diff --git a/stable/rsshub/3.0.133/questions.yaml b/stable/rsshub/3.0.134/questions.yaml similarity index 100% rename from stable/rsshub/3.0.133/questions.yaml rename to stable/rsshub/3.0.134/questions.yaml diff --git a/stable/rsshub/3.0.134/templates/common.yaml b/stable/rsshub/3.0.134/templates/common.yaml new file mode 100644 index 00000000000..c1a366e1cf0 --- /dev/null +++ b/stable/rsshub/3.0.134/templates/common.yaml @@ -0,0 +1 @@ +{{ include "tc.common.loader.all" . }} diff --git a/stable/rsshub/3.0.134/values.yaml b/stable/rsshub/3.0.134/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/storj-node/2.0.59/Chart.lock b/stable/storj-node/2.0.59/Chart.lock deleted file mode 100644 index ca97cdc78dc..00000000000 --- a/stable/storj-node/2.0.59/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: https://library-charts.truecharts.org - version: 10.7.13 -digest: sha256:2f2267115af9bdc61a64db6317564e2d07f4f27ccb0627720c8a63d82b1786b7 -generated: "2022-11-02T10:57:27.073103516Z" diff --git a/stable/storj-node/2.0.59/CHANGELOG.md b/stable/storj-node/2.0.60/CHANGELOG.md similarity index 91% rename from stable/storj-node/2.0.59/CHANGELOG.md rename to stable/storj-node/2.0.60/CHANGELOG.md index 56399d5aad3..4bf08d2d64c 100644 --- a/stable/storj-node/2.0.59/CHANGELOG.md +++ b/stable/storj-node/2.0.60/CHANGELOG.md @@ -2,6 +2,16 @@ +## [storj-node-2.0.60](https://github.com/truecharts/charts/compare/storj-node-2.0.59...storj-node-2.0.60) (2022-11-03) + +### Chore + +- Auto-update chart README [skip ci] + - update docker general non-major ([#4286](https://github.com/truecharts/charts/issues/4286)) + + + + ## [storj-node-2.0.59](https://github.com/truecharts/charts/compare/storj-node-2.0.58...storj-node-2.0.59) (2022-11-02) ### Chore @@ -87,13 +97,3 @@ ## [storj-node-2.0.52](https://github.com/truecharts/charts/compare/storj-node-2.0.51...storj-node-2.0.52) (2022-10-01) ### Chore - -- Auto-update chart README [skip ci] - - update docker general non-major ([#3975](https://github.com/truecharts/charts/issues/3975)) - - - - -## [storj-node-2.0.51](https://github.com/truecharts/charts/compare/storj-node-2.0.50...storj-node-2.0.51) (2022-09-27) - -### Chore diff --git a/stable/storj-node/2.0.60/Chart.lock b/stable/storj-node/2.0.60/Chart.lock new file mode 100644 index 00000000000..5e664cf2c97 --- /dev/null +++ b/stable/storj-node/2.0.60/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://library-charts.truecharts.org + version: 10.7.13 +digest: sha256:2f2267115af9bdc61a64db6317564e2d07f4f27ccb0627720c8a63d82b1786b7 +generated: "2022-11-03T02:51:39.93434024Z" diff --git a/stable/storj-node/2.0.59/Chart.yaml b/stable/storj-node/2.0.60/Chart.yaml similarity index 96% rename from stable/storj-node/2.0.59/Chart.yaml rename to stable/storj-node/2.0.60/Chart.yaml index 4c5e01dbf81..cbdbbc44562 100644 --- a/stable/storj-node/2.0.59/Chart.yaml +++ b/stable/storj-node/2.0.60/Chart.yaml @@ -1,5 +1,5 @@ apiVersion: v2 -appVersion: "1.66.1" +appVersion: "1.66.2" dependencies: - name: common repository: https://library-charts.truecharts.org @@ -21,7 +21,7 @@ sources: - https://github.com/storj/storj - https://docs.storj.io/node/ - https://hub.docker.com/r/storjlabs/storagenode -version: 2.0.59 +version: 2.0.60 annotations: truecharts.org/catagories: | - media diff --git a/stable/storj-node/2.0.59/README.md b/stable/storj-node/2.0.60/README.md similarity index 100% rename from stable/storj-node/2.0.59/README.md rename to stable/storj-node/2.0.60/README.md diff --git a/stable/storj-node/2.0.60/SKIPINSTALL b/stable/storj-node/2.0.60/SKIPINSTALL new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/storj-node/2.0.59/app-readme.md b/stable/storj-node/2.0.60/app-readme.md similarity index 100% rename from stable/storj-node/2.0.59/app-readme.md rename to stable/storj-node/2.0.60/app-readme.md diff --git a/stable/storj-node/2.0.60/charts/common-10.7.13.tgz b/stable/storj-node/2.0.60/charts/common-10.7.13.tgz new file mode 100644 index 0000000000000000000000000000000000000000..c3131de86ff390f136bf19240caede7a29b33ecd GIT binary patch literal 49153 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 literal 0 HcmV?d00001 diff --git a/stable/storj-node/2.0.59/ix_values.yaml b/stable/storj-node/2.0.60/ix_values.yaml similarity index 90% rename from stable/storj-node/2.0.59/ix_values.yaml rename to stable/storj-node/2.0.60/ix_values.yaml index a163bbe6475..acf63c34415 100644 --- a/stable/storj-node/2.0.59/ix_values.yaml +++ b/stable/storj-node/2.0.60/ix_values.yaml @@ -1,6 +1,6 @@ image: repository: tccr.io/truecharts/storj-node - tag: 1.66.1@sha256:74c650025c8ef840f56f3732522e76bd721d4681ed1ae7fd6f12f50f3603638e + tag: 1.66.2@sha256:17cf05dae834c09c6b4d0cb5913d394afedba98695d2eeb0eeb16e0f24c07f50 pullPolicy: IfNotPresent securityContext: diff --git a/stable/storj-node/2.0.59/questions.yaml b/stable/storj-node/2.0.60/questions.yaml similarity index 100% rename from stable/storj-node/2.0.59/questions.yaml rename to stable/storj-node/2.0.60/questions.yaml diff --git a/stable/storj-node/2.0.60/templates/common.yaml b/stable/storj-node/2.0.60/templates/common.yaml new file mode 100644 index 00000000000..c1a366e1cf0 --- /dev/null +++ b/stable/storj-node/2.0.60/templates/common.yaml @@ -0,0 +1 @@ +{{ include "tc.common.loader.all" . }} diff --git a/stable/storj-node/2.0.60/values.yaml b/stable/storj-node/2.0.60/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/syncthing/11.0.45/CHANGELOG.md b/stable/syncthing/11.0.45/CHANGELOG.md new file mode 100644 index 00000000000..4ff99aa75ad --- /dev/null +++ b/stable/syncthing/11.0.45/CHANGELOG.md @@ -0,0 +1,99 @@ +# Changelog + + + +## [syncthing-11.0.45](https://github.com/truecharts/charts/compare/syncthing-11.0.44...syncthing-11.0.45) (2022-11-03) + +### Chore + +- Auto-update chart README [skip ci] + - update docker general non-major ([#4286](https://github.com/truecharts/charts/issues/4286)) + + + + +## [syncthing-11.0.44](https://github.com/truecharts/charts/compare/syncthing-11.0.43...syncthing-11.0.44) (2022-11-02) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major ([#4261](https://github.com/truecharts/charts/issues/4261)) + + + + +## [syncthing-11.0.43](https://github.com/truecharts/charts/compare/syncthing-11.0.42...syncthing-11.0.43) (2022-10-25) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major ([#4182](https://github.com/truecharts/charts/issues/4182)) + + + + +## [syncthing-11.0.42](https://github.com/truecharts/charts/compare/syncthing-11.0.41...syncthing-11.0.42) (2022-10-19) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major ([#4122](https://github.com/truecharts/charts/issues/4122)) + + + + +## [syncthing-11.0.41](https://github.com/truecharts/charts/compare/syncthing-11.0.40...syncthing-11.0.41) (2022-10-12) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major ([#4071](https://github.com/truecharts/charts/issues/4071)) + + + + +## [syncthing-11.0.40](https://github.com/truecharts/charts/compare/syncthing-11.0.39...syncthing-11.0.40) (2022-10-07) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - update helm general non-major + + + + +## [syncthing-11.0.40](https://github.com/truecharts/charts/compare/syncthing-11.0.39...syncthing-11.0.40) (2022-10-07) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major + + + + +## [syncthing-11.0.39](https://github.com/truecharts/charts/compare/syncthing-11.0.38...syncthing-11.0.39) (2022-10-05) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major + + + + +## [syncthing-11.0.38](https://github.com/truecharts/charts/compare/syncthing-11.0.37...syncthing-11.0.38) (2022-10-05) + +### Chore + +- Auto-update chart README [skip ci] + - split addons in smaller templates ([#3979](https://github.com/truecharts/charts/issues/3979)) + - update docker general non-major ([#4010](https://github.com/truecharts/charts/issues/4010)) + + + + +## [syncthing-11.0.37](https://github.com/truecharts/charts/compare/syncthing-11.0.36...syncthing-11.0.37) (2022-09-27) + +### Chore diff --git a/stable/syncthing/11.0.45/Chart.lock b/stable/syncthing/11.0.45/Chart.lock new file mode 100644 index 00000000000..625240920a5 --- /dev/null +++ b/stable/syncthing/11.0.45/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://library-charts.truecharts.org + version: 10.7.13 +digest: sha256:2f2267115af9bdc61a64db6317564e2d07f4f27ccb0627720c8a63d82b1786b7 +generated: "2022-11-03T02:52:02.667655544Z" diff --git a/stable/syncthing/11.0.45/Chart.yaml b/stable/syncthing/11.0.45/Chart.yaml new file mode 100644 index 00000000000..7d49c6b0d26 --- /dev/null +++ b/stable/syncthing/11.0.45/Chart.yaml @@ -0,0 +1,30 @@ +apiVersion: v2 +appVersion: "1.22.1" +dependencies: + - name: common + repository: https://library-charts.truecharts.org + version: 10.7.13 +deprecated: false +description: P2P file synchronization application +home: https://truecharts.org/docs/charts/stable/syncthing +icon: https://truecharts.org/img/hotlink-ok/chart-icons/syncthing.png +keywords: + - syncthing +kubeVersion: ">=1.16.0-0" +maintainers: + - email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +name: syncthing +sources: + - https://github.com/truecharts/charts/tree/master/charts/stable/syncthing + - https://syncthing.net/ + - https://github.com/syncthing/syncthing + - https://hub.docker.com/r/syncthing/syncthing +type: application +version: 11.0.45 +annotations: + truecharts.org/catagories: | + - media + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/stable/syncthing/11.0.45/README.md b/stable/syncthing/11.0.45/README.md new file mode 100644 index 00000000000..8c799900701 --- /dev/null +++ b/stable/syncthing/11.0.45/README.md @@ -0,0 +1,108 @@ +# syncthing + +P2P file synchronization application + +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: [syncthing](https://truecharts.org/docs/charts/stable/syncthing) + +**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.7.13 | + +## 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 `syncthing` + +```console +helm repo add TrueCharts https://charts.truecharts.org +helm repo update +helm install syncthing TrueCharts/syncthing +``` + +## 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 `syncthing` deployment + +```console +helm uninstall syncthing +``` + +## 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 syncthing \ + --set env.TZ="America/New York" \ + TrueCharts/syncthing +``` + +#### 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 syncthing TrueCharts/syncthing -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/syncthing/11.0.45/app-readme.md b/stable/syncthing/11.0.45/app-readme.md new file mode 100644 index 00000000000..52adeb7bab4 --- /dev/null +++ b/stable/syncthing/11.0.45/app-readme.md @@ -0,0 +1,8 @@ +P2P file synchronization application + +This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/docs/charts/stable/syncthing](https://truecharts.org/docs/charts/stable/syncthing) + +--- + +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/syncthing/11.0.45/charts/common-10.7.13.tgz b/stable/syncthing/11.0.45/charts/common-10.7.13.tgz new file mode 100644 index 0000000000000000000000000000000000000000..c3131de86ff390f136bf19240caede7a29b33ecd GIT binary patch literal 49153 zcmV)gK%~DPiwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0PMZ{cH20TI6QyrDey6wZF_#!-M4rqd)93`-9DW-KDLwI-Pt(~ zL_!kA6u|~SIhu6d{X4i4;6vWH~vmJ{B3WY+UP*o@tLNc3?qvD=vcLo_pw5#7MR&3!=G-N=)IpmPC zjslf2L_?BrlyC_(>+bDt_j-FfJFOeExFs}V2dy^98*8-~ zU!>^3px2rkT>8DvUZ+27J$Y1C3#{oDUpAmje5fdG1NoYS~ihjr-jn<|5 zEv9H9D%R6Ihux6m7G?uzE}`fBPOmfQ4f?%T{cS_hp5-q(u%t|Ybj+O>Z*08*gvaM z*zfP7{lWHd{Azc&JASn{Xwddr)J+g)Q$qN<)HU_$scRuOq^>Ey8dkk1Mtj5lPT1Rv z#2>HVU=WV?`{8&G4hK@@{$Q}TKYTS3+Cjg+({IprJ#`P` zTex7Ft|5sKLv)Vlx|Gdp*3(v$X>0He$?H^U1kok(c4t55;8(qwq6oJOdofQYj`u z2oo?uAY&-%w16&k0KR-(4h<#=;c_mm1nCr&a9hHfrX-FLwJ4(mj$)+ez468Ed#K43-S9 z8vixGstWh*(;b_2J93uIMu>{p6(NQxia<&tro>Q;L&y$5e+dI+>4d@v0mdohXtIz+ z-w+CpEi!CN^Z`ezCyKW&P)HHv2yE!}WD~$70v9BXaWeUkMv!a16tFIJZ!S?Ku=mL^ ziV;U;5IJ}S>{yaQfB|@t5Gtk)X5yQ{Ura6Pf)Fp9?&mZvv^0aCL6*Qd#IcxqvX=9E z9WX4T69qv2RjBF=ZJ}-oDK}CMit{s z`Tz`DE$l5}O3>#kmA`EHrSfISe_y*yXjMcmn&1+}DCC3!7{}z6$yEVCwg4#(Z*VdJ z5JY%9Ml?6>BOLNAfM+S8946c@B$r2rZ%@DvA5K+g4CDh4$lrl(*DMU0)n_x9L>p|= zf-xG9m<7`J*wTgMOs;?d>4Yt*Ej~L{52Hxcz=@SGfD;2LlT!+a(H|`gv`*^d^#UB9d^~%9bs}_sMgWWP zWXj_OfH6lDF^MKl7>98TVlu&@Bo9bP0!9=;$qBb`kplvQ18|I)LP_9}kXyhAxJ7cI z6{e0r11io(5lE~cREidmDg%t;MN3iS=;HVQjA6`>rl6QeM`jqo6`rAgkp#7_{`UZU zxH@XJQpm&UX+k(2FZ4>>^5keLhim~PqsG=jpOZy>C@%LClpv*$8>L7CP|ErYrmhB{ zFxC((U!Frg1sM}$lY>5o6pIQ>mP{d^9)Rz<-<9f#)~1BJ?9(t=XkR;vrT=38GSXpUC3HsC>ZP&q~% z(HTw<1GiHo2%XC!C3HkpK(mB_Tg<26>gsmJpBco7T1ZP1L-V7vB;Vj9l2Z%P ziBy|J5w}eNO%hmqQl);vN#v~5((cf+Qx!mwuOv5s>A;)e1kbV=fHRUMTtL?P*>_AV z4lISYNd?fpd^f|%h0*5j53<)&K;h?y1G?XHx_xy1;RDAp{+FCa=ZJJ(lYP}%3*r6)sbDaeD4&Eq@)06&wHLxKJKrwMrN=Arn zfrN1J58`2`(~*j-0Cy^Riz0v-m?=#bCZJz{wgqOQO_r$wV#$jarBV_Gq&Fx6kQuyG zL;8nVzH&`eIf$HD4-HVD=>*u6WN{>HTBYnqRr4`2AGBE_hKOcpOQ;wE6lP}CMUh_VTxW!};w4ZewS&NCA_$J+ zjB!LSNUTg1=lAzGiEuKhWi2{_VPl38h40Ho0!AJ4Nciis%!wR$1_%XOWGl2AkYy>~ zh^6naydFDXWZ5wP?XHO)7=Hy_0-?0ZuYrx}R1v0rzdmv#6(0+g zj?q{y_J&PaHu@(Dc~PRA!I_<6{--lLJMx(yMFtKtbH3a^15O(vih1CO%&mMW3TkCS zE4YpZbfkUSazo;l&>LlUTDwW=|3J)&&azFLyk^DBtYdbs-V(l6S~UKbu9lL>8p6h> zVM!$vcoj1Pm@d>-%%XugwGSM!3kgdoplBv&sENQADPkS)KGhtfHSR5d^uPK=Tm4ou zURJ%5j=&(OYXBKtKE}diRGpXav%zj{64n~-wP#TV$!*Hs#PqCb6a~LNa z(J>6=*q+A-GBKn8-a?8Fl*v0wShz|B50EX9Nkjc5YnQv-lGo;zXY*bfIFKnWWL z+JT2tI6KgPYj0@~O~W*(sXL;*WmTD&%%Ld()X&rNBX^^Q*-8MkL14_UUZ+3kbqCvp z$`>T#$gdJ1#&H5wBw5hw$p7nFyyP>19Nogjfd@Zm=@Gd=NrdElVhEfh^Y%wb1!+N= zajw_TnHUW*G&k7@(FAcM=p9nT!5CA!yHqRNOj%Xt{rft*Wuj0 zcmXaK35TDJYx|(}0vv7vW2Cj8BE*Oa+A*uS{#V~nAgW8(9)`VL&?kms>o1k%e1CG z7g{Q}C7(`5(Bx#(T9;S<>$Pmi@@7eiYC0h^N+_92{EZcBiREBlN2a#!OsS~b$AWS$ z8HVWP!wP^gB{S&?G+g9t^vD`#%EzvK811}}C&Gm&(taeZO)CBr&__rx@)G6N(@9~- zGZ=#iawr7S2!WWuNGfSo&y}zt1B_FgOpYOk8paV!j9m?Q8XJYvEc*heyTU0SOiD4K zm@hyWL#AAixv!K9wB`I6sVzJfPEnKz1KZR)64lgtEtc^G<7n1SNQBxU#nM@0EOzCa zRlCLu&ktmw%5iMjpB5~(e7Cof1QZHXvh zWvTWgaznTU@G3V9o*(hnlL+13TSFJKrVCfK&kr^vkC zY$Xk+DwQJL19to z0PO7Uw*dI??(p)b1JLUYjEKs2yX7zUjxoZ-kC^*?+# zE$<>Ik#po!6KF(~qxDFMgmT zOU;|H|C42D8Y969FqR(-W9f27Qy~S-gnXY|5W?SKHiJBzu7|aBC+3?>tc-n1@f^o! z;x1QWzP(T4g=qH;j**i2HjF^-!JV6WCoF`q))6fLL4h+O5x3RC!iacdvV2rxJVxOn zj8R?3YyoHayOK($(??Yb6AzQo>MYHr2x5hyNM|0kljduu2{XDlBjL*b>7E#juK&Qi;0QlUyMV_v$U=J zdfm-sQM)5!*0tN%s0%7qb z4|Itjz7wz8X;#hb_Vc4~yM_MD?(49-Pqqi<_iEtZ8pB_zHDPUb*K0{Nvojay1GBn@ z{cp_Z!rvJ{!UL=rJ}B6V}T{eQZPbe zLWM3VXCM}KzBIzs)k@K+)Q{25J^d=@SYE#5WMnlB9LWQ08yDzLk*6wc# z`%YtVE~bDLSf@#ZLt*4h$!+tF@LN&3V-y@7E&g5k{-c}phj zeR4u6p`U&uGMErovz@BNG{8yDX==j{BnT9PFq)+MzpePRU$!x+bVqEdVpPkZvaQONOZug*9{&hhVA@#yQN@BAaKNPz>YT)!$VTx{cHBrW(LXYz}Hr$Egm|=(rOgnZ)Rl!|-Mc zoXb_>ID@f%aiPY+zEOb}=^Hr1@xnN$9T0^8Je-2DD2mNaTfTNn=UR@&>G^znOZ<1& zZ33G;mWokVe(wgu?W_iJeDAyzh@oul7T~ll|Ed&m0#uhmT&bry;ley zNa%$wSqFE%HpyUQ+0}y8toG`?g-rHZ#vaJvw|uWpe(Ct5`zZ(gNsO32)Quu-mN~;< z*Jhm96Mo8f?$~NLVI08-kg?N_DE%pwO~}#ch!LjBJ`xm)^wbk$Bm-^L(79@WG!Jv! zbF7Q};N=p~>#=IpN?~{XmZN0WZBG|qE~W0f^J+I)1!Nf>Av&1PG=u3uNukwoY+~72 ztUfB#3zX|-0()@7RL*?H0XDcTxNy`pWR{+cV=h6G?)_;9r> zH7AemscGBj$!b|@T6uI$+Y%QnQMC^#1|w#l_(=;6B(=8s*I6p zoI*6lH}034eWt=ZQWzq0>_8xFPortbD%wnL=H@DPP5~FDpb|_|By4#BU;Nfh=WW^O z-MpsysN2hrbJ~&gf*mZb`Apm}aTuE(I>wQRKBt7)$V=TiN}_hg^g28)(pJl`wwV1m zX^$Yop&z$x+WtdOede;22~PMn%{sGq`HPjAb~4`Y03;Kfe6A_VW7dYD48<1{DEOTl ziVtjJ8V7HL~d>wYzH2Ec; zqzd&P36p0{B~pHTgIS?vc)O!UO{*iLM1)=H#O$fr3{0zj_+ich)4lVf%c z`LqL?p#>UhGrOeW)fbR2l4mdrBg zIquX-XWgnfD~M(aP*m_}W5`k^ZwA>hm7c#xi1Ch)2a)Vgynh z;0OKDQRBg5_k@NG(N^s1aZQ`sGbirBH#cS)%FsQ#U*xZ8A)*|Q<<5W=GC&^UJwlXw z`;I>Q+k*>LOk7lOQ^6~Y3kok$y+7#4M13LV(JKjNzPo5$M)b1aE}!j!8Io2 z0E{4A#%cHFvW8=*Blv29-*SBH_Uf_OUN7M4#Y@OdR@PY>Hj&OlBVrnGh1;Cyc^z{+ zsHQ1%DEJ(6{_#lj{U30nz;-&ev#ZeGIz6vENX~9iX=C|7uwxpd^N&Yc`p+NFw**IQ z0W?eb;uzB{z2I%-Q*KKxRx;^|U^p2g;p`-(bJwgI6B^p=L#fPcCHmr!{%0J=QuUE` zQ?jr*@~CzLD05E0sW@)?v-DJOq82L^@j>EjhK$ALZ^jz}yGK$!b^j*NxhCUlK1J86 z`hR}f(na+#5mEBH_IG*-Wo}EOjQg`hy?-Y#QVmMvWYmCwsAFQwyBm1yg3WgsWOWqD z0Is$Q;udvHfO|A2L%7DKV9qMB4e+W-6JQU={Pu|x(0q7_aA-LEn{F{k-dp0$b@QXnUIjuOCBuT-bX z^|M5Jj8OzO95gn!KtjB#QVEp-NOB`sOqMCJ{)sB|RUkFpLxvfsr_^K24lN68dA5-?=r3zE^c1nJ=LLAwk?lKj(L!XRB1 zpF9AcI!+c12v|01t8lV}89ua@K$Oo={Mm>mB-xeToGf}X4yy@4H_*qntuSQfpi^65!ITRg+O8dd3k0K|DdySZTD%8D(nA2{AKsR0ak& zf0z!?(;ViRf{9%u4MPhYrjQEdir*rX02sUHJz5TPtiv0YA!K_Irkl$HVFe0NAwiV2 zHq|0+FfXo7T~)cldo)84&ZMg~P|1dZeAR`3&(bji8yAP~+9Md=2==lkt~Sj?*FbHU zq~c5iSTLxl%j}kzUOVM?DGXG@zJ!!}c9-~HNPYZXw*FC3>=PIx$i=8nbRry0k1Z)! zLum3Uv3w^J|4WIDnFI%PZ}br4Q$r_{1TR2eO_1LOYs?{y$%NgJH|CIbMfGRycw+8Q zvKq}&A}>GEv{^dRqVyeyna|R1dVv3U3_4!aiC)>Y`LTLh}{#-{9uDSa3L1 zCpfhKOOz?QClm=xeZ?(~rf+t{rJ9~1I>U@fPn13sG$pr*N?SOc>CB-F@$cL(h*rA0&q5lfnE`mCI(fICgt;>1Ky96|WYl^z;b}IGm#J#+3-`FrUKZ9AyPRk|f3&UL+HIQf62cU;Z2Nt@2JbU|-|Lyf6Ez z9zQ%28@SJ`{2Q^db}{4}T*r5+V0&ir-!5S~#|Qp9c1k<_eLUB+O1Y_=$7&=#YLF=k zrF-%oPBbG~l(S6zx-{+^02E-mk8xmM0pp@op0({k&-tYGi)M?q$rn|_S7w*B32T|M z{?1!He|ejtH8gOSaW(`?08MFKIrAk7V-=op*b@UPU<nA?nGA}+>Z z5~5B^;V5?qO*UJmQ>n^u9GMl>b1*;-pqONB6|kqzsUm0#v#H(?FZa z7TP&6gi=}8JhRz>XYljo4Z1x5f5Qn!6GZ=0vWKbolaT6vQ~7Y!m)j{yJ|qls%*Jxh zvG836`sBm*Hzig7vyfqqOCoR*>*IUu0me+il;e}bl{B!86jGK8TkbH%kRcn>r!{<( zaEjI2F5+QVh3X1wrKymdr{^ZdTNTQ));>TkQ5Z#SjX;|d$%BZ8ZHYr$NIdyx8!F7Z zn=Pjwc3g4lWCrhd`n{f#0v1yx$=V<=(Yhg-1?JuD?QO?Ikr%7U z6WM9mBo_xQ@B;jdK*ln8+Z071naxlVnSE~KzswU%>6+?H2>~&JbA4t^ri~FSA7YX* z0Xdu!>;ypyZKI=-&A^xufD^G6$m4QTA@G^GZj5G$SgM_DvHHTK7;_#Y0oo$61y~kN zMdR;qg2nK5Oyo;MZ19Wehf^&}R9_Vp$0Ux)t;`|)0>naGYylYkGhAl0|<~kjjEvAdU-JA?uY48vo(^!$G0W7~UWmW-hoxuF__wka5-$ z|Fz+wvZzS|s!jl_zy0i$Enq$r?pl-e&Hb2TlHZkCs;@uz+QyZ>eNe1<>TU-WOe3_o zIifHY{cp>QWOW8o6}4oOM@BLhOUJ7%4VHybWbX`E+OiGN{dj(+o9}>A-k@oqukw_K zBXKe&TiQoPG7kPuG75xPQX=c1D`iyYW}meoZ%@fg%78A(Xgj~_LdY`wp3hAP) z$FMoGD5~Gc{Lkt8(?Z26WrGV@7SBMJVAIsz6ws8rrx#MPrvg+wrnBZ^vV$8u6(VUgFx5L-&Lit##-}nOeJM?K4Vdw%v`8&=UVuXx z=Z7N{Lb?U8b*RhJzzI?kN~{Aok>r&}79DcS-_FjXQn^!p9r-&w08n+MN8WgZ7{8WF zvU$Tuc(ZeDEKB=ZUKM(+?j+4?%P8&Z%5SB^31gS{O?M5xRYB)BIF2uGF%PFs-_U1y z%TJ^e*0bx=^ZB+7O0W95TTI=ebpf`yFOHB9IW3Q(+745N%=C&jzXx1f?1 zn>1|dz=PR;NE1UMC#iML^wOsHHUzZGK=evocRN;>r~D{RZc9puGEExd(iwZ8UEm zc%CNW|2qN&{WT%d`{A|y;JZ=l??;t(qy)W!R)sR57wQUiA|#Qzl>kw#R!IF$MHH(8 zIp3a|;UL{a$q1!uK}y@4QFXdink7k@61mXA`IW8}&PHG4!DO-I$_W>~-8p&;Igxkw zZsNkJ|F}}aBc9W$zSLXVMft_s#@Ts9WRyO&uFSUdE4L%aVLQT9<;`&7#ABip^>6}G zsv7Y|!vG596%eXta;dcr?si)!74~OB5=RUa5pcc)`tVG*GiRd3pe9L}HvfS{e+s!B zSfOJIHF1g(A7w5khz6!F(v*ip)cFdSrsjSCH7`u=1tE7*I5k5p@A`6>%5n8d*cz{6 zOjQnDS9exH@baSYnA{qX0l^QLJ2%qHd&i)>07YL(Oz|9Y1THUs6oO-=20FpqQw1;J zt*mR{7#KjGbNi{F`L)~Nd&to4b{i#vf>E({M_nx>)2ieXO_&+-Y>f1I=r*MW3U3e- zd=v^z-{d57T34+VaX2xjT=a&6o{{2Bb#K(g56TKepHq3m7B)K+l8qB?g)jo2aCA)> z{A7f&hmyK>E4K{_=k8s3m}i{HRsG@$(OJ19`}rBA#BsRYOSbG}kTbT7o5QUvz4Jl` zpg$N6`p(-bjDVLI%%q^!*yahZoOYZ7FJ3%K>MIGDqVWNE*wj~E1MZJJ6&4uo_IrDZ z51hPCB|b=O9-=iE!8L@c^QM4xGN%*{V;9nH0DXg_8oJK1BpMZ|F+}aEG#65!uAAke zHqV7g;IN)jmQpekcATS;T+0F3cMN3~F!17IL zb$fz5dMng2)uupUEH^h2ZZf$=C`E}-+Av}Ql)g-gFfLZ0U*f#LqI9`bO|A=DS8zi~ z;F&|mR{x4dAw>}j4AY1HReUm4Axr>*Y@x-yWUPd6q*E|_xOjW1@6mVG1ThB3-wW=| zXzXl7U!VxH^}9tywPrn%MW41)Gr`!=X#H;Kip@Hv3qNt!NHQUJ>YA$9uxqOD({?S4 zadZaxJ#=TQo{Vuw|J1v8 zTgA@(PM$Acx_@a&wZkUsl6J5TLK(#wN-0iMmbVkl6u@$Yy&+v)d`*$PxID92S9CPR zhtp2$FWs+STVKA|;L?DH9mRnixv|$Nvt0n%x(*%#(D|qo)=5l8Fz(>bN5V8V*VO8Q z6ebe{Ug9J|pSQqEED=3;Z7bu?C#7bNygeKNsoie3V2ZVMd;o%*ebxyR+zFF#EUf!^ zKWN?HBsu_k!|;%E7*2%-d2I8Ww`Pb#6=G>lFyPPaFJHjR;$8RhrNmjZZf>K}Y2xJV z__`-wzkVmXiIT|lxbUZ-Si|wJoBzT(f$`nvy!)(}|J!?ed;a|I@9gaCJkS59c$Q5@ z#RJ|1%%@P*#B&O$y0srVS|cz8Uh0(OCWPeRwY(?6RI*nT;Y4oHyST=9)X6xGO`(nk z6@boW5xjIFuv-E5m^z_j?asgWzRCB6N+@An&K{;P&>=>AUg}%PP_->y(FlD&KeWce>#MC^L?# z4_}2v?!IvcRM@zl9G=jQ3N`&|yq$(A#Otdx&OeAxx`(g92HQqUhGV;pFzq9HnVi$>DHhRR)YN?K~U)n8YZD-yCSkaVx5gm56cli~HUI;IiL zk`?rE=gfu{0p(&HnMc*_(Wc8K1%&PZX9;`ZF+jiQxlo)5&i8`gl=r6wW?v}qu+?a~ z^0#Amnu_SGZp7Vm|^3ectt zYPo4pv=VCc{}55$y%zsf9-4a@0xR_YL4R*p(Es;_z239_{}j(M{a*}!M+J2#BS5Xy zPQHJs%9iGqIx;lQ;#mA8=2+Vm74N0XKuZD9#*ZY95S4|jSe!!k6I#?44&3~>fv&5? zjf3E8Z$7on{{pX2T_YX04WT57PeFZgd#3={bUNc|n@!O3al2cqc7BUL{q^Wt3>p*m z4+vb4){MzP2S!%A-C3KufkaSsBJYhc>|#e4ua)kg;z55bt4FO>1Gr$SJpO5mdtQjTq=}|$( zj(w?he?x+N%fV?7Y?#j_f_5B2I=ac`%1P#SS6(Y-;>^@7DUG_gqH8ZTZjx{A-hpu9)o&}?G!fbD64l|l9nZ*E~Mv|n4e2T;Xfp(kH$~Y{R=ph*Y=i-!WT=)|G-)7JGdOMp7Y9T3{Gdu_yw}jwo9iHKyRtj zL^;*yb9;H3Jws)VgvgxZ9s%^Zu7C&;((3cOSdmCJ!TDU=Z_<&~N!1%8Mn(*c?%<{| z*jz@ns5}`=T!llarPIs=K={+mj-mYcF;{z5!Koow0aC%$8x(~@1%MjYriL37TG;f! zRPcv9ztzcWS2UX?l?|^q946$W>2R3yWtGFBKQyH0J9hB7lHGDJ=&E|sRTy~qO@=umF9X1QxIS)uWonr< zGNf*9;Jy=qZ!wLBMHBd0mvp7B{F%H$P zR$ZOc7L$S3<%6Bxp-%nt2THP3{6@+Az>PZB#{ieFGp3Nc%)=zIwdHD-|58WtW#P87 z8R-?)5?CKBbU&-w-ezApPH7Br41#mHmuYi63c%ewAApm`r0NJ~ZHSWoOD2R{N|QnW z|IHS7IamI(Qr~YXIy_$;2BQ-&7)V}X1k0!ACWPm%ih>IE@e(trq$_#n>OqT=^8A6s zpr%W05VYG;84!Qo3)MikR0|-_lmdRW2`-#~VL7fjgwmev-t$CcKilWgf`xu%5hZilgHS7kC$2gpsn zYyGa!$rY0&&mQ~rtCxgUPCrhhjp~LM4DNqa zU|tdM^*)8aWN5XQ+b4-oR^`6nvF?UiNmghsK8&Jvp>@LO&JgtgG>%7pUVnbur;+^E z*U>+g{O@m<+5Uf$$I5@bg|R`=7*UjjIGKP6=DAwCS#SaXoTzm9dUxuhxqtOe ztAo4I@)Rq?+KRqf3lEyO%7 zd-QnupLR?6pN4zS=Rcq1sf+(}(~&-L@SkaVS?Hf58m%mF|&a{&Mmx zjreP*jMvS7lb~1Xf9fLZN7MhdcLpWcMe{Rz2F`lgN^ECiEmSL7nU|ZVB z8&vDEU6%1-4ZGL0Sx67Dp2yb751~4+fV21j{AzC>$dma`IZv-+8S;6p(n7rI?VIfC z6PkwpNA*Q&yjb6yC!R5mk?Lxf&(f~_o?jnTr;At=V{(IyRuskVfFnY6(_$>`dSm8XsZd08S3efXk|3KsOT+PCFxC-Ic9{4N03 z^{$?Ol2KJV;<>&~A)j7fYl}nYCakqplttJFRoy~zEQs->dGS1 zIOa+%R2{JYi=7 zaF(?xhiknySLj9aG%*@c1vK^P4USQja`^A%q<_R`nf%uipnI)3<+1GlL2sw1{|$!E z`rng0b@JaF2U0^1%pw47){=rf9b?7;8CTlXEto{ICagGJBxH+nK96yu%>^r#t4)4l z&M`fb#jl%xLWAFScx`*1-9NFD=`MTdWKPdg`r|FO5bSIqy>-+s>j_asm0 z{O1E~|5k{|eD_y>tlIq5pH}SsdZn6d{dyJdm+WJWz;E;B@_#O`-@QNn@b+YlU1LGL z-{*$0V4;WFE7nwa{B7czO$O2a4UXf>Tg=0$-`bngi<6%Z-@bKQ3*MgvPLYfEAFfWW z`(BCu-k{Up?esdmZhsK8yj)`DzEVZZ8m9QH;_>v2qwMCR9_!WJthy5COcaZ#5-ab-Mu2Z=Ftbop) ziN9Mx{M`ce`*)#!J(m*d-0|h0XT)yC5KYv*eM`%wkg;1rBSjgM%->KlQ?Uw4gS$Xu zBiYvW$r>^5;9m}jZ~`CPP@UXK&|ygy6_b({#^Fj?0_DgHv}JEmrn zU0=4aCh$SKO=-+5NIEvisxt+4bRvs~=0(@yW%diQsJ}bnRV9zoj+2Z2nt!?>#+$ ztNeexVXt)lxA*M-dy=Ql|954^{y{u|T4XGh8P4WHwP!C!>7Kql>#M5@jVvJJ`S~^< z!Mo>ly8zDc8vLWx;@kx9mmQP!Hf~O9p?|7N_N8cdJemDoujtHlU!9TU zf)K77&yNy_m%?~v3&zpRIarYU1y{IBeem*Pu_f@;ckc+|T8TEAI57MxT=h|&+%s@> zdHvIe?@z8TPmV55u8Lk8zphv7!{y1v<@w>!Nuf@|5%WAj4%ow^qm%Qi>*KS_b>PA< zL@B?H66OQ0KP&3jrzGQum5`C%tr8+NM@O5r6d}g1aawBX_~i2H`tX&|-+3B?ja-~=mfhvv>PNE}>6Hei zSQ-FMHjg0CCzKs&t-t6k2325==*ayTQUo~)?hDow5Oj75eOJ=xzpKPzf_RYs%F;;U zbU$wR9w!k_CVz0IATiP=m>In#bZP-mo-}n-VVS&EOtYNXN0Jwv9EPD#VOj;N51u(H zqnzTx?o!&&1(Hf&=ghqR_t6s?uKx_);~>z={oiu@cW?0Q|9g_Bdi`h6UHuq=`M#M|g`G21XkX7@4uU|UiSV-U67Qy!8o5&N?%qeX80ZZ}O2(%*>PiZ5>*gs_a z$I5*}=KySV3`maFR#OZe9oW2h<{tf5)yQzt(IWItE!(%X+KcIgY{n(WdSs;qMsXlHl7u)VF`-1|IGzTtCua(;Mmc=g`f zeGLBU9w|9JzdHQ>?aAf!_lHM6otzzeC6h4^p7-Ov$^E$X&lml4`u6SR&!<;MKYC*< zGey-Nwb_Eiy4ODvivK0n z?)aQUhZ!f*P`%p$@KyW2<@;ay!|mt$U!LUA`X6Tb-M2D8iUG&~1fw`ZQc}s)cWRje zq$C2+vIQV&I|lG6NGq}tphxV<9t`?tz128n!-Z*q$yD&?0V(a# zZSA$i(YFz0(&lpdCZXDGXe11XK=k$f98roR6l|LJ9rv|w)f!4TUcPx-E??%$5*Uu) zD*FEoC*fq$oe#9*u0{maIPVMs_x9Wg%~RBrtzAi;vvH&z&S}cJb9KC1A#Bg}vX0`_ zpKua^U(L0eV56S%@`T)1GU=yX`rR&iupPMW%#f94IJrP+j6=x0n$CNtx;~yfgP*G_ z;L_4eafFz>wmv^ z|9^jXd*|8z`y|g=>pzT5?&WtdtzYxSI);$y*x@~ZBCzuVg0^cJr|V-~Es#A1f%1c42Mf?Bh`zyXU=)*MD=<(-ZEp zf4>AdH$b2XhEDlvGz(!0cZxSq^tLz~T*d3Wtb}Pm`Vi}E&p&i@)F1z;TmNw~p@^}E zNdLTI{qOg;cYDS4zyEyy*V8;}um7itF&=02*If5tYrlrK=E|>YJPO0As}$_-hI@KQoKYe-yCG$*mX@?@^( zOabub<{kKaqnbP24~AR7rcd7@7gaOS>WNf2PTmAsQd|;R)470QRK^AApMf?G6_0aPXur)e|Ji0fut9wUCPq``pZ7?Ow zy@K5VVk>uKnS2t9YG1xc(sd-gyu=X|J1sf#IZV0pc7!O;3+18trL2r?|9=GwCg5@^ zsl_0`pF>1>P~F%|dk*jd&9RUKl@c9~L8o|9paMln0;ilMMzzqc7*YGf90Z;OqJ9>KEX1V!Qr3AOjHBxO>R4Bnx+pVah2(23O zzZS4~o$rL2SJnUr_^VGyWNt%ma)r{}*x|Ius@1pjV+(G>E zC6}$|6piucKmiw@tH72p17HNh8{l$8X}<5PY$lI+JbO&T#>vDb2xcD6pWQ? zQ(x@WniVAiyD=rp=3m$W_sZ zi(lnaoQnwY?ORmCC6RzRr`VEusuyG;63=(&U_;plv9il_^3eQfW*IR^@-`?-kGg><01u`1 zsZ^)GY4x{62N{nG+*@y&!Tpk_r2M_y9@C5qYU5F@jEnkoZBx0-*h%Pv^r z{AXqT5B=2X|M$A^qwuWC|J2*wDdvCZ_4?2H|5H3``+xNXA&=tlb*~nA2t&ZTm!zSt zulx5Palj6&Z$*XANm8N4JExWIm+DF1xzg;Km0Bg>Ii$Ct3zSowOpc!uJUu^aKlSUs zItTXz`JZ}&VbTA$+uwQK|9z5Y?e*W}OnD>)KmuR7>+2o~z0Zzs@o4EN%+wVVOcnS8voLH4A=L!}E+f2cKc)!mV` zT1QTbr&l}H%`I7RF{L^Mvf)v@lTyM-NMe6*HbL;?)z$f>&Bd@h6@wWBIq@lD;S>p~ zO*v0lO{xKfiQ$xD<8KL!zK1bPLPRYNVp!sM)X5SoT0tE??!q`Gw{3O(LmQ`c2|Jb~ zcK;1jwtH<;Yx->vs^T;Z2?OmsIz10I!3LV8d|^MDhE;B9Td=%O8=6n5y#49z(iRGR z`C@Js`BFGXCH_tHG;4r`V}z z=-|KekgqCUH7TmfU&;W23z$qyuA92AM*TNDwG!G|=j)abrmh=i%&sULk8zmal$DRO z_o;HgD=IH*lc~_o!|@m=nCl9KmwvoORfXk1RUYC>(CSm&NL0gVG7KdlRV35tIrAxd zdhXhT&8=4Vgkv^}F`J$det}@LIE*48`wbh`ef6lj97I*)8&avU$12h{aE9ZB8vaeN zk)S%cVuYMu#m|J}eX0qC8H4&ZY6d~W#in2R?;q zYlmfW|5QR_nX^pl08l4+a*?v%%gZjCN!8h|o_&tL;j_a32i2bR{oH^n_W$}jy}e@o zpPk|J{Vz}QtmXgn0~H=663`E$d#aegS}&s;&i4S@ffXTw>ud{Fopt`rL;D<=z0x;l zLR@MV(+9f2twLXEcB*4dpUxj)wJOQ~7>~N)6jI*3c4&031z?r@ANET5-*)@Y@!wDK z2>B0=l$3TSiSo$;7*gU~_Oa~Zch_xN+<4IfP@OX=PexB&E#ALvWmIA$cp-Iyn&aY& zn7=RQ;H8?JR{xaJMV&{{Wvg`3nz*-?q|l**vY=EPgIhvxVge(1Rr#6}>X^#%=uhBo z3fW6YK3f|l;fRi5h?w#?WmE!@F@FNvn|;=q_d8*NJ7E%zJD7CMCDO9z|0Fm8!4?Sa z0Q=5Fxg$LkDJY3!y(mzaM2B%Yg=g6e>{Q)O{T!TlpJ$o;_wuCQV*ywx|A!_0fA3lT zKh2{iavYOe@KZKIT5|)OfDr;jX?hV#I?E<Q zmpc5d-|4>!Dt97R)3xKD=hjG!5Qko?RVgME$&RKdys;!OP$3g<*|nnf%wT*L#P6t&;!S{i6QAyEAx>|9+Ck)&F(i%i5~HF~r4$ zGwBZ`3oVc5kVSMbM|HVc-@l_S9|ZE{L&SmUV{xA%24sSAWo}J zl$YJ=xm6-1z7!3%6?;*D+e}5%o8VWWk|rV89m+rP>@pjV@n;aUgKGV|btHF80JIp4 zvp8OWUosfuF%}XvP34$$T0bKNU6$vf4KY3pj8F(Oh5#coByBh)_|!;_F^VH5H)moz z!yHAzwBu9Ez{Y4HNBQ{dQk2EXM0&C|JFU|(ph`$8AR$RO#0k?3A>UyRZgCt7D=}jN zPX?ewUSqqGYx0d6hjWru+dCCoJ8B@_=v|!$;U=UOL4X$(UIg8vtQ;5t}e z(73*ll#&$DcmYBvI%7I#gg!|)C2@?Xj2UgvFH#AEk1@g1{-Gl&j<$) z%wdcpP;7JK&ulZO!>CH2)UGgMXaglZ{~riC^1n8jKmf+SL`egg{Y#YO43;x+M=)@e zqo=edzgd;D;C}r5TWe6i@26V-w~W@k)}mkV++7WU73cr@!<~ZvXV4oCp7sAHdBjZW z{sml35tu=o06W~J8@`-{;V)e~3oHD?xs(zRj|@OHbK79GF<(09gJ&kqVnrSKG4~|+ zmCmy`b|T5`2B`SfN$p2ayX$R&~)sGVk9vh-p3A z+#FBg`V7m`V{A4MjYlTCto(D0nkdYuI;XcrWi9`&7|hjK?Tkgyup~`|}~& z;E2v}qOvc|5MyGBLq64X%|E`&za5kYfBhyLAyLstE??@JX#s$exg^9FFMOZmrkc!j z?+s3eX2~J@zz}uku^GY6`G?cv{1Al^tm3T}FVeGnP?j<^fJ(R48jv3@PcE(>9_m9u z{NhKJTlnt|FMnFI1zBe)(xSli<;m3p0e*CD_@OD4D;gX#nfh!QJ$|@&|KYqbZ``qs zM*;71P1Q2Wiu6Y?dY{CL3qtrC93!@19L+%0Xm~?*MiNn_JUExT*B2*;$Jg)A-u}<^ z#ryXKrV9E&Eu!+oQQm9_WAwxMhjJ5VA5V`@53fI-UY>sc_T>8ba) z7e}MO2@m|^EJe>1MZaX2q6h>inPW>EmE4ru$XB1wYV zhA2`{7WRwd;49XvA+Lm2b$wNl!g3Z?ka@ERtwK5V_gyQfthR3DkC#ia%O_LSj_$IP zR~0|>G(ySztzcH?M1*)c}HGNl#Q+Fu?T4$u0qh1xndp3WSqo;z5(HDlt8!y9`O zoyG}tY}3uKk&3DJvn2;aD#O!qK?xw+XwCPHZe<>uECDF1lyTHhNX zHxK1K5+$9(&#B_xAmIRd4OCVZ=T#XMS<$<5!w%ESLMd%eHaV65>?>aOtn~k;B)V@1 z$O`{&Z@AYh#((#p?|*ojNBMtSS5pL15-E2s=9nZ){J))6QwMNLqT0hi)<3I~h02Lt ze3$3nSmrq@C$83s%-~%!v$>YIe`-_uwEYwE&e28pZUR4q&WCbVdFHW1qOw7&KvlZ% z)}>KZdlVB1IfjfGyh<F!TqG)=IH5+H(D_*e?EAvyfbBwl0fqF7I=As z7NXR~4O*}z?feR|1pfkl1&mNGPc9a21b&%sv6_6D_0VLiRc?nIN+u9O4g7F&6GR6<}a;e^_+U<2WRn_4O^jXyIQj|o9O4^!8 z00rDq*QDTN))}cgD|_+MrtB;d$PcWQUM#)SRTLS!6;(Em@&H_|X4o{k)d`NByvT-5 zezM>%eqQ6cl*YB$jB64Z7gG%T`v<=N}a#4sXY5q?ksr(F};?0a?2|q`4hGjZ@2L4G#DhDWLfM!W+gvNxL z<8j*2qnwXT*Ae3-w71MmWE7thjj|-x&sGxZ{W;`QwL@<=vkRhCuOqToUJHma%s5Iy z+{3Q%b(w096v_$`dgb4!rLii?3U1|&eC_NMp1-W9nCIIj!!S| zMKK9}4SJ~-?@OrqR^=C;K82>=Ulap%cZYkgf(E3Vkz_)aFyQ;MAKu@W0aX+0FraSr z`0(oR`@_qVLf_nZuhEzP9zzaCP%0=*x*oBsjUE>Et{PtSh1 zD*^I`s%e0eNdt5liD@08m+#+R+-r;k@HGZVws-XYq7-fI42{HB{O5>JDLsQSh?BF! z@86zWAAY#{@#O64^yu*F^!-@_kSCH1hZ&!ugyT@I2w0$`K)%%90#~4 zHBS>AqWK2L`Q+5Mhg1~SXY4VP1%s6(ImEFH7IbcWS*IUT@0_QJ4mJg2fo9$}JO;^_ zZGVpF^#t)T3}f&g|51ANE0|D}g7z@*__xBM9`g4=yeSjY+s}_ipXJQ$=shW6d_ocX zB`)6rq&%b(!S`YU6mE*}bM*u{Am_kOmT(-~zNeFG%qW7<0<=H4cBq3y{-?9rgZ5Ni zMWk?XoVXDIEJi2=gO+)bpoU$qQO=84E80h+4$YDywXARaUm(=V{|hz)@T=0m*%Y+f z61$gQT($lyXt$+%aQfh_ALthl3~RETG6S$-l133HgB<4vjzJlhS3Zspq&W| z5wxel%P+1;{51gW)OqI_tX~7ES%d$x5dY&p9s(%ikZ0_HXi;g&0`T|0gLVRfm%e2g zfPef$bVB*=mF;)*_Ef6RuSw$1rB-uP(Vk@KSsUa@=jlC}Jr|7<&D3 z!%;N>;CO~e#zC8bAs9IHRh5LT8pgQr9*7xYa1>+?$_3KA$L}vH3Rpu)J)8D#JO+OU z!Apa10A9Za!TI~M9|G_XA)Lw|-@ZRQK0W&ZTnKalX7UPDb3;%BITT9^PQVP!2weo= zABCj~D0*_5A?KZ%h>wmu|Oc1Xfpn1ICv#-YZ4*Xtka~poV6)J)jIH29;6eIS! z587>(;s{X?y!=uy%fAMHb=g*R^hh-Hqi9IjV8k-B)763KB}pP*Z>Sa46>wn~qEwDj zNRmWoQzT(QLsC@P^OlwCtz*T%(qt_%r6ORM(HOMba*M3pmb!ZI@=Jw1`!zW5KR80p zd{6@MVE@(ruqzPmnh(Tb5`I%)S|D%4911ObP=6Lu9ZGS_p zd77xU%e3;WxnifDqj(wnj7b7w zGQnZ<-CA{G+3vfh6we@Cm}K`l*tr<&QxyOj<54H$I5vek8kD{1#D#yZBYy(#{;Xo_ zZZMKlPX}Q8g>?*3Gt6XMoW*ZLos)L%1Fp`9xwMBWO9l&ycx`T026eoYl$RG83o^)9 zl(sqjs24C<9EsOn z>v@n*RV#%|$jcxu#n#h&tCbz6WBGmVwu#bp?fw_>p&HF#%6a+&;s-(1pcP9Smr*KL zd3nF6>X~>^m1?gJ01Kx`=ny#wiEJ%|T4KvS@G!k3;mz`1EG4PwhI5&FWxr+Mnm~F( zM>V(={a6sN*`Pa)ygM&k_}>VPy2>kCULSh88g3OA8>sSBI*gA|3>WrTqQgN#fOIMf zf#oA=zzb6*qv&c%5u1`YD#I?8Xb4#QZ)#EYzc&P$`lmCCFul*!5F3WCR{!~1>nzXD z!#ykYf7d*|qZP11{~z>+!$SOLzqj*z|NE0XGCuvII##vh1i;b@0qfEw6~q1QaZ1e5 ztS;2jRYv7$IZ?Qi5DC;%I&)9T!RtIey(^`mY-zK2paA^>0^`C7@(VqJbRGt}Avdvp zMN6-BF$1OMItnMWQI*djECF4<_`U4IQQ(YvzL6joM9>a4Rj{Y;c#?aH?tY?#>zx-+ z6mv7p6?)*gom{6>A+K_cFV=x%@@T38=9imfpa~S!9ZFI-F%d~E<3!5eHo~xO^(!iU zS7@scb-3mZ%RTr;oj=I$_y@F%g!d?e0WWM-dc(rZWGFE;C_XoJkK$4;*-;@SsalFh=*kp*RY>g#Kzpg{M=MJvp zufPvKEmQN;L2XcowvQ;^$b2#qPO|nNxT3$ny+c zJd=4ot+fLDye|@G0d=O$Ejl*$)uc9%7XX}?Wxi|e%@a^E-fA129}*V7#cVA$<~7Kb zTMD9UL@n|6t9^A%b+|l#q{#W6gn2#fRh4Pd2rTRCJobS9IMpU+?Pp9Ov8dZb_c9o!@CLc;w`t-^R2}{I?8wo4ar)I9> zM=$bc_Eg$`AxaRNGyz80@y|sV;YIu}p2eu8F}OGW!?W@~4~OI7qyP6o9+^zu%mAP= z$Y%gD11=;RppLq6CnSoqZOZILsu)D3uKwR9A)iJl#57X|1kVIeXF=){P7hnfa>5xA z9`)g^GWByV!Fgzebttq~6bu)aFw0~ZiNqoDlSPDFZxhhF@q3^r@=^DyZZFkv>ACME zU~W1xn{*ID3Ux~I(}TT3@ChuY;}8Woi!`o7C}6R{;Hd>)Z8u=zSsb;38Otj~aNVC;o8MtA)o5^(y*!EWzpVaTy+u8nus@D0tg6 z0v5ai(&?XW{!azGKix1AD<)F$XMWy9^}dO{wyt(ITG05fa1oT-++(j#gLQSAC5?8Q z`~Cg_Ot8Eg`V`#w2iG_bPl1@C2OC5on`%s{;a5{@L9JEsNW4g|>JEiMch*+ZufHBB z=oM306qg;wCpC%#^R|!tjPohbjeI$8YwEChsMq5sfYjV{)Wh-W6j%?h$L3&looyPG zs_;5&o>f=j!&p^?4|`Re1JjHwPbRS-ir<%tSAeHQ_i}KD`6R0WH(cC=I^=o|gRDvk9y!!Ky z4=quRBt25UOHy=$$yTIFY^ZqlbU?ZCTB*@KNeQ9mYtbU*U)Ct7QelCN4k(IAbyg)6 z%5_$@*KFEUShcV{QP(o5#qxG z5Fmk9ksv?aBN4*a{X+tO*&>HBC?VzJshJ7DvJ*g!PHBUAEty0PO5++$ff**p({>ZG z0}i3*-#;EF2@n+mSEKpr;SOt~9z_M%8bv)VFw=*nc81 z%Kh1YW8e1w`?KNW`OgP=K0o_Urs27b{U<O@z~guB7s(y&#$zq|d-ThJD86Jt$4 z$U${A)+{i$GuGs2v^3WAzUY9Xv9WebJT7Cc!3cN6=CaoA9AmY)_FHr4c5QIjYCvjMor{+s%APagOG9_0D#>_08}>n%(`EB&l(1y-lIeP~1Q zE^NSN=3lb9596=s#l7~QB%moY`DY#23gmlCHwU>TXg2Z|V5{ivY#8Q!R$0W={youG z``W3nb}$bM*t-6qy`79lLqh|pPxM@`hg8;WWPSBxQrcEhAU^0hj>daB%Ahcz%R3t)Q7I+~bOz!Du)&LmoZYH4HI!_y5@Q%m!1 zu(|9_HYe^8rOW8NAGFn$=V!HD8&uC1vgqx zi+g8#UeD?e{;z&w>290@<~^Df2E18dkC9!5*2S!@Kv`!l@3D6|G+iYSFQ%i}+|UNJ zZr-B<(qyFv9|2it&|L+f{vq$~!A)e1p|Km3` zRj7Z>ls{IxQunhjfO=@vueeB96e+DZ4z;S^dPdsVl+W8f-OrM#M^#py+*=4D)T zT%pDp-%Ty93AAc8PNS_-kt-uDs&vrg>~sMPmbl4kn?{B%SH66@KwRxAv2NyWstxTE z`eLFVc2|fP00G8OhqP|oE8}_7+UY}z?Do)`YD1M69@PfdQz`$q6i3HD!{w4+sBp{M zpZ3Rp%)F_6|I={#nE&TN9-jaG25(M9T0a~i#yh^=ux<&~=v3tVJm6}=Yectc3?RtJ zl7g6o=uAwJoe=7nViF(x=RZ{fQkzVyB3s@|nqQlAjdnfI`}T()dc_?`Pa~XB(EH}> zb&vh~_ny23sYa1-AYrvcV$~Fd&$cO!S69Irh1&?ntBX}k^4HHlqF~GOh93aXm)TfR z93YipZv$zte*Q5@k+^F4G|#`;2iHg@F~3GKx4C*q!W1f!o`MVgR#VZ^)6z{UB4_SE zd^RC5JUmajAw10LS^~ij2(Q-k6!-?$vqp0b)9|*V$za_3XbL2(mP)bLd@vb=D}KKj zN#CGUifimbeqSN8GmgN@P2vM=>Zx_l3mGFRtWuQv(ZY5jI+7tOU=m?VSi?E6&ZGmJ}#lFyh2N+V82GYBk+W;V}6%ysn2bSo(QfdFNNUsDtS~1ajeW$ zgPAfWCwr~Juq{ERBq0%5?f%Aiu-PHZ6ks@7inu#nmWIIl&6Z^$5g%?@wwJyA>g9K* zi|<6AlZ{v2?blt!s_VGs8m~ADWqGx=Tx(5MTFu(J%VqUoiikjVH+qOBAn#NS(N_3A zEu_2sS7ZMNY1kJI-EMCG{MmQ@zm)&ipN$^xe|eavdZpyI6bETI5OY8iGs|rhsnog+ zuDTdhCGQnL&tE^Qb;h5oZ2pEnKIeGCI4d(aD}8BB@2|i1gEY(z0Dy5!D8C_0a?Rcv zMVmpkK3)@Y-8*Hbe;>ygg;8|Ge{7Rg3PV&b+!q>1?-cahrfjia1f42VdRe4C(p^JX!20;-Y%+Esjt&coC5W=&?o}e>K>_ zP1I9fbWsI-0yM>&%M>l~M_I6!ix>rj--OLdJACH$_$-(NJI+Vx|B}V;WPHYVH9lE_ z0!EnPoAL?)`4-6Q1aN@Pf`Dve?JkLm#bYF=@L-7%uUaYd2h4nUf2k@k^s6v(F7 zPd%oX1T^X$aaAqau|N7t_HPcg_s;{J?)E)tT^^#Iy>(N>gb2OlGw2lj5PvH!3ob33 zbOD0_+|o5k@xS>@8eE@nO{-ve(Ke$feN7@%T2#MVc9w1T5avMdWVg{JNKrlS4pAbn=!&+szqs+O`{3G|b;bE~1RUz@a;hHoEyTh(T zH!#{l$_7*JslpYp0;D z{y)UiLjM0P-x>fJg>eYeP=?0VO>sGkR1NJWuevDON>(BFOeo>plf)oINkn#oEI~mo zMsPQFaSPuxI`I{>;w* z>pjN*JynlloFzSZ_bM&VzGBEp@m-S@0H zy%{k_;EBSoYoPL#ec`&ot0Mi~7dP8PaAeLaq77!G61Spk8&Mf`-+=ZqPK$cRt)5C9 zI{NEef`@a+aG5`C6JY^e9uogDxlHu3tON!z1Nm9e@+4udNo@3S6JpXO; zc#f(mgBN)3iMcCsO=NXko!8J=y54WU9X}U@Kl1YbzNZ2Impj?_sQ=sk|DiV=Kc4@6 zkjKUU<)F6_0cxJqNCCM8w_gw_^qMSCuWWIk&^DC_ISuzD6g1LHDC@u$2GXpUfWpKM(Tk;s0{bJBR@&r^|k6AWJqD3W}z( zY*1euB0|mJmXac;?|ub_)+`qR4aA3nQXxgo%n|v`g-PD5N15{5JvIDaPMe<-lG0mk z1McJhqp_X;(eobf|9hCn#sAr$gC$7;1S@=lVii3nCBdMbMZjlJjU>2a1@`iPP7~w$ zH!2HlT4sv8RAUw|5VvOR;#iLdo<=A(VIAt{dzKJK;He5Tc}0Mr7^Vm)0$CR;&Ho?0 zKV|>u{jVNS9rp@u&>=90Xe(S)pP3D=6C}KbEf)Y^{Vi?(>h{KMc;SPK0uH%aB~1 zpS^tE|NFOBHON3yY=6pnKt|`8v3dji@q7(adM*zH+f{7}TcB&up~i7l*#S++)Ii)< zo2>|=|4M05!~ba#Nk!|H5?~Mi_olwh|7YyKNB;i+Pb>Z(hbYYe6fw7et|3+D7K`ZH z!NJ=MuF$DN8WfXC1icmlfxoU61^iW;xY{xnOXFpYyvP_!NpZaDNt43PvOtqaeNpKY zboIVST4`2!I#9VADES|_i4Lo4e-`NoYu5h-97?%pZ@2KhqnGVd%XYgVV)N2 z|3@(&09=qQm4{YR5=H#*3S8}3`1x#-Ro=i=&GDbtgwQ=}yb_?U?(y_5_Suh5AVn+m z@mm~+px00T@sIF-Klzlc;czlN?Qyp9RXi z!y}OJ!+{L9WRREwoPms{Bwj^3kRnDtV@e^Q1i%}D!*X9{0Q1x;DG9d$#UutOzQHMp zHz=lqga3`=B>`(nlkD{PI3z(fSYR5%4Q8ElT%098UXu@fN{+Xjb5j_HeTk*du=KT( z`mvkenkhX#5B5~@e<3@Me-2;*7dX0Y4%j{Xe>9%?w*S|Ey#ME69?t*amXZymIDk>K zY-Gx#M$zy}E#&h8_jm6w{ruON|u&GdE|8(k4NA|+ zCV?pey}x`7d~Y~rmRYVgRYK9=6s`W6=WuZhh~WXtfhM(t%dg#OPC8S&@5h0*>!cvM zn37})J)5ics-Yf#1p=~JFgD9N>qCku0x*hzzSfuqsg6){<}5K6d@vw!0IA7)4bEaw zX~0n2%m%{Wo4mp1f%;%QDZQ*n_FuzMK##4rUIC}?T+g*QpmaW80}{qOsw`yc(uqyG0G59c&zQA9p~jBF6#8A?HK39nHP=vy!(;kj-2 zhBe=}059HNfQ(HGyu<-dGSg5)G{hz7-xc~DY59j~Sd58@th8rj?N$p#FSfdz( zh}kPInHq~Tu+31|km1`pSAodN!R%7fG|Ec0gsP)a*IfPMflfIs+!pA!sSTOryi_2b zX90}3BrL)DTzO^f`j-~!ZFIjc8m#~EwB-LAP9OJw9^|Rj|MEj%cc=TQkkEa4U&%SL zN9Vhe@M<-*mjs62zzD_xN?n@Yf0>3;zy7yL5}^%>DU3wY)_b}Cb!gxJHuOi+@#Fe` zh)1mdBw^EAUH?%YcA0Z2m1{c$EAhJFnlHiY6|um_Ux5tXAP3SUf&p5SC`2i^fhlHs zis|d(PAOSIdEO_}6WfWsGD~P)I&|~G^=*}G%ik2$3Eu=qX&=QDrA%kiS|HKkxUvO$ z12hdLA>oy!_*C>tb;G{y3dM3d%Bhf|U$(qat9&RbfYfS*man=(O*_dTu`{O@HemVZ@(f)sshclS(QMy7ru0J9H zjKq!Yd1lo(6xX=(nIgYQRiRb`xKXLvFm;&u5~OkZM?!v=?|y~|CFdmB)z)HyxT4Ba zvcXzvV^OnbM$|vqu-1n~?ael$yhnbxL8;)k7F9Yr1C(xayi*rd<+E`0$vW$@Wv$3Ru3huj(Z zgZT&Q)<4rtv*Vuw64R7K5lYXBJ1&?4-;^utTmQ4Mb^c>G_9l<^|ARby{d2hloZ}2W zV7jjU+%zUIuRGB0Ng43Vd31++B@T5<0Y4_<;0o0UT$=$kcn0DqxON<*wCJ_k3>Q}! zcn8)KQ-`(2x+*Gxo(9d(D@=k8+vpOl*1yPa-Dc_YXRrQ0vCe-ChmYq!9_XoD|HU}l zOJC+yZ@ubyqV&4;E&#V&>QO;w{VLa>w_D&5T-2^_L4gC6dsTy;N_AhkiX*sawTN%= zG+6&K>vTuq-{kz4eg1zq8jT+Fe?7>ft^ewA7961btsxIkDa##VUkiK2afm)1fhU-v zO;xIQRh*}Jr)ZPscu^mol!+|y6CEFeQKc+cT*Lvj#7A^C!a>kYA}%Yk5S0ivwFq9% zg|&)4)?ZH5Ktpj@bh%FF@85=be7Zl)`F}^{uZjIPwe$ZDhvUcmUk~z>`M<6F8LwM% z{c5$Z1;cl9e1n7T*B%9cJqlwPS`%&2;PX-;EKz7Ek_L;fR~RLGuTU2Yz_u&7jeDxa z`tPvv#j|()k4B~V|Ka2Q&x1S_>)&4aZP&bQ;Wr^iAkWcf>Kn!R9 zPdvMn0H+`M&yRjt+$0v){OalK_^Yogz8g!cif`~1iu$4<4raj!DjAfjqjNxYmZL0e z^MZ~BV}tdt9l_{k1Mai`O837E$3ySY{(F!|TmSBH7VMzihRiQti+KR#7YOa9-<2e6O- zm-GMov)SYR?}I!J{-1OHOZHOm-wrI_b_FCT?c@ruN&CFr0jiaC?to_P)(%VTX|gE! znK!za1!W(IF6nb%b$$>dfw(F69%}Ra5AZbM|0L|b_y0wc_@C1L|8P9<9{K-6JUag` zjk8q#jrUE(014|u{Y(BQY>prEe_j1e&o%cER7>50} z<51!mvSJcg(XKM4p^2)wMLBF>T@Ck{SHm{;Ro(%bg*9yCd$iKW3Q#4FV-DZ#W#nZn z&c^S&tM@HFIvPLUrvd+$>-65@e|*okAdyDRH{V82)u-)?fY^huW9l(kefCiVO}w?1WYgJ);y&1b2KK0d#}Q|A8!hA2J$ z8Aj3VZ~hd|Ui*JypZ}kXAMbyDn1|o&^gYBeKru~s3Bj?r_gPE%5#dD&)165DF#s1# zJVX%?SF7<{MEriCXvc3a$`9o)V1`0K)VkfPZF;nwm3OsXh%PhwM2~nTv zMT~caVV}fI?Mu-wTb%NIZ`HYqU>K4(8?f4)M83Ox)r2_K z-67669X*@Wn7=rou{g{>N-`a8FewD*_sgAfjU*S6?Ll8 z9_qf?;z*^@ikEn`fyw?^p1=<=N(XrjhQm3#3k(?wQbZer7sVUGE~NWDd8okiR62#2 zt*3+=D=-MiHm;$_$RL(G?W;yjs8RGmo3pH>g5^9YjHxf zA#sM9pe%~s24hAcMayl(0qsR})*9nPmuxmqg zgcpM?#nB*0!@)KQA+2ik??B^yeDueu|1_WZ(ZjnGPS%e?7=ktGL^# zJ8zpRv|eK{@`dV#x!c<2I~4m1*Izx=ymoEE!scM?I}n=JH1Aezfw3YTa~pcy*SA;> zl(Q`*E9FEK(UN#Y?gXs>)DUeD;oy2rwi&uT<^onj_o0a^3kMjRv9=`v}#+>`{`E3N0h+SH>FzSPV3_;8-v|1CQJ~d$O zLup>U9AsSYY^aG=Y>K@)wz)al(g~Tyh#ki%yVSo$1I(TN=Dk+Lh&4uKCKYLlsw(|Z z+q$m)`CaVlG=EC`KOtdu{B!Pmx(f-g*Z#BbfAgoK(c}K_gFJly=gk^txoek){V-!L zz1og(0Ny^Z8_yKoU^e>S;f#`W_Y!X~<>On? z_^Pr3aE2nT$eeQ5@&?jiEyDUw>wV#3yauZJOF6W<({m~?sI?<8Xfu*MdT-QYtm@$b z>kJd?iRpaj)539FDK7~2kAnqPi)qW}t^urDmz~%&+2p^}QYEyfyhOX2OEpw$vnU~9 z#RzL4e`|()$B#??=i6O(paATV|D)+_YRmu0`0@Ui2YI^4|9o!TxdLEr$nMbq^1_cQ zz@rMVM+Hbx65#-5?waDe9)3+zNYMfNJ_NyPCoU8d{n&er#0;<8!Om;wK_>jh$QWtx z3LuB2FC>a^ym~9PSB>3p_YQkro$s%+RjRE}vE81dIINgf>YEUf3<&R~CuVahWVPOZ zI^kB3f$RhHOI=H!k`xTGEf00y#_$H>2ri-`AizLyTA@E^l?wbD`0;J=UJQPXs$fDC z)abCT*qa7WDoz9xz5S?+J}RT1k231e|Fkfm+be+k;(sT;z5hR*J^KG2=INmSUCFs| z4;~;R`b?I3a+BZ8sg5yM@{YKvnqIX+F2Cv(PuT{2LX za#KS?A&;Gi(#K!%1PiPm6!T#;{cwZQ6o&{ zYS7!$EB0if3B8T_@tF#Ep!WkGYXPnYo(fK=4WEtj(CWe}fymgZJ_VjsYEpj~PWtdguVCp zkKt%qivNF%|9GH>b2y#X)8jN0gXgTMuboi^o)rx4Dc%=uP93Iw539}V@B}KoRsK|%X z#MfA46!n3L+VXkPNE;8kKWW*Yr+OcVbMfaWrQi@e1y9t}5RRJx{&>!2tvtV2r2NzR zz!1wu{=h%o^#63z13emv4iN6MehGv&=k|&EDx4*h9BUoKy%brI4W-d8y1Q!P)KR|Q zbVMorjzl3!dm5g~ZgV9$U?B43Bu_fWTRiF{wU1l=%S;iMJX6H2w19o~-^jP)KWDSi zqx^r6r)2*b!+r-gpp|f>P8l$YHdP2rdNsAc{9q{u=Hzy$2u2}IQ7|EQF&E92))|f! zG&D9LtLVQcW70s?t3=&cTd-!#qp5kHkDLD|H^Bq>|Axb||8Mdb|MehGiT_`!?N18c z@jYk2H=XZ567WoL)%-uX3HI`PWh7j_JFmSV)-VlN>72bkMZbWj`Ia#!hkqBD$M}mw zY0B|xA8|%;yyES*xtD&uswNs3as5h0UMk<1jh8XmOk9`%)rMXhE^cmpm+&^`;G%1d z++h7jCjMDIZvLMx;2jBo{rrDy^Z(iGk^eu)bFce9A{S$w%FjwP)%1B;jq~&0mR`>% ztwWt>-!xXut9Mb}c}0iLUN{2_Y~4J8yd_QDfLhb;Nx>IGsUd1C3}nqmE&j87-27j- z-X0+Thd=R3=YL0&$Nm2Yc}o2MiVyo8Fn{H`?VBeLii>R6=jZW_>BfDMzb{y|;6Ndy zJVS45)|LB^EzpfQnB|22Pw5u#vRqR+xEqQ#QQW-xh`+JKn_QC)0Vlp{B2EJ7BIM*W zsB=x}=o%X{295V5tE>UP-Dv;8B~~5(7g@gUegEGd+V_9@)5&A}@54M5{9jx!b{7Ib zrbe$b0A!&SoKlciagS(;SBm-TWS0E1!7YpXNZYbYRd=shV4&@08K{OeH4e;{-W$)A zgKeT~!F5&r{|dJI**tsszr2m(Hez7!{_nJO|FiEs?*Bf>Q{w+}*w4hU-<=r9Z*^%P z4HWWrGC|cUiw5-6c;KLfl zV6nwfh~pJVU~mmrC>tDn33#TEY@3KHSuNn9~XcYFu2|(V2LA?9eg#& zJ|qWU4HoeF;Hv@Mu)j%)R|jAHzXxA}cQD0dn}LgG&$EL;k`l(+4hA?x@K_X2$-fQ; zH(5YJbo_hZGjjc(e|Prk#q*axyclf4JI7JG{(W!ak34(*kH-Gv`hSS$OK`qs%2Y&F ze_5n|Jvcb{i#W;jbx%x<{(RsM{BiHEe>sMKJ^1p=FTqd7hkrg@Q<`L_$Hyy7*V_e? z(#JI2BCa83$2{jwKsE_X(Xn20G#CsFNQdC*&>If>-l#vE9v(1Uj5@Yr55AJwMLC548HfhuroMl^-9kcR>hX<|>8@W1c)VafkR)>xB4jZ@cFbCyB7v;mwl=~Lt z!%E8K*qw!;x=H6^16N#cmbv+Na1+U~YDP>kR>PXH@?9aRyVehwC$v8+oopQPAc2hjbXzu1lu&?x**w7@Jqyu z|BP%9fJp*Ef-=s;BYcg3>a0=A)iJ7B9aBeVH5-qL&YGB=HPt%HpOrdmNz%Z&H!npp zy`78XiG$>3VyuGXu}Sizp5!L0*`GI?Y-))7`AL)2EMd1>EB?G@t+@1?&gzY&-RR1V zKk3$&E%g(>PCs#}C!MqtiZa?C4MsNe8{I*py_OTmV-rXqdPagw@s@9J8h!&)#JCC+ zcM{{pmZ^S>|1P#Gj?Fu1CJGfc@5DQ_czTL9!`+g_HcW(&0lOc3HMGX zkOpfx>U{>4WC(;fgNq2|-IT3iib8-B*$vJ3OVJG@S2uW$Zt%Kw!^yy(nLOJw`(b3Q z^KV{1Kl|Ios~13cPQdqU)pLCX#W(#Mm}Y=%X@)}t$dbJS8485si*-apojdOc->dEj zL3c$@h!35+LbEjmq`JOfX7-!Eg9XCz3VcXOyoz>mLnvf+jZ|ycq>=0q^BtunN>Lo3 zjAwoootL5w#4&?&mL!?zE3cj0^E`*#6Ag3qRVQZ2Yx-7S73^}@AD(n!m;St+AY$cf z+FZpi#fQ#q_N+GhdYdQK{0K;zqJXkVA=m?0lZ@J|gSUIyOySDgJssDyyNW}I4;|Y* zEseFOw|iXTl@ST9D;vw!f=HFkKMP*U%s{4^KpZ1E52me599G`hA5+&nn0B5AQ)?bf z&3Q1i`{OLj*wTLUcL4J(QtsLjjUBZd{E>U`r>?=Db{_nRZXXFqdSm^Po)CrrZYhay ze9c--62|>0Q8`aUn}@9&S**OX&67$iMttbp=8@6niDt+Q`+g@EkAE_6#n4&#nl?Lx z-=wqfn^?kcq6xoY-*4^c5N)2d(tla`nl?Lx*rc-%n^=r(VhAy>n-Dvhwo-ao`IdvhqzG9{$Os<+_>Fts4h_oOI@oW8LK?AnEMeCXVjkoLA zQA>t2ax}4 zgpl5THOGbj`2DMQ7tb!vetvgxb@9#1=RZGt{_f)Z`PC`t-4Go1q(>?y;Kk)zfHMHI z46m4x#(TtXxzv0&yB@nl)VQ;V8e1Z2tcfVU<8G5bJ88EHW+!#4z#*c>oki5x5>aDK zMEU)pZHG%c3v6&k;Wf&b?TzD%!YJYf$2M7|FhpXzDK|7SXL}qXV%%9oj4Tl`)kvlJk8H8M#>Us546*SuA;^v1DH}eA-RMmd5X_#`qn%Sn{Yd zOCDJ)d1SEUVSAR$+dOG!;Lav)19#+N!=uh@cx18Rk->)jdABx?Tef*z*JcN!9d%~3 zBa6|F3`X0v&BJ!WWj37KJ1bm`14|@*?-`;L$15#Dd`VLE7Hkvn_UaoDB7V5Y*?A6* zJ?hM{M;6B(863OYE~-Bpw%P<^}m%NlFrwMmsj) zw+TQWX$t!=UFE^Kve7Lkj^~~@L)T&%c3vz)Yq1Q?#WJ)QKu7|yflAj1ur|U76t{FR z{a_9G-U3KqnjwB&5SwG74DXO>!yq=*AyeP&ZX3E*(y;SN@=G1!RdH$t7)@Cne{p=v!12QdWJIF zxXl&51^((#_CY)LJDs`Nujf*3z0S(5XUT2PP;R|>#V&6|R@~|mSFy1sPFpr{TGvE} zSoJ!KRnHQuo*`DfZcc;gxMiEib!~P?Rj;#D^(-Oc8B(>QyKvereutH>X|qFubdKGa z4~8?V%~FCe@zEd7s|2SKkW58@M<7Kpxncdlp;Nqw&=J5q0A1ZgDSBeqlCce)jE#|9 z*%RzT=bkWRDTAcbDeNzEglP0$pwHD75E;;lyh5RBv;~RqnMMXK&VcCuh=f z2Xx}z0cDMM^=C(gU_Ka*t^S=wqkF_>;^m5H&qyMuJ(4+ z2IhmIZ?$(=+1_qP7?^$}x+1r`CN0BvChqVZM!c&(I%*2@!O*k%!`J(xo2D>ncPfLG zuW56&rocXQZL>eO+N^5|emBqk#BZk&PJE|E$Ov?_x#9j?Rhv)DHv99+Hp_{u6eAvx z8R8`m)1=^E;UWOrH2QPKSG_u{hU0&6<;dBbs$)pv!>!I5%&aDz=uL8NMwB*$`S7(A z^%Jj#P5UmD&hMnfdRvuT>{z?R3^L6D(Dq*uwc+f_=o2_L`^B`6M29P9v1 zA_a_MV+XMN4L^fiB4*&z4eu~8eJv|DuJle$IcQlc7azEzF1lqg?UqTJy{RwHNa z+}7in(``MkKE*9Q+-fP>({tRZq3zVevFmgbr$ASgjQ1L0p zoS(lI)V6d1jK|_!8;Y}SimKtm6ah0Q#?8T3Aczo*w~5HPg!#f1NrZxJis=p{%s_=; zfvGy1A==B2BGDADRwz{g`06~NYY5t%Nn+)7i^l@iGH`1=p4S0ur&o^0qZ(i>4fyeJ zRtKylWkZ89IaUV$=Cd$FNyZbCuxYni2jZMsOg;>pbKa#Mc00wMFK)|3@O2fjVh!El z%(|0aaVe194!!5SVi^*?u0(PdTQxZ@)vmK*@wCe7&GU*-Z^g2Bj=G+{ev5n7;RcJQx7=|axp$mT9AkUZb!<<}u{|-z)-Q40jL0+O+~yJaiE+FFIL@)2Gbdwmo%-#3=+`>) zJF6c)6^hQMtsakFTrahTaTv(~l_G`rLCaHPBloE>*9qXx2Y{z$bkNK(0dn@F+vDX8 zXft+A-qoRBXQ*;7i*9MTvfY6eQ-?k^?W#{rO?_%=>QnaAz_HYtl9Vi%O&7r(?*WQ8 zh-}4%{09WDQ3|qMM$yI*zdLm(L({Ix(9~3hriL=)-X5}~&!naFnK-4-)S*31yJ}BU zQ+t{k+LP}*p=UL4+)kYxjh*W3)S*31yJ}C?0sX0=J-Jg5Sq*G?G;ZWR8s|E5-}%VB zb>e<%aADt_cp*bn?cIv)n;U+&YY;)a$#egUv@SQnpC!v_c^-e{K9BD@j^Ft-{=_uG zrv@k1`axs2%3e|1TM^v3%$AA6q@Hv&sVAmMJuyt`ievQL>kGCCIA>7vyqEr{r71b$ zrlf10w=~g5!bHz0r6mzp-Ivw-N0Y8Gx)W0fPX<%HFDqlD#kTxel8APu+n zoUwk9&2Ogy4&9#8kt?ui)H$$eWCb>j^uQ*+?=|!n4yWxLqQj}vAv$t}JB>PqJMo$` ztC1&qBO7iw4O@n04&9-dBUg;msB?_d$ck|q=`l`vBUOl6Va|X!B$RJO`h0aWWh0C; zk_Z>6b_8@dZKoCur%uClla~6vlF-&gV4_1B`0j0#kt>R7)G>;R z)tp=1ODrvb%vP<0*1l2#bcM2yP-ABM>gYHjOd>SI&^` zks~5%)HNc?3dSF45mB-g)nvG|$j(Znr9;jtJ2PK$%4MKQvuzs5BOdCwr{D76tM5Me zI&yeIM_oOkRywWGKvx*u$9LRG@%)w^f8Xu#cO~8GoO8=cxiuQ-Dx3Sy%>0h5ejGcuf#yek>D9B)R3 zOJH`CmqU9{ye4G0@)UJWQ)Fc+8k&PLc9Ky&D4i1rS$Tto=AgLAs2-H=>3Zzm@S2cO zeSOJE*Xv7826oaQvo~C^=*~1gU3J^GBBV+0$qgrwGx+<<#{wuFgT6hgez;Sd(Iy{aesoid z-Jj1}*=O^)!#tb0#O|!K*qvEocV>%S_hli5i8gPy|2%hXKhIp^eAZc<&n$61v&FgZ zIG*tVr)af>X~^#Z<9CCt5S91;RECTQR4(c}Eni;Kv#8e>a48Q&yuB7@|K44`lJSCU zenJX9AP|!H&y;T%Jl!FB2*{QKvXocqJDXI+31*#@nwhE8%xtBm)FM_tLKHDm72GiA0Xra{b0N(F|Gc zI15soRQtzg4t;0VRo|JJ`p(SKcPa)=Y*gGNu^qYNqPI#hnsrr-W~O2^vlJsodQx7? zK}IJJ7^^ro$(Yo2o8&z(jtS+*g|pg+LgKfn`fXzbZf5#T0(Ta`ak7`^{a!elv%vJ?pA!vx=7DVCW6y02j{X zcoKNwz+P_`+I1GJqhEY?{u*p>n#!S_v^qR9pPV?Z^$oX4gabBp6ekK~3?V;?XK8e< z?sKUn-L(?4`wX4LvnOeBQ>mz8bsgEJO!YMG2jTT!qa_rF?Y@#*+cG_71b0mOQ=$ZB zo@_`gvy3SQ84gjv8X?A`Rd~qUb&=J~VdKoY+Bh@Q#+g|*PPsFA#&IS{nI;5zSmh<8 z>pV}3kgrP|As*_KL)>3E^W=@E|+fm8yf4JaX9@ zn05w+>msa~!|I!Lwfd&kWjHg-;w!Qh>(lf#%4oU`s7QLjCp*9UhVe=*K(^?rVk(DN zNxgRGx#q6pTvOMLI@8WK>P-3l658UQYFFx5-I9wal2X?8{P^(oN!Ew7za}zVLUa>r zc)Nrib61vQNo94*yM|bZs-DsGk!jC(&YYdHjTB|H2wlP=;&;D-r-U(id3#Ayd z%nlCzwq2k!MigbI;Qe2}_W8xneeXRl`b?7^2M3?PYm|@-QUaa=EsT!;|GdT(tMR9y z_k!0s_Wb@?7~*)`KNXGwwb(_>O!)Hz+*5D)_bK=!U9}9z ze}3f<_${eB0OMVywVQ!8O8NOeX6&+$=?-9uHrW6?hrznqM9$V^8|7E6W!zVEjdlYe znTlKz0gS;yY@Q4h)y(MB=ww`fftdXN#F?n_NAW?EX&N$+vB?A@R=-c;Y`}{0i~cx# z;Y!)2CzFy3Ae@gO_yiV&u)%!4 zgi(eV<lomMS`5>grle;oare zBSq?_Ma6Qf8?eIEwZ4By1Sb)4fT{dqy+H5+Q;-&V^J2%7DagcNkjWnIOTN1Lj;$Iu z=7Bi!FSxVDP&qe!4L@)Q3R*)*-@pt_#})9zhdzo~&Cmut06(r#3>Jj0wSj};*4iW9 zGc5h9YKB`FFJvn7y&b(y4Hi9OviY0p36j4v0t>njJIy|H`Xjk1&g`k3%-KFlqw z1riG}ra8|-;5`n1PBZwvhPe)Kyh>4)HCT%<2C}f`E4TTo3ynO!UV(-w@;a70RbYE0 zA4qzQ>>%`VP=&;!DcQ1#&0ouleDl;U zn6CNqy(D2nX;?vbE1sTHxR0T0(7Uno9Fxt7j*I_|MEr{CHZimK&biP? zlnKwKz`M&=19x)<`8K>MxDDbN5kIbRu;!CY%`H|_nYarncTEG`_G+jYV z7Na~2L#6_Y39vv*HYaGxOHv}RiX1-&Be}BW*$%sqf7>P#0;x! zFGF=DmEEU&t?)}c`tT6^5J&1tFqNkc;0&OcY*%ZW5Ib6=mN_!HrI2ebBGuv&EE5$i zEg2PdSW>YW0#w@nYD7q?#awfw%O#F6-BqlDXK0CIW}T@b0f{qy zAsPkgmOFEP`YA=re-;}D*ZCS8V8S`{aX{h#B{VzEf;9@a5sp`VbR*nq$IP5v#r=eY z{g{O4_)CSW596>8V~YFgjbzeMf@5^Sr=nwai6XU=s{k@cwo!CRA{;!ojX=?7yU!4OU7qm#vO8lD96U>M9MC!>05 zICe%+m5%wt4N6lc#<=muN+>&18F0m_;6S#NWC4ssOY(vJi<-iJWvng?0R-QX6#tvm zjhG1q&SXUir!Z4%CyDL`a!(WsShvZdo43_7#zxa()@Z;RAg)4Iow!m~PP7Dk2FTQ{Y@_p+)9>&EvuqS|&pWY}#qgepOQHvO=;hc7@KXZ5dpn zUA}!Uh0&h{h(Al31}3dieHs+8=~deoXWCb0KZcrjQ{5p@2{wcjR=_K2@d7+>H>TFU zg$!X09Te}i4Kq*#&u2}Dl~+NO$$cq4>}feoNfe=UPggQA4fG;X+bxo$9;=*B8KTD_ zL>m%kh}K}K)Y7;at0f-2Jw~^OPsSR{UQy-k`p)iUq!!n3bRkXDZqg68!;>N&bIuyU zbdpctz0YvG+VVuiWC=o)VP<6}B+SZ{Z*Yc5{2k61r+tYx+(j<|jks%Ez`x=LghXku z7R5m%%3ClAk575agDD3IOeq$!MB}e9j#NizjRddtsz9q+hauahE98P+^ri)T13v;; zvkv$+hBpvLd@glCVbnJfF)fm!)y@UioVs9}tWp>vkXQSbq~KYOJ3C^!Hx89C!ZhF4 z>H@N-QaT)R*P214@HSk@LAXMdfPRRdp$Jh_u3ms1fM5Fn zik_qKPTgKh<6Nu|k{Yv$A(7jG}vvNoe27&#)M)?^Mp{nL=gTEbyou1YAsm2}BrhOy38 z7;+@9hr%lDBEOoOY-7Fy^!DnTJhoSp?|hHnE!xFrO`_|mk$L0dOfEbU*-@^%s_;0G z`&FO;8@K~0%1CsBK%7N{TyGP#A3LMQ>f^Jtq< zlzxlTjP?Lta(~XNeDecveSj|`qv(&AuD=r{t7zqiu>;oPx7M@aFHQ;O(1p@XaB(JiEI3@!2W(^MC#W2CwDS13Vt{ z*I)k(&Wi&4LGjJEDcQ(h01O6dEcpA9cvm0aBvC~>)K?xbB&78IloESe{9Sl=9FVzQMpFDa5+R3dlf3ak91j0jB5_@KC75E)mJjuTQdk5-2)S zcvfZJa#NIjzy;$`s%Wu^!kFe_rwo(2|} zqL|_o@e>vd4~`49K|;fsWWMFaq8Dp|5XOM0BB}-AX54)HRg%sjv!%>4raQ(@|1Pz8 zc^@2#X^O?$V?={vRx$&9uz^X!$hx>>rBjs2s_Z-GvA18lFbw+=eV-EUnnE<_a|-$& zFkSOM`%ut*e3-XXF|CSz{;@bvqL(ZZUhK$LWbV$nEhXT+gH68AQI_1Ha;(mxhq}r&Wnr|}olq3) z>P^@{9RFFt8R(=A*rz?#Z@$%3ZJB=Hn?Ou?Sg`TqvHxKek}V}nAXiQOvn?eN`=)h_ z;La-kgkP;iQhFq!g1B#PZPh|<$x zobzX}VRdEIY80*f8~L2EVJ*vq7U6}#8sfOWfEf-%a3NQL$x=`!E6A;MnnJY1*ZLPG z!#F2QV1N`?WdpQ<6bC%Y?3}C28P}Qf(JuO3hsKYCCJBl|0a=_B;YbTCSssg%*AyQ$ zdAC*R6HJ3Z(O1mBrx{9^wuTN3LKt;q%cHSKCUxA6!i(aN2U3=Mnse=+ynpgPOxD4d zWFLKmnOul}eClDg#EmUjZayuEtKMY3Rv ze3pkyv5pA^Oc<(DH-G&a_yd33_nIJ5ab+%vqcjIG^VQPkrSn7&k{jYo>?^mx%8%wY z#>z`K#wvdlNyKZEExoLWXHx<6Ig*@7$+J?KZdma{Qu8tmPG4LFgO+8R^5#u7n^8)v zg8DmVGNmT((`1eP1fdIUmrRGaKsGn={@e6XmG0c#5wXsB0ZRdYOHyQ%g^cDU2~~d_Ke~ zyyswuQQCbXS>s})2R zh`huRKYkjon8t+Ja8recPdR}(!b=qF0y|df*Y_p8xG1Rxm(4?K-%edd>d>^+XYFE@ z^1iJsG}xw9ZivA2Z1S}PV__!<-wf9g*`kze_U-GJSFGqZLt4NlYrwN_20F&tJ?H$I zRriLo4yM~~vqDmBt{L!KY%|Mxd$5%-l=qf>Z!jB-)aLSZG#if=z6XQJbhtQKPDgMN zj>07zj;F)Ye%ODCw32y z0mwN%XVC|^%SyCaamV)1n6O)njjFg0VHrtjcsOsNYIG*vBpi)L9tvlHAC5;$6#6IO zBJ};)Y%!anU@=_=quJE=M~h(Whof-_ha)c-dqX%rnN0Q(qz%spl3wRsxyQmbi&u$> z63_us*1IX~nA$>8mBLCE;$woPVqt-4ZvR=cd%7r>k0F5%m=@E5@dPNs`t;Lj&;ych>)5=>{yg%=FH z`EqpPji!^Kj~3y`pN7jJoQ2bq#dtVb%!BdCV&pZWN-ck54{hJ#*9+fHLu?qPlb@{6 zFv|!P7q#l(vrTI`emir49taiVdtzBIz1IkaKc<+XAL2kbKF^Ahxl6t{K`KrJ41_@< z3$6#V@*RN49Bxp^`iep8l_P%URSuE~x6ul(A|ntk3Xght9sJ z4~AlTPBiBch>+3Gi@{r+q1o5WI{JdClcmD?%%bYDdL0$}0MG&x> zM}>7Nw^s7+ta*m3NE3S%1T9G#pps`p2nPO5#ntfyz#KY9`y(?BVsWmGTS985Csp>c z1EJHK!G1&gn6|~h*sOkk{1?{7pULuPx<)^X zihq57l<$gA0{-0pvy3jtbm)sMH7AC4!q7PeckGf-tJ;ArMKI)%?G@8ov1Po}8&x{j z0T_&aVdPa{$?(6eDK($ZU*P;$5flSMmO1}WjY-ijTa?kfMU@=Og;l?Jv&vN`aft$E zvdJ9w#ggx~v5C-se+0r^3^zCs{4K*ImX`*q*khwYeiz~UBP04WuZ+?PN4Fe89a2U% zNZe0|q6`UO{J^Vuxu{-q8}lt*6oRK3>O;OH1<-gKMMoee<+~A?%EQ?^qDO$I?opv4 z6)kXg|90V8kZ+|^DJF!U{IY0rNs0S zqw!ASW950rc2Ss>mRwehc?8M=I}g}>M>5Kps>qH&aIEDv&SM}My~hm7l0^IzF3I=D zMfUJMQwm9zQ{RR7FV~WmL-6K@XFmWLP0Q67!gcBY2drTR77;@k+L&D}cO7J1;JCy2 z)k+N2%caL-ku*G|Wh158-bKUbC5*Ow9luxYd0$OXh;ABjgS=Y=J$Ey3E{a@(5TcvA z7z7=I!?E?-oFA^F)G=KidX`jiMYStwF-1;7E0&le$q>EN?q_nu{qWsju9@nWIf*#9 zU`;;6;#L`cQFSFMp?Ni){8zmA1FnIBzI>ue8t!F5RG|C3*M&y#=de69a_)VVXt>P9 zl24HPSu)!!y(7(Fo29=??LhW`OE}49-NkxTm})fz6W_g0bYYXWGA(5`v}y~&gg21B z0_m8RhvjCo84s>3)Zjd#lEd8S&S{Bl4<6yX*EYre)4N8y-f2%|f#@Ce5|Mdjv+MJ` z{l}YKKmYpcKP|;vq7`uKZ9a>XKY-a}wa9Hmi-NTVwCu=6*0Y88o(;Ba4O8yZuiit- z4~i)VjzU5S;8pW9>BdD>*{%2+#}(qVtUw5A2OAXPZRI|J3ObY}C;`3i(T1eEUNPSw zpqpfwfv2y}zV9y}=aGD4X_ry7In@1TeC(uiRDoPW3Ro?t7cYg2zY`OnU`cowtO!mQxR8yyOsG_Jq`%SR>>YM z(?`+9eZ;@>m~(E0HVF}#++@F1;jS7%HBg_?Fmh5q+d;g6smyftyI8xD+|PgUDndW! zfls$iZS^x8_jDWoPFB1m_H!NjTb}^G!(-bC3D5SX38~20p;B3z^*bg2(SW^do|~go zt9{xH4aAi@#o7D+^p@ERrfBz0C)1N7_3NCc9v4AUz0=+g{F=S*akhapSoe;4{PsP) z9)IyRL#h0&U%Asyxar#e}cyx^qtFV)sgw1wkG}QJk8kOeXUz z1Ty2O4A+$5`{GE8Yg#ne2BR>$=F(ZLd>-Z>_wvFt0ewxPFjKHpvINPl zEvQxPu!Bo_Z_Y1S|7Ce-3GY5$jOVtG36=8*1ocIIG9 z)3ZR>Xnqzgb$7zU&d>tw9ZylS&+crF+F&c2axb$~GFMj@UCGaTW~hX6xARj1EzM4a ztkK-ej0RLddC+;OklyjE)O+gA=A;RVP`xo@QSElICe( zXrp(^iu(|jk(4#g;b2^31ome>@=n4a4E=B#c=N?_IUmo1(JVmY<#;xkF6Ib%{%E*7 z2~Wn;kv~6~E+HHaN0aFgRvhiH2vX{1x`57ktGqfu=C^rGB5{&f`~3}$LzSI|!5Rd` zxBaHNY2WH-s^Cdnw*Xs5t^8JN(w~*R0S%$w0&D@V!)b^%L&tN4J4k%Zzts_!ZFx1< zd4l}2+#@X$G5|OZqOHmj0T<*3$t|@|v11qn`R-?mLR_bc;jG>)=k*`ZB2Q69wrNmG z>&P>dX1&w@^nzsDJME1<&)f8ldcr-|JMEpkz`b9OdNLYcE9sl%Cf@hB_p9MKQ8-m7 ze+G_4M%2u4v|Esxn~E+2w4Asq7XXEsndcW%Tgjzv&XdDY0uqvJBf)QE`8)}Q6p~y9 z3XB8rjm!-ve5{n8nAg&QGRcJEAl)VMfRvQ1Ms24`5N8-np}LBgFt zu0~PY)|VFtEO8`ds7khJjq2swi)Yet_V)X;tH1S5hsMZU${Y-DGn9ghXW%KTa0pO* z)4zc!P}y~&oq?p<-^ZguE>nDiBeX)#vj9eXnoD2WQBO|*%BD{_lju<|QT4;Tn%W0` zO$hxqcY3Q!QMiBb72$qF@ve<8up*;?$_vvdcUPYOZ;#74FL%4lT`I$kPU!t+?lO?< z(~QfEKkrN%6i&W{8yw+^JTpvD#R*ud?|f+$Tl?a8OMVXd;__yE#QvQ+k?g7zwJV;e z;)=rHx}>GxM5<*P9+&9f_IfOm*aL0-+?}#B0oh8RsG~8-uFK48WB*46UmG?^)URN8>ss4Xs%sR5=?c+( zGq=dOsFk;zE5gxluzKDB%am+{{#@iV=3lrQ;e7${JwIfquA!1n1bu!f_9O%33R$gr z7Od^>_X!8g2Z1L~lKK_vqEIp%rJWVW*K_{IT^O!eVeXe!GeC`#@8N@G94%K&W?WR& zAxGGrRiofHTsWCK*+(vfa_3TB)`n6(lPS%#i%TP7Lg$jYpxz`AddisVLNeFGBZJo- zfgIjZ!E-e-&Xj#u>yfB12F?1N?`6qXy&JSlWbX`(WQx;=HDY6~Cr_0C3vEhSwiPHG zx2L@+MR=O9h4nd5m-1#j79v!c_hpXuBLD>uoGGS-Lg~b#dSd82+oeWe%QaZ5qjRt{ zrmJrmUTYe;e? zmwqs!NF>E+#jUtXzk}jXL{aj#$%{BdexqFhRqjqxl8}h3c2@~AiqG?eNoDfXZG5g8 zU9RL)eaE{@^qT_T&p7;kk;6%Cs8d=Qz}>i*cjP>jy3xpCa7*39|fZ7oev8~i>;5m=3bl?cq-y;2Hs%k4SjF! zkMsOiGl<5^6VE>xolH(pI33OAi|O)YIh!s|&~m)=7vtG@F&qvTC*EX+yt%)C-eQa< z%js}FpYNqi?1CJeMG<(7S8JMq*W&t@5cIjYeUom{Id3nxObHvvgD)PR&+8FaM;|K} z>0lGyJr2+FyyzwmC2 z%WmB7vNb}q2af-GaPZ}qJoj&(vkUg~ z%P+qKR{@L}PuWH^J2*Hv_yk@N@IB59X3u2FHV)O@J&a$T_V+!XIL1N-D~wFM^B@8J hQx!G8^{_oYkI&=t_}u#W{{jF2|Np&GUWx$v1OQbK0>c0R literal 0 HcmV?d00001 diff --git a/stable/syncthing/11.0.45/ix_values.yaml b/stable/syncthing/11.0.45/ix_values.yaml new file mode 100644 index 00000000000..c45af837fa7 --- /dev/null +++ b/stable/syncthing/11.0.45/ix_values.yaml @@ -0,0 +1,42 @@ +image: + repository: tccr.io/truecharts/syncthing + pullPolicy: IfNotPresent + tag: 1.22.1@sha256:da5013d34d09d359f602a377e4d20b703bf825042dce278f900c6e1cb0cbac3f + +service: + main: + ports: + main: + port: 8384 + targetPort: 8384 + listeners: + enabled: true + ports: + tcp: + enabled: true + port: 22000 + targetPort: 22000 + listeners-udp: + enabled: true + ports: + udp: + enabled: true + port: 22000 + targetPort: 22000 + protocol: UDP + discovery: + enabled: true + ports: + discovery: + enabled: true + port: 21027 + targetPort: 21027 + protocol: UDP + +persistence: + config: + enabled: true + mountPath: "/var/syncthing" + +portal: + enabled: true diff --git a/stable/syncthing/11.0.45/questions.yaml b/stable/syncthing/11.0.45/questions.yaml new file mode 100644 index 00000000000..d1d76db0e36 --- /dev/null +++ b/stable/syncthing/11.0.45/questions.yaml @@ -0,0 +1,2969 @@ +groups: + - name: Container Image + description: Image to be used for container + - name: Controller + description: Configure Workload Deployment + - name: Container Configuration + description: Additional Container Configuration + - name: App Configuration + description: App Specific Config Options + - name: Networking and Services + description: Configure Network and Services for Container + - name: Storage and Persistence + description: Persist and Share Data that is Separate from the Container + - name: Ingress + description: Ingress Configuration + - name: Security and Permissions + description: Configure Security Context and Permissions + - name: Resources and Devices + description: "Specify Resources/Devices to be Allocated to Workload" + - name: Middlewares + description: Traefik Middlewares + - name: Metrics + description: Metrics + - name: Addons + description: Addon Configuration + - name: Advanced + description: Advanced Configuration + - name: 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: Controller + schema: + type: dict + hidden: true + attrs: + - variable: isSCALE + label: Flag this is SCALE + schema: + type: boolean + default: true + hidden: true + - variable: controller + group: Controller + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: advanced + label: Show Advanced Controller Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: Please specify type of workload to deploy + label: (Advanced) Controller Type + schema: + type: string + required: true + enum: + - value: deployment + description: Deployment + - value: statefulset + description: Statefulset + - value: daemonset + description: Daemonset + default: deployment + - variable: replicas + description: Number of desired pod replicas + label: Desired Replicas + schema: + type: int + required: true + default: 1 + - variable: strategy + description: Please specify type of workload to deploy + label: (Advanced) Update Strategy + schema: + type: string + required: true + enum: + - value: Recreate + description: "Recreate: Kill existing pods before creating new ones" + - value: RollingUpdate + description: "RollingUpdate: Create new pods and then kill old ones" + - value: OnDelete + description: "(Legacy) OnDelete: ignore .spec.template changes" + default: Recreate + - variable: expert + label: Show Expert Configuration Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: Controller Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Controller Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: customextraargs + group: Controller + 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: Container Configuration + 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: Container Configuration + 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: expertpodconf + group: Container Configuration + label: Show Expert Configuration + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: tty + label: Enable TTY + description: Determines whether containers in a pod runs with TTY enabled. By default pod has it disabled. + group: Workload Details + schema: + type: boolean + default: false + - variable: stdin + label: Enable STDIN + description: Determines whether containers in a pod runs with stdin enabled. By default pod has it disabled. + group: Workload Details + schema: + type: boolean + default: false + - variable: termination + group: Container Configuration + label: Termination settings + schema: + additional_attrs: true + type: dict + attrs: + - variable: gracePeriodSeconds + label: Grace Period Seconds + schema: + type: int + default: 10 + - variable: podLabelsList + group: Container Configuration + label: Pod Labels + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: podAnnotationsList + group: Container Configuration + label: Pod Annotations + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: Label + 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: 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: The IP Families that should be used + schema: + type: list + default: [] + items: + - variable: ipFamily + label: IP Family + schema: + type: string + - 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: 8384 + required: true + - variable: advanced + label: Show Advanced Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: Enable the Port + schema: + type: boolean + hidden: true + default: true + - variable: protocol + label: Port Type + schema: + type: string + default: HTTP + enum: + - value: HTTP + description: HTTP + - value: HTTPS + description: HTTPS + - value: TCP + description: TCP + - value: UDP + description: UDP + - variable: nodePort + label: Node Port (Optional) + description: This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 8384 + - variable: listeners + label: "Syncthing Listening Service" + description: "This service is used to process incoming connections directly to this Syncthing instance" + 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: 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: The IP Families that should be used + schema: + type: list + default: [] + items: + - variable: ipFamily + label: IP Family + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: tcp + 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: 22000 + required: true + - variable: advanced + label: Show Advanced Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: Enable the Port + schema: + type: boolean + hidden: true + default: true + - 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: nodePort + label: Node Port (Optional) + description: This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 22000 + - variable: listeners-udp + label: "Syncthing Listening Service" + description: "This service is used to process incoming connections directly to this Syncthing instance" + 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: 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: The IP Families that should be used + schema: + type: list + default: [] + items: + - variable: ipFamily + label: IP Family + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: udp + label: "UDP 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: 22000 + required: true + - variable: advanced + label: Show Advanced Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: Enable the Port + schema: + type: boolean + hidden: true + default: true + - variable: protocol + label: Port Type + schema: + type: string + default: UDP + enum: + - value: HTTP + description: HTTP + - value: HTTPS + description: HTTPS + - value: TCP + description: TCP + - value: UDP + description: UDP + - variable: nodePort + label: Node Port (Optional) + description: This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 22000 + - variable: discovery + label: "Syncthing Listening Service" + description: "This service is used to process incoming connections directly to this Syncthing instance" + 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: 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: The IP Families that should be used + schema: + type: list + default: [] + items: + - variable: ipFamily + label: IP Family + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: discovery + label: "UDP 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: 21027 + required: true + - variable: advanced + label: Show Advanced Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: Enable the Port + schema: + type: boolean + hidden: true + default: true + - variable: protocol + label: Port Type + schema: + type: string + default: UDP + enum: + - value: HTTP + description: HTTP + - value: HTTPS + description: HTTPS + - value: TCP + description: TCP + - value: UDP + description: UDP + - variable: nodePort + label: Node Port (Optional) + description: This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 21027 + - 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: dnsPolicy + group: Networking and Services + label: dnsPolicy + schema: + type: string + default: "" + enum: + - value: "" + description: Default + - value: ClusterFirst + description: ClusterFirst + - value: None + description: None + - variable: dnsConfig + label: DNS Configuration + group: Networking and Services + description: Specify custom DNS configuration which will be applied to the pod + schema: + additional_attrs: true + type: dict + attrs: + - variable: nameservers + label: Name Servers + schema: + default: [] + type: list + items: + - variable: nameserver + label: Name Server + schema: + type: string + - variable: options + label: Options + schema: + default: [] + type: list + items: + - variable: option + label: Option Entry + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: searches + label: Searches + schema: + default: [] + type: list + items: + - variable: search + label: Search Entry + schema: + type: string + - 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: simplePVC + enum: + - value: simplePVC + description: PVC (simple) + - value: simpleHP + description: Host Path (simple) + - value: emptyDir + description: emptyDir + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - 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: setPermissionsSimple + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "simpleHP"]] + type: boolean + default: false + - 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: hostPathSimple + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "simpleHP"]] + type: hostpath + - 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 + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: hostPathType + label: (Advanced) hostPath Type + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: DirectoryOrCreate + description: DirectoryOrCreate + - value: Directory + description: Directory + - value: FileOrCreate + description: FileOrCreate + - value: File + description: File + - value: Socket + description: Socket + - value: CharDevice + description: CharDevice + - value: BlockDevice + description: BlockDevice + - variable: storageClass + label: (Advanced) storageClass + description: "Warning: Anything other than SCALE-ZFS or empty will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: SCALE-ZFS + - variable: accessMode + label: (Advanced) Access Mode + description: Allow or disallow multiple PVC's writhing to the same PV + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: ReadWriteOnce + enum: + - value: ReadWriteOnce + description: ReadWriteOnce + - value: ReadOnlyMany + description: ReadOnlyMany + - value: ReadWriteMany + description: ReadWriteMany + - variable: advanced + label: Show Advanced Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - 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: name + label: Name (Optional) + description: "Not required, please set to config when mounting /config or temp when mounting /tmp" + schema: + type: string + - variable: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: simpleHP + enum: + - value: simplePVC + description: PVC (Simple) + - value: simpleHP + description: Host Path (Simple) + - value: emptyDir + description: emptyDir + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - 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: setPermissionsSimple + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "simpleHP"]] + type: boolean + default: false + - 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: hostPathSimple + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "simpleHP"]] + type: hostpath + - 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: hostPathType + label: (Advanced) Host Path Type + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: DirectoryOrCreate + description: DirectoryOrCreate + - value: Directory + description: Directory + - value: FileOrCreate + description: FileOrCreate + - value: File + description: File + - value: Socket + description: Socket + - value: CharDevice + description: CharDevice + - value: BlockDevice + description: BlockDevice + - variable: storageClass + label: (Advanced) StorageClass + description: "Warning: Anything other than SCALE-ZFS or empty will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: SCALE-ZFS + - variable: accessMode + label: (Advanced) Access Mode + description: Allow or disallow multiple PVC's writhing to the same PV + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: ReadWriteOnce + enum: + - value: ReadWriteOnce + description: ReadWriteOnce + - value: ReadOnlyMany + description: ReadOnlyMany + - value: ReadWriteMany + description: ReadWriteMany + - variable: advanced + label: Show Advanced Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - 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: 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: expert + label: Show Expert Configuration Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enableFixedMiddlewares + description: These middlewares enforce a number of best practices. + label: Enable Default Middlewares + schema: + type: boolean + default: true + - variable: ingressClassName + label: IngressClass Name + schema: + type: string + default: "" + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - 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: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - 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: capabilities + label: Capabilities + schema: + additional_attrs: true + type: dict + attrs: + - variable: drop + label: Drop Capability + schema: + type: list + default: [] + items: + - variable: dropEntry + label: "" + schema: + type: string + - variable: add + label: Add Capability + schema: + type: list + default: [] + items: + - variable: addEntry + label: "" + schema: + type: string + - 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: advancedresources + label: Set Custom Resource Limits/Requests (Advanced) + group: Resources and Devices + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: resources + label: "" + 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 + 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 + 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 + 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: promtail + label: Promtail + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: loki + label: Loki URL + schema: + type: string + required: true + - variable: logs + label: Log Paths + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: path + label: Path + schema: + type: string + required: true + - variable: args + label: Promtail Command Line Arguments + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: arg + label: Arg + schema: + type: string + required: true + - variable: envList + label: Promtail Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + - variable: netshoot + label: Netshoot + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: envList + label: Netshoot Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + - variable: vpn + label: VPN + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type + schema: + type: string + default: disabled + enum: + - value: disabled + description: disabled + - value: 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: 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: Sock5 Server + 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/syncthing/11.0.45/templates/common.yaml b/stable/syncthing/11.0.45/templates/common.yaml new file mode 100644 index 00000000000..c1a366e1cf0 --- /dev/null +++ b/stable/syncthing/11.0.45/templates/common.yaml @@ -0,0 +1 @@ +{{ include "tc.common.loader.all" . }} diff --git a/stable/syncthing/11.0.45/values.yaml b/stable/syncthing/11.0.45/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/tailscale/1.1.17/Chart.lock b/stable/tailscale/1.1.17/Chart.lock deleted file mode 100644 index 2715bbcc5d2..00000000000 --- a/stable/tailscale/1.1.17/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: https://library-charts.truecharts.org - version: 10.7.13 -digest: sha256:2f2267115af9bdc61a64db6317564e2d07f4f27ccb0627720c8a63d82b1786b7 -generated: "2022-11-02T10:58:50.330613438Z" diff --git a/stable/tailscale/1.1.17/CHANGELOG.md b/stable/tailscale/1.1.18/CHANGELOG.md similarity index 91% rename from stable/tailscale/1.1.17/CHANGELOG.md rename to stable/tailscale/1.1.18/CHANGELOG.md index d86d95020f7..e5c50b86568 100644 --- a/stable/tailscale/1.1.17/CHANGELOG.md +++ b/stable/tailscale/1.1.18/CHANGELOG.md @@ -2,6 +2,16 @@ +## [tailscale-1.1.18](https://github.com/truecharts/charts/compare/tailscale-1.1.17...tailscale-1.1.18) (2022-11-03) + +### Chore + +- Auto-update chart README [skip ci] + - update docker general non-major ([#4286](https://github.com/truecharts/charts/issues/4286)) + + + + ## [tailscale-1.1.17](https://github.com/truecharts/charts/compare/tailscale-1.1.16...tailscale-1.1.17) (2022-11-02) ### Chore @@ -86,14 +96,4 @@ ### Chore -- Auto-update chart README [skip ci] - - update helm general non-major ([#4071](https://github.com/truecharts/charts/issues/4071)) - - - - -## [tailscale-1.1.8](https://github.com/truecharts/charts/compare/tailscale-1.1.7...tailscale-1.1.8) (2022-10-07) - -### Chore - - Auto-update chart README [skip ci] diff --git a/stable/tailscale/1.1.18/Chart.lock b/stable/tailscale/1.1.18/Chart.lock new file mode 100644 index 00000000000..d755af7ce9e --- /dev/null +++ b/stable/tailscale/1.1.18/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://library-charts.truecharts.org + version: 10.7.13 +digest: sha256:2f2267115af9bdc61a64db6317564e2d07f4f27ccb0627720c8a63d82b1786b7 +generated: "2022-11-03T02:52:07.721409654Z" diff --git a/stable/tailscale/1.1.17/Chart.yaml b/stable/tailscale/1.1.18/Chart.yaml similarity index 95% rename from stable/tailscale/1.1.17/Chart.yaml rename to stable/tailscale/1.1.18/Chart.yaml index 03670ec6102..aef34fef759 100644 --- a/stable/tailscale/1.1.17/Chart.yaml +++ b/stable/tailscale/1.1.18/Chart.yaml @@ -1,5 +1,5 @@ apiVersion: v2 -appVersion: "1.33.116" +appVersion: "1.33.132" dependencies: - name: common repository: https://library-charts.truecharts.org @@ -20,7 +20,7 @@ sources: - https://github.com/truecharts/charts/tree/master/charts/stable/tailscale - https://hub.docker.com/r/tailscale/tailscale - https://github.com/tailscale/tailscale/blob/main/docs/k8s/run.sh -version: 1.1.17 +version: 1.1.18 annotations: truecharts.org/catagories: | - network diff --git a/stable/tailscale/1.1.17/README.md b/stable/tailscale/1.1.18/README.md similarity index 100% rename from stable/tailscale/1.1.17/README.md rename to stable/tailscale/1.1.18/README.md diff --git a/stable/tailscale/1.1.17/app-readme.md b/stable/tailscale/1.1.18/app-readme.md similarity index 100% rename from stable/tailscale/1.1.17/app-readme.md rename to stable/tailscale/1.1.18/app-readme.md diff --git a/stable/tailscale/1.1.18/charts/common-10.7.13.tgz b/stable/tailscale/1.1.18/charts/common-10.7.13.tgz new file mode 100644 index 0000000000000000000000000000000000000000..c3131de86ff390f136bf19240caede7a29b33ecd GIT binary patch literal 49153 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 literal 0 HcmV?d00001 diff --git a/stable/tailscale/1.1.17/ix_values.yaml b/stable/tailscale/1.1.18/ix_values.yaml similarity index 94% rename from stable/tailscale/1.1.17/ix_values.yaml rename to stable/tailscale/1.1.18/ix_values.yaml index b39632a0e20..0fe68d876d1 100644 --- a/stable/tailscale/1.1.17/ix_values.yaml +++ b/stable/tailscale/1.1.18/ix_values.yaml @@ -1,7 +1,7 @@ image: repository: tailscale/tailscale pullPolicy: IfNotPresent - tag: v1.33.116@sha256:7c01a28597ad723b270cb3e74ff2ff111a46916fecf5029581cb5cd24991b406 + tag: v1.33.132@sha256:45c62aeb0359f6514be4e2136d2dd6b43e85dab1d7e26ecf44d4623e4e3950b1 command: ["ash", "/tailscale/run.sh"] diff --git a/stable/tailscale/1.1.17/questions.yaml b/stable/tailscale/1.1.18/questions.yaml similarity index 100% rename from stable/tailscale/1.1.17/questions.yaml rename to stable/tailscale/1.1.18/questions.yaml diff --git a/stable/tailscale/1.1.17/templates/_configmap.tpl b/stable/tailscale/1.1.18/templates/_configmap.tpl similarity index 100% rename from stable/tailscale/1.1.17/templates/_configmap.tpl rename to stable/tailscale/1.1.18/templates/_configmap.tpl diff --git a/stable/tailscale/1.1.17/templates/_secret.tpl b/stable/tailscale/1.1.18/templates/_secret.tpl similarity index 100% rename from stable/tailscale/1.1.17/templates/_secret.tpl rename to stable/tailscale/1.1.18/templates/_secret.tpl diff --git a/stable/tailscale/1.1.17/templates/common.yaml b/stable/tailscale/1.1.18/templates/common.yaml similarity index 100% rename from stable/tailscale/1.1.17/templates/common.yaml rename to stable/tailscale/1.1.18/templates/common.yaml diff --git a/stable/tailscale/1.1.18/values.yaml b/stable/tailscale/1.1.18/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/traefik/13.5.0/CHANGELOG.md b/stable/traefik/13.5.0/CHANGELOG.md new file mode 100644 index 00000000000..96dad1890cb --- /dev/null +++ b/stable/traefik/13.5.0/CHANGELOG.md @@ -0,0 +1,99 @@ +# Changelog + + + +## [traefik-13.5.0](https://github.com/truecharts/charts/compare/traefik-13.4.16...traefik-13.5.0) (2022-11-02) + +### Chore + +- Auto-update chart README [skip ci] + + ### Feat + +- add support for insecureForwardAuth ([#4247](https://github.com/truecharts/charts/issues/4247)) + + + + +## [traefik-13.4.16](https://github.com/truecharts/charts/compare/traefik-13.4.15...traefik-13.4.16) (2022-11-02) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major ([#4261](https://github.com/truecharts/charts/issues/4261)) + + + + +## [traefik-13.4.15](https://github.com/truecharts/charts/compare/traefik-13.4.14...traefik-13.4.15) (2022-10-29) + +### Chore + +- Auto-update chart README [skip ci] + - update docker general non-major ([#4230](https://github.com/truecharts/charts/issues/4230)) + + + + +## [traefik-13.4.14](https://github.com/truecharts/charts/compare/traefik-13.4.13...traefik-13.4.14) (2022-10-28) + +### Chore + +- Auto-update chart README [skip ci] + - update docker general non-major ([#4218](https://github.com/truecharts/charts/issues/4218)) + + + + +## [traefik-13.4.13](https://github.com/truecharts/charts/compare/traefik-13.4.12...traefik-13.4.13) (2022-10-25) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major ([#4182](https://github.com/truecharts/charts/issues/4182)) + + + + +## [traefik-13.4.12](https://github.com/truecharts/charts/compare/traefik-13.4.11...traefik-13.4.12) (2022-10-21) + +### Chore + +- Auto-update chart README [skip ci] + + ### Fix + +- fix CRD update and common update ([#4149](https://github.com/truecharts/charts/issues/4149)) + + + + +## [traefik-13.4.11](https://github.com/truecharts/charts/compare/traefik-13.4.10...traefik-13.4.11) (2022-10-19) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major ([#4122](https://github.com/truecharts/charts/issues/4122)) + + ### Fix + +- enable crd updating ([#4068](https://github.com/truecharts/charts/issues/4068)) + + + + +## [traefik-13.4.10](https://github.com/truecharts/charts/compare/traefik-13.4.9...traefik-13.4.10) (2022-10-12) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major ([#4071](https://github.com/truecharts/charts/issues/4071)) + + + + +## [traefik-13.4.9](https://github.com/truecharts/charts/compare/traefik-13.4.8...traefik-13.4.9) (2022-10-10) + +### Chore + +- Auto-update chart README [skip ci] diff --git a/stable/traefik/13.5.0/Chart.lock b/stable/traefik/13.5.0/Chart.lock new file mode 100644 index 00000000000..5391be639f6 --- /dev/null +++ b/stable/traefik/13.5.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://library-charts.truecharts.org + version: 10.7.13 +digest: sha256:2f2267115af9bdc61a64db6317564e2d07f4f27ccb0627720c8a63d82b1786b7 +generated: "2022-11-03T02:52:28.05627713Z" diff --git a/stable/traefik/13.5.0/Chart.yaml b/stable/traefik/13.5.0/Chart.yaml new file mode 100644 index 00000000000..7e20749103d --- /dev/null +++ b/stable/traefik/13.5.0/Chart.yaml @@ -0,0 +1,31 @@ +apiVersion: v2 +appVersion: "2.9.4" +dependencies: + - name: common + repository: https://library-charts.truecharts.org + version: 10.7.13 +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: 13.5.0 +annotations: + truecharts.org/catagories: | + - network + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/stable/traefik/13.5.0/README.md b/stable/traefik/13.5.0/README.md new file mode 100644 index 00000000000..5e027c68373 --- /dev/null +++ b/stable/traefik/13.5.0/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.7.13 | + +## 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/13.5.0/app-readme.md b/stable/traefik/13.5.0/app-readme.md new file mode 100644 index 00000000000..b76832bd9a2 --- /dev/null +++ b/stable/traefik/13.5.0/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/13.5.0/charts/common-10.7.13.tgz b/stable/traefik/13.5.0/charts/common-10.7.13.tgz new file mode 100644 index 0000000000000000000000000000000000000000..c3131de86ff390f136bf19240caede7a29b33ecd GIT binary patch literal 49153 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 literal 0 HcmV?d00001 diff --git a/stable/traefik/13.5.0/crds/ingressroute.yaml b/stable/traefik/13.5.0/crds/ingressroute.yaml new file mode 100644 index 00000000000..572adae5f00 --- /dev/null +++ b/stable/traefik/13.5.0/crds/ingressroute.yaml @@ -0,0 +1,209 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + "helm.sh/resource-policy": keep + "helm.sh/hook": pre-install,pre-upgrade,pre-rollback + controller-gen.kubebuilder.io/version: v0.4.1 + creationTimestamp: null + name: ingressroutes.traefik.containo.us +spec: + group: traefik.containo.us + names: + kind: IngressRoute + listKind: IngressRouteList + plural: ingressroutes + singular: ingressroute + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: IngressRoute is an Ingress CRD specification. + properties: + apiVersion: + description: + "APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources" + type: string + kind: + description: + "Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + type: string + metadata: + type: object + spec: + description: + IngressRouteSpec is a specification for a IngressRouteSpec + resource. + properties: + entryPoints: + items: + type: string + type: array + routes: + items: + description: Route contains the set of routes. + properties: + kind: + enum: + - Rule + type: string + match: + type: string + middlewares: + items: + description: MiddlewareRef is a ref to the Middleware resources. + properties: + name: + type: string + namespace: + type: string + required: + - name + type: object + type: array + priority: + type: integer + services: + items: + description: Service defines an upstream to proxy traffic. + properties: + kind: + enum: + - Service + - TraefikService + type: string + name: + description: + Name is a reference to a Kubernetes Service + object (for a load-balancer of servers), or to a TraefikService + object (service load-balancer, mirroring, etc). The + differentiation between the two is specified in the + Kind field. + type: string + namespace: + type: string + passHostHeader: + type: boolean + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + responseForwarding: + description: + ResponseForwarding holds configuration for + the forward of the response. + properties: + flushInterval: + type: string + type: object + scheme: + type: string + serversTransport: + type: string + sticky: + description: Sticky holds the sticky configuration. + properties: + cookie: + description: + Cookie holds the sticky configuration + based on cookie. + properties: + httpOnly: + type: boolean + name: + type: string + sameSite: + type: string + secure: + type: boolean + type: object + type: object + strategy: + type: string + weight: + description: + Weight should only be specified when Name + references a TraefikService object (and to be precise, + one that embeds a Weighted Round Robin). + type: integer + required: + - name + type: object + type: array + required: + - kind + - match + type: object + type: array + tls: + description: + "TLS contains the TLS certificates configuration of the + routes. To enable Let's Encrypt, use an empty TLS struct, e.g. in + YAML: \n \t tls: {} # inline format \n \t tls: \t secretName: + # block format" + properties: + certResolver: + type: string + domains: + items: + description: Domain holds a domain name with SANs. + properties: + main: + type: string + sans: + items: + type: string + type: array + type: object + type: array + options: + description: + Options is a reference to a TLSOption, that specifies + the parameters of the TLS connection. + properties: + name: + type: string + namespace: + type: string + required: + - name + type: object + secretName: + description: + SecretName is the name of the referenced Kubernetes + Secret to specify the certificate details. + type: string + store: + description: + Store is a reference to a TLSStore, that specifies + the parameters of the TLS store. + properties: + name: + type: string + namespace: + type: string + required: + - name + type: object + type: object + required: + - routes + type: object + required: + - metadata + - spec + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/stable/traefik/13.5.0/crds/ingressroutetcp.yaml b/stable/traefik/13.5.0/crds/ingressroutetcp.yaml new file mode 100644 index 00000000000..127a41767e1 --- /dev/null +++ b/stable/traefik/13.5.0/crds/ingressroutetcp.yaml @@ -0,0 +1,169 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + "helm.sh/resource-policy": keep + "helm.sh/hook": pre-install,pre-upgrade,pre-rollback + controller-gen.kubebuilder.io/version: v0.4.1 + creationTimestamp: null + name: ingressroutetcps.traefik.containo.us +spec: + group: traefik.containo.us + names: + kind: IngressRouteTCP + listKind: IngressRouteTCPList + plural: ingressroutetcps + singular: ingressroutetcp + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: IngressRouteTCP is an Ingress CRD specification. + properties: + apiVersion: + description: + "APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources" + type: string + kind: + description: + "Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + type: string + metadata: + type: object + spec: + description: + IngressRouteTCPSpec is a specification for a IngressRouteTCPSpec + resource. + properties: + entryPoints: + items: + type: string + type: array + routes: + items: + description: RouteTCP contains the set of routes. + properties: + match: + type: string + middlewares: + description: + Middlewares contains references to MiddlewareTCP + resources. + items: + description: + ObjectReference is a generic reference to a Traefik + resource. + properties: + name: + type: string + namespace: + type: string + required: + - name + type: object + type: array + services: + items: + description: ServiceTCP defines an upstream to proxy traffic. + properties: + name: + type: string + namespace: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + proxyProtocol: + description: ProxyProtocol holds the ProxyProtocol configuration. + properties: + version: + type: integer + type: object + terminationDelay: + type: integer + weight: + type: integer + required: + - name + - port + type: object + type: array + required: + - match + type: object + type: array + tls: + description: + "TLSTCP contains the TLS certificates configuration of + the routes. To enable Let's Encrypt, use an empty TLS struct, e.g. + in YAML: \n \t tls: {} # inline format \n \t tls: \t secretName: + # block format" + properties: + certResolver: + type: string + domains: + items: + description: Domain holds a domain name with SANs. + properties: + main: + type: string + sans: + items: + type: string + type: array + type: object + type: array + options: + description: + Options is a reference to a TLSOption, that specifies + the parameters of the TLS connection. + properties: + name: + type: string + namespace: + type: string + required: + - name + type: object + passthrough: + type: boolean + secretName: + description: + SecretName is the name of the referenced Kubernetes + Secret to specify the certificate details. + type: string + store: + description: + Store is a reference to a TLSStore, that specifies + the parameters of the TLS store. + properties: + name: + type: string + namespace: + type: string + required: + - name + type: object + type: object + required: + - routes + type: object + required: + - metadata + - spec + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/stable/traefik/13.5.0/crds/ingressrouteudp.yaml b/stable/traefik/13.5.0/crds/ingressrouteudp.yaml new file mode 100644 index 00000000000..2ed2b6969b2 --- /dev/null +++ b/stable/traefik/13.5.0/crds/ingressrouteudp.yaml @@ -0,0 +1,87 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + "helm.sh/resource-policy": keep + "helm.sh/hook": pre-install,pre-upgrade,pre-rollback + controller-gen.kubebuilder.io/version: v0.4.1 + creationTimestamp: null + name: ingressrouteudps.traefik.containo.us +spec: + group: traefik.containo.us + names: + kind: IngressRouteUDP + listKind: IngressRouteUDPList + plural: ingressrouteudps + singular: ingressrouteudp + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: IngressRouteUDP is an Ingress CRD specification. + properties: + apiVersion: + description: + "APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources" + type: string + kind: + description: + "Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + type: string + metadata: + type: object + spec: + description: + IngressRouteUDPSpec is a specification for a IngressRouteUDPSpec + resource. + properties: + entryPoints: + items: + type: string + type: array + routes: + items: + description: RouteUDP contains the set of routes. + properties: + services: + items: + description: ServiceUDP defines an upstream to proxy traffic. + properties: + name: + type: string + namespace: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + weight: + type: integer + required: + - name + - port + type: object + type: array + type: object + type: array + required: + - routes + type: object + required: + - metadata + - spec + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/stable/traefik/13.5.0/crds/middlewares.yaml b/stable/traefik/13.5.0/crds/middlewares.yaml new file mode 100644 index 00000000000..714d151151f --- /dev/null +++ b/stable/traefik/13.5.0/crds/middlewares.yaml @@ -0,0 +1,587 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + "helm.sh/resource-policy": keep + "helm.sh/hook": pre-install,pre-upgrade,pre-rollback + controller-gen.kubebuilder.io/version: v0.4.1 + creationTimestamp: null + name: middlewares.traefik.containo.us +spec: + group: traefik.containo.us + names: + kind: Middleware + listKind: MiddlewareList + plural: middlewares + singular: middleware + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: Middleware is a specification for a Middleware resource. + properties: + apiVersion: + description: + "APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources" + type: string + kind: + description: + "Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + type: string + metadata: + type: object + spec: + description: MiddlewareSpec holds the Middleware configuration. + properties: + addPrefix: + description: AddPrefix holds the AddPrefix configuration. + properties: + prefix: + type: string + type: object + basicAuth: + description: BasicAuth holds the HTTP basic authentication configuration. + properties: + headerField: + type: string + realm: + type: string + removeHeader: + type: boolean + secret: + type: string + type: object + buffering: + description: Buffering holds the request/response buffering configuration. + properties: + maxRequestBodyBytes: + format: int64 + type: integer + maxResponseBodyBytes: + format: int64 + type: integer + memRequestBodyBytes: + format: int64 + type: integer + memResponseBodyBytes: + format: int64 + type: integer + retryExpression: + type: string + type: object + chain: + description: Chain holds a chain of middlewares. + properties: + middlewares: + items: + description: MiddlewareRef is a ref to the Middleware resources. + properties: + name: + type: string + namespace: + type: string + required: + - name + type: object + type: array + type: object + circuitBreaker: + description: CircuitBreaker holds the circuit breaker configuration. + properties: + expression: + type: string + type: object + compress: + description: Compress holds the compress configuration. + properties: + excludedContentTypes: + items: + type: string + type: array + type: object + contentType: + description: + ContentType middleware - or rather its unique `autoDetect` + option - specifies whether to let the `Content-Type` header, if + it has not been set by the backend, be automatically set to a value + derived from the contents of the response. As a proxy, the default + behavior should be to leave the header alone, regardless of what + the backend did with it. However, the historic default was to always + auto-detect and set the header if it was nil, and it is going to + be kept that way in order to support users currently relying on + it. This middleware exists to enable the correct behavior until + at least the default one can be changed in a future version. + properties: + autoDetect: + type: boolean + type: object + digestAuth: + description: DigestAuth holds the Digest HTTP authentication configuration. + properties: + headerField: + type: string + realm: + type: string + removeHeader: + type: boolean + secret: + type: string + type: object + errors: + description: ErrorPage holds the custom error page configuration. + properties: + query: + type: string + service: + description: Service defines an upstream to proxy traffic. + properties: + kind: + enum: + - Service + - TraefikService + type: string + name: + description: + Name is a reference to a Kubernetes Service object + (for a load-balancer of servers), or to a TraefikService + object (service load-balancer, mirroring, etc). The differentiation + between the two is specified in the Kind field. + type: string + namespace: + type: string + passHostHeader: + type: boolean + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + responseForwarding: + description: + ResponseForwarding holds configuration for the + forward of the response. + properties: + flushInterval: + type: string + type: object + scheme: + type: string + serversTransport: + type: string + sticky: + description: Sticky holds the sticky configuration. + properties: + cookie: + description: + Cookie holds the sticky configuration based + on cookie. + properties: + httpOnly: + type: boolean + name: + type: string + sameSite: + type: string + secure: + type: boolean + type: object + type: object + strategy: + type: string + weight: + description: + Weight should only be specified when Name references + a TraefikService object (and to be precise, one that embeds + a Weighted Round Robin). + type: integer + required: + - name + type: object + status: + items: + type: string + type: array + type: object + forwardAuth: + description: ForwardAuth holds the http forward authentication configuration. + properties: + address: + type: string + authRequestHeaders: + items: + type: string + type: array + authResponseHeaders: + items: + type: string + type: array + authResponseHeadersRegex: + type: string + tls: + description: ClientTLS holds TLS specific configurations as client. + properties: + caOptional: + type: boolean + caSecret: + type: string + certSecret: + type: string + insecureSkipVerify: + type: boolean + type: object + trustForwardHeader: + type: boolean + type: object + headers: + description: Headers holds the custom header configuration. + properties: + accessControlAllowCredentials: + description: + AccessControlAllowCredentials is only valid if true. + false is ignored. + type: boolean + accessControlAllowHeaders: + description: + AccessControlAllowHeaders must be used in response + to a preflight request with Access-Control-Request-Headers set. + items: + type: string + type: array + accessControlAllowMethods: + description: + AccessControlAllowMethods must be used in response + to a preflight request with Access-Control-Request-Method set. + items: + type: string + type: array + accessControlAllowOriginList: + description: + AccessControlAllowOriginList is a list of allowable + origins. Can also be a wildcard origin "*". + items: + type: string + type: array + accessControlAllowOriginListRegex: + description: + AccessControlAllowOriginListRegex is a list of allowable + origins written following the Regular Expression syntax (https://golang.org/pkg/regexp/). + items: + type: string + type: array + accessControlExposeHeaders: + description: + AccessControlExposeHeaders sets valid headers for + the response. + items: + type: string + type: array + accessControlMaxAge: + description: + AccessControlMaxAge sets the time that a preflight + request may be cached. + format: int64 + type: integer + addVaryHeader: + description: + AddVaryHeader controls if the Vary header is automatically + added/updated when the AccessControlAllowOriginList is set. + type: boolean + allowedHosts: + items: + type: string + type: array + browserXssFilter: + type: boolean + contentSecurityPolicy: + type: string + contentTypeNosniff: + type: boolean + customBrowserXSSValue: + type: string + customFrameOptionsValue: + type: string + customRequestHeaders: + additionalProperties: + type: string + type: object + customResponseHeaders: + additionalProperties: + type: string + type: object + featurePolicy: + type: string + forceSTSHeader: + type: boolean + frameDeny: + type: boolean + hostsProxyHeaders: + items: + type: string + type: array + isDevelopment: + type: boolean + publicKey: + type: string + referrerPolicy: + type: string + sslForceHost: + description: "Deprecated: use RedirectRegex instead." + type: boolean + sslHost: + description: "Deprecated: use RedirectRegex instead." + type: string + sslProxyHeaders: + additionalProperties: + type: string + type: object + sslRedirect: + description: + "Deprecated: use EntryPoint redirection or RedirectScheme + instead." + type: boolean + sslTemporaryRedirect: + description: + "Deprecated: use EntryPoint redirection or RedirectScheme + instead." + type: boolean + stsIncludeSubdomains: + type: boolean + stsPreload: + type: boolean + stsSeconds: + format: int64 + type: integer + type: object + inFlightReq: + description: + InFlightReq limits the number of requests being processed + and served concurrently. + properties: + amount: + format: int64 + type: integer + sourceCriterion: + description: + SourceCriterion defines what criterion is used to + group requests as originating from a common source. If none + are set, the default is to use the request's remote address + field. All fields are mutually exclusive. + properties: + ipStrategy: + description: IPStrategy holds the ip strategy configuration. + properties: + depth: + type: integer + excludedIPs: + items: + type: string + type: array + type: object + requestHeaderName: + type: string + requestHost: + type: boolean + type: object + type: object + ipWhiteList: + description: IPWhiteList holds the ip white list configuration. + properties: + ipStrategy: + description: IPStrategy holds the ip strategy configuration. + properties: + depth: + type: integer + excludedIPs: + items: + type: string + type: array + type: object + sourceRange: + items: + type: string + type: array + type: object + passTLSClientCert: + description: PassTLSClientCert holds the TLS client cert headers configuration. + properties: + info: + description: + TLSClientCertificateInfo holds the client TLS certificate + info configuration. + properties: + issuer: + description: + TLSCLientCertificateDNInfo holds the client TLS + certificate distinguished name info configuration. cf https://tools.ietf.org/html/rfc3739 + properties: + commonName: + type: boolean + country: + type: boolean + domainComponent: + type: boolean + locality: + type: boolean + organization: + type: boolean + province: + type: boolean + serialNumber: + type: boolean + type: object + notAfter: + type: boolean + notBefore: + type: boolean + sans: + type: boolean + serialNumber: + type: boolean + subject: + description: + TLSCLientCertificateDNInfo holds the client TLS + certificate distinguished name info configuration. cf https://tools.ietf.org/html/rfc3739 + properties: + commonName: + type: boolean + country: + type: boolean + domainComponent: + type: boolean + locality: + type: boolean + organization: + type: boolean + province: + type: boolean + serialNumber: + type: boolean + type: object + type: object + pem: + type: boolean + type: object + plugin: + additionalProperties: + x-kubernetes-preserve-unknown-fields: true + type: object + rateLimit: + description: + RateLimit holds the rate limiting configuration for a + given router. + properties: + average: + format: int64 + type: integer + burst: + format: int64 + type: integer + period: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + sourceCriterion: + description: + SourceCriterion defines what criterion is used to + group requests as originating from a common source. If none + are set, the default is to use the request's remote address + field. All fields are mutually exclusive. + properties: + ipStrategy: + description: IPStrategy holds the ip strategy configuration. + properties: + depth: + type: integer + excludedIPs: + items: + type: string + type: array + type: object + requestHeaderName: + type: string + requestHost: + type: boolean + type: object + type: object + redirectRegex: + description: RedirectRegex holds the redirection configuration. + properties: + permanent: + type: boolean + regex: + type: string + replacement: + type: string + type: object + redirectScheme: + description: RedirectScheme holds the scheme redirection configuration. + properties: + permanent: + type: boolean + port: + type: string + scheme: + type: string + type: object + replacePath: + description: ReplacePath holds the ReplacePath configuration. + properties: + path: + type: string + type: object + replacePathRegex: + description: ReplacePathRegex holds the ReplacePathRegex configuration. + properties: + regex: + type: string + replacement: + type: string + type: object + retry: + description: Retry holds the retry configuration. + properties: + attempts: + type: integer + initialInterval: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + type: object + stripPrefix: + description: StripPrefix holds the StripPrefix configuration. + properties: + forceSlash: + type: boolean + prefixes: + items: + type: string + type: array + type: object + stripPrefixRegex: + description: StripPrefixRegex holds the StripPrefixRegex configuration. + properties: + regex: + items: + type: string + type: array + type: object + type: object + required: + - metadata + - spec + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/stable/traefik/13.5.0/crds/middlewarestcp.yaml b/stable/traefik/13.5.0/crds/middlewarestcp.yaml new file mode 100644 index 00000000000..32c41e532de --- /dev/null +++ b/stable/traefik/13.5.0/crds/middlewarestcp.yaml @@ -0,0 +1,61 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + "helm.sh/resource-policy": keep + "helm.sh/hook": pre-install,pre-upgrade,pre-rollback + controller-gen.kubebuilder.io/version: v0.4.1 + creationTimestamp: null + name: middlewaretcps.traefik.containo.us +spec: + group: traefik.containo.us + names: + kind: MiddlewareTCP + listKind: MiddlewareTCPList + plural: middlewaretcps + singular: middlewaretcp + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: MiddlewareTCP is a specification for a MiddlewareTCP resource. + properties: + apiVersion: + description: + "APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources" + type: string + kind: + description: + "Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + type: string + metadata: + type: object + spec: + description: MiddlewareTCPSpec holds the MiddlewareTCP configuration. + properties: + ipWhiteList: + description: TCPIPWhiteList holds the TCP ip white list configuration. + properties: + sourceRange: + items: + type: string + type: array + type: object + type: object + required: + - metadata + - spec + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/stable/traefik/13.5.0/crds/serverstransports.yaml b/stable/traefik/13.5.0/crds/serverstransports.yaml new file mode 100644 index 00000000000..a5f5206abad --- /dev/null +++ b/stable/traefik/13.5.0/crds/serverstransports.yaml @@ -0,0 +1,108 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + "helm.sh/resource-policy": keep + "helm.sh/hook": pre-install,pre-upgrade,pre-rollback + controller-gen.kubebuilder.io/version: v0.4.1 + creationTimestamp: null + name: serverstransports.traefik.containo.us +spec: + group: traefik.containo.us + names: + kind: ServersTransport + listKind: ServersTransportList + plural: serverstransports + singular: serverstransport + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: ServersTransport is a specification for a ServersTransport resource. + properties: + apiVersion: + description: + "APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources" + type: string + kind: + description: + "Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + type: string + metadata: + type: object + spec: + description: + ServersTransportSpec options to configure communication between + Traefik and the servers. + properties: + certificatesSecrets: + description: Certificates for mTLS. + items: + type: string + type: array + disableHTTP2: + description: Disable HTTP/2 for connections with backend servers. + type: boolean + forwardingTimeouts: + description: Timeouts for requests forwarded to the backend servers. + properties: + dialTimeout: + anyOf: + - type: integer + - type: string + description: + The amount of time to wait until a connection to + a backend server can be established. If zero, no timeout exists. + x-kubernetes-int-or-string: true + idleConnTimeout: + anyOf: + - type: integer + - type: string + description: + The maximum period for which an idle HTTP keep-alive + connection will remain open before closing itself. + x-kubernetes-int-or-string: true + responseHeaderTimeout: + anyOf: + - type: integer + - type: string + description: + The amount of time to wait for a server's response + headers after fully writing the request (including its body, + if any). If zero, no timeout exists. + x-kubernetes-int-or-string: true + type: object + insecureSkipVerify: + description: Disable SSL certificate verification. + type: boolean + maxIdleConnsPerHost: + description: + If non-zero, controls the maximum idle (keep-alive) to + keep per-host. If zero, DefaultMaxIdleConnsPerHost is used. + type: integer + rootCAsSecrets: + description: Add cert file for self-signed certificate. + items: + type: string + type: array + serverName: + description: ServerName used to contact the server. + type: string + type: object + required: + - metadata + - spec + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/stable/traefik/13.5.0/crds/tlsoptions.yaml b/stable/traefik/13.5.0/crds/tlsoptions.yaml new file mode 100644 index 00000000000..054ffe6cf5a --- /dev/null +++ b/stable/traefik/13.5.0/crds/tlsoptions.yaml @@ -0,0 +1,92 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + "helm.sh/resource-policy": keep + "helm.sh/hook": pre-install,pre-upgrade,pre-rollback + controller-gen.kubebuilder.io/version: v0.4.1 + creationTimestamp: null + name: tlsoptions.traefik.containo.us +spec: + group: traefik.containo.us + names: + kind: TLSOption + listKind: TLSOptionList + plural: tlsoptions + singular: tlsoption + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: TLSOption is a specification for a TLSOption resource. + properties: + apiVersion: + description: + "APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources" + type: string + kind: + description: + "Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + type: string + metadata: + type: object + spec: + description: TLSOptionSpec configures TLS for an entry point. + properties: + cipherSuites: + items: + type: string + type: array + clientAuth: + description: + ClientAuth defines the parameters of the client authentication + part of the TLS connection, if any. + properties: + clientAuthType: + description: + ClientAuthType defines the client authentication + type to apply. + enum: + - NoClientCert + - RequestClientCert + - VerifyClientCertIfGiven + - RequireAndVerifyClientCert + type: string + secretNames: + description: + SecretName is the name of the referenced Kubernetes + Secret to specify the certificate details. + items: + type: string + type: array + type: object + curvePreferences: + items: + type: string + type: array + maxVersion: + type: string + minVersion: + type: string + preferServerCipherSuites: + type: boolean + sniStrict: + type: boolean + type: object + required: + - metadata + - spec + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/stable/traefik/13.5.0/crds/tlsstores.yaml b/stable/traefik/13.5.0/crds/tlsstores.yaml new file mode 100644 index 00000000000..0fd2501746c --- /dev/null +++ b/stable/traefik/13.5.0/crds/tlsstores.yaml @@ -0,0 +1,68 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + "helm.sh/resource-policy": keep + "helm.sh/hook": pre-install,pre-upgrade,pre-rollback + controller-gen.kubebuilder.io/version: v0.4.1 + creationTimestamp: null + name: tlsstores.traefik.containo.us +spec: + group: traefik.containo.us + names: + kind: TLSStore + listKind: TLSStoreList + plural: tlsstores + singular: tlsstore + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: TLSStore is a specification for a TLSStore resource. + properties: + apiVersion: + description: + "APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources" + type: string + kind: + description: + "Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + type: string + metadata: + type: object + spec: + description: TLSStoreSpec configures a TLSStore resource. + properties: + defaultCertificate: + description: + DefaultCertificate holds a secret name for the TLSOption + resource. + properties: + secretName: + description: + SecretName is the name of the referenced Kubernetes + Secret to specify the certificate details. + type: string + required: + - secretName + type: object + required: + - defaultCertificate + type: object + required: + - metadata + - spec + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/stable/traefik/13.5.0/crds/traefikservices.yaml b/stable/traefik/13.5.0/crds/traefikservices.yaml new file mode 100644 index 00000000000..c96892c41e0 --- /dev/null +++ b/stable/traefik/13.5.0/crds/traefikservices.yaml @@ -0,0 +1,289 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + "helm.sh/resource-policy": keep + "helm.sh/hook": pre-install,pre-upgrade,pre-rollback + controller-gen.kubebuilder.io/version: v0.4.1 + creationTimestamp: null + name: traefikservices.traefik.containo.us +spec: + group: traefik.containo.us + names: + kind: TraefikService + listKind: TraefikServiceList + plural: traefikservices + singular: traefikservice + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: + TraefikService is the specification for a service (that an IngressRoute + refers to) that is usually not a terminal service (i.e. not a pod of servers), + as opposed to a Kubernetes Service. That is to say, it usually refers to + other (children) services, which themselves can be TraefikServices or Services. + properties: + apiVersion: + description: + "APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources" + type: string + kind: + description: + "Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + type: string + metadata: + type: object + spec: + description: + ServiceSpec defines whether a TraefikService is a load-balancer + of services or a mirroring service. + properties: + mirroring: + description: + Mirroring defines a mirroring service, which is composed + of a main load-balancer, and a list of mirrors. + properties: + kind: + enum: + - Service + - TraefikService + type: string + maxBodySize: + format: int64 + type: integer + mirrors: + items: + description: + MirrorService defines one of the mirrors of a Mirroring + service. + properties: + kind: + enum: + - Service + - TraefikService + type: string + name: + description: + Name is a reference to a Kubernetes Service + object (for a load-balancer of servers), or to a TraefikService + object (service load-balancer, mirroring, etc). The differentiation + between the two is specified in the Kind field. + type: string + namespace: + type: string + passHostHeader: + type: boolean + percent: + type: integer + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + responseForwarding: + description: + ResponseForwarding holds configuration for + the forward of the response. + properties: + flushInterval: + type: string + type: object + scheme: + type: string + serversTransport: + type: string + sticky: + description: Sticky holds the sticky configuration. + properties: + cookie: + description: + Cookie holds the sticky configuration based + on cookie. + properties: + httpOnly: + type: boolean + name: + type: string + sameSite: + type: string + secure: + type: boolean + type: object + type: object + strategy: + type: string + weight: + description: + Weight should only be specified when Name references + a TraefikService object (and to be precise, one that embeds + a Weighted Round Robin). + type: integer + required: + - name + type: object + type: array + name: + description: + Name is a reference to a Kubernetes Service object + (for a load-balancer of servers), or to a TraefikService object + (service load-balancer, mirroring, etc). The differentiation + between the two is specified in the Kind field. + type: string + namespace: + type: string + passHostHeader: + type: boolean + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + responseForwarding: + description: + ResponseForwarding holds configuration for the forward + of the response. + properties: + flushInterval: + type: string + type: object + scheme: + type: string + serversTransport: + type: string + sticky: + description: Sticky holds the sticky configuration. + properties: + cookie: + description: + Cookie holds the sticky configuration based on + cookie. + properties: + httpOnly: + type: boolean + name: + type: string + sameSite: + type: string + secure: + type: boolean + type: object + type: object + strategy: + type: string + weight: + description: + Weight should only be specified when Name references + a TraefikService object (and to be precise, one that embeds + a Weighted Round Robin). + type: integer + required: + - name + type: object + weighted: + description: WeightedRoundRobin defines a load-balancer of services. + properties: + services: + items: + description: Service defines an upstream to proxy traffic. + properties: + kind: + enum: + - Service + - TraefikService + type: string + name: + description: + Name is a reference to a Kubernetes Service + object (for a load-balancer of servers), or to a TraefikService + object (service load-balancer, mirroring, etc). The differentiation + between the two is specified in the Kind field. + type: string + namespace: + type: string + passHostHeader: + type: boolean + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + responseForwarding: + description: + ResponseForwarding holds configuration for + the forward of the response. + properties: + flushInterval: + type: string + type: object + scheme: + type: string + serversTransport: + type: string + sticky: + description: Sticky holds the sticky configuration. + properties: + cookie: + description: + Cookie holds the sticky configuration based + on cookie. + properties: + httpOnly: + type: boolean + name: + type: string + sameSite: + type: string + secure: + type: boolean + type: object + type: object + strategy: + type: string + weight: + description: + Weight should only be specified when Name references + a TraefikService object (and to be precise, one that embeds + a Weighted Round Robin). + type: integer + required: + - name + type: object + type: array + sticky: + description: Sticky holds the sticky configuration. + properties: + cookie: + description: + Cookie holds the sticky configuration based on + cookie. + properties: + httpOnly: + type: boolean + name: + type: string + sameSite: + type: string + secure: + type: boolean + type: object + type: object + type: object + type: object + required: + - metadata + - spec + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/stable/traefik/13.5.0/ix_values.yaml b/stable/traefik/13.5.0/ix_values.yaml new file mode 100644 index 00000000000..a175c9fb974 --- /dev/null +++ b/stable/traefik/13.5.0/ix_values.yaml @@ -0,0 +1,392 @@ +image: + repository: tccr.io/truecharts/traefik + # defaults to appVersion + tag: 2.9.4@sha256:7c5f07ef67ec092b66dd8bdb56279ed876965553ee5ec59b5aa7456def5ed1f3 + pullPolicy: IfNotPresent + +updateCRD: true + +# -- 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" + +portalhook: + enabled: true + +persistence: + plugins: + enabled: true + mountPath: "/plugins-storage" + type: emptyDir + +portal: + enabled: true diff --git a/stable/traefik/13.5.0/questions.yaml b/stable/traefik/13.5.0/questions.yaml new file mode 100644 index 00000000000..fd0a04d97dd --- /dev/null +++ b/stable/traefik/13.5.0/questions.yaml @@ -0,0 +1,2951 @@ +groups: + - name: Container Image + description: Image to be used for container + - name: Controller + description: Configure Workload Deployment + - name: Container Configuration + description: Additional Container Configuration + - name: App Configuration + description: App Specific Config Options + - name: Networking and Services + description: Configure Network and Services for Container + - name: Storage and Persistence + description: Persist and Share Data that is Separate from the Container + - name: Ingress + description: Ingress Configuration + - name: Security and Permissions + description: Configure Security Context and Permissions + - name: Resources and Devices + description: "Specify Resources/Devices to be Allocated to Workload" + - name: Middlewares + description: Traefik Middlewares + - name: Metrics + description: Metrics + - name: Addons + description: Addon Configuration + - name: Advanced + description: Advanced Configuration + - name: 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: Controller + schema: + type: dict + hidden: true + attrs: + - variable: isSCALE + label: Flag this is SCALE + schema: + type: boolean + default: true + hidden: true + - variable: controller + group: Controller + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: advanced + label: Show Advanced Controller Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: Please specify type of workload to deploy + label: (Advanced) Controller Type + schema: + type: string + required: true + enum: + - value: deployment + description: Deployment + - value: statefulset + description: Statefulset + - value: daemonset + description: Daemonset + default: deployment + - variable: replicas + description: Number of desired pod replicas + label: Desired Replicas + schema: + type: int + required: true + default: 1 + - variable: strategy + description: Please specify type of workload to deploy + label: (Advanced) Update Strategy + schema: + type: string + required: true + enum: + - value: Recreate + description: "Recreate: Kill existing pods before creating new ones" + - value: RollingUpdate + description: "RollingUpdate: Create new pods and then kill old ones" + - value: OnDelete + description: "(Legacy) OnDelete: ignore .spec.template changes" + default: Recreate + - variable: expert + label: Show Expert Configuration Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: Controller Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Controller Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: customextraargs + group: Controller + 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: Container Configuration + 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: Container Configuration + 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: expertpodconf + group: Container Configuration + label: Show Expert Configuration + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: tty + label: Enable TTY + description: Determines whether containers in a pod runs with TTY enabled. By default pod has it disabled. + group: Workload Details + schema: + type: boolean + default: false + - variable: stdin + label: Enable STDIN + description: Determines whether containers in a pod runs with stdin enabled. By default pod has it disabled. + group: Workload Details + schema: + type: boolean + default: false + - variable: termination + group: Container Configuration + label: Termination settings + schema: + additional_attrs: true + type: dict + attrs: + - variable: gracePeriodSeconds + label: Grace Period Seconds + schema: + type: int + default: 10 + - variable: podLabelsList + group: Container Configuration + label: Pod Labels + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: podAnnotationsList + group: Container Configuration + label: Pod Annotations + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: Label + 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: 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: 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: The IP Families that should be used + schema: + type: list + default: [] + items: + - variable: ipFamily + label: IP Family + schema: + type: string + - 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: advanced + label: Show Advanced Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: Enable the Port + schema: + type: boolean + hidden: true + default: true + - variable: protocol + label: Port Type + schema: + type: string + default: HTTP + enum: + - value: HTTP + description: HTTP + - value: HTTPS + description: HTTPS + - value: TCP + description: TCP + - value: UDP + description: UDP + - variable: nodePort + label: Node Port (Optional) + description: This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 9000 + - 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: 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: The IP Families that should be used + schema: + type: list + default: [] + items: + - variable: ipFamily + label: IP Family + schema: + type: string + - 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: enabled + label: Enable the Port + schema: + type: boolean + hidden: true + default: true + - variable: protocol + label: Port Type + schema: + type: string + default: HTTP + enum: + - value: HTTP + description: HTTP + - value: HTTPS + description: HTTPS + - value: TCP + description: TCP + - value: UDP + description: UDP + - variable: nodePort + label: Node Port (Optional) + description: This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + - 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: enabled + label: Enable the Port + schema: + type: boolean + hidden: true + default: true + - variable: protocol + label: Port Type + schema: + type: string + default: HTTPS + enum: + - value: HTTP + description: HTTP + - value: HTTPS + description: HTTPS + - value: TCP + description: TCP + - value: UDP + description: UDP + - variable: nodePort + label: Node Port (Optional) + description: This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + - 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: 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: expert + label: Show Expert Configuration Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enableFixedMiddlewares + description: These middlewares enforce a number of best practices. + label: Enable Default Middlewares + schema: + type: boolean + default: true + - variable: ingressClassName + label: IngressClass Name + schema: + type: string + default: "" + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - 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: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - 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: capabilities + label: Capabilities + schema: + additional_attrs: true + type: dict + attrs: + - variable: drop + label: Drop Capability + schema: + type: list + default: [] + items: + - variable: dropEntry + label: "" + schema: + type: string + - variable: add + label: Add Capability + schema: + type: list + default: [] + items: + - variable: addEntry + label: "" + schema: + type: string + - 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: advancedresources + label: Set Custom Resource Limits/Requests (Advanced) + group: Resources and Devices + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: resources + label: "" + 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 + 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 + 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 + 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: promtail + label: Promtail + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: loki + label: Loki URL + schema: + type: string + required: true + - variable: logs + label: Log Paths + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: path + label: Path + schema: + type: string + required: true + - variable: args + label: Promtail Command Line Arguments + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: arg + label: Arg + schema: + type: string + required: true + - variable: envList + label: Promtail Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + - variable: netshoot + label: Netshoot + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: envList + label: Netshoot Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + - variable: vpn + label: VPN + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type + schema: + type: string + default: disabled + enum: + - value: disabled + description: disabled + - value: 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: 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: Sock5 Server + 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/13.5.0/templates/_args.tpl b/stable/traefik/13.5.0/templates/_args.tpl new file mode 100644 index 00000000000..68a0c916ce1 --- /dev/null +++ b/stable/traefik/13.5.0/templates/_args.tpl @@ -0,0 +1,172 @@ +{{/* 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 */}} + {{/* 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/13.5.0/templates/_helpers.tpl b/stable/traefik/13.5.0/templates/_helpers.tpl new file mode 100644 index 00000000000..ab55e4e7ec6 --- /dev/null +++ b/stable/traefik/13.5.0/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/13.5.0/templates/_ingressclass.tpl b/stable/traefik/13.5.0/templates/_ingressclass.tpl new file mode 100644 index 00000000000..909e249d6a5 --- /dev/null +++ b/stable/traefik/13.5.0/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/13.5.0/templates/_ingressroute.tpl b/stable/traefik/13.5.0/templates/_ingressroute.tpl new file mode 100644 index 00000000000..7f012c92350 --- /dev/null +++ b/stable/traefik/13.5.0/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/13.5.0/templates/_portalhook.tpl b/stable/traefik/13.5.0/templates/_portalhook.tpl new file mode 100644 index 00000000000..e3586c5d4e9 --- /dev/null +++ b/stable/traefik/13.5.0/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/13.5.0/templates/_tlsoptions.tpl b/stable/traefik/13.5.0/templates/_tlsoptions.tpl new file mode 100644 index 00000000000..3e5aad3bee9 --- /dev/null +++ b/stable/traefik/13.5.0/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/13.5.0/templates/common.yaml b/stable/traefik/13.5.0/templates/common.yaml new file mode 100644 index 00000000000..c933a3d08e0 --- /dev/null +++ b/stable/traefik/13.5.0/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/13.5.0/templates/middlewares/addPrefix.yaml b/stable/traefik/13.5.0/templates/middlewares/addPrefix.yaml new file mode 100644 index 00000000000..233b23834c3 --- /dev/null +++ b/stable/traefik/13.5.0/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/13.5.0/templates/middlewares/basic-middleware.yaml b/stable/traefik/13.5.0/templates/middlewares/basic-middleware.yaml new file mode 100644 index 00000000000..9ba8e5c5d93 --- /dev/null +++ b/stable/traefik/13.5.0/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/13.5.0/templates/middlewares/basicauth.yaml b/stable/traefik/13.5.0/templates/middlewares/basicauth.yaml new file mode 100644 index 00000000000..ccb541742f0 --- /dev/null +++ b/stable/traefik/13.5.0/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/13.5.0/templates/middlewares/chain.yaml b/stable/traefik/13.5.0/templates/middlewares/chain.yaml new file mode 100644 index 00000000000..f87994f7956 --- /dev/null +++ b/stable/traefik/13.5.0/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/13.5.0/templates/middlewares/forwardauth.yaml b/stable/traefik/13.5.0/templates/middlewares/forwardauth.yaml new file mode 100644 index 00000000000..4bdefbd5c01 --- /dev/null +++ b/stable/traefik/13.5.0/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/13.5.0/templates/middlewares/ipwhitelist.yaml b/stable/traefik/13.5.0/templates/middlewares/ipwhitelist.yaml new file mode 100644 index 00000000000..1179245017e --- /dev/null +++ b/stable/traefik/13.5.0/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/13.5.0/templates/middlewares/ratelimit.yaml b/stable/traefik/13.5.0/templates/middlewares/ratelimit.yaml new file mode 100644 index 00000000000..144b9d8bf38 --- /dev/null +++ b/stable/traefik/13.5.0/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/13.5.0/templates/middlewares/real-ip.yaml b/stable/traefik/13.5.0/templates/middlewares/real-ip.yaml new file mode 100644 index 00000000000..2dd1ae030a4 --- /dev/null +++ b/stable/traefik/13.5.0/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/13.5.0/templates/middlewares/redirectScheme.yaml b/stable/traefik/13.5.0/templates/middlewares/redirectScheme.yaml new file mode 100644 index 00000000000..f2413f84e19 --- /dev/null +++ b/stable/traefik/13.5.0/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/13.5.0/templates/middlewares/redirectregex.yaml b/stable/traefik/13.5.0/templates/middlewares/redirectregex.yaml new file mode 100644 index 00000000000..46e3e724dd6 --- /dev/null +++ b/stable/traefik/13.5.0/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/13.5.0/templates/middlewares/stripPrefixRegex.yaml b/stable/traefik/13.5.0/templates/middlewares/stripPrefixRegex.yaml new file mode 100644 index 00000000000..007c166ff39 --- /dev/null +++ b/stable/traefik/13.5.0/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/13.5.0/templates/middlewares/tc-chains.yaml b/stable/traefik/13.5.0/templates/middlewares/tc-chains.yaml new file mode 100644 index 00000000000..409766daa89 --- /dev/null +++ b/stable/traefik/13.5.0/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/13.5.0/templates/middlewares/tc-headers.yaml b/stable/traefik/13.5.0/templates/middlewares/tc-headers.yaml new file mode 100644 index 00000000000..a0462f1fd73 --- /dev/null +++ b/stable/traefik/13.5.0/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/13.5.0/templates/middlewares/tc-nextcloud.yaml b/stable/traefik/13.5.0/templates/middlewares/tc-nextcloud.yaml new file mode 100644 index 00000000000..6a3019d56c5 --- /dev/null +++ b/stable/traefik/13.5.0/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/13.5.0/templates/middlewares/theme-park.yaml b/stable/traefik/13.5.0/templates/middlewares/theme-park.yaml new file mode 100644 index 00000000000..92a4257e279 --- /dev/null +++ b/stable/traefik/13.5.0/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/13.5.0/values.yaml b/stable/traefik/13.5.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/unifi/11.0.44/CHANGELOG.md b/stable/unifi/11.0.44/CHANGELOG.md new file mode 100644 index 00000000000..25788292670 --- /dev/null +++ b/stable/unifi/11.0.44/CHANGELOG.md @@ -0,0 +1,99 @@ +# Changelog + + + +## [unifi-11.0.44](https://github.com/truecharts/charts/compare/unifi-11.0.43...unifi-11.0.44) (2022-11-03) + +### Chore + +- Auto-update chart README [skip ci] + - update docker general non-major ([#4286](https://github.com/truecharts/charts/issues/4286)) + + + + +## [unifi-11.0.43](https://github.com/truecharts/charts/compare/unifi-11.0.42...unifi-11.0.43) (2022-11-02) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major ([#4261](https://github.com/truecharts/charts/issues/4261)) + + + + +## [unifi-11.0.42](https://github.com/truecharts/charts/compare/unifi-11.0.41...unifi-11.0.42) (2022-10-25) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major ([#4182](https://github.com/truecharts/charts/issues/4182)) + + + + +## [unifi-11.0.41](https://github.com/truecharts/charts/compare/unifi-11.0.40...unifi-11.0.41) (2022-10-19) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major ([#4122](https://github.com/truecharts/charts/issues/4122)) + + + + +## [unifi-11.0.40](https://github.com/truecharts/charts/compare/unifi-11.0.39...unifi-11.0.40) (2022-10-12) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major ([#4071](https://github.com/truecharts/charts/issues/4071)) + + + + +## [unifi-11.0.39](https://github.com/truecharts/charts/compare/unifi-11.0.38...unifi-11.0.39) (2022-10-07) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - update helm general non-major + + + + +## [unifi-11.0.39](https://github.com/truecharts/charts/compare/unifi-11.0.38...unifi-11.0.39) (2022-10-07) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major + + + + +## [unifi-11.0.38](https://github.com/truecharts/charts/compare/unifi-11.0.37...unifi-11.0.38) (2022-10-05) + +### Chore + +- Auto-update chart README [skip ci] + - split addons in smaller templates ([#3979](https://github.com/truecharts/charts/issues/3979)) + - update helm general non-major + + + + +## [unifi-11.0.37](https://github.com/truecharts/charts/compare/unifi-11.0.36...unifi-11.0.37) (2022-09-27) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major ([#3918](https://github.com/truecharts/charts/issues/3918)) + + + + +## [unifi-11.0.36](https://github.com/truecharts/charts/compare/unifi-11.0.35...unifi-11.0.36) (2022-09-25) + +### Chore diff --git a/stable/unifi/11.0.44/Chart.lock b/stable/unifi/11.0.44/Chart.lock new file mode 100644 index 00000000000..3cb98a4b866 --- /dev/null +++ b/stable/unifi/11.0.44/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://library-charts.truecharts.org + version: 10.7.13 +digest: sha256:2f2267115af9bdc61a64db6317564e2d07f4f27ccb0627720c8a63d82b1786b7 +generated: "2022-11-03T02:52:51.70334913Z" diff --git a/stable/unifi/11.0.44/Chart.yaml b/stable/unifi/11.0.44/Chart.yaml new file mode 100644 index 00000000000..d49825ddfa2 --- /dev/null +++ b/stable/unifi/11.0.44/Chart.yaml @@ -0,0 +1,30 @@ +apiVersion: v2 +appVersion: "7.2.95" +dependencies: + - name: common + repository: https://library-charts.truecharts.org + version: 10.7.13 +deprecated: false +description: Ubiquiti Network's Unifi Controller +home: https://truecharts.org/docs/charts/stable/unifi +icon: https://truecharts.org/img/hotlink-ok/chart-icons/unifi.png +keywords: + - ubiquiti + - unifi +kubeVersion: ">=1.16.0-0" +maintainers: + - email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +name: unifi +sources: + - https://github.com/truecharts/charts/tree/master/charts/stable/unifi + - https://github.com/jacobalberty/unifi-docker + - https://unifi-network.ui.com +type: application +version: 11.0.44 +annotations: + truecharts.org/catagories: | + - Networking + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/stable/unifi/11.0.44/README.md b/stable/unifi/11.0.44/README.md new file mode 100644 index 00000000000..adebd3465d5 --- /dev/null +++ b/stable/unifi/11.0.44/README.md @@ -0,0 +1,107 @@ +# unifi + +Ubiquiti Network's Unifi Controller + +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: [unifi](https://truecharts.org/docs/charts/stable/unifi) + +**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.7.13 | + +## 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 `unifi` + +```console +helm repo add TrueCharts https://charts.truecharts.org +helm repo update +helm install unifi TrueCharts/unifi +``` + +## 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 `unifi` deployment + +```console +helm uninstall unifi +``` + +## 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 unifi \ + --set env.TZ="America/New York" \ + TrueCharts/unifi +``` + +#### 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 unifi TrueCharts/unifi -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/unifi/11.0.44/app-readme.md b/stable/unifi/11.0.44/app-readme.md new file mode 100644 index 00000000000..b5cca3d6f5e --- /dev/null +++ b/stable/unifi/11.0.44/app-readme.md @@ -0,0 +1,8 @@ +Ubiquiti Network's Unifi Controller + +This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/docs/charts/stable/unifi](https://truecharts.org/docs/charts/stable/unifi) + +--- + +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/unifi/11.0.44/charts/common-10.7.13.tgz b/stable/unifi/11.0.44/charts/common-10.7.13.tgz new file mode 100644 index 0000000000000000000000000000000000000000..c3131de86ff390f136bf19240caede7a29b33ecd GIT binary patch literal 49153 zcmV)gK%~DPiwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0PMZ{cH20TI6QyrDey6wZF_#!-M4rqd)93`-9DW-KDLwI-Pt(~ zL_!kA6u|~SIhu6d{X4i4;6vWH~vmJ{B3WY+UP*o@tLNc3?qvD=vcLo_pw5#7MR&3!=G-N=)IpmPC zjslf2L_?BrlyC_(>+bDt_j-FfJFOeExFs}V2dy^98*8-~ zU!>^3px2rkT>8DvUZ+27J$Y1C3#{oDUpAmje5fdG1NoYS~ihjr-jn<|5 zEv9H9D%R6Ihux6m7G?uzE}`fBPOmfQ4f?%T{cS_hp5-q(u%t|Ybj+O>Z*08*gvaM z*zfP7{lWHd{Azc&JASn{Xwddr)J+g)Q$qN<)HU_$scRuOq^>Ey8dkk1Mtj5lPT1Rv z#2>HVU=WV?`{8&G4hK@@{$Q}TKYTS3+Cjg+({IprJ#`P` zTex7Ft|5sKLv)Vlx|Gdp*3(v$X>0He$?H^U1kok(c4t55;8(qwq6oJOdofQYj`u z2oo?uAY&-%w16&k0KR-(4h<#=;c_mm1nCr&a9hHfrX-FLwJ4(mj$)+ez468Ed#K43-S9 z8vixGstWh*(;b_2J93uIMu>{p6(NQxia<&tro>Q;L&y$5e+dI+>4d@v0mdohXtIz+ z-w+CpEi!CN^Z`ezCyKW&P)HHv2yE!}WD~$70v9BXaWeUkMv!a16tFIJZ!S?Ku=mL^ ziV;U;5IJ}S>{yaQfB|@t5Gtk)X5yQ{Ura6Pf)Fp9?&mZvv^0aCL6*Qd#IcxqvX=9E z9WX4T69qv2RjBF=ZJ}-oDK}CMit{s z`Tz`DE$l5}O3>#kmA`EHrSfISe_y*yXjMcmn&1+}DCC3!7{}z6$yEVCwg4#(Z*VdJ z5JY%9Ml?6>BOLNAfM+S8946c@B$r2rZ%@DvA5K+g4CDh4$lrl(*DMU0)n_x9L>p|= zf-xG9m<7`J*wTgMOs;?d>4Yt*Ej~L{52Hxcz=@SGfD;2LlT!+a(H|`gv`*^d^#UB9d^~%9bs}_sMgWWP zWXj_OfH6lDF^MKl7>98TVlu&@Bo9bP0!9=;$qBb`kplvQ18|I)LP_9}kXyhAxJ7cI z6{e0r11io(5lE~cREidmDg%t;MN3iS=;HVQjA6`>rl6QeM`jqo6`rAgkp#7_{`UZU zxH@XJQpm&UX+k(2FZ4>>^5keLhim~PqsG=jpOZy>C@%LClpv*$8>L7CP|ErYrmhB{ zFxC((U!Frg1sM}$lY>5o6pIQ>mP{d^9)Rz<-<9f#)~1BJ?9(t=XkR;vrT=38GSXpUC3HsC>ZP&q~% z(HTw<1GiHo2%XC!C3HkpK(mB_Tg<26>gsmJpBco7T1ZP1L-V7vB;Vj9l2Z%P ziBy|J5w}eNO%hmqQl);vN#v~5((cf+Qx!mwuOv5s>A;)e1kbV=fHRUMTtL?P*>_AV z4lISYNd?fpd^f|%h0*5j53<)&K;h?y1G?XHx_xy1;RDAp{+FCa=ZJJ(lYP}%3*r6)sbDaeD4&Eq@)06&wHLxKJKrwMrN=Arn zfrN1J58`2`(~*j-0Cy^Riz0v-m?=#bCZJz{wgqOQO_r$wV#$jarBV_Gq&Fx6kQuyG zL;8nVzH&`eIf$HD4-HVD=>*u6WN{>HTBYnqRr4`2AGBE_hKOcpOQ;wE6lP}CMUh_VTxW!};w4ZewS&NCA_$J+ zjB!LSNUTg1=lAzGiEuKhWi2{_VPl38h40Ho0!AJ4Nciis%!wR$1_%XOWGl2AkYy>~ zh^6naydFDXWZ5wP?XHO)7=Hy_0-?0ZuYrx}R1v0rzdmv#6(0+g zj?q{y_J&PaHu@(Dc~PRA!I_<6{--lLJMx(yMFtKtbH3a^15O(vih1CO%&mMW3TkCS zE4YpZbfkUSazo;l&>LlUTDwW=|3J)&&azFLyk^DBtYdbs-V(l6S~UKbu9lL>8p6h> zVM!$vcoj1Pm@d>-%%XugwGSM!3kgdoplBv&sENQADPkS)KGhtfHSR5d^uPK=Tm4ou zURJ%5j=&(OYXBKtKE}diRGpXav%zj{64n~-wP#TV$!*Hs#PqCb6a~LNa z(J>6=*q+A-GBKn8-a?8Fl*v0wShz|B50EX9Nkjc5YnQv-lGo;zXY*bfIFKnWWL z+JT2tI6KgPYj0@~O~W*(sXL;*WmTD&%%Ld()X&rNBX^^Q*-8MkL14_UUZ+3kbqCvp z$`>T#$gdJ1#&H5wBw5hw$p7nFyyP>19Nogjfd@Zm=@Gd=NrdElVhEfh^Y%wb1!+N= zajw_TnHUW*G&k7@(FAcM=p9nT!5CA!yHqRNOj%Xt{rft*Wuj0 zcmXaK35TDJYx|(}0vv7vW2Cj8BE*Oa+A*uS{#V~nAgW8(9)`VL&?kms>o1k%e1CG z7g{Q}C7(`5(Bx#(T9;S<>$Pmi@@7eiYC0h^N+_92{EZcBiREBlN2a#!OsS~b$AWS$ z8HVWP!wP^gB{S&?G+g9t^vD`#%EzvK811}}C&Gm&(taeZO)CBr&__rx@)G6N(@9~- zGZ=#iawr7S2!WWuNGfSo&y}zt1B_FgOpYOk8paV!j9m?Q8XJYvEc*heyTU0SOiD4K zm@hyWL#AAixv!K9wB`I6sVzJfPEnKz1KZR)64lgtEtc^G<7n1SNQBxU#nM@0EOzCa zRlCLu&ktmw%5iMjpB5~(e7Cof1QZHXvh zWvTWgaznTU@G3V9o*(hnlL+13TSFJKrVCfK&kr^vkC zY$Xk+DwQJL19to z0PO7Uw*dI??(p)b1JLUYjEKs2yX7zUjxoZ-kC^*?+# zE$<>Ik#po!6KF(~qxDFMgmT zOU;|H|C42D8Y969FqR(-W9f27Qy~S-gnXY|5W?SKHiJBzu7|aBC+3?>tc-n1@f^o! z;x1QWzP(T4g=qH;j**i2HjF^-!JV6WCoF`q))6fLL4h+O5x3RC!iacdvV2rxJVxOn zj8R?3YyoHayOK($(??Yb6AzQo>MYHr2x5hyNM|0kljduu2{XDlBjL*b>7E#juK&Qi;0QlUyMV_v$U=J zdfm-sQM)5!*0tN%s0%7qb z4|Itjz7wz8X;#hb_Vc4~yM_MD?(49-Pqqi<_iEtZ8pB_zHDPUb*K0{Nvojay1GBn@ z{cp_Z!rvJ{!UL=rJ}B6V}T{eQZPbe zLWM3VXCM}KzBIzs)k@K+)Q{25J^d=@SYE#5WMnlB9LWQ08yDzLk*6wc# z`%YtVE~bDLSf@#ZLt*4h$!+tF@LN&3V-y@7E&g5k{-c}phj zeR4u6p`U&uGMErovz@BNG{8yDX==j{BnT9PFq)+MzpePRU$!x+bVqEdVpPkZvaQONOZug*9{&hhVA@#yQN@BAaKNPz>YT)!$VTx{cHBrW(LXYz}Hr$Egm|=(rOgnZ)Rl!|-Mc zoXb_>ID@f%aiPY+zEOb}=^Hr1@xnN$9T0^8Je-2DD2mNaTfTNn=UR@&>G^znOZ<1& zZ33G;mWokVe(wgu?W_iJeDAyzh@oul7T~ll|Ed&m0#uhmT&bry;ley zNa%$wSqFE%HpyUQ+0}y8toG`?g-rHZ#vaJvw|uWpe(Ct5`zZ(gNsO32)Quu-mN~;< z*Jhm96Mo8f?$~NLVI08-kg?N_DE%pwO~}#ch!LjBJ`xm)^wbk$Bm-^L(79@WG!Jv! zbF7Q};N=p~>#=IpN?~{XmZN0WZBG|qE~W0f^J+I)1!Nf>Av&1PG=u3uNukwoY+~72 ztUfB#3zX|-0()@7RL*?H0XDcTxNy`pWR{+cV=h6G?)_;9r> zH7AemscGBj$!b|@T6uI$+Y%QnQMC^#1|w#l_(=;6B(=8s*I6p zoI*6lH}034eWt=ZQWzq0>_8xFPortbD%wnL=H@DPP5~FDpb|_|By4#BU;Nfh=WW^O z-MpsysN2hrbJ~&gf*mZb`Apm}aTuE(I>wQRKBt7)$V=TiN}_hg^g28)(pJl`wwV1m zX^$Yop&z$x+WtdOede;22~PMn%{sGq`HPjAb~4`Y03;Kfe6A_VW7dYD48<1{DEOTl ziVtjJ8V7HL~d>wYzH2Ec; zqzd&P36p0{B~pHTgIS?vc)O!UO{*iLM1)=H#O$fr3{0zj_+ich)4lVf%c z`LqL?p#>UhGrOeW)fbR2l4mdrBg zIquX-XWgnfD~M(aP*m_}W5`k^ZwA>hm7c#xi1Ch)2a)Vgynh z;0OKDQRBg5_k@NG(N^s1aZQ`sGbirBH#cS)%FsQ#U*xZ8A)*|Q<<5W=GC&^UJwlXw z`;I>Q+k*>LOk7lOQ^6~Y3kok$y+7#4M13LV(JKjNzPo5$M)b1aE}!j!8Io2 z0E{4A#%cHFvW8=*Blv29-*SBH_Uf_OUN7M4#Y@OdR@PY>Hj&OlBVrnGh1;Cyc^z{+ zsHQ1%DEJ(6{_#lj{U30nz;-&ev#ZeGIz6vENX~9iX=C|7uwxpd^N&Yc`p+NFw**IQ z0W?eb;uzB{z2I%-Q*KKxRx;^|U^p2g;p`-(bJwgI6B^p=L#fPcCHmr!{%0J=QuUE` zQ?jr*@~CzLD05E0sW@)?v-DJOq82L^@j>EjhK$ALZ^jz}yGK$!b^j*NxhCUlK1J86 z`hR}f(na+#5mEBH_IG*-Wo}EOjQg`hy?-Y#QVmMvWYmCwsAFQwyBm1yg3WgsWOWqD z0Is$Q;udvHfO|A2L%7DKV9qMB4e+W-6JQU={Pu|x(0q7_aA-LEn{F{k-dp0$b@QXnUIjuOCBuT-bX z^|M5Jj8OzO95gn!KtjB#QVEp-NOB`sOqMCJ{)sB|RUkFpLxvfsr_^K24lN68dA5-?=r3zE^c1nJ=LLAwk?lKj(L!XRB1 zpF9AcI!+c12v|01t8lV}89ua@K$Oo={Mm>mB-xeToGf}X4yy@4H_*qntuSQfpi^65!ITRg+O8dd3k0K|DdySZTD%8D(nA2{AKsR0ak& zf0z!?(;ViRf{9%u4MPhYrjQEdir*rX02sUHJz5TPtiv0YA!K_Irkl$HVFe0NAwiV2 zHq|0+FfXo7T~)cldo)84&ZMg~P|1dZeAR`3&(bji8yAP~+9Md=2==lkt~Sj?*FbHU zq~c5iSTLxl%j}kzUOVM?DGXG@zJ!!}c9-~HNPYZXw*FC3>=PIx$i=8nbRry0k1Z)! zLum3Uv3w^J|4WIDnFI%PZ}br4Q$r_{1TR2eO_1LOYs?{y$%NgJH|CIbMfGRycw+8Q zvKq}&A}>GEv{^dRqVyeyna|R1dVv3U3_4!aiC)>Y`LTLh}{#-{9uDSa3L1 zCpfhKOOz?QClm=xeZ?(~rf+t{rJ9~1I>U@fPn13sG$pr*N?SOc>CB-F@$cL(h*rA0&q5lfnE`mCI(fICgt;>1Ky96|WYl^z;b}IGm#J#+3-`FrUKZ9AyPRk|f3&UL+HIQf62cU;Z2Nt@2JbU|-|Lyf6Ez z9zQ%28@SJ`{2Q^db}{4}T*r5+V0&ir-!5S~#|Qp9c1k<_eLUB+O1Y_=$7&=#YLF=k zrF-%oPBbG~l(S6zx-{+^02E-mk8xmM0pp@op0({k&-tYGi)M?q$rn|_S7w*B32T|M z{?1!He|ejtH8gOSaW(`?08MFKIrAk7V-=op*b@UPU<nA?nGA}+>Z z5~5B^;V5?qO*UJmQ>n^u9GMl>b1*;-pqONB6|kqzsUm0#v#H(?FZa z7TP&6gi=}8JhRz>XYljo4Z1x5f5Qn!6GZ=0vWKbolaT6vQ~7Y!m)j{yJ|qls%*Jxh zvG836`sBm*Hzig7vyfqqOCoR*>*IUu0me+il;e}bl{B!86jGK8TkbH%kRcn>r!{<( zaEjI2F5+QVh3X1wrKymdr{^ZdTNTQ));>TkQ5Z#SjX;|d$%BZ8ZHYr$NIdyx8!F7Z zn=Pjwc3g4lWCrhd`n{f#0v1yx$=V<=(Yhg-1?JuD?QO?Ikr%7U z6WM9mBo_xQ@B;jdK*ln8+Z071naxlVnSE~KzswU%>6+?H2>~&JbA4t^ri~FSA7YX* z0Xdu!>;ypyZKI=-&A^xufD^G6$m4QTA@G^GZj5G$SgM_DvHHTK7;_#Y0oo$61y~kN zMdR;qg2nK5Oyo;MZ19Wehf^&}R9_Vp$0Ux)t;`|)0>naGYylYkGhAl0|<~kjjEvAdU-JA?uY48vo(^!$G0W7~UWmW-hoxuF__wka5-$ z|Fz+wvZzS|s!jl_zy0i$Enq$r?pl-e&Hb2TlHZkCs;@uz+QyZ>eNe1<>TU-WOe3_o zIifHY{cp>QWOW8o6}4oOM@BLhOUJ7%4VHybWbX`E+OiGN{dj(+o9}>A-k@oqukw_K zBXKe&TiQoPG7kPuG75xPQX=c1D`iyYW}meoZ%@fg%78A(Xgj~_LdY`wp3hAP) z$FMoGD5~Gc{Lkt8(?Z26WrGV@7SBMJVAIsz6ws8rrx#MPrvg+wrnBZ^vV$8u6(VUgFx5L-&Lit##-}nOeJM?K4Vdw%v`8&=UVuXx z=Z7N{Lb?U8b*RhJzzI?kN~{Aok>r&}79DcS-_FjXQn^!p9r-&w08n+MN8WgZ7{8WF zvU$Tuc(ZeDEKB=ZUKM(+?j+4?%P8&Z%5SB^31gS{O?M5xRYB)BIF2uGF%PFs-_U1y z%TJ^e*0bx=^ZB+7O0W95TTI=ebpf`yFOHB9IW3Q(+745N%=C&jzXx1f?1 zn>1|dz=PR;NE1UMC#iML^wOsHHUzZGK=evocRN;>r~D{RZc9puGEExd(iwZ8UEm zc%CNW|2qN&{WT%d`{A|y;JZ=l??;t(qy)W!R)sR57wQUiA|#Qzl>kw#R!IF$MHH(8 zIp3a|;UL{a$q1!uK}y@4QFXdink7k@61mXA`IW8}&PHG4!DO-I$_W>~-8p&;Igxkw zZsNkJ|F}}aBc9W$zSLXVMft_s#@Ts9WRyO&uFSUdE4L%aVLQT9<;`&7#ABip^>6}G zsv7Y|!vG596%eXta;dcr?si)!74~OB5=RUa5pcc)`tVG*GiRd3pe9L}HvfS{e+s!B zSfOJIHF1g(A7w5khz6!F(v*ip)cFdSrsjSCH7`u=1tE7*I5k5p@A`6>%5n8d*cz{6 zOjQnDS9exH@baSYnA{qX0l^QLJ2%qHd&i)>07YL(Oz|9Y1THUs6oO-=20FpqQw1;J zt*mR{7#KjGbNi{F`L)~Nd&to4b{i#vf>E({M_nx>)2ieXO_&+-Y>f1I=r*MW3U3e- zd=v^z-{d57T34+VaX2xjT=a&6o{{2Bb#K(g56TKepHq3m7B)K+l8qB?g)jo2aCA)> z{A7f&hmyK>E4K{_=k8s3m}i{HRsG@$(OJ19`}rBA#BsRYOSbG}kTbT7o5QUvz4Jl` zpg$N6`p(-bjDVLI%%q^!*yahZoOYZ7FJ3%K>MIGDqVWNE*wj~E1MZJJ6&4uo_IrDZ z51hPCB|b=O9-=iE!8L@c^QM4xGN%*{V;9nH0DXg_8oJK1BpMZ|F+}aEG#65!uAAke zHqV7g;IN)jmQpekcATS;T+0F3cMN3~F!17IL zb$fz5dMng2)uupUEH^h2ZZf$=C`E}-+Av}Ql)g-gFfLZ0U*f#LqI9`bO|A=DS8zi~ z;F&|mR{x4dAw>}j4AY1HReUm4Axr>*Y@x-yWUPd6q*E|_xOjW1@6mVG1ThB3-wW=| zXzXl7U!VxH^}9tywPrn%MW41)Gr`!=X#H;Kip@Hv3qNt!NHQUJ>YA$9uxqOD({?S4 zadZaxJ#=TQo{Vuw|J1v8 zTgA@(PM$Acx_@a&wZkUsl6J5TLK(#wN-0iMmbVkl6u@$Yy&+v)d`*$PxID92S9CPR zhtp2$FWs+STVKA|;L?DH9mRnixv|$Nvt0n%x(*%#(D|qo)=5l8Fz(>bN5V8V*VO8Q z6ebe{Ug9J|pSQqEED=3;Z7bu?C#7bNygeKNsoie3V2ZVMd;o%*ebxyR+zFF#EUf!^ zKWN?HBsu_k!|;%E7*2%-d2I8Ww`Pb#6=G>lFyPPaFJHjR;$8RhrNmjZZf>K}Y2xJV z__`-wzkVmXiIT|lxbUZ-Si|wJoBzT(f$`nvy!)(}|J!?ed;a|I@9gaCJkS59c$Q5@ z#RJ|1%%@P*#B&O$y0srVS|cz8Uh0(OCWPeRwY(?6RI*nT;Y4oHyST=9)X6xGO`(nk z6@boW5xjIFuv-E5m^z_j?asgWzRCB6N+@An&K{;P&>=>AUg}%PP_->y(FlD&KeWce>#MC^L?# z4_}2v?!IvcRM@zl9G=jQ3N`&|yq$(A#Otdx&OeAxx`(g92HQqUhGV;pFzq9HnVi$>DHhRR)YN?K~U)n8YZD-yCSkaVx5gm56cli~HUI;IiL zk`?rE=gfu{0p(&HnMc*_(Wc8K1%&PZX9;`ZF+jiQxlo)5&i8`gl=r6wW?v}qu+?a~ z^0#Amnu_SGZp7Vm|^3ectt zYPo4pv=VCc{}55$y%zsf9-4a@0xR_YL4R*p(Es;_z239_{}j(M{a*}!M+J2#BS5Xy zPQHJs%9iGqIx;lQ;#mA8=2+Vm74N0XKuZD9#*ZY95S4|jSe!!k6I#?44&3~>fv&5? zjf3E8Z$7on{{pX2T_YX04WT57PeFZgd#3={bUNc|n@!O3al2cqc7BUL{q^Wt3>p*m z4+vb4){MzP2S!%A-C3KufkaSsBJYhc>|#e4ua)kg;z55bt4FO>1Gr$SJpO5mdtQjTq=}|$( zj(w?he?x+N%fV?7Y?#j_f_5B2I=ac`%1P#SS6(Y-;>^@7DUG_gqH8ZTZjx{A-hpu9)o&}?G!fbD64l|l9nZ*E~Mv|n4e2T;Xfp(kH$~Y{R=ph*Y=i-!WT=)|G-)7JGdOMp7Y9T3{Gdu_yw}jwo9iHKyRtj zL^;*yb9;H3Jws)VgvgxZ9s%^Zu7C&;((3cOSdmCJ!TDU=Z_<&~N!1%8Mn(*c?%<{| z*jz@ns5}`=T!llarPIs=K={+mj-mYcF;{z5!Koow0aC%$8x(~@1%MjYriL37TG;f! zRPcv9ztzcWS2UX?l?|^q946$W>2R3yWtGFBKQyH0J9hB7lHGDJ=&E|sRTy~qO@=umF9X1QxIS)uWonr< zGNf*9;Jy=qZ!wLBMHBd0mvp7B{F%H$P zR$ZOc7L$S3<%6Bxp-%nt2THP3{6@+Az>PZB#{ieFGp3Nc%)=zIwdHD-|58WtW#P87 z8R-?)5?CKBbU&-w-ezApPH7Br41#mHmuYi63c%ewAApm`r0NJ~ZHSWoOD2R{N|QnW z|IHS7IamI(Qr~YXIy_$;2BQ-&7)V}X1k0!ACWPm%ih>IE@e(trq$_#n>OqT=^8A6s zpr%W05VYG;84!Qo3)MikR0|-_lmdRW2`-#~VL7fjgwmev-t$CcKilWgf`xu%5hZilgHS7kC$2gpsn zYyGa!$rY0&&mQ~rtCxgUPCrhhjp~LM4DNqa zU|tdM^*)8aWN5XQ+b4-oR^`6nvF?UiNmghsK8&Jvp>@LO&JgtgG>%7pUVnbur;+^E z*U>+g{O@m<+5Uf$$I5@bg|R`=7*UjjIGKP6=DAwCS#SaXoTzm9dUxuhxqtOe ztAo4I@)Rq?+KRqf3lEyO%7 zd-QnupLR?6pN4zS=Rcq1sf+(}(~&-L@SkaVS?Hf58m%mF|&a{&Mmx zjreP*jMvS7lb~1Xf9fLZN7MhdcLpWcMe{Rz2F`lgN^ECiEmSL7nU|ZVB z8&vDEU6%1-4ZGL0Sx67Dp2yb751~4+fV21j{AzC>$dma`IZv-+8S;6p(n7rI?VIfC z6PkwpNA*Q&yjb6yC!R5mk?Lxf&(f~_o?jnTr;At=V{(IyRuskVfFnY6(_$>`dSm8XsZd08S3efXk|3KsOT+PCFxC-Ic9{4N03 z^{$?Ol2KJV;<>&~A)j7fYl}nYCakqplttJFRoy~zEQs->dGS1 zIOa+%R2{JYi=7 zaF(?xhiknySLj9aG%*@c1vK^P4USQja`^A%q<_R`nf%uipnI)3<+1GlL2sw1{|$!E z`rng0b@JaF2U0^1%pw47){=rf9b?7;8CTlXEto{ICagGJBxH+nK96yu%>^r#t4)4l z&M`fb#jl%xLWAFScx`*1-9NFD=`MTdWKPdg`r|FO5bSIqy>-+s>j_asm0 z{O1E~|5k{|eD_y>tlIq5pH}SsdZn6d{dyJdm+WJWz;E;B@_#O`-@QNn@b+YlU1LGL z-{*$0V4;WFE7nwa{B7czO$O2a4UXf>Tg=0$-`bngi<6%Z-@bKQ3*MgvPLYfEAFfWW z`(BCu-k{Up?esdmZhsK8yj)`DzEVZZ8m9QH;_>v2qwMCR9_!WJthy5COcaZ#5-ab-Mu2Z=Ftbop) ziN9Mx{M`ce`*)#!J(m*d-0|h0XT)yC5KYv*eM`%wkg;1rBSjgM%->KlQ?Uw4gS$Xu zBiYvW$r>^5;9m}jZ~`CPP@UXK&|ygy6_b({#^Fj?0_DgHv}JEmrn zU0=4aCh$SKO=-+5NIEvisxt+4bRvs~=0(@yW%diQsJ}bnRV9zoj+2Z2nt!?>#+$ ztNeexVXt)lxA*M-dy=Ql|954^{y{u|T4XGh8P4WHwP!C!>7Kql>#M5@jVvJJ`S~^< z!Mo>ly8zDc8vLWx;@kx9mmQP!Hf~O9p?|7N_N8cdJemDoujtHlU!9TU zf)K77&yNy_m%?~v3&zpRIarYU1y{IBeem*Pu_f@;ckc+|T8TEAI57MxT=h|&+%s@> zdHvIe?@z8TPmV55u8Lk8zphv7!{y1v<@w>!Nuf@|5%WAj4%ow^qm%Qi>*KS_b>PA< zL@B?H66OQ0KP&3jrzGQum5`C%tr8+NM@O5r6d}g1aawBX_~i2H`tX&|-+3B?ja-~=mfhvv>PNE}>6Hei zSQ-FMHjg0CCzKs&t-t6k2325==*ayTQUo~)?hDow5Oj75eOJ=xzpKPzf_RYs%F;;U zbU$wR9w!k_CVz0IATiP=m>In#bZP-mo-}n-VVS&EOtYNXN0Jwv9EPD#VOj;N51u(H zqnzTx?o!&&1(Hf&=ghqR_t6s?uKx_);~>z={oiu@cW?0Q|9g_Bdi`h6UHuq=`M#M|g`G21XkX7@4uU|UiSV-U67Qy!8o5&N?%qeX80ZZ}O2(%*>PiZ5>*gs_a z$I5*}=KySV3`maFR#OZe9oW2h<{tf5)yQzt(IWItE!(%X+KcIgY{n(WdSs;qMsXlHl7u)VF`-1|IGzTtCua(;Mmc=g`f zeGLBU9w|9JzdHQ>?aAf!_lHM6otzzeC6h4^p7-Ov$^E$X&lml4`u6SR&!<;MKYC*< zGey-Nwb_Eiy4ODvivK0n z?)aQUhZ!f*P`%p$@KyW2<@;ay!|mt$U!LUA`X6Tb-M2D8iUG&~1fw`ZQc}s)cWRje zq$C2+vIQV&I|lG6NGq}tphxV<9t`?tz128n!-Z*q$yD&?0V(a# zZSA$i(YFz0(&lpdCZXDGXe11XK=k$f98roR6l|LJ9rv|w)f!4TUcPx-E??%$5*Uu) zD*FEoC*fq$oe#9*u0{maIPVMs_x9Wg%~RBrtzAi;vvH&z&S}cJb9KC1A#Bg}vX0`_ zpKua^U(L0eV56S%@`T)1GU=yX`rR&iupPMW%#f94IJrP+j6=x0n$CNtx;~yfgP*G_ z;L_4eafFz>wmv^ z|9^jXd*|8z`y|g=>pzT5?&WtdtzYxSI);$y*x@~ZBCzuVg0^cJr|V-~Es#A1f%1c42Mf?Bh`zyXU=)*MD=<(-ZEp zf4>AdH$b2XhEDlvGz(!0cZxSq^tLz~T*d3Wtb}Pm`Vi}E&p&i@)F1z;TmNw~p@^}E zNdLTI{qOg;cYDS4zyEyy*V8;}um7itF&=02*If5tYrlrK=E|>YJPO0As}$_-hI@KQoKYe-yCG$*mX@?@^( zOabub<{kKaqnbP24~AR7rcd7@7gaOS>WNf2PTmAsQd|;R)470QRK^AApMf?G6_0aPXur)e|Ji0fut9wUCPq``pZ7?Ow zy@K5VVk>uKnS2t9YG1xc(sd-gyu=X|J1sf#IZV0pc7!O;3+18trL2r?|9=GwCg5@^ zsl_0`pF>1>P~F%|dk*jd&9RUKl@c9~L8o|9paMln0;ilMMzzqc7*YGf90Z;OqJ9>KEX1V!Qr3AOjHBxO>R4Bnx+pVah2(23O zzZS4~o$rL2SJnUr_^VGyWNt%ma)r{}*x|Ius@1pjV+(G>E zC6}$|6piucKmiw@tH72p17HNh8{l$8X}<5PY$lI+JbO&T#>vDb2xcD6pWQ? zQ(x@WniVAiyD=rp=3m$W_sZ zi(lnaoQnwY?ORmCC6RzRr`VEusuyG;63=(&U_;plv9il_^3eQfW*IR^@-`?-kGg><01u`1 zsZ^)GY4x{62N{nG+*@y&!Tpk_r2M_y9@C5qYU5F@jEnkoZBx0-*h%Pv^r z{AXqT5B=2X|M$A^qwuWC|J2*wDdvCZ_4?2H|5H3``+xNXA&=tlb*~nA2t&ZTm!zSt zulx5Palj6&Z$*XANm8N4JExWIm+DF1xzg;Km0Bg>Ii$Ct3zSowOpc!uJUu^aKlSUs zItTXz`JZ}&VbTA$+uwQK|9z5Y?e*W}OnD>)KmuR7>+2o~z0Zzs@o4EN%+wVVOcnS8voLH4A=L!}E+f2cKc)!mV` zT1QTbr&l}H%`I7RF{L^Mvf)v@lTyM-NMe6*HbL;?)z$f>&Bd@h6@wWBIq@lD;S>p~ zO*v0lO{xKfiQ$xD<8KL!zK1bPLPRYNVp!sM)X5SoT0tE??!q`Gw{3O(LmQ`c2|Jb~ zcK;1jwtH<;Yx->vs^T;Z2?OmsIz10I!3LV8d|^MDhE;B9Td=%O8=6n5y#49z(iRGR z`C@Js`BFGXCH_tHG;4r`V}z z=-|KekgqCUH7TmfU&;W23z$qyuA92AM*TNDwG!G|=j)abrmh=i%&sULk8zmal$DRO z_o;HgD=IH*lc~_o!|@m=nCl9KmwvoORfXk1RUYC>(CSm&NL0gVG7KdlRV35tIrAxd zdhXhT&8=4Vgkv^}F`J$det}@LIE*48`wbh`ef6lj97I*)8&avU$12h{aE9ZB8vaeN zk)S%cVuYMu#m|J}eX0qC8H4&ZY6d~W#in2R?;q zYlmfW|5QR_nX^pl08l4+a*?v%%gZjCN!8h|o_&tL;j_a32i2bR{oH^n_W$}jy}e@o zpPk|J{Vz}QtmXgn0~H=663`E$d#aegS}&s;&i4S@ffXTw>ud{Fopt`rL;D<=z0x;l zLR@MV(+9f2twLXEcB*4dpUxj)wJOQ~7>~N)6jI*3c4&031z?r@ANET5-*)@Y@!wDK z2>B0=l$3TSiSo$;7*gU~_Oa~Zch_xN+<4IfP@OX=PexB&E#ALvWmIA$cp-Iyn&aY& zn7=RQ;H8?JR{xaJMV&{{Wvg`3nz*-?q|l**vY=EPgIhvxVge(1Rr#6}>X^#%=uhBo z3fW6YK3f|l;fRi5h?w#?WmE!@F@FNvn|;=q_d8*NJ7E%zJD7CMCDO9z|0Fm8!4?Sa z0Q=5Fxg$LkDJY3!y(mzaM2B%Yg=g6e>{Q)O{T!TlpJ$o;_wuCQV*ywx|A!_0fA3lT zKh2{iavYOe@KZKIT5|)OfDr;jX?hV#I?E<Q zmpc5d-|4>!Dt97R)3xKD=hjG!5Qko?RVgME$&RKdys;!OP$3g<*|nnf%wT*L#P6t&;!S{i6QAyEAx>|9+Ck)&F(i%i5~HF~r4$ zGwBZ`3oVc5kVSMbM|HVc-@l_S9|ZE{L&SmUV{xA%24sSAWo}J zl$YJ=xm6-1z7!3%6?;*D+e}5%o8VWWk|rV89m+rP>@pjV@n;aUgKGV|btHF80JIp4 zvp8OWUosfuF%}XvP34$$T0bKNU6$vf4KY3pj8F(Oh5#coByBh)_|!;_F^VH5H)moz z!yHAzwBu9Ez{Y4HNBQ{dQk2EXM0&C|JFU|(ph`$8AR$RO#0k?3A>UyRZgCt7D=}jN zPX?ewUSqqGYx0d6hjWru+dCCoJ8B@_=v|!$;U=UOL4X$(UIg8vtQ;5t}e z(73*ll#&$DcmYBvI%7I#gg!|)C2@?Xj2UgvFH#AEk1@g1{-Gl&j<$) z%wdcpP;7JK&ulZO!>CH2)UGgMXaglZ{~riC^1n8jKmf+SL`egg{Y#YO43;x+M=)@e zqo=edzgd;D;C}r5TWe6i@26V-w~W@k)}mkV++7WU73cr@!<~ZvXV4oCp7sAHdBjZW z{sml35tu=o06W~J8@`-{;V)e~3oHD?xs(zRj|@OHbK79GF<(09gJ&kqVnrSKG4~|+ zmCmy`b|T5`2B`SfN$p2ayX$R&~)sGVk9vh-p3A z+#FBg`V7m`V{A4MjYlTCto(D0nkdYuI;XcrWi9`&7|hjK?Tkgyup~`|}~& z;E2v}qOvc|5MyGBLq64X%|E`&za5kYfBhyLAyLstE??@JX#s$exg^9FFMOZmrkc!j z?+s3eX2~J@zz}uku^GY6`G?cv{1Al^tm3T}FVeGnP?j<^fJ(R48jv3@PcE(>9_m9u z{NhKJTlnt|FMnFI1zBe)(xSli<;m3p0e*CD_@OD4D;gX#nfh!QJ$|@&|KYqbZ``qs zM*;71P1Q2Wiu6Y?dY{CL3qtrC93!@19L+%0Xm~?*MiNn_JUExT*B2*;$Jg)A-u}<^ z#ryXKrV9E&Eu!+oQQm9_WAwxMhjJ5VA5V`@53fI-UY>sc_T>8ba) z7e}MO2@m|^EJe>1MZaX2q6h>inPW>EmE4ru$XB1wYV zhA2`{7WRwd;49XvA+Lm2b$wNl!g3Z?ka@ERtwK5V_gyQfthR3DkC#ia%O_LSj_$IP zR~0|>G(ySztzcH?M1*)c}HGNl#Q+Fu?T4$u0qh1xndp3WSqo;z5(HDlt8!y9`O zoyG}tY}3uKk&3DJvn2;aD#O!qK?xw+XwCPHZe<>uECDF1lyTHhNX zHxK1K5+$9(&#B_xAmIRd4OCVZ=T#XMS<$<5!w%ESLMd%eHaV65>?>aOtn~k;B)V@1 z$O`{&Z@AYh#((#p?|*ojNBMtSS5pL15-E2s=9nZ){J))6QwMNLqT0hi)<3I~h02Lt ze3$3nSmrq@C$83s%-~%!v$>YIe`-_uwEYwE&e28pZUR4q&WCbVdFHW1qOw7&KvlZ% z)}>KZdlVB1IfjfGyh<F!TqG)=IH5+H(D_*e?EAvyfbBwl0fqF7I=As z7NXR~4O*}z?feR|1pfkl1&mNGPc9a21b&%sv6_6D_0VLiRc?nIN+u9O4g7F&6GR6<}a;e^_+U<2WRn_4O^jXyIQj|o9O4^!8 z00rDq*QDTN))}cgD|_+MrtB;d$PcWQUM#)SRTLS!6;(Em@&H_|X4o{k)d`NByvT-5 zezM>%eqQ6cl*YB$jB64Z7gG%T`v<=N}a#4sXY5q?ksr(F};?0a?2|q`4hGjZ@2L4G#DhDWLfM!W+gvNxL z<8j*2qnwXT*Ae3-w71MmWE7thjj|-x&sGxZ{W;`QwL@<=vkRhCuOqToUJHma%s5Iy z+{3Q%b(w096v_$`dgb4!rLii?3U1|&eC_NMp1-W9nCIIj!!S| zMKK9}4SJ~-?@OrqR^=C;K82>=Ulap%cZYkgf(E3Vkz_)aFyQ;MAKu@W0aX+0FraSr z`0(oR`@_qVLf_nZuhEzP9zzaCP%0=*x*oBsjUE>Et{PtSh1 zD*^I`s%e0eNdt5liD@08m+#+R+-r;k@HGZVws-XYq7-fI42{HB{O5>JDLsQSh?BF! z@86zWAAY#{@#O64^yu*F^!-@_kSCH1hZ&!ugyT@I2w0$`K)%%90#~4 zHBS>AqWK2L`Q+5Mhg1~SXY4VP1%s6(ImEFH7IbcWS*IUT@0_QJ4mJg2fo9$}JO;^_ zZGVpF^#t)T3}f&g|51ANE0|D}g7z@*__xBM9`g4=yeSjY+s}_ipXJQ$=shW6d_ocX zB`)6rq&%b(!S`YU6mE*}bM*u{Am_kOmT(-~zNeFG%qW7<0<=H4cBq3y{-?9rgZ5Ni zMWk?XoVXDIEJi2=gO+)bpoU$qQO=84E80h+4$YDywXARaUm(=V{|hz)@T=0m*%Y+f z61$gQT($lyXt$+%aQfh_ALthl3~RETG6S$-l133HgB<4vjzJlhS3Zspq&W| z5wxel%P+1;{51gW)OqI_tX~7ES%d$x5dY&p9s(%ikZ0_HXi;g&0`T|0gLVRfm%e2g zfPef$bVB*=mF;)*_Ef6RuSw$1rB-uP(Vk@KSsUa@=jlC}Jr|7<&D3 z!%;N>;CO~e#zC8bAs9IHRh5LT8pgQr9*7xYa1>+?$_3KA$L}vH3Rpu)J)8D#JO+OU z!Apa10A9Za!TI~M9|G_XA)Lw|-@ZRQK0W&ZTnKalX7UPDb3;%BITT9^PQVP!2weo= zABCj~D0*_5A?KZ%h>wmu|Oc1Xfpn1ICv#-YZ4*Xtka~poV6)J)jIH29;6eIS! z587>(;s{X?y!=uy%fAMHb=g*R^hh-Hqi9IjV8k-B)763KB}pP*Z>Sa46>wn~qEwDj zNRmWoQzT(QLsC@P^OlwCtz*T%(qt_%r6ORM(HOMba*M3pmb!ZI@=Jw1`!zW5KR80p zd{6@MVE@(ruqzPmnh(Tb5`I%)S|D%4911ObP=6Lu9ZGS_p zd77xU%e3;WxnifDqj(wnj7b7w zGQnZ<-CA{G+3vfh6we@Cm}K`l*tr<&QxyOj<54H$I5vek8kD{1#D#yZBYy(#{;Xo_ zZZMKlPX}Q8g>?*3Gt6XMoW*ZLos)L%1Fp`9xwMBWO9l&ycx`T026eoYl$RG83o^)9 zl(sqjs24C<9EsOn z>v@n*RV#%|$jcxu#n#h&tCbz6WBGmVwu#bp?fw_>p&HF#%6a+&;s-(1pcP9Smr*KL zd3nF6>X~>^m1?gJ01Kx`=ny#wiEJ%|T4KvS@G!k3;mz`1EG4PwhI5&FWxr+Mnm~F( zM>V(={a6sN*`Pa)ygM&k_}>VPy2>kCULSh88g3OA8>sSBI*gA|3>WrTqQgN#fOIMf zf#oA=zzb6*qv&c%5u1`YD#I?8Xb4#QZ)#EYzc&P$`lmCCFul*!5F3WCR{!~1>nzXD z!#ykYf7d*|qZP11{~z>+!$SOLzqj*z|NE0XGCuvII##vh1i;b@0qfEw6~q1QaZ1e5 ztS;2jRYv7$IZ?Qi5DC;%I&)9T!RtIey(^`mY-zK2paA^>0^`C7@(VqJbRGt}Avdvp zMN6-BF$1OMItnMWQI*djECF4<_`U4IQQ(YvzL6joM9>a4Rj{Y;c#?aH?tY?#>zx-+ z6mv7p6?)*gom{6>A+K_cFV=x%@@T38=9imfpa~S!9ZFI-F%d~E<3!5eHo~xO^(!iU zS7@scb-3mZ%RTr;oj=I$_y@F%g!d?e0WWM-dc(rZWGFE;C_XoJkK$4;*-;@SsalFh=*kp*RY>g#Kzpg{M=MJvp zufPvKEmQN;L2XcowvQ;^$b2#qPO|nNxT3$ny+c zJd=4ot+fLDye|@G0d=O$Ejl*$)uc9%7XX}?Wxi|e%@a^E-fA129}*V7#cVA$<~7Kb zTMD9UL@n|6t9^A%b+|l#q{#W6gn2#fRh4Pd2rTRCJobS9IMpU+?Pp9Ov8dZb_c9o!@CLc;w`t-^R2}{I?8wo4ar)I9> zM=$bc_Eg$`AxaRNGyz80@y|sV;YIu}p2eu8F}OGW!?W@~4~OI7qyP6o9+^zu%mAP= z$Y%gD11=;RppLq6CnSoqZOZILsu)D3uKwR9A)iJl#57X|1kVIeXF=){P7hnfa>5xA z9`)g^GWByV!Fgzebttq~6bu)aFw0~ZiNqoDlSPDFZxhhF@q3^r@=^DyZZFkv>ACME zU~W1xn{*ID3Ux~I(}TT3@ChuY;}8Woi!`o7C}6R{;Hd>)Z8u=zSsb;38Otj~aNVC;o8MtA)o5^(y*!EWzpVaTy+u8nus@D0tg6 z0v5ai(&?XW{!azGKix1AD<)F$XMWy9^}dO{wyt(ITG05fa1oT-++(j#gLQSAC5?8Q z`~Cg_Ot8Eg`V`#w2iG_bPl1@C2OC5on`%s{;a5{@L9JEsNW4g|>JEiMch*+ZufHBB z=oM306qg;wCpC%#^R|!tjPohbjeI$8YwEChsMq5sfYjV{)Wh-W6j%?h$L3&looyPG zs_;5&o>f=j!&p^?4|`Re1JjHwPbRS-ir<%tSAeHQ_i}KD`6R0WH(cC=I^=o|gRDvk9y!!Ky z4=quRBt25UOHy=$$yTIFY^ZqlbU?ZCTB*@KNeQ9mYtbU*U)Ct7QelCN4k(IAbyg)6 z%5_$@*KFEUShcV{QP(o5#qxG z5Fmk9ksv?aBN4*a{X+tO*&>HBC?VzJshJ7DvJ*g!PHBUAEty0PO5++$ff**p({>ZG z0}i3*-#;EF2@n+mSEKpr;SOt~9z_M%8bv)VFw=*nc81 z%Kh1YW8e1w`?KNW`OgP=K0o_Urs27b{U<O@z~guB7s(y&#$zq|d-ThJD86Jt$4 z$U${A)+{i$GuGs2v^3WAzUY9Xv9WebJT7Cc!3cN6=CaoA9AmY)_FHr4c5QIjYCvjMor{+s%APagOG9_0D#>_08}>n%(`EB&l(1y-lIeP~1Q zE^NSN=3lb9596=s#l7~QB%moY`DY#23gmlCHwU>TXg2Z|V5{ivY#8Q!R$0W={youG z``W3nb}$bM*t-6qy`79lLqh|pPxM@`hg8;WWPSBxQrcEhAU^0hj>daB%Ahcz%R3t)Q7I+~bOz!Du)&LmoZYH4HI!_y5@Q%m!1 zu(|9_HYe^8rOW8NAGFn$=V!HD8&uC1vgqx zi+g8#UeD?e{;z&w>290@<~^Df2E18dkC9!5*2S!@Kv`!l@3D6|G+iYSFQ%i}+|UNJ zZr-B<(qyFv9|2it&|L+f{vq$~!A)e1p|Km3` zRj7Z>ls{IxQunhjfO=@vueeB96e+DZ4z;S^dPdsVl+W8f-OrM#M^#py+*=4D)T zT%pDp-%Ty93AAc8PNS_-kt-uDs&vrg>~sMPmbl4kn?{B%SH66@KwRxAv2NyWstxTE z`eLFVc2|fP00G8OhqP|oE8}_7+UY}z?Do)`YD1M69@PfdQz`$q6i3HD!{w4+sBp{M zpZ3Rp%)F_6|I={#nE&TN9-jaG25(M9T0a~i#yh^=ux<&~=v3tVJm6}=Yectc3?RtJ zl7g6o=uAwJoe=7nViF(x=RZ{fQkzVyB3s@|nqQlAjdnfI`}T()dc_?`Pa~XB(EH}> zb&vh~_ny23sYa1-AYrvcV$~Fd&$cO!S69Irh1&?ntBX}k^4HHlqF~GOh93aXm)TfR z93YipZv$zte*Q5@k+^F4G|#`;2iHg@F~3GKx4C*q!W1f!o`MVgR#VZ^)6z{UB4_SE zd^RC5JUmajAw10LS^~ij2(Q-k6!-?$vqp0b)9|*V$za_3XbL2(mP)bLd@vb=D}KKj zN#CGUifimbeqSN8GmgN@P2vM=>Zx_l3mGFRtWuQv(ZY5jI+7tOU=m?VSi?E6&ZGmJ}#lFyh2N+V82GYBk+W;V}6%ysn2bSo(QfdFNNUsDtS~1ajeW$ zgPAfWCwr~Juq{ERBq0%5?f%Aiu-PHZ6ks@7inu#nmWIIl&6Z^$5g%?@wwJyA>g9K* zi|<6AlZ{v2?blt!s_VGs8m~ADWqGx=Tx(5MTFu(J%VqUoiikjVH+qOBAn#NS(N_3A zEu_2sS7ZMNY1kJI-EMCG{MmQ@zm)&ipN$^xe|eavdZpyI6bETI5OY8iGs|rhsnog+ zuDTdhCGQnL&tE^Qb;h5oZ2pEnKIeGCI4d(aD}8BB@2|i1gEY(z0Dy5!D8C_0a?Rcv zMVmpkK3)@Y-8*Hbe;>ygg;8|Ge{7Rg3PV&b+!q>1?-cahrfjia1f42VdRe4C(p^JX!20;-Y%+Esjt&coC5W=&?o}e>K>_ zP1I9fbWsI-0yM>&%M>l~M_I6!ix>rj--OLdJACH$_$-(NJI+Vx|B}V;WPHYVH9lE_ z0!EnPoAL?)`4-6Q1aN@Pf`Dve?JkLm#bYF=@L-7%uUaYd2h4nUf2k@k^s6v(F7 zPd%oX1T^X$aaAqau|N7t_HPcg_s;{J?)E)tT^^#Iy>(N>gb2OlGw2lj5PvH!3ob33 zbOD0_+|o5k@xS>@8eE@nO{-ve(Ke$feN7@%T2#MVc9w1T5avMdWVg{JNKrlS4pAbn=!&+szqs+O`{3G|b;bE~1RUz@a;hHoEyTh(T zH!#{l$_7*JslpYp0;D z{y)UiLjM0P-x>fJg>eYeP=?0VO>sGkR1NJWuevDON>(BFOeo>plf)oINkn#oEI~mo zMsPQFaSPuxI`I{>;w* z>pjN*JynlloFzSZ_bM&VzGBEp@m-S@0H zy%{k_;EBSoYoPL#ec`&ot0Mi~7dP8PaAeLaq77!G61Spk8&Mf`-+=ZqPK$cRt)5C9 zI{NEef`@a+aG5`C6JY^e9uogDxlHu3tON!z1Nm9e@+4udNo@3S6JpXO; zc#f(mgBN)3iMcCsO=NXko!8J=y54WU9X}U@Kl1YbzNZ2Impj?_sQ=sk|DiV=Kc4@6 zkjKUU<)F6_0cxJqNCCM8w_gw_^qMSCuWWIk&^DC_ISuzD6g1LHDC@u$2GXpUfWpKM(Tk;s0{bJBR@&r^|k6AWJqD3W}z( zY*1euB0|mJmXac;?|ub_)+`qR4aA3nQXxgo%n|v`g-PD5N15{5JvIDaPMe<-lG0mk z1McJhqp_X;(eobf|9hCn#sAr$gC$7;1S@=lVii3nCBdMbMZjlJjU>2a1@`iPP7~w$ zH!2HlT4sv8RAUw|5VvOR;#iLdo<=A(VIAt{dzKJK;He5Tc}0Mr7^Vm)0$CR;&Ho?0 zKV|>u{jVNS9rp@u&>=90Xe(S)pP3D=6C}KbEf)Y^{Vi?(>h{KMc;SPK0uH%aB~1 zpS^tE|NFOBHON3yY=6pnKt|`8v3dji@q7(adM*zH+f{7}TcB&up~i7l*#S++)Ii)< zo2>|=|4M05!~ba#Nk!|H5?~Mi_olwh|7YyKNB;i+Pb>Z(hbYYe6fw7et|3+D7K`ZH z!NJ=MuF$DN8WfXC1icmlfxoU61^iW;xY{xnOXFpYyvP_!NpZaDNt43PvOtqaeNpKY zboIVST4`2!I#9VADES|_i4Lo4e-`NoYu5h-97?%pZ@2KhqnGVd%XYgVV)N2 z|3@(&09=qQm4{YR5=H#*3S8}3`1x#-Ro=i=&GDbtgwQ=}yb_?U?(y_5_Suh5AVn+m z@mm~+px00T@sIF-Klzlc;czlN?Qyp9RXi z!y}OJ!+{L9WRREwoPms{Bwj^3kRnDtV@e^Q1i%}D!*X9{0Q1x;DG9d$#UutOzQHMp zHz=lqga3`=B>`(nlkD{PI3z(fSYR5%4Q8ElT%098UXu@fN{+Xjb5j_HeTk*du=KT( z`mvkenkhX#5B5~@e<3@Me-2;*7dX0Y4%j{Xe>9%?w*S|Ey#ME69?t*amXZymIDk>K zY-Gx#M$zy}E#&h8_jm6w{ruON|u&GdE|8(k4NA|+ zCV?pey}x`7d~Y~rmRYVgRYK9=6s`W6=WuZhh~WXtfhM(t%dg#OPC8S&@5h0*>!cvM zn37})J)5ics-Yf#1p=~JFgD9N>qCku0x*hzzSfuqsg6){<}5K6d@vw!0IA7)4bEaw zX~0n2%m%{Wo4mp1f%;%QDZQ*n_FuzMK##4rUIC}?T+g*QpmaW80}{qOsw`yc(uqyG0G59c&zQA9p~jBF6#8A?HK39nHP=vy!(;kj-2 zhBe=}059HNfQ(HGyu<-dGSg5)G{hz7-xc~DY59j~Sd58@th8rj?N$p#FSfdz( zh}kPInHq~Tu+31|km1`pSAodN!R%7fG|Ec0gsP)a*IfPMflfIs+!pA!sSTOryi_2b zX90}3BrL)DTzO^f`j-~!ZFIjc8m#~EwB-LAP9OJw9^|Rj|MEj%cc=TQkkEa4U&%SL zN9Vhe@M<-*mjs62zzD_xN?n@Yf0>3;zy7yL5}^%>DU3wY)_b}Cb!gxJHuOi+@#Fe` zh)1mdBw^EAUH?%YcA0Z2m1{c$EAhJFnlHiY6|um_Ux5tXAP3SUf&p5SC`2i^fhlHs zis|d(PAOSIdEO_}6WfWsGD~P)I&|~G^=*}G%ik2$3Eu=qX&=QDrA%kiS|HKkxUvO$ z12hdLA>oy!_*C>tb;G{y3dM3d%Bhf|U$(qat9&RbfYfS*man=(O*_dTu`{O@HemVZ@(f)sshclS(QMy7ru0J9H zjKq!Yd1lo(6xX=(nIgYQRiRb`xKXLvFm;&u5~OkZM?!v=?|y~|CFdmB)z)HyxT4Ba zvcXzvV^OnbM$|vqu-1n~?ael$yhnbxL8;)k7F9Yr1C(xayi*rd<+E`0$vW$@Wv$3Ru3huj(Z zgZT&Q)<4rtv*Vuw64R7K5lYXBJ1&?4-;^utTmQ4Mb^c>G_9l<^|ARby{d2hloZ}2W zV7jjU+%zUIuRGB0Ng43Vd31++B@T5<0Y4_<;0o0UT$=$kcn0DqxON<*wCJ_k3>Q}! zcn8)KQ-`(2x+*Gxo(9d(D@=k8+vpOl*1yPa-Dc_YXRrQ0vCe-ChmYq!9_XoD|HU}l zOJC+yZ@ubyqV&4;E&#V&>QO;w{VLa>w_D&5T-2^_L4gC6dsTy;N_AhkiX*sawTN%= zG+6&K>vTuq-{kz4eg1zq8jT+Fe?7>ft^ewA7961btsxIkDa##VUkiK2afm)1fhU-v zO;xIQRh*}Jr)ZPscu^mol!+|y6CEFeQKc+cT*Lvj#7A^C!a>kYA}%Yk5S0ivwFq9% zg|&)4)?ZH5Ktpj@bh%FF@85=be7Zl)`F}^{uZjIPwe$ZDhvUcmUk~z>`M<6F8LwM% z{c5$Z1;cl9e1n7T*B%9cJqlwPS`%&2;PX-;EKz7Ek_L;fR~RLGuTU2Yz_u&7jeDxa z`tPvv#j|()k4B~V|Ka2Q&x1S_>)&4aZP&bQ;Wr^iAkWcf>Kn!R9 zPdvMn0H+`M&yRjt+$0v){OalK_^Yogz8g!cif`~1iu$4<4raj!DjAfjqjNxYmZL0e z^MZ~BV}tdt9l_{k1Mai`O837E$3ySY{(F!|TmSBH7VMzihRiQti+KR#7YOa9-<2e6O- zm-GMov)SYR?}I!J{-1OHOZHOm-wrI_b_FCT?c@ruN&CFr0jiaC?to_P)(%VTX|gE! znK!za1!W(IF6nb%b$$>dfw(F69%}Ra5AZbM|0L|b_y0wc_@C1L|8P9<9{K-6JUag` zjk8q#jrUE(014|u{Y(BQY>prEe_j1e&o%cER7>50} z<51!mvSJcg(XKM4p^2)wMLBF>T@Ck{SHm{;Ro(%bg*9yCd$iKW3Q#4FV-DZ#W#nZn z&c^S&tM@HFIvPLUrvd+$>-65@e|*okAdyDRH{V82)u-)?fY^huW9l(kefCiVO}w?1WYgJ);y&1b2KK0d#}Q|A8!hA2J$ z8Aj3VZ~hd|Ui*JypZ}kXAMbyDn1|o&^gYBeKru~s3Bj?r_gPE%5#dD&)165DF#s1# zJVX%?SF7<{MEriCXvc3a$`9o)V1`0K)VkfPZF;nwm3OsXh%PhwM2~nTv zMT~caVV}fI?Mu-wTb%NIZ`HYqU>K4(8?f4)M83Ox)r2_K z-67669X*@Wn7=rou{g{>N-`a8FewD*_sgAfjU*S6?Ll8 z9_qf?;z*^@ikEn`fyw?^p1=<=N(XrjhQm3#3k(?wQbZer7sVUGE~NWDd8okiR62#2 zt*3+=D=-MiHm;$_$RL(G?W;yjs8RGmo3pH>g5^9YjHxf zA#sM9pe%~s24hAcMayl(0qsR})*9nPmuxmqg zgcpM?#nB*0!@)KQA+2ik??B^yeDueu|1_WZ(ZjnGPS%e?7=ktGL^# zJ8zpRv|eK{@`dV#x!c<2I~4m1*Izx=ymoEE!scM?I}n=JH1Aezfw3YTa~pcy*SA;> zl(Q`*E9FEK(UN#Y?gXs>)DUeD;oy2rwi&uT<^onj_o0a^3kMjRv9=`v}#+>`{`E3N0h+SH>FzSPV3_;8-v|1CQJ~d$O zLup>U9AsSYY^aG=Y>K@)wz)al(g~Tyh#ki%yVSo$1I(TN=Dk+Lh&4uKCKYLlsw(|Z z+q$m)`CaVlG=EC`KOtdu{B!Pmx(f-g*Z#BbfAgoK(c}K_gFJly=gk^txoek){V-!L zz1og(0Ny^Z8_yKoU^e>S;f#`W_Y!X~<>On? z_^Pr3aE2nT$eeQ5@&?jiEyDUw>wV#3yauZJOF6W<({m~?sI?<8Xfu*MdT-QYtm@$b z>kJd?iRpaj)539FDK7~2kAnqPi)qW}t^urDmz~%&+2p^}QYEyfyhOX2OEpw$vnU~9 z#RzL4e`|()$B#??=i6O(paATV|D)+_YRmu0`0@Ui2YI^4|9o!TxdLEr$nMbq^1_cQ zz@rMVM+Hbx65#-5?waDe9)3+zNYMfNJ_NyPCoU8d{n&er#0;<8!Om;wK_>jh$QWtx z3LuB2FC>a^ym~9PSB>3p_YQkro$s%+RjRE}vE81dIINgf>YEUf3<&R~CuVahWVPOZ zI^kB3f$RhHOI=H!k`xTGEf00y#_$H>2ri-`AizLyTA@E^l?wbD`0;J=UJQPXs$fDC z)abCT*qa7WDoz9xz5S?+J}RT1k231e|Fkfm+be+k;(sT;z5hR*J^KG2=INmSUCFs| z4;~;R`b?I3a+BZ8sg5yM@{YKvnqIX+F2Cv(PuT{2LX za#KS?A&;Gi(#K!%1PiPm6!T#;{cwZQ6o&{ zYS7!$EB0if3B8T_@tF#Ep!WkGYXPnYo(fK=4WEtj(CWe}fymgZJ_VjsYEpj~PWtdguVCp zkKt%qivNF%|9GH>b2y#X)8jN0gXgTMuboi^o)rx4Dc%=uP93Iw539}V@B}KoRsK|%X z#MfA46!n3L+VXkPNE;8kKWW*Yr+OcVbMfaWrQi@e1y9t}5RRJx{&>!2tvtV2r2NzR zz!1wu{=h%o^#63z13emv4iN6MehGv&=k|&EDx4*h9BUoKy%brI4W-d8y1Q!P)KR|Q zbVMorjzl3!dm5g~ZgV9$U?B43Bu_fWTRiF{wU1l=%S;iMJX6H2w19o~-^jP)KWDSi zqx^r6r)2*b!+r-gpp|f>P8l$YHdP2rdNsAc{9q{u=Hzy$2u2}IQ7|EQF&E92))|f! zG&D9LtLVQcW70s?t3=&cTd-!#qp5kHkDLD|H^Bq>|Axb||8Mdb|MehGiT_`!?N18c z@jYk2H=XZ567WoL)%-uX3HI`PWh7j_JFmSV)-VlN>72bkMZbWj`Ia#!hkqBD$M}mw zY0B|xA8|%;yyES*xtD&uswNs3as5h0UMk<1jh8XmOk9`%)rMXhE^cmpm+&^`;G%1d z++h7jCjMDIZvLMx;2jBo{rrDy^Z(iGk^eu)bFce9A{S$w%FjwP)%1B;jq~&0mR`>% ztwWt>-!xXut9Mb}c}0iLUN{2_Y~4J8yd_QDfLhb;Nx>IGsUd1C3}nqmE&j87-27j- z-X0+Thd=R3=YL0&$Nm2Yc}o2MiVyo8Fn{H`?VBeLii>R6=jZW_>BfDMzb{y|;6Ndy zJVS45)|LB^EzpfQnB|22Pw5u#vRqR+xEqQ#QQW-xh`+JKn_QC)0Vlp{B2EJ7BIM*W zsB=x}=o%X{295V5tE>UP-Dv;8B~~5(7g@gUegEGd+V_9@)5&A}@54M5{9jx!b{7Ib zrbe$b0A!&SoKlciagS(;SBm-TWS0E1!7YpXNZYbYRd=shV4&@08K{OeH4e;{-W$)A zgKeT~!F5&r{|dJI**tsszr2m(Hez7!{_nJO|FiEs?*Bf>Q{w+}*w4hU-<=r9Z*^%P z4HWWrGC|cUiw5-6c;KLfl zV6nwfh~pJVU~mmrC>tDn33#TEY@3KHSuNn9~XcYFu2|(V2LA?9eg#& zJ|qWU4HoeF;Hv@Mu)j%)R|jAHzXxA}cQD0dn}LgG&$EL;k`l(+4hA?x@K_X2$-fQ; zH(5YJbo_hZGjjc(e|Prk#q*axyclf4JI7JG{(W!ak34(*kH-Gv`hSS$OK`qs%2Y&F ze_5n|Jvcb{i#W;jbx%x<{(RsM{BiHEe>sMKJ^1p=FTqd7hkrg@Q<`L_$Hyy7*V_e? z(#JI2BCa83$2{jwKsE_X(Xn20G#CsFNQdC*&>If>-l#vE9v(1Uj5@Yr55AJwMLC548HfhuroMl^-9kcR>hX<|>8@W1c)VafkR)>xB4jZ@cFbCyB7v;mwl=~Lt z!%E8K*qw!;x=H6^16N#cmbv+Na1+U~YDP>kR>PXH@?9aRyVehwC$v8+oopQPAc2hjbXzu1lu&?x**w7@Jqyu z|BP%9fJp*Ef-=s;BYcg3>a0=A)iJ7B9aBeVH5-qL&YGB=HPt%HpOrdmNz%Z&H!npp zy`78XiG$>3VyuGXu}Sizp5!L0*`GI?Y-))7`AL)2EMd1>EB?G@t+@1?&gzY&-RR1V zKk3$&E%g(>PCs#}C!MqtiZa?C4MsNe8{I*py_OTmV-rXqdPagw@s@9J8h!&)#JCC+ zcM{{pmZ^S>|1P#Gj?Fu1CJGfc@5DQ_czTL9!`+g_HcW(&0lOc3HMGX zkOpfx>U{>4WC(;fgNq2|-IT3iib8-B*$vJ3OVJG@S2uW$Zt%Kw!^yy(nLOJw`(b3Q z^KV{1Kl|Ios~13cPQdqU)pLCX#W(#Mm}Y=%X@)}t$dbJS8485si*-apojdOc->dEj zL3c$@h!35+LbEjmq`JOfX7-!Eg9XCz3VcXOyoz>mLnvf+jZ|ycq>=0q^BtunN>Lo3 zjAwoootL5w#4&?&mL!?zE3cj0^E`*#6Ag3qRVQZ2Yx-7S73^}@AD(n!m;St+AY$cf z+FZpi#fQ#q_N+GhdYdQK{0K;zqJXkVA=m?0lZ@J|gSUIyOySDgJssDyyNW}I4;|Y* zEseFOw|iXTl@ST9D;vw!f=HFkKMP*U%s{4^KpZ1E52me599G`hA5+&nn0B5AQ)?bf z&3Q1i`{OLj*wTLUcL4J(QtsLjjUBZd{E>U`r>?=Db{_nRZXXFqdSm^Po)CrrZYhay ze9c--62|>0Q8`aUn}@9&S**OX&67$iMttbp=8@6niDt+Q`+g@EkAE_6#n4&#nl?Lx z-=wqfn^?kcq6xoY-*4^c5N)2d(tla`nl?Lx*rc-%n^=r(VhAy>n-Dvhwo-ao`IdvhqzG9{$Os<+_>Fts4h_oOI@oW8LK?AnEMeCXVjkoLA zQA>t2ax}4 zgpl5THOGbj`2DMQ7tb!vetvgxb@9#1=RZGt{_f)Z`PC`t-4Go1q(>?y;Kk)zfHMHI z46m4x#(TtXxzv0&yB@nl)VQ;V8e1Z2tcfVU<8G5bJ88EHW+!#4z#*c>oki5x5>aDK zMEU)pZHG%c3v6&k;Wf&b?TzD%!YJYf$2M7|FhpXzDK|7SXL}qXV%%9oj4Tl`)kvlJk8H8M#>Us546*SuA;^v1DH}eA-RMmd5X_#`qn%Sn{Yd zOCDJ)d1SEUVSAR$+dOG!;Lav)19#+N!=uh@cx18Rk->)jdABx?Tef*z*JcN!9d%~3 zBa6|F3`X0v&BJ!WWj37KJ1bm`14|@*?-`;L$15#Dd`VLE7Hkvn_UaoDB7V5Y*?A6* zJ?hM{M;6B(863OYE~-Bpw%P<^}m%NlFrwMmsj) zw+TQWX$t!=UFE^Kve7Lkj^~~@L)T&%c3vz)Yq1Q?#WJ)QKu7|yflAj1ur|U76t{FR z{a_9G-U3KqnjwB&5SwG74DXO>!yq=*AyeP&ZX3E*(y;SN@=G1!RdH$t7)@Cne{p=v!12QdWJIF zxXl&51^((#_CY)LJDs`Nujf*3z0S(5XUT2PP;R|>#V&6|R@~|mSFy1sPFpr{TGvE} zSoJ!KRnHQuo*`DfZcc;gxMiEib!~P?Rj;#D^(-Oc8B(>QyKvereutH>X|qFubdKGa z4~8?V%~FCe@zEd7s|2SKkW58@M<7Kpxncdlp;Nqw&=J5q0A1ZgDSBeqlCce)jE#|9 z*%RzT=bkWRDTAcbDeNzEglP0$pwHD75E;;lyh5RBv;~RqnMMXK&VcCuh=f z2Xx}z0cDMM^=C(gU_Ka*t^S=wqkF_>;^m5H&qyMuJ(4+ z2IhmIZ?$(=+1_qP7?^$}x+1r`CN0BvChqVZM!c&(I%*2@!O*k%!`J(xo2D>ncPfLG zuW56&rocXQZL>eO+N^5|emBqk#BZk&PJE|E$Ov?_x#9j?Rhv)DHv99+Hp_{u6eAvx z8R8`m)1=^E;UWOrH2QPKSG_u{hU0&6<;dBbs$)pv!>!I5%&aDz=uL8NMwB*$`S7(A z^%Jj#P5UmD&hMnfdRvuT>{z?R3^L6D(Dq*uwc+f_=o2_L`^B`6M29P9v1 zA_a_MV+XMN4L^fiB4*&z4eu~8eJv|DuJle$IcQlc7azEzF1lqg?UqTJy{RwHNa z+}7in(``MkKE*9Q+-fP>({tRZq3zVevFmgbr$ASgjQ1L0p zoS(lI)V6d1jK|_!8;Y}SimKtm6ah0Q#?8T3Aczo*w~5HPg!#f1NrZxJis=p{%s_=; zfvGy1A==B2BGDADRwz{g`06~NYY5t%Nn+)7i^l@iGH`1=p4S0ur&o^0qZ(i>4fyeJ zRtKylWkZ89IaUV$=Cd$FNyZbCuxYni2jZMsOg;>pbKa#Mc00wMFK)|3@O2fjVh!El z%(|0aaVe194!!5SVi^*?u0(PdTQxZ@)vmK*@wCe7&GU*-Z^g2Bj=G+{ev5n7;RcJQx7=|axp$mT9AkUZb!<<}u{|-z)-Q40jL0+O+~yJaiE+FFIL@)2Gbdwmo%-#3=+`>) zJF6c)6^hQMtsakFTrahTaTv(~l_G`rLCaHPBloE>*9qXx2Y{z$bkNK(0dn@F+vDX8 zXft+A-qoRBXQ*;7i*9MTvfY6eQ-?k^?W#{rO?_%=>QnaAz_HYtl9Vi%O&7r(?*WQ8 zh-}4%{09WDQ3|qMM$yI*zdLm(L({Ix(9~3hriL=)-X5}~&!naFnK-4-)S*31yJ}BU zQ+t{k+LP}*p=UL4+)kYxjh*W3)S*31yJ}C?0sX0=J-Jg5Sq*G?G;ZWR8s|E5-}%VB zb>e<%aADt_cp*bn?cIv)n;U+&YY;)a$#egUv@SQnpC!v_c^-e{K9BD@j^Ft-{=_uG zrv@k1`axs2%3e|1TM^v3%$AA6q@Hv&sVAmMJuyt`ievQL>kGCCIA>7vyqEr{r71b$ zrlf10w=~g5!bHz0r6mzp-Ivw-N0Y8Gx)W0fPX<%HFDqlD#kTxel8APu+n zoUwk9&2Ogy4&9#8kt?ui)H$$eWCb>j^uQ*+?=|!n4yWxLqQj}vAv$t}JB>PqJMo$` ztC1&qBO7iw4O@n04&9-dBUg;msB?_d$ck|q=`l`vBUOl6Va|X!B$RJO`h0aWWh0C; zk_Z>6b_8@dZKoCur%uClla~6vlF-&gV4_1B`0j0#kt>R7)G>;R z)tp=1ODrvb%vP<0*1l2#bcM2yP-ABM>gYHjOd>SI&^` zks~5%)HNc?3dSF45mB-g)nvG|$j(Znr9;jtJ2PK$%4MKQvuzs5BOdCwr{D76tM5Me zI&yeIM_oOkRywWGKvx*u$9LRG@%)w^f8Xu#cO~8GoO8=cxiuQ-Dx3Sy%>0h5ejGcuf#yek>D9B)R3 zOJH`CmqU9{ye4G0@)UJWQ)Fc+8k&PLc9Ky&D4i1rS$Tto=AgLAs2-H=>3Zzm@S2cO zeSOJE*Xv7826oaQvo~C^=*~1gU3J^GBBV+0$qgrwGx+<<#{wuFgT6hgez;Sd(Iy{aesoid z-Jj1}*=O^)!#tb0#O|!K*qvEocV>%S_hli5i8gPy|2%hXKhIp^eAZc<&n$61v&FgZ zIG*tVr)af>X~^#Z<9CCt5S91;RECTQR4(c}Eni;Kv#8e>a48Q&yuB7@|K44`lJSCU zenJX9AP|!H&y;T%Jl!FB2*{QKvXocqJDXI+31*#@nwhE8%xtBm)FM_tLKHDm72GiA0Xra{b0N(F|Gc zI15soRQtzg4t;0VRo|JJ`p(SKcPa)=Y*gGNu^qYNqPI#hnsrr-W~O2^vlJsodQx7? zK}IJJ7^^ro$(Yo2o8&z(jtS+*g|pg+LgKfn`fXzbZf5#T0(Ta`ak7`^{a!elv%vJ?pA!vx=7DVCW6y02j{X zcoKNwz+P_`+I1GJqhEY?{u*p>n#!S_v^qR9pPV?Z^$oX4gabBp6ekK~3?V;?XK8e< z?sKUn-L(?4`wX4LvnOeBQ>mz8bsgEJO!YMG2jTT!qa_rF?Y@#*+cG_71b0mOQ=$ZB zo@_`gvy3SQ84gjv8X?A`Rd~qUb&=J~VdKoY+Bh@Q#+g|*PPsFA#&IS{nI;5zSmh<8 z>pV}3kgrP|As*_KL)>3E^W=@E|+fm8yf4JaX9@ zn05w+>msa~!|I!Lwfd&kWjHg-;w!Qh>(lf#%4oU`s7QLjCp*9UhVe=*K(^?rVk(DN zNxgRGx#q6pTvOMLI@8WK>P-3l658UQYFFx5-I9wal2X?8{P^(oN!Ew7za}zVLUa>r zc)Nrib61vQNo94*yM|bZs-DsGk!jC(&YYdHjTB|H2wlP=;&;D-r-U(id3#Ayd z%nlCzwq2k!MigbI;Qe2}_W8xneeXRl`b?7^2M3?PYm|@-QUaa=EsT!;|GdT(tMR9y z_k!0s_Wb@?7~*)`KNXGwwb(_>O!)Hz+*5D)_bK=!U9}9z ze}3f<_${eB0OMVywVQ!8O8NOeX6&+$=?-9uHrW6?hrznqM9$V^8|7E6W!zVEjdlYe znTlKz0gS;yY@Q4h)y(MB=ww`fftdXN#F?n_NAW?EX&N$+vB?A@R=-c;Y`}{0i~cx# z;Y!)2CzFy3Ae@gO_yiV&u)%!4 zgi(eV<lomMS`5>grle;oare zBSq?_Ma6Qf8?eIEwZ4By1Sb)4fT{dqy+H5+Q;-&V^J2%7DagcNkjWnIOTN1Lj;$Iu z=7Bi!FSxVDP&qe!4L@)Q3R*)*-@pt_#})9zhdzo~&Cmut06(r#3>Jj0wSj};*4iW9 zGc5h9YKB`FFJvn7y&b(y4Hi9OviY0p36j4v0t>njJIy|H`Xjk1&g`k3%-KFlqw z1riG}ra8|-;5`n1PBZwvhPe)Kyh>4)HCT%<2C}f`E4TTo3ynO!UV(-w@;a70RbYE0 zA4qzQ>>%`VP=&;!DcQ1#&0ouleDl;U zn6CNqy(D2nX;?vbE1sTHxR0T0(7Uno9Fxt7j*I_|MEr{CHZimK&biP? zlnKwKz`M&=19x)<`8K>MxDDbN5kIbRu;!CY%`H|_nYarncTEG`_G+jYV z7Na~2L#6_Y39vv*HYaGxOHv}RiX1-&Be}BW*$%sqf7>P#0;x! zFGF=DmEEU&t?)}c`tT6^5J&1tFqNkc;0&OcY*%ZW5Ib6=mN_!HrI2ebBGuv&EE5$i zEg2PdSW>YW0#w@nYD7q?#awfw%O#F6-BqlDXK0CIW}T@b0f{qy zAsPkgmOFEP`YA=re-;}D*ZCS8V8S`{aX{h#B{VzEf;9@a5sp`VbR*nq$IP5v#r=eY z{g{O4_)CSW596>8V~YFgjbzeMf@5^Sr=nwai6XU=s{k@cwo!CRA{;!ojX=?7yU!4OU7qm#vO8lD96U>M9MC!>05 zICe%+m5%wt4N6lc#<=muN+>&18F0m_;6S#NWC4ssOY(vJi<-iJWvng?0R-QX6#tvm zjhG1q&SXUir!Z4%CyDL`a!(WsShvZdo43_7#zxa()@Z;RAg)4Iow!m~PP7Dk2FTQ{Y@_p+)9>&EvuqS|&pWY}#qgepOQHvO=;hc7@KXZ5dpn zUA}!Uh0&h{h(Al31}3dieHs+8=~deoXWCb0KZcrjQ{5p@2{wcjR=_K2@d7+>H>TFU zg$!X09Te}i4Kq*#&u2}Dl~+NO$$cq4>}feoNfe=UPggQA4fG;X+bxo$9;=*B8KTD_ zL>m%kh}K}K)Y7;at0f-2Jw~^OPsSR{UQy-k`p)iUq!!n3bRkXDZqg68!;>N&bIuyU zbdpctz0YvG+VVuiWC=o)VP<6}B+SZ{Z*Yc5{2k61r+tYx+(j<|jks%Ez`x=LghXku z7R5m%%3ClAk575agDD3IOeq$!MB}e9j#NizjRddtsz9q+hauahE98P+^ri)T13v;; zvkv$+hBpvLd@glCVbnJfF)fm!)y@UioVs9}tWp>vkXQSbq~KYOJ3C^!Hx89C!ZhF4 z>H@N-QaT)R*P214@HSk@LAXMdfPRRdp$Jh_u3ms1fM5Fn zik_qKPTgKh<6Nu|k{Yv$A(7jG}vvNoe27&#)M)?^Mp{nL=gTEbyou1YAsm2}BrhOy38 z7;+@9hr%lDBEOoOY-7Fy^!DnTJhoSp?|hHnE!xFrO`_|mk$L0dOfEbU*-@^%s_;0G z`&FO;8@K~0%1CsBK%7N{TyGP#A3LMQ>f^Jtq< zlzxlTjP?Lta(~XNeDecveSj|`qv(&AuD=r{t7zqiu>;oPx7M@aFHQ;O(1p@XaB(JiEI3@!2W(^MC#W2CwDS13Vt{ z*I)k(&Wi&4LGjJEDcQ(h01O6dEcpA9cvm0aBvC~>)K?xbB&78IloESe{9Sl=9FVzQMpFDa5+R3dlf3ak91j0jB5_@KC75E)mJjuTQdk5-2)S zcvfZJa#NIjzy;$`s%Wu^!kFe_rwo(2|} zqL|_o@e>vd4~`49K|;fsWWMFaq8Dp|5XOM0BB}-AX54)HRg%sjv!%>4raQ(@|1Pz8 zc^@2#X^O?$V?={vRx$&9uz^X!$hx>>rBjs2s_Z-GvA18lFbw+=eV-EUnnE<_a|-$& zFkSOM`%ut*e3-XXF|CSz{;@bvqL(ZZUhK$LWbV$nEhXT+gH68AQI_1Ha;(mxhq}r&Wnr|}olq3) z>P^@{9RFFt8R(=A*rz?#Z@$%3ZJB=Hn?Ou?Sg`TqvHxKek}V}nAXiQOvn?eN`=)h_ z;La-kgkP;iQhFq!g1B#PZPh|<$x zobzX}VRdEIY80*f8~L2EVJ*vq7U6}#8sfOWfEf-%a3NQL$x=`!E6A;MnnJY1*ZLPG z!#F2QV1N`?WdpQ<6bC%Y?3}C28P}Qf(JuO3hsKYCCJBl|0a=_B;YbTCSssg%*AyQ$ zdAC*R6HJ3Z(O1mBrx{9^wuTN3LKt;q%cHSKCUxA6!i(aN2U3=Mnse=+ynpgPOxD4d zWFLKmnOul}eClDg#EmUjZayuEtKMY3Rv ze3pkyv5pA^Oc<(DH-G&a_yd33_nIJ5ab+%vqcjIG^VQPkrSn7&k{jYo>?^mx%8%wY z#>z`K#wvdlNyKZEExoLWXHx<6Ig*@7$+J?KZdma{Qu8tmPG4LFgO+8R^5#u7n^8)v zg8DmVGNmT((`1eP1fdIUmrRGaKsGn={@e6XmG0c#5wXsB0ZRdYOHyQ%g^cDU2~~d_Ke~ zyyswuQQCbXS>s})2R zh`huRKYkjon8t+Ja8recPdR}(!b=qF0y|df*Y_p8xG1Rxm(4?K-%edd>d>^+XYFE@ z^1iJsG}xw9ZivA2Z1S}PV__!<-wf9g*`kze_U-GJSFGqZLt4NlYrwN_20F&tJ?H$I zRriLo4yM~~vqDmBt{L!KY%|Mxd$5%-l=qf>Z!jB-)aLSZG#if=z6XQJbhtQKPDgMN zj>07zj;F)Ye%ODCw32y z0mwN%XVC|^%SyCaamV)1n6O)njjFg0VHrtjcsOsNYIG*vBpi)L9tvlHAC5;$6#6IO zBJ};)Y%!anU@=_=quJE=M~h(Whof-_ha)c-dqX%rnN0Q(qz%spl3wRsxyQmbi&u$> z63_us*1IX~nA$>8mBLCE;$woPVqt-4ZvR=cd%7r>k0F5%m=@E5@dPNs`t;Lj&;ych>)5=>{yg%=FH z`EqpPji!^Kj~3y`pN7jJoQ2bq#dtVb%!BdCV&pZWN-ck54{hJ#*9+fHLu?qPlb@{6 zFv|!P7q#l(vrTI`emir49taiVdtzBIz1IkaKc<+XAL2kbKF^Ahxl6t{K`KrJ41_@< z3$6#V@*RN49Bxp^`iep8l_P%URSuE~x6ul(A|ntk3Xght9sJ z4~AlTPBiBch>+3Gi@{r+q1o5WI{JdClcmD?%%bYDdL0$}0MG&x> zM}>7Nw^s7+ta*m3NE3S%1T9G#pps`p2nPO5#ntfyz#KY9`y(?BVsWmGTS985Csp>c z1EJHK!G1&gn6|~h*sOkk{1?{7pULuPx<)^X zihq57l<$gA0{-0pvy3jtbm)sMH7AC4!q7PeckGf-tJ;ArMKI)%?G@8ov1Po}8&x{j z0T_&aVdPa{$?(6eDK($ZU*P;$5flSMmO1}WjY-ijTa?kfMU@=Og;l?Jv&vN`aft$E zvdJ9w#ggx~v5C-se+0r^3^zCs{4K*ImX`*q*khwYeiz~UBP04WuZ+?PN4Fe89a2U% zNZe0|q6`UO{J^Vuxu{-q8}lt*6oRK3>O;OH1<-gKMMoee<+~A?%EQ?^qDO$I?opv4 z6)kXg|90V8kZ+|^DJF!U{IY0rNs0S zqw!ASW950rc2Ss>mRwehc?8M=I}g}>M>5Kps>qH&aIEDv&SM}My~hm7l0^IzF3I=D zMfUJMQwm9zQ{RR7FV~WmL-6K@XFmWLP0Q67!gcBY2drTR77;@k+L&D}cO7J1;JCy2 z)k+N2%caL-ku*G|Wh158-bKUbC5*Ow9luxYd0$OXh;ABjgS=Y=J$Ey3E{a@(5TcvA z7z7=I!?E?-oFA^F)G=KidX`jiMYStwF-1;7E0&le$q>EN?q_nu{qWsju9@nWIf*#9 zU`;;6;#L`cQFSFMp?Ni){8zmA1FnIBzI>ue8t!F5RG|C3*M&y#=de69a_)VVXt>P9 zl24HPSu)!!y(7(Fo29=??LhW`OE}49-NkxTm})fz6W_g0bYYXWGA(5`v}y~&gg21B z0_m8RhvjCo84s>3)Zjd#lEd8S&S{Bl4<6yX*EYre)4N8y-f2%|f#@Ce5|Mdjv+MJ` z{l}YKKmYpcKP|;vq7`uKZ9a>XKY-a}wa9Hmi-NTVwCu=6*0Y88o(;Ba4O8yZuiit- z4~i)VjzU5S;8pW9>BdD>*{%2+#}(qVtUw5A2OAXPZRI|J3ObY}C;`3i(T1eEUNPSw zpqpfwfv2y}zV9y}=aGD4X_ry7In@1TeC(uiRDoPW3Ro?t7cYg2zY`OnU`cowtO!mQxR8yyOsG_Jq`%SR>>YM z(?`+9eZ;@>m~(E0HVF}#++@F1;jS7%HBg_?Fmh5q+d;g6smyftyI8xD+|PgUDndW! zfls$iZS^x8_jDWoPFB1m_H!NjTb}^G!(-bC3D5SX38~20p;B3z^*bg2(SW^do|~go zt9{xH4aAi@#o7D+^p@ERrfBz0C)1N7_3NCc9v4AUz0=+g{F=S*akhapSoe;4{PsP) z9)IyRL#h0&U%Asyxar#e}cyx^qtFV)sgw1wkG}QJk8kOeXUz z1Ty2O4A+$5`{GE8Yg#ne2BR>$=F(ZLd>-Z>_wvFt0ewxPFjKHpvINPl zEvQxPu!Bo_Z_Y1S|7Ce-3GY5$jOVtG36=8*1ocIIG9 z)3ZR>Xnqzgb$7zU&d>tw9ZylS&+crF+F&c2axb$~GFMj@UCGaTW~hX6xARj1EzM4a ztkK-ej0RLddC+;OklyjE)O+gA=A;RVP`xo@QSElICe( zXrp(^iu(|jk(4#g;b2^31ome>@=n4a4E=B#c=N?_IUmo1(JVmY<#;xkF6Ib%{%E*7 z2~Wn;kv~6~E+HHaN0aFgRvhiH2vX{1x`57ktGqfu=C^rGB5{&f`~3}$LzSI|!5Rd` zxBaHNY2WH-s^Cdnw*Xs5t^8JN(w~*R0S%$w0&D@V!)b^%L&tN4J4k%Zzts_!ZFx1< zd4l}2+#@X$G5|OZqOHmj0T<*3$t|@|v11qn`R-?mLR_bc;jG>)=k*`ZB2Q69wrNmG z>&P>dX1&w@^nzsDJME1<&)f8ldcr-|JMEpkz`b9OdNLYcE9sl%Cf@hB_p9MKQ8-m7 ze+G_4M%2u4v|Esxn~E+2w4Asq7XXEsndcW%Tgjzv&XdDY0uqvJBf)QE`8)}Q6p~y9 z3XB8rjm!-ve5{n8nAg&QGRcJEAl)VMfRvQ1Ms24`5N8-np}LBgFt zu0~PY)|VFtEO8`ds7khJjq2swi)Yet_V)X;tH1S5hsMZU${Y-DGn9ghXW%KTa0pO* z)4zc!P}y~&oq?p<-^ZguE>nDiBeX)#vj9eXnoD2WQBO|*%BD{_lju<|QT4;Tn%W0` zO$hxqcY3Q!QMiBb72$qF@ve<8up*;?$_vvdcUPYOZ;#74FL%4lT`I$kPU!t+?lO?< z(~QfEKkrN%6i&W{8yw+^JTpvD#R*ud?|f+$Tl?a8OMVXd;__yE#QvQ+k?g7zwJV;e z;)=rHx}>GxM5<*P9+&9f_IfOm*aL0-+?}#B0oh8RsG~8-uFK48WB*46UmG?^)URN8>ss4Xs%sR5=?c+( zGq=dOsFk;zE5gxluzKDB%am+{{#@iV=3lrQ;e7${JwIfquA!1n1bu!f_9O%33R$gr z7Od^>_X!8g2Z1L~lKK_vqEIp%rJWVW*K_{IT^O!eVeXe!GeC`#@8N@G94%K&W?WR& zAxGGrRiofHTsWCK*+(vfa_3TB)`n6(lPS%#i%TP7Lg$jYpxz`AddisVLNeFGBZJo- zfgIjZ!E-e-&Xj#u>yfB12F?1N?`6qXy&JSlWbX`(WQx;=HDY6~Cr_0C3vEhSwiPHG zx2L@+MR=O9h4nd5m-1#j79v!c_hpXuBLD>uoGGS-Lg~b#dSd82+oeWe%QaZ5qjRt{ zrmJrmUTYe;e? zmwqs!NF>E+#jUtXzk}jXL{aj#$%{BdexqFhRqjqxl8}h3c2@~AiqG?eNoDfXZG5g8 zU9RL)eaE{@^qT_T&p7;kk;6%Cs8d=Qz}>i*cjP>jy3xpCa7*39|fZ7oev8~i>;5m=3bl?cq-y;2Hs%k4SjF! zkMsOiGl<5^6VE>xolH(pI33OAi|O)YIh!s|&~m)=7vtG@F&qvTC*EX+yt%)C-eQa< z%js}FpYNqi?1CJeMG<(7S8JMq*W&t@5cIjYeUom{Id3nxObHvvgD)PR&+8FaM;|K} z>0lGyJr2+FyyzwmC2 z%WmB7vNb}q2af-GaPZ}qJoj&(vkUg~ z%P+qKR{@L}PuWH^J2*Hv_yk@N@IB59X3u2FHV)O@J&a$T_V+!XIL1N-D~wFM^B@8J hQx!G8^{_oYkI&=t_}u#W{{jF2|Np&GUWx$v1OQbK0>c0R literal 0 HcmV?d00001 diff --git a/stable/unifi/11.0.44/ix_values.yaml b/stable/unifi/11.0.44/ix_values.yaml new file mode 100644 index 00000000000..91423407a23 --- /dev/null +++ b/stable/unifi/11.0.44/ix_values.yaml @@ -0,0 +1,64 @@ +image: + repository: tccr.io/truecharts/unifi + tag: 7.2.95@sha256:1d8afe976c4f081274295f0ba06521162341375647883add244db6a6508df0ec + pullPolicy: IfNotPresent + +service: + main: + ports: + main: + protocol: HTTPS + port: 8443 + targetPort: 8443 + comm: + enabled: true + ports: + comm: + enabled: true + port: 8080 + targetPort: 8080 + stun: + enabled: true + ports: + stun: + enabled: true + port: 3478 + targetPort: 3478 + protocol: UDP + speedtest: + enabled: true + ports: + speedtest: + enabled: true + port: 6789 + targetPort: 6789 + guestportal: + enabled: true + ports: + web: + enabled: true + port: 8880 + targetPort: 8880 + protocol: HTTP + websecure: + enabled: true + port: 8843 + targetPort: 8843 + protocol: HTTPS + +securityContext: + readOnlyRootFilesystem: false + +podSecurityContext: + runAsGroup: 999 + runAsUser: 999 + +env: {} + +persistence: + config: + enabled: true + mountPath: "/unifi" + +portal: + enabled: true diff --git a/stable/unifi/11.0.44/questions.yaml b/stable/unifi/11.0.44/questions.yaml new file mode 100644 index 00000000000..76ec99d38de --- /dev/null +++ b/stable/unifi/11.0.44/questions.yaml @@ -0,0 +1,3156 @@ +groups: + - name: Container Image + description: Image to be used for container + - name: Controller + description: Configure Workload Deployment + - name: Container Configuration + description: Additional Container Configuration + - name: App Configuration + description: App Specific Config Options + - name: Networking and Services + description: Configure Network and Services for Container + - name: Storage and Persistence + description: Persist and Share Data that is Separate from the Container + - name: Ingress + description: Ingress Configuration + - name: Security and Permissions + description: Configure Security Context and Permissions + - name: Resources and Devices + description: "Specify Resources/Devices to be Allocated to Workload" + - name: Middlewares + description: Traefik Middlewares + - name: Metrics + description: Metrics + - name: Addons + description: Addon Configuration + - name: Advanced + description: Advanced Configuration + - name: 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: Controller + schema: + type: dict + hidden: true + attrs: + - variable: isSCALE + label: Flag this is SCALE + schema: + type: boolean + default: true + hidden: true + - variable: controller + group: Controller + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: advanced + label: Show Advanced Controller Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: Please specify type of workload to deploy + label: (Advanced) Controller Type + schema: + type: string + required: true + enum: + - value: deployment + description: Deployment + - value: statefulset + description: Statefulset + - value: daemonset + description: Daemonset + default: deployment + - variable: replicas + description: Number of desired pod replicas + label: Desired Replicas + schema: + type: int + required: true + default: 1 + - variable: strategy + description: Please specify type of workload to deploy + label: (Advanced) Update Strategy + schema: + type: string + required: true + enum: + - value: Recreate + description: "Recreate: Kill existing pods before creating new ones" + - value: RollingUpdate + description: "RollingUpdate: Create new pods and then kill old ones" + - value: OnDelete + description: "(Legacy) OnDelete: ignore .spec.template changes" + default: Recreate + - variable: expert + label: Show Expert Configuration Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: Controller Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Controller Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: customextraargs + group: Controller + 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: Container Configuration + 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: Container Configuration + 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: expertpodconf + group: Container Configuration + label: Show Expert Configuration + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: tty + label: Enable TTY + description: Determines whether containers in a pod runs with TTY enabled. By default pod has it disabled. + group: Workload Details + schema: + type: boolean + default: false + - variable: stdin + label: Enable STDIN + description: Determines whether containers in a pod runs with stdin enabled. By default pod has it disabled. + group: Workload Details + schema: + type: boolean + default: false + - variable: termination + group: Container Configuration + label: Termination settings + schema: + additional_attrs: true + type: dict + attrs: + - variable: gracePeriodSeconds + label: Grace Period Seconds + schema: + type: int + default: 10 + - variable: podLabelsList + group: Container Configuration + label: Pod Labels + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: podAnnotationsList + group: Container Configuration + label: Pod Annotations + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: Label + 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: 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: The IP Families that should be used + schema: + type: list + default: [] + items: + - variable: ipFamily + label: IP Family + schema: + type: string + - 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: 8443 + required: true + - variable: advanced + label: Show Advanced Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: Enable the Port + schema: + type: boolean + hidden: true + default: true + - variable: protocol + label: Port Type + schema: + type: string + default: HTTPS + enum: + - value: HTTP + description: HTTP + - value: HTTPS + description: HTTPS + - value: TCP + description: TCP + - value: UDP + description: UDP + - variable: nodePort + label: Node Port (Optional) + description: This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 8443 + - variable: comm + label: "Unifi Device Communication Service" + description: "Unifi Device Communication 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: 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: The IP Families that should be used + schema: + type: list + default: [] + items: + - variable: ipFamily + label: IP Family + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: comm + 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: 8080 + required: true + - variable: advanced + label: Show Advanced Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: Enable the Port + schema: + type: boolean + hidden: true + default: true + - 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: nodePort + label: Node Port (Optional) + description: This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 8080 + - variable: stun + label: "STUN Device Communication Service" + description: "STUN Device Communication 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: 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: The IP Families that should be used + schema: + type: list + default: [] + items: + - variable: ipFamily + label: IP Family + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: stun + 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: 3478 + required: true + - variable: advanced + label: Show Advanced Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: Enable the Port + schema: + type: boolean + hidden: true + default: true + - variable: protocol + label: Port Type + schema: + type: string + default: UDP + enum: + - value: HTTP + description: HTTP + - value: HTTPS + description: HTTPS + - value: TCP + description: TCP + - value: UDP + description: UDP + - variable: nodePort + label: Node Port (Optional) + description: This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 3478 + - variable: speedtest + label: "Speedtest Service" + description: "Speedtest 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: 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: The IP Families that should be used + schema: + type: list + default: [] + items: + - variable: ipFamily + label: IP Family + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: speedtest + 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: 6789 + required: true + - variable: advanced + label: Show Advanced Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: Enable the Port + schema: + type: boolean + hidden: true + default: true + - 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: nodePort + label: Node Port (Optional) + description: This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 6789 + - variable: guestportal + label: "Guest Portal Service" + description: "Guest Portal 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: 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: The IP Families that should be used + schema: + type: list + default: [] + items: + - variable: ipFamily + label: IP Family + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: web + label: "Web 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: 8880 + required: true + - variable: advanced + label: Show Advanced Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: Enable the Port + schema: + type: boolean + hidden: true + default: true + - variable: protocol + label: Port Type + schema: + type: string + default: HTTP + enum: + - value: HTTP + description: HTTP + - value: HTTPS + description: HTTPS + - value: TCP + description: TCP + - value: UDP + description: UDP + - variable: nodePort + label: Node Port (Optional) + description: This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 8880 + - variable: websecure + label: "Secure Web 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: 8843 + required: true + - variable: advanced + label: Show Advanced Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: Enable the Port + schema: + type: boolean + hidden: true + default: true + - variable: protocol + label: Port Type + schema: + type: string + default: HTTPS + enum: + - value: HTTP + description: HTTP + - value: HTTPS + description: HTTPS + - value: TCP + description: TCP + - value: UDP + description: UDP + - variable: nodePort + label: Node Port (Optional) + description: This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 8843 + - 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: dnsPolicy + group: Networking and Services + label: dnsPolicy + schema: + type: string + default: "" + enum: + - value: "" + description: Default + - value: ClusterFirst + description: ClusterFirst + - value: None + description: None + - variable: dnsConfig + label: DNS Configuration + group: Networking and Services + description: Specify custom DNS configuration which will be applied to the pod + schema: + additional_attrs: true + type: dict + attrs: + - variable: nameservers + label: Name Servers + schema: + default: [] + type: list + items: + - variable: nameserver + label: Name Server + schema: + type: string + - variable: options + label: Options + schema: + default: [] + type: list + items: + - variable: option + label: Option Entry + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: searches + label: Searches + schema: + default: [] + type: list + items: + - variable: search + label: Search Entry + schema: + type: string + - 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: simplePVC + enum: + - value: simplePVC + description: PVC (simple) + - value: simpleHP + description: Host Path (simple) + - value: emptyDir + description: emptyDir + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - 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: setPermissionsSimple + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "simpleHP"]] + type: boolean + default: false + - 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: hostPathSimple + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "simpleHP"]] + type: hostpath + - 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 + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: hostPathType + label: (Advanced) hostPath Type + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: DirectoryOrCreate + description: DirectoryOrCreate + - value: Directory + description: Directory + - value: FileOrCreate + description: FileOrCreate + - value: File + description: File + - value: Socket + description: Socket + - value: CharDevice + description: CharDevice + - value: BlockDevice + description: BlockDevice + - variable: storageClass + label: (Advanced) storageClass + description: "Warning: Anything other than SCALE-ZFS or empty will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: SCALE-ZFS + - variable: accessMode + label: (Advanced) Access Mode + description: Allow or disallow multiple PVC's writhing to the same PV + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: ReadWriteOnce + enum: + - value: ReadWriteOnce + description: ReadWriteOnce + - value: ReadOnlyMany + description: ReadOnlyMany + - value: ReadWriteMany + description: ReadWriteMany + - variable: advanced + label: Show Advanced Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - 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: name + label: Name (Optional) + description: "Not required, please set to config when mounting /config or temp when mounting /tmp" + schema: + type: string + - variable: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: simpleHP + enum: + - value: simplePVC + description: PVC (Simple) + - value: simpleHP + description: Host Path (Simple) + - value: emptyDir + description: emptyDir + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - 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: setPermissionsSimple + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "simpleHP"]] + type: boolean + default: false + - 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: hostPathSimple + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "simpleHP"]] + type: hostpath + - 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: hostPathType + label: (Advanced) Host Path Type + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: DirectoryOrCreate + description: DirectoryOrCreate + - value: Directory + description: Directory + - value: FileOrCreate + description: FileOrCreate + - value: File + description: File + - value: Socket + description: Socket + - value: CharDevice + description: CharDevice + - value: BlockDevice + description: BlockDevice + - variable: storageClass + label: (Advanced) StorageClass + description: "Warning: Anything other than SCALE-ZFS or empty will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: SCALE-ZFS + - variable: accessMode + label: (Advanced) Access Mode + description: Allow or disallow multiple PVC's writhing to the same PV + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: ReadWriteOnce + enum: + - value: ReadWriteOnce + description: ReadWriteOnce + - value: ReadOnlyMany + description: ReadOnlyMany + - value: ReadWriteMany + description: ReadWriteMany + - variable: advanced + label: Show Advanced Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - 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: 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: expert + label: Show Expert Configuration Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enableFixedMiddlewares + description: These middlewares enforce a number of best practices. + label: Enable Default Middlewares + schema: + type: boolean + default: true + - variable: ingressClassName + label: IngressClass Name + schema: + type: string + default: "" + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - 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: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - 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: capabilities + label: Capabilities + schema: + additional_attrs: true + type: dict + attrs: + - variable: drop + label: Drop Capability + schema: + type: list + default: [] + items: + - variable: dropEntry + label: "" + schema: + type: string + - variable: add + label: Add Capability + schema: + type: list + default: [] + items: + - variable: addEntry + label: "" + schema: + type: string + - 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: 999 + - variable: runAsGroup + label: "runAsGroup" + description: "The groupID this App of the user running the application" + schema: + type: int + default: 999 + - 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: advancedresources + label: Set Custom Resource Limits/Requests (Advanced) + group: Resources and Devices + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: resources + label: "" + 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 + 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 + 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 + 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: promtail + label: Promtail + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: loki + label: Loki URL + schema: + type: string + required: true + - variable: logs + label: Log Paths + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: path + label: Path + schema: + type: string + required: true + - variable: args + label: Promtail Command Line Arguments + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: arg + label: Arg + schema: + type: string + required: true + - variable: envList + label: Promtail Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + - variable: netshoot + label: Netshoot + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: envList + label: Netshoot Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + - variable: vpn + label: VPN + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type + schema: + type: string + default: disabled + enum: + - value: disabled + description: disabled + - value: 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: 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: Sock5 Server + 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/unifi/11.0.44/templates/common.yaml b/stable/unifi/11.0.44/templates/common.yaml new file mode 100644 index 00000000000..c1a366e1cf0 --- /dev/null +++ b/stable/unifi/11.0.44/templates/common.yaml @@ -0,0 +1 @@ +{{ include "tc.common.loader.all" . }} diff --git a/stable/unifi/11.0.44/values.yaml b/stable/unifi/11.0.44/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/whisparr/1.0.11/Chart.lock b/stable/whisparr/1.0.11/Chart.lock deleted file mode 100644 index 7bf7c14a4c1..00000000000 --- a/stable/whisparr/1.0.11/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: https://library-charts.truecharts.org - version: 10.7.13 -digest: sha256:2f2267115af9bdc61a64db6317564e2d07f4f27ccb0627720c8a63d82b1786b7 -generated: "2022-11-02T11:06:39.268454058Z" diff --git a/stable/whisparr/1.0.11/CHANGELOG.md b/stable/whisparr/1.0.12/CHANGELOG.md similarity index 91% rename from stable/whisparr/1.0.11/CHANGELOG.md rename to stable/whisparr/1.0.12/CHANGELOG.md index bbf65ce8a91..85640cff185 100644 --- a/stable/whisparr/1.0.11/CHANGELOG.md +++ b/stable/whisparr/1.0.12/CHANGELOG.md @@ -2,6 +2,16 @@ +## [whisparr-1.0.12](https://github.com/truecharts/charts/compare/whisparr-1.0.11...whisparr-1.0.12) (2022-11-03) + +### Chore + +- Auto-update chart README [skip ci] + - update docker general non-major ([#4286](https://github.com/truecharts/charts/issues/4286)) + + + + ## [whisparr-1.0.11](https://github.com/truecharts/charts/compare/whisparr-1.0.10...whisparr-1.0.11) (2022-11-02) ### Chore @@ -87,13 +97,3 @@ ## [whisparr-1.0.4](https://github.com/truecharts/charts/compare/whisparr-1.0.3...whisparr-1.0.4) (2022-09-25) ### Chore - -- Auto-update chart README [skip ci] - - update helm general non-major ([#3898](https://github.com/truecharts/charts/issues/3898)) - - - - -## [whisparr-1.0.3](https://github.com/truecharts/charts/compare/whisparr-1.0.2...whisparr-1.0.3) (2022-09-22) - -### Chore diff --git a/stable/whisparr/1.0.12/Chart.lock b/stable/whisparr/1.0.12/Chart.lock new file mode 100644 index 00000000000..c12e57fd354 --- /dev/null +++ b/stable/whisparr/1.0.12/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://library-charts.truecharts.org + version: 10.7.13 +digest: sha256:2f2267115af9bdc61a64db6317564e2d07f4f27ccb0627720c8a63d82b1786b7 +generated: "2022-11-03T02:52:56.118612516Z" diff --git a/stable/whisparr/1.0.11/Chart.yaml b/stable/whisparr/1.0.12/Chart.yaml similarity index 98% rename from stable/whisparr/1.0.11/Chart.yaml rename to stable/whisparr/1.0.12/Chart.yaml index 9d84477d205..d0d430b2c9f 100644 --- a/stable/whisparr/1.0.11/Chart.yaml +++ b/stable/whisparr/1.0.12/Chart.yaml @@ -22,7 +22,7 @@ sources: - https://github.com/truecharts/charts/tree/master/charts/stable/whisparr - https://github.com/onedr0p/containers/tree/main/apps/whisparr type: application -version: 1.0.11 +version: 1.0.12 annotations: truecharts.org/SCALE-support: "true" truecharts.org/catagories: | diff --git a/stable/whisparr/1.0.11/README.md b/stable/whisparr/1.0.12/README.md similarity index 100% rename from stable/whisparr/1.0.11/README.md rename to stable/whisparr/1.0.12/README.md diff --git a/stable/whisparr/1.0.11/app-readme.md b/stable/whisparr/1.0.12/app-readme.md similarity index 100% rename from stable/whisparr/1.0.11/app-readme.md rename to stable/whisparr/1.0.12/app-readme.md diff --git a/stable/whisparr/1.0.12/charts/common-10.7.13.tgz b/stable/whisparr/1.0.12/charts/common-10.7.13.tgz new file mode 100644 index 0000000000000000000000000000000000000000..c3131de86ff390f136bf19240caede7a29b33ecd GIT binary patch literal 49153 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 literal 0 HcmV?d00001 diff --git a/stable/whisparr/1.0.11/ix_values.yaml b/stable/whisparr/1.0.12/ix_values.yaml similarity index 91% rename from stable/whisparr/1.0.11/ix_values.yaml rename to stable/whisparr/1.0.12/ix_values.yaml index d2dbfc0cf09..3728672f4f8 100644 --- a/stable/whisparr/1.0.11/ix_values.yaml +++ b/stable/whisparr/1.0.12/ix_values.yaml @@ -1,7 +1,7 @@ image: repository: tccr.io/truecharts/whisparr pullPolicy: IfNotPresent - tag: 0.1.0.53@sha256:4c4677f490dfae1c9bc30eaf9c615c08dcc9c9caa5bf93a54f96bf1e9c9d0b98 + tag: 0.1.0.53@sha256:33acc03dcb9cfa389602577aeb5bdb6153b7abe8b9f943db5c7a90dbabcc5e9f probes: liveness: diff --git a/stable/whisparr/1.0.11/questions.yaml b/stable/whisparr/1.0.12/questions.yaml similarity index 100% rename from stable/whisparr/1.0.11/questions.yaml rename to stable/whisparr/1.0.12/questions.yaml diff --git a/stable/whisparr/1.0.11/templates/common.yaml b/stable/whisparr/1.0.12/templates/common.yaml similarity index 100% rename from stable/whisparr/1.0.11/templates/common.yaml rename to stable/whisparr/1.0.12/templates/common.yaml diff --git a/stable/whisparr/1.0.12/values.yaml b/stable/whisparr/1.0.12/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/xwiki/3.0.59/CHANGELOG.md b/stable/xwiki/3.0.60/CHANGELOG.md similarity index 91% rename from stable/xwiki/3.0.59/CHANGELOG.md rename to stable/xwiki/3.0.60/CHANGELOG.md index 3e7e80924e4..414851b5127 100644 --- a/stable/xwiki/3.0.59/CHANGELOG.md +++ b/stable/xwiki/3.0.60/CHANGELOG.md @@ -2,6 +2,16 @@ +## [xwiki-3.0.60](https://github.com/truecharts/charts/compare/xwiki-3.0.59...xwiki-3.0.60) (2022-11-03) + +### Chore + +- Auto-update chart README [skip ci] + - update docker general non-major ([#4286](https://github.com/truecharts/charts/issues/4286)) + + + + ## [xwiki-3.0.59](https://github.com/truecharts/charts/compare/xwiki-3.0.58...xwiki-3.0.59) (2022-11-02) ### Chore @@ -87,13 +97,3 @@ ## [xwiki-3.0.52](https://github.com/truecharts/charts/compare/xwiki-3.0.51...xwiki-3.0.52) (2022-10-07) ### Chore - -- Auto-update chart README [skip ci] - - Auto-update chart README [skip ci] - - update helm general non-major - - - - -## [xwiki-3.0.52](https://github.com/truecharts/charts/compare/xwiki-3.0.51...xwiki-3.0.52) (2022-10-07) - diff --git a/stable/xwiki/3.0.59/Chart.lock b/stable/xwiki/3.0.60/Chart.lock similarity index 85% rename from stable/xwiki/3.0.59/Chart.lock rename to stable/xwiki/3.0.60/Chart.lock index a13d1861b3a..99acedb2244 100644 --- a/stable/xwiki/3.0.59/Chart.lock +++ b/stable/xwiki/3.0.60/Chart.lock @@ -6,4 +6,4 @@ dependencies: repository: https://charts.truecharts.org/ version: 8.0.114 digest: sha256:7d5a56e86e0f22e36a8a06215d5b649f5ea0ce3f4b9aa929d3cc8240798214f1 -generated: "2022-11-02T11:08:20.917117362Z" +generated: "2022-11-03T02:53:21.07597449Z" diff --git a/stable/xwiki/3.0.59/Chart.yaml b/stable/xwiki/3.0.60/Chart.yaml similarity index 98% rename from stable/xwiki/3.0.59/Chart.yaml rename to stable/xwiki/3.0.60/Chart.yaml index 5d3b441a3f1..dc15b25292c 100644 --- a/stable/xwiki/3.0.59/Chart.yaml +++ b/stable/xwiki/3.0.60/Chart.yaml @@ -24,7 +24,7 @@ sources: - https://github.com/truecharts/charts/tree/master/charts/stable/xwiki - https://hub.docker.com/_/xwiki - https://github.com/xwiki/xwiki-docker -version: 3.0.59 +version: 3.0.60 annotations: truecharts.org/catagories: | - productivity diff --git a/stable/xwiki/3.0.59/README.md b/stable/xwiki/3.0.60/README.md similarity index 100% rename from stable/xwiki/3.0.59/README.md rename to stable/xwiki/3.0.60/README.md diff --git a/stable/xwiki/3.0.59/app-readme.md b/stable/xwiki/3.0.60/app-readme.md similarity index 100% rename from stable/xwiki/3.0.59/app-readme.md rename to stable/xwiki/3.0.60/app-readme.md diff --git a/stable/xwiki/3.0.60/charts/common-10.7.13.tgz b/stable/xwiki/3.0.60/charts/common-10.7.13.tgz new file mode 100644 index 0000000000000000000000000000000000000000..c3131de86ff390f136bf19240caede7a29b33ecd GIT binary patch literal 49153 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 literal 0 HcmV?d00001 diff --git a/stable/xwiki/3.0.60/charts/postgresql-8.0.114.tgz b/stable/xwiki/3.0.60/charts/postgresql-8.0.114.tgz new file mode 100644 index 0000000000000000000000000000000000000000..993545f3b601b4c9e100827e72f4aa64fbf4950a GIT binary patch literal 55210 zcmV)^K!Cp=iwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0POvHciT9UFb?*zWF}&c$mx>1Vc| zISxcZ62=t4AwW5rbl%VYJGc_ONtAD$^oTp#u}Gj$C=?1+g+d`Bl+9v9{}r@P<}hZh z6~Vk<)$wB1o)Z?}@WvrG5|G1d zPzyvW3TKTQw7Mm+FS@TkS%31D9N;TjJAnVbNhZip^4VWsxGi_s>NuTejRnLZgE&O7 zfQJ?k2V;Q4DfwH0P?FYHae{ATLl(FCPe~Gca@cg08D{fj((=f{s;#NW zVuacYNEwRP6E=l+dwbim$i)fUV5P5aaC$nz$hVRtm@cDzG4?D>b?i90$RPDYIx3Q-Ih^2ear?R2}2>pC6x z${mh7gRy(q>K~2{2fcp3`@hZIT;K3m^M4701kp!O05{D4(Xijk&;Mb+vzz}<@!$oV zp>b}eGtY}#nAnT7wf+JSB|&gb0_?5E;MMdkVdpWTC}dpMgEOtY{Y}kx*B^LCg9$qH z{Yl?F><&6dqfyVBdVPO1a62yay@~HabToqfQO9*Xf6#TiJ%2hK9C^bdx6$xO$YK%% zDCU^%0mlKChygZ7ApHdR%HI;-KfnO{fC!zA0vIFUqbMM&1q#^#@F7}|kRk?13@C#P zO_P8kfxS>3vhPH5Z?Q=xiwpfqCb)t zoEp670ayyO|J<@ z0>n@eL<(L4I~4@tU;v(lBu0SEG3DPh{^KkFP6zwK4%V3F>P9eTSSX6Tg85}Q?Lv+)2NI(t=1UuxW6Ea=2=D?k z!3FZe&+`3i{(200jRr+t5@WVHAt6Jbn4D^lp;KA)#Yf zQ=rj6A*cL%`SPVGWl)QVe_7I>Bs``+#e^5^G#X11BnxyBK)kp@izt8$3C#V8#921r zkA+nz-YiHGvUAAhW6*3*Fbm-VTk@vaXozt*kI6(#swti&u~hBFhu?mS(exkxc&_ym zZvMm}Vu*4XCJZ$O=?!h`y2y!$@9^mw4E(YW_G{DadY%igVEb^eQ=15cqQ;Y&1C`wX+pprOK5{sX@ zlNr!01?rW=hoS&^4Ef-r-Q33miN0)OP6D55h&U8el#64VCK=dO4 zUKsl63jiEI=b4|5m-*RDLWTnn&8{)!OtS*cd+`0|^LLk5KV6(%UcbLQyZ8c}IS7ac zgE^t>{{Wu=8Xy#bF5o{x)NG`}#)tS$Y-2dKoNvtMM`0WT{Si1P3;TgtryTgV#XEY~ zq@dcGag=~7XB%n*tzep+jCdj$k*++$amc2i`4{R~By57`0Eb?X_y{za*OES%7Kcn*(g`xy${pw$>OOK97)dhkE5ufNgGfBYKR(p z>uFaC!Z215KzTj8e1j|UFyLcgrjgXUAJzW1{69>q>uoh!59JBk%w_p(PN&4l>&X4*heXRN4nxkML9X=1+#-{l{91RNo-_Bq+|DWR7 z1Lu%26o%g}nScdk-W-Rs z0}!JCGQ30}f^2TRhoRrt10k9TlLS1EVl>5{kPmJ#n}h$_Z-IAVumU6$H91NkLNN$% zh+2)->E-n$BQa|1ffFI3z=xAd;NzG!S~JYr;=dC8Mr-o#xGnyxU(9E1{vZ95F2i;T zNczIS6bFblerVC#sPRK<0&f~WwAdnQ{P6#8?12w3#w4NO)#({+w4#{&6M3xB!ajm+ zSuQ63Y_yitBR=A=-~Iab?BY@Y6?V=q#wpd1pBj6B&o{>>9tCFUZT!%h5w?he#vTw~ zrX=uD+z@W8#vZ^P2}NXqhz)pv@wfMXe?ETu)7k5HKeZPA13*rn_49w^4u*yO-|lcX z|DWX911EDB&QL&RjfQX(|7NM*GGd~a`c~IQaCl@9!5Fm*0J^PKs|a-;JeRw-9jDjX z=WTOj_ylb@;5cE#Nu-BffCm?6$ER=3z;E;hN5I4XXmHb7mEbc;6_W}K7iLSj|J-d< zcC35fj=5zW>slS_9z9;iT=4w2y?(b>w-=bw1kpCHvA68)0wTW{0ctq(` zcdT>Ij&+X8I@WobjvZC@t8;YUejS$dt8--cYjnqcJy`b-C9iktiXy}7o!LK1+Ggw6u~lf(*sUFJ{WyKCms*E}?TTACl;m*%4~njhLUAKs7VYw6)0)@2$^ z5BKnB9X&?(rN^+09wVC`gGZ&uw*289uH}#6ed#eMqsP#uNB7a@V7XDzcj^=g2Rnoj)M)QG9bNA6`KCJFn|Gxd|mG!ItH2vz!vF_Iu5N53Vqjh6_ zUu&ULW-WAjPeYTgqRF;vp4;!Oqse^@jZT@N(XkB;_nwBvdU?>TyQms^bPw0jDZQudrviSJvrR1RTg)R%5rp1t@)@# zX+E-bX7`@@$~ybAvQzg|OOHyl(j!|bb^DJv!kxpqE1e$U&S8Je2;WmDJt|R2k8F+9 zz2^$Co*1KTXMbn3X7(T5Qz1Pn(MOMLb<}-4=UPV+WVr2e*%_``E|2c1EgqF9i$}Ju z*m)#jSlOX_s)TH;av0XtMV!b9z4>~y!a!aChGR@l)!mBgbG9r4Ik5j%I4hBOK= z1JL(LNC6H3T|jxbK=06Sa`cWyTdsJ##uf%xXKSZOXPr~z=$`uLQHlC_WNV+DN0hg{ zqtTYuD6g@G823~@k4kjUBliJ`v1T?NR(9&18suS#26cq?*qvU{kqGg zVTS&&{>MQ^)oIms)96vj*5t9gw|B5W%GGPMUs1tMf-|08<5dq=fhvW5(uVHFt$ z+ZvDA+J|{E432CvJcQv`PK3kS2BIdy;ZY?o47N2kv$aPBA{;&-5!Uj;;kMp>UZau> z+nSl#+QR}FMm8B9(cbPI)}GCV48uzCIM~*}%+?+h$S}0Y(0fcW47Mi2pqdQZnw8nw zg;ioOu*q=OEuUSnKVPvJO`*p~3@+taUJ67WCGgYxSG8GxR9mChtUo&HY@vW1ZmoM9 z3f-eN{)by`EAblJz#nb710yesw%6?+Id_yF_p50$guyd1p$I`NIm!EK%Qo8(}BCkOv5#l8ha zZzq6u0%(l@y6fKXuGmhp>?F%hvg{s;Egi2V$J|R^Nt~5)Z=?_d3^E!V>nm&O7JKd9X9EyRo?U zSnP;=A0q$RsCTdP&;7#r=e~XZ`LU8HDKc-pG3VL`e?xRb1j^lQ7tyrlVXM`$;MiR+ zxB;N=g9WA(hcncv>!JskSL3lI!J5@o+kNeq_iRtbrN?0M~+qNeAa{x%HuV3gf< zYNj=Z8Oo+p^6+8q0VwbIu(xf>reW`>M2(P0WRuejRC1bOciY)J><&wbyY0-aBJOA{ zai6|l+omE&YxXn!8e07-Cc>#R5r$i5pc!`SN2Uz7O^L~Clu~Tl811xXH$$<$O))LN ze#DePbvmDT$pVE;URmbNk#{p8pV}08;sqlB27!v8IgTP) zV|6GBqkioKJ%%s?A#4G#WVkK9dt1k~^-Nsbf-Dh0pI8i!;~53hm@LeNr5*`cOk_Sx zqTk9sY@0=%*C-v_J8KATMniCI4WUyAdD(W1dZTT}s5jas?O<=AI}hFToQ!n7U0lJCXkU>2txjLikLT7rDzFR>Jhg{mW*PU-nPcca@S;J4`O8& z8K`@>9l^VYrKa}RM5#YB3I3?Qx&N^Kwh(;eJ(`!vA`<$Gaz8Pmdd;hmaEfQreMLeB zafo6NqbZ6}=phRH1o86oWQO?6k2z5Qnew%WP|QfY5>33}%ET#Jio0cvfZ$MVle2^* z9g8HL2O!DgBT}=4Kl;AU{A1n!Dhc<{m%nbl|9RN$TpSg5Yr8(bIsRob`a4>I= zFQt{#YBash5L1K>blw-*C;sX!~;SIb1dpBT?Vl=iBsi(3$72qur&&1u!S}*odghC&M z-pWd$zTas4@Pp`=6hWARkT9@-Sc*;`Ojdx+5lAA+VgwgJ-5@P6hT#gxB|@p}b1ll~ zoFswIDIY^jkq>_3NN=aXhv>HL%?Y7s|A!xhbh{);>>+SMeAHuF zyp|MywISZ#-daiJ1ug$7P`E(1ug32{;}+ma4C9rf#yLCW;CJl_{~f4X zgu(9uomVOM@o^H2Cs%?DpEnv;L~|-&oHInp!hDcE1;NO_{ZE3u8|RYoazAlyU(b*W z7$z`i3ow7_b~xX+Q|ufVI>%A8-;&7jS(3v^GnwHzrQ3jz6ZK;{ZXX+sj~_pJB%~xj z4W$M}L>K~=jL^8264a_D7i;-KW0N*!LA1DvBOu8CK2%joY5v0x@1t1^eR1FX1(Cz_ z5_&gco|(Ft!Q+$Sietqqq5}|j}GBDv1 zPz(TX;y0^}O%gFX*R?Fep_XKn@eZ}+ly6&r_pSDnKv1ym+oXi1#xtck@1UWD^) zfJ4-1Tt>*l(-lC_n}Z0(aDf<#t>PaYhav`U(CUTg!EXoV&wqRbFrEodCRa~C+H>z? ztH>TD)AIjuHCi-)!e#5~e_u3@7bwOaY`;af;O`{9X^Jvn{RA%QDg=g28ja(Cp*VyL zFHx{M01*8B_|0qa4X`<6fC?&LL@hQGTj~5KoNyi7(8j1OQB0QDM?Scnb3i#MAO@r! z5lXuToT<(4*`9{TW1=Afh+t_s{Efz|DOiyNgb4ZkqbG~nqQ+FwT2*f8FzSpj%S3T5 zgI?qChPS9{y$S_EgJ8A2ED9tjha0i`;9o+xQ6b!fGS-sXL=r`WuYnFYSL#(N5DRtW zU}gGohgELDTZAEV-n_rOa=6{H-)cDE5+ONNe?=3DS*7&dZ#dv2Me-C=kHmgj+Ltd{ zvss&cpyyXV|9Zt@Ug=$gLIA;ULbck)^tY6-M#FI&Nx6u#TWoPvLFXo6umb24rc7Jh zynn*r_A!^iXgVcat(c0gPzI;dRzr^i2`Tnb3>NT4PPE^A5(=qaNpmW3+UKjE@b=?L zA{baKiK_ind0l~9xDt%)!SKIS*N%e#T;SQ9QE-7MikHX-4!D{lTU$7nFupo__&@Ej z?0>U=AmrEswz1y+cRT&=FlYbwd&B?Bo5h{m8|Fib)*FaJ zo&KX~eYe6>$DqmA>+={dV7$`D47mz=JI9{1@#Y8yY%Z0(I0@+iAXA1y@$D8(-oLV8 zXZtN5==+#A27_zJSWFH5(?=4>#~#bp6vd0A(B~ju6X?H$0SvvYbjlSI;(&h1fUZGD z`zfO-IOi%^311YSGO}z*q8j8XAzjtyJoCrZkbu>F-s7r1$|uiUmuxApIX$7ja_!HG$xO8=3}}g9E$S2M!)r`4ua{m1`r1ibn4-A}X)}R8DUsf%FTo`vF`TWD z-MoOBQzY;+1E!bF)+Xs(Axq}i_fc3PhYB(|LNUdZq0mDwA;sR8@^8m#npAww(;A0- zHKzI36nROE*{bZ_2?-hc#B@VNM#u@h7%y>vX2>rvpAmPa2v`umL^M_Nx+Lp_kO0B5 zMJ30S)o8{D`tQPE#k=z(4iH^Yh8C45U#Q|hC?#oyKLmFe1mxBb@r-&fkj~~R?2mZ` zU}}K0${$1fBs`{XNyuqgiL+hkQLrqigQe`AnODTW%$BNF9tHZ`6ey8F=G%Jpk(YRN z3dmIMeNq&2sG)Ye!c;8P6Gr*A`)4N5`^$fjSJLwTWp<|8!cY4!p1=+9Kb>K(oAdt- z-Tq+b|9grDMp#8pjKQ+ofKgCB|&kS%Z(8fG66MdkB0qDXEYczZqVwM#6BH29FR8Fa6o1!w&AG2 zj>b(gL8hzE(x{VX4HLE#3t(sgaWEEvM1RW#H2@JSF}4W+KoSQj`nd|SxWYh+Q-xk* zsd16yCQEet!P<-QjNjKgF{L9J#Og;ry-MUH4S@uMPp( z1AkMCJTH8S5SXBV+%`yr!etb`TEH3Nnu36(;}nGPDGLBEz$jz@^MVav1qqJ<^Sro) zi7g*gEl1X>3l}iRCnSS2ExG>dt|M$jL1dz0>{<4t;K z)Sphf)2Zvaus=L;aOicX{llZadk8zdqoYF~PWyd0 z>K?j>=&;-GO^=4X;q++Kt~;Olq1$&|Z{kl5{i%EC!XE6n-R|hHcQoPJf$I+38f{lo_c*wPE2`+4 zT94aOHmzArTVBRd;A@iCs!|K0P2_&-Fy-K*j_-~}{%8Q*(P6(g9Sl4DUjGQ8?qtv# z`4FMWz?)9tu-6~riY#GVZVnu)6o=7>$ScW6T=|F;nvbu)~Y7*v4mQaz7pCd zI5t&#+#={2x$C+|hZDEw!2yD>*YA77iQk?09nXc`qv@n`*dL9${a(-O9=h(tn;yZ@ z;bb&A>>W-HM^m`5<+>DIBmu)X#A~LuDB|!kb*YoqD1#RxAJZa%+?LzwX!`Vfy%C%q zdELqAXmaQeMlR|@ANIV_&_{y-oK6pWo$j#L^*nUsP6k~#JsfuYJ{%4^qfx(9aN6zG zC6A0$Ny&o5=@PO;ag2RrVnw4EP4Oq~%bO-apyDO?KkroO3>01tg$&0kLf%JHPA}=U z)&NRtrW-;)VkaGUv?UL(q(`(>ylO&`-)boL9vy?vU)Do|VMwIsY9mOisDRr@Lu3rf zC=}t{dgD)i<(1`!G)^Kz8ap?@Dnc#s{R0fJ4~R~N6(cJu{Q&q7El5Za14P6wig+Q4 zI18%Xr!<7UoB&pL^j>9Jr)`03o3^q zNeoU6GW3A=0qYY3g10VIco=xD){}j4?n4~}c`weLv`+Ch!ng8 zb}C50!2mo9Nh}YH@NXJ_KDA;Sg!HSM?x!@)wX}erKoUZIC@OV7dRI3v+pq9{1x2s5QqzOJKs6lm!exgko{NGnCP3+4Ep~;PmXn+jm!IT=%C0 z&;ZZoELZ^;Fr)({^f8Zs%&;fO140slNsMIF{4HFifIxQ)PBE1zaXdnD3n&4%NG!D6 z)Zu7A$@$0!p%H}YkiAeDU=XYtk|HM;r+UA+VP@lriMP4J3-oUiqQ=$#j=}q@lSU(g z%$vUo3B%KsT8SGOIU1>;J;A6!@w`Pte#kHP>clPQ3#Ak(08&|Bz{u7B^bUEJFV7*H zt5ZE<(DmLW6(u9c=40@z{j5+=gcB0V4&+4q1Q$_&#(d265g{+3j4Z&bb5WO<9Rv5M z+j578t>LgWECmS@!mK03kj)Waic|=Rj&9r2FV0EK#$Y%cS_ECMYed9vM8rQX(I-k) z-qLlqv1c__rv<6DZB`dl&DU9#pgvmV+CT=Xg~};nC|=+YQE)p)@}!eyVkvZZRT(ZO z4xCa!&lT0-rw%h(o!M7AA(`M{7yG!J#jvmWa|*MeH^?G(ljo*Dgx^fdH_Pg_&QtsUrj{=yV8HlBW{XgG$%fPqy?mvbs5#xKXFW8r=Za2NP6Vm! z`(^Vl1!+l6k*?48wc3*dEUFaDV*}@Ejxy6Pj}{}`#2G^Y%z(+Rplcu$R{1Tk z(Vfb}RPVP(&Zbfk-g;Co5-}v@9gg|OT%}Vq6^p%QQ<_Y~3DcZJc?%b2ie*2&HM1j~ z`M$5=P(A01{nOx-AwsQ#}NySQ3L6iA17` z2y7K0+5+z)#W70bJ^)Dlt6n(rx18~!>XmQ=s>4tv4Ir({2Uui?5uF$BlnbnOEro(* z%)X~e4*EDoo-iC4gWgHOTXp<;f&jdQF&aygce08grHF!?L#kPd zavNHlxOk-jP|I`2%^dS#44NpUy{2;D;Rr6q>Tl&OZTfRBYF5;p#GQ3jDWA-qE&=4v zSLc~SOw?2YzyVEdesx-Ix6|(SbCoYh!cew~k0`_P0Qwj-J1y~lZG)G1W{{yP&pQz#UHvvBErfH5a6h!V!s`nlkv!H4F?q!j`bc`;&Oiet)J4f*RVTw2pt z9NbkLATi{Bq!>N6-2QF73gP*i(d)(Lq$NNAV>3iViJ~%(Vy!`ca44!@d z3|bd5w@ynWEc){0Sz`~Jm?90;dueIEfzdB$b%CblyErPVP8ciM|Gx9)b3+WITs8=)be2jfJg`9W6yArwb3JLyp=w7<->5&LKzXxMUnC& zDQ!~nCx<>koRQZkw;7!jdMtqf@F9a-AWaYm2=s-LX7pSE8&Y-9^b|6vV4T2E+tq+Y zfmS&6vd@9qE1dMfL@_2YW-H(YkV+S1>MLa&Z83jT#xv^8k)Ln_Th}|`)#Q53mvM0l z#R-Xz952SgS)(m>>6?|i#;c4U$Uqh2*f2j0Sa^GL3uE8$VK_rENvM+|QUx7-;>I3k zLUsxToXQMGjXj-eMay)#EC?SVmH8c2b`zn|LQ0cG>XhXIUxTE4rsyBqApCWXLhUvq zl)aU!xuqwsNFrACpK8AN1`_n$!*uyCtf1pqe-4z`1m!=8njSjY566O7}87sHERavp;DPMS)1B z2m|p!GnOiMGUrlIPsn%TMA{on7m#`L?XVW^#B`I17O_uHPo~RN`B6m^Mo@Jc&;no` zr8CvM+=yhxWc{cFc#6E07oe(+nF7}GcO{fg%ME>tgFxiwOu_@cyuwiI?wAq>00KTc z`258S1Ryh;O(YCft%mw#c6;apwAs>tQ3biw*I9(+@QycB280bJ8k)AZfEG;Cg zSdIf%gt!=wR{%4#pe=C5o6MBf4!b#AB7nIxzYV$m*b;kzC=Y{wl702{9)JwEj(rrb zk8a5#S8(sifFda&8w4h>AaAZ_SMOG+Q6$RfZ*q=t8>)?rgG_eZf|w-?`{5{OS81^%PvQd z&2^o!rrS*wv%%(L^UGKcoGxIBQD9QMmnK!z05epx9KBLE4Uor>4?b#2ijg>wXv#L` zB=D(*r~>D-G%AH%#W_G=u1}__{q$25z||%4Na)isaPw;Sj?cHf5Gvt)ZJp(Y@5(lsw(`z_BNcLU48dx(ow_ zfC!jr-fyDWjX&@-D+B!ylPo`(bc(1w72UQ#Fr)y>jMoq>;3pAQK&D{uL$C9~9dx)= z%IgX?7TIx=2u#pa+*rWGtfb{Lx_aUcJB^0am|-SBGi&+?-h#}^<0g|U6YEXZ7xD zERIS1@ed+{4sq4nsY*-(9HyKmH~d7#X}QU#Xo0{ihMq{(xq2e(1@5BN^TK+Sx7RJ( zON+^^_EfE$U6uZT4Scl3FuV=z(H{HUtOVA;cpS(<%M($#jZ8N$`4Yl|zSVh7j2!IVB*?Dx`L@! zI@VEfu%q&5hw8w&%!6MQ)G8MMb=iVWYuKueiz=Kpxg%P4I&)IpB?W3tZ-TO5m{N(O zGkOZ$$+}8NiH1!o1+SJ8$m+3m#!W{6T*YuY#a=FIL<@?P!xVpTrt)Br!rUyfS;9z+ zVUW7|+fqV1IBM_90W8I4T!A`{RFFo?o&e!2K$i@9HwWNctP-aQ4AcvC?~i#S123W< z;Q|LM?Vz?m7uZ4VaOzLEm;{htPX+}8f~H0fbUPwKibu$DaSu4qb`EC zA%NU6Oru3ZAIuO-S1g@z6}-QAExwBNE#2y~dM^%8YyhA-(r;Xx}DJls7FM+7~jj~!$#xKxm3w3*nQ)Cn&Zp(A{{I_a4ZOcUOrZwe9)n0m>(~M;HGCPfHIuoDkIE?)aI@*ya^0%AF zOVv6GeJ9bWW2brADjDYR*^fhK0x9;gaof7>KLynnHe2c7gs;=A(~DPjvC`8{#QTjw zIK$zmilQu_4)jDQKA%9%Z`@FPU=ve25EMa0AY>iUYVJ#=c6^&iS$QPQ8w;QbfozI_ z(kCMJa%=INP?oO4_L?TXq?1&l{xhNCtf@dM8{c4V*@KiKOXHG zq$0@XDN-Cjs{is&b~<8>**RqM7O003FuNx0%sc5l7Hfsi^<}P7TKPf2Uta*X<@TLU z0g^nPa4wR`WIkFByh2NQnanuu{lhnX`c_Q5whW*UmnJ+ohw zyPy@t3{S<*fDtl49O6AeG0W^bX4&5yTqtAWyn>s%v!Fu7eXk-D)rmkD+G2(G0m(o< zzRXGNr{X5-BoxOR-e0~1K9WaA?xn|D*cNqp*+Qi%U$3W+g%~s8%=>eOL$7bu6X$k^>DJG8~ z=;X{fd29~O0Q*>h7F<(8#$W>Db)0r@E~`0)DuS;f_$|f9Y_Fc`?e!e4nRp4Y$x2&m z!zQAor$tN+uCSZK`r?lg=6Fy|Q{+&{a?JUM6UFy`!i@sc>A=jcTz{+dyy75PyG4bK zr~N=Qx~_yFPX!}#v62xVBuExWTWs0Q zcuipYNXp0de{*!M$@H4d(Y37p*N+FPs5&OXOFna+sU?)!Elm=Zoh9=98;+4|P#`Cw z1~^0&6I$UP^i>8=gQcb8J&j0>+DS~dSSRxGq#U)Mz)vqEvKBw7S zoV5xlk|1Yzi9&q^iR@Idei90gG4jE43yu8)5Ryz)p@fP6B(V|9C(E1||3n%3vJo4G zG@cxrw^cmSEtH8KVw8xJQSxSH5l9t4yf{clSp^`O?|i0ZY!YinNf$cdFht`klEjVx zY2ol*xePrL{!?GVAY2w7GXOretSlN3&}8Dsa58Zhw2D4dmVlqmQ0;>kk?gU))`%t( zGgtW7IW(CFqd}o1XH!ffI8!G!GIH=(oDX_K?6jL&BC;H>zDZq~L@Dw@I~E|sEn8;J zq|W|{3jR~Wr!RVs|4RYg$_X!Fv{MWni6PYoog9t@l`eQ_x;6$E2>QRqn4x!EVNJU) zj%S)wG8#wS3%=4Inr>NC(uU%HqcJ!-I{FFceF;R^E|MkXAPbXGbWluB zsNw}n@}y+FemXLcPo?xieN~*ZVkTAB0Urqxq44bGr9OAXwLJcBq4rBP&U~d&DyN^w zEhj|v%#j%w?EGOWKu>X4#uNdg<1mLYSFYGCLLq>Gecq#CF~>H%VHiTR=i_*P zeIP7H!Ota#GS;SCq&4RG)u}Bjmw1mB$j6CrwKiq4p=P@3LckW$l!E6M$8Veo^lmtN znG;w0dZH_!CQMRtrUuLzl-H$ZOH8eu;=2$Avf-?R6nl1;_}@r=d?{N0ASw0{Oc7*! z)MqLYj-tnbzC2#9@##(`{REUiyy1%ofpCJ-~my@qN14A1BqB18dCwI0?T(*7&CR zfyp;CL@Z`3(BZXc~5bzaKx(Q?E5 z*SOg(7VORC2@d7|;$@2N2}uH7Uvi73>FXVFp{7SDUSLXvCrTX(nv>g5rY)Q=ROV2M z*m+v8;N~dt{V1cersv0;58}h}QDgqG%w@A!o!Y&*w6nwLidU;hc>1^n?9GvPqtDi` zc%?i@Sxhxfe3+~)*37M-Chs%}X_msp9A!B_k|4$wUL+lSQe;>eU;YR3t@KXTU|;RV zyf6F89zQ%2Yq&dB{)1RqxfoIouHrjc&{^pGw`-Wr@_~QDPHC&ZkLQ|}DL19_SdPR8 z1u{aOa8KUDiKZosbe73qm)d;;fCOyzF~;VVxlLMn*81I!^-1m*Emn@s7gfPmdY82h zYw5DtowsWK%4~`j!-p;3Z;FQ8E>hXq)G&$q^21xztu$@jj(@B9w{*x=D9GmVR{8$w z4Yn-2d89MB0yhqG9_nt0D@Bx_iYODkD~PnPw-hXbW`xIRG%A&LYPe*$KykFh`!xJb zq`OQgip@qTFhOLCl_M_IZ!cDkDN@Ry;gr_k&TvX=vSv7?_vcHQgf6{D!|k-x5%=}f zw>3E4F>`5Qnv#H$1>%1`z`GcTy-^Tg z%BTkIOk=u-%;2sGn ziy;>GFl?pp$gH9`oH=MIBaGURQalSq_N|cksJ$188$;!p;{68yb(uL~Y)L2z;8Yxq zT3I;Bl<8aNbF71!Zq0$A@4%2@N59!`=)X#kWF#U1nXN7(&eSLO#8jsY5SapGx&YmP zLq!WtN(`=4Ry9vecHjm4ba{hr$Kbzl$j}VMe--SZEB?Zz`hUxOxbn;G9EI;g3K^zT zvFDikE&_ehVf$|>RsWjHFvkQD7zxzzJ^BD+CSZ#3N#P0_m_~9b%egIg9AHS1iRn`s zJ_=ck<=Zx5UR#Fha%x2pmz=N8b&R(xlxD4cfLx-`_Z@|R!-(KP#5_mf;Bbj2{&b+k zyuIJB`eDWuM^R+Yk@c}H|GMM>g&ehB;-rAl`U3Xm=s{f0>nWZL=FH= zyg6_D4Gu9M-jznITWHz5J>W;hf_qnWBB53@l^Y`OiohiIQBFvm~hghZcP9bHq z!T)Q*MMY7a22`E^mValnS2lqDkh^P5)Ytc8PDy%KW}&|NkkvM>)a`?O&69UK$Y2_- z#Vt_`1Kxi}TqLV9kjkhflRVNFu~;fzZEdhD^nG(@z}l8gi0+5;x2pLTc*SZo4b)Yh z;&3Dmr{qBS$VkG#ZzPEU7fVuPjoU&-wQdfn1DP`?3n2sAB#E8$t_v>1IF3$$Cozmy zjv_~U?-s{smcZC|mQh&lD3u4tTPwH-8UQRK`!uPor1O4?J95kJ$5p|22O^$k8HESH zv8tuJYe3hrPjW^m08=NeFLr;Zu9dFG>#VJHJ(RcdJM^5l(OW)jH= zG2_5}1B2_n$~_xFN^eQ*%l#gb%=9@FZAKX%Brs)j@upXr5O?jPbdeg?$%Rs8q3AVl zhS@xs2);1`Vf{4;$fV7e2)P{I9MX22ge@w2XUb*BdYrJih)7>cQ&j^dY%VNPL!CWv zEaLpIk31M30BjuU;xurGq=e$@01gFt#gRpe+~T*j^C(sBh+X^HogM&Ud8J3%xQ{5i z7E7{zLy31YxYm}Xc`dFAy_R>9rnN|JLCXtoYI%Rrc(`PmWl*@qkN?vz6m6zk1z+!>1a!M>SZd`LS=~s+! z=IjB;ojyR}GW9YSZ^8tHBLwL^O1{9nc+^9ATZ9~(7@;rS0J8LtIF$p%-T%@(;5%)j zW%hxWQON(l#ZgdSLn6E%nYJH%H){L+sKSmEr&qI4qD-iTxsy>p09vWr0)li^Frrd;BqH|b3N4Jt}lzJELX39 zt?)X&`L=UR)F&kXtP>AovM0>qdHU?-&#ppr|W}W4we6fy>LEx!~BSfzB|? zsDc;pR@BvSGz_55x&4yU{2T|ogcJ??4hlI1{e10~yjn=4RY@lrH#5Z97~%6!Z3+z( z-XO~P$m5#6&PisqE?djvaHdbWs0{}-Bl(;1-pGp|q!oxhMdF4ntam5`8;8sYVFW&6 z|2n4dqZY;)l;pKrscn!ucW=wXG~-OF>gQL8*2X0{o1alg9E;mC$(F4Qa@v-$bGQ|y zcUou++-|SyT5roR0-3~MIt8`DHcfbCwPO|7+k2GMR|0U1repB1sjo5(*gw)#SfDp_ zJ0r;lR$iw9AA}|k(H4wg8$#uIQ@}QvQ*wu~b7?n#y1`KnU29zujgr(Dymncd3n5Uq z&2mwh=RzlN*iI>nVzS_NoTZVaN?AZ=(j7|YI08DOP(W_*7Mj|6g-N%+PF*rM*433j zeO1Z8F4dFns1_NZcT$Q>?I%=;EE1O~M5&&Vxx|%o*!zpuyxXtI4Hh3bcNCM*%S-)$128`BXjnZugic74z+kXR>XsFKmn5 z@b-1_s`?g-f;w${-Gh%4wI})*ug3YWfCMPig75jyqzf)0EP$54e9dY>lm4f z%M+7zMMYD*f7NRI(EjqJ@%gg}E^RWeCHbu-HuhRYCTjvm)xlE$S|6msIt$1I1}*&Q zgfp$ardAbU7rcMiggI2Wg_IJ6JVL=i5z2g_4`F%)ybd95C+E3NNe!pk+U3!Q`72%Y%%0o66 z@7w7+)o>1!9!J@SFWe%x-`E4nZQP6;p2aO0YWhWcJ2g}A*H=-He&C-}4_|=ifJH%C z=zFlAg@6Kz444WSxo@UgdFd=kttz2kL|!_XGJrHmUx4Rw14qCir; z781gOY)^(4>+0x66ib%S$DT9Kl?W&nYl%Fnc8~ULF3BNu2RLik3r_+1mzoRtnP7d- z2~Kf;YE$nEH8a>MG;R6YGCNIqbT&6)??!EIC@OEHtQlEe3(DrtS6Amb36P3WB}JPh zlQ%0}GKksZR+OGBpxN%^8l%m%gQrIihCX^HHcAinWlXTC}2#Aiz=|7AIDxBs#n z|7H1?Wz#}IHY&kOK>IeR^`=4IN~o>>dnjh@YyMy9v)RHB*r5M+-BB;6|93~j(N6z= zif5hv&j-6DgF2)UAlGUu-@j003v){z8JZ?R!2jZN%&|qqJK-`=Qh>MdGYNbYi$X>$ z&LRB;t*Q$*?fke+Rac1{3&9te`Q+&TH8X{(8fn>Wa3zU0_^>QR+1>c14b^zc}DO%m<;Gm9^wDLKrF^+ zi9~E+TkO$s$!lGl12DBhOE&xQ^K#jCA#PsCjHgRo#X5cgo^x5bNGLl+C^{k0%JPS$ zOPVU*l(=wM>PFzq>h=p-y%mayD!&<{v@x?wQrhKf6}@Uer$Ud@RR53^&dWplZ@zHZ z10$umh|(pQfvGtZ)@tz85f?Nq>^KJ+RbcHhl+t(;?a~0`I}*=Y@4hxpEV%d~HHK(?!kr=S{RGlexfis~(!q(w=n3aROuh zpy}|}tBAjrhtHd!xwLRo80@d3nqQm@IVNSPoLo z)!WPqhY|o4u1y8EnQLJ`1Ez#O#QCjOTDzp#BrI)syW!9wA9aUApD!yN4)w9laOid` zsF{VdX*d*w_7C6`F%&O!5=nU=F?-$d|4$y2RQ=U_wDk1mg5_McnS^w85@M`#iH~D`%oqk^bAN0FB{r@Q* z75|-63-Sl$)Y*I-QWT5SGFxcywmQrww%km!j--o&bz{){{Mkt6^y@4Bv1KJ)`0{1E zrXYhe@a0QW!aPrc;G6{5le=0~bs|$t1YQ>pc4iKBs-Hi_B#HQM6fVbh)VVqaxPG0{ zh3sV>hQ6sSRR_S$S=P>M_7&rlrVt09c`o)cO^!znxSi$$ zu=1Fc9pS7DQBr@2gm7zVk_+I!IRM`;rT?tZ_nVRqFE@w5s00ieQYJBi;nQ;+!gE(e zK?eI|5;Mr8D{1GdLGzO0{DHurqDu~FI*w2V_@DPewW(UF1dwJ*0l%9B7goTq7}qkD z%t~NwWnWSI-Ymuo5%gt$Qt?{a2<*y{&kZG>0urymcZOMNz|}1$Q=8N+tt{pYR~m~> zu%(^lIwpj*Ta?b*GLwlsK(6y$t9Q9hZkQ}-_Si39GD&E~^kYQWsCIZk_x?vkcF&*i zxugC^w}}DVp#QnuqW;(E4|e+BQ#?lh(-~tuE6uAMWoooPnI3aH?XTbtbe=$rmmJ@# z72j31yI+iE{PM-Ig?$=oTxl?G2>5yz!G9%avzI$d60WR@eZf=J4Y`tR&|I=G^4f*c z3H>`mR0B{u9(lL^{ISm+<-fY1{$b?5+b_!h(a!#VlE=t@wT1CKMpG1{(8J*j%rHyU z+Wnjp0N_xj%U8QoAN2jJcUm3njh3faA+}cZ971HS8ZA7XKA#1qj;MEGn z&n;e`?UPZN`?I=(VIy-LmbwhfvSIXzmYfN*bLDTP2S|FEIjx9J@=4D?XGVVfS0?-^E!D8~X?dxFEZxVFOqjwk-1 z0YVYLp}Z4qGt%FPhwd)&-}LdJ@;?m=@qeAc?)>MIJXP_3b~@504*t_kuM7RNWW&0^ zzmjC74;%GYw$eRv%wI~LwGn?cmGS!XU#IL9`k%bo`hoPn{-B$m|89S$|2@fL^glc4 z^%T#x_xWl7EyEt`Ca@`O0qlQ!DJa_iMhutO|N7eo`#)Q(j{TplaZmey3!~mz=e|Xw z-f+c38TB?j9^a_n5OrmcsU34A7pfLtlV6A{w2f5E=mX6{RFm$EE~X$AVuh+thGb@jkrMmqo2F1|7L(6#{c7v2KoG7{Z4OZ|2@f5<^Qqo zX?kM+k8XM^^Re9jQ*x8j!}@>9G@VEG|D@#E`oyQP%&X6OrbX&@Tig2iW1cCbOkdO2 zTOan!yC@#y)Timn^0AJ3=9c_NKk&Jg0ectuzg6&04gY_y#n z2dI9_D9mVmyo`^jS|@Wlpy0(-gt7}X`WI-D2!#UF`Wltae~C;A1(a(iroCGnqgevu zjW}*-(T20BO)l_6+NpcCX~S99rWmg6+T5TQEu&CtL?zJVryp^E%9O+ZEGPXVKHJHE zH6_~DigzBy{_l1MdHrwH-RXZ%@>I!xeH=&*G|-CxG+9e>_H=+L17uoiS2tkji<+?H zbP<;=()m2awKf-wSS~mDi9W~lNEW|p{s|3!)8Vb{eR}`IPP)7Fp_4i7r1n?w+)@5N zX#S7UFt7jjhrM0?zbAPL=RY4{`?o|yrn|rDW7+1f`m|y1H&d$4)^Dc5{gQob5%{g& zT>ky?`pvu3_pi^k*fr+V`!+X>ISW11Ua_LW<8KpJY%=inZ*UM?-eTs>v#tI3>f-Fz zxhpkSl({{VfMkbe-zOPggvw|r;$#^_<<0!p; zb-wIpF_X=H{wy>ub)jgtj4l;JZib|sAY~W~t@}mv_fUOb4#kabO;e(DCw@cUs$stX znL9}SkGOrLq+Ba^{aFs3I}?9cLi}Nl`tDt*U(KZ?w(j_{(9>c!p(qaJy?txTMUc{4 z68n-eC|v#+lZA{`kQ&?tnrg|mwNF-yc?JV zVOGnDkQpZ9dMLzSaP3CdtP||O%LaIfLPY6#OeUhC%!|754$g*F9w(aOj{4t2=Ktsn zyM_IKx4XOl`$?Y1$^VhJ8lAf)j_U8O|Mw(MmH+QbkMx6h0F}sCD>JOkg>uhc ziqbuOd&XB+78;pDCgbPZe+2KI)$JU-jQBJ7P}tOwm}Q^i3G~($NF8}Qm)!2TyZqn6 z1Gqu{_j{v!{)d6v+3o*7$z$}tRJuNZ2e4FpnmdTH7swj@il(yA(Nd~rrg!6AG!V-C zi{|474`Z%e9Uo(^O747#&Mg3bYeG729)PAblj0<7(RuS9jRs>nc)#eFthRAeT66tV zUa~JlyXDDrJDt2U(|+}qgcpP`)p&Z8fWPF%GhI=J7S_Rn)GxTfU77_iE*4t@Uw+RV zLEI|QMjZ!6_6k>ZlqdBJTwPxO^8V%7_2t>g#o1NfYm=>;srCNy?BeqL_~a~Cr{;)d zJV6%Nlz2CTYn8z|-{9rDlV2_e*OzA(AI>fwv|03t#qe4mG0HT0_J6M~ zj<1g|eku~RWZbqVE<_6wUavvm>iE@balh;7-Ei4$XB4+HzJmRXM|HLS8Qq}&vCp0L ze{N_#(E0CvG5=eqyF35=Bu_?*&v_9{q~-Vg_gZ~j@W@sdGf7JTJ_^(aw=V=G@(ye< z17O1DB*y=S43n^Rb11ItPZO5}31uk0AOR}(Z>N+M()K>7qyd0oNEkH9L+a@WRwa9V zXHfv2r{Z+K=q}H!esK~YwbH-{3j@H)=Fx1b6UvsfR$tT>gDkK_@x=b<#RxLgyf0W? zfYaG3^sJ!KKP$yzhFCNGl|;V4>3-bs5{EtxXMb|0AOTV)m>#_~bZP)loHSKbp^3Ow zOtGBaM-msE9D5#DVH!EB55BcjMlr>?-6gf53nY}l)?5AhKSxiv^ZHL=?SnuY_kWA= z-vf8&|9g_BeEp};Ui}|@m0q_OoSDPr;?bVV->h)_O2o_E=YRbOkWKTS&-tAG-y7}b z|C2oGqSmRtrB%i57d`xi4Ma;mJcd7C$OwVm)f}gxC@@AKAkbGw49%v6KzLnvN#>@N z3b~T=?%qeXXy`RXO2Xzh@=6yVyuR#Htri*2Vl!%KvJ|GKL*4g^XM@kR<~>C^nIZ5zw`Wm zxc&cLas3~--QD{CB#+tuPiNKx?EjZeo%9Tl`CPV3Z$56=rO%bCvrC_=vdvkb!SFD* zy)EC|`#ey(;d6O*etdC!^)9pf*!(~Ck&;*ESH~}3pIu(RJU;p5?Coi$WH@Eb-G1Cx zxgWRv`J!K5y?%Z9>#M7ipEF}DGDTG$wdsqaHrX>qk8=yv6I(l|M%qe z`_r@2w`W(szPtG4^7_^Jhkk*bitux^|MQ<&s!6-y=5Ud6s{Fy5%MW#q2QkmmR&HmV z|Ckd!+dVb(KQDlkwy%FCG5$AS&4Y8|A190m)3we4@J;)_#rt0do$l`bmnV6Y{)cIL z_pJz!q5x6=!6ZnKkW^yzof{Sa5%B>uOaO@7jsa{AnefrbtvkPwP#n&b!N~av1b7m| zc(qoE6dc!@N3dxbLEpQcl?44IrsK+O54XIA(1`k+iv(zKN@L&lM6HM3eXR-4ewy_EB?R zzi-*EvsSI9gyrR1I%4_KU)I2|1XtewuQ>^av-Yy99CsB0r^0!s5xBSKj%%L0rfBU- z@SKSw&EOnGw7rzayCuTrTrX`&Ui}4!KKNZDVNYCtrTK^QQ>*X-L+e6a9ixTrjHgLQ|F`OZ*krHZc!lER+ve1(^XhGuDLw05% zAl{`vHE^k?C)8j6x4rc#eKxKCZsGp_uG`=Ff1l*pYW;_S&b|BwM%8ORU&nBGw?#j9 zdDH`}-Ui_<*YIrq>U*!`#dO$T!FryhO>tGve!tt=UiTKSTw?~Tyu@OG;u!+ZH41X| zw$>vbdu+ednQx!>)?WYp{fwS)m;L)S$k_n`buhHbm!p{rQ@B&Sfuy&=S>wuIr)339 z4KfR{%J%$IM@RknpZe=R4tY7cefsAO>%Z&vhxzmW?r?Yi*V8;(um7(k8$8bHuXyai z)_w(V%avc%dYEw$WX6=Ae^}2MC#*Rm+z)XJg)Cl01c!_^GY;tVgVmen zEt-e`DjkVaw;5~1RWmjZ6e5P6#@})$2aDb}vSX>tioAZE%)iahyLxHONLG8hB2d$c z1%)fyjYMSu{a`GgVpRYfFelW$g53gQDz`+LbQ1GwpFa!IwFJE~i6csOT2kawm}2Mc z1jQ^Zl!oRPvNAf^|K%*0CKFRhE(T5f$wM(~mN)jjIR|)wmY7R|Qi+bIpp`!Euq+|J9I>=@{;O;d=8Q$@utt#0Ggs(a0Z-zaJ$h>0rm6W= zrUX018j&(9N|a!s?UvM$gq96uzvi%bk?w@*SH=zri}=_WSyjdFjQvuAQ-*UT%_AN6 zBxufml{3E0>qai*zVq5wVh8c_=Tx?y$7qT_H6?KVxeROpGXN&gyFsBp&b-`=1OSQ% z`HI=IGLq1Rx&Uy}6{`XeCW{G*WpzQ`LfxX)l*8!l=JsjISR0$lldNhA{)v6v_5Hsp zFi{3fZ{-Evqj`uZ;WO z?BP{h6bZl&=I71u=9b>xOx=g^`4&N@^5qZp{1)j{^eYz2)Zh1&HdBUqGWM8)jl-Fh z9HZQ{Dx&eV8d%@fKCm`ZBH~}70C|kWB!@ z8d5z_3N2?HNR8bANTHXGMM35mi(l?wiIVc~a%03U$7fI8_G~c%GSY|&K`gRS*o07M{Dz&EW*?N>3e{THOqF-cR1`V;6mfmq8y+aB9H zu#PS4YcY*gp~x7jY2z)P6~7;;ln6%#+k>(z!~rP@$);nJ}ewv)Ad>B^LJgyL0Lz4*)B`n6lXcI#Jd z>9bqEcI(%-yna39^7Z)-NeEZp{~Imq=6lXRoAST7qx|`w&ShV`aR|zsw$)BotBb0>B5QMwf<=qY+xpC>qqaK6;0B?nQL>ajo&UJL!??u7 zZGP0gVY9+iF7jdiQkZ zmw`w~!h|ANkaD6)dO!R5;Xx7r0g9v@C+!yhNGuXqSa_`$)>=pj<>{*wZ=D4HOKafx z`1mFE9F9zRr5NS89qs*BgRn|-W19nso1ml~*ayM^TOo5^L1q>qnZb~)nFFgsk;wQ` zY@*_~)_0|t?P6JSBT_`Tk2640ovlT^%cQ1@0PnZf!kbc=M9W;ROJyzH2$W{s;%Hf={A}I>i7WX_ zvNiXME}&+Z$1>zIMuEkbi0yCI8i3Ci7sjnlU?8ar&zk ze@o-Q{c(YM>rFklAB&Wfzn9x%>a7B&pUhV`_w_LSeP3K-Q!r$!#b;M`!P3g#3G098 zr@s8(;KC2%*_QvQH!|=4>5rzpo&5h8PhMMIJ&C(C#IvDeKGrJ%}H$ z0_$rL;fo=$i1A9a(*06B$vao-U9;j80(LIFHBF!?#nIyVF2U38Y5X+d{~|K(!Sg@$ z2E&s5Z!+AS|31ponEz)vQ$CXbz=2nu`l=zJ_c`%3LrWW-_GTBKX*q(vz>%+pf{mjq z$$?yu%tP$t&ganuN}`RF{Z>x3lnIiVe6+Mdd8EQar3(^&2%fp^?ntN9Q4Gc7iycjK zOIj|b6j31i+K6{!N>bvJP@kLw;QerWdv%lNVyI5VkWB*L_%uoUC1RttOw%}Vq#6*I zWGlsN{1t)0_b`N!k7$kqo0c$~b=MJQt)Ol?KZIdO-gm_H4;>u45_VK1cK-q*+r5sd z<@oIrD*QCEA@rp2=;F#d0Q+barL@;BUp;2K7YEZ2?eYbO3@YicXBM)7qO1LNvOHfOgK&ga-KZptd=S^H$2a7*Q? zHWT66c{-ot2&b}w@lyAp-#L4oKq}K=ro6{g*v_D&huCLnYR)erLzR!i4Jgg#q0arNOi0MB7`w?={m5j*g zRrE|a+9!uA%pADea7==Pi?exQ$C$;FRnJvV%0D9JoZt+sREkeDkO=~R|CiIWoBc2gny$}~MJnj+i_;};|dV6-I z)3H`3HEjjm!5joW^ z+5dAY#S>6>qkAl$K&O>ab?1A4<3NjxV3T7(TdeaJckNSX_Ey_m=HlXDrVn(3n?+u! z7uC_wrt?SORyF8LTJ% zWLcX`>hOEp<0Evcpv*=p48eOs--QGQ{HpSXBh<|*^UxnpJrv3>A^DK&C{c>&9Qr5` z7N<4kK)BBz!}i@#(!J|<{Rnsc$e(vHIm|AR<~{!>!4dGD0lGN=Zl~TkC*J32M*p?U>9rZaR{B3I$^WAr{ePTCY~(N`@4;WzGbAN9 zkPd zJ)T=4F+(ZTTD7H^5JPshME<*cNRm{vw`n{m#WgY=^O(5R1q=t(Ln*~|y0+bivttYm zo@Vr48eqVDpoJ8S>#eK_DS3#C149_{2=kF$#l(AI^k$g;NwT)h=D)1nkc?e3qYI z-mtPbT5wC&L3i(B4yYiK0*Ftd6yhk63xdDHDR_^=kZFnQgyES0$dQ-WZe2CSL5;F< zqHV`JmZKdp5ijJa&I7Hu61eiJD-|(TUe>|wt55jYWYx`j&h|PbL7=$Js3ox6C&S3v zkgovIj?P2P#Ha!jdzn%LdZpsNKYlT&4&zBwf>e=KG2e-zTD|=UPKx3X`UrUc;Q{Zh*PPI(wvm{U7}0P8e8@VJ zbuJ_NBuXg>LqxgHXpN5L6>c}N#Q=~k#iE=DC-4Fkhh(!tk&(zlS}~rNK7Z65f!%;1 zT9GJ04!Hd54QdQFNnwiS>yQJsLB5d%Y_QehbBIH*pUwXzNdW|RFvI~c+uZ*)Iq+N< z*$9f0!?3CK1oiw6;C1=Gc`^YH%zq7{8Z`UYASxDEv4Fd50ox2cr8D^hTh4;}t?w@_ zLH)j;y7GU%^bX%jX24cqJw;$k{9k`KHtj#7UVkV5Kgz>)(&2aDc8S0W;t1rETe{&( zVGQ3L=DW~hA1epIuTzsVg#DLkbM znXX*Eh2n+qexZxpGhOR3FQm(U_v&L^ubORL)Q~Lt_Z4F5Mmx>IQ&JhjQW?gUJEEmQ zmR*+r*`Ox!*Hpx*r07GM1-xi4Tl+p)+6(a<`5QmGP&EJfkZq)hu5cu>FRf6Luq_VL zr5xAdAgb=; zYzDhmKV3X8f+#Y=%HB%y!Y#WeWh&zURJye`1Nqa<`Ssg}hx$+uKkA<4Is6|_Z~oG- z1zx8TX;$Fv&H3#E0sic(;bq-Xwlp|Tc^LLgc32Gaxh#@Q-ne(6v z*4rU(g=f3I${b<73oXNZU_!G9r~0|8Wt7FyE&uVP61!qE*-mt;BCjkzUNq#I&Ml}@GDCLU^8~Gj-|YeLBccnGaMR2!U8Bp>8*p=W z`sy4kP=qK}ofTKAPU1cTnjON+R7CaHk9uQ`JNr8%wC(q=)5&ZCw-y>0yIrN+= z>J1VKpl3j2Wl>(0QQ;M}J2&!adSaB4`edD`{GF}1>SO;jO#hF` z?*50zd4&CU?{lfW4al-p-TvQWOU&38rqjVjAgIdQd2 zWCq)2W>YnBJ!+HNwDkyiC3I1}n?QG=)1h2iV;)OGR90vOD60vt=@{ACqnL2WAxx4C zuhPq=2DQXrqF@~&n&&`QUo?fbBuRQHT*FxjjkDs`ZG?KKZufswB)E@O@EspZyEFisUYI4fNqrhcO7OjH8Duyk1ig_>zEtaCs(K$9!;Di-GLX zoKPhtaTo08CBV1IQ{@v75e_1($l5$A9B`$Wk*CqMCpcE}B4^{ICky_l=QVbvGF^WqPcjoZKyd=-I@+6|IiXp2oHX3o@3Z_eOLZ2UI8>Ch85#B4U1w<2^q$u){9@EBMUU>1G{>q;T z(#EAKKyzQb`2KQmUImm=n4`kOj4lbN5_fkrn8F_9&}u;yS&vuiFvU!dxZvRt z6vZULDWOcoIB}OtVSbr{dk+~}LS z?IKYMj?_Lm=C|8#Ty_UhvDW!nKL8nTZ8juti0 zO-M*xh~B(@b$zcnV!#_r5O447^>xYHTA3P-FZ<_=P)g9BIf&-T=tDr?E>Jp$ zehB{U-%77Ofdxe|==^#IycZCMA`i*}rQq_#&D{u`p1tz^lS#KxKG6ch{Br^Vlp;Sx z!BZge+p{*_CbEH)Z~@Ie{y;C=f#CGyWIQ=Kx&Hb81BZ8UbePQo`1DCOe1lRx66*v} zeKlcR0Ok@pdz z$r8u5PIK@K*y2ClKR_?%xav$LGs8RuPnPkD8)FPnyzR>V_>qI`3av`SGXBn&_jR@g zS>MFa|MnYSjMDUBbePHWN#+p#wJcE$`THPVcM;R~A3odoR4;Bt?kUVc=Ez zJ=*}rO%Zyo9T49uq77<{fz8laRoZCFpcGc27R4V*PKR z)8XdH!L-+(DjzfHn-%zVjZylamQMX=i(c7vUb9!LP4a69gB6ZIXU#N3&{=vl!oKqms;6J4|Pz~BGQIw5TL zLiam+b-~5wXQjd!HnQ}qi#O-b<}ggqf2zX`yeI67SKyv^jG`naQG%X5*;hnO08+d{ zWSxRe0)}9qjIXG~bX7mZ#(ThaNQNUDX0KczE_(d>+EO4_l*Dt8|BdJ17vMd~5ca^c zXTZC9efiP@e`mz0{PET6)8`kLFTpiK7vO|nftuYA6u=ZR)`BCjLMuWy9{9V#s(={J zl&+ETPHe=YsnRFW+%^9mFw&1A-YSl8T6jA!p*Tq)<)lf#e9~05=Bg! zB2nVi915F0pD$&%b}ZH}S6R(PDF)DA(-3qz{D`d6;j+5-dU?Ux{)vT%||U8 z2Yb$6zu0p`@tKDM)iQs_apfTZxeRw=mGkwr%0DOTnf_6}C;*g7R2d$=Lfte&dTtJAaih{dJO(m6`ch zeB*bheaa4bOHQ1oKa9cH%sJO)T6OX=QQ}-mFQ6W2sHMEqpKf1!rNU}2_)I+0S}&Y@ zY^@lXkgFh8Vyj8Mc40^9SaF|w-bCrTcKr+cU`NwirfK{Vr6-oaH8KMBek#$0F4mR&Y>c=<4e^=d$$|23VpcibLjDQxVBZCLFG~DFno?exXHs3l@-JYNY_#bRL^Jz zo~bfxif)$_B})8Yr3!6|NPQ2%kFu&r-l5l zD$KRCfGzU>pg$a%`Jcz5-Tm*6@^Jt3HzKU6A_AcDLO@r#B-7nL52wT_TDe>;RbiAz z%dx`Uh;X2q&{4%&e@|F(FfCBU@@G=vQS6t}f#dp3Z8&VVNTUvT1i)Bz8 z*HI|0jiP)3p#pUI;`g!*M}W)3^Zf{^AiR!uAe=pQ!xKMKRL>JRTrFNejF_5f&gg+= zc2bQ}MqXuyEmnb)<jQY_d9u7 z^Z$pt|9RY>n)kmA$Aj^X|3AjV?SI?(e_dN(9=2@+S!9Gy<@9a=AlIsk*A<~|6-2L~ z*e0`AK?|NQK4@00J3mVxR_Ah?Cnb49@4yF~q&Qk|GOrU>eg*e?xJf`v(VQPj1HCw& z=MgpuO0#T@B}|`HHM!*uuEX!Z>vW0edz>I3(BN0aA#nBPOoZ+k&6+)oY`2pEJ^8^t zH!ry=aRH`muv7ZCZ(N&Ib7GuL9+VRpM`plj$#V2SI2l5!t9f&n=Y$Fia}`coYuE(V zBGqbEIek-zCc>ucvp==OZF#FtjL^l*h-z##;GtEVZk}VRZ@28N7O165ek!OH3h=sQ zPA)>Fa&Vp~=~?9K>J}3GFZ2qpuo?GjZ6q&jYe$47$+EVb)Hxh?bdwxWLd$zdjB1`} z*E?_(5zg-3fi~{qw%(l5<(bU$Wvvw8@xDmJ0;)utYjkYwXNy{Eya3>AS?0S|-aG*% z<*l;Qd62O9EmmuBFt0$i9w~^S5w*nMm)q*<;&6HWNS5;>3G#Z%E1POk3oIM!-1mV0 zI8hd7WwhMHEx%W8*g|RM6|$eA-8j=6iX8a4dMwwA!Ep1>mHo_0anrsm$6cFpct`bSo|*r7 z((mu=zmM|BWb%3jfGmT20w7c10Gs2evzq9|EYrZ1)$fk?8e|JQNA7Yzz-%G$;b!0keH-ITrG0CF`y#w$G%qF7%`8kQyu0tqbvB}`61uxet zFzy)?wa9wFrGX+wLwme$?>Yq*p7KQx;mDm#2u**`V?HY2ogDQCL$4AZQ`BwvabJRy z!^1K>?lo$Lm}KzQGz12`0@BI1cmLZ0@7p_uqGcf!f9CNf+34%7SJqWxqXmxt3}$}0 z&mMby;xFxemN=Sy?sPhPFvjw3=o4_)-+PCn-~@;zy0=0pWJ`?+HT-I7#i`ZikHm|3 zwmTFG*;(05zx}qCLANYrQCtofU(_h__1ix380Qn9D*1BVR@7nZP_4%!fU>pesE4D) z2{0aBkF7y_oiz7c|3AuO$^Z0arN1m-u`K%4 zjy;ti3MsET9`dm{s+Ocj%6BnEcbKe2s>GUtr>6qSg;%RY`-Bpb>aRtQGW)WEflY)3 z(mS9iCdJt-sZcJ<0!5frK;`Y%0j6arvOqK&PKLwYgiEXD9+Usql%$PXxeT4nzfDq$NRl+e z^8ZPaa76<2Oa?JMI@X3PtD(-x8OPL3(<zpG?DZAN@~&u3=R9KcD_*>+Kf(&)Kni>3q`WBty)T8Sp}?tDANOZMxif(aT+EqFiykd%V6x%1y!VNE8$^UZ>ZR2w7CjYDgYiWFo>gGVV1kG%`0azQ}trf$3 z%&bLR{omq!wXL67t1Z;S0=6oDC~wE3;Xso>suMj|%OTdfwY0BJL`ug>8HleNbK7xe z-BEWRe13txY*oT43Hrlmigh5mG+$%T?Mvn12CRm1SpZXe)>6f^0gF{oIgw}ps-cc) zPEWg*>S~$~)0#`)WNYFxHtAA2KTorE&GV}x{;m7P*@L}vzt^rg6z$JS#dbRP@8W5t z|MPnX>Yn~?)&GaXo_YWGxZmsT^#8|rzB>J1T+(q5)t>{fYW=1AKOS4*S8koWkIr9! z*`oFbvkR`Yo)q`adOgn=5B{$jvGg#;0sS6Livq6~*rH^Yp|w$~ElpOb%Ukqa4owva z#EZ#rdaOwU$}n${0rCmks^PFcl(ZZbjW*4 z_ZZJtC;#!Ank?d9J>ielw#t6y1yGMI`V|)mi~Iy6q^)GX98MwSu~${cJ6cOixLaSCo$L9X0rQKf|>XQm5au*6MPYZ_{@T>0|pqG7wK z#JHKet~9ib>5GMa&|V;700bCK98!jHE05=0YbFn6Xg7ymR~oXmuoD|xPfh;6PH}kn z7S8AViiJkEKW+E_nD$KmKbVep`F|ee;rZY1@ajaQ^}``zwBy-|4U4}-CnD$P9v2g? zQM#rPfFL3B6htIIr(!{D1XIT;CehxUTd?m*fP zagqY>`_pTW{rgu>-hxyiNH`kdc@B6+Q;LG;Yl@@AjlV>}I>gc9ViA%2_4xyTJGJWsmDJoM^H0>SqPFP7;E=xbEZn9U`m!F^|w!T9X6DH>t5vJ`vu zCzC2{T zJ@x#1Z*_I`?NjHTz1M54Ek=!8@ARB$Ou}gzEfqgGME=er?O4?jA!RTll~-+qQ9w6& z4DBmP|B+C$tC4{~aY%cQIGvJNh-#Tz(YcjPuX!-885?Hy`$@3vB|h!@Zh`9VCO4R= z&U(^?(Z%Yo=~jy6>Bdj}i)ppl;?Z&I?#4L4b#1dys&R$h+~ReB^3fUZ`6Gio$9Ow& zx|nkX&amV2rdOy%uyV2sNIYlE2}k-fgqN1tq*p+#Qr|0*Rkj1aJ@WBmeJ(u;0N%qSm_O*y@_IXzb3;x_$ZVqB*krF@F7Q77BfK zWnh#XA;?GZr|9bLdU5>In?B{|cA1bwy2p9?=e@c12Y?HBUElTxc<4y-E|#rUiH1%cq}h_bVm-W%d~dRPX=S!^XXWgCFDp*E7G+>VXaa zgFQ?&_%+M}{$bkq-Tb+NsTF2wDvV;-!IY%e(^X;{AvF=7;%<@v=T6>z>t^=z=+~1Sn$G zoAip$x9~yr^A6t#KP6cMZnRBMkJjJUxQ09yZPDat{O34HS0EzS zf)?`ux9m@2O56*Tw8C^MPU>Vt+$$$~os-0Fublk|!=~~O0^IvZ#tRgsGt%FYSngn@ zE-}e*(S?GogMPQ^276@%&&g3%yP==68BGA^@~!P>)vm0#VnbYqHBY<(fx z9oGk89UPrCP8XQZA39|+!neII(q}z9dx`2ocYj?IDZJ!_Ro7H|wVlM53({jz{D1mM zjd9Db6#vC5LZy#vKa@iW$rg*mXe^bjgzgMC7_h3I@_nK8cs%v; zcrH&Y2{esoyZ@v;_j(R4MO0Krc_w;!NA^he#CF}t%_VMs?71rC>n)E(nH=#d(z(l| ze?Z$hDT-}6Re2SaBqEeF%9?fle1 zSSkktSkSZvIb@2Nw2_5ivsJEmk&*BQNRa(I`CdYUV#vm6hoLOT;^zXc074?Hb!J8? zzvYc20wYw;-5I4Wb?{;2Lstk*ebSBRDP36q248CEk!R*ME%G4aG;Fw2jo3) z%R}`Jcq&)Q^93UKAiscV9~NL#^wAKKkf#LNErW-dV^(w=o@$=6zokNWS*761a;YG| zBSjidX@1^0la!HQJGvhpOfAbS^r`dMtwlPZyrv)mnfNBI%4Waf==Fp;Pj|xAD&*i= zFMxi4-;KcQ4MfathynNc$%fY>ApZ6rPEYEx1;Pd z9As?HUs#F(J9O)Nu-a3;p8tIS288U>fS*dajVLsdh*?HbH;jiR(L49lNb&zH%$ zZI$t!U+cxUT@{^Bdd=?{;ohOOTbkHv$Ly+!wXy4IMaK}g#NUB=&&`FvJDd0Z17PAO zfRp%Y4?ue8I1At!lG7AyWngIc=M7w+f@?g&){F0ESruBc(T$DYzsX1s4D_lPV_1q` zROtx%S*#x`bilWA8!oWqO!~&8FxS=?00Oxbr+|Fv7Z(C?cQyq;r%3I3a5~%(H#;(! zB{KwkdDE?UU&s1zo9nosl_J|m86)T9V04xx?M?~p}kCscQEknF-Sq7T6-3YpM z4iJl3^yaRG^ZPeVWS6Qf1`~mu?24GC0_sH=-JBtD`7Pi7p(Py|Iv8Zkp;!S(Lcazx z4uBlj>j(B*z&pWT4rvY{DE^_MDo2Si8C$yy;(x8nFM?1{aLoxo&#%g3rwsp70sb%m zVvfn@Ty2ZVEJ}q2$jt%ML(q`8Euyz)O9UYI{HSDoTR-p zI=OmUbw8!AzoE(obJqG~y9a)nQ}%x5dK<>t+A?h-Sg*A>STE$v4x@^wkpig*D+fJz zeAcvU_#lv|%~lAsB$A%3LWf-u26`v?MSujgPY{$AU55S{2O)|H7Bc-^GL3n14+rsj z{c1}AUMC+DmV+)e-ofiT9t6PF9Qs2Ivvoqv^VR}PI3$|pypvv_o-G)Y10hc79rTRm|cMM$og0&ME>_Fu(k<&;Zz9v z1U9Anf|;A-jOSxZ|BZ*O>l;dq$*UvQI>hS`1meW8zbA>+FSq`*()xok0zz5tn@I?xjw;lR$ zPX{tt!kIXZCKr7Rt)^2LNa0lid5Yi92w5pEvt!z*SnEd59lr0NEVM zyiCKMY1)3<58(Lv0itCdv!a^rZDY5U_mtDZ&CYZ7QRz5?ZY}$Q;60<&Zq z{9XHIZ!;xN$aFLhM6S+yT1j#jYnSu+it64d%57%XhCbHxBCl(U7kyD$x}I2&t9NG( z>Nh6(hLg+%NnFY|_h^c%WjR7z0+hE-z*mk}vD2M`C`%bv$1RS2#OE&(7n+-3i$wZA zADicI6Go?-rAEoA(;;LRE>C-);En`a;M5aY=tQ)CtdShIv$wAMUC@`wZp9VbkjgogM4kCP436WGKT7*F_{l;UYcqKH_$Iv@J>yu_Jr!1^{Gpl5Q}Jka^d2r_aEIwLtbN4rbE5DqH*l(8-y zFAB3>UQsb=CyPa6Ha;O}mAaTdJ;f!WIyO+(_co4)`>@?XH-EnPmr3?L1Egc_3-dvC zJ=D2%Nec3F?}FC(gdd=?0Vt6K!r8gEa)7+!D)hiZAp=y}chesQ>jyoFjwVt6+$nd} zq%G>;kb1(%qkTkm6SslP@MWi8`Xi3v>U7eEbaU+^2R;2hu$ut&kM2S4l!sHbl8jpsL3B5$RqhPNySAQmqU6C zA>+`Omy0E41+hEWs6@n_Np~CPw)5lr0QXVYPPm(5GR3$FO$lrx7m=2CzMEizff2?A zUSOQ5>IJd)5>BL{OR`Krq5g80N|X=7H$jFH;Q@79^m&xzWjE43$a7KCCZsn$=97T_ z6L9YVD$a+yv$Eg5V~8B*QVrE63gVPA*K&jeftQ5CW+?JYjt$Z5#Pi#j!mGm1?aQ~^1t6ZlE@qQiMj-|>jNZx@FEG<@BdXQ zk<~gLp9}jX6$+O?Ii!_X4OECsrjfOrkix&p`Mu$jVdW)wsAxs~G?Gd2ZTu^3Wvnzm z&v%wrt$7_(_+*t+>?5kTP0nyq6Ogi&4I{nCwPk{;`Q4bR1C(_>E9lE-en1fGsY1Jh$Acs_wjBt1YbeTXS7=xfK$WmhGt|K^&wn+!NArlTUXH)QRAf23O{1(psxEWNE)$uH}uC?p@Ss)P!w7U4e( z4B!d@rDNFK!mx5C5#CpTgxj_5$JZvcFVd`A(j?uF5lX(LPyK(D9gn7ZkHdd*X{GDd zt|1%-YDjQA)UTbOy_%3o{%Re5;oxy*I$c}sm{weYl)T_3@vIjTg{n`cd&Om=FW0?Z z>099ZmO&cuT#3XKxNfed=zrIi$wnrlb!G4#xy~93@c@F70#%wDOT4Bd@7b>De;;z` zHKHnvOQxPgtdRs6V&Wh%?D_vLq-4O~C7VA!0XZ%0_e>j zd@36sc^@Y7 zX%gCxG~~=j^!b{6mRnO}>~2UR-wG*FjQY_S=#y6kkNqpzB(zqFp}%7ftH0~RkCzug z+RX#UpL=C#=X1WE>EarJn@tR(0iWJc>3Iy8pbX6&1X!mrShwspL@19pO!1ELT^-BQFXWqpffOpQg3|NYy`L+;v);0%y zEp$yPN!u*a)vH(D*K!j2q)vDm<^{>))#Gh5-F*r`ChYt5rauJ~Adz!B1_=_JCjj}^ zx)m8AfOfpkJQf<|+BlX$;gf3?WTT#X2ISeJHhk*JoT<_sy)V$jxkBstX%;+&3gfrDZqgZAZVv61GUeK zu7QbLdEHj^=ft&sT;*YpxAXl=8z-*aZ!SCRIWD%9oc4EB$+Z zL;DdR>EY~CZ}y_i_59fjzwP#X^Q~5_U%~ya0TOG&KUbXbmq?mF;j2$HI!XezRDENd z6h;0J*r?RO$URi~fMFq9D^5IF6vtubOXG|X^{kJNPT(cSY<*dxn z!gn*uRIFyJ&Y$bNCl9e_=FI%5Q^wll)8DBO0m37p@%bPQ)Sph~?X6Y<<0fA~m6JR0 zexLWltc;XA7A#V^GXg$#uzOm1JPvJ|u9z_4tqAc4o;REbS*`khNBGO9@NVd~UNY?A zv_T+*V54`*7%_?>SyQCyHt8g;4sK|{xCBZsB$E;d{!EY+hVYzfOfNux&HAQ4<{rjS zN2f1JT@ckwrF-~I+}6Jkd+?)`(Q(_=ww^h5Kn~{FUCZp-|g|?Os%~(MJDt#e35>p}8EZ4&$ zpG~*&N*MWB>Uo1NEPp_Fgr^dM*V|F5R;({ZK1xy)-X%gHN<{jK#B80ltY;60cP#}T z6qR&mb!)i|roi|1J1=Q=DMEyRI%AQ$$wgD*gB1r@&Rq`=no4&^s<~X3GXoD?iATjK zdaV+)u+ zW*3b0Ku2d34#t5>@)8VF+>o$(rkb~J&|Dh2F-!%2Yt?l-Ueq2zXzSlrYH(oPyVFJt96?qt*cI8 zUmU633zERjJ2~^0z7N!EiLF`$&pikCL`j8z%3)TE@SfMI5V`phxGXz@sc4r0U@@+* zl=5Ki1m@F!=1#{*i0qACU6fL@Bu2@fNM_IWst}dy-y(1hgfg-Ht$v+{ ztpM7n&Y?DY4`n(~-YWlMD!M0P;2hL7#O3nVGkwpZ`hjQv=h0RU~H~ z{@xfe>b>M&>v)Uuf&`RD1iwoVlyV4|+X@!y^xRl#fBjPRU|h1@yjs`kT~!X2y$mJZ zO}0JTE`ofM0(>el`V3lel+a>VtS5i}RGjauy?xcqK3f1-%>dJ(#&*{?2o|#;Z5Dyj zAg$jkX!G^Di1*{;*exPyqj_S}FP$aLLDvqa7QOBKuuNe3Rk~fs((hO14?_epvA#06 zQo0rIxOwW>Z|0*Z$3304&GV-h{dm2GY*C`LV8f119{-a(iv^ABLzMCQuyQZJ(fYBu z9WNZ8zMoDl8;*X>T|92ATk3PJUHtj%7dYfF`T6Am_GFtZ>ID!0&+E%hT>P*6Bb&_J zTZgx2i4pPB;Cn~u-0{~Km9;!Xj5*t_Fhj2hs!l}|9q`b;y#jf%es0-cS132CxhLVh z+VInN4%j>aKrN>eQ0rkgdAhFTzO@m;AyD|oXtu-r9YX1sa{FVR>iXXyAJ?X{x`TyE z@#zQ)@^zj@Xj8F93F4SD99zl_)1ZPjuVTXO*G7k6#zW}-Cr{=+27cSuwMG9H!bVC= zTFg%k>B``v^fZU*C1vQPafV1KgA7CHgEX2I)Q^Q@;48SMF}MLDkW{|(=rb;;9~2ZZ zQN(Ne0_edY(E*!5HEELs^W4pWtH%Uy4F|&-B7ZX6tEKO$x>}|Wq5o|&7-D2Z)NM_r z-u?*1Q&+&9aYIN+S=`6yPn6sf&kRx-XdSyMb3*?ptlXb{_~cwFn}$X1KXpYwPBf19 zz|)NR-za$%x{v&=TD(<3=g3Anz{}UK^6FHeJE5@#m2a^-#DnD7At56EOMMYyeu@m( zpaj3LyvS#xJ4R7x;=(@h5Z8gN1%IOmI684}+UTp`**Xcln(sjRSRpy+KHIO}{r`#} zyvqw<+&Ev9Ty`R$nNSLChW2F|2BW6P=Nh`zLYC2jiNh=OHoV+fcN zZ{HwuP2t$iy|#2)+`$C5C8X{s;p17Z~=kFrWzg*>1 zOX6qef~za)I0Qjkb8_(-PiZy=0IOm$J|4t8~MDp|n{4y|j10oFv>3)FfMV&8P5MGOs z_dpr#yviS!muV{sPXePuKb%IHcH!6+Ee$P}q;pyyW-WC#%D{W5VT#bl5b;g#j6z(A zI}ZKKLbj6bhDL)unZ{%#g3kAaSfRden4FRyschLjT$zY09>W;Ra}JhY9pODaD7?7D z?GHh5Y=7)SlpMPcUrQk^rd+wN>VWyT8~^9b=@u|hA6W=K<&-sxmpOE17!6-bEv*l; zis~_}ptyIs4E|Gp_{Mn<@bF%w{PFBi|L4E9;j}c+Q+9Je`O6eZEwh&j3m7Fzk5nh= z&?yg(8ec>MYrwcH^q%%pwVWSvJ9MkbOD&n-zT{U7)6JXgLXLv`tgLP1kF!gQSJHh; zVIb@B3hWaQ4~drg6>to^l|(IbVEF8fcSl!O23CgqD|xKrkr##wdTLB zTDi{nzG@YG;u8^mY6Rldgso?fT9dI0GktH)cG5=v(sFPOZI{MfUn)c z;@2SgS{5BJoZ9jcu)XEl(|zxs7HR|*{93I7QBd7sTfMbpRw1=zg*{kq7J2EnykBFe`H%$g5|zQ=H5R%7f+HH}h!3ct4*5)`Vd44M%23e6PK2&X z*On=J7X1aS2$lmtR{EshD!DDEYjc4OMsAfy$3B@ez?UiDx2N9zd>bI)f(hJ+WsYjbteoo>k!_9hLh(r?)szVfnNoqb}L(L3$3aGrrJe*>v^`$KtO=y=;Y>_ z;vNs+NT$Z6cL^!4O!VCYD0fz(S65jN6RI;JJt}i(opkFYLxYaX;IBJtEj;vCbglfS zg}xo{_je9WbBV#;anKSfV_k^^wudF~00pjb%ILK8Ldt`uR> zb*&tNs&CDB$*a`NkXLbe!s7LFq9IZ}MPY78swp5Fa*S7a!?IYSY^Ilv@bgw*HA$iB zEb8e8=*TW!#Ir`EfPZALYHuhgur}LbzCZMG{JI97D1`3oel1IQ_JC_J%b~|$i02LZ z1U<`O1*{T;fslQ&&@Y~LK`HlZ!amjzs&h>p^1N?Kc!6S)W)x5)5>aLTg=nQOC;@n- zGKYN8f!+3k!8p97L>D7ilee%~a7{Bn?vub}rFL+tJ$8I)GI6Y6PT|e&tNW}r4*CL% zYeEN_yNE8XKj7e{V|wlZ^CDk$f`B@ncU-;$pczwYl*p696Kh8l3ZfwENw4;ZL99sf zh3~T5)`<7EtNG35miwm5&=(CB(^Jno@VN)vo@~e@$3N=$cubF@G&rHP`v(ddFV+zK z>#^SRk6S5!6acEra0hVOkF(py^Xu$!;)ts0o(eemf6`vBtINF zb*Ays_+?KC#tsLauU`J^a-u9|4%oF-32}qH2W=V5oFelCjrEgQM;VT|U2M6t{DFfD z2cjsE{eXZM5-prU_)1dL`hfoGLnw0@7+oa-fa&=|+SO(6(}A6cM1NpG_nmuyNq|2Y zO4F?X53~9WxN8@2v#G3;i5l-dC~o`eYr?%&g9qBQ8eo>8gc7ENx_DvXhsepVOjuEsoe&85Mpap6FD> zsXA72I{i7197k)>Ay{Shy}wxN8W!_8n3U_yZK2g3v)f)`si%cKyBX zfaOqtoDs@^D9ArQ81ojbSA>kP+Hhd=XY~p(=7_;!7V3mS%wvBhUC?4)DvY&!x&20# zM1rjSv9RZbU@Vhjn+6S2eSBjr#%*vjw*pqf=O)0NiJoVv$tof^es1RPw)S z{iM(+cjX2T(6nst0J%H~HJ$SoN~mt7rmrV)>`&KmYuk5gX=^Khv)lo6AicgkC~PAL zy8uq-)8+Q#rY!21caoeVpDJq<7bYg{Vtpd&xbS_zOj*v}$ z?D@eFkKp~|{rrBuS4XD@>aRS6pUI!x2}Zik^9`X)uts@IA~M0F3u4K5CM10uGOO{8 zSHTDGrvNk$ZE;~A3qGvKT6!|I7-*Fydmw@toCM-cZlVRc-9dn2-va^tQoR`E808VI zw6mzvK~b=|A9j$$EW%!RKUd7YXtY`#{`UDJk&lAQKX&z+aO%2Mj^RqOw4kY-a^#K+ zQVwI$Y9FyY+XrPIi_PQQ+2fwIFS;)Y8;eQ9-4uUZ&F|=!na*jEnrUOP1bmmb8d=`YqJ43w zoRqqgrl8jtZPwm~{*PgVdqS7D7-ZtY>3Q)xCPw{Pb68BmHZvpRp!yhgnkDOz!C0D@ zU_JGo!fBK}c00MQVVGM2>%pp=+|J@j+fHv#?Xf8+^Dt)Gw$$g$GHR&?*Rjxs!;ILaw z7K+0}5zv3D+{RD$YF}vTL!hPi3BxG$-lvl?#B&NUCT5~Tis!T&$Br3XC54T`YcWF? z2@;FO!YO!^DA>TCtA^AvPsDrmi1pn{YO*E9@07f&XO|)&pzIq0jL?T<-bc z&`^Ikq2vY`p=zsK6bLnh5e(V6N3P|e5D*78++iaQ3oVA#RJ`RkOQ}|FwJATQ3FzLu z&Z$(~PW@tyX}Z%15+-doocvEFL@U$05m-WlUAJxr^R_!R+gWo7TFSCBu;~owIh8iX zQ^BAluv-b#9{~dqTo;0!qdCr|WrRPnbG>(wbh1omyqb`rCs}4VCi=+0z;B1ZtvW^h zAJIee+e?DRU}Z+9aRiYp17BQ)Y+@o#`!oK-32j9oxT?r~=j`|UqT_GAa8r2vh7teIPFv|ztJ`fb zY^nSN!%D$%L4EU$5)$uzlSe;+J{| zM>hKxPMQwLqJ3RpMt%)v{FJ1j=mVW|!Z#WmcV<+05ocBWJ0QK>FiY?vghc-Sa=`c% z+UiQR61GHHaH|X>MI7OVFj~AFAMlui6it3|<}6d{yFnZs!>_Qw-?nks9eTf!wZuP$ z&%p~${6|4h>sWVxRhf+Q3PpU_BX;rDh88WF5JAYe4Q&w3<*}ng&|!lZDTY5TnZK>s zE1Gt4X~siYjPU{j>>aeB2!K#SJPRcrCXVyicuM_6)?k$4JOX?Y8rr;P20Bj1=V*Guz>$ z^p9&itp1>{N40(55cu_0EsgN$miq44n<2`1#X~I|nqM@{K7DNC%RdLY-}w`7@)j)0lpzu;V9k}T5pzwo;>yI&_2nOjDwly<*r%SQhm?xeRH`>ws za{OYPH?~RVHOA>%jaX+7`P`#gLalk?X|i2k=KHEpe7Cl_wX7*>(ZysR+Z?vw@*W1!j?JiO zdHJl28VQxM)wdOrq3`?~){L1G&I^@AlY;{ZjGYn2`H|9V-p~zBf*9^{VTPL7F;((s z^x$pg=F1T4p)~%pl7lS;Aa{dF7%Dx4mwfb}?rVQi3cMQQ1ZVjB7{)}nSL?`mU95Y*A81hiWk+U`sQO)@>3`#vVV(ix#w7KQIoVr8BKGv6;M2=q0csk zkvN$0jh44Vjk*b4zn0@git1xibVN+X#>zBXe_zE9+-!&l<>#6ln?9zEK$YYp3cA7& z)E>*LE+qG=Of;_xJy^{xrzJe!Ox_ z|6sCl@yr>sgAi5A!RtuUsgNB<J!A`=|GP}kz%vLrhu>{UyU~MR1xhGpfDkBi1V@Z{9 zX{hqkuDww*tENL*Y#S2&}EXLfra2!5R z|G7xNqa18gzMv?@+azMu5Pki@3}a@qWJHp4F|;Uz7rELe4|S2@z=~oDk(1h7 z%M@YdiAX`=ae65=jyb8!`|E6bP282H`QQC3QDT{@xMt2&ff(c2>(Bx)5qG-2m44|F zTdj%&6Qk+|igpAFriRmB<&(lC>A7Y%o%m+BtkH%+j95#VU1Vr-SsrvtNp*$3Tz zY;#wHB+MICJ9-|nv8U}}{v9im)elx@6%|VOMW`sOj5a{!sbH~l7L=3FCa-LGP>yFE z-F20)Zm=e+j4zv$7|BR2b{>r-E*#k~Jo>!@$}ZTfYYZ~#zuck$)#I{E+3#YuejaY( zg;>65wcJ5PW}=1;szO*7vc0aA2$U*An#OOb{W}RxLjIuf-FOgqM(I?NH@= zTN=>!XQJtmVzb?}HDV){=xM}{I3KF_<1clHN~{s`sKM)c?r>JHJHfWbLQ*CaFW1Y)Q|}iUo&NuU8U6HxxT_#%;7*?{J#i;d zR%i`zR%od4yrQeknY$PJWk`?|YtV_o9$Pqy?v?yN>Xm%g(Zb0=!rE9Stb9;tZ3bkU z_0i1XKAX+uJ{y})c4%c>(%RTRu^L5lL9F;>Qn9DkE3?1iXw+0VG|JRaF3grRILI{e zL#`)xkp!(zkpu*KN+OGll^Twee`QwysE7#%!L+d_rawRoO+J+=C0hnc+5N0&wD*8vP@&+d;vEyVc5^d*m`3hu-!UK7H2D&|&k!`(<2?)l!U) zngx2Anno_(21nsF4mXeVpn+2pz|%#(#m?_=Q~xYv%%;kIzfZv9n74Q{E)!>U;dDS==XOB; z6AI>CjUuwDH_7&gM-pEyVM5q~jb6+Fdk-$a0A>l4h_1t_+Zl!uS8k{sM>l{EDEAN@ z(_5K!kV>ctkrWBd{te5z?UXSlxNBxjFpd`YZKG+M`KIL>#fO;tTfsnUsv>31QhgOd z^wkZqyK|{M+HXYB% z-(~bHjabMJQuti6^$ODGgF@n4`2qa&c5D|(bNsq-Tm;?R7Atj3Tvpz`V@k`i1jTWo z6S$ih!)2Ei56y(cagpAlmA5Ay51o3}-L>W?u6$y3=fsGx`mhX7pL5nV3lB&orDb&N z+KLSd3Uw``oAY8< z*l6V0{&&Udp!Wk;na4-bX>8uM*X$` z`Ik!2HM}GOgYSLgGPX|`*z+1k3^u$pCdmf9QS;b)c$ghS&-=(o%tO<@ahTUH*M?0? z>sB82m8%7lKUWjNY}l9WtFQMB=P#aTM#u9@7d}??_Z4GP@3A-0&*_Cj1atn|ki*w7 z+WD$mKx0>Ybh(at`xal%$=rbM&Hx!tvcg9m^!MkZGvznL#z%OS8}uC;wbOKxPY~1a4>fG^^Sh4n%(vc6 zsiwJ?hISceusJF^;!2br$0F)y8Gt^GC+FI4VFf21`%v7K3K^r0!>sODT=cV+;Fpy5 zf4+<`#O}XR4CN3& zai;b4ZiV%7c(t)K+XkJ-k%!Mg`x1xd2>H|M+!$Q~lP{bnT`u`-N9Z(lYIBJSt8>{`27U zIPoj;k=m&0QWRqIHT98FH(&q30CU6(Z+Zt&49o z!={`nBKwSu*i{n`1l07p?-i0>{kS~6@1e8OLqe^1l}7ZiocmsrdmXX5yE>T5G2BT@ z9A~mGpBUpud2||Qcms(|biyi2&%8b_pg7I|OLM8>Kf!o3OSfk5e6hM(vDB$gxoxfu zXlmZSm%}>w=beu(l6_^B5^-u}G(A2@I3{?VE~I%W&|RK7KZ8lLa@=IwbIA>eCnTNl zobCgUrm5?scDW4l^J)$8>{ckyIf95e5MOwXZv6mje7#X+4t|`;&h$%5yN|D@_oUN* zs&>9?AH2G^OxX5-&t81@z%LKZ7Zm^-(GyJ3SMxSdr4EEHl>s2S!%lWuLA!PQSB3j^ z>%XZ_`CR+H5Tqo7e-8H7L);jC{^Yqzk{mjT9VON-G$20{c6&eXKbYWP!r*i?RUhoO zPSz(zz%+cCD4FC9LRfqtUMYRytV;Y3$HcZ<5*mZnVRG|HtlRup>_MeSiqXt_sl-5h z>1|3Z_zoHW<0S@~OsUemIb{DYj3S=Uy}-WsUAiB&0Kd;|U2&fNmUhKR^a&IDYo>Gj zLUd^*Cy1|G{pq)ly<_=n(ykNd5bujiUx;No8hCm5O@9S{o^xLado ze+aqV#~0C$SD?EKx~;DN`FLmV?&#@ZvFiSK=XL1ub@j3ec=UZM++(G?8>M~kr&pgo z1&~++%J0=R=F^?HRZO{Fb03Tvnvw1VkTx^4iy&@|NAlI%HH=(!dzt^7xXg9&$Wtcd zUnEwhi5LcJ5Nny}_RPHlL%y}C?>Bs1UlkJ6jl#*O=pBohHT zb8joHRkHju5)7)>0cJ5cMeO9WpqGkD2-Z7C-u#*ksh?f%+k9|DYWP+Gm`h(x&tOT? z&2=y&_bCt~q$-w;W+Mq+bq?rfzd)*h{3ehg9|nr7!b2@G{5zellsZMozw7Ni?llY_ z4)UBt4j|M11*iP0lfQA}3h?xz{7k@iy}tSs+$!P`%?o^%6rYZ4WJaR?R1i%3OXtsq zRuh@pxkG_rBG7vpCDg}Q8&{DAFs+?6@`NCAj3k>PVJRGyqS2qLhTRAiSjX~-P}>3Lo5U%B@$uL~waF%3)Kj8S(slKN-(jW28; z2q|g&At2P(?x&0Q(I=!21P2}T>tg8+PTfqeWH6qInCtf|e(1d7id68|7s9YUd#Oz@ zJlpCuJBZZqyBC4di^ez?NQX#uDco!kfTc!4617&?tC}@@8+NxyR_%_g*bjJ8aRV9@ zg--k>*;CaU6IDPc9uPPfVPO`xmqatqMnz^A1s_`N7bYr|hJA?p>G<+Dxv`WE?3_+e z^&45N;;h9oZ9x9=f{i|Vnw6$Wp+qd~0TPm6pT8>=TL2bE#S6bQ2J;BH5hGVkzz(8t z2tKBS^BtS{ANrS&nkoO6#8s9p@sHxF^0RE~1ole@mKvq2*ugGJ*ozxN=v~P7a+lY| zfIPu)%pQNgTW;cZ`Lrz+CJOYsuiP3*Q!*`UpST@3a7kPrZyMcJ3rwQ?y&qHZ<~d|* z@CFDx;H5tGkq+xv!J-GOnA%GI%P?G!RMoK&MTmc2@cb1F#No330sa}LlZC!^G|SW$ zmGg!S%?&4X{bqLfF!;>qZ#RQsD3O|zeNdaw0!&I!W>mTin6N`NEefxkDiLTRqEr%5 z^mpj<)bT+sr{$aBteY%W$D|H_+oE_MQ!uBu(kUIXETzGG!(V@r9uX`dMa1Bha7_yD zkaBv+V7|m5?5z!VmGE48)N72 zel+QhW7CFUz+DHEYSFiFpi3uFlb6V?2A&?~BgCdDH<}@4^`_#!9#!Z%bRMifM?$f8 z6hL2#v+<2M5DIDJw^1H@%Fuk*AQwQRo?f?-9J%*muker^V+i5&@h?dXQcjirK^kI0 zE_!Yf@md3;(}_C9v*D9rf}B#ErlT{a)PTsSZXmam4bkg0Nk6k*)6qrkJXsM>YB70e z%dX?>*&S+KJAoS#!J%#aQ#LI^lMIn$XDkzaa0>i{xV2ss=B(^o18Ig)udv(;SE41Y zt04UV@e2eLPRaBz^b5H2UTh4_2Fza83f@4YB=k`5bwGAu4$I|vtroPp?-6ee%^IpN zGxGm5UE#UK`&P^1AfLRbFf>Ahq<^cSd>qQc_2UZ{H?m5Lr!z6Qxc91CALm z1d(3ArHx5{NUcKg8K3DSF`FX~I}Mik>-I)Nn|DXFcpM{b%J z4O)=Z9=KfrS7|`cv5>Y6fm}V^^rBgo&90)esS;3(i3$*Vu!yT~7uaNCg3NzU>;$ds>UttYSNZD`sWY=+$bm&$ zU@>v#L1VWb3p}~eup?+su`{y{p=SO0%Y@JlEclb?+@VbofQ{>-S)YGjM8u1I4B8SI zG|C;xCIz1d1`~k{yzoFKZ-upuU$Lfur@B5C(z)71y0cWBd6mPJ`OONsIfjYc3p+)V`2Z;i&QV)FEi7-;SZ3 zMyp!Gew)f;jdv!x*9aNQPWT%MIgZ;^11BX=x5~2zsg`PcN!o*@934zkHD$s8q;Kb? zJtFz&HvX&|V09V9YGf6mYxGm_LPQmvYc1u+ZVySBx>+u;>q|` zWOeO3^9^q|we3vQY&F>So`U4#1}tyfEng{mb;(FR-6InvhO&vcox82WgbeQCm~A9v zpllndR^$(4yDjua4&-JQ3aV{JU+~rEGZ#+i`QH)JmbRLeQkse4g1v)jR229X?o5Jz zPB2o-!2(Wfkvh*p@78jy(atBeIlnV)GpuWyW=9eKotvwK_%IM_?}OKy4>wCz{nZ^5 z)W`MyC^7=CoEqNikF0~GXBBRRcHUCm+}?wnbeN&Y&@%ioKWW`iGogeQNQAGXZHCh8 zN0&3A-fw8J>_P|1GG1WYUom5Z;8I!^QPOoouRSvJL?X%0I%LFLx6ZlV*|!&1JN$nE zh8210W9vk>OC!U}#azBdWr&5|DrFunhg!{~bM~uz=$tuFt<~u`u=t!ar|*3J&~Z4y zslOrI%!_sxqRV$n?f>N+BfRSHI9dBuqCs1{Ln+}bx+f^+5o33GqWuvpmMJfm`Gk`! zPt@uSV%{L}s=a!tBSJEUoQo*u8A*SnDbE~4L$K$(GtLhL@&Ih3Qq%V|+x#qBHuVyR znxsS?Yf6!SL*qN%E^PFapdpjSW!W-i&S*Cz7dK8lNUc@9y2{T(goZA$Nc>HCAugYz=y>5Kc;M}z9HngdM@Di+VQR*UMEq*d+4VS zFr@l7xA~NjG{({EI3sC@eNxviZ#YpAQB>t5<1B;F9B?o|B!%4fR0DB!6sOqRA8|^~ z5QIXlcZn=^emCQ05okJ6eBPwqf+{K=(1P)3QM7QP2&TE-X$8ea3llA-S(+qK@GF7u zHezcWxnUkff+-lqXU{Q7;*6#QGAslh8W&=Nf=0PwzV*#wH#-I)juF#M^c%>VagF;` zkq(f>R)&h{E%RqTSJJ$?501oHO69LTlKDN+lA|u#;v^Ady3bIk zL06&gW(-VIB=fsKLH8rgHt=T`OS*ff=1n!zY8dDDMM8<)vM6}5W4Wx{ZMbd5(5i(^ zt_;eWIaJNnc@(ja+87KrbMi@WBAON5bm)+PMfX`Z6wGGR1>I+`DD|}4n2uHBL#c9zd~K_Ai7Ohn&CKW*_k>b z+%U@g+S9+tiSI$NrbdUPD_Lc>R1lZSd1$fcdPM|IDkOP`bY!U z{?+>cf0S7VY{@S9gttjV+=%%&0!AX3tUg?-CNQ;2L0o9s2nHQ^=k*^=K~f8FTRsc; zx_fm2N3vv#u*w4=SjQ|w;xN=%H-G&B_1*rc>m7qg$Cb66I9hU$D_?JIXl)8TC~io( z^eaCAE2QQgjTKrSja7XqiiqzKw(Pbto=peP8zhEFsaz>;D^`#sHLugqYKv=N(5mgR zym{NqX0#Biq5grHOzo8qNwOt>f|P~wP{^o(|BOXNz4%qiNEu!u~MH`HMzKGsV7&g!;0TdUq;#@ zY3s+<#VU2bt!m`vX_FbkFIzTYFX33~3DPzLGNRa&ip}0!y;+K;IVV=Yrg(wNSFVk5 zug}?Bv)b-(w!u8k+pLi^t7|3r4{$T9eh0ACFw}j^eb1e`L+xCi45y>vy6<6sJQ=KK z;be%{!7vE%U^E%bXZ~a|o%tbI&&hN=p8J#WU@{KJ-efYIjYB`29H2)lkUHXb@9Y%e z#O>2l0@OM`=g~*J<2BkUamUrEDZ_ri+~|&n5Y~~@rU!USre|mDjf3H6=#gOR_k+k1=`@^+A>IcJ7fCod*A9({jnvKVY2(qTd-+_(4_J?>pSr7dFe2hoykx$0{ zWE!qLf8fo-;mjLO#)Cdt2gCj(2nTo?OlIrRV7#9DquF}s9Y>Yk{v{vUq0MhMewu`M zWSEZ0tgtYv2$eQ!b>efC)_VLlZv*X05#ueZXfVzd!NL2KX5^RHmxj;tqNOp(7a627 zBfymkiBuSv+M%GDNl9kQ0%Eiu6~!-yYsd1`T&Se7!PEbE*mjn^dj(ZpRWeq)!ny)K zKW!b0{lQQ|^(+TOE&hICnl*!b1S7X+6Xf+a&??FBBEodrq<+2*!QB55$Es!v6v&H_ z?udNRvr}lN%C%yii`OfeimYR=fuNA3KB-wYJ%>7 zpj>Ryz|b} zCGvhk5^*AdLBebKa#6cy9)pXQ1n7GU^(kyg2{g{5sDolwzZ+4AJiy*b)SqCSFT!vLXO3V=j$#QW+~K0kQw0Gb{iC1+EfUo z8JFcbTPUo@SS9zq4z8-Ra%f(Qt~x6&M(?OUe_nJ@a_@H#*(TZUlBOMH2UyVj ziWcLj#$2Y*X|{Kmf-lWnVbOHeBpJz^tX@x?l_uC~Ml9VD~fQ88B5@9f8rmyAO*cW0VQM+WZ^R7AD7j` zyFw^r+))1*;$LhOEvM-Em&;#}ilzlIhJh^oUuc6lT1Nt9P{rK#=52|rYZ^Zyf3*=q z^LB9{7Rka>+cxSnJGg0JUE(N*eZ11|vuY+NAooXc12Zg=p68jkHj3INAt3k9F$p$? z7Q@!RCV#k*(w61&wO2_KSJYm~3R46U9>fw25>B#(bw5)}+z)tzK{B;3bCPjz{)T;w z<*hPsQFS9KDR~{e_?OW9EAD}UKC@624PRtKG@$#o_k~69x3E1da=!R3v2c|)i&-FF zX3OL}eJ05u=jk6(I#46fb~vfmdXD|5G3}KU%J{zcLYF$}gH%gZ4Xs&&D8qA=tw0&3 zRkGZ4I)&iMLJT$$l>l>V8>bbv19+tI-g1il?%a``bLQwO5KhNQWaX9Zt_yYhd)r;t zJpKHkBA6?*67GJTuR_Ydf!b7gqjn`)Hr%T~tARX9d#>R9!U`MT;1q27%|0ZPD5ecK z8cD_wbTwttOBYq~C-FDH70|RUKuBucEeUAe=qJ!YhpI)!kn@&oS-NwI^@dTlO+t>o zzdC>0U1Q*p;8@!6jBHPByBW-#GLCAH8=N80OS!69&|r5}baMI+qH|=MTp9wvYDxb= zB#p0t7O4jF6$%N4t7dM+6hMI$RhMMPa`0tv9dU)gtPHt&00^nKQX^WYFC*Lb6#qxh zIdChoO_;3YrpB!achd~&iTZ}75lH=JC-EMqs?ymXV(%()zx~at3H_EQKFwRD)o*a# z(>(rz?07}&w>tGt&H#VLwC#ii=LgG#G}P?Sr7X++A6Wpz0`}(k+8niB4==l6fmpVe zI9vVhg#0HVXgg=)$*iNlT|nt^86@SLIlsU)dv7V<;>_PT9S3gTv-`mhH=LyEyL|x{ zv@3Gm%i+VCIHal5t72hZAkA>pReinMXPMbTn!lyd>;D+W3jNcRTXS#P-~)~*8Vap86rs^(C;DwYRC+ZA08qisUf z5CC1OuGJq+`oR#dCsQx<{ZW5D82a-;I2?NZd^qrCgK#n#4~aMI6A}h}-|r9lgCP#q z{ec&He!W0jjVcpmmr@2hdtaW@h4fzOw#YX@6h+o-CeCE2LZB*+s&GvezAsZ++Lpx; zZm#NA#Y=g!8V@2r2vp#l!QYD{0VvGx*}_=53U{(a)iM(^@UV zakY29L6rseLZyl?t%_8|d{Mpu(M8SJPG2djp)LS<6S{*1-DQGB=_Q)rR1*@No+IS| zjDEhpUZ|cr;z*acfi)nW_ryO-QzhZl%B<6Uny~VU3yD$`@Isin+E8(NaA=utF7-=Utx)Xl-?BWJj${UV4EBC|`A5YNXG+D(#Va zwl!G>+VB$3z8;~Z{eJn=6zbn2ecFH?DSMXd`qw1S5{8G!ovPy@gmol!iF4qNii*Jf zX`gtrzz>3cF!8qXh}Rzu!dWmIO@{sXY!YHT7!1dg0d7d` zs1T&Z&2)`h*R8hdAXVSyibXP$*!up8#(}O*BVf6H@$9gwUe<4IG)?dnt|x%qN3D9c zSEWC%TLX@S{sgcEyhmh1JY?#iR(K1ESMY2faXg1^ZTSS|vGS4D32_mP{V3N}BJi5s z6XjA1G&{z=Z@ix=3FtmijPm_zIrRUE8hJ`M%TvEr))6X{a_8)K$4_$S%o%x}w{<#> zG|xF_&g>`ZeC{|Z8sBQ!FSi?eZ>jUSWI53|btpeaJy{Wzx1@GUQjMzErhwK9SD6E# zP%}+^G3`pO4YMf@mob#EB#$J&QSD6;3Ux@r87MKj=#{DsCvB`5WXxOTK*h;KVn5v_ zDnUw}tQ{Gb0p3a|-2j0#_moprZV1P_H4AnUxt>MKt*IhSU&Yiq8%sE{R7iY`+=_*%YHOQZ+$5W*azP+up`Rf9%2h@s3@T8 z!W>n*%hdlnU~)F?o>sX_SGchW{j!z2N=Ob##&yPT2D1u^CO_gWjc7xi86l|B1cmxJ zY^}nzFVkC09`ftO{iq}UowOp^H3@1E3s1E24F+2PT$v)Az!7V8tVVd!XD=YqcXqL|e5Zxe{AT9kss#%a{+uTg*c!=dv)H zfU4WLXepDSZ4qE4+O9hC|E2ij`eLzy>0aGjE>HG=)7$c0XFBYY$hqojv zb}E#q75nGr>J2=FeQi0F_Ptbw(_4}qTDe8dMXP#WNF+2e? z!m0qcf+RzI4V5w?*y~HPClw%9oYj_Pq2m5tB>)&E0g5Ln`AQ5?pcsyp&WiMP!~ej9 z(Y7ke{?cX!XmRobe6Wt=fjfqmE~mis^YUKX?K+d->B z_N}3jLU8)HA!5$$;;9N?Ax&w`wgE-U?P=Gw2+uNXseQWoQeFI)Kdr2!XE+<)tpIR*a<;G$e1;W&uj`Se6`BkV;qI zNC+^^?rn;FvLGpi&({j zr!$tYh~4g%iBO6!Ou?i&dHOcKwjPhUl24Bv44E7^4Zh0(ez&OMq#f#6))>J3;H`Ci z{omz{rLKAT;w20T_BV(G6mCn&Dc zVQyr3R8em|NM&qo0PMZ{cH20TI6QyrDey6wZF_#!-M4rqd)93`-9DW-KDLwI-Pt(~ zL_!kA6u|~SIhu6d{X4i4;6vWH~vmJ{B3WY+UP*o@tLNc3?qvD=vcLo_pw5#7MR&3!=G-N=)IpmPC zjslf2L_?BrlyC_(>+bDt_j-FfJFOeExFs}V2dy^98*8-~ zU!>^3px2rkT>8DvUZ+27J$Y1C3#{oDUpAmje5fdG1NoYS~ihjr-jn<|5 zEv9H9D%R6Ihux6m7G?uzE}`fBPOmfQ4f?%T{cS_hp5-q(u%t|Ybj+O>Z*08*gvaM z*zfP7{lWHd{Azc&JASn{Xwddr)J+g)Q$qN<)HU_$scRuOq^>Ey8dkk1Mtj5lPT1Rv z#2>HVU=WV?`{8&G4hK@@{$Q}TKYTS3+Cjg+({IprJ#`P` zTex7Ft|5sKLv)Vlx|Gdp*3(v$X>0He$?H^U1kok(c4t55;8(qwq6oJOdofQYj`u z2oo?uAY&-%w16&k0KR-(4h<#=;c_mm1nCr&a9hHfrX-FLwJ4(mj$)+ez468Ed#K43-S9 z8vixGstWh*(;b_2J93uIMu>{p6(NQxia<&tro>Q;L&y$5e+dI+>4d@v0mdohXtIz+ z-w+CpEi!CN^Z`ezCyKW&P)HHv2yE!}WD~$70v9BXaWeUkMv!a16tFIJZ!S?Ku=mL^ ziV;U;5IJ}S>{yaQfB|@t5Gtk)X5yQ{Ura6Pf)Fp9?&mZvv^0aCL6*Qd#IcxqvX=9E z9WX4T69qv2RjBF=ZJ}-oDK}CMit{s z`Tz`DE$l5}O3>#kmA`EHrSfISe_y*yXjMcmn&1+}DCC3!7{}z6$yEVCwg4#(Z*VdJ z5JY%9Ml?6>BOLNAfM+S8946c@B$r2rZ%@DvA5K+g4CDh4$lrl(*DMU0)n_x9L>p|= zf-xG9m<7`J*wTgMOs;?d>4Yt*Ej~L{52Hxcz=@SGfD;2LlT!+a(H|`gv`*^d^#UB9d^~%9bs}_sMgWWP zWXj_OfH6lDF^MKl7>98TVlu&@Bo9bP0!9=;$qBb`kplvQ18|I)LP_9}kXyhAxJ7cI z6{e0r11io(5lE~cREidmDg%t;MN3iS=;HVQjA6`>rl6QeM`jqo6`rAgkp#7_{`UZU zxH@XJQpm&UX+k(2FZ4>>^5keLhim~PqsG=jpOZy>C@%LClpv*$8>L7CP|ErYrmhB{ zFxC((U!Frg1sM}$lY>5o6pIQ>mP{d^9)Rz<-<9f#)~1BJ?9(t=XkR;vrT=38GSXpUC3HsC>ZP&q~% z(HTw<1GiHo2%XC!C3HkpK(mB_Tg<26>gsmJpBco7T1ZP1L-V7vB;Vj9l2Z%P ziBy|J5w}eNO%hmqQl);vN#v~5((cf+Qx!mwuOv5s>A;)e1kbV=fHRUMTtL?P*>_AV z4lISYNd?fpd^f|%h0*5j53<)&K;h?y1G?XHx_xy1;RDAp{+FCa=ZJJ(lYP}%3*r6)sbDaeD4&Eq@)06&wHLxKJKrwMrN=Arn zfrN1J58`2`(~*j-0Cy^Riz0v-m?=#bCZJz{wgqOQO_r$wV#$jarBV_Gq&Fx6kQuyG zL;8nVzH&`eIf$HD4-HVD=>*u6WN{>HTBYnqRr4`2AGBE_hKOcpOQ;wE6lP}CMUh_VTxW!};w4ZewS&NCA_$J+ zjB!LSNUTg1=lAzGiEuKhWi2{_VPl38h40Ho0!AJ4Nciis%!wR$1_%XOWGl2AkYy>~ zh^6naydFDXWZ5wP?XHO)7=Hy_0-?0ZuYrx}R1v0rzdmv#6(0+g zj?q{y_J&PaHu@(Dc~PRA!I_<6{--lLJMx(yMFtKtbH3a^15O(vih1CO%&mMW3TkCS zE4YpZbfkUSazo;l&>LlUTDwW=|3J)&&azFLyk^DBtYdbs-V(l6S~UKbu9lL>8p6h> zVM!$vcoj1Pm@d>-%%XugwGSM!3kgdoplBv&sENQADPkS)KGhtfHSR5d^uPK=Tm4ou zURJ%5j=&(OYXBKtKE}diRGpXav%zj{64n~-wP#TV$!*Hs#PqCb6a~LNa z(J>6=*q+A-GBKn8-a?8Fl*v0wShz|B50EX9Nkjc5YnQv-lGo;zXY*bfIFKnWWL z+JT2tI6KgPYj0@~O~W*(sXL;*WmTD&%%Ld()X&rNBX^^Q*-8MkL14_UUZ+3kbqCvp z$`>T#$gdJ1#&H5wBw5hw$p7nFyyP>19Nogjfd@Zm=@Gd=NrdElVhEfh^Y%wb1!+N= zajw_TnHUW*G&k7@(FAcM=p9nT!5CA!yHqRNOj%Xt{rft*Wuj0 zcmXaK35TDJYx|(}0vv7vW2Cj8BE*Oa+A*uS{#V~nAgW8(9)`VL&?kms>o1k%e1CG z7g{Q}C7(`5(Bx#(T9;S<>$Pmi@@7eiYC0h^N+_92{EZcBiREBlN2a#!OsS~b$AWS$ z8HVWP!wP^gB{S&?G+g9t^vD`#%EzvK811}}C&Gm&(taeZO)CBr&__rx@)G6N(@9~- zGZ=#iawr7S2!WWuNGfSo&y}zt1B_FgOpYOk8paV!j9m?Q8XJYvEc*heyTU0SOiD4K zm@hyWL#AAixv!K9wB`I6sVzJfPEnKz1KZR)64lgtEtc^G<7n1SNQBxU#nM@0EOzCa zRlCLu&ktmw%5iMjpB5~(e7Cof1QZHXvh zWvTWgaznTU@G3V9o*(hnlL+13TSFJKrVCfK&kr^vkC zY$Xk+DwQJL19to z0PO7Uw*dI??(p)b1JLUYjEKs2yX7zUjxoZ-kC^*?+# zE$<>Ik#po!6KF(~qxDFMgmT zOU;|H|C42D8Y969FqR(-W9f27Qy~S-gnXY|5W?SKHiJBzu7|aBC+3?>tc-n1@f^o! z;x1QWzP(T4g=qH;j**i2HjF^-!JV6WCoF`q))6fLL4h+O5x3RC!iacdvV2rxJVxOn zj8R?3YyoHayOK($(??Yb6AzQo>MYHr2x5hyNM|0kljduu2{XDlBjL*b>7E#juK&Qi;0QlUyMV_v$U=J zdfm-sQM)5!*0tN%s0%7qb z4|Itjz7wz8X;#hb_Vc4~yM_MD?(49-Pqqi<_iEtZ8pB_zHDPUb*K0{Nvojay1GBn@ z{cp_Z!rvJ{!UL=rJ}B6V}T{eQZPbe zLWM3VXCM}KzBIzs)k@K+)Q{25J^d=@SYE#5WMnlB9LWQ08yDzLk*6wc# z`%YtVE~bDLSf@#ZLt*4h$!+tF@LN&3V-y@7E&g5k{-c}phj zeR4u6p`U&uGMErovz@BNG{8yDX==j{BnT9PFq)+MzpePRU$!x+bVqEdVpPkZvaQONOZug*9{&hhVA@#yQN@BAaKNPz>YT)!$VTx{cHBrW(LXYz}Hr$Egm|=(rOgnZ)Rl!|-Mc zoXb_>ID@f%aiPY+zEOb}=^Hr1@xnN$9T0^8Je-2DD2mNaTfTNn=UR@&>G^znOZ<1& zZ33G;mWokVe(wgu?W_iJeDAyzh@oul7T~ll|Ed&m0#uhmT&bry;ley zNa%$wSqFE%HpyUQ+0}y8toG`?g-rHZ#vaJvw|uWpe(Ct5`zZ(gNsO32)Quu-mN~;< z*Jhm96Mo8f?$~NLVI08-kg?N_DE%pwO~}#ch!LjBJ`xm)^wbk$Bm-^L(79@WG!Jv! zbF7Q};N=p~>#=IpN?~{XmZN0WZBG|qE~W0f^J+I)1!Nf>Av&1PG=u3uNukwoY+~72 ztUfB#3zX|-0()@7RL*?H0XDcTxNy`pWR{+cV=h6G?)_;9r> zH7AemscGBj$!b|@T6uI$+Y%QnQMC^#1|w#l_(=;6B(=8s*I6p zoI*6lH}034eWt=ZQWzq0>_8xFPortbD%wnL=H@DPP5~FDpb|_|By4#BU;Nfh=WW^O z-MpsysN2hrbJ~&gf*mZb`Apm}aTuE(I>wQRKBt7)$V=TiN}_hg^g28)(pJl`wwV1m zX^$Yop&z$x+WtdOede;22~PMn%{sGq`HPjAb~4`Y03;Kfe6A_VW7dYD48<1{DEOTl ziVtjJ8V7HL~d>wYzH2Ec; zqzd&P36p0{B~pHTgIS?vc)O!UO{*iLM1)=H#O$fr3{0zj_+ich)4lVf%c z`LqL?p#>UhGrOeW)fbR2l4mdrBg zIquX-XWgnfD~M(aP*m_}W5`k^ZwA>hm7c#xi1Ch)2a)Vgynh z;0OKDQRBg5_k@NG(N^s1aZQ`sGbirBH#cS)%FsQ#U*xZ8A)*|Q<<5W=GC&^UJwlXw z`;I>Q+k*>LOk7lOQ^6~Y3kok$y+7#4M13LV(JKjNzPo5$M)b1aE}!j!8Io2 z0E{4A#%cHFvW8=*Blv29-*SBH_Uf_OUN7M4#Y@OdR@PY>Hj&OlBVrnGh1;Cyc^z{+ zsHQ1%DEJ(6{_#lj{U30nz;-&ev#ZeGIz6vENX~9iX=C|7uwxpd^N&Yc`p+NFw**IQ z0W?eb;uzB{z2I%-Q*KKxRx;^|U^p2g;p`-(bJwgI6B^p=L#fPcCHmr!{%0J=QuUE` zQ?jr*@~CzLD05E0sW@)?v-DJOq82L^@j>EjhK$ALZ^jz}yGK$!b^j*NxhCUlK1J86 z`hR}f(na+#5mEBH_IG*-Wo}EOjQg`hy?-Y#QVmMvWYmCwsAFQwyBm1yg3WgsWOWqD z0Is$Q;udvHfO|A2L%7DKV9qMB4e+W-6JQU={Pu|x(0q7_aA-LEn{F{k-dp0$b@QXnUIjuOCBuT-bX z^|M5Jj8OzO95gn!KtjB#QVEp-NOB`sOqMCJ{)sB|RUkFpLxvfsr_^K24lN68dA5-?=r3zE^c1nJ=LLAwk?lKj(L!XRB1 zpF9AcI!+c12v|01t8lV}89ua@K$Oo={Mm>mB-xeToGf}X4yy@4H_*qntuSQfpi^65!ITRg+O8dd3k0K|DdySZTD%8D(nA2{AKsR0ak& zf0z!?(;ViRf{9%u4MPhYrjQEdir*rX02sUHJz5TPtiv0YA!K_Irkl$HVFe0NAwiV2 zHq|0+FfXo7T~)cldo)84&ZMg~P|1dZeAR`3&(bji8yAP~+9Md=2==lkt~Sj?*FbHU zq~c5iSTLxl%j}kzUOVM?DGXG@zJ!!}c9-~HNPYZXw*FC3>=PIx$i=8nbRry0k1Z)! zLum3Uv3w^J|4WIDnFI%PZ}br4Q$r_{1TR2eO_1LOYs?{y$%NgJH|CIbMfGRycw+8Q zvKq}&A}>GEv{^dRqVyeyna|R1dVv3U3_4!aiC)>Y`LTLh}{#-{9uDSa3L1 zCpfhKOOz?QClm=xeZ?(~rf+t{rJ9~1I>U@fPn13sG$pr*N?SOc>CB-F@$cL(h*rA0&q5lfnE`mCI(fICgt;>1Ky96|WYl^z;b}IGm#J#+3-`FrUKZ9AyPRk|f3&UL+HIQf62cU;Z2Nt@2JbU|-|Lyf6Ez z9zQ%28@SJ`{2Q^db}{4}T*r5+V0&ir-!5S~#|Qp9c1k<_eLUB+O1Y_=$7&=#YLF=k zrF-%oPBbG~l(S6zx-{+^02E-mk8xmM0pp@op0({k&-tYGi)M?q$rn|_S7w*B32T|M z{?1!He|ejtH8gOSaW(`?08MFKIrAk7V-=op*b@UPU<nA?nGA}+>Z z5~5B^;V5?qO*UJmQ>n^u9GMl>b1*;-pqONB6|kqzsUm0#v#H(?FZa z7TP&6gi=}8JhRz>XYljo4Z1x5f5Qn!6GZ=0vWKbolaT6vQ~7Y!m)j{yJ|qls%*Jxh zvG836`sBm*Hzig7vyfqqOCoR*>*IUu0me+il;e}bl{B!86jGK8TkbH%kRcn>r!{<( zaEjI2F5+QVh3X1wrKymdr{^ZdTNTQ));>TkQ5Z#SjX;|d$%BZ8ZHYr$NIdyx8!F7Z zn=Pjwc3g4lWCrhd`n{f#0v1yx$=V<=(Yhg-1?JuD?QO?Ikr%7U z6WM9mBo_xQ@B;jdK*ln8+Z071naxlVnSE~KzswU%>6+?H2>~&JbA4t^ri~FSA7YX* z0Xdu!>;ypyZKI=-&A^xufD^G6$m4QTA@G^GZj5G$SgM_DvHHTK7;_#Y0oo$61y~kN zMdR;qg2nK5Oyo;MZ19Wehf^&}R9_Vp$0Ux)t;`|)0>naGYylYkGhAl0|<~kjjEvAdU-JA?uY48vo(^!$G0W7~UWmW-hoxuF__wka5-$ z|Fz+wvZzS|s!jl_zy0i$Enq$r?pl-e&Hb2TlHZkCs;@uz+QyZ>eNe1<>TU-WOe3_o zIifHY{cp>QWOW8o6}4oOM@BLhOUJ7%4VHybWbX`E+OiGN{dj(+o9}>A-k@oqukw_K zBXKe&TiQoPG7kPuG75xPQX=c1D`iyYW}meoZ%@fg%78A(Xgj~_LdY`wp3hAP) z$FMoGD5~Gc{Lkt8(?Z26WrGV@7SBMJVAIsz6ws8rrx#MPrvg+wrnBZ^vV$8u6(VUgFx5L-&Lit##-}nOeJM?K4Vdw%v`8&=UVuXx z=Z7N{Lb?U8b*RhJzzI?kN~{Aok>r&}79DcS-_FjXQn^!p9r-&w08n+MN8WgZ7{8WF zvU$Tuc(ZeDEKB=ZUKM(+?j+4?%P8&Z%5SB^31gS{O?M5xRYB)BIF2uGF%PFs-_U1y z%TJ^e*0bx=^ZB+7O0W95TTI=ebpf`yFOHB9IW3Q(+745N%=C&jzXx1f?1 zn>1|dz=PR;NE1UMC#iML^wOsHHUzZGK=evocRN;>r~D{RZc9puGEExd(iwZ8UEm zc%CNW|2qN&{WT%d`{A|y;JZ=l??;t(qy)W!R)sR57wQUiA|#Qzl>kw#R!IF$MHH(8 zIp3a|;UL{a$q1!uK}y@4QFXdink7k@61mXA`IW8}&PHG4!DO-I$_W>~-8p&;Igxkw zZsNkJ|F}}aBc9W$zSLXVMft_s#@Ts9WRyO&uFSUdE4L%aVLQT9<;`&7#ABip^>6}G zsv7Y|!vG596%eXta;dcr?si)!74~OB5=RUa5pcc)`tVG*GiRd3pe9L}HvfS{e+s!B zSfOJIHF1g(A7w5khz6!F(v*ip)cFdSrsjSCH7`u=1tE7*I5k5p@A`6>%5n8d*cz{6 zOjQnDS9exH@baSYnA{qX0l^QLJ2%qHd&i)>07YL(Oz|9Y1THUs6oO-=20FpqQw1;J zt*mR{7#KjGbNi{F`L)~Nd&to4b{i#vf>E({M_nx>)2ieXO_&+-Y>f1I=r*MW3U3e- zd=v^z-{d57T34+VaX2xjT=a&6o{{2Bb#K(g56TKepHq3m7B)K+l8qB?g)jo2aCA)> z{A7f&hmyK>E4K{_=k8s3m}i{HRsG@$(OJ19`}rBA#BsRYOSbG}kTbT7o5QUvz4Jl` zpg$N6`p(-bjDVLI%%q^!*yahZoOYZ7FJ3%K>MIGDqVWNE*wj~E1MZJJ6&4uo_IrDZ z51hPCB|b=O9-=iE!8L@c^QM4xGN%*{V;9nH0DXg_8oJK1BpMZ|F+}aEG#65!uAAke zHqV7g;IN)jmQpekcATS;T+0F3cMN3~F!17IL zb$fz5dMng2)uupUEH^h2ZZf$=C`E}-+Av}Ql)g-gFfLZ0U*f#LqI9`bO|A=DS8zi~ z;F&|mR{x4dAw>}j4AY1HReUm4Axr>*Y@x-yWUPd6q*E|_xOjW1@6mVG1ThB3-wW=| zXzXl7U!VxH^}9tywPrn%MW41)Gr`!=X#H;Kip@Hv3qNt!NHQUJ>YA$9uxqOD({?S4 zadZaxJ#=TQo{Vuw|J1v8 zTgA@(PM$Acx_@a&wZkUsl6J5TLK(#wN-0iMmbVkl6u@$Yy&+v)d`*$PxID92S9CPR zhtp2$FWs+STVKA|;L?DH9mRnixv|$Nvt0n%x(*%#(D|qo)=5l8Fz(>bN5V8V*VO8Q z6ebe{Ug9J|pSQqEED=3;Z7bu?C#7bNygeKNsoie3V2ZVMd;o%*ebxyR+zFF#EUf!^ zKWN?HBsu_k!|;%E7*2%-d2I8Ww`Pb#6=G>lFyPPaFJHjR;$8RhrNmjZZf>K}Y2xJV z__`-wzkVmXiIT|lxbUZ-Si|wJoBzT(f$`nvy!)(}|J!?ed;a|I@9gaCJkS59c$Q5@ z#RJ|1%%@P*#B&O$y0srVS|cz8Uh0(OCWPeRwY(?6RI*nT;Y4oHyST=9)X6xGO`(nk z6@boW5xjIFuv-E5m^z_j?asgWzRCB6N+@An&K{;P&>=>AUg}%PP_->y(FlD&KeWce>#MC^L?# z4_}2v?!IvcRM@zl9G=jQ3N`&|yq$(A#Otdx&OeAxx`(g92HQqUhGV;pFzq9HnVi$>DHhRR)YN?K~U)n8YZD-yCSkaVx5gm56cli~HUI;IiL zk`?rE=gfu{0p(&HnMc*_(Wc8K1%&PZX9;`ZF+jiQxlo)5&i8`gl=r6wW?v}qu+?a~ z^0#Amnu_SGZp7Vm|^3ectt zYPo4pv=VCc{}55$y%zsf9-4a@0xR_YL4R*p(Es;_z239_{}j(M{a*}!M+J2#BS5Xy zPQHJs%9iGqIx;lQ;#mA8=2+Vm74N0XKuZD9#*ZY95S4|jSe!!k6I#?44&3~>fv&5? zjf3E8Z$7on{{pX2T_YX04WT57PeFZgd#3={bUNc|n@!O3al2cqc7BUL{q^Wt3>p*m z4+vb4){MzP2S!%A-C3KufkaSsBJYhc>|#e4ua)kg;z55bt4FO>1Gr$SJpO5mdtQjTq=}|$( zj(w?he?x+N%fV?7Y?#j_f_5B2I=ac`%1P#SS6(Y-;>^@7DUG_gqH8ZTZjx{A-hpu9)o&}?G!fbD64l|l9nZ*E~Mv|n4e2T;Xfp(kH$~Y{R=ph*Y=i-!WT=)|G-)7JGdOMp7Y9T3{Gdu_yw}jwo9iHKyRtj zL^;*yb9;H3Jws)VgvgxZ9s%^Zu7C&;((3cOSdmCJ!TDU=Z_<&~N!1%8Mn(*c?%<{| z*jz@ns5}`=T!llarPIs=K={+mj-mYcF;{z5!Koow0aC%$8x(~@1%MjYriL37TG;f! zRPcv9ztzcWS2UX?l?|^q946$W>2R3yWtGFBKQyH0J9hB7lHGDJ=&E|sRTy~qO@=umF9X1QxIS)uWonr< zGNf*9;Jy=qZ!wLBMHBd0mvp7B{F%H$P zR$ZOc7L$S3<%6Bxp-%nt2THP3{6@+Az>PZB#{ieFGp3Nc%)=zIwdHD-|58WtW#P87 z8R-?)5?CKBbU&-w-ezApPH7Br41#mHmuYi63c%ewAApm`r0NJ~ZHSWoOD2R{N|QnW z|IHS7IamI(Qr~YXIy_$;2BQ-&7)V}X1k0!ACWPm%ih>IE@e(trq$_#n>OqT=^8A6s zpr%W05VYG;84!Qo3)MikR0|-_lmdRW2`-#~VL7fjgwmev-t$CcKilWgf`xu%5hZilgHS7kC$2gpsn zYyGa!$rY0&&mQ~rtCxgUPCrhhjp~LM4DNqa zU|tdM^*)8aWN5XQ+b4-oR^`6nvF?UiNmghsK8&Jvp>@LO&JgtgG>%7pUVnbur;+^E z*U>+g{O@m<+5Uf$$I5@bg|R`=7*UjjIGKP6=DAwCS#SaXoTzm9dUxuhxqtOe ztAo4I@)Rq?+KRqf3lEyO%7 zd-QnupLR?6pN4zS=Rcq1sf+(}(~&-L@SkaVS?Hf58m%mF|&a{&Mmx zjreP*jMvS7lb~1Xf9fLZN7MhdcLpWcMe{Rz2F`lgN^ECiEmSL7nU|ZVB z8&vDEU6%1-4ZGL0Sx67Dp2yb751~4+fV21j{AzC>$dma`IZv-+8S;6p(n7rI?VIfC z6PkwpNA*Q&yjb6yC!R5mk?Lxf&(f~_o?jnTr;At=V{(IyRuskVfFnY6(_$>`dSm8XsZd08S3efXk|3KsOT+PCFxC-Ic9{4N03 z^{$?Ol2KJV;<>&~A)j7fYl}nYCakqplttJFRoy~zEQs->dGS1 zIOa+%R2{JYi=7 zaF(?xhiknySLj9aG%*@c1vK^P4USQja`^A%q<_R`nf%uipnI)3<+1GlL2sw1{|$!E z`rng0b@JaF2U0^1%pw47){=rf9b?7;8CTlXEto{ICagGJBxH+nK96yu%>^r#t4)4l z&M`fb#jl%xLWAFScx`*1-9NFD=`MTdWKPdg`r|FO5bSIqy>-+s>j_asm0 z{O1E~|5k{|eD_y>tlIq5pH}SsdZn6d{dyJdm+WJWz;E;B@_#O`-@QNn@b+YlU1LGL z-{*$0V4;WFE7nwa{B7czO$O2a4UXf>Tg=0$-`bngi<6%Z-@bKQ3*MgvPLYfEAFfWW z`(BCu-k{Up?esdmZhsK8yj)`DzEVZZ8m9QH;_>v2qwMCR9_!WJthy5COcaZ#5-ab-Mu2Z=Ftbop) ziN9Mx{M`ce`*)#!J(m*d-0|h0XT)yC5KYv*eM`%wkg;1rBSjgM%->KlQ?Uw4gS$Xu zBiYvW$r>^5;9m}jZ~`CPP@UXK&|ygy6_b({#^Fj?0_DgHv}JEmrn zU0=4aCh$SKO=-+5NIEvisxt+4bRvs~=0(@yW%diQsJ}bnRV9zoj+2Z2nt!?>#+$ ztNeexVXt)lxA*M-dy=Ql|954^{y{u|T4XGh8P4WHwP!C!>7Kql>#M5@jVvJJ`S~^< z!Mo>ly8zDc8vLWx;@kx9mmQP!Hf~O9p?|7N_N8cdJemDoujtHlU!9TU zf)K77&yNy_m%?~v3&zpRIarYU1y{IBeem*Pu_f@;ckc+|T8TEAI57MxT=h|&+%s@> zdHvIe?@z8TPmV55u8Lk8zphv7!{y1v<@w>!Nuf@|5%WAj4%ow^qm%Qi>*KS_b>PA< zL@B?H66OQ0KP&3jrzGQum5`C%tr8+NM@O5r6d}g1aawBX_~i2H`tX&|-+3B?ja-~=mfhvv>PNE}>6Hei zSQ-FMHjg0CCzKs&t-t6k2325==*ayTQUo~)?hDow5Oj75eOJ=xzpKPzf_RYs%F;;U zbU$wR9w!k_CVz0IATiP=m>In#bZP-mo-}n-VVS&EOtYNXN0Jwv9EPD#VOj;N51u(H zqnzTx?o!&&1(Hf&=ghqR_t6s?uKx_);~>z={oiu@cW?0Q|9g_Bdi`h6UHuq=`M#M|g`G21XkX7@4uU|UiSV-U67Qy!8o5&N?%qeX80ZZ}O2(%*>PiZ5>*gs_a z$I5*}=KySV3`maFR#OZe9oW2h<{tf5)yQzt(IWItE!(%X+KcIgY{n(WdSs;qMsXlHl7u)VF`-1|IGzTtCua(;Mmc=g`f zeGLBU9w|9JzdHQ>?aAf!_lHM6otzzeC6h4^p7-Ov$^E$X&lml4`u6SR&!<;MKYC*< zGey-Nwb_Eiy4ODvivK0n z?)aQUhZ!f*P`%p$@KyW2<@;ay!|mt$U!LUA`X6Tb-M2D8iUG&~1fw`ZQc}s)cWRje zq$C2+vIQV&I|lG6NGq}tphxV<9t`?tz128n!-Z*q$yD&?0V(a# zZSA$i(YFz0(&lpdCZXDGXe11XK=k$f98roR6l|LJ9rv|w)f!4TUcPx-E??%$5*Uu) zD*FEoC*fq$oe#9*u0{maIPVMs_x9Wg%~RBrtzAi;vvH&z&S}cJb9KC1A#Bg}vX0`_ zpKua^U(L0eV56S%@`T)1GU=yX`rR&iupPMW%#f94IJrP+j6=x0n$CNtx;~yfgP*G_ z;L_4eafFz>wmv^ z|9^jXd*|8z`y|g=>pzT5?&WtdtzYxSI);$y*x@~ZBCzuVg0^cJr|V-~Es#A1f%1c42Mf?Bh`zyXU=)*MD=<(-ZEp zf4>AdH$b2XhEDlvGz(!0cZxSq^tLz~T*d3Wtb}Pm`Vi}E&p&i@)F1z;TmNw~p@^}E zNdLTI{qOg;cYDS4zyEyy*V8;}um7itF&=02*If5tYrlrK=E|>YJPO0As}$_-hI@KQoKYe-yCG$*mX@?@^( zOabub<{kKaqnbP24~AR7rcd7@7gaOS>WNf2PTmAsQd|;R)470QRK^AApMf?G6_0aPXur)e|Ji0fut9wUCPq``pZ7?Ow zy@K5VVk>uKnS2t9YG1xc(sd-gyu=X|J1sf#IZV0pc7!O;3+18trL2r?|9=GwCg5@^ zsl_0`pF>1>P~F%|dk*jd&9RUKl@c9~L8o|9paMln0;ilMMzzqc7*YGf90Z;OqJ9>KEX1V!Qr3AOjHBxO>R4Bnx+pVah2(23O zzZS4~o$rL2SJnUr_^VGyWNt%ma)r{}*x|Ius@1pjV+(G>E zC6}$|6piucKmiw@tH72p17HNh8{l$8X}<5PY$lI+JbO&T#>vDb2xcD6pWQ? zQ(x@WniVAiyD=rp=3m$W_sZ zi(lnaoQnwY?ORmCC6RzRr`VEusuyG;63=(&U_;plv9il_^3eQfW*IR^@-`?-kGg><01u`1 zsZ^)GY4x{62N{nG+*@y&!Tpk_r2M_y9@C5qYU5F@jEnkoZBx0-*h%Pv^r z{AXqT5B=2X|M$A^qwuWC|J2*wDdvCZ_4?2H|5H3``+xNXA&=tlb*~nA2t&ZTm!zSt zulx5Palj6&Z$*XANm8N4JExWIm+DF1xzg;Km0Bg>Ii$Ct3zSowOpc!uJUu^aKlSUs zItTXz`JZ}&VbTA$+uwQK|9z5Y?e*W}OnD>)KmuR7>+2o~z0Zzs@o4EN%+wVVOcnS8voLH4A=L!}E+f2cKc)!mV` zT1QTbr&l}H%`I7RF{L^Mvf)v@lTyM-NMe6*HbL;?)z$f>&Bd@h6@wWBIq@lD;S>p~ zO*v0lO{xKfiQ$xD<8KL!zK1bPLPRYNVp!sM)X5SoT0tE??!q`Gw{3O(LmQ`c2|Jb~ zcK;1jwtH<;Yx->vs^T;Z2?OmsIz10I!3LV8d|^MDhE;B9Td=%O8=6n5y#49z(iRGR z`C@Js`BFGXCH_tHG;4r`V}z z=-|KekgqCUH7TmfU&;W23z$qyuA92AM*TNDwG!G|=j)abrmh=i%&sULk8zmal$DRO z_o;HgD=IH*lc~_o!|@m=nCl9KmwvoORfXk1RUYC>(CSm&NL0gVG7KdlRV35tIrAxd zdhXhT&8=4Vgkv^}F`J$det}@LIE*48`wbh`ef6lj97I*)8&avU$12h{aE9ZB8vaeN zk)S%cVuYMu#m|J}eX0qC8H4&ZY6d~W#in2R?;q zYlmfW|5QR_nX^pl08l4+a*?v%%gZjCN!8h|o_&tL;j_a32i2bR{oH^n_W$}jy}e@o zpPk|J{Vz}QtmXgn0~H=663`E$d#aegS}&s;&i4S@ffXTw>ud{Fopt`rL;D<=z0x;l zLR@MV(+9f2twLXEcB*4dpUxj)wJOQ~7>~N)6jI*3c4&031z?r@ANET5-*)@Y@!wDK z2>B0=l$3TSiSo$;7*gU~_Oa~Zch_xN+<4IfP@OX=PexB&E#ALvWmIA$cp-Iyn&aY& zn7=RQ;H8?JR{xaJMV&{{Wvg`3nz*-?q|l**vY=EPgIhvxVge(1Rr#6}>X^#%=uhBo z3fW6YK3f|l;fRi5h?w#?WmE!@F@FNvn|;=q_d8*NJ7E%zJD7CMCDO9z|0Fm8!4?Sa z0Q=5Fxg$LkDJY3!y(mzaM2B%Yg=g6e>{Q)O{T!TlpJ$o;_wuCQV*ywx|A!_0fA3lT zKh2{iavYOe@KZKIT5|)OfDr;jX?hV#I?E<Q zmpc5d-|4>!Dt97R)3xKD=hjG!5Qko?RVgME$&RKdys;!OP$3g<*|nnf%wT*L#P6t&;!S{i6QAyEAx>|9+Ck)&F(i%i5~HF~r4$ zGwBZ`3oVc5kVSMbM|HVc-@l_S9|ZE{L&SmUV{xA%24sSAWo}J zl$YJ=xm6-1z7!3%6?;*D+e}5%o8VWWk|rV89m+rP>@pjV@n;aUgKGV|btHF80JIp4 zvp8OWUosfuF%}XvP34$$T0bKNU6$vf4KY3pj8F(Oh5#coByBh)_|!;_F^VH5H)moz z!yHAzwBu9Ez{Y4HNBQ{dQk2EXM0&C|JFU|(ph`$8AR$RO#0k?3A>UyRZgCt7D=}jN zPX?ewUSqqGYx0d6hjWru+dCCoJ8B@_=v|!$;U=UOL4X$(UIg8vtQ;5t}e z(73*ll#&$DcmYBvI%7I#gg!|)C2@?Xj2UgvFH#AEk1@g1{-Gl&j<$) z%wdcpP;7JK&ulZO!>CH2)UGgMXaglZ{~riC^1n8jKmf+SL`egg{Y#YO43;x+M=)@e zqo=edzgd;D;C}r5TWe6i@26V-w~W@k)}mkV++7WU73cr@!<~ZvXV4oCp7sAHdBjZW z{sml35tu=o06W~J8@`-{;V)e~3oHD?xs(zRj|@OHbK79GF<(09gJ&kqVnrSKG4~|+ zmCmy`b|T5`2B`SfN$p2ayX$R&~)sGVk9vh-p3A z+#FBg`V7m`V{A4MjYlTCto(D0nkdYuI;XcrWi9`&7|hjK?Tkgyup~`|}~& z;E2v}qOvc|5MyGBLq64X%|E`&za5kYfBhyLAyLstE??@JX#s$exg^9FFMOZmrkc!j z?+s3eX2~J@zz}uku^GY6`G?cv{1Al^tm3T}FVeGnP?j<^fJ(R48jv3@PcE(>9_m9u z{NhKJTlnt|FMnFI1zBe)(xSli<;m3p0e*CD_@OD4D;gX#nfh!QJ$|@&|KYqbZ``qs zM*;71P1Q2Wiu6Y?dY{CL3qtrC93!@19L+%0Xm~?*MiNn_JUExT*B2*;$Jg)A-u}<^ z#ryXKrV9E&Eu!+oQQm9_WAwxMhjJ5VA5V`@53fI-UY>sc_T>8ba) z7e}MO2@m|^EJe>1MZaX2q6h>inPW>EmE4ru$XB1wYV zhA2`{7WRwd;49XvA+Lm2b$wNl!g3Z?ka@ERtwK5V_gyQfthR3DkC#ia%O_LSj_$IP zR~0|>G(ySztzcH?M1*)c}HGNl#Q+Fu?T4$u0qh1xndp3WSqo;z5(HDlt8!y9`O zoyG}tY}3uKk&3DJvn2;aD#O!qK?xw+XwCPHZe<>uECDF1lyTHhNX zHxK1K5+$9(&#B_xAmIRd4OCVZ=T#XMS<$<5!w%ESLMd%eHaV65>?>aOtn~k;B)V@1 z$O`{&Z@AYh#((#p?|*ojNBMtSS5pL15-E2s=9nZ){J))6QwMNLqT0hi)<3I~h02Lt ze3$3nSmrq@C$83s%-~%!v$>YIe`-_uwEYwE&e28pZUR4q&WCbVdFHW1qOw7&KvlZ% z)}>KZdlVB1IfjfGyh<F!TqG)=IH5+H(D_*e?EAvyfbBwl0fqF7I=As z7NXR~4O*}z?feR|1pfkl1&mNGPc9a21b&%sv6_6D_0VLiRc?nIN+u9O4g7F&6GR6<}a;e^_+U<2WRn_4O^jXyIQj|o9O4^!8 z00rDq*QDTN))}cgD|_+MrtB;d$PcWQUM#)SRTLS!6;(Em@&H_|X4o{k)d`NByvT-5 zezM>%eqQ6cl*YB$jB64Z7gG%T`v<=N}a#4sXY5q?ksr(F};?0a?2|q`4hGjZ@2L4G#DhDWLfM!W+gvNxL z<8j*2qnwXT*Ae3-w71MmWE7thjj|-x&sGxZ{W;`QwL@<=vkRhCuOqToUJHma%s5Iy z+{3Q%b(w096v_$`dgb4!rLii?3U1|&eC_NMp1-W9nCIIj!!S| zMKK9}4SJ~-?@OrqR^=C;K82>=Ulap%cZYkgf(E3Vkz_)aFyQ;MAKu@W0aX+0FraSr z`0(oR`@_qVLf_nZuhEzP9zzaCP%0=*x*oBsjUE>Et{PtSh1 zD*^I`s%e0eNdt5liD@08m+#+R+-r;k@HGZVws-XYq7-fI42{HB{O5>JDLsQSh?BF! z@86zWAAY#{@#O64^yu*F^!-@_kSCH1hZ&!ugyT@I2w0$`K)%%90#~4 zHBS>AqWK2L`Q+5Mhg1~SXY4VP1%s6(ImEFH7IbcWS*IUT@0_QJ4mJg2fo9$}JO;^_ zZGVpF^#t)T3}f&g|51ANE0|D}g7z@*__xBM9`g4=yeSjY+s}_ipXJQ$=shW6d_ocX zB`)6rq&%b(!S`YU6mE*}bM*u{Am_kOmT(-~zNeFG%qW7<0<=H4cBq3y{-?9rgZ5Ni zMWk?XoVXDIEJi2=gO+)bpoU$qQO=84E80h+4$YDywXARaUm(=V{|hz)@T=0m*%Y+f z61$gQT($lyXt$+%aQfh_ALthl3~RETG6S$-l133HgB<4vjzJlhS3Zspq&W| z5wxel%P+1;{51gW)OqI_tX~7ES%d$x5dY&p9s(%ikZ0_HXi;g&0`T|0gLVRfm%e2g zfPef$bVB*=mF;)*_Ef6RuSw$1rB-uP(Vk@KSsUa@=jlC}Jr|7<&D3 z!%;N>;CO~e#zC8bAs9IHRh5LT8pgQr9*7xYa1>+?$_3KA$L}vH3Rpu)J)8D#JO+OU z!Apa10A9Za!TI~M9|G_XA)Lw|-@ZRQK0W&ZTnKalX7UPDb3;%BITT9^PQVP!2weo= zABCj~D0*_5A?KZ%h>wmu|Oc1Xfpn1ICv#-YZ4*Xtka~poV6)J)jIH29;6eIS! z587>(;s{X?y!=uy%fAMHb=g*R^hh-Hqi9IjV8k-B)763KB}pP*Z>Sa46>wn~qEwDj zNRmWoQzT(QLsC@P^OlwCtz*T%(qt_%r6ORM(HOMba*M3pmb!ZI@=Jw1`!zW5KR80p zd{6@MVE@(ruqzPmnh(Tb5`I%)S|D%4911ObP=6Lu9ZGS_p zd77xU%e3;WxnifDqj(wnj7b7w zGQnZ<-CA{G+3vfh6we@Cm}K`l*tr<&QxyOj<54H$I5vek8kD{1#D#yZBYy(#{;Xo_ zZZMKlPX}Q8g>?*3Gt6XMoW*ZLos)L%1Fp`9xwMBWO9l&ycx`T026eoYl$RG83o^)9 zl(sqjs24C<9EsOn z>v@n*RV#%|$jcxu#n#h&tCbz6WBGmVwu#bp?fw_>p&HF#%6a+&;s-(1pcP9Smr*KL zd3nF6>X~>^m1?gJ01Kx`=ny#wiEJ%|T4KvS@G!k3;mz`1EG4PwhI5&FWxr+Mnm~F( zM>V(={a6sN*`Pa)ygM&k_}>VPy2>kCULSh88g3OA8>sSBI*gA|3>WrTqQgN#fOIMf zf#oA=zzb6*qv&c%5u1`YD#I?8Xb4#QZ)#EYzc&P$`lmCCFul*!5F3WCR{!~1>nzXD z!#ykYf7d*|qZP11{~z>+!$SOLzqj*z|NE0XGCuvII##vh1i;b@0qfEw6~q1QaZ1e5 ztS;2jRYv7$IZ?Qi5DC;%I&)9T!RtIey(^`mY-zK2paA^>0^`C7@(VqJbRGt}Avdvp zMN6-BF$1OMItnMWQI*djECF4<_`U4IQQ(YvzL6joM9>a4Rj{Y;c#?aH?tY?#>zx-+ z6mv7p6?)*gom{6>A+K_cFV=x%@@T38=9imfpa~S!9ZFI-F%d~E<3!5eHo~xO^(!iU zS7@scb-3mZ%RTr;oj=I$_y@F%g!d?e0WWM-dc(rZWGFE;C_XoJkK$4;*-;@SsalFh=*kp*RY>g#Kzpg{M=MJvp zufPvKEmQN;L2XcowvQ;^$b2#qPO|nNxT3$ny+c zJd=4ot+fLDye|@G0d=O$Ejl*$)uc9%7XX}?Wxi|e%@a^E-fA129}*V7#cVA$<~7Kb zTMD9UL@n|6t9^A%b+|l#q{#W6gn2#fRh4Pd2rTRCJobS9IMpU+?Pp9Ov8dZb_c9o!@CLc;w`t-^R2}{I?8wo4ar)I9> zM=$bc_Eg$`AxaRNGyz80@y|sV;YIu}p2eu8F}OGW!?W@~4~OI7qyP6o9+^zu%mAP= z$Y%gD11=;RppLq6CnSoqZOZILsu)D3uKwR9A)iJl#57X|1kVIeXF=){P7hnfa>5xA z9`)g^GWByV!Fgzebttq~6bu)aFw0~ZiNqoDlSPDFZxhhF@q3^r@=^DyZZFkv>ACME zU~W1xn{*ID3Ux~I(}TT3@ChuY;}8Woi!`o7C}6R{;Hd>)Z8u=zSsb;38Otj~aNVC;o8MtA)o5^(y*!EWzpVaTy+u8nus@D0tg6 z0v5ai(&?XW{!azGKix1AD<)F$XMWy9^}dO{wyt(ITG05fa1oT-++(j#gLQSAC5?8Q z`~Cg_Ot8Eg`V`#w2iG_bPl1@C2OC5on`%s{;a5{@L9JEsNW4g|>JEiMch*+ZufHBB z=oM306qg;wCpC%#^R|!tjPohbjeI$8YwEChsMq5sfYjV{)Wh-W6j%?h$L3&looyPG zs_;5&o>f=j!&p^?4|`Re1JjHwPbRS-ir<%tSAeHQ_i}KD`6R0WH(cC=I^=o|gRDvk9y!!Ky z4=quRBt25UOHy=$$yTIFY^ZqlbU?ZCTB*@KNeQ9mYtbU*U)Ct7QelCN4k(IAbyg)6 z%5_$@*KFEUShcV{QP(o5#qxG z5Fmk9ksv?aBN4*a{X+tO*&>HBC?VzJshJ7DvJ*g!PHBUAEty0PO5++$ff**p({>ZG z0}i3*-#;EF2@n+mSEKpr;SOt~9z_M%8bv)VFw=*nc81 z%Kh1YW8e1w`?KNW`OgP=K0o_Urs27b{U<O@z~guB7s(y&#$zq|d-ThJD86Jt$4 z$U${A)+{i$GuGs2v^3WAzUY9Xv9WebJT7Cc!3cN6=CaoA9AmY)_FHr4c5QIjYCvjMor{+s%APagOG9_0D#>_08}>n%(`EB&l(1y-lIeP~1Q zE^NSN=3lb9596=s#l7~QB%moY`DY#23gmlCHwU>TXg2Z|V5{ivY#8Q!R$0W={youG z``W3nb}$bM*t-6qy`79lLqh|pPxM@`hg8;WWPSBxQrcEhAU^0hj>daB%Ahcz%R3t)Q7I+~bOz!Du)&LmoZYH4HI!_y5@Q%m!1 zu(|9_HYe^8rOW8NAGFn$=V!HD8&uC1vgqx zi+g8#UeD?e{;z&w>290@<~^Df2E18dkC9!5*2S!@Kv`!l@3D6|G+iYSFQ%i}+|UNJ zZr-B<(qyFv9|2it&|L+f{vq$~!A)e1p|Km3` zRj7Z>ls{IxQunhjfO=@vueeB96e+DZ4z;S^dPdsVl+W8f-OrM#M^#py+*=4D)T zT%pDp-%Ty93AAc8PNS_-kt-uDs&vrg>~sMPmbl4kn?{B%SH66@KwRxAv2NyWstxTE z`eLFVc2|fP00G8OhqP|oE8}_7+UY}z?Do)`YD1M69@PfdQz`$q6i3HD!{w4+sBp{M zpZ3Rp%)F_6|I={#nE&TN9-jaG25(M9T0a~i#yh^=ux<&~=v3tVJm6}=Yectc3?RtJ zl7g6o=uAwJoe=7nViF(x=RZ{fQkzVyB3s@|nqQlAjdnfI`}T()dc_?`Pa~XB(EH}> zb&vh~_ny23sYa1-AYrvcV$~Fd&$cO!S69Irh1&?ntBX}k^4HHlqF~GOh93aXm)TfR z93YipZv$zte*Q5@k+^F4G|#`;2iHg@F~3GKx4C*q!W1f!o`MVgR#VZ^)6z{UB4_SE zd^RC5JUmajAw10LS^~ij2(Q-k6!-?$vqp0b)9|*V$za_3XbL2(mP)bLd@vb=D}KKj zN#CGUifimbeqSN8GmgN@P2vM=>Zx_l3mGFRtWuQv(ZY5jI+7tOU=m?VSi?E6&ZGmJ}#lFyh2N+V82GYBk+W;V}6%ysn2bSo(QfdFNNUsDtS~1ajeW$ zgPAfWCwr~Juq{ERBq0%5?f%Aiu-PHZ6ks@7inu#nmWIIl&6Z^$5g%?@wwJyA>g9K* zi|<6AlZ{v2?blt!s_VGs8m~ADWqGx=Tx(5MTFu(J%VqUoiikjVH+qOBAn#NS(N_3A zEu_2sS7ZMNY1kJI-EMCG{MmQ@zm)&ipN$^xe|eavdZpyI6bETI5OY8iGs|rhsnog+ zuDTdhCGQnL&tE^Qb;h5oZ2pEnKIeGCI4d(aD}8BB@2|i1gEY(z0Dy5!D8C_0a?Rcv zMVmpkK3)@Y-8*Hbe;>ygg;8|Ge{7Rg3PV&b+!q>1?-cahrfjia1f42VdRe4C(p^JX!20;-Y%+Esjt&coC5W=&?o}e>K>_ zP1I9fbWsI-0yM>&%M>l~M_I6!ix>rj--OLdJACH$_$-(NJI+Vx|B}V;WPHYVH9lE_ z0!EnPoAL?)`4-6Q1aN@Pf`Dve?JkLm#bYF=@L-7%uUaYd2h4nUf2k@k^s6v(F7 zPd%oX1T^X$aaAqau|N7t_HPcg_s;{J?)E)tT^^#Iy>(N>gb2OlGw2lj5PvH!3ob33 zbOD0_+|o5k@xS>@8eE@nO{-ve(Ke$feN7@%T2#MVc9w1T5avMdWVg{JNKrlS4pAbn=!&+szqs+O`{3G|b;bE~1RUz@a;hHoEyTh(T zH!#{l$_7*JslpYp0;D z{y)UiLjM0P-x>fJg>eYeP=?0VO>sGkR1NJWuevDON>(BFOeo>plf)oINkn#oEI~mo zMsPQFaSPuxI`I{>;w* z>pjN*JynlloFzSZ_bM&VzGBEp@m-S@0H zy%{k_;EBSoYoPL#ec`&ot0Mi~7dP8PaAeLaq77!G61Spk8&Mf`-+=ZqPK$cRt)5C9 zI{NEef`@a+aG5`C6JY^e9uogDxlHu3tON!z1Nm9e@+4udNo@3S6JpXO; zc#f(mgBN)3iMcCsO=NXko!8J=y54WU9X}U@Kl1YbzNZ2Impj?_sQ=sk|DiV=Kc4@6 zkjKUU<)F6_0cxJqNCCM8w_gw_^qMSCuWWIk&^DC_ISuzD6g1LHDC@u$2GXpUfWpKM(Tk;s0{bJBR@&r^|k6AWJqD3W}z( zY*1euB0|mJmXac;?|ub_)+`qR4aA3nQXxgo%n|v`g-PD5N15{5JvIDaPMe<-lG0mk z1McJhqp_X;(eobf|9hCn#sAr$gC$7;1S@=lVii3nCBdMbMZjlJjU>2a1@`iPP7~w$ zH!2HlT4sv8RAUw|5VvOR;#iLdo<=A(VIAt{dzKJK;He5Tc}0Mr7^Vm)0$CR;&Ho?0 zKV|>u{jVNS9rp@u&>=90Xe(S)pP3D=6C}KbEf)Y^{Vi?(>h{KMc;SPK0uH%aB~1 zpS^tE|NFOBHON3yY=6pnKt|`8v3dji@q7(adM*zH+f{7}TcB&up~i7l*#S++)Ii)< zo2>|=|4M05!~ba#Nk!|H5?~Mi_olwh|7YyKNB;i+Pb>Z(hbYYe6fw7et|3+D7K`ZH z!NJ=MuF$DN8WfXC1icmlfxoU61^iW;xY{xnOXFpYyvP_!NpZaDNt43PvOtqaeNpKY zboIVST4`2!I#9VADES|_i4Lo4e-`NoYu5h-97?%pZ@2KhqnGVd%XYgVV)N2 z|3@(&09=qQm4{YR5=H#*3S8}3`1x#-Ro=i=&GDbtgwQ=}yb_?U?(y_5_Suh5AVn+m z@mm~+px00T@sIF-Klzlc;czlN?Qyp9RXi z!y}OJ!+{L9WRREwoPms{Bwj^3kRnDtV@e^Q1i%}D!*X9{0Q1x;DG9d$#UutOzQHMp zHz=lqga3`=B>`(nlkD{PI3z(fSYR5%4Q8ElT%098UXu@fN{+Xjb5j_HeTk*du=KT( z`mvkenkhX#5B5~@e<3@Me-2;*7dX0Y4%j{Xe>9%?w*S|Ey#ME69?t*amXZymIDk>K zY-Gx#M$zy}E#&h8_jm6w{ruON|u&GdE|8(k4NA|+ zCV?pey}x`7d~Y~rmRYVgRYK9=6s`W6=WuZhh~WXtfhM(t%dg#OPC8S&@5h0*>!cvM zn37})J)5ics-Yf#1p=~JFgD9N>qCku0x*hzzSfuqsg6){<}5K6d@vw!0IA7)4bEaw zX~0n2%m%{Wo4mp1f%;%QDZQ*n_FuzMK##4rUIC}?T+g*QpmaW80}{qOsw`yc(uqyG0G59c&zQA9p~jBF6#8A?HK39nHP=vy!(;kj-2 zhBe=}059HNfQ(HGyu<-dGSg5)G{hz7-xc~DY59j~Sd58@th8rj?N$p#FSfdz( zh}kPInHq~Tu+31|km1`pSAodN!R%7fG|Ec0gsP)a*IfPMflfIs+!pA!sSTOryi_2b zX90}3BrL)DTzO^f`j-~!ZFIjc8m#~EwB-LAP9OJw9^|Rj|MEj%cc=TQkkEa4U&%SL zN9Vhe@M<-*mjs62zzD_xN?n@Yf0>3;zy7yL5}^%>DU3wY)_b}Cb!gxJHuOi+@#Fe` zh)1mdBw^EAUH?%YcA0Z2m1{c$EAhJFnlHiY6|um_Ux5tXAP3SUf&p5SC`2i^fhlHs zis|d(PAOSIdEO_}6WfWsGD~P)I&|~G^=*}G%ik2$3Eu=qX&=QDrA%kiS|HKkxUvO$ z12hdLA>oy!_*C>tb;G{y3dM3d%Bhf|U$(qat9&RbfYfS*man=(O*_dTu`{O@HemVZ@(f)sshclS(QMy7ru0J9H zjKq!Yd1lo(6xX=(nIgYQRiRb`xKXLvFm;&u5~OkZM?!v=?|y~|CFdmB)z)HyxT4Ba zvcXzvV^OnbM$|vqu-1n~?ael$yhnbxL8;)k7F9Yr1C(xayi*rd<+E`0$vW$@Wv$3Ru3huj(Z zgZT&Q)<4rtv*Vuw64R7K5lYXBJ1&?4-;^utTmQ4Mb^c>G_9l<^|ARby{d2hloZ}2W zV7jjU+%zUIuRGB0Ng43Vd31++B@T5<0Y4_<;0o0UT$=$kcn0DqxON<*wCJ_k3>Q}! zcn8)KQ-`(2x+*Gxo(9d(D@=k8+vpOl*1yPa-Dc_YXRrQ0vCe-ChmYq!9_XoD|HU}l zOJC+yZ@ubyqV&4;E&#V&>QO;w{VLa>w_D&5T-2^_L4gC6dsTy;N_AhkiX*sawTN%= zG+6&K>vTuq-{kz4eg1zq8jT+Fe?7>ft^ewA7961btsxIkDa##VUkiK2afm)1fhU-v zO;xIQRh*}Jr)ZPscu^mol!+|y6CEFeQKc+cT*Lvj#7A^C!a>kYA}%Yk5S0ivwFq9% zg|&)4)?ZH5Ktpj@bh%FF@85=be7Zl)`F}^{uZjIPwe$ZDhvUcmUk~z>`M<6F8LwM% z{c5$Z1;cl9e1n7T*B%9cJqlwPS`%&2;PX-;EKz7Ek_L;fR~RLGuTU2Yz_u&7jeDxa z`tPvv#j|()k4B~V|Ka2Q&x1S_>)&4aZP&bQ;Wr^iAkWcf>Kn!R9 zPdvMn0H+`M&yRjt+$0v){OalK_^Yogz8g!cif`~1iu$4<4raj!DjAfjqjNxYmZL0e z^MZ~BV}tdt9l_{k1Mai`O837E$3ySY{(F!|TmSBH7VMzihRiQti+KR#7YOa9-<2e6O- zm-GMov)SYR?}I!J{-1OHOZHOm-wrI_b_FCT?c@ruN&CFr0jiaC?to_P)(%VTX|gE! znK!za1!W(IF6nb%b$$>dfw(F69%}Ra5AZbM|0L|b_y0wc_@C1L|8P9<9{K-6JUag` zjk8q#jrUE(014|u{Y(BQY>prEe_j1e&o%cER7>50} z<51!mvSJcg(XKM4p^2)wMLBF>T@Ck{SHm{;Ro(%bg*9yCd$iKW3Q#4FV-DZ#W#nZn z&c^S&tM@HFIvPLUrvd+$>-65@e|*okAdyDRH{V82)u-)?fY^huW9l(kefCiVO}w?1WYgJ);y&1b2KK0d#}Q|A8!hA2J$ z8Aj3VZ~hd|Ui*JypZ}kXAMbyDn1|o&^gYBeKru~s3Bj?r_gPE%5#dD&)165DF#s1# zJVX%?SF7<{MEriCXvc3a$`9o)V1`0K)VkfPZF;nwm3OsXh%PhwM2~nTv zMT~caVV}fI?Mu-wTb%NIZ`HYqU>K4(8?f4)M83Ox)r2_K z-67669X*@Wn7=rou{g{>N-`a8FewD*_sgAfjU*S6?Ll8 z9_qf?;z*^@ikEn`fyw?^p1=<=N(XrjhQm3#3k(?wQbZer7sVUGE~NWDd8okiR62#2 zt*3+=D=-MiHm;$_$RL(G?W;yjs8RGmo3pH>g5^9YjHxf zA#sM9pe%~s24hAcMayl(0qsR})*9nPmuxmqg zgcpM?#nB*0!@)KQA+2ik??B^yeDueu|1_WZ(ZjnGPS%e?7=ktGL^# zJ8zpRv|eK{@`dV#x!c<2I~4m1*Izx=ymoEE!scM?I}n=JH1Aezfw3YTa~pcy*SA;> zl(Q`*E9FEK(UN#Y?gXs>)DUeD;oy2rwi&uT<^onj_o0a^3kMjRv9=`v}#+>`{`E3N0h+SH>FzSPV3_;8-v|1CQJ~d$O zLup>U9AsSYY^aG=Y>K@)wz)al(g~Tyh#ki%yVSo$1I(TN=Dk+Lh&4uKCKYLlsw(|Z z+q$m)`CaVlG=EC`KOtdu{B!Pmx(f-g*Z#BbfAgoK(c}K_gFJly=gk^txoek){V-!L zz1og(0Ny^Z8_yKoU^e>S;f#`W_Y!X~<>On? z_^Pr3aE2nT$eeQ5@&?jiEyDUw>wV#3yauZJOF6W<({m~?sI?<8Xfu*MdT-QYtm@$b z>kJd?iRpaj)539FDK7~2kAnqPi)qW}t^urDmz~%&+2p^}QYEyfyhOX2OEpw$vnU~9 z#RzL4e`|()$B#??=i6O(paATV|D)+_YRmu0`0@Ui2YI^4|9o!TxdLEr$nMbq^1_cQ zz@rMVM+Hbx65#-5?waDe9)3+zNYMfNJ_NyPCoU8d{n&er#0;<8!Om;wK_>jh$QWtx z3LuB2FC>a^ym~9PSB>3p_YQkro$s%+RjRE}vE81dIINgf>YEUf3<&R~CuVahWVPOZ zI^kB3f$RhHOI=H!k`xTGEf00y#_$H>2ri-`AizLyTA@E^l?wbD`0;J=UJQPXs$fDC z)abCT*qa7WDoz9xz5S?+J}RT1k231e|Fkfm+be+k;(sT;z5hR*J^KG2=INmSUCFs| z4;~;R`b?I3a+BZ8sg5yM@{YKvnqIX+F2Cv(PuT{2LX za#KS?A&;Gi(#K!%1PiPm6!T#;{cwZQ6o&{ zYS7!$EB0if3B8T_@tF#Ep!WkGYXPnYo(fK=4WEtj(CWe}fymgZJ_VjsYEpj~PWtdguVCp zkKt%qivNF%|9GH>b2y#X)8jN0gXgTMuboi^o)rx4Dc%=uP93Iw539}V@B}KoRsK|%X z#MfA46!n3L+VXkPNE;8kKWW*Yr+OcVbMfaWrQi@e1y9t}5RRJx{&>!2tvtV2r2NzR zz!1wu{=h%o^#63z13emv4iN6MehGv&=k|&EDx4*h9BUoKy%brI4W-d8y1Q!P)KR|Q zbVMorjzl3!dm5g~ZgV9$U?B43Bu_fWTRiF{wU1l=%S;iMJX6H2w19o~-^jP)KWDSi zqx^r6r)2*b!+r-gpp|f>P8l$YHdP2rdNsAc{9q{u=Hzy$2u2}IQ7|EQF&E92))|f! zG&D9LtLVQcW70s?t3=&cTd-!#qp5kHkDLD|H^Bq>|Axb||8Mdb|MehGiT_`!?N18c z@jYk2H=XZ567WoL)%-uX3HI`PWh7j_JFmSV)-VlN>72bkMZbWj`Ia#!hkqBD$M}mw zY0B|xA8|%;yyES*xtD&uswNs3as5h0UMk<1jh8XmOk9`%)rMXhE^cmpm+&^`;G%1d z++h7jCjMDIZvLMx;2jBo{rrDy^Z(iGk^eu)bFce9A{S$w%FjwP)%1B;jq~&0mR`>% ztwWt>-!xXut9Mb}c}0iLUN{2_Y~4J8yd_QDfLhb;Nx>IGsUd1C3}nqmE&j87-27j- z-X0+Thd=R3=YL0&$Nm2Yc}o2MiVyo8Fn{H`?VBeLii>R6=jZW_>BfDMzb{y|;6Ndy zJVS45)|LB^EzpfQnB|22Pw5u#vRqR+xEqQ#QQW-xh`+JKn_QC)0Vlp{B2EJ7BIM*W zsB=x}=o%X{295V5tE>UP-Dv;8B~~5(7g@gUegEGd+V_9@)5&A}@54M5{9jx!b{7Ib zrbe$b0A!&SoKlciagS(;SBm-TWS0E1!7YpXNZYbYRd=shV4&@08K{OeH4e;{-W$)A zgKeT~!F5&r{|dJI**tsszr2m(Hez7!{_nJO|FiEs?*Bf>Q{w+}*w4hU-<=r9Z*^%P z4HWWrGC|cUiw5-6c;KLfl zV6nwfh~pJVU~mmrC>tDn33#TEY@3KHSuNn9~XcYFu2|(V2LA?9eg#& zJ|qWU4HoeF;Hv@Mu)j%)R|jAHzXxA}cQD0dn}LgG&$EL;k`l(+4hA?x@K_X2$-fQ; zH(5YJbo_hZGjjc(e|Prk#q*axyclf4JI7JG{(W!ak34(*kH-Gv`hSS$OK`qs%2Y&F ze_5n|Jvcb{i#W;jbx%x<{(RsM{BiHEe>sMKJ^1p=FTqd7hkrg@Q<`L_$Hyy7*V_e? z(#JI2BCa83$2{jwKsE_X(Xn20G#CsFNQdC*&>If>-l#vE9v(1Uj5@Yr55AJwMLC548HfhuroMl^-9kcR>hX<|>8@W1c)VafkR)>xB4jZ@cFbCyB7v;mwl=~Lt z!%E8K*qw!;x=H6^16N#cmbv+Na1+U~YDP>kR>PXH@?9aRyVehwC$v8+oopQPAc2hjbXzu1lu&?x**w7@Jqyu z|BP%9fJp*Ef-=s;BYcg3>a0=A)iJ7B9aBeVH5-qL&YGB=HPt%HpOrdmNz%Z&H!npp zy`78XiG$>3VyuGXu}Sizp5!L0*`GI?Y-))7`AL)2EMd1>EB?G@t+@1?&gzY&-RR1V zKk3$&E%g(>PCs#}C!MqtiZa?C4MsNe8{I*py_OTmV-rXqdPagw@s@9J8h!&)#JCC+ zcM{{pmZ^S>|1P#Gj?Fu1CJGfc@5DQ_czTL9!`+g_HcW(&0lOc3HMGX zkOpfx>U{>4WC(;fgNq2|-IT3iib8-B*$vJ3OVJG@S2uW$Zt%Kw!^yy(nLOJw`(b3Q z^KV{1Kl|Ios~13cPQdqU)pLCX#W(#Mm}Y=%X@)}t$dbJS8485si*-apojdOc->dEj zL3c$@h!35+LbEjmq`JOfX7-!Eg9XCz3VcXOyoz>mLnvf+jZ|ycq>=0q^BtunN>Lo3 zjAwoootL5w#4&?&mL!?zE3cj0^E`*#6Ag3qRVQZ2Yx-7S73^}@AD(n!m;St+AY$cf z+FZpi#fQ#q_N+GhdYdQK{0K;zqJXkVA=m?0lZ@J|gSUIyOySDgJssDyyNW}I4;|Y* zEseFOw|iXTl@ST9D;vw!f=HFkKMP*U%s{4^KpZ1E52me599G`hA5+&nn0B5AQ)?bf z&3Q1i`{OLj*wTLUcL4J(QtsLjjUBZd{E>U`r>?=Db{_nRZXXFqdSm^Po)CrrZYhay ze9c--62|>0Q8`aUn}@9&S**OX&67$iMttbp=8@6niDt+Q`+g@EkAE_6#n4&#nl?Lx z-=wqfn^?kcq6xoY-*4^c5N)2d(tla`nl?Lx*rc-%n^=r(VhAy>n-Dvhwo-ao`IdvhqzG9{$Os<+_>Fts4h_oOI@oW8LK?AnEMeCXVjkoLA zQA>t2ax}4 zgpl5THOGbj`2DMQ7tb!vetvgxb@9#1=RZGt{_f)Z`PC`t-4Go1q(>?y;Kk)zfHMHI z46m4x#(TtXxzv0&yB@nl)VQ;V8e1Z2tcfVU<8G5bJ88EHW+!#4z#*c>oki5x5>aDK zMEU)pZHG%c3v6&k;Wf&b?TzD%!YJYf$2M7|FhpXzDK|7SXL}qXV%%9oj4Tl`)kvlJk8H8M#>Us546*SuA;^v1DH}eA-RMmd5X_#`qn%Sn{Yd zOCDJ)d1SEUVSAR$+dOG!;Lav)19#+N!=uh@cx18Rk->)jdABx?Tef*z*JcN!9d%~3 zBa6|F3`X0v&BJ!WWj37KJ1bm`14|@*?-`;L$15#Dd`VLE7Hkvn_UaoDB7V5Y*?A6* zJ?hM{M;6B(863OYE~-Bpw%P<^}m%NlFrwMmsj) zw+TQWX$t!=UFE^Kve7Lkj^~~@L)T&%c3vz)Yq1Q?#WJ)QKu7|yflAj1ur|U76t{FR z{a_9G-U3KqnjwB&5SwG74DXO>!yq=*AyeP&ZX3E*(y;SN@=G1!RdH$t7)@Cne{p=v!12QdWJIF zxXl&51^((#_CY)LJDs`Nujf*3z0S(5XUT2PP;R|>#V&6|R@~|mSFy1sPFpr{TGvE} zSoJ!KRnHQuo*`DfZcc;gxMiEib!~P?Rj;#D^(-Oc8B(>QyKvereutH>X|qFubdKGa z4~8?V%~FCe@zEd7s|2SKkW58@M<7Kpxncdlp;Nqw&=J5q0A1ZgDSBeqlCce)jE#|9 z*%RzT=bkWRDTAcbDeNzEglP0$pwHD75E;;lyh5RBv;~RqnMMXK&VcCuh=f z2Xx}z0cDMM^=C(gU_Ka*t^S=wqkF_>;^m5H&qyMuJ(4+ z2IhmIZ?$(=+1_qP7?^$}x+1r`CN0BvChqVZM!c&(I%*2@!O*k%!`J(xo2D>ncPfLG zuW56&rocXQZL>eO+N^5|emBqk#BZk&PJE|E$Ov?_x#9j?Rhv)DHv99+Hp_{u6eAvx z8R8`m)1=^E;UWOrH2QPKSG_u{hU0&6<;dBbs$)pv!>!I5%&aDz=uL8NMwB*$`S7(A z^%Jj#P5UmD&hMnfdRvuT>{z?R3^L6D(Dq*uwc+f_=o2_L`^B`6M29P9v1 zA_a_MV+XMN4L^fiB4*&z4eu~8eJv|DuJle$IcQlc7azEzF1lqg?UqTJy{RwHNa z+}7in(``MkKE*9Q+-fP>({tRZq3zVevFmgbr$ASgjQ1L0p zoS(lI)V6d1jK|_!8;Y}SimKtm6ah0Q#?8T3Aczo*w~5HPg!#f1NrZxJis=p{%s_=; zfvGy1A==B2BGDADRwz{g`06~NYY5t%Nn+)7i^l@iGH`1=p4S0ur&o^0qZ(i>4fyeJ zRtKylWkZ89IaUV$=Cd$FNyZbCuxYni2jZMsOg;>pbKa#Mc00wMFK)|3@O2fjVh!El z%(|0aaVe194!!5SVi^*?u0(PdTQxZ@)vmK*@wCe7&GU*-Z^g2Bj=G+{ev5n7;RcJQx7=|axp$mT9AkUZb!<<}u{|-z)-Q40jL0+O+~yJaiE+FFIL@)2Gbdwmo%-#3=+`>) zJF6c)6^hQMtsakFTrahTaTv(~l_G`rLCaHPBloE>*9qXx2Y{z$bkNK(0dn@F+vDX8 zXft+A-qoRBXQ*;7i*9MTvfY6eQ-?k^?W#{rO?_%=>QnaAz_HYtl9Vi%O&7r(?*WQ8 zh-}4%{09WDQ3|qMM$yI*zdLm(L({Ix(9~3hriL=)-X5}~&!naFnK-4-)S*31yJ}BU zQ+t{k+LP}*p=UL4+)kYxjh*W3)S*31yJ}C?0sX0=J-Jg5Sq*G?G;ZWR8s|E5-}%VB zb>e<%aADt_cp*bn?cIv)n;U+&YY;)a$#egUv@SQnpC!v_c^-e{K9BD@j^Ft-{=_uG zrv@k1`axs2%3e|1TM^v3%$AA6q@Hv&sVAmMJuyt`ievQL>kGCCIA>7vyqEr{r71b$ zrlf10w=~g5!bHz0r6mzp-Ivw-N0Y8Gx)W0fPX<%HFDqlD#kTxel8APu+n zoUwk9&2Ogy4&9#8kt?ui)H$$eWCb>j^uQ*+?=|!n4yWxLqQj}vAv$t}JB>PqJMo$` ztC1&qBO7iw4O@n04&9-dBUg;msB?_d$ck|q=`l`vBUOl6Va|X!B$RJO`h0aWWh0C; zk_Z>6b_8@dZKoCur%uClla~6vlF-&gV4_1B`0j0#kt>R7)G>;R z)tp=1ODrvb%vP<0*1l2#bcM2yP-ABM>gYHjOd>SI&^` zks~5%)HNc?3dSF45mB-g)nvG|$j(Znr9;jtJ2PK$%4MKQvuzs5BOdCwr{D76tM5Me zI&yeIM_oOkRywWGKvx*u$9LRG@%)w^f8Xu#cO~8GoO8=cxiuQ-Dx3Sy%>0h5ejGcuf#yek>D9B)R3 zOJH`CmqU9{ye4G0@)UJWQ)Fc+8k&PLc9Ky&D4i1rS$Tto=AgLAs2-H=>3Zzm@S2cO zeSOJE*Xv7826oaQvo~C^=*~1gU3J^GBBV+0$qgrwGx+<<#{wuFgT6hgez;Sd(Iy{aesoid z-Jj1}*=O^)!#tb0#O|!K*qvEocV>%S_hli5i8gPy|2%hXKhIp^eAZc<&n$61v&FgZ zIG*tVr)af>X~^#Z<9CCt5S91;RECTQR4(c}Eni;Kv#8e>a48Q&yuB7@|K44`lJSCU zenJX9AP|!H&y;T%Jl!FB2*{QKvXocqJDXI+31*#@nwhE8%xtBm)FM_tLKHDm72GiA0Xra{b0N(F|Gc zI15soRQtzg4t;0VRo|JJ`p(SKcPa)=Y*gGNu^qYNqPI#hnsrr-W~O2^vlJsodQx7? zK}IJJ7^^ro$(Yo2o8&z(jtS+*g|pg+LgKfn`fXzbZf5#T0(Ta`ak7`^{a!elv%vJ?pA!vx=7DVCW6y02j{X zcoKNwz+P_`+I1GJqhEY?{u*p>n#!S_v^qR9pPV?Z^$oX4gabBp6ekK~3?V;?XK8e< z?sKUn-L(?4`wX4LvnOeBQ>mz8bsgEJO!YMG2jTT!qa_rF?Y@#*+cG_71b0mOQ=$ZB zo@_`gvy3SQ84gjv8X?A`Rd~qUb&=J~VdKoY+Bh@Q#+g|*PPsFA#&IS{nI;5zSmh<8 z>pV}3kgrP|As*_KL)>3E^W=@E|+fm8yf4JaX9@ zn05w+>msa~!|I!Lwfd&kWjHg-;w!Qh>(lf#%4oU`s7QLjCp*9UhVe=*K(^?rVk(DN zNxgRGx#q6pTvOMLI@8WK>P-3l658UQYFFx5-I9wal2X?8{P^(oN!Ew7za}zVLUa>r zc)Nrib61vQNo94*yM|bZs-DsGk!jC(&YYdHjTB|H2wlP=;&;D-r-U(id3#Ayd z%nlCzwq2k!MigbI;Qe2}_W8xneeXRl`b?7^2M3?PYm|@-QUaa=EsT!;|GdT(tMR9y z_k!0s_Wb@?7~*)`KNXGwwb(_>O!)Hz+*5D)_bK=!U9}9z ze}3f<_${eB0OMVywVQ!8O8NOeX6&+$=?-9uHrW6?hrznqM9$V^8|7E6W!zVEjdlYe znTlKz0gS;yY@Q4h)y(MB=ww`fftdXN#F?n_NAW?EX&N$+vB?A@R=-c;Y`}{0i~cx# z;Y!)2CzFy3Ae@gO_yiV&u)%!4 zgi(eV<lomMS`5>grle;oare zBSq?_Ma6Qf8?eIEwZ4By1Sb)4fT{dqy+H5+Q;-&V^J2%7DagcNkjWnIOTN1Lj;$Iu z=7Bi!FSxVDP&qe!4L@)Q3R*)*-@pt_#})9zhdzo~&Cmut06(r#3>Jj0wSj};*4iW9 zGc5h9YKB`FFJvn7y&b(y4Hi9OviY0p36j4v0t>njJIy|H`Xjk1&g`k3%-KFlqw z1riG}ra8|-;5`n1PBZwvhPe)Kyh>4)HCT%<2C}f`E4TTo3ynO!UV(-w@;a70RbYE0 zA4qzQ>>%`VP=&;!DcQ1#&0ouleDl;U zn6CNqy(D2nX;?vbE1sTHxR0T0(7Uno9Fxt7j*I_|MEr{CHZimK&biP? zlnKwKz`M&=19x)<`8K>MxDDbN5kIbRu;!CY%`H|_nYarncTEG`_G+jYV z7Na~2L#6_Y39vv*HYaGxOHv}RiX1-&Be}BW*$%sqf7>P#0;x! zFGF=DmEEU&t?)}c`tT6^5J&1tFqNkc;0&OcY*%ZW5Ib6=mN_!HrI2ebBGuv&EE5$i zEg2PdSW>YW0#w@nYD7q?#awfw%O#F6-BqlDXK0CIW}T@b0f{qy zAsPkgmOFEP`YA=re-;}D*ZCS8V8S`{aX{h#B{VzEf;9@a5sp`VbR*nq$IP5v#r=eY z{g{O4_)CSW596>8V~YFgjbzeMf@5^Sr=nwai6XU=s{k@cwo!CRA{;!ojX=?7yU!4OU7qm#vO8lD96U>M9MC!>05 zICe%+m5%wt4N6lc#<=muN+>&18F0m_;6S#NWC4ssOY(vJi<-iJWvng?0R-QX6#tvm zjhG1q&SXUir!Z4%CyDL`a!(WsShvZdo43_7#zxa()@Z;RAg)4Iow!m~PP7Dk2FTQ{Y@_p+)9>&EvuqS|&pWY}#qgepOQHvO=;hc7@KXZ5dpn zUA}!Uh0&h{h(Al31}3dieHs+8=~deoXWCb0KZcrjQ{5p@2{wcjR=_K2@d7+>H>TFU zg$!X09Te}i4Kq*#&u2}Dl~+NO$$cq4>}feoNfe=UPggQA4fG;X+bxo$9;=*B8KTD_ zL>m%kh}K}K)Y7;at0f-2Jw~^OPsSR{UQy-k`p)iUq!!n3bRkXDZqg68!;>N&bIuyU zbdpctz0YvG+VVuiWC=o)VP<6}B+SZ{Z*Yc5{2k61r+tYx+(j<|jks%Ez`x=LghXku z7R5m%%3ClAk575agDD3IOeq$!MB}e9j#NizjRddtsz9q+hauahE98P+^ri)T13v;; zvkv$+hBpvLd@glCVbnJfF)fm!)y@UioVs9}tWp>vkXQSbq~KYOJ3C^!Hx89C!ZhF4 z>H@N-QaT)R*P214@HSk@LAXMdfPRRdp$Jh_u3ms1fM5Fn zik_qKPTgKh<6Nu|k{Yv$A(7jG}vvNoe27&#)M)?^Mp{nL=gTEbyou1YAsm2}BrhOy38 z7;+@9hr%lDBEOoOY-7Fy^!DnTJhoSp?|hHnE!xFrO`_|mk$L0dOfEbU*-@^%s_;0G z`&FO;8@K~0%1CsBK%7N{TyGP#A3LMQ>f^Jtq< zlzxlTjP?Lta(~XNeDecveSj|`qv(&AuD=r{t7zqiu>;oPx7M@aFHQ;O(1p@XaB(JiEI3@!2W(^MC#W2CwDS13Vt{ z*I)k(&Wi&4LGjJEDcQ(h01O6dEcpA9cvm0aBvC~>)K?xbB&78IloESe{9Sl=9FVzQMpFDa5+R3dlf3ak91j0jB5_@KC75E)mJjuTQdk5-2)S zcvfZJa#NIjzy;$`s%Wu^!kFe_rwo(2|} zqL|_o@e>vd4~`49K|;fsWWMFaq8Dp|5XOM0BB}-AX54)HRg%sjv!%>4raQ(@|1Pz8 zc^@2#X^O?$V?={vRx$&9uz^X!$hx>>rBjs2s_Z-GvA18lFbw+=eV-EUnnE<_a|-$& zFkSOM`%ut*e3-XXF|CSz{;@bvqL(ZZUhK$LWbV$nEhXT+gH68AQI_1Ha;(mxhq}r&Wnr|}olq3) z>P^@{9RFFt8R(=A*rz?#Z@$%3ZJB=Hn?Ou?Sg`TqvHxKek}V}nAXiQOvn?eN`=)h_ z;La-kgkP;iQhFq!g1B#PZPh|<$x zobzX}VRdEIY80*f8~L2EVJ*vq7U6}#8sfOWfEf-%a3NQL$x=`!E6A;MnnJY1*ZLPG z!#F2QV1N`?WdpQ<6bC%Y?3}C28P}Qf(JuO3hsKYCCJBl|0a=_B;YbTCSssg%*AyQ$ zdAC*R6HJ3Z(O1mBrx{9^wuTN3LKt;q%cHSKCUxA6!i(aN2U3=Mnse=+ynpgPOxD4d zWFLKmnOul}eClDg#EmUjZayuEtKMY3Rv ze3pkyv5pA^Oc<(DH-G&a_yd33_nIJ5ab+%vqcjIG^VQPkrSn7&k{jYo>?^mx%8%wY z#>z`K#wvdlNyKZEExoLWXHx<6Ig*@7$+J?KZdma{Qu8tmPG4LFgO+8R^5#u7n^8)v zg8DmVGNmT((`1eP1fdIUmrRGaKsGn={@e6XmG0c#5wXsB0ZRdYOHyQ%g^cDU2~~d_Ke~ zyyswuQQCbXS>s})2R zh`huRKYkjon8t+Ja8recPdR}(!b=qF0y|df*Y_p8xG1Rxm(4?K-%edd>d>^+XYFE@ z^1iJsG}xw9ZivA2Z1S}PV__!<-wf9g*`kze_U-GJSFGqZLt4NlYrwN_20F&tJ?H$I zRriLo4yM~~vqDmBt{L!KY%|Mxd$5%-l=qf>Z!jB-)aLSZG#if=z6XQJbhtQKPDgMN zj>07zj;F)Ye%ODCw32y z0mwN%XVC|^%SyCaamV)1n6O)njjFg0VHrtjcsOsNYIG*vBpi)L9tvlHAC5;$6#6IO zBJ};)Y%!anU@=_=quJE=M~h(Whof-_ha)c-dqX%rnN0Q(qz%spl3wRsxyQmbi&u$> z63_us*1IX~nA$>8mBLCE;$woPVqt-4ZvR=cd%7r>k0F5%m=@E5@dPNs`t;Lj&;ych>)5=>{yg%=FH z`EqpPji!^Kj~3y`pN7jJoQ2bq#dtVb%!BdCV&pZWN-ck54{hJ#*9+fHLu?qPlb@{6 zFv|!P7q#l(vrTI`emir49taiVdtzBIz1IkaKc<+XAL2kbKF^Ahxl6t{K`KrJ41_@< z3$6#V@*RN49Bxp^`iep8l_P%URSuE~x6ul(A|ntk3Xght9sJ z4~AlTPBiBch>+3Gi@{r+q1o5WI{JdClcmD?%%bYDdL0$}0MG&x> zM}>7Nw^s7+ta*m3NE3S%1T9G#pps`p2nPO5#ntfyz#KY9`y(?BVsWmGTS985Csp>c z1EJHK!G1&gn6|~h*sOkk{1?{7pULuPx<)^X zihq57l<$gA0{-0pvy3jtbm)sMH7AC4!q7PeckGf-tJ;ArMKI)%?G@8ov1Po}8&x{j z0T_&aVdPa{$?(6eDK($ZU*P;$5flSMmO1}WjY-ijTa?kfMU@=Og;l?Jv&vN`aft$E zvdJ9w#ggx~v5C-se+0r^3^zCs{4K*ImX`*q*khwYeiz~UBP04WuZ+?PN4Fe89a2U% zNZe0|q6`UO{J^Vuxu{-q8}lt*6oRK3>O;OH1<-gKMMoee<+~A?%EQ?^qDO$I?opv4 z6)kXg|90V8kZ+|^DJF!U{IY0rNs0S zqw!ASW950rc2Ss>mRwehc?8M=I}g}>M>5Kps>qH&aIEDv&SM}My~hm7l0^IzF3I=D zMfUJMQwm9zQ{RR7FV~WmL-6K@XFmWLP0Q67!gcBY2drTR77;@k+L&D}cO7J1;JCy2 z)k+N2%caL-ku*G|Wh158-bKUbC5*Ow9luxYd0$OXh;ABjgS=Y=J$Ey3E{a@(5TcvA z7z7=I!?E?-oFA^F)G=KidX`jiMYStwF-1;7E0&le$q>EN?q_nu{qWsju9@nWIf*#9 zU`;;6;#L`cQFSFMp?Ni){8zmA1FnIBzI>ue8t!F5RG|C3*M&y#=de69a_)VVXt>P9 zl24HPSu)!!y(7(Fo29=??LhW`OE}49-NkxTm})fz6W_g0bYYXWGA(5`v}y~&gg21B z0_m8RhvjCo84s>3)Zjd#lEd8S&S{Bl4<6yX*EYre)4N8y-f2%|f#@Ce5|Mdjv+MJ` z{l}YKKmYpcKP|;vq7`uKZ9a>XKY-a}wa9Hmi-NTVwCu=6*0Y88o(;Ba4O8yZuiit- z4~i)VjzU5S;8pW9>BdD>*{%2+#}(qVtUw5A2OAXPZRI|J3ObY}C;`3i(T1eEUNPSw zpqpfwfv2y}zV9y}=aGD4X_ry7In@1TeC(uiRDoPW3Ro?t7cYg2zY`OnU`cowtO!mQxR8yyOsG_Jq`%SR>>YM z(?`+9eZ;@>m~(E0HVF}#++@F1;jS7%HBg_?Fmh5q+d;g6smyftyI8xD+|PgUDndW! zfls$iZS^x8_jDWoPFB1m_H!NjTb}^G!(-bC3D5SX38~20p;B3z^*bg2(SW^do|~go zt9{xH4aAi@#o7D+^p@ERrfBz0C)1N7_3NCc9v4AUz0=+g{F=S*akhapSoe;4{PsP) z9)IyRL#h0&U%Asyxar#e}cyx^qtFV)sgw1wkG}QJk8kOeXUz z1Ty2O4A+$5`{GE8Yg#ne2BR>$=F(ZLd>-Z>_wvFt0ewxPFjKHpvINPl zEvQxPu!Bo_Z_Y1S|7Ce-3GY5$jOVtG36=8*1ocIIG9 z)3ZR>Xnqzgb$7zU&d>tw9ZylS&+crF+F&c2axb$~GFMj@UCGaTW~hX6xARj1EzM4a ztkK-ej0RLddC+;OklyjE)O+gA=A;RVP`xo@QSElICe( zXrp(^iu(|jk(4#g;b2^31ome>@=n4a4E=B#c=N?_IUmo1(JVmY<#;xkF6Ib%{%E*7 z2~Wn;kv~6~E+HHaN0aFgRvhiH2vX{1x`57ktGqfu=C^rGB5{&f`~3}$LzSI|!5Rd` zxBaHNY2WH-s^Cdnw*Xs5t^8JN(w~*R0S%$w0&D@V!)b^%L&tN4J4k%Zzts_!ZFx1< zd4l}2+#@X$G5|OZqOHmj0T<*3$t|@|v11qn`R-?mLR_bc;jG>)=k*`ZB2Q69wrNmG z>&P>dX1&w@^nzsDJME1<&)f8ldcr-|JMEpkz`b9OdNLYcE9sl%Cf@hB_p9MKQ8-m7 ze+G_4M%2u4v|Esxn~E+2w4Asq7XXEsndcW%Tgjzv&XdDY0uqvJBf)QE`8)}Q6p~y9 z3XB8rjm!-ve5{n8nAg&QGRcJEAl)VMfRvQ1Ms24`5N8-np}LBgFt zu0~PY)|VFtEO8`ds7khJjq2swi)Yet_V)X;tH1S5hsMZU${Y-DGn9ghXW%KTa0pO* z)4zc!P}y~&oq?p<-^ZguE>nDiBeX)#vj9eXnoD2WQBO|*%BD{_lju<|QT4;Tn%W0` zO$hxqcY3Q!QMiBb72$qF@ve<8up*;?$_vvdcUPYOZ;#74FL%4lT`I$kPU!t+?lO?< z(~QfEKkrN%6i&W{8yw+^JTpvD#R*ud?|f+$Tl?a8OMVXd;__yE#QvQ+k?g7zwJV;e z;)=rHx}>GxM5<*P9+&9f_IfOm*aL0-+?}#B0oh8RsG~8-uFK48WB*46UmG?^)URN8>ss4Xs%sR5=?c+( zGq=dOsFk;zE5gxluzKDB%am+{{#@iV=3lrQ;e7${JwIfquA!1n1bu!f_9O%33R$gr z7Od^>_X!8g2Z1L~lKK_vqEIp%rJWVW*K_{IT^O!eVeXe!GeC`#@8N@G94%K&W?WR& zAxGGrRiofHTsWCK*+(vfa_3TB)`n6(lPS%#i%TP7Lg$jYpxz`AddisVLNeFGBZJo- zfgIjZ!E-e-&Xj#u>yfB12F?1N?`6qXy&JSlWbX`(WQx;=HDY6~Cr_0C3vEhSwiPHG zx2L@+MR=O9h4nd5m-1#j79v!c_hpXuBLD>uoGGS-Lg~b#dSd82+oeWe%QaZ5qjRt{ zrmJrmUTYe;e? zmwqs!NF>E+#jUtXzk}jXL{aj#$%{BdexqFhRqjqxl8}h3c2@~AiqG?eNoDfXZG5g8 zU9RL)eaE{@^qT_T&p7;kk;6%Cs8d=Qz}>i*cjP>jy3xpCa7*39|fZ7oev8~i>;5m=3bl?cq-y;2Hs%k4SjF! zkMsOiGl<5^6VE>xolH(pI33OAi|O)YIh!s|&~m)=7vtG@F&qvTC*EX+yt%)C-eQa< z%js}FpYNqi?1CJeMG<(7S8JMq*W&t@5cIjYeUom{Id3nxObHvvgD)PR&+8FaM;|K} z>0lGyJr2+FyyzwmC2 z%WmB7vNb}q2af-GaPZ}qJoj&(vkUg~ z%P+qKR{@L}PuWH^J2*Hv_yk@N@IB59X3u2FHV)O@J&a$T_V+!XIL1N-D~wFM^B@8J hQx!G8^{_oYkI&=t_}u#W{{jF2|Np&GUWx$v1OQbK0>c0R literal 0 HcmV?d00001 diff --git a/stable/zigbee2mqtt/4.0.43/ix_values.yaml b/stable/zigbee2mqtt/4.0.44/ix_values.yaml similarity index 98% rename from stable/zigbee2mqtt/4.0.43/ix_values.yaml rename to stable/zigbee2mqtt/4.0.44/ix_values.yaml index 04534698fc0..9e0a85d5c90 100644 --- a/stable/zigbee2mqtt/4.0.43/ix_values.yaml +++ b/stable/zigbee2mqtt/4.0.44/ix_values.yaml @@ -1,6 +1,6 @@ image: repository: tccr.io/truecharts/zigbee2mqtt - tag: 1.28.0@sha256:f422f85f23722223194ef8de3fb15e9f73b6862342644fc431898c523a36daab + tag: 1.28.1@sha256:39cb00dc79919ce0fa3efe9d73ed099ceeeec1d4a7080f546dbaf61e4dc339da pullPolicy: IfNotPresent secretEnv: diff --git a/stable/zigbee2mqtt/4.0.43/questions.yaml b/stable/zigbee2mqtt/4.0.44/questions.yaml similarity index 100% rename from stable/zigbee2mqtt/4.0.43/questions.yaml rename to stable/zigbee2mqtt/4.0.44/questions.yaml diff --git a/stable/zigbee2mqtt/4.0.43/templates/common.yaml b/stable/zigbee2mqtt/4.0.44/templates/common.yaml similarity index 100% rename from stable/zigbee2mqtt/4.0.43/templates/common.yaml rename to stable/zigbee2mqtt/4.0.44/templates/common.yaml diff --git a/stable/zigbee2mqtt/4.0.44/values.yaml b/stable/zigbee2mqtt/4.0.44/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/stable/zwavejs2mqtt/12.0.14/CHANGELOG.md b/stable/zwavejs2mqtt/12.0.14/CHANGELOG.md new file mode 100644 index 00000000000..091d5d1f2d2 --- /dev/null +++ b/stable/zwavejs2mqtt/12.0.14/CHANGELOG.md @@ -0,0 +1,99 @@ +# Changelog + + + +## [zwavejs2mqtt-12.0.14](https://github.com/truecharts/charts/compare/zwavejs2mqtt-12.0.13...zwavejs2mqtt-12.0.14) (2022-11-03) + +### Chore + +- Auto-update chart README [skip ci] + - update docker general non-major ([#4286](https://github.com/truecharts/charts/issues/4286)) + + + + +## [zwavejs2mqtt-12.0.13](https://github.com/truecharts/charts/compare/zwavejs2mqtt-12.0.12...zwavejs2mqtt-12.0.13) (2022-11-02) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major ([#4261](https://github.com/truecharts/charts/issues/4261)) + + + + +## [zwavejs2mqtt-12.0.12](https://github.com/truecharts/charts/compare/zwavejs2mqtt-12.0.11...zwavejs2mqtt-12.0.12) (2022-10-26) + +### Chore + +- Auto-update chart README [skip ci] + - update docker general non-major ([#4189](https://github.com/truecharts/charts/issues/4189)) + + + + +## [zwavejs2mqtt-12.0.11](https://github.com/truecharts/charts/compare/zwavejs2mqtt-12.0.10...zwavejs2mqtt-12.0.11) (2022-10-25) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major ([#4182](https://github.com/truecharts/charts/issues/4182)) + + + + +## [zwavejs2mqtt-12.0.10](https://github.com/truecharts/charts/compare/zwavejs2mqtt-12.0.9...zwavejs2mqtt-12.0.10) (2022-10-19) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major ([#4122](https://github.com/truecharts/charts/issues/4122)) + + + + +## [zwavejs2mqtt-12.0.9](https://github.com/truecharts/charts/compare/zwavejs2mqtt-12.0.8...zwavejs2mqtt-12.0.9) (2022-10-14) + +### Chore + +- Auto-update chart README [skip ci] + - update docker general non-major ([#4084](https://github.com/truecharts/charts/issues/4084)) + + + + +## [zwavejs2mqtt-12.0.8](https://github.com/truecharts/charts/compare/zwavejs2mqtt-12.0.7...zwavejs2mqtt-12.0.8) (2022-10-12) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major ([#4071](https://github.com/truecharts/charts/issues/4071)) + + + + +## [zwavejs2mqtt-12.0.7](https://github.com/truecharts/charts/compare/zwavejs2mqtt-12.0.6...zwavejs2mqtt-12.0.7) (2022-10-07) + +### Chore + +- Auto-update chart README [skip ci] + - Auto-update chart README [skip ci] + - update helm general non-major + + + + +## [zwavejs2mqtt-12.0.7](https://github.com/truecharts/charts/compare/zwavejs2mqtt-12.0.6...zwavejs2mqtt-12.0.7) (2022-10-07) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major + + + + +## [zwavejs2mqtt-12.0.6](https://github.com/truecharts/charts/compare/zwavejs2mqtt-12.0.5...zwavejs2mqtt-12.0.6) (2022-10-05) + +### Chore + diff --git a/stable/zwavejs2mqtt/12.0.14/Chart.lock b/stable/zwavejs2mqtt/12.0.14/Chart.lock new file mode 100644 index 00000000000..7d17f8f4ef4 --- /dev/null +++ b/stable/zwavejs2mqtt/12.0.14/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://library-charts.truecharts.org + version: 10.7.13 +digest: sha256:2f2267115af9bdc61a64db6317564e2d07f4f27ccb0627720c8a63d82b1786b7 +generated: "2022-11-03T02:53:38.974759881Z" diff --git a/stable/zwavejs2mqtt/12.0.14/Chart.yaml b/stable/zwavejs2mqtt/12.0.14/Chart.yaml new file mode 100644 index 00000000000..723cefca9f2 --- /dev/null +++ b/stable/zwavejs2mqtt/12.0.14/Chart.yaml @@ -0,0 +1,32 @@ +apiVersion: v2 +appVersion: "8.3.0" +dependencies: + - name: common + repository: https://library-charts.truecharts.org + version: 10.7.13 +deprecated: false +description: Fully configurable Zwave to MQTT gateway and Control Panel using NodeJS and Vue +home: https://truecharts.org/docs/charts/stable/zwavejs2mqtt +icon: https://truecharts.org/img/hotlink-ok/chart-icons/zwavejs2mqtt.png +keywords: + - zwavejs2mqtt + - zwave-js + - z-wave + - zwave +kubeVersion: ">=1.16.0-0" +maintainers: + - email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +name: zwavejs2mqtt +sources: + - https://github.com/truecharts/charts/tree/master/charts/stable/zwavejs2mqtt + - https://github.com/zwave-js/zwavejs2mqtt + - https://hub.docker.com/r/zwavejs/zwavejs2mqtt +type: application +version: 12.0.14 +annotations: + truecharts.org/catagories: | + - tools + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/stable/zwavejs2mqtt/12.0.14/README.md b/stable/zwavejs2mqtt/12.0.14/README.md new file mode 100644 index 00000000000..676bf306506 --- /dev/null +++ b/stable/zwavejs2mqtt/12.0.14/README.md @@ -0,0 +1,107 @@ +# zwavejs2mqtt + +Fully configurable Zwave to MQTT gateway and Control Panel using NodeJS and Vue + +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: [zwavejs2mqtt](https://truecharts.org/docs/charts/stable/zwavejs2mqtt) + +**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.7.13 | + +## 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 `zwavejs2mqtt` + +```console +helm repo add TrueCharts https://charts.truecharts.org +helm repo update +helm install zwavejs2mqtt TrueCharts/zwavejs2mqtt +``` + +## 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 `zwavejs2mqtt` deployment + +```console +helm uninstall zwavejs2mqtt +``` + +## 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 zwavejs2mqtt \ + --set env.TZ="America/New York" \ + TrueCharts/zwavejs2mqtt +``` + +#### 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 zwavejs2mqtt TrueCharts/zwavejs2mqtt -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/zwavejs2mqtt/12.0.14/app-readme.md b/stable/zwavejs2mqtt/12.0.14/app-readme.md new file mode 100644 index 00000000000..d28ca8f0ac0 --- /dev/null +++ b/stable/zwavejs2mqtt/12.0.14/app-readme.md @@ -0,0 +1,8 @@ +Fully configurable Zwave to MQTT gateway and Control Panel using NodeJS and Vue + +This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/docs/charts/stable/zwavejs2mqtt](https://truecharts.org/docs/charts/stable/zwavejs2mqtt) + +--- + +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/zwavejs2mqtt/12.0.14/charts/common-10.7.13.tgz b/stable/zwavejs2mqtt/12.0.14/charts/common-10.7.13.tgz new file mode 100644 index 0000000000000000000000000000000000000000..c3131de86ff390f136bf19240caede7a29b33ecd GIT binary patch literal 49153 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 literal 0 HcmV?d00001 diff --git a/stable/zwavejs2mqtt/12.0.14/ix_values.yaml b/stable/zwavejs2mqtt/12.0.14/ix_values.yaml new file mode 100644 index 00000000000..9a33c0cd375 --- /dev/null +++ b/stable/zwavejs2mqtt/12.0.14/ix_values.yaml @@ -0,0 +1,85 @@ +image: + repository: tccr.io/truecharts/zwavejs-ui + pullPolicy: IfNotPresent + tag: 8.3.0@sha256:14cf280a27715c91411755738b08d8448e78906312c771596f5f6a112b95dc00 + +securityContext: + readOnlyRootFilesystem: false + +# env: {} +# OZW_NETWORK_KEY: + +probes: + liveness: + enabled: true + # custom: true + # spec: + # failureThreshold: 5 + # httpGet: + # path: /health + # port: http + # httpHeaders: + # - name: Accept + # value: text/plain + # initialDelaySeconds: 30 + # periodSeconds: 10 + # timeoutSeconds: 10 + readiness: + enabled: true + # custom: true + # spec: + # failureThreshold: 5 + # httpGet: + # path: /health + # port: http + # httpHeaders: + # - name: Accept + # value: text/plain + # initialDelaySeconds: 30 + # periodSeconds: 10 + # timeoutSeconds: 10 + startup: + enabled: false + # custom: true + # spec: + # failureThreshold: 5 + # httpGet: + # path: /health + # port: http + # httpHeaders: + # - name: Accept + # value: text/plain + # initialDelaySeconds: 30 + # periodSeconds: 10 + # timeoutSeconds: 10 + +service: + main: + ports: + main: + port: 8091 + targetPort: 8091 + ws: + enabled: true + ports: + ws: + enabled: true + port: 10046 + targetPort: 3000 + +persistence: + config: + enabled: true + mountPath: "/usr/src/app/store" +# affinity: +# nodeAffinity: +# requiredDuringSchedulingIgnoredDuringExecution: +# nodeSelectorTerms: +# - matchExpressions: +# - key: app +# operator: In +# values: +# - zwave-controller + +portal: + enabled: true diff --git a/stable/zwavejs2mqtt/12.0.14/questions.yaml b/stable/zwavejs2mqtt/12.0.14/questions.yaml new file mode 100644 index 00000000000..519d356d0b0 --- /dev/null +++ b/stable/zwavejs2mqtt/12.0.14/questions.yaml @@ -0,0 +1,2701 @@ +groups: + - name: Container Image + description: Image to be used for container + - name: Controller + description: Configure Workload Deployment + - name: Container Configuration + description: Additional Container Configuration + - name: App Configuration + description: App Specific Config Options + - name: Networking and Services + description: Configure Network and Services for Container + - name: Storage and Persistence + description: Persist and Share Data that is Separate from the Container + - name: Ingress + description: Ingress Configuration + - name: Security and Permissions + description: Configure Security Context and Permissions + - name: Resources and Devices + description: "Specify Resources/Devices to be Allocated to Workload" + - name: Middlewares + description: Traefik Middlewares + - name: Metrics + description: Metrics + - name: Addons + description: Addon Configuration + - name: Advanced + description: Advanced Configuration + - name: 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: Controller + schema: + type: dict + hidden: true + attrs: + - variable: isSCALE + label: Flag this is SCALE + schema: + type: boolean + default: true + hidden: true + - variable: controller + group: Controller + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: advanced + label: Show Advanced Controller Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: Please specify type of workload to deploy + label: (Advanced) Controller Type + schema: + type: string + required: true + enum: + - value: deployment + description: Deployment + - value: statefulset + description: Statefulset + - value: daemonset + description: Daemonset + default: deployment + - variable: replicas + description: Number of desired pod replicas + label: Desired Replicas + schema: + type: int + required: true + default: 1 + - variable: strategy + description: Please specify type of workload to deploy + label: (Advanced) Update Strategy + schema: + type: string + required: true + enum: + - value: Recreate + description: "Recreate: Kill existing pods before creating new ones" + - value: RollingUpdate + description: "RollingUpdate: Create new pods and then kill old ones" + - value: OnDelete + description: "(Legacy) OnDelete: ignore .spec.template changes" + default: Recreate + - variable: expert + label: Show Expert Configuration Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: Controller Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Controller Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: customextraargs + group: Controller + 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: Container Configuration + 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: Container Configuration + 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: expertpodconf + group: Container Configuration + label: Show Expert Configuration + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: tty + label: Enable TTY + description: Determines whether containers in a pod runs with TTY enabled. By default pod has it disabled. + group: Workload Details + schema: + type: boolean + default: false + - variable: stdin + label: Enable STDIN + description: Determines whether containers in a pod runs with stdin enabled. By default pod has it disabled. + group: Workload Details + schema: + type: boolean + default: false + - variable: termination + group: Container Configuration + label: Termination settings + schema: + additional_attrs: true + type: dict + attrs: + - variable: gracePeriodSeconds + label: Grace Period Seconds + schema: + type: int + default: 10 + - variable: podLabelsList + group: Container Configuration + label: Pod Labels + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: podAnnotationsList + group: Container Configuration + label: Pod Annotations + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: Label + 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: 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: The IP Families that should be used + schema: + type: list + default: [] + items: + - variable: ipFamily + label: IP Family + schema: + type: string + - 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: 8091 + required: true + - variable: advanced + label: Show Advanced Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: Enable the Port + schema: + type: boolean + hidden: true + default: true + - variable: protocol + label: Port Type + schema: + type: string + default: HTTP + enum: + - value: HTTP + description: HTTP + - value: HTTPS + description: HTTPS + - value: TCP + description: TCP + - value: UDP + description: UDP + - variable: nodePort + label: Node Port (Optional) + description: This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 8091 + - variable: ws + label: "WebSocket Service" + description: "WebSocket 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: 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: The IP Families that should be used + schema: + type: list + default: [] + items: + - variable: ipFamily + label: IP Family + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: ws + label: "WebSocket 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: 10046 + required: true + - variable: advanced + label: Show Advanced Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: Enable the Port + schema: + type: boolean + hidden: true + default: true + - 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: nodePort + label: Node Port (Optional) + description: This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 3000 + - 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: dnsPolicy + group: Networking and Services + label: dnsPolicy + schema: + type: string + default: "" + enum: + - value: "" + description: Default + - value: ClusterFirst + description: ClusterFirst + - value: None + description: None + - variable: dnsConfig + label: DNS Configuration + group: Networking and Services + description: Specify custom DNS configuration which will be applied to the pod + schema: + additional_attrs: true + type: dict + attrs: + - variable: nameservers + label: Name Servers + schema: + default: [] + type: list + items: + - variable: nameserver + label: Name Server + schema: + type: string + - variable: options + label: Options + schema: + default: [] + type: list + items: + - variable: option + label: Option Entry + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: searches + label: Searches + schema: + default: [] + type: list + items: + - variable: search + label: Search Entry + schema: + type: string + - 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: simplePVC + enum: + - value: simplePVC + description: PVC (simple) + - value: simpleHP + description: Host Path (simple) + - value: emptyDir + description: emptyDir + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - 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: setPermissionsSimple + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "simpleHP"]] + type: boolean + default: false + - 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: hostPathSimple + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "simpleHP"]] + type: hostpath + - 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 + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: hostPathType + label: (Advanced) hostPath Type + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: DirectoryOrCreate + description: DirectoryOrCreate + - value: Directory + description: Directory + - value: FileOrCreate + description: FileOrCreate + - value: File + description: File + - value: Socket + description: Socket + - value: CharDevice + description: CharDevice + - value: BlockDevice + description: BlockDevice + - variable: storageClass + label: (Advanced) storageClass + description: "Warning: Anything other than SCALE-ZFS or empty will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: SCALE-ZFS + - variable: accessMode + label: (Advanced) Access Mode + description: Allow or disallow multiple PVC's writhing to the same PV + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: ReadWriteOnce + enum: + - value: ReadWriteOnce + description: ReadWriteOnce + - value: ReadOnlyMany + description: ReadOnlyMany + - value: ReadWriteMany + description: ReadWriteMany + - variable: advanced + label: Show Advanced Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - 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: name + label: Name (Optional) + description: "Not required, please set to config when mounting /config or temp when mounting /tmp" + schema: + type: string + - variable: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: simpleHP + enum: + - value: simplePVC + description: PVC (Simple) + - value: simpleHP + description: Host Path (Simple) + - value: emptyDir + description: emptyDir + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - 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: setPermissionsSimple + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "simpleHP"]] + type: boolean + default: false + - 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: hostPathSimple + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "simpleHP"]] + type: hostpath + - 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: hostPathType + label: (Advanced) Host Path Type + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: DirectoryOrCreate + description: DirectoryOrCreate + - value: Directory + description: Directory + - value: FileOrCreate + description: FileOrCreate + - value: File + description: File + - value: Socket + description: Socket + - value: CharDevice + description: CharDevice + - value: BlockDevice + description: BlockDevice + - variable: storageClass + label: (Advanced) StorageClass + description: "Warning: Anything other than SCALE-ZFS or empty will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: SCALE-ZFS + - variable: accessMode + label: (Advanced) Access Mode + description: Allow or disallow multiple PVC's writhing to the same PV + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: ReadWriteOnce + enum: + - value: ReadWriteOnce + description: ReadWriteOnce + - value: ReadOnlyMany + description: ReadOnlyMany + - value: ReadWriteMany + description: ReadWriteMany + - variable: advanced + label: Show Advanced Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - 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: 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: expert + label: Show Expert Configuration Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enableFixedMiddlewares + description: These middlewares enforce a number of best practices. + label: Enable Default Middlewares + schema: + type: boolean + default: true + - variable: ingressClassName + label: IngressClass Name + schema: + type: string + default: "" + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - 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: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - 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: capabilities + label: Capabilities + schema: + additional_attrs: true + type: dict + attrs: + - variable: drop + label: Drop Capability + schema: + type: list + default: [] + items: + - variable: dropEntry + label: "" + schema: + type: string + - variable: add + label: Add Capability + schema: + type: list + default: [] + items: + - variable: addEntry + label: "" + schema: + type: string + - 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: advancedresources + label: Set Custom Resource Limits/Requests (Advanced) + group: Resources and Devices + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: resources + label: "" + 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 + 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 + 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 + 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: promtail + label: Promtail + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: loki + label: Loki URL + schema: + type: string + required: true + - variable: logs + label: Log Paths + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: path + label: Path + schema: + type: string + required: true + - variable: args + label: Promtail Command Line Arguments + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: arg + label: Arg + schema: + type: string + required: true + - variable: envList + label: Promtail Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + - variable: netshoot + label: Netshoot + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: envList + label: Netshoot Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + - variable: vpn + label: VPN + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type + schema: + type: string + default: disabled + enum: + - value: disabled + description: disabled + - value: 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: 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: Sock5 Server + 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/zwavejs2mqtt/12.0.14/templates/common.yaml b/stable/zwavejs2mqtt/12.0.14/templates/common.yaml new file mode 100644 index 00000000000..c1a366e1cf0 --- /dev/null +++ b/stable/zwavejs2mqtt/12.0.14/templates/common.yaml @@ -0,0 +1 @@ +{{ include "tc.common.loader.all" . }} diff --git a/stable/zwavejs2mqtt/12.0.14/values.yaml b/stable/zwavejs2mqtt/12.0.14/values.yaml new file mode 100644 index 00000000000..e69de29bb2d